Problemas para permitir acceso al servidor ftp a través de iptables
Buenas a todos!
El asunto es que tengo un servidor con apache, proftpd y ssh. He creado un script de iptables con política por defecto DROP. He creado todas las reglas para permitir el acceso a la web, por ssh y demás, pero el acceso al ftp no me funciona y no se porque, ya que en principio las reglas están bien. Las referentes al ftp son la siguientes:
##Servidor FTP
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
iptables -A INPUT -p tcp -m tcp --sport 50000:50050 --dport 50000:50050 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 50000:50050 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
He estado leyendo por ahí que hay que cargar el módulo ip_conntrack_ftp, pero no entiendo muy bien que hace ese módulo y aunque lo cargue sigo son poder conectarme.
Alguna idea? Las reglas son correctas o hay algún fallo que se me escapa?
Gracias y salut!
- Inicie sesión o regístrese para enviar comentarios
- 819 lecturas


No veo ninguna regla en INPUT que acepte los puertos 20:21 con el estado NEW
Buenas a todos!
El asunto es que tengo un servidor con apache, proftpd y ssh. He creado un script de iptables con política por defecto DROP. He creado todas las reglas para permitir el acceso a la web, por ssh y demás, pero el acceso al ftp no me funciona y no se porque, ya que en principio las reglas están bien. Las referentes al ftp son la siguientes:
##Servidor FTP
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
iptables -A INPUT -p tcp -m tcp --sport 50000:50050 --dport 50000:50050 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 50000:50050 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
He estado leyendo por ahí que hay que cargar el módulo ip_conntrack_ftp, pero no entiendo muy bien que hace ese módulo y aunque lo cargue sigo son poder conectarme.
Alguna idea? Las reglas son correctas o hay algún fallo que se me escapa?
Gracias y salut!
Algo te falta y es esto:
iptables -A INPUT -m state --state NEW -p tcp --dport 20:21 -j ACCEPTAdemás de la regla NEW que te han dicho los compañeros, creo que esto está al revés:
...-A INPUT -p tcp -m tcp --sport 20:21
...
Si estamos hablando de las reglas del servidor (no me ha quedado claro si es así), debes aceptar las conexiones entrantes a los puertos 20,21 como destino y las salientes con los puertos 20,21 como origen, ¿no? Vamos, que creo que sería así:
##Servidor FTPiptables -A INPUT -p tcp -m tcp --dport 20:21 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 20:21 -j ACCEPT
Las de los puertos 50000 no sé si las usas para algo en concreto, si no es así me parece que el módulo contrack_ftp se encarga de manejar las conexiones auxiliares de ftp, y con las reglas para los puertos 20 y 21 es suficiente.
Buenas! Muchas gracias por las respuestas, perdonad que no haya contestado antes pero el fin de semana no he podido conectarme...
Efectivamente krli, tienes razón, los puertos de entrada / salida estaban al revés...
se me había pasado, tanto remirarme las reglas me había quedado atontado jeje
Lo que dice Cubano_gold lo había pensado, pero suponía que al no especificar el estado de la conexión en la regla se daba por supuesto que eran conexiones nuevas, pero visto lo visto no es así.
Los puertos 50000:50050 son los que tengo como passive_ports en la configuración de proftpd, por eso también los abría, pero efectivamente con el módulo ip_conntrack_ftp no debería hacer falta ya que se encarga de ello.
Total, que ahora puedo conectarme, pero no listar el directorio. Si hago un scan de puertos me dice que el 20 está cerrado, pero el 21 abierto. Las reglas han quedado tal que así:
iptables -A INPUT -p tcp -m tcp --dport 20:21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 20:21 -j ACCEPT
No entiendo porque sigue diciendo que el puerto 20 está cerrado.... Alguna idea?
No entiendo porque sigue diciendo que el puerto 20 está cerrado.... Alguna idea?
Sí, no está siendo utilizado por ningún servicio en escucha.
Saludos