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

Revisiones

05/13/2025 - 18:28
Carlos segura