Cómo instalar un servidor FTP en Ubuntu 18.04

En esta entrada veremos cómo instalar un servidor FTP en Ubuntu 18.04 LTS Bionic Beaver con vsFTPd paso a paso. Al final de esta guía tendrás un servicio FTP instalado y configurado en tu servidor o VPS Ubuntu para usuarios locales y/o anónimos y con seguridad TLS.

Antes de instalar el servidor FTP en Ubuntu 18.04 LTS

Si vas a seguir esta guía de instalación del servidor FTP vsFTPd en Ubuntu 18.04 LTS deberías cumplir estos requisitos mínimos:

  • Una máquina Ubuntu 18.04 actualizada.
  • Un usuario con privilegios de sudo.
  • Conexión a Internet.
  • Acceso desde la red con clientes FTP, como Filezilla.

Casi seguro que cumples estos requerimientos (por eso estás consultando esta guía), así que abre una terminal y pasamos a la acción.

Cómo instalar el servidor FTP en Ubuntu 18.04

Vamos a instalar un servidor FTP en Ubuntu 18.04 LTS utilizando los paquetes disponibles en los propios repositorios de Ubuntu, por lo que en primer lugar procedemos a actualizar la información de estos repositorios:

~$ sudo apt update

Como el servidor FTP que vamos a instalar es vsFTPd necesitaremos el paquete vsftpd, que instalamos con apt:

~$ sudo apt -y install vsftpd

En unos instantes se descarga e instala el paquete y sus pocas dependencias. Tras la instalación se crea un nuevo servicio en nuestro sistema Ubuntu 18.04, llamado vsftpd.service (también puedes usar el nombre corto, vsftpd). Este servicio vsftpd queda activado y en ejecución, como puedes comprobar mediante el comando systemctl status vsftpd:

como instalar ftp en ubuntu 18.04 lts bionic beaver

Configurar el firewall UFW para el servicio FTP en Ubuntu 18.04

Si tienes activado el firewall UFW necesitarás añadir reglas que permitan las conexiones externas al servicio FTP. La principal sería esta:

~$ sudo ufw allow ftp

Pero con esa regla sólo se podrá conectar en modo activo, cuando la mayoría de clientes intentan conectar por defecto en modo pasivo.

Debemos abrir un rango de puertos para usar el modo pasivo que posteriormente configuraremos en vsFTPd.

Por ejemplo, podemos abrir los puertos del 30000 al 30050:

~$ sudo ufw allow 30000:30050/tcp

Puedes escoger un rango mayor o menor y con otra numeración según tus necesidades.

Cómo configurar el servidor FTP vsFTPd en Ubuntu 18.04

Para configurar el servidor FTP vsFTPd en Ubuntu 18.04 debemos saber que su configuración se almacena en el archivo /etc/vsftpd.conf. Este es el archivo que necesitarás modificar para cambiar la forma en que vsFTPd se comporta.

Tras cada modificación de este archivo habrá que recargar la configuración del servicio vsftpd.

Configurar el modo pasivo

Para configurar el modo pasivo y que el servidor FTP se comporte correctamente estando tras un firewall, añadiremos las directivas que se encargarán de activar dicho modo pasivo. Para ello editamos vsftpd.conf:

~$ sudo nano /etc/vsftpd.conf

Y nos desplazamos al final del archivo para añadir estas líneas:

...
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30050

Guardamos los cambios y recargamos la configuración del servicio:

~$ sudo systemctl reload vsftpd

Ahora el servidor FTP de Ubuntu 18.04 es capaz de aceptar conexiones en modo activo y en modo pasivo.

Enjaular al usuario en su carpeta personal (chroot)

Algo que podrías querer modificar es que cuando un usuario conecta, puede salir de su carpeta de usuario y navegar por todo el sistema. Si tienes varios usuarios en ese sistema tal vez este comportamiento no te interese. Para encerrar al usuario en su directorio personal, lo que se llama chroot, editamos vsftpd.conf y buscamos la directiva chroot_local_user:

...
#chroot_local_user=YES
...

