# Servidor FTP en Ubuntu: así se puede configurar

El protocolo de transferencia de archivos FTP (File Transfer Protocol) es una de las soluciones más populares para la carga y descarga de archivos. En este artículo te ofrecemos información sobre cómo instalar y configurar tu propio servidor FTP en Ubuntu y sobre los aspectos que se deben tener en cuenta para ello.

## Instalación de un servidor FTP en Ubuntu

Antes de sumergirte en la configuración de tu servidor FTP en Ubuntu es necesario que encuentres el software apropiado. Para ello, los sistemas Ubuntu, como el sistema Ubuntu 22.04, cuentan ya con una solución propia en el sistema de gestión de paquetes, [vsftpd](https://security.appspot.com/vsftpd.html "Servidor FTP con licencia GPL para sistemas tipo Unix: vsftpd"), que solo hay que instalar. Para instalar la aplicación, abre el terminal e introduce el siguiente comando:

```bash
sudo apt-get install vsftpd
```

[![Imagen: Ubuntu 22.04: instalación de vsftpd en el terminal](https://www.ionos.mx/digitalguide/fileadmin/_processed_/0/5/csm_vsftpd-installation-ubuntu-2204_90633f9b4b.webp "Ubuntu 22.04: instalación de vsftpd en el terminal")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/vsftpd-installation-ubuntu-2204.png) Los permisos de root o de administrador (sudo) son un requisito fundamental para la instalación de vsftpd.  Consejo ¿Necesitas guardar o transferir datos? Contratando ahora un [Secure FTP Hosting](https://www.ionos.es/alojamiento/servidor-ftp "Contrata Secure FTP Hosting en IONOS") con IONOS, obtendrás transferencia segura con SSH y SSL/TLS y copias diarias de seguridad.

## El hardware adecuado para tu servidor FTP en Ubuntu

Los requisitos de hardware de un servidor FTP en Ubuntu 22.04 varían según el escenario de uso. Para garantizar una conexión óptima a Internet, se recomienda el **hosting con un proveedor profesional** como IONOS. Con los [servidores virtuales VPS](https://www.ionos.mx/servidores/vps "Alquila un VPS de IONOS a buen precio") y los [servidores dedicados](https://www.ionos.mx/servidores/dedicated-server "Servidores dedicados de IONOS"), dispones de dos opciones potentes para el **funcionamiento de un servidor FTP eficiente**.

A continuación, te mostramos tres escenarios posibles para tu servidor FTP en Ubuntu junto con el plan de servidor de IONOS más adecuado para cada caso:

<table>
  <thead>
    <tr>
      <th>Escenario del servidor FTP en Ubuntu</th>
      <th>Plan recomendado de IONOS</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Servidor FTP básico; transferencias esporádicas de datos</td>
      <td>VPS Linux M</td>
    </tr>
    <tr>
      <td>Gran servidor FTP empresarial; transferencias regulares de datos</td>
      <td>VPS Linux XL</td>
    </tr>
    <tr>
      <td>Servidor FTP público; transferencias continuas de datos</td>
      <td>Dedicated Server AR6-32 SSD</td>
    </tr>
  </tbody>
</table>

## Tutorial para la configuración de un servidor FTP en Ubuntu

Después del breve proceso de instalación puedes cerrar el terminal y empezar a configurar el servidor FTP en Ubuntu. Para ello, abre el archivo de configuración `vsftpd.conf`, que normalmente se encuentra en la directorio `etc`.

[![Imagen: Fragmento de los documentos disponibles en el directorio etc](https://www.ionos.mx/digitalguide/fileadmin/_processed_/1/1/csm_etc-ordner-vsftpd-conf_bff8496e26.webp "Fragmento de los documentos disponibles en el directorio etc")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/etc-ordner-vsftpd-conf.png) El directorio etc contiene diversos archivos de configuración y de información como, por ejemplo, vsftpd.conf. Para abrir y editar el archivo de configuración del servidor FTP en Ubuntu se necesita un editor de textos. Para tal fin, Ubuntu ya trae instalado el programa **gedit** (editor GNOME).

El contenido textual puede dividirse en dos ámbitos:

- Las líneas que comienzan con el símbolo de la almohadilla (#) **se tratan como comentarios**, por lo que el servidor las ignora. Son, por un lado, comentarios a las diferentes opciones de configuración y, por el otro, funciones desactivadas.
- Las líneas que no comienzan con una almohadilla contienen información que el servidor interpretará más adelante.

[![Imagen: Vista del archivo vsftpd.conf](https://www.ionos.mx/digitalguide/fileadmin/_processed_/3/a/csm_vsftpd-conf-gedit_45c5d273e0.webp "Vista del archivo vsftpd.conf")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/vsftpd-conf-gedit.png) Las almohadillas no solo son importantes para el servidor vsftpd, sino que fomentan la comprensión y optimizan la legibilidad. Para los siguientes ajustes al servidor FTP en Ubuntu 22.04 no hay ningún requisito general, sino que la configuración depende de las pretensiones que se tienen con respecto al servidor FTP. En los siguientes apartados de este manual te informamos sobre las **diversas opciones de configuración y sus funciones**.

Nota Para guardar los cambios en el archivo `vsftpd.conf` se necesitan derechos de administrador. De lo contrario, solo podrás leerlo.

### Permitir el acceso anónimo

Con los ajustes estándares, vsftpd está configurado de manera que el usuario solo puede iniciar sesión en el servidor FTP con una cuenta específica. El [File Transfer Protocol](https://www.ionos.mx/digitalguide/servidores/know-how/file-transfer-protocol/) también permite un procedimiento de inicio de sesión anónimo sin que el usuario tenga que utilizar datos personales y, para activar este **acceso inespecífico**, busca la entrada `anonymous_enable=NO` y sustituye el parámetro `NO` por `YES`:

```txt
anonymous_enable=YES
```

[![Imagen: vsftpd.conf: configuración del acceso FTP anónimo](https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_ubuntu-ftp-server-anonymer-login_b29b8c936f.webp "vsftpd.conf: configuración del acceso FTP anónimo")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/ubuntu-ftp-server-anonymer-login.png) Una vez que hayas añadido la línea “anonymous\_enable=YES”, el acceso anónimo a tu servidor FTP en Ubuntu estará habilitado. ### Ampliar los permisos de los usuarios anónimos

Por lo general, los permisos están muy limitados cuando los usuarios se registran de manera anónima en un servidor FTP en Ubuntu. Así, solo es posible descargar los archivos que sean legibles para todas las personas (`anon_world_readable_only=YES`). Si se niega esta instrucción, también se permite la **descarga de otros archivos**.

Nota Si el servidor FTP está conectado a Internet, **no se recomienda** ampliar los permisos para sesiones anónimas. De lo contrario, corres el riesgo de que terceros utilicen tu servidor de manera indebida.

Otras **opciones disponibles** para ampliar los permisos de usuarios anónimos son las siguientes:

- `anon_mkdir_write_enable`: los usuarios anónimos pueden crear nuevos directorios si estableces el valor en `YES` o eliminas el carácter `#` que comenta la línea. Es necesario que la opción `write_enable` esté activada.
- `anon_other_write_enable=YES`: si añades esta línea, los archivos y directorios en el servidor FTP podrán ser renombrados y eliminados incluso en accesos anónimos.
- `anon_upload_enable=YES`: esta línea activa la carga anónima de archivos. Para ello, debes habilitar `write_enable` y crear un directorio de carga separado, ya que los usuarios anónimos no pueden escribir directamente en el directorio home.

### Restringir el acceso de usuarios locales al directorio home

A los usuarios locales solo se les permite el acceso al directorio principal `/home/username` por medio del archivo `vsftpd.conf`. El parámetro de distinción responsable en este caso es `chroot_local_user`. La línea está comentada por defecto en Ubuntu 22.04. Elimina el `#` para impedir que las cuentas locales accedan a otros directorios.

```txt
chroot_local_user=YES
```

### Activar o desactivar el acceso de usuarios locales

Para permitir a los usuarios locales acceder al servidor FTP, la opción `local_enable=YES` debe estar habilitada, lo cual es la configuración predeterminada. Si quieres impedir el acceso de los usuarios locales a tu servidor FTP en Ubuntu, simplemente **comenta** la línea correspondiente añadiendo el símbolo de almohadilla (`#`) al principio:

```txt
#local_enable=YES
```

[![Imagen: Servidor FTP en Ubuntu: configuración de los permisos de los usuarios locales](https://www.ionos.mx/digitalguide/fileadmin/_processed_/c/d/csm_lokale-ftp-user-erlaubt_55cb55af12.webp "Servidor FTP en Ubuntu: configuración de los permisos de los usuarios locales")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/lokale-ftp-user-erlaubt.png) Por defecto, el inicio de sesión para cuentas de usuarios locales está permitido en el archivo de configuración vsftpd.conf. ### Activar el acceso global de escritura

En Ubuntu 22.04, la configuración predeterminada establece que ni las cuentas locales ni las anónimas pueden utilizar comandos FTP. La línea correspondiente a la escritura global, `write_enable=YES`, está comentada y, por tanto, desactivada.

Si deseas permitir que los usuarios autenticados **modifiquen el sistema de archivos del servidor vsftpd**, debes eliminar el símbolo de almohadilla (`#`) al inicio de la línea:

```txt
write_enable=YES
```

### Limitar el acceso FTP a usuarios específicos

En algunas situaciones puede ser conveniente prohibir el acceso al servidor FTP a algunos usuarios o definir con claridad qué usuarios pueden conectarse.

Para **denegar el acceso a determinados usuarios**, añade las siguientes líneas al final del archivo de configuración:

```txt
userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
```

Estos parámetros indican al servidor vsftpd que debe negar el acceso a todos los usuarios incluidos en el archivo externo `vsftpd.user_list`. El resto de los usuarios pueden conectarse de manera habitual.

Si deseas **permitir el acceso solo a usuarios específicos**, debes establecer el parámetro `userlist_deny` en **NO**. Como resultado, solo podrán iniciar sesión las cuentas de usuario que hayas añadido al archivo `vsftpd.user_list`:

```txt
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
```

Nota En ambos casos, es necesario crear manualmente el archivo de texto externo `vsftpd.user_list` en el directorio `/etc/`. Cada cuenta de usuario debe añadirse en una línea separada dentro del archivo.

### Servidor FTB en Ubuntu: lista de opciones adicionales

<table>
  <thead>
    <tr>
      <th>Opción</th>
      <th>Valor predeterminado</th>
      <th>Descripción</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`download_enable`</td>
      <td>-</td>
      <td>Activar (`YES`) o desactivar (`NO`) las descargas</td>
    </tr>
    <tr>
      <td>`ssl_enable`</td>
      <td>`NO`</td>
      <td>Habilitar el cifrado SSL para el acceso FTP</td>
    </tr>
    <tr>
      <td>`force_anon_logins_ssl`</td>
      <td>`NO`</td>
      <td>Obligar a los usuarios anónimos a utilizar una conexión SSL (`YES`)</td>
    </tr>
    <tr>
      <td>`force_local_logins_ssl`</td>
      <td>`NO`</td>
      <td>Obligar a los usuarios locales a utilizar una conexión SSL (`YES`)</td>
    </tr>
    <tr>
      <td>`anon_max_rate`</td>
      <td>`0`</td>
      <td>Velocidad máxima de transferencia (en bytes/segundo) para usuarios anónimos; `0` significa sin límite</td>
    </tr>
    <tr>
      <td>`local_max_rate`</td>
      <td>`0`</td>
      <td>Velocidad máxima de transferencia (en bytes/segundo) para usuarios locales; `0` significa sin límite</td>
    </tr>
    <tr>
      <td>`max_clients`</td>
      <td>`0`</td>
      <td>Número máximo de clientes que pueden conectarse simultáneamente; `0` significa sin restricciones</td>
    </tr>
    <tr>
      <td>`max_per_ip`</td>
      <td>`0`</td>
      <td>Número máximo de conexiones permitidas por dirección IP; `0` significa sin restricciones</td>
    </tr>
    <tr>
      <td>`anon_root`</td>
      <td>`/home/ftp`</td>
      <td>Directorio predeterminado para usuarios anónimos</td>
    </tr>
  </tbody>
</table>

Puedes acceder a la lista completa de todas las opciones en el terminal con ayuda del siguiente comando:

```bash
man vsftpd.conf
```

[![Imagen: Página Man del archivo de configuración de vsftpd](https://www.ionos.mx/digitalguide/fileadmin/_processed_/5/0/csm_vsftpd-conf-manuals_ced84c321a.webp "Página Man del archivo de configuración de vsftpd")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/vsftpd-conf-manuals.png) En los manuales del servidor FTP en Ubuntu encuentras información detallada sobre todas las opciones disponibles. ## Así puedes utilizar el servidor FTP en Ubuntu 22.04

Una vez hayas editado el archivo de configuración conforme a tus preferencias, no te olvides de guardarlo. Para que la aplicación del servidor acepte todos los cambios, es necesario **reiniciar el sistema** mediante el siguiente comando:

```bash
sudo systemctl restart vsftpd
```

Si todavía no has iniciado el servidor FTP, puedes hacerlo con el siguiente comando:

```bash
sudo systemctl start vsftpd
```

Consejo Si quieres detener el servidor FTP en Ubuntu, sustituye en el comando anterior `start` por `stop`.

### Crear una cuenta de usuario FTP

Finalizada la configuración del servidor FTP en Ubuntu, necesitas una **cuenta de usuario** para poder iniciar sesión. Como ejemplo, otorgamos al usuario el nombre “ftpuser” y definimos la contraseña con “test123”.

```bash
sudo useradd -m user -s/usr/sbin/nologin
sudo passwd user
```

A continuación, **permite el acceso de inicio de sesión para la shell NoLogin** añadiendo la siguiente línea al final del archivo `/etc/shells`:

```txt
/usr/sbin/nologin
```

### Establecer conexión con el servidor FTP

Ahora puedes utilizar la cuenta de usuario creada para **establecer la conexión con el servidor vsftpd** a través del cliente FTP de tu elección. Una opción popular y multiplataforma, cuyos paquetes están disponibles por defecto en Ubuntu, es la aplicación de código abierto [FileZilla](https://www.ionos.mx/digitalguide/servidores/configuracion/filezilla-la-solucion-para-el-cliente-ftp/).

Para instalarla, simplemente ejecuta el siguiente comando en el terminal:

```bash
sudo apt-get install filezilla
```

Abre FileZilla y agrega una nueva conexión con los datos adecuados: en el apartado del host introduce la dirección IP de tu servidor FTP en Ubuntu, el cual, siempre que no se haya modificado en la configuración, escucha las peticiones en el puerto 21. Elige el File Transfer Protocol y si es posible **SFTP (Secure FTP) o FTP over TLS**, ya que una conexión sencilla a través del puerto 21 plantea riesgos de seguridad muy elevados. En el campo “Logon Type” selecciona la opción “Normal” y para “User” y “Password” necesitas los datos de acceso de la cuenta de ejemplo que se han generado antes. Tras ello podrás establecer la conexión con el servidor haciendo clic en “Connect”.

[![Imagen: FileZilla Site Manager](https://www.ionos.mx/digitalguide/fileadmin/_processed_/b/e/csm_filezilla-site-manager_b93e88813c.webp "FileZilla Site Manager")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/filezilla-site-manager.png) El cliente de FileZilla ofrece detalladas opciones de configuración para establecer la conexión con el servidor FTP. ### 500 OOPS: mecanismo de seguridad para resolver problemas

Si tras crear un servidor FTP en Ubuntu hay algunos ajustes que no funcionan, esto puede tener varias causas: es posible que hayas olvidado reiniciar el servidor FTP o proteger el archivo de configuración. Asimismo, también pueden colarse errores sintácticos en el archivo `vsftpd.conf` cuando se coloca un espacio en el lugar incorrecto. Este es el aspecto de un mensaje de error habitual producido por un motivo totalmente diferente:

`500 OOPS: vsftpd: refusing to run with writable root inside chroot ()`

Este mensaje, que puede aparecer cuando se está estableciendo conexión, no es en sí un aviso de error, sino de una función de seguridad. El motivo para ello es una posible vulnerabilidad de la **biblioteca glibc** (biblioteca estándar de Ubuntu del lenguaje de programación C), a la que los usuarios pueden recurrir si tienen permisos de escritura para su propio directorio raíz. Para eludir este bloqueo de seguridad existen dos soluciones:

1. **Eliminar los permisos de seguridad en el directorio raíz del usuario**: deben revocarse los permisos de escritura de los usuarios para el propio directorio raíz de modo que solo puedan escribir en subdirectorios. Dicha limitación permite eliminar el problema “500 OOPS”, pero es poco ventajosa si necesariamente tienen que escribirse archivos en el directorio raíz. Para ello, el comando del terminal que debe utilizarse es:

```bash
chmod a-w */home/user*
```

2. **Conceder permisos de escritura para el directorio raíz en `vsftpd.conf`**: si no tienes ningún problema de seguridad derivado de un abuso de los permisos de escritura, puedes informar al servidor FTP de Ubuntu de que esta es la función deseada, para lo que solo es necesario incluir una entrada en el archivo de configuración:

```txt
allow_writeable_chroot=YES
```


This is a markdown version of: [https://www.ionos.mx/digitalguide/servidores/configuracion/servidor-ftp-en-ubuntu-instalacion-y-configuracion/](https://www.ionos.mx/digitalguide/servidores/configuracion/servidor-ftp-en-ubuntu-instalacion-y-configuracion/) for AI/LLM consumption.