[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ajuda para liberar o protocolo GRE no iptables



On 9/10/07, Denis <denismpa@gmail.com> wrote:
> Em 01/09/07, Guilherme Rocha<guilherme@gf7.com.br> escreveu:
> >
> > Pessoal,
> >
> > fui "convidado" a abrir umas portas num firewall pronto, rodando Debian
> > Sarge, com kernel 2.4.27...
> >
> > Minha questão é a seguinte:
> >
> > Existe um script de firewall pronto e ativo nesse Debian, até aí blza. Já
> > fiz quase tudo que foi solicitado, mas o protocolo GRE (para aquelas
> > malditas VPN PPTP do Window ;( não consigo manipular corretamente... (já
> > tive alguns avanços, mas o log do servidor windows onde tá sendo fornecida a
> > VPN reclama q a conexão foi aberta, mas não existe tráfego de dados pq o GRE
> > está sendo bloqueado no meio do caminho)
> >
> > Após alguns tcpdumps da vida, verifiquei que os pacotes chegam, são
> > redirecionados corretamente, voltam e são entregues, aparentemente normal.
> > Mas mesmo assim não funciona. O q me chamou a atenção é o fato de que as
> > estações de dentro da rede tb não conseguem conectar em servidores PPTP
> > externos tb...
> >
> >
> > bem, chega de choradera e vamos lá...  :D
> >
> > vou colar aqui parte do script, onde estou trabalhando: se alguém puder
> > ajudar eu agradeço MUITO.
> >
> > ---------------------------------------------------------------------------------------------------------------------------------------------
> >
> >
> > # Modules
> > /sbin/modprobe iptable_nat
> > /sbin/modprobe ip_conntrack_ftp
> > /sbin/modprobe ip_nat_ftp
> > /sbin/modprobe ip_gre
> >
> >
> > # Variables
> > IPTABLES="/sbin/iptables"
> > EXT_IF="eth0"
> > #EXT_IF="ppp0"
> > INT_IF="eth1"
> > EXT_IP=`ifconfig $EXT_IF | grep inet | cut -d : -f 2 | cut -d \  -f 1`
> > INT_IP=`ifconfig $INT_IF | grep inet | cut -d : -f 2 | cut -d \  -f 1`
> > INT_NET=" 10.10.70.0/24"
> >
> >
> >
> > echo ""
> >
> > #PPTP port OK!
> > $IPTABLES -A PREROUTING -t nat -d $EXT_IP -p tcp --dport 1723 -j DNAT --to
> > 10.10.70.10
> > $IPTABLES -A FORWARD -d 10.10.70.10 -p tcp --dport 1723 --syn -j ACCEPT
> >
> > #GRE protocol (BUG!!!!)
> > $IPTABLES -A PREROUTING -t nat -d $EXT_IP -p 47 -j DNAT --to 10.10.70.10
> > $IPTABLES -A FORWARD -i $INT_IF -s $INT_NET -p 47 -j ACCEPT
> >
> > #MS-TS (funcionando OK)
> > $IPTABLES -A PREROUTING -t nat -d $EXT_IP -p tcp --dport 3389 -j DNAT --to
> > 10.10.70.10
> > $IPTABLES -A FORWARD -d 10.10.70.10 -p tcp --dport 3389 --syn -j ACCEPT
> >
> > #Remote Web-Access (funcionando OK)
> > $IPTABLES -A PREROUTING -t nat -d $EXT_IP -p tcp --dport 81 -j DNAT --to
> > 10.10.70.10
> > $IPTABLES -A FORWARD -d 10.10.70.10 -p tcp --dport 81 --syn -j ACCEPT
> >
> > #Postrouting padrão (OK!)
> > $IPTABLES -A POSTROUTING -t nat -o $EXT_IF -s $INT_NET -j SNAT --to $EXT_IP
> >
> >
> > -------------------------------------------------------------------------------------------------------------------------
> >
> >
>
>
>
> >
> >
> > Abraços,
> >
> >
> > --
> > Guilherme Rocha
> > http://e-gui.homelinux.org
> > Mobile 55 71 92133568
> > Keep on hackin' in the free world!
> > --
> > "Tudo é uma questão de manter a mente quieta, a espinha ereta e o coração
> > tranquilo."
> > (Walter Franco)
>
>
> > Então gente, será que alguma boa alma te alguma sugestão??
>
> Além do forward você tem que fazer o postrouting e liberar o input dos
> pacotes GRE também.


Não precisa liberar o INPUT se vai rotear o pacote, sobre o
POSTROUTING, a linha do SNAT faz isso...

Da uma lida nesse howto para fazer funcionar:
http://www.impsec.org/linux/masquerade/VPN-howto/VPN-Masquerade.html

-- 
Max



Reply to: