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, que solo hay que instalar. Para instalar la aplicación, abre el terminal e introduce el siguiente comando:
sudo apt-get install vsftpd
bash
¿Necesitas guardar o transferir datos? Contratando ahora un Secure FTP Hosting 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 y los servidores dedicados, 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:
Escenario del servidor FTP en Ubuntu | Plan recomendado de IONOS |
---|---|
Servidor FTP básico; transferencias esporádicas de datos | VPS Linux M |
Gran servidor FTP empresarial; transferencias regulares de datos | VPS Linux XL |
Servidor FTP público; transferencias continuas de datos | Dedicated Server AR6-32 SSD |
- Ancho de banda de hasta 1 Gb/s y tráfico ilimitado
- Almacenamiento SSD NVMe ultrarrápido
- Incluye: edición Plesk Web Host
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
.

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.

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.
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 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
:
anonymous_enable=YES
txt
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.
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 enYES
o eliminas el carácter#
que comenta la línea. Es necesario que la opciónwrite_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 habilitarwrite_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.
chroot_local_user=YES
txtActivar 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:
#local_enable=YES
txt
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:
write_enable=YES
txtLimitar 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:
userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txtEstos 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
:
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txtEn 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
Opción | Valor predeterminado | Descripción |
---|---|---|
download_enable
|
- | Activar (YES ) o desactivar (NO ) las descargas
|
ssl_enable
|
NO
|
Habilitar el cifrado SSL para el acceso FTP |
force_anon_logins_ssl
|
NO
|
Obligar a los usuarios anónimos a utilizar una conexión SSL (YES )
|
force_local_logins_ssl
|
NO
|
Obligar a los usuarios locales a utilizar una conexión SSL (YES )
|
anon_max_rate
|
0
|
Velocidad máxima de transferencia (en bytes/segundo) para usuarios anónimos; 0 significa sin límite
|
local_max_rate
|
0
|
Velocidad máxima de transferencia (en bytes/segundo) para usuarios locales; 0 significa sin límite
|
max_clients
|
0
|
Número máximo de clientes que pueden conectarse simultáneamente; 0 significa sin restricciones
|
max_per_ip
|
0
|
Número máximo de conexiones permitidas por dirección IP; 0 significa sin restricciones
|
anon_root
|
/home/ftp
|
Directorio predeterminado para usuarios anónimos |
Puedes acceder a la lista completa de todas las opciones en el terminal con ayuda del siguiente comando:
man vsftpd.conf
bash
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:
sudo systemctl restart vsftpd
bashSi todavía no has iniciado el servidor FTP, puedes hacerlo con el siguiente comando:
sudo systemctl start vsftpd
bashSi 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”.
sudo useradd -m user -s/usr/sbin/nologin
sudo passwd user
bashA 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
:
/usr/sbin/nologin
txtEstablecer 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.
Para instalarla, simplemente ejecuta el siguiente comando en el terminal:
sudo apt-get install filezilla
bashAbre 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”.

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:
- 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:
chmod a-w */home/user*
bash- 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:
allow_writeable_chroot=YES
txt¡Prueba tu servidor virtual durante 30 días! Si lo solicitas, te reembolsaremos todos los gastos incurridos.