Poxa meu querido muito obrigado por tudo isso! É que estou acostumado a manusear o pf e quando vou traduzir as regras para iptables fico realmente confuso mas agora está muito mais clareado. depois com mais calma vou tirar outras dúvidas com o senhor referente a algumas sintaxes e regras que encontro no pf mas não encontrei ainda no iptables, por exemplo, uma tabela de hosts, onde por exemplo todos estes hosts farão um nat com um outro ip válido para determinados sites, outro exemplo... que essa tabela de hosts fará um nat com um terceiro ip válido mas sem nenhum filtro simplesmente o trafego da intyernet e estes hosts constantes nesta tabela estará tudo liberado, ainda não encontrei isso no iptables infelizmente. Estou especulando que se eu fizer uma regrinha com o comando "for" e nele eu mandar ler um arquivo onde conste estes hosts talvez funcione não sei, o senhor acha que isso daria certo? Abraços,
Moksha Em 28 de abril de 2012 16:27, Eden Caldas <[email protected]> escreveu: > 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 > [email protected] > (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 <[email protected]> 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 <[email protected]>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 >>> [email protected] >>> (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 <[email protected]>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 >>>> [email protected] >>>> (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 <[email protected]> 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 <[email protected]>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 >>>>>> [email protected] >>>>>> (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 <[email protected]>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 >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >

