[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: duvida com iptables



Em 19/06/07, Clayton Nogueira<clayton.nog@gmail.com> escreveu:
Em 19/06/07, Maxwillian Miorim<miorimmax@gmail.com> escreveu:
> On 6/19/07, Clayton Nogueira <clayton.nog@gmail.com> wrote:
> > Em 19/06/07, Maxwillian Miorim<miorimmax@gmail.com> escreveu:
> > > On 6/19/07, Denis <denismpa@gmail.com> wrote:
> > > > Em 19/06/07, Clayton Nogueira<clayton.nog@gmail.com> 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



Reply to: