El Jueves, 19 de Enero de 2006 16:27, Carlos Ferrabone escribió: > El Jueves, 19 de Enero de 2006 09:43, Pedro M. López escribió: > > El Jueves, 19 de Enero de 2006 13:23, Carlos Ferrabone escribió: > > > El Jueves, 19 de Enero de 2006 08:04, Listas escribió: > > > > Hola, ayer redirigi el puerto 21 para conectar a una maquina a traves > > > > del 31 de la siguiente manera: > > > > $IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 31 -j DNAT --to > > > > 128.100.0.15:21 > > > > la cuestion es que cuando intentan conectar, les deja validarse pero > > > > una vez dentro cuando intentan moverse por ahi les dice "invalid port > > > > comand", ¿el puerto ftp se debe redirigir de alguna manera especial? > > > > es que no les funciona a partir de este cambio, hasta ahora habia > > > > funcionado si problemas. Gracias, > > > > [EMAIL PROTECTED] > > > > > > a mi me pasa lo mismo. pero si uso el cliente ftp NO en modo pasivo (me > > > aprece que se llama modo puerto) anda. es un problema de configuracion > > > de iptables. en el modo pasivo, luego de la autentificacion, el cliente > > > intenta conecatarse en un puerto alto para las trasferencias, y eso es > > > lo que falla. justamente ahora estoy buscando info de como arreglarlo, > > > pero lo hice andar destildando del cliente el casillero del modo > > > pasivo. aclaro que si acepto todos los paquetes relacionados > > > > > > $iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j > > > ACCEPT > > > > > > alguien me habia dicho que la solucion era poner en esta linea el rango > > > de puertos, pero no me acuerdo exactamente como era, y no lo pude > > > probar > > > > ¿No te falta también el puerto 20? > > El ftp utliza tanto uno como otro. > > A parte de esto, me parece que hace falta cargar los módulos ip_nat_ftp, > > ip_conntrack_ftp, y el iptable_nat. > > los modulos no me faltan > [EMAIL PROTECTED] ~]# modprobe -l | grep ftp > /lib/modules/2.6.14-1.1653_FC4/kernel/net/ipv4/netfilter/ip_nat_ftp.ko > /lib/modules/2.6.14-1.1653_FC4/kernel/net/ipv4/netfilter/ip_conntrack_ftp.k >o > /lib/modules/2.6.14-1.1653_FC4/kernel/net/ipv4/netfilter/ip_conntrack_tftp. >ko /lib/modules/2.6.14-1.1653_FC4/kernel/net/ipv4/netfilter/ip_nat_tftp.ko > /lib/modules/2.6.14-1.1653_FC4/kernel/net/ipv4/ipvs/ip_vs_ftp.ko > > [EMAIL PROTECTED] ~]# modprobe -l | grep iptable > /lib/modules/2.6.14-1.1653_FC4/kernel/net/ipv4/netfilter/iptable_raw.ko > /lib/modules/2.6.14-1.1653_FC4/kernel/net/ipv4/netfilter/iptable_mangle.ko > /lib/modules/2.6.14-1.1653_FC4/kernel/net/ipv4/netfilter/iptable_nat.ko > /lib/modules/2.6.14-1.1653_FC4/kernel/net/ipv4/netfilter/iptable_filter.ko > > y este es el script que uso > > #!/bin/sh > # > # generated by -bash on 2006.01.07.52 > # > > # set a few variables > echo "" > echo " setting global variables" > echo "" > export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin > iptables="/sbin/iptables" > > # adjust /proc > echo " applying general security settings to /proc filesystem" > echo "" > if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then echo 1 > > > /proc/sys/net/ipv4/tcp_syncookies; fi > > if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then echo 1 > > > /proc/sys/net/ipv4/conf/all/rp_filter; fi > > if [ -e /proc/sys/net/ipv4/ip_forward ]; then echo 1 > > > /proc/sys/net/ipv4/ip_forward; fi > > # load some modules > if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_irc.o ]; > then modprobe ip_nat_irc; fi > if [ -e /lib/modules/`uname > -r`/kernel/net/ipv4/netfilter/ip_conntrack_irc.o ]; then modprobe > ip_conntrack_irc; fi > if [ -e /lib/modules/`uname > -r`/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o ]; then modprobe > ip_conntrack_ftp; fi > if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_ftp.o ]; > then modprobe ip_nat_ftp; fi > > # flush any existing chains and set default policies > $iptables -F INPUT > $iptables -F OUTPUT > $iptables -P INPUT DROP > $iptables -P OUTPUT ACCEPT > > # setup nat > echo " applying nat rules" > echo "" > $iptables -F FORWARD > $iptables -F -t nat > $iptables -P FORWARD DROP > $iptables -A FORWARD -i eth0 -j ACCEPT > $iptables -A INPUT -i eth0 -j ACCEPT > $iptables -A OUTPUT -o eth0 -j ACCEPT > $iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT > $iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE > > # allow all packets on the loopback interface > $iptables -A INPUT -i lo -j ACCEPT > $iptables -A OUTPUT -o lo -j ACCEPT > > # allow established and related packets back in > $iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT > > # icmp > echo " applying icmp rules" > echo "" > $iptables -A OUTPUT -p icmp -m state --state NEW -j ACCEPT > $iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT > $iptables -A INPUT -p icmp --icmp-type echo-request -i ppp0 -j DROP > > # apply icmp type match blocking > echo " applying icmp type match blocking" > echo "" > $iptables -I INPUT -p icmp --icmp-type redirect -j DROP > $iptables -I INPUT -p icmp --icmp-type router-advertisement -j DROP > $iptables -I INPUT -p icmp --icmp-type router-solicitation -j DROP > $iptables -I INPUT -p icmp --icmp-type address-mask-request -j DROP > $iptables -I INPUT -p icmp --icmp-type address-mask-reply -j DROP > > # open ports to the firewall > echo " applying the open port(s) to the firewall rules" > echo "" > $iptables -A INPUT -p tcp --dport 22 -j ACCEPT > $iptables -A INPUT -p tcp --dport 21 -j ACCEPT > $iptables -A INPUT -p tcp --dport 6881:6890 -j ACCEPT > #UDP azureus > $iptables -A INPUT -p udp --dport 6881 -j ACCEPT > #UDP azureus > $iptables -A INPUT -p tcp --dport 5901 -j ACCEPT > $iptables -A INPUT -p tcp --dport 5801 -j ACCEPT > $iptables -A INPUT -p tcp --dport 8245 -j ACCEPT > > > > > # drop all other packets > echo " applying default drop policies" > echo "" > $iptables -A INPUT -i ppp0 -p tcp --dport 0:65535 -j DROP > $iptables -A INPUT -i ppp0 -p udp --dport 0:65535 -j DROP > > echo "### quicktables is loaded ###" > echo ""
Uhmm, veamos Con estas reglas debería de funcionarte el ftp, pero a través de sus puertos originales. Si lo que quieres es redirigir las peticiones que te lleguen al puerto 31 (y supongo, que por tanto también al 32) y redirigirtelas a ti mismo al 21 y 22, sería en el prerouting supongo. algo así como (no está probado) iptables -A PREROUTING -p tcp --dport 31 -j DNAT --to-destination 127.0.0.1:21 iptables -A PREROUTING -p tcp --dport 32 -j DNAT --to-destination 127.0.0.1:22 (falta decir que tienen que ser paquetes nuevos, que llegan por la interfaz en la que quieras cambiar los puertos y demás)

