Instalar y configurar el servidor VSFTPD en Ubuntu 18.04 LTS

Vsftpd, también conocido como un demonio FTP muy seguro, es un servidor FTP para sistemas tipo Unix. FTP es el protocolo de red estándar más utilizado para cargar/descargar archivos entre dos computadoras a través de una red. De forma predeterminada, FTP no es seguro porque transmite datos junto con las credenciales de usuario sin encriptar.
En este tutorial, aprenderemos cómo instalar Vsftpd con soporte SSL/TLS en el servidor Ubuntu 18.04.
Requisitos
- Un servidor con Ubuntu 18.04.
- Un usuario no root con privilegios sudo.
- La dirección IP estática 192.168.0.102 está configurada.
Instalar vsftpd
De forma predeterminada, Vsftpd está disponible en el repositorio predeterminado de Ubuntu 18.04. Entonces puede instalarlo fácilmente simplemente ejecutando el siguiente comando:
sudo apt-get install vsftpd -y
Una vez que Vsftpd esté instalado, inicie el servicio Vsftpd y habilítelo para que se inicie en el momento del arranque:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
Crear estructura de directorio para FTP
Antes de comenzar, deberá crear un usuario para el acceso FTP.
Puede crear un usuario con el siguiente comando:
sudo adduser vsftp
A continuación, cree un directorio ftp y establezca 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, cree un directorio donde se puedan cargar los archivos y otorgue la propiedad al usuario de vsftp:
sudo mkdir /home/vsftp/ftp/test sudo chown vsftp:vsftp /home/vsftp/ftp/test
Configurar vsftpd
A continuación, deberá realizar algunas configuraciones para configurar el servidor FTP.
Primero, cree una copia de seguridad del archivo de configuración original:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
A continuación, abra el archivo vsftpd.conf:
sudo nano /etc/vsftpd.conf
Agregue 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
Guarde y cierre el archivo. Puede cambiar la configuración anterior según sus necesidades.
A continuación, también deberá agregar el usuario vsftp al archivo /etc/vsftpd.userlist para permitir el acceso FTP:
sudo nano /etc/vsftpd.userlist
Agregue la siguiente línea:
vsftp
Guarde y cierre el archivo, luego reinicie el servicio Vsftpd para aplicar estos cambios:
sudo systemctl restart vsftpd
Ahora, abra su navegador web y escriba la URL ftp://192.168.0.102, se le pedirá que ingrese el nombre de usuario y la contraseña para acceder al FTP. Ingrese su nombre de usuario y contraseña de vsftp, luego haga clic en el OK botón. Deberías ver la siguiente página:
Asegure Vsftpd usando SSL/TLS
A continuación, deberá habilitar SSL/TLS para cifrar los datos transferidos a través de FTP.
Para hacerlo, deberá crear un certificado para eso. Puede crear un certificado usando OpenSSL usando 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, deberá modificar el archivo vsftpd.conf y realizar algunos cambios:
sudo nano /etc/vsftpd.conf
Agregue 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
Guarde el archivo, luego reinicie Vsftpd usando el siguiente comando:
sudo systemctl restart vsftpd
Acceda a FTP sobre SSL/TLS
No puede acceder a su servidor FTP a través de SSL/TLS a través del navegador. Por lo tanto, deberá instalar el cliente FTP FileZilla para acceder a su servidor FTP. Porque FileZilla admite FTP sobre SSL/TLS.
Puede instalar el cliente FileZilla usando el siguiente comando:
sudo apt-get install filezilla -y
Una vez que FileZilla esté instalado, ábralo desde su tablero de Unity. Deberías ver la siguiente imagen:
Ahora, haga clic en el Archivo>Administrador de sitios. Deberías ver la siguiente imagen:
Aquí, agregue Nuevo sitio y proporcione el nombre del host/sitio, agregue la dirección IP, defina el protocolo a usar, el cifrado y el tipo de inicio de sesión. Luego haga clic en el Conectar botón. Deberías ver la siguiente imagen:
Ahora, verifique el certificado que se utiliza para la conexión SSL/TLS y haga clic en OK una vez más para conectarse al servidor FTP. Debería ver el contenido de su servidor FTP en la siguiente página: