Dificultades con servidores FTP y cortafuegos:
Si configura un firewall para un host que ejecuta un servidor FTP, normalmente necesita dejar abierto el rango de puertos 1024-65365, ya que nunca sabe qué puerto utilizará el servidor FTP para enviar datos al cliente FTP. Esta situación es bastante crítica si tiene un host que tiene puertos sensibles por encima de 1024 que deben estar cerrados a Internet. Por supuesto, puede seleccionar cada puerto y cerrarlo en el firewall, pero definitivamente prefiero usar el método de firewall que cierra todo y abre solo los puertos a los que se necesita acceso desde Internet. Aquí es donde pure-ftpd ven al rescate. Este servidor FTP tiene la capacidad de seleccionar el rango de puertos que se utilizarán para transferir datos al cliente FTP. Esto hace que la configuración de un firewall sea mucho más fácil.
En el siguiente ejemplo, pure-ftp tiene la siguiente configuración:
– proporciona FTP y FTPS con usuarios encarcelados (los usuarios están confinados a su directorio principal).
– no hay clientes anónimos
– Versión IP 4 solamente
– los puertos para la transferencia de datos están limitados al rango 20000-20099
PASOS: apt-get install pure-ftpd
echo '20000 20099' > /etc/pure-ftpd/conf/PassivePortRange
echo "yes" > /etc/pure-ftpd/conf/NoAnonymous
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
echo "yes" > /etc/pure-ftpd/conf/IPV4Only
echo "1" > /etc/pure-ftpd/conf/TLS
Si desea obligar a los clientes a usar TLS solo para conexiones FTP, use el comandoecho "3" > /etc/pure-ftpd/conf/TLS
Excepciones a chroot
Si desea limitar a todos los usuarios a sus directorios de inicio, EXCEPTO algunos usuarios de confianza, debe:
– crear un nuevo grupo de sistema donde agregue los usuarios de confianza
– en lugar de usar el comando anterior 'echo “yes”> /etc/pure-ftpd/conf/ChrootEveryone'
inserte el GID del grupo de confianza en el archivo /etc/pure-ftpd/conf/TrustedGID.
Ejemplo: Queremos chroot para todos los usuarios excepto 'martin' y 'jannine'. Lo que significa que martin y jannine podrán navegar en otras partes del sistema que no sean sus directorios de inicio, pero todos los demás usuarios estarán confinados a sus directorios de inicio:groupadd ftptrusted
usermod -G ftptrusted martin
usermod -G ftptrusted jannine
GID=$(grep ftptrusted /etc/group | cut -d: -f3)
echo "$GID" > /etc/pure-ftpd/conf/TrustedGID
rm /etc/pure-ftpd/conf/ChrootEveryone
– Clave privada (en formato PEM)
– Certificado (en formato PEM)
Si, en cambio, desea ejecutarlo con un certificado autofirmado, ejecute los siguientes comandos:mkdir -p /etc/ssl/private/
openssl req -x509 -nodes -days 97300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
Reinicie pure-ftpd para registrar la nueva configuración y certificado.service pure-ftpd restart