PI como um roteador VPN para máquinas locais


18

Gostaria de permitir que algumas das minhas máquinas acessassem a Internet através de uma conexão VPN. Minha ideia é que o PI possa simplesmente discar para estabelecer uma conexão e, em seguida, rotear solicitações das outras máquinas através dele.

Eu estou pensando que a configuração de um roteador padrão do dispositivo para o IP do PI.

Embora de alguma forma tenha experiência com a configuração de várias coisas na linha de comando, você poderia me indicar as instruções sobre quais pacotes / serviços eu preciso?

Resumo da configuração:

  • PI conectando-se à Internet diretamente através do roteador padrão
  • O PI cria uma conexão VPN (OpenVPN) e escuta em sua interface local o tráfego
  • PI restabelece conexão em falhas
  • outros dispositivos de rede têm um gateway padrão definido como o IP do PI e todo o tráfego passa pela VPN, desde que esteja ativo (e sem conexão à Internet se a VPN estiver inativa).

Não preciso de serviços NAT ou DHCP (o DNS também pode passar pela VPN).


qual é o objetivo? se você usa o Pi na sua rede local para criar uma conexão de saída, por que não usa outros computadores para criar uma conexão de saída semelhante diretamente, economizando o custo do Pi e a dor de cabeça na instalação e configuração do software? a configuração convencional da VPN é o computador da sua rede local, que escuta as conexões de entrada e verifica as senhas e, em seguida, permite que o computador remoto use sua rede local diretamente, e não vice-versa.
lenik

11
@lenik O ponto é que eu tenho uma infinidade de máquinas que estão usando a mesma conexão VPN. Além disso, é muito mais simples configurar uma única máquina do que continuar alterando a configuração de várias máquinas, garantindo que eles remarquem etc. E você está correto - não é uma configuração padrão;
Petr 19/13 /

11
Para não mencionar que o uso de um outro dispositivo para fazer o roteamento faz um trabalho de assegurar que todo o tráfego passa pela VPN muito mais simples
petr

3
Alguns dispositivos também não conseguem se conectar a VPNs. Esses dispositivos incluem muitos consoles de jogos e outros que não executam sistemas operacionais padrão que podem ser facilmente configurados para se conectar a uma VPN.
Kibbee

@lenik Essa configuração é comum em equipamentos de rede de nível empresarial. É embutido em roteadores a partir de cerca de US $ 300 ou mais. O OP está procurando uma solução por cerca de um décimo do preço ... como am I.
Philip Couling

Respostas:


15

Eu tenho a mesma configuração que você:

Cable modem -> Router (192.168.1.1) +-> Raspberry Pi (192.168.1.11)
                                    |-> iPad (DHCP)
                                    |-> PC (DHCP)
                                    `-> AppleTV (DHCP)

Primeiro, mudei minhas configurações de rede ( /etc/network/interfaces) no RPi para um endereço estático

iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Depois disso, você precisa configurar o OpenVPN no RPi:

sudo apt-get install openvpn

Em seguida, você deve definir o arquivo de configuração para o vpn /etc/openvpn/server.conf. I usado a amostra fornecida pelo meu serviço vpn (WiTopia) e a mudança dev tunpara dev tun0e adicionados redirect-gatewayno final.

Próxima etapa, modifique o iptables para permitir o NAT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Para torná-lo permanente, salve-o assim

sudo bash
iptables-save > /etc/iptables.up.rules
nano /etc/network/if-pre-up.d/iptables

Adicione isso ao novo arquivo:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

Salve e torne-o executável com chmod +x /etc/network/if-pre-up.d/iptables. Agora você precisa habilitar o encaminhamento de IP editando /etc/sysctl.confe descomente a linhanet.ipv4.ip_forward = 1

Reinicialize e o RPi deve estar conectado à sua VPN e estar pronto para receber o tráfego recebido. Adicionei uma nova opção ao meu serviço dhcp no meu roteador (executando o OpenWrt) para especificar o gateway enviado ao cliente. Eu adicionei a linha list 'dhcp_option' '3,192.168.1.11'ao arquivo /etc/config/dhcpe reiniciei o roteador. Meu iPad, PC e AppleTV agora se conectam através do RPi para acessar URLs externos.

Fontes:


11
Acabei de definir uma configuração semelhante no último fim de semana. Eu também tive que adicionar "net.ipv4.tcp_ecn = 0" ao arquivo /etc/sysctl.conf. Não tenho certeza do que faz, mas o gateway não funcionaria corretamente sem ele.
Kibbee

Isso funcionou para mim, com uma modificação: a regra NAT deve seriptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Regan Walsh


0

Experimentar

https://help.ubuntu.com/community/OpenVPN

O Raspbian deve estar próximo o suficiente do Ubuntu para que a instalação seja a mesma, e acabei de verificar se o pacote OpenVPN está disponível no repositório Raspbian.

No entanto, observe que a maioria das instruções de VPN informará como criar um servidor para abrir sua LAN para clientes VPN na Internet, em vez de vice-versa; portanto, talvez seja necessário experimentar um pouco as configurações de roteamento.


Obrigado, entendi um pouco melhor - o que não tenho certeza é como fazer o PI ouvir conexões e encaminhá-las através da VPN?
petr

11
@petr Você só precisa executar o sysctl -w net.ipv4.ip_forward = 1 e fazer com que as outras máquinas usem o RPI como gateway padrão, e o RPI fará o roteamento feliz.
Nos

0

Não sei se isso é útil, mas estou usando VPN no Raspberry Pi de um provedor de VPN quando viajo dos EUA para a China , eles têm um script dd-wrt que eu instalei e funcionou desde a primeira vez. Portanto, você pode economizar muitos problemas se procurar um provedor com o script dd-wrt já criado. Se alguém está curioso sobre o script, posso postá-lo aqui.



0

Aqui está a minha configuração, que é muito semelhante à sua necessidade; a única coisa que você precisa, instalando o cliente OpenVPN e fazendo algumas configurações no Raspbian. insira a descrição da imagem aqui

Eu descrevi no meu blog; Configurando o Gateway VPN com Raspberry PI


Olá e bem-vindo! No momento, não acho que a pergunta "você poderia me indicar as instruções sobre quais pacotes / serviços eu preciso? Você poderia me indicar as instruções sobre quais pacotes / serviços eu preciso?" é endereçado na resposta. Você poderia elaborar um pouco mais sem exigir que as pessoas sigam o link (que na verdade é apenas a figura novamente)?
Ghanima

@ Ghanima, obrigado pelo seu comentário. Eu mudei minha resposta.
afelaho 16/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.