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
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:
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:
Ahora, haz clic en el Archivo>Administrador de Sitios. Deberías ver la siguiente imagen:
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:
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: