Cómo instalar un servidor FTP en Debian 10 Buster

En esta entrada vamos a ver cómo instalar un servidor FTP con Debian 10 Buster paso a paso, con vsFTPd. Ya vimos hace tiempo cómo hacer esto mismo con la versión anterior de nuestro sistema favorito, por lo que le llega el turno al nuevo Debian 10. Al final de esta guía tendrás montado un servicio FTP en tu servidor o VPS Debian con acceso anónimo, acceso por contraseña, conexión cifrada TLS, etc.

Antes de instalar el servidor FTP en Debian 10 Buster

Para poder seguir los pasos de esta pequeña guía de instalación y configuración del servidor FTP vsFTPd en Debian 10 Buster se necesita cumplir unos pequeños requisitos:

  • Un sistema Debian 10 actualizado.
  • Acceso por consola con root o un usuario con permisos de sudo.
  • Conexión a Internet.
  • Otros sistemas en red con clientes FTP, por ejemplo Filezilla.

Si tienes listo todo lo anterior, es el momento de iniciar sesión y abrir una consola para hacer el trabajo.

Cómo instalar el servidor FTP en Debian 10

Puesto que para instalar el servidor FTP en Debian 10 Buster nos valdremos de paquetes existentes en el mismo repositorio de la distribución, el primer paso es actualizar las listas de paquetes disponibles en el repositorio:

~$ sudo apt update

El paquete que necesitamos instalar es vsftpd:

~$ sudo apt -y install vsftpd

En unos instantes vsFTPd se descargará e instalará, configurándose un nuevo servicio en nuestro sistema Debian 10 llamado vsftpd o vsftpd.service, que queda activado y en ejecución por defecto.

Puedes comprobar el estado del servicio vsftpd en cualquier momento con el comando systemctl status vsftpd:

como instalar ftp en debian 10 buster

Configurar el firewall para el servicio FTP en Debian 10

Si tienes activado el firewall UFW en Debian 10 y quieres acceder al servicio FTP desde otras máquinas, necesitarás añadir las reglas adecuadas al firewall.

En primer lugar debes permitir el acceso al servicio FTP:

~$ sudo ufw allow ftp

También habrá que permitir el puerto de datos:

~$ sudo ufw allow ftp-data

Además, para permitir el modo pasivo debes fijar un rango de puertos en los que se establecerán este tipo de conexiones. En este ejemplo vamos a configurar el rango de puertos desde el 20000 al 20100:

~$ sudo ufw allow 20000:20100/tcp

Cómo instalar el cliente de consola en Debian 10

Si lo que necesitas es instalar un cliente FTP en Debian 10 Buster, entonces el paquete que buscas es ftp:

~$ sudo apt install -y ftp

El comando de consola se llama igual: ftp.

Cómo configurar el servicio FTP en Debian 10 Stretch

Para configurar el servicio de FTP vsFTPd en Debian 10 tendremos que recurrir a su archivo principal de configuración, que es /etc/vsftpd.conf.

Antes de tocar nada conviene saber cuál es la configuración por defecto del servicio vsftpd:

  • El servicio funciona escuchando conexiones IPv4 e IPv6.
  • No se aceptan conexiones anónimas.
  • Los usuarios pueden navegar por todo el sistema de archivos donde tengan permisos.
  • La conexión no está cifrada.

Puede que la configuración por defecto se ajuste a tus necesidades, pero vamos a ver algunos cambios de configuración de vsFTPd que podrían resultar útiles.

Cualquier cambio que hagas en vsftpd.conf no tendrá efecto hasta recargar la configuración del servicio vsftpd:

~$ sudo systemctl reload vsftpd

Modo pasivo

Configuraremos el modo pasivo del servidor FTP usando el mismo rango de puertos que hayamos establecido en la configuración del firewall. Para ello, editaremos el archivo vsftpd.conf:

~$ sudo nano /etc/vsftpd.conf

Al final del archivo insertaremos este bloque de directivas:

...
# Modo pasivo
pasv_enable=YES
pasv_min_port=20000
pasv_max_port=20100

Guardaremos los cambios y recargaremos la configuración del servicio.

Cómo probar el servicio FTP

Desde el navegador de cualquier otra máquina, usaremos el protocolo ftp:// para acceder al servidor FTP añadiendo la dirección IP, nombre de máquina o dominio de nuestro sistema Debian 10. En este ejemplo, la máquina Debian 10 es accesible a través del dominio debian10.local, por tanto la URL sería ftp://debian10.local

como instalar un servidor ftp en debian 10 buster

La conexión funciona y la prueba es que nos pide usuario y contraseña.

Permitir el acceso anónimo

