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 >>>>>> >>>>>> >>>>> >>>> >>> >> >