Vsftpd servidor FTP para Linux: Instalación y configuración

Vsftpd servidor FTP para Linux: Instalación y configuración

Sergio De Luz

Vsftpd es uno de los servidores FTP más potentes y completos disponibles para la mayoría de distribuciones de Linux. Este servidor FTP es el favorito de muchos administradores de sistemas por la configurabilidad que es capaz de proporcionarnos, y por la facilidad de configuraciones avanzadas en el propio servidor FTP. Hoy en RedesZone os vamos a enseñar cómo podemos instalarlo, configurarlo y también cómo habilitar el protocolo FTPES para que toda la comunicación esté cifrada.

Nosotros hemos instalado este servidor FTP en la última versión de Debian, por lo que haremos uso de los repositorios oficiales de la distribución, así como, de «apt» para instalarlo adecuadamente en nuestro Linux. Antes de empezar la instalación y configuración de vsftpd, vamos a ver las principales características del protocolo FTP.

Qué es un servidor FTP

Antes de entrar de lleno en Vsftpd para aprender a instalarlo y configurarlo, es necesario saber qué es un servidor FTP y cuáles son sus características y usos principales. Una vez tengamos claro cómo funciona, será más sencillo comprender el proceso de instalación y configuración para un uso correcto y que se adapte a tus necesidades.

Un servidor FTP o Protocolo de Transferencia de Archivos, es una tecnología que se usa para la transferencia de archivos a través de una red, normalmente en Internet. Funciona con un modelo cliente-servidor, donde un servidor FTP almacena archivos y permite a los usuarios conectarse para subir o bajar archivos.

En esencia, un servidor FTP gestiona la autenticación de usuarios, el acceso a directorios y la transferencia de archivos entre el cliente y el servidor. Los usuarios pueden utilizar programas de cliente FTP para conectarse al servidor, explorar directorios y transferir archivos de manera bidireccional.

Es importante saber que, el protocolo FTP puede funcionar en dos modos: activo y pasivo. En el modo activo, el cliente abre un puerto para la transferencia de datos, mientras que en el modo pasivo, el servidor abre un puerto para la transferencia. La elección entre estos modos depende de la configuración y requisitos específicos del sistema.

Aunque, por otro lado, en el ámbito de la tecnología y las redes, los servidores FTP han sido fundamentales para compartir archivos de manera eficiente y segura, en la actualidad, algunos usuarios y empresas utilizan protocolos más seguros, como SFTP (FTP seguro) o FTPS (FTP seguro mediante SSL/TLS). Dos protocolos que ayudan a cifrar datos y que integran métodos de autenticación segura. Algo que mejora considerablemente la seguridad de la transferencia de archivos.

Características del protocolo FTP

El protocolo FTP funciona con una arquitectura cliente-servidor para comunicarse y transferir archivos entre el servidor FTP y los clientes FTP. Un servidor FTP permite la conexión de múltiples clientes FTP para transferir datos. Por defecto, el servidor FTP hace uso del puerto 21 TCP como canal de control, para el establecimiento de la conexión, autenticación en el servidor y también para terminar definitivamente la conexión con el servidor FTP.

Cuando transferimos un archivo, se inicia una conexión en el canal de datos. Antiguamente el canal de datos hacía uso del puerto 20 TCP, esto se denomina modo activo, sin embargo, había problemas con la NAT de las diferentes conexiones. Por este motivo, se hace uso actualmente de «FTP pasivo», es decir, tendremos un rango de puertos TCP PASV para enviar y recibir todos los datos, de esta forma, abriendo el puerto 21 TCP y el rango de puertos TCP PASV podrán comunicarse con nosotros desde múltiples sitios. En una conexión pasiva típica, la conexión es iniciada por el cliente al servidor remoto, y el servidor espera las solicitudes.

También debemos tener en cuenta la seguridad del protocolo FTP, la autenticación y la transferencia de los archivos van en texto claro, sin embargo, disponemos de FTPS (Implícito) que ya no se utiliza, y también de FTPES (Explícito), que es básicamente la misma conexión FTP pero sobre el protocolo SSL/TLS para dotar a las comunicaciones de confidencialidad, integridad y autenticidad a todos los datos. Gracias a FTPES, vamos a poder transferir datos a través de AES-256-GCM con la máxima seguridad, y el canal de control hará uso de TLS 1.2 o la última versión TLS 1.3 para asegurar todas las comunicaciones lo mejor posible.

