Re: Firewall y FTP
On Tuesday 29 August 2006 18:28, Matías A. Bellone wrote:
> Leonardo Vizcaya wrote:
> > Buenas. Yo de nuevo pero esta vez es con un corta fuegos sobre un ftp,
> > mi script es este:
> >
> >
> > #FTP
> > iptables -A INPUT -p tcp --sport 21 -j ACCEPT
> > iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
> >
> > iptables -A INPUT -p tcp --sport 20 -j ACCEPT
> > iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
>
> Por lo que leí ya hiciste la corrección acá.
>
> > me abre los puertos 80 y 443, pero el 20 y el 21 nada de nada, porque
> > será¿?¿?¿? no entiendo, cada vez que aprendo mas de iptables me confunde
> > mas.
>
> En realidad iptables no es tan complicado, lo que son complicados son
> los protocolos. Si buscas en google verás que ftp negocia la
> transferencia de datos por dentro del protocolo.
>
> Para eso deberás tener cargado y activado el módulo "ip_conntrack_ftp"
> (que es el que le permite a iptables relacionar conexiones que salen del
> FTP). Luego, gracias al módulo "state", que te permite saber si una
> conexión está siendo establecida (NEW), ya fue establecida (ESTABLISHED)
> o está relacionada a otra (RELATED) agregas las siguientes líneas [1]
> para permitir FTP activo:
>
> iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED
> -j ACCEPT
> iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
>
> Para permitir el pasivo:
>
> iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state
> ESTABLISHED -j ACCEPT
> iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state
> ESTABLISHED,RELATED -j ACCEPT
>
> Seguramente necesitarás algo similar para poder permitirlo con NAT; pero
> eso te lo dejo de ejercicio [2].
>
> > De ante mano gracias.
>
> Por nada.
>
> [1] No son de mi autoría, las saqué de
> http://kalamazoolinux.org/presentations/20010417/conntrack.html
> [2] Vale hacer trampa con google, seguro que lo encuentras por ahí
#!/bin/sh
echo ""
echo "Inicio Firewall Pctools..."
echo ""
ifconfig eth0:0 192.168.0.99 && echo " alias ok"
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -A INPUT -i lo -j ACCEPT && echo " localhost carga ok"
iptables -A INPUT -p tcp --dport 80 -j ACCEPT && echo " regla-80 ok"
iptables -A OUTPUT -p tcp -m tcp --sport 80 -m state --state
RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT && echo " regla-22 ok"
iptables -A OUTPUT -p tcp -m tcp --sport 22 -m state --state
RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 20:21 -m state --state
RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 20:21 -j ACCEPT && echo " regla-20-21
ok"
iptables -A INPUT -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m
state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 1024:65535 -m state --state
NEW,RELATED,ESTABLISHED -j ACCEPT
## lo de los pasivos es importante
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
iptables -N syn-flood
iptables -A INPUT -i eth0 -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -j DROP
iptables -A INPUT -p tcp --dport 1:1024 && echo " regla drop ok"
iptables -A INPUT -p udp --dport 1:1024 && echo " regla drop ok"
--
_______________________________________________
Felipe Tornvall N. lu: 400327
w: http://linux.pctools.cl
Descarga de Distribuciones
Reply to: