Dúvida Iptables

2 views
Skip to first unread message

Flavio Lopes

unread,
Dec 24, 2009, 10:57:50 AM12/24/09
to slack-u...@googlegroups.com
Olá lista!

Atualmente tenho estas regras funcionando perfeitamente para liberar o acesso via Terminal Service para um servidor com Windows 2003 Server:
$iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
$iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination $win2003:3389


Mas se eu substituir a segunda linha por:
$iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT --to-destination $win2003:3389

eu não consigo mais acessar o Win-Server-2003, ou seja, não é possível mais fazer a conexão!!!
Qual a diferença entre estas duas linhas?...no caso da segunda, não era só pra especificar qual interface ("-i eth1") eu quero que fique "escutando" ???

Em resumo, se eu substituir:
$iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
$iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination $win2003:3389

por:
$iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT --to-destination $win2003:3389


pára de funcionar o acesso!

Alguém sabe me dizer porque acontece isso?

grato,
Flávio

max

unread,
Dec 24, 2009, 7:38:30 PM12/24/09
to slack-u...@googlegroups.com
2009/12/24 Flavio Lopes <flavio...@paradoxo.inf.br>:

Provavelmente é um problema nas rotas do teu roteador. O que o route -n diz?

"Flávio R. Lopes"

unread,
Dec 28, 2009, 6:08:01 AM12/28/09
to slack-u...@googlegroups.com
Oi Max
ent�o....nada de diferente. Est� apontando, at� onde eu v� para onde tem
que apontar.
Mas o q vc sugere especificamente?

max escreveu:
> 2009/12/24 Flavio Lopes <flavio...@paradoxo.inf.br>:
>
>> Ol� lista!


>>
>> Atualmente tenho estas regras funcionando perfeitamente para liberar o
>> acesso via Terminal Service para um servidor com Windows 2003 Server:
>> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
>> $iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination
>> $win2003:3389
>>
>>
>> Mas se eu substituir a segunda linha por:
>> $iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT
>> --to-destination $win2003:3389
>>

>> eu n�o consigo mais acessar o Win-Server-2003, ou seja, n�o � poss�vel mais
>> fazer a conex�o!!!
>> Qual a diferen�a entre estas duas linhas?...no caso da segunda, n�o era s�


>> pra especificar qual interface ("-i eth1") eu quero que fique "escutando"
>> ???
>>
>> Em resumo, se eu substituir:
>> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
>> $iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination
>> $win2003:3389
>>
>> por:
>> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
>> $iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT
>> --to-destination $win2003:3389
>>

>> p�ra de funcionar o acesso!
>>
>> Algu�m sabe me dizer porque acontece isso?
>>
>>
>
> Provavelmente � um problema nas rotas do teu roteador. O que o route -n diz?
>
>

Leandro Vicente

unread,
Dec 28, 2009, 7:20:08 AM12/28/09
to slack-u...@googlegroups.com
Bom dia amigo.

vamos lá, se vc especificar a interface ele so vai liberar aquela interface. No caso na primeira regra vc libera tanto pra interface de internet quanto na interface da rede local. Por isso que funciona. Na segunda regra vc libera somente pra uma dessas duas interfaces. pra funcionar isso assim vc tem que ter um MASQUERADE antes dessa regra. Acho que é só isso mesmo.

Atencisamente,


Leandro Vicente
:wq

2009/12/28 "Flávio R. Lopes" <flavio...@paradoxo.inf.br>
Oi Max
então....nada de diferente. Está apontando, até onde eu ví para onde tem

que apontar.
Mas o q vc sugere especificamente?

max escreveu:
> 2009/12/24 Flavio Lopes <flavio...@paradoxo.inf.br>:
>
>> Olá lista!

>>
>> Atualmente tenho estas regras funcionando perfeitamente para liberar o
>> acesso via Terminal Service para um servidor com Windows 2003 Server:
>> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
>> $iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination
>> $win2003:3389
>>
>>
>> Mas se eu substituir a segunda linha por:
>> $iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT
>> --to-destination $win2003:3389
>>
>> eu não consigo mais acessar o Win-Server-2003, ou seja, não é possível mais
>> fazer a conexão!!!
>> Qual a diferença entre estas duas linhas?...no caso da segunda, não era só

>> pra especificar qual interface ("-i eth1") eu quero que fique "escutando"
>> ???
>>
>> Em resumo, se eu substituir:
>> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
>> $iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination
>> $win2003:3389
>>
>> por:
>> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
>> $iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT
>> --to-destination $win2003:3389
>>
>> pára de funcionar o acesso!
>>
>> Alguém sabe me dizer porque acontece isso?
>>
>>
>
> Provavelmente é um problema nas rotas do teu roteador. O que o route -n diz?
>
>

