Guía de Instalación y Configuración del Servidor FTP, VSFTP en Ubuntu 18.04
Instalación de VSFTP
Lo primero es Actualizar nuestro sistema de paquetes y hacer un Upgrade si fuera necesario
1 2 |
$ sudo apt update $ sudo apt upgrade |
Iniciamos la instalación de vsftp
1 |
$ sudo apt-get install vsftpd |
Iniciamos el Servidor FTP
1 |
sudo systemctl start vsftpd |
Y le indicamos que lo ejecute cada vez que iniciemos el sistema
1 |
sudo systemctl enable vsftpd |
Creación de Usuarios
Para incluir nuevos usuarios usaremos el comando useradd
1 |
sudo useradd -m wordpress |
Asignamos una nueva clave al usuario con el comando passwd
1 |
sudo passwd wordpress |
Configuración de VSFTP
Vamos a cambiar el nombre al fichero de configuración para tener una copia de seguridad
1 |
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.backup |
Y procedemos a crear un nuevo fichero de configuración vsftpd.conf
1 |
sudo nano /etc/vsftpd.conf |
Con la siguiente configuración
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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=10100 allow_writeable_chroot=YES ssl_enable=NO |
Permisos de Acceso
Una parte importante de este proceso es asignar al usuario que acabamos de crear permisos sobre su directorio de trabajo
Para ello usamos usermod que nos permite cambiar las propiedades de un usuario ya creado previamente con useradd
Yo me he creado un servidor virtual en nginx para trabajar con WordPress en local (en el siguiente tutorial explicaré como crearlo)
1 |
sudo usermod -d /var/www/wordpress.local wordpress |
Ahora usaremos el comando chown para indicar que el propietario de todo el directorio es el usuario wordpress
1 |
sudo chown -R wordpress:wordpress /var/www/wordpress.local/ |
Reiniciamos el servidor FTP para que todos los cambios surjan efecto y probamos a conectar
1 |
sudo systemctl restart vsftpd |
Podemos comprobar el fichero de log para comprobar, conexiones, descargas, uploads, etc
1 |
tail -f /var/log/vsftpd.log |
Activación de TLS (Transport Layer Security)
Para asegurar la información que enviamos y recibimos de nuestro FTP vamos a activar TLS (Transport Layer Security)
1 |
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem |
Editamos nuevamente el fichero de configuración vsftpd.conf
1 |
$ sudo nano /etc/vsftpd.conf |
Y vamos a incluir las siguientes lineas de configuración:
1 2 3 4 5 6 7 8 9 10 11 |
ssl_enable=YES rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem 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 |
Ahora nos pedirá aceptar un certificado de seguridad