Como enviar pacotes através de um túnel vpn pptp?

2

Estou tentando enviar um determinado tráfego de porta através da minha interface ppp0, é um túnel pptp vpn,

Primeiro, estou usando uma interface USB sem fio, conecto-me ao meu ponto de acesso, inicio o vpn, há uma conexão, mas não canalizo todas as conexões através disso, nem quero, então, digamos que eu queira canalizar todos os pacotes da porta 80 através do meu vpn (interface dev ppp0).

Eu corri primeiro:

iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 0xa

para marcar os pacotes corretos então eu adiciono uma tabela chamada vpn_table, Eu então adiciono

ip route add default dev ppp0 table vpn_table

quando faço isso, o tráfego começa a driblar através do ppp0, mas nenhuma página é carregada. Suponho que devo ter causado algum tipo de conflito, ou a rota que estou adicionando na vpn_table não está certa.

Não tenho certeza, acho que estou marcando os pacotes corretamente, mas também não posso ter certeza disso.

ATUALIZAÇÃO: Acho que resolvi parte do problema: executar tcpdump -i ppp0 mostrou que, de fato, havia solicitações de saída via ppp0, agora, nunca há uma resposta e as páginas não são carregadas usando essa interface .. eu ainda estou faltando alguma coisa.

    
por Phill 24.09.2012 / 13:59

1 resposta

2

Eu finalmente resolvi esse problema, vou tentar postar instruções precisas para outras pessoas:

ip address show:

o endereço vpn é 192.191.145.5

alguma informação relevante:

39: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 3
link/ppp 
inet 10.20.0.42 peer 10.20.0.1/32 scope global ppp0

ip mostra a tabela de rotas local      local 10.20.0.42 dev ppp0 proto kernel escopo host src 10.20.0.42

comandos adicionais:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
ip route add 10.20.0.1/32 dev ppp0 table vpn_table
ip route add 0.0.0.0/1 via 10.20.0.42 dev ppp0 table vpn_table
ip route add 192.191.145.5 via 10.20.0.42 dev ppp0 table vpn_table

é o que é necessário na tabela vpn

este comando

sysctl -w net.ipv4.conf.ppp0.rp_filter=2 is really imporant

caso contrário você não receberá uma resposta

mesmo assim:

ip route flush cache

Espero que isso ajude alguém lá fora!

    
por Phill 25.09.2012 / 00:32