Em 19/06/07, Clayton Nogueira<[EMAIL PROTECTED]> escreveu:
Em 19/06/07, Maxwillian Miorim<[EMAIL PROTECTED]> escreveu: > On 6/19/07, Clayton Nogueira <[EMAIL PROTECTED]> wrote: > > Em 19/06/07, Maxwillian Miorim<[EMAIL PROTECTED]> escreveu: > > > On 6/19/07, Denis <[EMAIL PROTECTED]> wrote: > > > > Em 19/06/07, Clayton Nogueira<[EMAIL PROTECTED]> escreveu: > > > > > pessoal eu tenho que redirecionar entradas pela porta 22 do meu firewall > > > > > > > > > > para uma máquina da rede interna com ip x.x.x.14 ... > > > > > > > > > > sei que posso fazer isso diretamente pelo router > > > > > > > > > > mas quero fazer atraves do iptables > > > > > > > > > > achei a seguinte solução, gostaria de saber se está correto. > > > > > > > > > > eth0 = rede externa > > > > > eth1 = rede interna > > > > > > > > > > #ssh > > > > > iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT > > > > > iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to 10.0.0.14 > > > > iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT > > > > --to-destination 10.0.0.14 > > > > > > --to e --to-destination são equivalentes, não tem problema em usr um ou o outro. > > > > > > A regra deve ser feita no chain FORWARD, seria assim: > > > > > > iptables -A FORWARD -p tcp --dport 22 -d 10.0.0.14 -j ACCEPT > > > iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to 10.0.0.14 > > > > > > > > > INPUT = o que entra na própria máquina > > > OUTPUT = o que sai da própria máquina > > > FORWARD = o que *passa* pela máquina mas não é originado e/ou destinado a esta > > > > > > -- > > > Por favor não faça top-posting, coloque a sua resposta abaixo desta linha. > > > Please don't do top-posting, put your reply below the following line. > > > -------------------------------------------------------- > > > > > > > > > > agora eu fiz umas regras para liberar o ssh e o ftp, gostaria de saber > > se está correto, olha: > > > > #ssh > > iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT > > iptables -A FORWARD -p TCP -i eth1 --dport 22 -d 10.0.0.0/24 -j ACCEPT > > iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to 10.0.0.14 > > > > #ftp > > iptables -A INPUT -p tcp --destination-port 20 -j ACCEPT > > iptables -A FORWARD -p TCP -i eth1 --dport 20 -d 10.0.0.0/24 -j ACCEPT > > iptables -A INPUT -p tcp --destination-port 21 -j ACCEPT > > iptables -A FORWARD -p TCP -i eth1 --dport 21 -d 10.0.0.0/24 -j ACCEPT > > iptables -A INPUT -p udp --destination-port 20 -j ACCEPT > > iptables -A FORWARD -p udp -i eth1 --dport 20 -d 10.0.0.0/24 -j ACCEPT > > iptables -A INPUT -p udp --destination-port 21 -j ACCEPT > > iptables -A FORWARD -p udp -i eth1 --dport 21 -d 10.0.0.0/24 -j ACCEPT > > iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 20 -j DNAT --to 10.0.0.14 > > iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to 10.0.0.14 > > > Está certo, mas não precisa das regras de INPUT já que o pacote nunca > é destinado para o teu firewall, e sim passa por ele. > > Só presta atenção nas regras que fez para o protocolo UDP na porta 21: > a tua regra de nat foi feita para TCP e por isso pode não funcionar. > > Também evita liberar a entrada para toda a tua rede, limitando-a a um > host específico. > -- > Por favor não faça top-posting, coloque a sua resposta abaixo desta linha. > Please don't do top-posting, put your reply below the following line. > -------------------------------------------------------- > > Valeu pessoal, muito obrigado hein ... vou fazer as alterações e daqui a pouco posto completo, para vocês avaliarem.
Aí está ele completo, pessoal estou apredendo agora, preciso de dicas, e também de críticas!! Já li o capitulo do foca linux de iptables, mas de vez em quando me enrolo um pouco, acho que me falta prática ;-) bom lá vai: #!/bin/bash #SRV-Firewall Novamarca500 #Interface 2007 #Clayton Nogueira - clayton.nog at gmail.com / clayton at interfacenet.com.br iniciar(){ #Suporte aos modulos modprobe ip_tables modprobe iptable_filter modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_nat_ftp modprobe ipt_LOG modprobe ipt_state modprobe ipt_MASQUERADE #Limpando as tabelas iptables -F #limpa regras da tabela principal iptables -X #zera regras da tabela principal iptables -t nat -F #limpa regras da tabela nat iptables -t nat -X #zera regras da tabela nat #Politica padrao iptables -P INPUT -j DROP #nega pacotes de entrada iptables -P FORWARD -j ACCEPT #aceita o forward de pacotes iptables -P OUTPUT -j ACCEPT #aceita pacotes de saida iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT #libera uma porta (inclusive para internet) #Proxy Transparente iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 #Mascaramento iptables -A INPUT -i lo -j ACCEPT #aceita pacotes da interface loopback iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT iptables -t nat -A POSTROUTING -j MASQUERADE #mascaramento #Compartilha a internet modprobe iptable_nat echo "1" > /proc/sys/net/ipv4/ip_forward # Proteções diversas contra portscanners, ping of death, ataques DoS, etc. iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP iptables -A FORWARD -m unclean -j DROP # Ignora pings echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all #Porta 5405 - utilizada pelo LogMeIn iptables -A INPUT -p tcp --destination-port 5405 -j ACCEPT iptables -A FORWARD -p tcp -i eth1 --dport 5405 -d 10.0.0.0/24 -j ACCEPT #Outlook iptables -A FORWARD -p udp -s 10.0.0.0/24 -d eth0 --dport 53 -j ACCEPT iptables -A FORWARD -p udp -s eth0 --sport 53 -d 10.0.0.0/24 -j ACCEPT iptables -A FORWARD -p TCP -s 10.0.0.0/24 --dport 25 -j ACCEPT iptables -A FORWARD -p TCP -s 10.0.0.0/24 --dport 110 -j ACCEPT iptables -A FORWARD -p TCP --sport 25 -j ACCEPT iptables -A FORWARD -p TCP --sport 110 -j ACCEPT #ssh iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to 10.0.0.14 iptables -A FORWARD -p tcp -s 0/0 -d 10.0.0.14 --dport 22 -j ACCEPT iptables -A FORWARD -p tcp -s 10.0.0.14 --sport 22 -d 0/0 -j ACCEPT #ftp iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to 10.0.0.14 iptables -A FORWARD -p tcp -s 0/0 -d 10.0.0.14 --dport 21 -j ACCEPT iptables -A FORWARD -p tcp -s 10.0.0.14 --sport 21 -d 0/0 -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -p udp --dport 21 -j DNAT --to 10.0.0.14 iptables -A FORWARD -p udp -s 0/0 -d 10.0.0.14 --dport 21 -j ACCEPT iptables -A FORWARD -p udp -s 10.0.0.14 --sport 21 -d 0/0 -j ACCEPT #Bloqueia tudo iptables -A INPUT -p tcp --syn -j DROP } parar(){ iptables -F echo "Regras de Firewall desativadas" } case "$1" in "start")iniciar;; "stop")parar;; "restart")parar; iniciar;; *) echo "Use os parâmetros start ou stop" esac