Como configurar um roteador cliente OpenVPN

13

Estou tentando configurar um roteador OpenVPN para poder conectar meu tablet (sem fio) e Blu-Ray (com fio) a um serviço VPN pago em outro país no Ubuntu 12.10. Fiz isso com êxito usando o DD-WRT (muito lento) e uma instância virtual do PFSense (muito limitada).

Eu sou novo no Linux, mas estou 90% completo com este projeto. O hardware é 2 portas Ethernet com fio, uma das quais está conectada a um roteador doméstico tradicional e uma placa sem fio.

Até agora eu tenho ..

  1. Configure minha rede sem fio para atuar como um verdadeiro ponto de acesso principal usando o hostapd
  2. Criou uma ponte (eu acho) entre a LAN local e sem fio
  3. Configure um servidor DHCP que esteja atribuindo endereços à ponte com êxito - tanto os com fio quanto os com fio estão obtendo-os.
  4. Configure o OpenVPN para que ele crie com êxito uma conexão encapsulada na inicialização.

O comportamento atual roteia todo o tráfego da minha máquina Ubuntu para o servidor VPN. Os outros dispositivos NÃO possuem conectividade, e esse é o problema.

Minha pergunta / objetivo:

Como configurar o roteamento para que o OpenVPN direcione apenas o tráfego da minha ponte (dispositivos sob 192.168.10.x) através do túnel da VPN e NÃO o tráfego do computador Ubuntu real?

O OpenVPN configura algumas rotas automaticamente, mas parece ignorar a ponte que eu configurei.

Eu li muita documentação iptablese, routemas faz muito pouco sentido para mim. Apesar de vários tutoriais, ainda não entendo como ler os resultados do routecomando. Eu também suspeito que isso possa ser realizado com route-noexeceroute-up no arquivo de configuração do OpenVPN, mas nada foi bem-sucedido.

Meu conhecimento sobre onde estão os arquivos de configuração e as configurações é limitado. As tarefas acima me levaram pelo menos 30 horas de mexer, então por favor, vá devagar comigo :)

Obrigado!

Editar

Postei uma solução abaixo que direciona o tráfego da ponte, mas não impede que o tráfego no computador Ubuntu passe pela VPN.

jbrookover
fonte

Respostas:

1

Não tenho certeza se isso é ideal, mas pelo menos está funcionando. Em um mundo perfeito, o tráfego no computador Ubuntu não seria roteado através da VPN - apenas os dispositivos conectados ao computador Ubuntu. Enfim, aqui está a solução ..

No openvpn.confarquivo

script-security 2
up "/path/to/external/script.sh"

No /path/to/external/script.sharquivo

iptables -A FORWARD -o tun0 -i br0 -s 192.168.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Acima, tun0o túnel criado pelo OpenVPN, br0é a ponte entre minha LAN local sem fio e a LAN local e 192.168.10.0/24é o pool de sub-rede / DHCP da minha LAN local.

Não faço ideia do que esse script faz, mas juntei-o em alguns sites no Compartilhamento de Conexão com a Internet.

Deixarei essa resposta desmarcada caso alguém queira fornecer uma melhor ou explicar como impedir que o tráfego no computador Ubuntu passe pela VPN.

jbrookover
fonte
0

É mais fácil configurar o próprio roteador para conectar-se ao servidor VPN, para que todos os dispositivos da sua rede passem por ele. Você pode fazer isso na interface da web do software do roteador.

Para permitir que os dispositivos conectados ao seu PC acessem a Internet, é necessário fazer o compartilhamento da Internet desse PC para outros.

islamismo
fonte
Mais fácil sim. Mas eu já fiz isso e foi muito lento.
jbrookover