Hay que añadir una directiva allow_writeable_chroot para que se pueda hacer chroot de los usuarios del sistema. Podemos añadir esta directiva a continuación de la anterior:

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

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

Ahora cada vez que un usuario de tu sistema Ubuntu 18.04 conecte a través de FTP sólo verá su propia carpeta, ignorando el resto de la estructura del sistema de archivos.

Permitir que el usuario modifique archivos

Con la configuración por defecto el usuario puede descargar archivos, pero no puede escribir, aunque tenga permisos de escritura en el sistema de archivos de Ubuntu 18.04. Para que se le permita escribir y por tanto subir archivos, buscamos la directiva write_enable:

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

Eliminaremos el carácter # inicial para activar esta directiva, y recargaremos la configuración de vsftpd. Ahora el usuario puede escribir (subir, modificar o eliminar archivos y carpetas) en su directorio personal.

Acceso anónimo

El acceso anónimo al servicio FTP vsFTPd en Ubuntu 18.04 está desactivado por defecto. Si quieres que cualquiera pueda conectar a tu servidor sin ser usuario, debes buscar la directiva anonymous_enable en el archivo vsftpd.conf:

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

Está claro que la modificación que hay que hacer es cambiar NO por YES, pero además si configuramos la directiva no_anon_password no se obligará a los usuarios anónimos a suministrar una contraseña sin sentido.

Esta sección de la configuración podría quedar así:

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

El directorio en el que debes organizar el contenido que quieres servir de forma pública es /srv/ftp/ en Ubuntu 18.04 LTS. Puedes copiar o crear algunos archivos y carpetas de prueba, como la típica carpeta pub/ que tienen todos los servicios de FTP públicos.

~$ sudo mkdir /srv/ftp/pub

Al recargar la configuración del servidor FTP ya puedes conectar como usuario anónimo y navegar por la estructura de archivos y carpetas que prepares bajo /srv/ftp/.

como instalar y configurar ftp en ubuntu 18.04 lts bionic beaver

Seguridad SSL para tu servidor FTP en Ubuntu 18.04

Puede que te interese configurar un acceso seguro a tu servidor FTP en Ubuntu 18.04. Esa es una de las razones de haber elegido vsFTPd para la elaboración de esta guía, ya que la configuración es rápida y sencilla. Editamos el archivo de configuración vsftpd.conf y buscaremos la directiva ssl_enable:

...
# 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
...

Podemos observar dos cosas, en primer lugar las rutas a los certificados RSA que se usarán para la configuración SSL, y en segundo lugar que la seguridad SSL está desactivada.

Los certificados configurados por defecto son los que se crean automáticamente con el paquete ssl-cert, que de hecho es una dependencia de vsftpd. Si quisieras utilizar otras claves y certificados RSA debes sustituir las rutas convenientemente. Y debes activar la seguridad SSL cambiando el valor de ssl_enable:

...
ssl_enable=YES
...

Ahora ya puedes recargar la configuración de vsFTPd. Ten en cuenta que los clientes de FTP pueden tener problemas para usar SSL con accesos anónimos, así que en caso de conexión anónima configura en el cliente la conexión como plana o no segura, y no tendrás problemas.

Conclusión

Ahora ya sabes cómo instalar y configurar un servidor FTP con vsFTPd en Ubuntu 18.04 LTS Bionic Beaver, por lo que puedes transferir archivos hacia y desde ese sistema tanto en red local como a través de Internet. Es muy útil configurar acceso a usuarios de Ubuntu para actualizar, por ejemplo, archivos de sus páginas web, si permites que alojen sus webs en sus carpetas personales.

¡Apoya este sitio!

¿Pensabas que iba a ser más complicado instalar y configurar un servidor FTP en Ubuntu 18.04 LTS? Ya has visto qué fácil es con esta guía. Si te ha resultado tan útil que te apetece agradecérnoslo, cualquier mínima contribución al desarrollo y mantenimiento de este sitio es bienvenida, y puedes hacerlo dejando una propina de tan sólo 1 $ con PayPal:

O si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (1 voto)

Deja un comentario