En este artículo, aprenderá cómo configurar un servidor FTP en un Ubuntu VPS. Usaremos un servidor vsftpd, que es ampliamente considerado como el servidor FTP más rápido y seguro para sistemas tipo UNIX.
¿Qué es FTP?
FTP, o Protocolo de transferencia de archivos, es un medio para compartir archivos entre computadoras a través de una conexión a Internet usando el protocolo TCP/IP. También hace uso de un marco cliente-servidor y seguridad SSL/TLS para garantizar una transferencia de datos segura y confiable.
Esto es algo similar a HTTP (Protocolo de transferencia de hipertexto) o SMTP (Protocolo simple de transferencia de correo). La diferencia es que FTP es responsable de transportar archivos a través de Internet, mientras que HTTP y SMTP manejan la transferencia de páginas web y correos electrónicos, respectivamente.
Antes de comenzar, tenga en cuenta que lo guiaremos a través de la configuración de un servidor FTP en Ubuntu 18.04. Por lo tanto, debe asegurarse de que su VPS se ejecute en ese sistema operativo en particular.
Cómo configurar un servidor FTP en Ubuntu
Este tutorial requiere que sepa cómo conectarse a un servidor a través de SSH. Si posee el VPS de Hostinger, los detalles de inicio de sesión están disponibles en el Servidor pestaña del hPanel.
Paso 1:Instalación de vsftpd
- En primer lugar, tendremos que obtener las actualizaciones de nuestro paquete antes de continuar con vsftpd instalación. Para comenzar, ejecute el siguiente comando:
sudo apt-get update
Espere a que se completen todos los procesos y verá una confirmación tan pronto como finalice la actualización.
- Una vez hecho esto, instale el vsftpd daemon usando el siguiente comando:
sudo apt-get install vsftpd
Se le solicitará un mensaje de confirmación, que requerirá que escriba Y y pulsa Intro para continuar con la instalación.
- Una vez completada la instalación, debe hacer una copia de seguridad del archivo original para poder comenzar con un archivo de configuración en blanco:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
Ahora estamos listos para configurar el firewall.
Paso 2:permitir el tráfico FTP desde el cortafuegos
- Para permitir que el servidor FTP de Ubuntu se comunique a través de Internet, debe atravesar el cortafuegos. Pero primero, veamos si el firewall ya está habilitado en su máquina o no. Simplemente ejecute este comando para verificar el estado:
sudo ufw status
Si ve el siguiente mensaje:
ufw:comando no encontrado
Significa que el cortafuegos no está instalado. Puede instalarlo y habilitarlo escribiendo:
sudo apt-get install ufwsudo ufw enable
- Si ya está activo, aún debe asegurarse de que el tráfico FTP esté permitido. Para hacerlo, ejecute los siguientes comandos uno por uno:
sudo ufw allow OpenSSHsudo ufw allow 20/tcpsudo ufw allow 21/tcpsudo ufw allow 990/tcpsudo ufw allow 40000:50000/tcp
Esta serie de comandos abrirá varios puertos:
- Abrir SSH es obligatorio si aún desea acceder a su servidor a través de SSH. A veces, esta opción está habilitada de forma predeterminada.
- puertos 20 y 21 para el tráfico FTP.
- puertos 40000:50000 se reservará para el rango de puertos pasivos que finalmente se establecerán en el archivo de configuración.
- puerto 990 se usará cuando TLS esté habilitado.
- Ahora veamos el estado de nuevo:
sudo ufw status
La salida debería verse así:
Estado:activoA Acción Desde-- ------ ----OpenSSH PERMITIR Anywhere990/tcp PERMITIR Anywhere20/tcp PERMITIR Anywhere21/tcp PERMITIR Anywhere40000:50000/tcp PERMITIR AnywhereOpenSSH (v6) PERMITIR Anywhere (v6)20 /tcp (v6) PERMITIR en cualquier lugar (v6)21/tcp (v6) PERMITIR en cualquier lugar (v6)990/tcp (v6) PERMITIR en cualquier lugar (v6)40000:50000/tcp (v6) PERMITIR en cualquier lugar (v6)
Paso 3:crear el directorio de usuarios
- Una vez configurado el firewall, debemos crear el usuario que va a utilizar el acceso FTP. Así es como se hace:
sudo adduser hostinger
Recuerde cambiar el nombre de usuario según sus propias preferencias.
- Luego, ingrese una contraseña para el usuario y complete todos los detalles requeridos.
Idealmente, el FTP debe estar restringido a un directorio específico por motivos de seguridad. Por eso vsftpd usa jaulas chroot , que limita a un usuario local a su directorio de inicio de forma predeterminada.
Sin embargo, es posible que debido a vsftpd seguridad, es posible que un usuario no pueda escribir en ese directorio. Para solucionar esto, no tenemos que eliminar los privilegios de escritura de la carpeta de inicio. En su lugar, crearemos un directorio ftp que actúe como chroot . Contiene un directorio de escritura que será responsable de almacenar los archivos requeridos. - Use el siguiente comando para crear la carpeta FTP:
sudo mkdir /home/hostinger/ftp
Luego, establezca la propiedad usando:
sudo chown nadie:nogroup /home/hostinger/ftp
Finalmente, elimine el permiso de escritura:
sudo chmod a-w /home/hostinger/ftp
Ahora, use el siguiente comando para verificar los permisos:
sudo ls -la /home/hostinger/ftp
La salida debería ser algo como:
total 8dr-xr-xr-x 2 nadie ningún grupo 4096 8 de octubre 11:32 .drwxr-xr-x 3 hostinger hostinger 4096 8 de octubre 11:32 ..
- A continuación, crearemos el directorio de almacenamiento de archivos y asignaremos la propiedad:
sudo mkdir /home/hostinger/ftp/filessudo chown hostinger:hostinger /home/hostinger/ftp/files
Finalmente, agregue un archivo de prueba al directorio que se usará cuando probemos todo más adelante:
echo "archivo de muestra vsftpd" | sudo tee /home/hostinger/ftp/files/sample.txt
Paso 4:Configuración de vsftpd
El siguiente paso es configurar vsftpd y nuestro acceso FTP. En este ejemplo, permitiremos que un solo usuario se conecte usando una cuenta shell local. Las dos configuraciones clave requeridas para esto ya están establecidas en la configuración (vsftpd.conf ) archivo.
- Para comenzar, use el comando nano para abrir vsftpd archivo de configuración.
sudo nano /etc/vsftpd.conf
Verifique que el contenido tenga una configuración similar a esta:
. . .# ¿Permitir FTP anónimo? (Deshabilitado por defecto).anonymous_enable=NO## Quite el comentario para permitir que los usuarios locales inicien sesión.local_enable=YES. . .
En el mismo archivo, eliminaremos # (descomenta) y asegúrate de habilitar write_enable .
. . .write_enable=SÍ. . .
- También debe descomentar chroot para garantizar que el usuario de FTP solo acceda a los archivos dentro del directorio permitido. Cambiar el NO valor a SÍ , así como. Tenga en cuenta que hay dos líneas como esta, y tiene que descomentar ambas.
. . .chroot_local_user=SÍ. . .
- Hay algunos valores nuevos que también debe agregar al final del archivo. El primero es user_sub_token en la ruta del directorio local_root . Permitirá que la configuración funcione con el usuario actual o cualquier otro usuario que se agregue posteriormente:
user_sub_token=$USERlocal_root=/home/$USER/ftp
- Para garantizar que haya disponible una cantidad sustancial de conexiones, limitaremos la cantidad de puertos del archivo de configuración:
pasv_min_port=40000pasv_max_port=50000
- En este tutorial, tenemos la intención de permitir el acceso caso por caso. Por lo tanto, estableceremos la configuración para otorgar acceso solo a los usuarios que haya agregado explícitamente a la lista:
userlist_enable=YESuserlist_file=/etc/vsftpd.userlistuserlist_deny=NO
Cuando estableces marca de denegación de lista de usuarios a NO , solo se permitirá el acceso a los usuarios especificados. Una vez hecho esto, haga clic en CTRL+X seguido de Y para guardarlo, entonces Introducir para confirmar los cambios del archivo.
- Por último, crearemos una lista de usuarios y agregaremos un usuario al archivo:
echo "hostinger" | sudo tee -a /etc/vsftpd.userlist
Verifique que el usuario esté realmente activo ejecutando el siguiente comando:
gato /etc/vsftpd.lista de usuarios
La salida debe ser "hostinger" como se muestra en esta captura de pantalla:
- Reinicie el demonio usando el siguiente comando para cargar los cambios de configuración:
sudo systemctl restart vsftpd
Paso 5:hacer FTP seguro
- De forma predeterminada, el FTP no cifra los datos, por lo que utilizaremos SSL/TLS certificado para asegurar la transferencia de datos. El primer paso es que necesitamos crear el certificado SSL para el servidor FTP de Ubuntu. etc/ssl/private/vsftpd.pem
Los –días marca hace que el certificado sea válido por un año y hemos incluido un 2048-bit RSA privado escriba el mismo comando.
- Una vez que se le solicite, ingrese los datos personales correspondientes en el campo proporcionado.
- Después de terminar de crear el certificado, abra el archivo de configuración nuevamente:
sudo nano /etc/vsftpd.conf
El final del archivo debe contener dos líneas que comiencen con rsa .
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Ahora, apuntaremos el archivo de configuración al certificado que acabamos de crear. Agregue los siguientes directorios justo debajo de las líneas anteriores:
rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem
- A continuación, habilitaremos SSL y nos aseguraremos de que solo los clientes que tengan un SSL activo puedan comunicarse con nosotros. Simplemente ingrese esta línea:
ssl_enable=YES
Luego, agregue las siguientes líneas para prohibir cualquier conexión anónima a través de SSL:
allow_anon_ssl=NOforce_local_data_ssl=SÍforce_local_logins_ssl=SÍ
Configure el servidor para usar TLS usando:
ssl_tlsv1=SÍssl_sslv2=NOssl_sslv3=NO
- Ahora cambiaremos dos opciones más. En primer lugar, deshabilite la reutilización de SSL para evitar que los clientes FTP se rompan. En segundo lugar, utilizaremos conjuntos de cifrado de alto cifrado, que garantizan que las longitudes de clave sean iguales o superiores a 128 bits.
require_ssl_reuse=NOssl_ciphers=HIGH
Guarde el archivo nuevamente presionando CTRL+X seguido de Y , luego presione Intro .
- Vamos a reiniciar vsftpd una vez más para aplicar las nuevas configuraciones:
sudo systemctl restart vsftpd
¡Buen trabajo! Ahora ha configurado el servidor FTP en su Ubuntu VPS para que funcione con el protocolo SSL/TLS.
Paso 6:probar la conexión con FileZilla
Hoy en día, la mayoría de los clientes FTP admiten configuraciones de cifrado TLS. Es una excelente manera de probar si su servidor FTP de Ubuntu funciona correctamente. Para probar la conexión, utilizaremos un cliente FTP de FileZilla.
- Para comenzar, inicie FileZilla y haga clic en Administrador del sitio icono. Luego, haga clic en Nuevo sitio en la ventana solicitada para ingresar los detalles del servidor FTP de Ubuntu.
- Complete todas las columnas requeridas con la información del servidor FTP de Ubuntu que acaba de crear. Dado que lo configuramos para usar TLS, también podemos elegir Usar FTP explícito sobre TLS opción. La configuración final debería verse así:
- Una vez que esté listo, haga clic en Conectar, y aparecerá una pantalla solicitando ingresar la contraseña del usuario FTP. Después de eso, presione OK .
- Finalmente, deberá verificar el certificado SSL de su servidor FTP en Ubuntu VPS. Después de confirmar, el directorio raíz con el archivo de prueba ahora debería aparecer en su pantalla.
¡Eso es todo! Ahora, puede realizar varias transferencias de archivos desde su computadora al servidor FTP de Ubuntu y viceversa.
Conclusión
Tener un servidor FTP de Ubuntu le facilita compartir archivos entre su VPS/servidor de Ubuntu y la computadora. Es un método seguro y fiable de transferencia de datos, gracias a la seguridad SSL/TLS y al protocolo TCP/IP.
En este tutorial, ha aprendido a configurar un servidor FTP en Ubuntu 18.04 usando vsftpd. Hay cinco pasos que debes seguir. Echemos un vistazo a ellos una vez más.
- Instalar vsftpd en su servidor Ubuntu y haga una copia de seguridad del archivo de configuración original.
- Permitir conexiones FTP a través del cortafuegos.
- Cree un directorio de usuarios al que solo puedan acceder usuarios específicos.
- Configurar vsftpd .
- Proteja el servidor FTP.
- Pruebe su conexión FTP con FileZilla.
¡Buena suerte y asegúrese de consultar nuestros otros tutoriales de VPS!