El Lunes, 23 de Enero de 2006 18:34, Listas escribió: > Lo quiero redirigir porque el 21 lo tengo ocupado ya, > Un saludo.
Me temo que lo que pretendes no tiene solución. El protocolo FTP al igual que muchos otros es una caca pues obliga al kernel a husmear en los paquetes para detectar qué puerto de está negociando de cara a la transmisión de datos por FTP y permitir entonces el acceso a través de ese puerto. Para ello se emplea el módulo "ip_contrack_ftp" que hace precisamente lo anterior y permite que se negocie un puerto para los datos y que Iptables permita la entrada de los paquetes por ese puerto, y además está el ip_nat_ftp que permite que el servidor FTP esté en otra máquina. El problema es que dicho módulo está programado para funcionar por los puertos estándar del FTP, de hecho pego una parte de su código: #> /usr/src/linux/include/linux/netfilter_ipv4 $ head -50 ip_conntrack_ftp.h ------------------------------------------------------------------------------------------------------------------------ #ifndef _IP_CONNTRACK_FTP_H #define _IP_CONNTRACK_FTP_H /* FTP tracking. */ #ifdef __KERNEL__ #define FTP_PORT 21 <-------- OJO #endif /* __KERNEL__ */ enum ip_ct_ftp_type { /* PORT command from client */ IP_CT_FTP_PORT, /* PASV response from server */ IP_CT_FTP_PASV, /* EPRT command from client */ IP_CT_FTP_EPRT, /* EPSV response from server */ IP_CT_FTP_EPSV, }; ------------------------------------------------------------------------------------------------------------------------ Como puedes ver existe una variable global FTP_PORT con valor 21. Así pues dudo que este módulo (necesario cuando hay un firewall por medio) funcione si usas un puerto diferente al 21 para FTP. La negociación del puerto de datos se hará por otro puerto distinto al 21 porque así lo pretendes por lo que seguro que este módulo no funciona y Iptables es incapaz de comprender las comunicaciones FTP con el otro puerto. Ojalá alguien mande al carajo mi teoría. Saludos. -- y hasta aquí puedo leer...