Instalar un servidor FTP en Ubuntu VPS en 6 sencillos pasos
Este artículo te ayuda a configurar un servidor FTP en un VPS con Ubuntu. Te guiaremos por los pasos principales para que configures todo correctamente y compruebes el resultado.
La guía se centrará en el uso del servidor vsftpd como una de las herramientas más rápidas y precisas para la instalación de FTP. Si trabajas con sistemas tipo UNIX, esta guía responderá a tus preguntas y te guiará paso a paso.
Qué es FTP
FTP es un protocolo de transferencia de archivos. ¿Qué hace? Se utiliza para transferir archivos en línea con la ayuda del protocolo TCP/IP. Es un medio muy útil para compartir archivos. FTP funciona según el modelo cliente-servidor: un cliente FTP se conecta al servidor para subir o descargar archivos. Además, puede combinarse con SSL/TLS (FTPS) para cifrar la conexión.
En algunos casos, se puede comparar el FTP con el HTTP o el SMTP. Estos términos significan Protocolo de Transferencia de Hipertexto y Protocolo de Transferencia de Correo Simple, respectivamente. ¿Cuál es la diferencia? El FTP se encarga de la transferencia de archivos, mientras que el HTTP es responsable de las páginas web y el SMTP de los correos electrónicos.
¿Es necesario realizar algún paso previo antes de comenzar con la guía? Lo más importante es hacer una copia de seguridad del VPS antes de empezar. La guía se escribió para Ubuntu 18.04, pero los pasos son los mismos en versiones más recientes. Ahora, sin más preámbulos, pasemos directamente a los pasos.
Cómo instalar un servidor FTP en 6 sencillos pasos: guía completa explicada
Si sabes cómo conectarte a un servidor por SSH, puedes continuar. Si no, conviene que repases primero los conceptos básicos.
Instala vsftpd
1. Como primer paso, la instalación de vsftpd requiere algunos preparativos previos. Primero actualiza la lista de paquetes:
sudo apt-get update
Cuando termine, verás la confirmación.
1. El siguiente paso es instalar vsftpd:
sudo apt-get install vsftpd
El sistema te pedirá que introduzcas Y y pulses Intro para iniciar la instalación.
1. Cuando termine la instalación, haz una copia de seguridad del archivo de configuración original, por si necesitas volver a él:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
Cuando hayas completado los primeros pasos, es el momento de pasar al proceso de configuración del cortafuegos.
Asegura el tráfico FTP desde el cortafuegos
1. Un cortafuegos es un paso inevitable si quieres completar el proceso y permitir que Ubuntu FTP transfiera archivos en línea. Pero el primer paso es ligeramente diferente. Debes asegurarte de que el cortafuegos está activado de forma fiable en tu máquina. Se puede hacer con un simple comando. Ejecútalo y verás el estado actual:
sudo ufw status
¿Cómo saber si el cortafuegos está activado? El mensaje «ufw: comando no encontrado» indica que no hay cortafuegos en el sistema. Para instalarlo y activarlo, introduce estos comandos:
sudo apt-get install ufw
sudo ufw enable
Así activarás el cortafuegos.
1. Con el cortafuegos activado, abre los puertos necesarios para SSH y FTP:
sudo ufw allow OpenSSH
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
Así se abren OpenSSH, los puertos 20 y 21, el puerto 990 (FTP sobre TLS) y el rango 40000:50000 para el modo pasivo.
3. El último paso es comprobar el estado:
sudo ufw status
Asegúrate de revisar y comprobar cuidadosamente el resultado. Debería aparecer de la siguiente manera:
Crea el usuario y su directorio FTP
1. Después del cortafuegos, crea el usuario que usará el acceso FTP. En el ejemplo se llama bluevps; cambia el nombre por el que necesites:
sudo adduser bluevps
2. El comando te pedirá la contraseña y los datos del usuario. Por seguridad, cada usuario FTP debe quedar limitado a su propio directorio, así que crearemos una carpeta ftp dentro de su home.
3. Tu tarea consiste en ejecutar uno por uno los comandos que se explican en la siguiente lista.
sudo mkdir /home/bluevps/ftp
sudo chown nobody:nogroup /home/bluevps/ftp
sudo chmod a-w /home/bluevps/ftp
sudo ls -la /home/bluevps/ftp
En primer lugar, crea la carpeta y establece la propiedad. A continuación, elimina el permiso de escritura y utiliza el último comando para verificar los permisos.
4. Dentro de esta carpeta puedes crear un subdirectorio con permisos de escritura (por ejemplo, files) y asignarle como propietario al usuario.
Es hora de configurar vsftpd
Ahora toca configurar vsftpd para que el usuario pueda acceder por FTP a su directorio. Abre el archivo de configuración:
sudo nano /etc/vsftpd.conf
1. Comprueba que estas opciones están activas (sin # delante) para permitir el acceso de usuarios locales y la escritura:
local_enable=YES
write_enable=YES
2. Descomenta la línea chroot_local_user y deja su valor en YES, para que cada usuario quede encerrado en su directorio:
chroot_local_user=YES
3. Añade al final del archivo el directorio raíz de cada usuario. Cada directiva va en su propia línea:
user_sub_token=$USER
local_root=/home/$USER/ftp
4. Limita el rango de puertos para el modo pasivo (el mismo que abriste en el cortafuegos):
pasv_min_port=40000
pasv_max_port=50000
5. Para mayor seguridad, permite el acceso solo a los usuarios incluidos en una lista:
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Guarda los cambios con CTRL+O y sal con CTRL+X.
6. Crea la lista de usuarios y añade tu usuario:
echo "bluevps" | sudo tee -a /etc/vsftpd.userlist
Comprueba que se ha añadido correctamente:
cat /etc/vsftpd.userlist
Por último, reinicia el servicio para aplicar la configuración:
sudo systemctl restart vsftpd
Trabajar en la seguridad
1. Por defecto, FTP no cifra los datos. Para protegerlos, crea un certificado SSL/TLS:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
El comando te pedirá algunos datos (país, organización, nombre del servidor) que se incluirán en el certificado.
2. Vuelve a abrir /etc/vsftpd.conf. Al final del archivo verás dos líneas que empiezan por rsa_. Coméntalas con # y añade debajo las rutas del certificado que acabas de crear:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
3. Habilita SSL, desactívalo para usuarios anónimos y obliga a usarlo en el inicio de sesión y en la transferencia de datos:
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
4. Desactiva la reutilización de sesiones SSL (algunos clientes FTP fallan con ella) y exige cifrados robustos. Cada directiva en su propia línea:
require_ssl_reuse=NO
ssl_ciphers=HIGH
Guarda el archivo con CTRL+O y sal con CTRL+X.
5. Reinicia vsftpd para que la nueva configuración entre en vigor:
sudo systemctl restart vsftpd
Prueba todo
Hoy en día, encontrarás clientes que utilizan principalmente las configuraciones TLS. Este enfoque puede ayudar a comprobar si todo funciona correctamente. Puedes probar personalmente la conexión con la ayuda del cliente FTP FileZilla. A continuación te explicamos cómo hacerlo:
1. Primero debes iniciar FileZilla y hacer clic en el icono rodeado de rojo. Asegúrate de hacer clic en el botón «Nuevo sitio» para introducir los datos del servidor.
2. Ahora rellena los campos con los datos del servidor Ubuntu que acabas de configurar. En «Cifrado» elige la opción «Use explicit FTP over TLS» (Usar FTP explícito sobre TLS).
3. Haz clic en «Conectar», introduce la contraseña y pulsa «Aceptar».
4. El último paso es la verificación del certificado SSL FTP en Ubuntu VPS. Cuando lo hayas confirmado todo, deberías ver el directorio raíz del archivo de prueba en la pantalla. Será un archivo de prueba.
¡Ya está! Ahora puedes transferir los archivos de Internet desde tu fuente al servidor FTP de Ubuntu. Puede parecer un poco complicado, pero los comandos claros te ayudarán mucho en el proceso.
Conclusión
Con un servidor FTP en Ubuntu es fácil transferir archivos de cualquier tipo. Al usar SSL/TLS sobre TCP/IP, la transferencia es segura y fiable.
Este tutorial cubre 6 sencillos pasos para configurar todo y ponerlo en marcha.
1. En primer lugar, instala vsftpd y haz una copia de seguridad del archivo de configuración.
2. A continuación, asegúrate de que el cortafuegos permite el acceso a las conexiones FTP.
3. El siguiente paso fue crear un directorio de usuario con los accesos pertinentes.
4. Una vez hecho esto, es el momento de configurar vsftpd.
5. A continuación, se protege el servidor FTP.
6. Y el último paso es probar todo en FileZilla.
Deberías saber más sobre la instalación del servidor FTP, ¡así que buena suerte con el proceso!
Blog