Usando ppp0 via VPN para tudo, menos ftp

0

Eu tenho um servidor Ubuntu que eu uso para wget certos arquivos da internet através de uma VPN. Eu configurei a VPN usando o PPP0 e atualmente ajustei a rota assim:

 sudo route add default ppp0

Tudo está funcionando bem com a conexão vpn, mas agora gostaria de rotear o tráfego FTP via eth0 e não a VPN.

Eu tentei

  sudo route add default eth0

para o período em que eu estava usando o FTP, mas perdi a conexão com a internet até

   ifdown eth0 ifup eth0

foi chamado.

É evidente que estou fazendo algo errado.

A solução ideal seria sempre rotear todo o FTP via eth0 se isso for fácil, senão o que devo adicionar ao meu script bash para rotear o tráfego de volta para eth0 enquanto o upload do FTP é concluído (ponto em que posso voltar atrás para rotear adicionar ppp0 padrão).

    
por andy 23.02.2015 / 20:11

1 resposta

2

O que você deseja é chamado de roteamento baseado em política. O Google retornará muitas informações sobre esse tópico, e é muito complicado responder completamente em uma postagem de resposta do ServerFault.

A visualização de 10.000 pés é que você:

  1. Crie tabelas de roteamento adicionais no kernel.
  2. Configure cada tabela de roteamento para usar uma rota padrão diferente (uma para sua conexão normal e outra para sua VPN).
  3. Usando o iptables, identifique e mark cada pacote de acordo com suas regras / política.
  4. Atribua as marcas que você usou na etapa 3 para dizer ao kernel qual tabela de roteamento usar para cada pacote.

Os comandos básicos para conseguir isso:

echo 200 novpn >> /etc/iproute2/rt_tables
ip route add table 200 default via 192.0.2.1
iptables -t mangle -I OUTPUT -p tcp --dport 21 -d server.example.com -j MARK --set-mark 200
ip rule add fwmark 200 table novpn

Substitua 192.0.2.1 pelo seu roteador padrão na sua rede local.

    
por 25.02.2015 / 05:36