Moksha.

São necessárias as duas coisas.

Quem realmente abre a porta é o programa servidor.
A regra de forward libera o tráfego passar, ou seja, atravessar o firewall
que está no meio.
A regra de DNAT é necessária pois quem realmente está na internet é seu
firewall.

Pra ficar mais claro. Caso o servidor com as portas abertas estivesse
diretamente na internet, com uma interface de rede configurada com IP WAN e
você estivesse fazendo as regras nele mesmo, não precisaria da regra de
DNAT, bastaria uma regra de filter, nesse caso seria INPUT.

Outro exemplo. digamos que você tenha ssh nesse FIREWALL, e queria acessar
de fora. Bastaria uma regra de INPUT e pronto, nada de NAT.

Sempre que tiver tráfego que atravesse o firewall com internet na jogada,
vai precisar de DNAT ou SNAT dependendo da orientação do tráfego. Pelo
menos enquanto estivermos usando ipv4 vai ser assim.

Você deve estar se perguntando, quando então vou usar forward sem uma regra
de DNAT junto não é mesmo? Veja o que escrevi acima, precisa ser tráfego
que atravesse o firewall E tenha internet. Pois ai estaríamos lidando com
IPs públicos e privados juntos, por isso a necessidade de nat. Caso você
por exemplo, vá liberar tráfego de sua LAN para sua DMZ, basta a regra de
forward e habilitar o roteamento no kernel ( echo 1 >
/proc/sys/net/ipv4/ip_forward ), não precisa de NAT.

Eden Caldas
Consultor de TI
e...@linuxfacil.srv.br
(81) 9747 4444
(81) 9653 7220
LINUX FÁCIL – Consultoria e Serviços em TI


Em 28 de abril de 2012 16:09, Moksha Tux <gova...@gmail.com> escreveu:

