Instalar Servidor FTP en Debian 11


Linux Debian / Ubuntu SSH FTP
Instalar Servidor FTP en Debian 11

Cómo montar un servidor FTP plano (sin cifrar las conexiones) en Linux Debian 11. Cómo crear usuarios, configurar el acceso FTP, establecer permisos a carpetas, configurar el servidor FTP y acceso desde cliente Filezilla. Mostraremos un ejemplo de conexión al FTP desde Windows a Linux con el comando ftp, enviando un fichero de Windows a Linux.

Requisitos para montar un servidor FTP en Linux Debian 11

Como único requisito, necesitaremos disponer de un equipo con Linux Debian 11. Aunque el proceso es similar para otras distribuciones de Linux: Ubuntu, CentOS, Mint, Red Hat, Suse, Fedora, …

Necesitaremos acceso SSH al equipo Linux Debian 11 para realizar la instalación y configuración del servidor FTP.

El equipo Linux Debian 11 deberá tener conexión a Internet para la descarga de paquetes.

Hay que tener en cuenta que montaremos un servidor FTP plano, es decir, que la conexión a este servidor NO estará cifrada, será en texto plano, por lo que es un método muy inseguro. Sólo debe usarse este método cuando tenemos equipos legacy (antiguos) que requieren de FTP plano. Y siempre tendremos este servidor lo más aislado del resto de la red posible, usando contraseñas robustas (con más de 12 caracteres, números, letras mayúsculas y minúsculas, caracteres especiales, etc.). Incluso así, la información enviada a este servidor viajará no cifrada.


Instalar servidor FTP en Linux Debian 11 con vsftpd

Desde una consola de comandos, por ejemplo accediendo con PuTTY al equipo Linux Debian 11, ejecutaremos el siguiente comando para actualizar las posibles nuevas versiones de los paquetes instalados:

sudo apt update

A continuación ejecutaremos este otro comando para actualizar los paquetes instalados en Debian que tengan versión nueva:

sudo apt upgrade

instalar-servidor-ftp-debian-11

Siempre es conveniente partir de un Sistema Operativo actualizado, por cuestiones de seguridad.

Ahora instalaremos el servidor de FTP propiamente dicho, con el comando:

sudo apt install vsftpd

instalar-servidor-ftp-debian-11

Podríamos usar un usuario del equipo existente para el acceso FTP, pero es recomendable usar usuarios nuevos exclusivos para el servicio de FTP, por seguridad. Por ello agregaremos un nuevo usuario al equipo, por ejemplo «user_ftp», con el comando:

sudo adduser user_ftp

El comando anterior nos solicitará la contraseña para el nuevo usuario, el nombre completo y algunos datos más. Sólo será obligatorio indicar la contraseña, que recomendamos sea robusta (segura), por ejemplo de 12 caracteres como mínimo, con números, letras mayúsculas y minúsculas y caracteres especiales. Hay que tener en cuenta que los servidores FTP tienen un alto grado de exposición y son vulnerables a ataques por fuerza bruta. Por ello, cuanto más robusta sea la contraseña más difícil será vulnerarla.

instalar-servidor-ftp-debian-11

Agregaremos este usuario al fichero /etc/vsftpd.listausuarios. Este fichero contendrá la lista de usuarios que tengan acceso al servidor FTP, lo haremos con el comando:

sudo echo user_ftp >> /etc/vsftpd.listausuarios

instalar-servidor-ftp-debian-11

Revisaremos que el servicio de FTP está iniciado con el comando:

sudo systemctl status vsftpd.service

Nos devolverá «Active: active (running)»:

instalar-servidor-ftp-debian-11

Si tenemos cortafuegos en el servidor Linux Debian 11 deberemos abrir el puerto 20 para FTP y 21 para SFTP (si lo vamos a activar):

ufw allow 20/tcp

ufw allow 21/tcp

ufw reload

Configuración del servidor FTP vsftpd en Linux

Para configurar el comportamiento del servidor FTP editaremos el fichero /etc/vsftpd.conf, por ejemplo con nano:

sudo nano /etc/vsftpd.conf

