Configuración FTP · 5 min read · Dec 18, 2025

Cómo instalar y configurar vsftpd con TLS en Debian 8 (Jessie)

Este artículo explica cómo configurar un servidor vsftpd habilitado para TLS en un servidor Debian 8 y cómo acceder al servidor FTP con FileZilla. FTP es un protocolo muy inseguro por defecto 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.

1 Nota Preliminar

En este tutorial, usaré el nombre de host server1.example.com con la dirección IP 192.168.1.100. Estas configuraciones pueden diferir para ti, así que debes reemplazarlas donde sea apropiado. Utilizo la configuración mínima del servidor Debian 8 como base para este tutorial.

2 Instalando vsftpd y OpenSSL

OpenSSL es necesario para TLS; para instalar vsftpd y OpenSSL, simplemente ejecutamos:

apt-get -y install vsftpd openssl

3 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/private

Despué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.pem

Nombre 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…

nano /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

# Todas las conexiones no anónimas están obligadas a usar una conexión SSL segura para
# enviar y recibir datos en conexiones de datos.
force_local_data_ssl=YES

# Todas las conexiones no anónimas están obligadas 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 usar 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 que también tengas 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 de 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

[...] 

Reinicia vsftpd después:

service vsftpd restart

Eso 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 hacerlo con FileZilla.

5 Agregar usuario a vsftpd

En este paso, agregaremos un usuario local de Linux que podemos usar para conectarnos. Crearé un usuario “till” con la contraseña “howtoforge”. Todos los usuarios FTP tendrán sus directorios de inicio en mkdir /var/ftproot, así que crearé este directorio primero.

mkdir /var/ftproot

Luego agrega el usuario con el comando:

adduser --home /var/ftproot/till till

El comando adduser pedirá la contraseña del usuario y algunos otros detalles

root@server1:/# adduser --home /var/ftproot/till till  
Agregando usuario `till' ...  
Agregando nuevo grupo `till' (1001) ...  
Agregando nuevo usuario `till' (1001) con grupo `till' ...  
Creando directorio personal `/var/ftproot/till' ...  
Copiando archivos de `/etc/skel' ...  
Ingresa nueva contraseña UNIX: <-- Ingresa la nueva contraseña aquí  
Vuelve a escribir nueva contraseña UNIX: <-- Ingresa la nueva contraseña aquí  
passwd: contraseña actualizada con éxito  
Cambiando la información del usuario para till  
Ingresa el nuevo valor, o presiona ENTER para el predeterminado  
Nombre Completo []: <-- Ingresa tu nombre aquí o presiona enter para omitir  
Número de Habitación []: <-- Ingresa el número de habitación aquí o presiona enter para omitir  
Teléfono del Trabajo []: <-- Ingresa el teléfono del trabajo aquí o presiona enter para omitir  
Teléfono de Casa []: <-- Ingresa el teléfono de casa aquí o presiona enter para omitir  
Otro []: <-- Ingresa otros detalles del usuario aquí o presiona enter para omitir  
¿Es correcta la información? [Y/n] <-- Y

Hemos agregado con éxito un usuario FTP.

6 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:

Administrador de servidores de Filezilla.

Ingresa la dirección IP o el nombre de host del servidor FTP en el campo del servidor, selecciona el protocolo “FTP” y “Requerir FTP Explícito sobre TLS”, y escribe el nombre de usuario en el campo de usuario.

Detalles de inicio de sesión del servidor Filezilla.

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

aceptar el certificado ssl.

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

inicio de sesión en vsftpd exitoso.

7 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.