Configuración FTP · 4 min read · Dec 23, 2025
Configuración de vsftpd + TLS en Debian Squeeze
Configuración de vsftpd + TLS en Debian Squeeze
Versión 1.0
Autor: Falko Timme
Sígueme en Twitter
FTP es un protocolo muy inseguro porque todas las contraseñas y todos los datos se transfieren en texto claro. Al usar TLS, toda la comunicación puede ser cifrada, haciendo que FTP sea mucho más seguro. Este artículo explica cómo configurar vsftpd con TLS en un servidor Debian Squeeze.
¡No garantizo que esto funcione para ti!
1 Nota Preliminar
En este tutorial utilizo el nombre de host server1.example.com con la dirección IP 192.168.0.100. Estas configuraciones pueden diferir para ti, así que debes reemplazarlas donde sea apropiado.
2 Instalando vsftpd y OpenSSL
OpenSSL es necesario para TLS; para instalar vsftpd y OpenSSL, simplemente ejecutamos:
apt-get install vsftpd openssl3 Creando el Certificado SSL para TLS
Para usar TLS, debemos crear un certificado SSL. Lo creo en /etc/ssl/private - si el directorio no existe, créalo ahora::
mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/privateDespués, podemos generar el certificado SSL de la siguiente manera:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pemNombre del País (código de 2 letras) [AU]: <– Ingresa el Nombre de tu País (por ejemplo, “DE”).
Nombre del Estado o Provincia (nombre completo) [Some-State]: <– Ingresa el Nombre de tu Estado o Provincia.
Nombre de la Localidad (por ejemplo, ciudad) []: <– Ingresa tu Ciudad.
Nombre de la Organización (por ejemplo, empresa) [Internet Widgits Pty Ltd]: <– Ingresa el Nombre de tu Organización (por ejemplo, el nombre de tu empresa).
Nombre de la Unidad Organizativa (por ejemplo, sección) []: <– Ingresa el Nombre de tu Unidad Organizativa (por ejemplo, “Departamento de TI”).
Nombre Común (por ejemplo, TU nombre) []: <– Ingresa el Nombre de Dominio Totalmente Calificado del sistema (por ejemplo, “server1.example.com”).
Dirección de Correo Electrónico []: <– Ingresa tu Dirección de Correo Electrónico.
4 Habilitando TLS en vsftpd
Para habilitar TLS en vsftpd, abre /etc/vsftpd.conf…
vi /etc/vsftpd.conf… y agrega o cambia las siguientes opciones:
| [...] # Activar SSL ssl_enable=YES # Permitir que los usuarios anónimos usen conexiones SSL seguras allow_anon_ssl=YES # Todos los inicios de sesión no anónimos están obligados a usar una conexión SSL segura para # enviar y recibir datos en conexiones de datos. force_local_data_ssl=YES # Todos los inicios de sesión no anónimos están obligados a usar una conexión SSL segura para enviar la contraseña. force_local_logins_ssl=YES # Permitir conexiones del protocolo TLS v1. Las conexiones TLS v1 son preferidas ssl_tlsv1=YES # Permitir conexiones del protocolo SSL v2. Las conexiones TLS v1 son preferidas ssl_sslv2=NO # permitir conexiones del protocolo SSL v3. Las conexiones TLS v1 son preferidas ssl_sslv3=NO # Desactivar la reutilización de sesiones SSL (requerido por WinSCP) require_ssl_reuse=NO # Seleccionar qué cifrados SSL vsftpd permitirá para conexiones SSL cifradas (requerido por FileZilla) ssl_ciphers=HIGH # Esta opción especifica la ubicación del certificado RSA a utilizar para conexiones SSL # cifradas. rsa_cert_file=/etc/ssl/private/vsftpd.pem [...] |
Si usas force_local_logins_ssl=YES y force_local_data_ssl=YES, entonces solo se permiten conexiones TLS (esto bloquea a cualquier usuario con clientes FTP antiguos que no tienen soporte para TLS); al usar force_local_logins_ssl=NO y force_local_data_ssl=NO se permiten tanto conexiones TLS como no TLS, dependiendo de lo que soporte el cliente FTP.
Aparte de las opciones de TLS, asegúrate de tener también las siguientes configuraciones en tu vsftpd.conf para habilitar inicios de sesión no anónimos:
| [...] # Descomentar esto para permitir que los usuarios locales inicien sesión. local_enable=YES # # Descomentar esto para habilitar cualquier forma de comando de escritura FTP. write_enable=YES # # La máscara umask predeterminada para usuarios locales es 077. Puede que desees cambiar esto a 022, # si tus usuarios esperan eso (022 es utilizado por la mayoría de otros ftpd's) local_umask=022 [...] # Puedes restringir a los usuarios locales a sus directorios personales. Consulta las preguntas frecuentes para # los posibles riesgos en esto antes de usar chroot_local_user o # chroot_list_enable a continuación. chroot_local_user=YES [...] |
Reinicia vsftpd después:
/etc/init.d/vsftpd restartEso es todo. Ahora puedes intentar conectarte usando tu cliente FTP; sin embargo, debes configurar tu cliente FTP para usar TLS (esto es obligatorio si usas force_local_logins_ssl=YES y force_local_data_ssl=YES) - consulta el siguiente capítulo sobre cómo hacer esto con FileZilla.
5 Configurando FileZilla para TLS
Para usar FTP con TLS, necesitas un cliente FTP que soporte TLS, como FileZilla.
En FileZilla, abre el Administrador de Servidores:
Selecciona el servidor que usa vsftpd con TLS; en el menú desplegable Tipo de Servidor, selecciona FTPES en lugar de FTP normal:

Ahora puedes conectarte al servidor. Si lo haces por primera vez, debes aceptar el nuevo certificado SSL del servidor:

Si todo va bien, ahora deberías estar conectado al servidor:

6 Enlaces
- vsftpd: https://security.appspot.com/vsftpd.html
- FileZilla: http://filezilla-project.org/
- Debian: http://www.debian.org/
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.