vsftp

FTP son las siglas de File Transfer Protocol (Protocolo de Transferencia de Archivos). Es similar al HTTP (Protocolo de Transferencia de Hipertexto), ya que especifica un lenguaje para la transferencia de datos a través de una red. El FTP no está encriptado por defecto, así que por sí mismo no es una buena opción para la transmisión segura de datos.

Esta manual le llevará paso a paso a instalar y configurar un servidor FTP con vsftpd en Ubuntu.

FTP son las siglas de File Transfer Protocol (Protocolo de Transferencia de Archivos). Es similar al HTTP (Protocolo de Transferencia de Hipertexto), ya que especifica un lenguaje para la transferencia de datos a través de una red. El FTP no está encriptado por defecto, así que por sí mismo no es una buena opción para la transmisión segura de datos.

Esta guía le ayudará a instalar y configurar un servidor FTP con vsftpd en Ubuntu.

Requisitos

  • Acceso a una cuenta de usuario con privilegios sudo
  • Acceso a una ventana de terminal/línea de comandos (Ctrl-Alt-T)
  • El gestor de paquetes apt, incluido por defecto

1. Paso 1: Actualizar los paquetes del sistema

Comience por actualizar sus repositorios - introduzca lo siguiente en una ventana de terminal:

#sudo apt update

El sistema procede a actualizar los repositorios.

Paso 2: Instalar el servidor vsftpd en Ubuntu

Una utilidad FTP de código abierto comúnmente utilizada en Ubuntu es vsftpd. Se recomienda por su facilidad de uso.

1. Para instalar vsftpd, introduzca el comando

#sudo apt install vsftpd

2. Para lanzar el servicio y habilitarlo al inicio, ejecute los comandos:

#sudo systemctl start 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 por defecto introduciendo lo siguiente:

#sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default

Paso 4: Crear un usuario FTP

Cree un nuevo usuario FTP con los siguientes comandos:

#sudo useradd -m testuser
#sudo passwd testuser

El sistema debería pedirle que cree una contraseña para la nueva cuenta de usuario de prueba.

Paso 5: Configurar el Firewall para permitir el tráfico FTP

Si está utilizando el UFW que viene de serie con Ubuntu, bloqueará el tráfico FTP por defecto. Introduzca los siguientes comandos para abrir los puertos 20 y 21 para el tráfico FTP:

#sudo ufw allow 20/tcp

Paso 6: Conectar con el servidor FTP de Ubuntu

Conéctese al servidor FTP con el siguiente comando:

#sudo ftp ubuntu-ftp

Sustituya ubuntu-ftp por el nombre de su sistema (tomado de la línea de comandos).

Inicie la sesión con la cuenta de usuario de prueba y la contraseña que acaba de establecer. Ahora debería haber iniciado la sesión con éxito en su servidor FTP.

Configurar y asegurar el servidor vsftpd de Ubuntu

Cambiar el directorio por defecto

Por defecto, el servidor FTP utiliza el directorio /srv/ftp como directorio por defecto. Puede cambiar esto creando un nuevo directorio y cambiando el directorio principal del usuario FTP.

Para cambiar el directorio principal de FTP, introduzca lo siguiente:

#sudo mkdir /srv/ftp/new_location
#sudo usermod -d /srv/ftp/new_location ftp

Este es un ejemplo de la salida en Ubuntu.

Reinicie el servicio vsftpd para aplicar los cambios:

#sudo systemctl restart vsftpd.service

Ahora, puedes poner cualquier archivo que quieras compartir vía FTP en la carpeta /srv/ftp (si la dejaste por defecto), o en el directorio /srv/ftp/new_location/ (si lo cambiaste).

Autenticar a los usuarios de FTP

Si desea permitir que los usuarios autenticados suban archivos, edite el archivo vsftpd.conf introduciendo lo siguiente:

#sudo nano /etc/vsftpd.conf

Busque la entrada denominada write_enable=NO, y cambie el valor a "YES".

Guarde el archivo, salga y reinicie el servicio FTP con lo siguiente:

#sudo systemctl restart vsftpd.service

Esto permite al usuario realizar cambios dentro de su directorio personal.

Asegurar el FTP

Numerosos exploits se aprovechan de servidores FTP inseguros. En respuesta, hay varias opciones de configuración en vsftpd.conf que pueden ayudar a asegurar su servidor FTP.

Limitar el acceso de los usuarios

Un método es limitar a los usuarios a su directorio personal. Abra vsftpd.conf en un editor y descomente el siguiente comando:

#chroot_local_user=YES

Crear un archivo de lista de usuarios
Para crear un archivo de lista, edita /etc/vsftpd.chroot_list, y añade 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

Restart the vsftpd service:

#sudo systemctl restart vsftpd.service

Por defecto, la lista de usuarios bloqueados al acceso FTP se almacena en /etc/ftpusers. Para añadir usuarios bloqueados, edite este archivo y añada un usuario por línea.

Cifrar el tráfico con FTPS

Otro método para asegurar tu servidor FTP es cifrar el tráfico. Esto se hace utilizando FTPS - Protocolo de Transferencia de Archivos sobre SSL (Secure Socket Layer).

Para que esto funcione, los usuarios deben tener una cuenta shell en el servidor FTP. Esto añadirá una capa de encriptación segura a su tráfico FTP.

1. Comience por crear un nuevo certificado con openssl. Para ello, 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 por defecto pulsando Enter.

3. A continuación, abra su archivo vsftpd.conf en un editor y cambie la línea ssl_enable=NO por ssl_enable=YES:

#ssl_enable=YES

4. A continuación, añada 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=SÍ
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

 

Fuente: somoslibres

¿Quién está en línea?

Hay 14690 invitados y ningún miembro en línea