Para permitir conexiones anónimas que permitan descargar archivos, debemos saber que la carpeta destina de forma predeterminada es /srv/ftp/, que está completamente vacía. Vamos a crear la típica carpeta pub/ presente en todos los servicios FTP públicos:

~$ sudo mkdir /srv/ftp/pub

Dentro de estos directorios organizaríamos los archivos disponibles según nuestras necesidades.

Editamos vsftpd.conf y buscaremos la directiva anonymous_enable:

...
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
...

Cambiaremos su valor de NO a YES. Como no tiene sentido pedir contraseña para conexiones anónimas, podemos opcionalmente añadir la directiva no_anon_pasword:

...
anonymous_enable=YES
no_anon_password=YES
...

Guardamos los cambios y recargamos la configuración de vsFTPd.

De nuevo, la forma más rápida y fácil de comprobar el acceso anónimo es a través de un navegador:

como configurar el servidor ftp vsftpd en debian 10 buster

Esta vez la conexión se establece sin necesidad de introducir usuario y contraseña. Además podemos ver la carpeta pub/ que creamos anteriormente.

Cifrado TLS y conexiones seguras

Si necesitas una conexión cifrada al servidor FTP, lo que normalmente se llama FTP sobre TLS, es muy fácil de configurar.

Editamos el archivo vsftpd.conf y buscamos la directiva ssl_enable:

...
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
...

Basta con cambiar su valor de NO a YES. Observa también las dos directivas anteriores que indican la ubicación de los certificados RSA que se emplearán para el cifrado. Estos certificados se crean durante la instalación del paquete ssl-cert, que es una dependencia de vsftpd. Por tanto, los certificados existen y no hay que hacer nada más al respecto. Si quieres usar otros certificados, especifica sus rutas de acceso correspondientes.

En este ejemplo usamos los certificados generados por ssl-cert simplemente activando el cifrado:

...
ssl_enable=YES
...

Guarda los cambios y recarga la configuración de vsftpd.

A partir de ahora, en la configuración de la conexión de tu cliente FTP debes indicar que sea cifrada para usuarios con autenticación y sin cifrado para usuarios anónimos.

Permitir la escritura a usuarios locales

Cuando conecta un usuario local (con cuenta en el sistema Debian 10) accede a su directorio personal, pero sin embargo sólo puede leer, no puede escribir. Quizás te resulte útil que los usuarios puedan modificar sus archivos o subir archivos nuevos.

Para ello buscaremos dentro de vsftpd.conf la directiva write_enable:

...
# Uncomment this to enable any form of FTP write command.
#write_enable=YES
...

Rápidamente vemos que está desactivada, así que si queremos activarla eliminaremos el carácter # inicial y guardaremos los cambios.

...
write_enable=YES
...

Hacer chroot a los usuarios locales

Como vimos anteriormente, cuando un usuario local conecta por FTP accede directamente a su directorio personal, pero puede navegar por todo el sistema de archivos (con acceso de acuerdo a sus permisos).

Quizás prefieras que el usuario local sólo vea su carpeta personal, ignorando el resto del sistema de archivos, lo que se llama hacer un chroot.

Para hacer esto, en vsftpd.conf buscaremos la directiva chroot_local_user:

...
#chroot_local_user=YES
...

Además de eliminar el carácter # inicial, debemos añadir la directiva allow_writeable_chroot:

...
chroot_local_user=YES
allow_writeable_chroot=YES
...

Ahora queda guardar los cambios y recargar la configuración de vsftpd.

Desactivar el acceso a usuarios locales

Si finalmente lo que te interesa en tu sistema Debian 10 es un servidor FTP público anónimo, debes localizar la directiva local_enable:

...
# Uncomment this to allow local users to log in.
local_enable=YES
...

Puedes desactivar la directiva insertando un carácter # al comienzo de la línea o cambiar el valor a NO, ambas acciones dan el mismo resultado:

#local_enable=YES

Guarda los cambios y recarga la configuración del servicio vsftpd.

Conclusión

Ahora que sabes cómo instalar un servicio FTP en Debian 10 Buster ya puedes servir archivos de forma pública y anónima, a usuarios del sistema o de ambas formas, con y sin seguridad TLS.

Si tienes alguna duda, pregunta, sugerencia o notificación, puedes dejar un comentario.

Y si esta guía te ha evitado el dolor de cabeza de configurar el servicio FTP en Debian 10 Buster y quieres agradecérmelo, puedes hacerlo dejando 1 $ de propina en PayPal para una CocaCola:

¡Gracias!

5/5 - (2 votos)

3 comentarios en «Cómo instalar un servidor FTP en Debian 10 Buster»

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.