--
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br

Antes de perguntar:
http://www.istf.com.br/perguntas/

Para sair da lista envie um e-mail para:
slack-users-b...@googlegroups.com

"Flávio R. Lopes"

unread,
Dec 29, 2009, 9:37:25 AM12/29/09
to slack-u...@googlegroups.com
Leandro, supondo ent�o que eu s� queira liberar o acesso atrav�s da eth1
(que � minha interface para a internet), como ficariam estas regras, com
o MASQUERADE que voc� diz?


Leandro Vicente escreveu:
> Bom dia amigo.
>
> vamos l�, se vc especificar a interface ele so vai liberar aquela

> interface. No caso na primeira regra vc libera tanto pra interface de
> internet quanto na interface da rede local. Por isso que funciona. Na
> segunda regra vc libera somente pra uma dessas duas interfaces. pra
> funcionar isso assim vc tem que ter um MASQUERADE antes dessa regra.

> Acho que � s� isso mesmo.
>
> Atencisamente,
>
>
> Leandro Vicente
> :wq
>
> 2009/12/28 "Fl�vio R. Lopes" <flavio...@paradoxo.inf.br
> <mailto:flavio...@paradoxo.inf.br>>
>
> Oi Max
> ent�o....nada de diferente. Est� apontando, at� onde eu v� para


> onde tem
> que apontar.
> Mas o q vc sugere especificamente?
>
> max escreveu:
> > 2009/12/24 Flavio Lopes <flavio...@paradoxo.inf.br

> <mailto:flavio...@paradoxo.inf.br>>:
> >
> >> Ol� lista!


> >>
> >> Atualmente tenho estas regras funcionando perfeitamente para
> liberar o
> >> acesso via Terminal Service para um servidor com Windows 2003
> Server:
> >> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
> >> $iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT
> --to-destination
> >> $win2003:3389
> >>
> >>
> >> Mas se eu substituir a segunda linha por:
> >> $iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT
> >> --to-destination $win2003:3389
> >>

> >> eu n�o consigo mais acessar o Win-Server-2003, ou seja, n�o �
> poss�vel mais
> >> fazer a conex�o!!!

> >> Qual a diferen�a entre estas duas linhas?...no caso da segunda,
> n�o era s�


> >> pra especificar qual interface ("-i eth1") eu quero que fique
> "escutando"
> >> ???
> >>
> >> Em resumo, se eu substituir:
> >> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
> >> $iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT
> --to-destination
> >> $win2003:3389
> >>
> >> por:
> >> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
> >> $iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT
> >> --to-destination $win2003:3389
> >>

> >> p�ra de funcionar o acesso!
> >>

> >> Algu�m sabe me dizer porque acontece isso?
> >>
> >>
> >
> > Provavelmente � um problema nas rotas do teu roteador. O que o
> route -n diz?
> >
> >
>
> --
> GUS-BR - Grupo de Usu�rios de Slackware Brasil

> <mailto:slack-users-br%2Bunsu...@googlegroups.com>
>
>
> --
> GUS-BR - Grupo de Usu�rios de Slackware Brasil

max

unread,
Dec 29, 2009, 10:05:00 AM12/29/09
to slack-u...@googlegroups.com
O MASQUERADE é "equivalente" ao SNAT, só que ele mapeia de forma
dinamica e não para um endereço fixo. Não vejo relação alguma disso
com o teu problema (porque tu não precisa fazer MASQUERADE ou SNAT
dentro de uma LAN,pois não é feito roteamento).

Tu quer que o que entra na porta tcp/3389 da eth1 seja redirecionado
para a máquina "$win2003". Isso se resolve com um DNAT no chain
PREROUTING da tabela nat e dependendo da policy do FORWARD, uma regra
que libera lá também (e pelas mensagens anteriores, tu ja fez as duas
coisas).

Quando tu carrega as regras, o redirect funciona, como deveria, mas as
conexões da LAN também são redirecionadas. Aqui que vem toda a parte
dizarra:

A regra diz explicitamente que o que entra na eth1 deve ser jogado
para o $win2003, porque a LAN (que entra na eth0) casa nessa regra?

Tu tem certeza absoluta que as rotas (do roteador e das estações)
estão em ordem e que as placas de rede não estão invertidas? Há
algumas semanas eu vi um Debian que resolveu reconfigurar as regras de
rede do udev e trocou a ordem de duas das 4 placas de rede, os mac
addresses conferem? (tu pode ver o mac address com o ip link show ou
ifconfig)