Vsftpd, a pesar de estar pensado para la velocidad y la seguridad, tiene muchos mecanismos de los FTP. Entre ellos.

  • Configuración de IP virtual.
  • Permite la creación de usuarios virtuales.
  • Operación xinetd o funcionamiento standalone.
  • Mucha variedad de configuración de usuarios.
  • Cuenta con gran capacidad de ancho de banda.
  • Configuración de fuentes IP.
  • Límite de fuentes IP.
  • Es capaz de soportar IPv6.
  • Puede realizar funciones de encriptación en la integración de SSL.

Cómo funciona el paso de los mensajes

Para describir esto, vamos a presentar los tres pasos que realiza vsftpd.

  • Conexión: El cliente envía un mensaje de conexión al servidor, y este responde con un asentimiento. Una vez la respuesta es recibida, el servidor envía un mensaje de accept junto con la versión del servidor. Una vez que el cliente acepta el mensaje de respuesta, puede proceder a introducir los datos necesarios como el login y la contraseña. El servidor recibe estos datos y acepta la conexión.
  • Lectura del directorio /home: El cliente transmite un mensaje al servidor, donde le indica el sentido de la conexión de datos, la cual una vez establecida le solicita un list, que le permite ver la lista de ficheros, que son mensajes enviados por el servidor en forma de data.
  • Descarga de ficheros: En este caso el cliente envía un type, que le indica al servidor que quiere realizar una transferencia del fichero, acto seguido, también se enviará un pasv donde se indica la dirección para esa transferencia junto con un retr con el nombre del fichero a transferir. Para finalizar, el servidor envía esta información en forma de data. Una vez este proceso finaliza, se cierra la sesión con un quit.

Opciones de configuración

Vsftpd nos permite realizar algunas configuraciones que controlan el comportamiento de este. Para ello hace una combinación de tres estados principales, junto con algunas directrices para el comportamiento en los inicios de sesión y los diferentes mecanismos de control de los acceso.

  • Listen: Cuenta se encuentra activada, esta se ejecuta de forma independiente. Por lo cual para que esté funcionando se debe establecer el valor de esta configuración en YES. Pero no es compatible con la siguiente, por lo cual si usamos otra opción el valor deberá ser NO.
  • Listen_ipv6: De nuevo el funcionamiento es como en la versión anterior. Pero en este caso solo escuchará a los sockets IPv6.
  • Session_support: Cuando se encuentra activada, se intenta mantener las sesiones de conexión para cada usuario con Pluggable Authentication Modules (PAM). Pero si no es necesario hacer sesiones para conexión, lo mejor es que esto esté desactivado. Debido al consumo de recursos, ya que funcionará con menos procesos, y los privilegios más bajos.

Estas con solo algunas de las configuraciones básicas que nos permite Vsftpd, pero una vez profundizamos tenemos muchas opciones. Empezando por las opciones de conexión y controles de acceso, que cuentan con muchas opciones diferentes. Pero también hay un apartado para los usuarios anónimos. Esta última cuenta con un listado de directrices que pueden controlar el acceso de usuarios anónimos a un servidor.

Por otro lado también cuenta con opciones para usuarios locales y para directorio. La cual afecta a todos y cada uno de los directorios del servidor. Para manejar todo esto, es necesario contar con una transferencia de archivos. Y en este caso nos encontramos con algunos permisos que se pueden aplicar a los usuarios. También cuenta con las opciones de conexión, que afectan directamente a como vsftpd se comporta. Y los parámetros de red. Que manejan la forma en que vsftpd interactúa con la red a la que está conectado.

Ventajas de utilizar Vsftpd

Utilizar esta herramienta de código abierto, nos puede ofrecer algunas ventajas sobre otros tipos de servidores FTP. Algunas de estas son:

  • Seguridad: VSFTPD, es muy conocido por otorgar altos estándares de calidad con respecto a la seguridad. La herramienta incluye opciones avanzadas para configurar la seguridad, así como soporte para SSL y TLS. También nos proporciona un sistema de autenticación de usuarios llamado PAM (Pluggable Authentication Modules). Por otro lado, se pueden configurar límites en las velocidades, evitando así que se puedan generar posibles ataques de denegación de servicio.
  • Facilidad de configuración: Se trata de una herramienta que es sencilla de configurar, y administrar. Todos los archivos de configuración se encuentran muy claros y documentados. Lo cual facilita mucho la personalización a la cual podemos someter el servidor FTP, y adaptarlo de este modo a las necesidades particulares que requerimos.
  • Velocidad de transferencia: Este sistema es altamente conocido por sus capacidades en las velocidades de transferencia. Esto es en parte, por su capacidad para manejar diferentes conexiones de forma simultánea, lo cual hace que las transferencias sean rápidas y por otro lado, muy eficientes.
  • Escalabilidad: Esto es algo en lo que siempre nos debemos fijar, sobre todo si tenemos planes de expansión. Este sistema es altamente escalable, lo cual quiere decir que podremos seguir manejando grandes cantidades de tráfico, así como usuarios de forma simultánea. Esto es muy útil cuando las empresas y organizaciones, necesitan manejar gran cantidad de datos, y tienen expectativas de que seguirá aumentando.
  • Flexibilidad: Vsftpd es un sistema muy flexible, ya que puede personalizarse para adaptarse a diferentes necesidades. Esto nos incluye la posibilidad, de configurar límites en los anchos de banda, definir cuotas de espacio para usuarios y grupos, así como para establecer permisos para contenido concreto.
  • Estabilidad: Esto es algo muy importante para muchas empresas. Este sistema es muy fiable, a la vez que estable. Ejemplo de ello, es que se utiliza mucho para una gran variedad de entornos de producción, demostrando ser una solución muy confiable.

Cómo optimizar el servicio

Cuando se trata de servicios que nos van a ayudar a transferir archivos, por lo general siempre vamos a requerir que estas funciones rápido y que no den problemas. Es por esto mismo, por lo que es necesario mantener el sistema de una forma adecuada. Y para ello, podemos seguir algunos consejos para optimizar el servicio que estamos utilizando. Esto nos ayudará a hacer que su rendimiento sea el adecuado y óptimo. Algunos de estos consejos son:

  • Modo pasivo: En lugar de utilizar el modo activo predeterminado, se recomienda utilizar el modo pasivo en algunas ocasiones. Esto permite que el servidor FTP establezca las conexiones de datos en lugar del cliente, reduciendo así la carga en el cliente y mejorando la velocidad de transferencia de forma considerable.
  • Establecer límites de transferencia: Limitar la tasa de transferencia puede ayudar a evitar que la red se sature en algún momento. Esto hará que el rendimiento del FTP se mantenga estable. Se puede conseguir utilizando soluciones de transferencia de archivos que permita establecer un límite de velocidad de transferencia.
  • Desactivar los registros: En estos casos el registro de transferencias puede consumir recursos y afectar el rendimiento del FTP durante las transferencias. Desactivar esta función puede mejorar el rendimiento general de forma considerable, dependiendo de la cantidad de material que se transfiera.
  • Ajustar el búfer: Se puede ajustar el tamaño del búfer de transferencia de archivos, para mejorar así la velocidad de transferencia. Lo cual también afecta al tiempo de latencia. Es importante encontrar un equilibrio entre el tamaño del búfer y la cantidad de memoria disponible en el sistema, para no generar algún tipo de conflicto que no permita que funcione de la forma adecuada.
  • Optimizar configuración: Es muy importante optimizar la configuración del servidor FTP para mejorar su rendimiento. Por lo general, se puede ajustar la cantidad de conexiones permitidas, la cantidad de recursos asignados al servidor FTP y la configuración de seguridad.

Combinaciones con Vsftpd

Como puedes ver estamos ante un servicio muy seguro, y a la vez rápido para los sistemas. Este lo podemos combinar con otros servicios, los cuales nos permiten obtener más funcionalidades de forma adicional. Algunas de ellas son:

  • SSL/TLS para FTPS: Vsftpd es muy seguro, pero si a este le añadimos un servicio de SSL/TLS para cifrar todas las sesiones FTP y convertirlas en FTPS aumentamos más la seguridad. Esto nos evita que los datos puedan ser transmitidos como texto plano, y que no se puedan interceptar durante el transcurso de la transmisión.
  • Servidor web: Podemos utilizarlo con servidores web, para poder realizar la administración de los archivos del sitio. Los administradores pueden realizar la carga de archivos en los servidores FTP, y estos pueden ser descargados por el propio servidor web.
  • LDAP/Active Directory: Hoy en día los servicios de autenticación están muy demandados, y es por ello que Vsftpd se puede combinar con estos. Esto es muy útil en grandes organizaciones, en las cuales los usuarios definidos en el sistema se pueden autenticar.
  • Bases de datos SQL: En lugar de realizar la autenticación de los usuarios con sistemas basados en archivos, se puede configurar un Vsftpd para que la autenticación sea contra una base de datos SQL. Esto es muy útil cuando se tiene que manejar una base de usuarios muy grande. Y necesita ser administrada de forma eficiente.
  • Servicio de registro: Se puede configurar para mantener un registro de eventos en lugar de sistemas de registro centralizados. Esto permite recopilar, analizar y visualizar los datos de registro que se recogen. Y que pueden ser utilizados para diferentes fines.
  • Almacenamiento en la nube: Esta no es una funcionalidad que venga incorporada, pero podríamos configurar un sistema en el cual los datos se carguen desde un Vsftpd. Es muy útil cuando se deben realizar copias de seguridad, así como proporcionar cierta redundancia a los datos que tenemos guardados.