Estableceremos el parámetro anonymous_enable a NO, junto con los siguientes parámetros:

anonymous_enable=NO

local_enable=YES

write_enable=YES

chroot_local_user=YES

allow_writeable_chroot=YES

userlist_enable=YES

userlist_file=/etc/vsftpd.listausuarios

userlist_deny=NO

Puede que algunos de los parámetros ya existan, si es así y su valor no coincide lo cambiaremos dejándolo como la lista anterior:

configuracion-servidor-ftp-linux

configuracion-servidor-ftp-linux

Como nos avisa en el fichero de configuración, al establecer el parámetro chroot_local_user=YES y allow_writeable_chroot=YES estamos indicando que cuando se acceda con el usuario FTP tendrá acceso a toda su capeta /home/usuario, tanto de lectura como de escritura. Por eso, hemos recomendado anteriormente crear usuarios nuevos sólo para el servicio de FTP, que únicamente utilicen ficheros en sus carpetas que sepan que quedarán expuestos al acceso FTP.

Guardaremos los cambios en el fichero pulsando Control + O y cerraremos con Control + X.

Para aplicar los cambios reiniciaremos el servicio de vsftpd con el comando:

sudo systemctl restart vsftpd.service

Y volveremos a comprobar el estado del servicio, para asegurarnos de que se ha iniciado correctamente:

sudo systemctl status vsftpd.service

configuracion-servidor-ftp-linux

A partir de ahora tendremos acceso al servidor FTP desde equipos de la red.

Acceder al servidor FTP con Filezilla desde un equipo Windows (o Linux / MacOS)

Podremos utilizar cualquier cliente de FTP para conectarnos al servidor FTP montado en el equipo Linux Debian 11. Como ejemplo usaremos Filezilla, que tendremos instalado en Windows (o cualquier otro SO). Crearemos un nuevo sitio en Filezilla, indicando los datos de conexión:

  • Protocolo: elegiremos «FTP – Protocolo de Transferencia de Archivos».
  • Servidor: introduciremos la dirección IP del servidor de FTP (el equipo Linux Debian 11).
  • Puerto: no hace falta indicarlo salvo que no sea el estándar, 20 y 21 para FTP.
  • Cifrado: al ser un FPT «simple», elegiremos «Usar sólo FTP plano (inseguro)». Como indica el aviso es una conexión no cifrada y no segura. Debemos tener esto en cuenta.
  • Usuario: el usuario para conexión FTP creado anteriormente, que estará en el fichero /etc/vsftpd.listausuarios. En nuestro caso «user_ftp».
  • Contraseña: la contraseña del usuario anterior.

Realizaremos la conexión pulsando en «Conectar»:

configuracion-servidor-ftp-linux

Nos advertirá de que vamos a conectarnos a un servicio no seguro (FTP plano):

configuracion-servidor-ftp-linux

Pulsaremos «Aceptar» en la ventana de confirmación anterior y realizará la conexión al servidor FTP, mostrándonos la carpeta raíz del usuario (/home/user_ftp). Vemos que no tiene acceso a carpetas inferiores del equipo pero sí a toda su carpeta y subcarpetas /home/user_ftp:

configuracion-servidor-ftp-linux

Nos advertirá de que vamos a conectarnos a un servicio no seguro (FTP plano):

configuracion-servidor-ftp-linux

Pulsaremos «Aceptar» en la ventana de confirmación anterior y realizará la conexión al servidor FTP, mostrándonos la carpeta raíz del usuario (/home/user_ftp). Vemos que no tiene acceso a carpetas inferiores del equipo pero sí a toda su carpeta y subcarpetas /home/user_ftp:

configuracion-servidor-ftp-linux

Insistimos en que este método de conexión por FTP plano sólo debe ser usado en ocasiones excepcionales y de forma controlada. Por ejemplo cuando tenemos algún servicio en nuestra red que requiere de este protocolo FTP plano (y no admite otro) para enviar ficheros de backup o similares.

Se recomienda disponer de un servidor de FTP seguro. En el siguiente artículo explicamos cómo instalarlo en un equipo Linux Debian 11: