Iptables marcam o pacote de entrada - roteamento vpn

0

Conectei minha casa ao meu local de trabalho por motivos de backup fora da casa por meio do OpenVPN. A conexão está funcionando bem. No trabalho eu tenho 5 endereços IP fixos. Agora, gostaria de atribuir um desses endereços IP a serem encaminhados para minha máquina doméstica. Confirmei a chegada do pacote na minha máquina doméstica com o tcpdump.

O problema é que minha rota padrão em casa NÃO é o tun0 (naturalmente), mas eth0 para o meu próprio ISP. Então eu criei uma tabela de roteamento separada para rotear meus pacotes tun0 de volta para onde eles pertencem, mas não como marcar o pacote de entrada que chega através de tun0 com iptables, para que eu possa redirecioná-los.

Eu não quero restrições de porta, mas somente o que vem do tun0 deve sair pelo tun0.

    
por tom 02.06.2014 / 13:32

1 resposta

0

Não se trata de marcar pacotes com o iptables, mas de usar duas tabelas de roteamento distintas. Você precisa fazer isso porque você terá dois gateways padrão, e isso só é possível se você tiver duas tabelas de roteamento totalmente distintas, com regras apropriadas definindo quando aplicar cada uma.

O procudere normal para configurar um sistema de tabela de dois roteiros é o seguinte:

Primeiro, crie duas tabelas (substitua NAME1 e NAME2 por nomes que significam algo para você, mesmo com IP1, DEV1 e assim por diante):

  echo 200 <NAME1> >> /etc/iproute2/rt_tables
  echo 201 <NAME2> >> /etc/iproute2/rt_tables

Adicione um gateway a cada tabela de roteamento (se necessário):

  ip route add <NET1> dev <DEV1> src <SRC1> table <NAME1>
  ip route add <NET2> dev <DEV2> src <SRC2> table <NAME2>

Em seguida, uma rota padrão:

 ip route add default via <IP1> table <NAME1>
 ip route add default via <IP2> table <NAME2>

Em seguida, as regras para selecionar a tabela de rotas com base no endereço de origem:

 ip rule add from <IP1> table <NAME1>
 ip rule add from <IP2> table <NAME2>

No seu caso, isso é ainda mais simples porque iniciar a VPN configurará automaticamente a tabela de roteamento principal para você, e você só precisa fazer isso para a outra tabela de roteamento. Na regra acima, IP1 deve ser o endereço IP da interface tun / tap e IP2 o endereço IP da outra interface (que pode ser eth0 ou wlan0, ou qualquer outro).

Como para outras aplicações que iniciam uma conexão do seu pc, você terá que apenas vinculá-las a qualquer NIC.

EDITAR:

Agora que vejo a imagem da configuração que você está tentando realizar, vejo que a solução que propus acima não está correta, porque você não deseja ter todo o tráfego roteado através da VPN, apenas aquela destinada à outra LAN. Isso é muito mais fácil .

Esqueça tudo sobre duas tabelas de roteamento e o roteamento de políticas. Apague a segunda tabela de roteamento. Inicie sua VPN, certifique-se de que nem o cliente nem o servidor contenham uma instrução contendo as palavras redirect-gateway df1 . Em seguida, em seu servidor inicial, emita os seguintes comandos como sudo:

  ip route add 192.168.57.0/24 via 192.168.162.5 
  iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE 

enquanto no seu roteador de trabalho, problema, novamente como sudo, esses dois comandos:

  ip route add 192.168.112.0/24 via 192.168.162.9
  iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

As capitais, quando presentes, são necessárias.

    
por 02.06.2014 / 20:25