Instalación de Vsftpd

El proceso de instalación de este servidor FTP en cualquier distribución basada en Linux es realmente sencilla, y es que podemos instalarlo a través de los repositorios oficiales de la distribución.

sudo apt install vsftpd

Deberíais ver algo como esto:

Configuración de Vsftpd

Vsftpd se configura a través de un fichero de configuración que deberemos editar, lo podremos editar con programas como nano, vim o vi, pero también con cualquier programa de edición de ficheros de texto en Linux. Una vez que abramos el fichero de configuración con nano, deberíamos ver lo siguiente:

El fichero de configuración por defecto de Vsftpd es el siguiente, posteriormente os explicaremos las funciones clave de este fichero para que lo configuréis correctamente.

# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=NO
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
listen_ipv6=YES
#
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
#write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
use_localtime=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

#
# Uncomment this to indicate that vsftpd use a utf8 filesystem.
#utf8_filesystem=YES

Los parámetros más importantes que debemos descomentar en el servidor FTP son los siguientes:

  • write_enable=YES –> Esta directiva nos permite poder escribir (copiar archivos y carpetas) al servidor FTP.
  • local_umask=022 –> Esta directiva nos permite habilitar los permisos nuevos cuando copiemos datos al servidro FTP, por defecto el umask es 077 pero podremos modificarlo por el valor que nosotros queramos, 022 es el umask más utilizado en otros servidores FTP.
  • ftpd_banner –> Esta directiva permite poner un banner de inicio de sesión.
  • chroot_list_enable=YES –> Nos permite habilitar el chroot de los diferentes usuarios del sistema, para que solamente un usuario entre en su carpeta /home/usuario y en ninguna más, es una medida de seguridad, pero hay que usarla con mucho cuidado ya que si un usuario tiene permisos en directorios superiores tendrá acceso al resto.
  • chroot_list_enable=YES –> Nos permite crear una lista con los usuarios en chroot, todos los que aparezcan aquí podrán conectarte.
  • chroot_list_file=/etc/vsftpd.chroot_list –> Es la lista de usuarios con sus rutas predeterminadas.

Si vamos a usar el chroot_list_file, es necesario crear un fichero en esa ruta:

touch /etc/vsftpd.chroot_list

Y poner lo usuarios permitidos, uno en cada línea, editándolo con nano, vi o vim, de esta forma:

usuario1

usuario2

Hay otros parámetros que ya están activados que también son muy importantes, como por ejemplo:

  • anonymous_enable=NO –> Esta directiva sirve para no permitir inicios de sesión anónimos, siempre debe pedir credenciales de usuario.
  • anon_upload_enable=YES –> Aunque esta directiva está comentada (y por tanto, no está habilitada) está muy relacionada con la anterior, y sirve para no permitir subidas de archivos al servidor FTP por parte de alguien anónimo.

Una vez que hayamos realizado todos los cambios en el fichero de configuración, y suponiendo que a nivel de sintaxis esté correcto, debemos reiniciar el servicio con el siguiente comando:

systemctl restart vsftpd

Crear usuarios y contraseñas para el servidor FTP Vsftpd

El proceso para crear usuarios es el mismo que para crearlos en el sistema ya que vsftpd utiliza los usuarios del sistema por defecto. Debemos teclear los siguientes parámetros en un terminal:

Para crear un nuevo usuario con nombre «redeszone» simplemente debemos indicar:

sudo adduser redeszone

El propio asistente de creación de Debian o de cualquier otra distribución, nos pedirá que introduzcamos una contraseña de inicio de sesión. A partir de ahora, «redeszone» podrá conectarse al FTP y accederá, por defecto, a la carpeta especificada en DefaultRoot.

Conectándonos al servidor Vsftpd recién configurado

Para conectarnos a nuestro nuevo servidor FTP con Vsftpd, simplemente debemos usar un cliente FTP como FileZilla, poner la IP, puerto y las credenciales de usuario. Lo primero que nos dirá FileZilla es que el servidor no soporta FTPES, por tanto, utilizará el protocolo FTP con la autenticación y toda la transferencia de datos en texto claro sin cifrar.

