Instalar y configurar el servidor VSFTPD en Ubuntu 18.04 LTS

Vsftpd, también conocido como demonio FTP muy seguro, es un servidor FTP para sistemas tipo Unix. El FTP es el protocolo de red estándar más utilizado para subir/bajar archivos entre dos ordenadores a través de una red. Por defecto, el FTP es inseguro porque transmite los datos junto con las credenciales del usuario sin encriptación.

En este tutorial, aprenderemos a instalar Vsftpd con soporte SSL/TLS en un servidor Ubuntu 18.04.

Requisitos

  • Un servidor con Ubuntu 18.04.
  • Un usuario no root con privilegios sudo.
  • Dirección IP estática 192.168.0.102 configurada.

Instalar Vsftpd

Por defecto, Vsftpd está disponible en el repositorio por defecto de Ubuntu 18.04. Así que puedes instalarlo fácilmente con sólo ejecutar el siguiente comando:

sudo apt-get install vsftpd -y

Una vez instalado Vsftpd, inicia el servicio Vsftpd y habilítalo para que se inicie en el arranque:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

Crea una estructura de directorios para el FTP

Antes de empezar, tendrás que crear un usuario para el acceso al FTP.

Puedes crear un usuario con el siguiente comando:

sudo adduser vsftp

A continuación, crea un directorio ftp y establece la propiedad con el siguiente comando:

sudo mkdir /home/vsftp/ftp
sudo chown nobody:nogroup /home/vsftp/ftp
sudo chmod a-w /home/vsftp/ftp

A continuación, crea un directorio donde se puedan subir archivos y dale la propiedad al usuario vsftp:

sudo mkdir /home/vsftp/ftp/test
sudo chown vsftp:vsftp /home/vsftp/ftp/test

Configurar Vsftpd

A continuación, tendrás que realizar algunas configuraciones para configurar el servidor FTP.

Primero, crea una copia de seguridad del archivo de configuración original:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

A continuación, abre el archivo vsftpd.conf:

sudo nano /etc/vsftpd.conf

Añade las siguientes líneas:

 listen=NO
 listen_ipv6=YES
 anonymous_enable=NO
 local_enable=YES
 write_enable=YES
 local_umask=022
 dirmessage_enable=YES
 use_localtime=YES
 xferlog_enable=YES
 connect_from_port_20=YES
 chroot_local_user=YES
 secure_chroot_dir=/var/run/vsftpd/empty
 pam_service_name=vsftpd
 pasv_enable=Yes
 pasv_min_port=10000
 pasv_max_port=11000
 user_sub_token=$USER
 local_root=/home/$USER/ftp
 userlist_enable=YES
 userlist_file=/etc/vsftpd.userlist
 userlist_deny=NO

Guarda y cierra el archivo. Puedes cambiar la configuración anterior según tus necesidades.

A continuación, también deberás añadir el usuario vsftp al archivo /etc/vsftpd.userlist para permitir el acceso al FTP:

sudo nano /etc/vsftpd.userlist

Añade la siguiente línea:

vsftp

Guarda y cierra el archivo, luego reinicia el servicio Vsftpd para aplicar estos cambios:

sudo systemctl restart vsftpd

Ahora, abre tu navegador web y escribe la URL ftp://192.168.0.102, se te pedirá que introduzcas el nombre de usuario y la contraseña para acceder al FTP. Introduce tu nombre de usuario y contraseña de vsftp, y haz clic en el botón Aceptar. Deberías ver la siguiente página:

Acceder al servidor por FTP

Asegurar Vsftpd usando SSL/TLS

A continuación, tendrás que activar SSL/TLS para encriptar los datos transferidos por FTP.

Para ello, necesitarás crear un certificado para ello. Puedes crear un certificado utilizando OpenSSL con el siguiente comando:

sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem

A continuación, tendrás que modificar el archivo vsftpd.conf y realizar algunos cambios:

sudo nano /etc/vsftpd.conf

Añade las siguientes líneas:

rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

Guarda el archivo, y luego reinicia Vsftpd utilizando el siguiente comando:

sudo systemctl restart vsftpd

Acceder a FTP sobre SSL/TLS

No puedes acceder a tu servidor FTP sobre SSL/TLS a través del navegador. Por tanto, tendrás que instalar el cliente FTP FileZilla para acceder a tu servidor FTP. Porque FileZilla soporta FTP sobre SSL/TLS.

Puedes instalar el cliente FileZilla utilizando el siguiente comando:

sudo apt-get install filezilla -y

Una vez instalado el FileZilla, ábrelo desde tu dash de Unity. Deberías ver la siguiente imagen:

Cliente FTP FileZilla

Ahora, haz clic en el Archivo>Administrador de Sitios. Deberías ver la siguiente imagen:

Añadir sitio en FileZilla

Aquí, añade un Nuevo sitio y proporciona el nombre del host/sitio, añade la dirección IP, define el protocolo a utilizar, la encriptación y el tipo de inicio de sesión. A continuación, haz clic en el botón Conectar. Deberías ver la siguiente imagen:

Aceptar certificado SSL

Ahora, verifica el certificado que se está utilizando para la conexión SSL/TLS, y haz clic en Aceptar una vez más para conectarte al servidor FTP. Deberías ver el contenido de tu servidor FTP en la siguiente página:

Establecida la conexión FTP con el servidor Vsftpd

También te podría gustar...