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