Una vez que nos hayamos conectado, si tenemos habilitado el chroot, no podremos «subir» en los directorios por encima de nuestro home. Ahora podremos copiar y eliminar archivos, tendremos los permisos permisos que el usuario local.

Otras configuraciones que podemos realizar en Vsftpd

Vsftpd es un servidor FTP que nos permite realizar configuraciones avanzadas, como por ejemplo, habilitar el FTPES, definir un número de puertos pasivos para el protocolo FTP y muchas otras opciones que tienen como objetivo proporcionar seguridad a las comunicaciones, y gestionar los permisos de los diferentes grupos de usuarios y usuarios de forma mucho más eficiente y segura.

Habilitar FTPES en el servidor Vsftpd

El protocolo FTPES es uno de los protocolos más importantes basados en FTP, gracias a FTPES, podremos proporcionar confidencialidad a las comunicaciones, autenticidad a los datos transmitidos e integridad para comprobar que no han sido modificados en el medio de transmisión. El protocolo FTPES es la versión segura del protocolo FTP, en la capa de transporte hace uso del popular protocolo TLS para cifrar todas las comunicaciones, normalmente haremos uso de los protocolos TLS 1.2 y TLS 1.3, actualmente las versiones anteriores de TLS no se consideran seguras por lo que se desaconseja su utilización. Cuando estamos utilizando FTPES, tanto la autenticación con usuario y contraseña como también toda la transferencia de los archivos se encuentra protegida por algoritmos criptográficos, se utiliza tanto criptografía asimétrica como simétrica para asegurar correctamente todas las comunicaciones.

Para habilitar el protocolo FTPES en Vsftpd, simplemente debemos habilitar la directiva que se encuentra en la parte final de /etc/vsftpd.conf:

ssl_enable=YES

En la instalación de Vsftpd ya ha creado anteriormente los certificados RSA necesarios para la conexión, por lo que simplemente tendremos que habilitarlo, reiniciar el servicio, y ya podremos conectarnos con seguridad TLS 1.3:

En la anterior captura de pantalla podéis ver que el protocolo utilizado es TLS 1.3, el más seguro y más rápido que existe actualmente, el intercambio de clave es con ECDHE-RSA, por lo que tenemos en uso curvas elípticas y también PFS (Perfect Forward Secrecy), por lo que si alguien es capaz de crackear la comunicación, no será capaz de descifrar las comunicaciones anteriores. El certificado digital utilizado es RSA de 2048 bits, en este caso podríamos aumentar la longitud de clave hasta RSA 4096 bits que es más seguro, y funcionará exactamente igual. La parte más importante es la de «Cifrado», y es que estamos utilizando un algoritmo de cifrado simétrico AES-256 bits con un modo de cifrado GCM, esto significa que tendremos AEAD para autenticar todos los datos transmitidos con el propio algoritmo, además, AES-256-GCM es mucho más rápido que otros modos de cifrado porque permite paralelización.

Un detalle muy importante que tenéis que saber, es que, actualmente los ordenadores y servidores disponen de procesadores con AES-NI activado, esto significa que podremos cifrar y descifrar datos a la misma velocidad que si no tuviéramos cifrado, por lo que conseguiremos un gran rendimiento aunque todo el tráfico esté cifrado con AES.

Vsftpd nos permite añadir más directivas a su fichero de configuración, concretamente podremos añadir las siguientes para configurar en detalle el protocolo FTPES:

  • allow_anon_ssl=NO
  • force_local_data_ssl=YES
  • force_local_logins_ssl=YES
  • ssl_tlsv1_1=NO
  • ssl_tlsv1_2=YES
  • ssl_tlsv1_3=YES
  • ssl_tlsv1=NO
  • ssl_sslv2=NO
  • ssl_sslv3=NO
  • require_ssl_reuse=YES
  • ssl_ciphers=HIGH

Recuerda que para que se apliquen los cambios debes reiniciar el servidor FTP.

Cambiar los puertos PASV de Vsftpd

Si quieres cambiar los puertos TCP PASV asociados a la conexión de control, con el objetivo de abrirlos en el cortafuego, deberás indicar las siguientes directivas para indicar el rango de puertos mínimo y máximo:

  • pasv_max_port=10000
  • pasv_min_port=9000

Os recomendamos visitar la web oficial del MIT donde tenéis un listado con todas las directivas que podremos utilizar en Vsftpd para ampliar sus opciones de configuración. También podéis acceder a la web oficial de Vsftpd donde encontraréis más información sobre este gran servidor FTP.

¡Sé el primero en comentar!