Não tem mais nenhuma regra na tabela nat desse roteador? (iptables -t
nat -S ou iptables -t nat -L)

2009/12/29 "Flávio R. Lopes" <flavio...@paradoxo.inf.br>:
> Leandro, supondo então que eu só queira liberar o acesso através da eth1
> (que é minha interface para a internet), como ficariam estas regras, com
> o MASQUERADE que você diz?


>
>
> Leandro Vicente escreveu:
>> Bom dia amigo.
>>

>> vamos lá, se vc especificar a interface ele so vai liberar aquela


>> interface. No caso na primeira regra vc libera tanto pra interface de
>> internet quanto na interface da rede local. Por isso que funciona. Na
>> segunda regra vc libera somente pra uma dessas duas interfaces. pra
>> funcionar isso assim vc tem que ter um MASQUERADE antes dessa regra.

>> Acho que é só isso mesmo.
>>
>> Atencisamente,
>>
>>
>> Leandro Vicente
>> :wq
>>
>> 2009/12/28 "Flávio R. Lopes" <flavio...@paradoxo.inf.br
>> <mailto:flavio...@paradoxo.inf.br>>
>>
>>     Oi Max
>>     então....nada de diferente. Está apontando, até onde eu ví para


>>     onde tem
>>     que apontar.
>>     Mas o q vc sugere especificamente?
>>
>>     max escreveu:
>>     > 2009/12/24 Flavio Lopes <flavio...@paradoxo.inf.br
>>     <mailto:flavio...@paradoxo.inf.br>>:
>>     >

>>     >> Olá lista!


>>     >>
>>     >> Atualmente tenho estas regras funcionando perfeitamente para
>>     liberar o
>>     >> acesso via Terminal Service para um servidor com Windows 2003
>>     Server:
>>     >> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
>>     >> $iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT
>>     --to-destination
>>     >> $win2003:3389
>>     >>
>>     >>
>>     >> Mas se eu substituir a segunda linha por:
>>     >> $iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT
>>     >> --to-destination $win2003:3389
>>     >>

>>     >> eu não consigo mais acessar o Win-Server-2003, ou seja, não é
>>     possível mais
>>     >> fazer a conexão!!!

>>     >> Qual a diferença entre estas duas linhas?...no caso da segunda,
>>     não era só


>>     >> pra especificar qual interface ("-i eth1") eu quero que fique
>>     "escutando"
>>     >> ???
>>     >>
>>     >> Em resumo, se eu substituir:
>>     >> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
>>     >> $iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT
>>     --to-destination
>>     >> $win2003:3389
>>     >>
>>     >> por:
>>     >> $iptables -A FORWARD -p tcp -d $win2003 --dport 3389 -j ACCEPT
>>     >> $iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT
>>     >> --to-destination $win2003:3389
>>     >>

>>     >> pára de funcionar o acesso!
>>     >>

>>     >> Alguém sabe me dizer porque acontece isso?
>>     >>
>>     >>
>>     >
>>     > Provavelmente é um problema nas rotas do teu roteador. O que o
>>     route -n diz?
>>     >
>>     >
>>
>>     --
>>     GUS-BR - Grupo de Usuários de Slackware Brasil


>>     http://www.slackwarebrasil.org/
>>     http://groups.google.com/group/slack-users-br
>>
>>     Antes de perguntar:
>>     http://www.istf.com.br/perguntas/
>>
>>     Para sair da lista envie um e-mail para:
>>     slack-users-b...@googlegroups.com
>>     <mailto:slack-users-br%2Bunsu...@googlegroups.com>
>>
>>
>> --

>> GUS-BR - Grupo de Usuários de Slackware Brasil

> GUS-BR - Grupo de Usuários de Slackware Brasil

"Flávio R. Lopes"

unread,
Dec 29, 2009, 12:53:43 PM12/29/09
to slack-u...@googlegroups.com, mior...@gmail.com
Oi Max, blz?
Então....quanto a reconfigurar, eu chequei e as placas de rede estão em ordem, ou seja, eth0=LAN e eth1=WAN

Mas como vc sugeriu, eu tinha sim um outro redirecionamento que "joga" todo o tráfego da rede para meu proxy:
$iptables -t nat -A PREROUTING -p tcp -i $LAN -s $lan -d ! $lan --dport 80 -j REDIRECT --to-port 8080
$iptables -t nat -A PREROUTING -p udp -i $LAN -s $lan -d ! $lan --dport 80 -j REDIRECT --to-port 8080


onde:
LAN=eth0
lan=192.168.1.0/24

Será que é isso?

max escreveu:
Reply all
Reply to author
Forward
0 new messages