> Nossa senhor Eden Caldas!
>
> Muitíssimo obrigado por essa aula, sim o senhor está certo, seria para
> qualquer pessoa acessar esse servidor nas portas 80 e 3306 o meu medo seria
> que na minha especulação se eu não amarrasse origem e destino eu correria o
> risco de abrir todo o acesso da internet para essas portas
> indiscriminadamente mas agora pelo que entendi essas portas só serão
> abertas para o forward de pacotes para esse servidor. Agora... já que eu
> sou obrigado a abrir as portas pela regra de filtro então o senhor acha que
> seria obrigatório a declaração das portas na regra de redirecionamento e
> NAT?
>
> Moksha
>
> Em 28 de abril de 2012 13:56, Eden Caldas <edencal...@gmail.com> escreveu:
>
> Complementando que esqueci. Sua segunda regra de forward não é necessária.
>> E você não precisa especificar as interfaces de rede, porém é sempre bom
>> especificar pra ficar mais amarrado.
>>
>>
>> Eden Caldas
>> Consultor de TI
>> e...@linuxfacil.srv.br
>> (81) 9747 4444
>> (81) 9653 7220
>> LINUX FÁCIL – Consultoria e Serviços em TI
>>
>>
>> Em 28 de abril de 2012 13:54, Eden Caldas <edencal...@gmail.com>escreveu:
>>
>> Moksha
>>>
>>> A respeito dessa regra:
>>>
>>> iptables -A FORWARD -p tcp -s 200.100.100.100 -d 172.100.100.100 -m
>>> multiport 80,3306 -J ACCEPT
>>>
>>> Está quase certo.
>>>
>>> Primeira, não deve ser usado aí o -s com o IP externo na sua regra de
>>> forward. O -s seria para tratar a origem do pacote e você está querendo que
>>> ele seja acessado por qualquer pessoa não é isso? Então basta omitir o -s
>>> ou colocar -s 0/0
>>>
>>> Mais um exemplo disso que eu estou falando. Imagine que eu queira
>>> liberar o ssh numa máquina na minha rede apenas para uma certa filial da
>>> empresa cujo ip seja 200.200.200.200. Aí sim eu usaria o -s 200.200.200.200
>>> na regra de foward. Se eu quiser que o acesso seja para qualquer IP, basta
>>> omitir.
>>>
>>> Segundo, faltou completar o -m multiport. Precisa de --dports
>>>
>>> Ficaria assim
>>>
>>> iptables -A FORWARD -p tcp -d 172.100.100.100 -m multiport --dports
>>> 80,3306 -J ACCEPT
>>>
>>> A propósito. Suas regras de DNAT estão corretas, porém lá também
>>> utilizam o módulo multiport porém com --dport, quando deveria ser --dports.
>>> É chatinho mesmo, mas só pra fixar:
>>>
>>> -m multiport (singular)
>>> --dports (plural)
>>>
>>>
>>> Eden Caldas
>>> Consultor de TI
>>> e...@linuxfacil.srv.br
>>> (81) 9747 4444
>>> (81) 9653 7220
>>> LINUX FÁCIL – Consultoria e Serviços em TI
>>>
>>>
>>> Em 28 de abril de 2012 11:15, Moksha Tux <gova...@gmail.com> escreveu:
>>>
>>> Boa noite e muito obrigado a Eden caldas, Júlio Henrique e André Luiz!
>>>>
>>>> Sim a política padrão que estou adotando é DROP neste caso serei
>>>> obrigado a criar uma regra na chain FORWARD liberando este acesso, mas eu
>>>> gostaria de amarrar as portas a este acesso esmo se eu mais a frente tenha
>>>> que abrir o porta 80 para outras servidores, será que a regra abaixo
>>>> estaria coreta?
>>>>
>>>>
>>>> # Para liberar o WWW da DMZ para a WAN
>>>>
>>>> iptables -t nat -A PREROUTING -p tcp -i $wan -d 200.100.100.100 -m
>>>> multiport --dport 80,3306 -j DNAT --to-destination 172.100.100.100
>>>> iptables -t nat -A POSTROUTING -p tcp -s 172.100.100.100 -d 0/0 -m
>>>> multiport --dport 80,3306 -o $dmz -j SNAT --to-source 200.100.100.100
>>>> iptables -A FORWARD -p tcp -s 200.100.100.100 -d 172.100.100.100 -m
>>>> multiport 80,3306 -J ACCEPT
>>>> iptables -A FORWARD -p tcp -s 172.100.100.100 -d 0/0 -m multiport
>>>> 80,3306 -J ACCEPT
>>>>
>>>> E assim por diante, não sei se neste caso sou obrigado a identificar as
>>>> interfaces nas regras de filtro, será que os senhores poderiam me informar
>>>> se estaria certa essa minha especulação? Desde já obrigado,
>>>>
>>>> Moksha
>>>>
>>>> Em 27 de abril de 2012 22:07, Eden Caldas <edencal...@gmail.com>escreveu:
>>>>
>>>> Se a política padrão no seu script for DROP para as regras de forward,
>>>>> ou se tiver alguma regra bloqueando, sim, precisa liberar com uma regra de
>>>>> filter.
>>>>>
>>>>> Eden Caldas
>>>>> Consultor de TI
>>>>> e...@linuxfacil.srv.br
>>>>> (81) 9747 4444
>>>>> (81) 9653 7220
>>>>> LINUX FÁCIL – Consultoria e Serviços em TI
>>>>>
>>>>>
>>>>> Em 27 de abril de 2012 18:34, Moksha Tux <gova...@gmail.com> escreveu:
>>>>>
>>>>> Queridos amigos!
>>>>>>
>>>>>> escrevendo o meu script de firewall me deparei com uma inquietante
>>>>>> dúvida... Quando eu declaro uma regra de redirecionamento com DNAT e 
>>>>>> SNAT e
>>>>>> especificando as portas somente isso já seria o suficiente para eu
>>>>>> estabelecer a conexão ou eu sou obrigado a liberar esta conexão pelo 
>>>>>> filtro
>>>>>> também? Ex:
>>>>>>
>>>>>> # Para liberar o WWW da DMZ para a WAN
>>>>>>
>>>>>> iptables -t nat -A PREROUTING -p tcp -i $wan -d 200.100.100.100 -m
>>>>>> multiport --dport 80,3306 -j DNAT --to-destination 172.100.100.100
>>>>>> iptables -t nat -A POSTROUTING -p tcp -s 172.100.100.100 -d 0/0 -m
>>>>>> multiport --dport 80,3306 -o $dmz -j SNAT --to-source 200.100.100.100
>>>>>>
>>>>>> Será que eu também teria que criar uma regra na chain FORWARD
>>>>>> liberando essa conexão? Abraços,
>>>>>>
>>>>>> Moksha
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Responder a