Introducción
Si está buscando instalar un servidor FTP en Ubuntu, no puede superar la simplicidad de vsftpd.
FTP significa Protocolo de transferencia de archivos. Es similar a HTTP (Protocolo de transferencia de hipertexto) en que especifica un idioma para transferir datos a través de una red. El FTP no está cifrado de forma predeterminada, por lo que, por sí solo, no es una buena opción para la transmisión segura de datos.
Esta guía lo ayudará a instalar y configurar un servidor FTP con vsftpd en Ubuntu.
Requisitos previos
- Acceso a una cuenta de usuario con sudo privilegios
- Acceso a una ventana de terminal/línea de comandos (Ctrl-Alt-T)
- El apto administrador de paquetes, incluido por defecto
Paso 1:Actualizar paquetes del sistema
Comience por actualizar sus repositorios:ingrese lo siguiente en una ventana de terminal:
sudo apt update
El sistema procede a actualizar los repositorios.
Paso 2:Instale el servidor vsftpd en Ubuntu
Una utilidad FTP de código abierto común utilizada en Ubuntu es vsftpd . Se recomienda por su facilidad de uso.
1. Para instalar vsftpd , ingrese el comando:
sudo apt install vsftpd
Este es un ejemplo de la salida en Ubuntu.
2. Para iniciar el servicio y habilitarlo al inicio, ejecute los comandos:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Paso 3:Copia de seguridad de los archivos de configuración
Antes de realizar cualquier cambio, asegúrese de hacer una copia de seguridad de sus archivos de configuración.
1. Cree una copia de seguridad del archivo de configuración predeterminado ingresando lo siguiente:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default
Paso 4:Crear usuario FTP
Cree un nuevo usuario de FTP con los siguientes comandos:
sudo useradd -m testuser
sudo passwd testuser
El sistema debería pedirle que cree una contraseña para el nuevo usuario de prueba cuenta.
Paso 5:Configure el cortafuegos para permitir el tráfico FTP
Si está utilizando UFW que viene de serie con Ubuntu, bloqueará el tráfico FTP de forma predeterminada. Introduzca los siguientes comandos para abrir Puertos 20 y 21 para tráfico FTP:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
Paso 6:Conéctese al servidor FTP de Ubuntu
Conéctese al servidor FTP con el siguiente comando:
sudo ftp ubuntu-ftp
Reemplace ubuntu-ftp con el nombre de su sistema (tomado de la línea de comandos).
Iniciar sesión usando el usuario de prueba cuenta y contraseña que acaba de establecer. Ahora debería iniciar sesión correctamente en su servidor FTP.
Configuración y protección del servidor Ubuntu vsftpd
Cambiar directorio predeterminado
De forma predeterminada, el servidor FTP utiliza el /srv/ftp directorio como el directorio predeterminado. Puede cambiar esto creando un nuevo directorio y cambiando el directorio de inicio del usuario de FTP.
Para cambiar el directorio de inicio de FTP, ingrese lo siguiente:
sudo mkdir /srv/ftp/new_location
sudo usermod -d /srv/ftp/new_location ftp
Reinicie el vsftpd servicio para aplicar los cambios:
sudo systemctl restart vsftpd.service
Ahora, puede colocar cualquier archivo que desee compartir a través de FTP en /srv/ftp carpeta (si la dejó como predeterminada), o la /srv/ftp/nueva_ubicación // fuerte directorio (si lo cambió).
Autenticar usuarios de FTP
Si desea permitir que los usuarios autenticados carguen archivos, edite el vsftpd.conf archivo ingresando lo siguiente:
sudo nano /etc/vsftpd.conf
Busque la entrada etiquetada write_enable=NO y cambie el valor a "SÍ .”
Guarde el archivo, salga y luego reinicie el servicio FTP con lo siguiente:
sudo systemctl restart vsftpd.service
Esto permite al usuario realizar cambios dentro de su directorio de inicio.
Proteger FTP
Numerosos exploits aprovechan los servidores FTP no seguros. En respuesta, hay varias opciones de configuración en vsftpd.conf que puede ayudar a proteger su servidor FTP.
Limitar el acceso de usuarios
Un método es limitar a los usuarios a su directorio de inicio. Abra vsftpd.conf en un editor y descomente el siguiente comando:
chroot_local_user=YES
Este es un ejemplo del archivo en nano :
Crear un archivo de lista de usuarios
Para crear un archivo de lista, edite /etc/vsftpd.chroot_list y agregue un usuario por línea.
Indique a su servidor FTP que limite esta lista de usuarios a sus propios directorios personales editando vsftpd.conf :
chroot_local_user=YES
chroot_list_file=/etc/vsftpd.chroot_list
La imagen ilustra las ediciones que se hicieron:
Reinicie el vsftpd servicio:
sudo systemctl restart vsftpd.service
De forma predeterminada, la lista de usuarios bloqueados del acceso FTP se almacena en /etc/ftpusers . Para agregar usuarios bloqueados, edite este archivo y agregue un usuario por línea.
Cifrar tráfico con FTPS
Otro método para proteger su servidor FTP es cifrar el tráfico. Esto se hace usando FTPS – Protocolo de transferencia de archivos sobre SSL (Secure Socket Layer).
Para que esto funcione, los usuarios deben configurar una cuenta shell en el servidor FTP. Esto agregará una capa de encriptación segura a su tráfico FTP.
1. Comience creando un nuevo certificado con openssl. Para hacerlo, ejecute el comando:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
2. Proporcione la información requerida cuando se le solicite o mantenga la configuración predeterminada presionando Enter .
3. A continuación, abra su vsftpd.conf archivo en un editor y cambie la línea ssl_enable=NO
a ssl_enable=YES
:
ssl_enable=YES
4. Luego, agregue las siguientes líneas:
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
pasv_min_port=40000
pasv_max_port=50000
5. Guarde los cambios y salga del archivo.
6. Finalmente, reinicie el servicio para aplicar los cambios:
sudo systemctl restart vsftpd.service