Instalar/configurar vsftp
¿Qué es VSFTPD?
VSFTPD es un software de servidor FTP. Las dos primeras letras de VSFTPD significan "muy seguro". El software se construyó en torno a las vulnerabilidades del protocolo FTP. Sin embargo, siempre debe recordar que existen mejores soluciones para la transferencia y administración segura de archivos, como SFTP (usa openssh). El protocolo FTP es particularmente útil para compartir datos no confidenciales y es muy confiable en eso.
Instalando VSFTPD
Puede instalar rápidamente VSFTPD en su servidor a través de la interfaz de línea de comandos con:
sudo apt-get install vsftpd
Reiniciando el servicio
Después de configurar el servidor, debe reiniciar el servicio para que los cambios surtan efecto:
sudo /etc/init.d/vsftpd restart
Configuración
La mayor parte de la configuración de VSFTPD se lleva a cabo en /etc/vsftpd.conf. El archivo en sí está bien documentado, por lo que esta sección solo destaca algunos cambios importantes que es posible que desee realizar. Para ver todas las opciones disponibles y la documentación básica, consulte las páginas del manual:
man vsftpd.conf
Los archivos se sirven de forma predeterminada desde /srv/ftp según el Estándar de jerarquía del sistema de archivos.
Habilitar la carga
El indicador "write_enable" debe establecerse en YES para permitir cambios en el sistema de archivos, como la carga:
write_enable=YES
Permitir que los usuarios locales inicien sesión
Para permitir que los usuarios en /etc/passwd inicien sesión, la directiva "local_enable" debe tener el siguiente aspecto:
local_enable=YES
Inicio de sesión anónimo
Las siguientes líneas controlan si los usuarios anónimos pueden iniciar sesión:
# Allow anonymous login
anonymous_enable=YES# No password is required for an anonymous login (Optional)
no_anon_password=YES# Maximum transfer rate for an anonymous client in Bytes/second (Optional)
anon_max_rate=30000# Directory to be used for an anonymous login (Optional)
anon_root=/example/directory/
Cárcel de Chroot
Es posible configurar un entorno chroot, lo que evita que el usuario abandone su directorio de inicio. Para habilitar esto, agregue o cambie las siguientes líneas en el archivo de configuración:
chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
La variable "chroot_list_file" especifica el archivo en el que se encuentran los usuarios encarcelados.
Para un entorno más restrictivo, debe realizar el siguiente cambio:
chroot_local_user=YES
NOTA: Esto hará que los usuarios locales sean encarcelados de forma predeterminada. En este caso, el archivo especificado por "chroot_list_file" enumera los usuarios que no están en una jaula chroot.
Debido a una actualización reciente de VSFTPD, el servidor se negará a ejecutar el servicio con root grabable dentro de la carpeta chroot. Una manera fácil de abordar este problema es hacer lo siguiente:
- Crear un nuevo directorio dentro del directorio de inicio del usuario
mkdir /home/username/files
- Cambie la propiedad de ese archivo a root (el usuario que inicia sesión a través de FTP no puede tener permisos de escritura en esta carpeta)
chown root:root /home/username
- Realice todos los cambios necesarios dentro del subdirectorio "archivos"
Usando SSL para asegurar FTP
Generar un certificado SSL
Lo siguiente es solo un ejemplo. Debe leer la documentación de OpenSSL para que pueda terminar con una configuración más adecuada. Se le harán muchas preguntas, que pueden ser ignoradas, si no planea que el certificado sea parte de una cadena intrincada (consulte la Documentación). Este certificado se utilizará para el cifrado. Si necesita que su certificado sea de confianza con software preexistente y otras instituciones, debe obtener uno de una Autoridad de Certificación reconocida como: Thawte, Verisign,...
cd /etc/ssl/certs openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/certs/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem chmod 600 /etc/ssl/certs/vsftpd.pem
Configurar VSFTPD
Las siguientes directivas permitirán a los clientes usar SSL y cómo lo harán:
ssl_enable=YES# To accept anon connections when SSL is enabled on the server
allow_anon_ssl=NO# This option will improve performance on limited hardware
force_local_data_ssl=NO# To disallow normal FTP logins and only accept SSL encrypted connections
force_local_logins_ssl=YES# It is a good idea to enable one or multiple of these for security reasons (see documentation)
ssl_tlsv1=YES# Choose what you prefer
ssl_sslv2=YES# Choose what you prefer
ssl_sslv3=YES
# Include the path to your previously generated *.pem file
rsa_cert_file=/etc/ssl/certs/vsftpd.pem# Include the path to the private key # The *.pem file contains both the key and cert if you used the command above
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem