Instale el servidor FTP VSFTPD en Ubuntu 20.04 LTS Linux

Este tutorial es para saber cómo podemos instalar, configurar y usar el servidor FTP VSFTPD en Ubuntu 20.04 LTS Focal Fossa usando el terminal de comando.

Vsftpd es un servidor FTP que está diseñado muy conscientemente para la seguridad. Para example, el programa comprueba su configuración y los derechos de todos los archivos a los que tiene acceso antes de iniciar y se niega a iniciar si está configurado incorrectamente. Podemos usar este programa de código abierto para configurar un servidor FTP en Ubuntu Linux. Estos son los comandos a seguir:

Pasos para instalar un servidor FTP VSFTPD en Ubuntu 20.04

Los pasos dados aquí se pueden usar en Ubuntu 20.04, así como en Debian 11, Linux Mint y otras distribuciones de Linux similares.

1. Actualizar Ubuntu 20.04

Comencemos con la ejecución del comando de actualización del sistema porque vamos a usar un administrador de paquetes APT para instalar VSFTPD. Por lo tanto, este paso garantiza que todas las últimas actualizaciones disponibles estén en nuestro sistema.

                      
                        sudo apt update && sudo apt upgrade
                      
                    

2. Instale VSFTPD en Ubuntu 20.04

No necesitamos agregar ningún repositorio de terceros o descargar ningún binario deb manualmente porque el repositorio oficial de Ubuntu es suficiente; use el comando del administrador de paquetes APT que se proporciona a continuación y listo:

                      
                        sudo apt install vsftpd
                      
                    

3. Verifique que el servicio Vsftpd esté activo

Una vez completada la instalación, comprobemos que el servicio de este servidor FTP se está ejecutando en segundo plano sin producir ningún error.

                      
                        systemctl status vsftpd --no-pager -l
                      
                    

4. Cree un usuario para FTP en Ubuntu 20.04

Vamos a crear un usuario que no tendrá sudo access y solo lo usamos para acceder a una carpeta específica en su directorio de inicio para FTP para leer y escribir archivos.

                      
                        sudo adduser h2smedia
                      
                    

Nota : Cambio h2smedia con el nombre que quieras darle a tu usuario. El comando anterior también le pedirá que establezca la contraseña para el usuario.

5. Cree la carpeta FTP:

Ahora, vamos a crear una carpeta en el directorio de inicio del recién creado usuario para que el usuario solo pueda acceder a eso para cargar y descargar archivos. Sin embargo a restringir la acceso del usuario a solo algún directorio específico vsftpd usos chroot que también debemos habilitar, lo que haremos más adelante en este artículo. Sin embargo, hay un problema más, es que VSFTPD no permitirá que un usuario se conecte al servidor FTP si se puede escribir en el directorio de inicio. Por lo tanto, creamos un directorio raíz para un usuario llamado FTP en el hogar del usuario que actuará como- chroot y dentro de eso, habrá otro directorio conocido como upload para guardar los archivos.

Nota : No te olvides de reemplazar h2smedia con su usuario creado.

                      
                        sudo mkdir /home/
                        
                          h2smedia
                        
                        /ftp
                      
                    

Configurar propiedad:

                      
                        sudo chown nobody:nogroup /home/
                        
                          h2smedia
                        
                        /ftp
                      
                    

Elimine el permiso de escritura de la carpeta FTP raíz:

                      
                        sudo chmod a-w /home/
                        
                          h2smedia
                        
                        /ftp
                      
                    

Cree un directorio para cargar archivos, que contendrá sus archivos:

                      
                        sudo mkdir /home/
                        
                          h2smedia
                        
                        /ftp/upload
                      
                    

Otorgue la propiedad de la carpeta de carga creada a nuestro usuario de FTP

                      sudo chown 
                      
                        h2smedia
                      
                      :
                      
                        h2smedia
                      
                       /home/
                      
                        h2smedia
                      
                      /ftp/upload
                    

Ahora para probar, vamos a crear un archivo de demostración dentro de la carpeta de carga:

                      
                        echo "My FTP Server" | sudo tee /home/
                        
                          h2smedia
                        
                        /ftp/upload/demo.txt
                      
                    

Finalmente, verifique el permiso para el directorio FTP:

                      
                        sudo ls -la /home/
                        
                          h2smedia
                        
                        /ftp
                      
                    

6. Configuración de VSFTPD en Ubuntu 20.04

Después de la instalación, el archivo de configuración /etc/vsftpd.conf debe adaptarse a sus propias necesidades con un editor. El archivo está comentado en detalle. No obstante, los ajustes más importantes se explican a continuación.

                      
                        sudo nano /etc/vsftpd.conf
                      
                    

7. Cómo habilitar el usuario anónimo

( opcional ) Por defecto debido a razones de seguridad , nadie puede iniciar sesión en el servidor FTP de forma anónima (sin utilizar un usuario válido). Sin embargo, por alguna razón, si desea habilitarlo, busque una línea- anonymous_enable= No y cambio NO a .

8. Habilitar usuario de FTP local

Bueno, para acceder al servidor FTP utilizando los usuarios que ha creado y disponibles en su sistema, puede buscar una línea a continuación en el archivo de configuración de Vsftpd en Ubuntu 20.04:

                      
                        local_enable=YES
                      
                    

Por defecto, está configurado para o habilitado, por lo tanto, no hay necesidad de hacer nada.

9. Habilitar la carga de archivos y carpetas

En la configuración básica, ningún usuario puede escribir a través de FTP. Ni usuarios locales (si están permitidos por “local_enable=YES”), ni usuarios anónimos. Para habilitar la carga de archivos al servidor FTP, necesitamos

# Descomente esto para habilitar cualquier forma de FTP para escribir un comando.

                      
                        write_enable=YES
                      
                    
VSFTPD FTP Habilitar la carga de carpetas de archivos

10. Restrinja a los usuarios locales a su directorio de inicio

Ahora, restrinja los usuarios locales a sus directorios de inicio. Entonces, no pueden acceder a los archivos fuera de sus directorios de inicio. Encuentre la línea a continuación y elimine el # que se encuentra delante de ella para habilitarla.

                      
                        chroot_local_user=YES
                      
                    
Restrinja a los usuarios locales a su directorio de inicio

Desplácese hasta el final del archivo y las siguientes líneas, esto asegurará que cuando un usuario inicie sesión en el servidor FTP, se enruta al directorio al que se debe acceder.

                      
                        user_sub_token=$USER
local_root=/home/$USER/ftp
                      
                    

Establecer puertos pasivos:

El Vsftpd usa el modo activo de forma predeterminada en los puertos 20/21 para comunicarse si también desea configurar el modo pasivo, que funciona si hay algún problema de firewall entre el cliente y el servidor. Sin embargo, tanto el servidor como el cliente deben admitir el modo FTP pasivo para que este proceso funcione. Sin embargo, los puertos pasivos deben estar permitidos en el firewall del servidor. Conocer su configuración.

                      
                        pasv_min_port=30000
pasv_max_port=31000
                      
                    

Además, agregue las siguientes líneas que aseguran que el VSFTPD solo permita el acceso de los usuarios al servidor FTP que están en su lista, no a nadie al azar.

                      
                        userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
                      
                    

Guarde el archivo usando Control+O golpea el Enter clave, y Exit el archivo usando Ctrl+X .

Además, no olvide abrir puertos en el firewall, si está utilizando UFW, use este comando de otra manera, abra el sistema en su nube o firewall de red. El puerto 900 es para TLS.

                      
                        sudo ufw allow 20,21,990/tcp
                      
                    
                      
                        sudo ufw allow 30000:31000/tcp
                      
                    

11. Agregue el usuario creado a la lista de usuarios de VSFTPD

A continuación, agregue el usuario creado al archivo de lista de usuarios de VSFTPD, para que le permita iniciar sesión y acceder al servidor FTP.

                      
                        echo "h2smedia" | sudo tee -a /etc/vsftpd.userlist
                      
                    

