Como configurar um roteador de cliente OpenVPN

12

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

Sou novo no Linux, mas estou 90% completo com este projeto. Hardware é duas 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. Configurar meu wireless para atuar como um verdadeiro ponto de acesso mestre usando hostapd
  2. Criei uma ponte (eu acho) entre a LAN local e sem fio
  3. Configure um servidor DHCP que esteja atribuindo endereços com êxito à ponte - os dispositivos sem fio e com fio estão obtendo-os.
  4. Configure o OpenVPN para que ele crie com sucesso 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 têm conectividade e esse é o problema.

Minha pergunta / meta:

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

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

Eu li muita documentação sobre iptables e route , mas faz muito pouco sentido para mim. Apesar de vários tutoriais, ainda não entendi como ler os resultados do comando route . Eu também suspeito que isso pode ser feito com route-noexec e route-up no arquivo de configuração do OpenVPN, mas nada foi bem sucedido.

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

Obrigado!

Editar

Eu postei uma solução abaixo que direciona o tráfego da bridge, mas isso não impede que o tráfego no computador Ubuntu passe pela VPN.

    
por jbrookover 19.12.2012 / 13:25

2 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 encaminhado através da VPN - apenas os dispositivos conectados ao computador Ubuntu. De qualquer forma, aqui está a solução ..

No arquivo openvpn.conf

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

No arquivo /path/to/external/script.sh

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, tun0 é o túnel criado pela OpenVPN, br0 é a ponte entre minha rede local wireless e a lan local e 192.168.10.0/24 é a sub-rede / pool DHCP da minha lan local.

Não tenho ideia do que esse script faz, mas juntei tudo em alguns sites no Compartilhamento de conexão com a Internet.

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

    
por jbrookover 04.01.2013 / 13:13
0

Mais fácil de configurar o próprio roteador para se conectar ao servidor VPN para que todos os dispositivos em sua rede passem por ele. Você pode fazer isso a partir da interface da web do software do roteador.

Para permitir que dispositivos conectados ao seu computador acessem a Internet, você precisa fazer o compartilhamento de internet desse PC para outras pessoas.

    
por Islam 27.12.2012 / 01:23