En esta
pequeña entrada comentare como configurar el servicio VSFTPD en modo pasivo y
los ajustes correspondientes en las reglas IPTABLES para evitar problemas de
acceso al servicio.
El
servicio vsftpd nos permite instalar en un servidor FTP en Ubuntu y
configurarlo en modo pasivo. En el siguiente link se explica la diferencia
entre los modos activos y pasivos del servicio FTP (http://mimesadetrabajo.blogspot.com/2009/01/ftp-modo-pasivo-o-modo-activo.html).
A mi modo de ver esta concepción nos
puede traer un dolor de cabeza, como fue en mi caso. El asunto es que en el
modo pasivo el cliente pide un puerto al servidor para la conexión de datos,
dicho puerto es aleatorio, de modo que: ¿Cómo configuramos iptables y vsftpd
para conocer de antemano los puertos que serán abiertos? Y así evitar problemas
de acceso al servicio.
VSFTPD
Editamos el fichero de configuración
del servicio vsftpd en Ubuntu en la ruta /etc/vsftpd.conf y ajustamos los
siguientes parámetros:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=65535
Con estos parámetros le estamos
diciendo al servicio que trabaje en modo pasivo y que use el rango de puertos
30000 – 65535 para el tráfico de datos.
IPTABLES
Editamos nuestro script de
iptables y configuramos las siguientes reglas
iptables -A INPUT -s $RED1 -p tcp -- dport 20:21 -j ACCEPT
iptables -A OUTPUT -s $RED1 -p tcp --sport 20:21 -j ACCEPT
iptables -A INPUT -s $RED1 -p tcp --dport 30000:65535 -j ACCEPT
iptables -A OUTPUT -s $RED1 -p tcp --sport 30000:65535 -j ACCEPT
Estas reglas iptables permiten
comunicación a la red definida en la variable RED1 a los rangos de puertos del
server del 21-21 y del 30000-65535.
Como se aprecia en este pequeño
articulo solo me limito a mostrar la configuración de ambos servicios para que
trabajen coherentemente para el modo pasivo del vsftpd.