Nota : Reemplazar h2smedia con su usuario creado.

12. Reinicie el servidor VSFTPD

Para aplicar los cambios que hemos hecho hasta ahora, reinicie el servicio del servidor FTP una vez:

                      
                        sudo systemctl restart vsftpd
                      
                    

13. Conéctese al servidor FTP de prueba de Ubuntu 20.04

Podemos usar tanto la línea de comandos como la aplicación GUI para probar el servidor y saber si funciona o no. Probemos primero con la línea de comando:

Usando la línea de comando

-p es para modo pasivo

                      
                        ftp -p 192.168.135.129
                      
                    

Nota : Reemplazar 192.168.135.129 con la dirección de su servidor Ubuntu 20.04 donde está instalado VSFTPD.

Como pedía un Nombre ingrese al servidor FTP nombre de usuario y luego el clave , ha establecido. Si ha configurado todo correctamente, podrá iniciar sesión.

Conéctese para probar el comando VSFTPD de su servidor FTP

Prueba usando el archivo Zilla

Aquí estamos usando el cliente GUI FTP FileZilla, puede usar cualquier otro que tenga. En su cliente FTP ingrese la dirección IP del servidor Ubuntu 20.04 donde configuró el VSFTPD. Después de eso, agregue el nombre de usuario y la contraseña.

Conéctese para probar su servidor FTP VSFTPD FileZilla

14. Configurar SSL/TSL para Vsftpd en Ubuntu 20.04

De forma predeterminada, la transferencia de datos mediante el servidor FTP de Vsftpd no estará en formato cifrado, ni siquiera las credenciales. Para eliminar esta falla de seguridad, podemos configurar SSL mediante OpenSSL para proporcionar cifrado.

En su terminal de comando, primero, ejecute:

                      
                        sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
                      
                    

Esto generará la clave privada de 2048 bits requerida y el certificado SSL autofirmado.

Una vez que haya generado el certificado SSL, edite el archivo de configuración VSFTPD y agregue la ubicación de la clave privada y el certificado SSL.

                      
                        sudo nano /etc/vsftpd.conf
                      
                    

Desplácese hacia abajo para encontrar las siguientes líneas y cambie sus valores como se muestra más adelante:

                      
                        rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
                      
                    

Cambiar los valores de rsa_cert_file y rsa_private_key_file directivas con la ruta del archivo SSL y clave privada que hemos generado. También, cambia ssl_enable=NO a ssl_enable=YES . Como se muestra abajo:

                      
                        rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
                      
                    
Configurar SSL TSL para Vsftpd Ubuntu 22.04

Además, desplácese hasta el final del archivo y agregue:

                      
                        allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
                      
                    

Esto denegará el acceso a la conexión anónima a través de SSL y obligará a los usuarios a transferir datos e iniciar sesión solo con SSL:

Guarde el archivo usando Control+O golpea el Enter y luego salga usando Ctrl+X .

Reinicie el servidor FTP:

                      
                        sudo systemctl restart vsftpd
                      
                    

Ahora, verifique si podemos acceder al servidor FTP a través de TSL o no. Aquí estamos usando nuevamente el FileZilla:

Aceptar certificado autofirmado para servidor FTP
Instale el servidor FTP VSFTPD en Ubuntu 20.04 Linux Focal

15. Cómo actualizar VSFTPD

Como hemos utilizado el repositorio del sistema predeterminado para instalar el servidor FTP de código abierto VSFTPD en Ubuntu 20.04, por lo tanto, también podemos usar el comando de actualización y actualización del sistema para obtener futuras actualizaciones para esta aplicación de servidor.

                      
                        sudo apt update && sudo apt upgrade
                      
                    

16. Desinstalar o Eliminar

Para desinstalar completamente VSFTPD de Ubuntu 20.04, en caso de que ya no necesite este servidor FTP en su sistema. Entonces, aquí está el comando a seguir:

                      
                        sudo apt autoremove --purge vsftpd*
                      
                    

Related Posts