You are on page 1of 3

Tutorial de cómo instalar vsftpd en Linux Ubuntu y configurarlo correctamente paso a paso

Para instalar vsftpd en Ubuntu 16.04 podemos emplear el comando:


$ >sudo apt install vsftpd

En Ubuntu 10.04 los comandos para iniciar, detener y reiniciar vsftpd son:
$>sudo service vsftpd restart
$>sudo service vsftpd start
$>sudo service vsftpd stop

Configurar vsftpd en Ubuntu.


Para configurar vsftpd voy a partir de cero, agregando un nuevo usuario al que darle los permisos
adecuados para que pueda subir y bajar archivos a una carpeta determinada. Este usuario quedará
encerrado en su carpeta home, de forma que no podrá acceder a ninguna otra parte del sistema
operativo. De este modo, conseguimos una configuración más segura.
Para añadir el usuario ejecutamos el comando:
sudo adduser vozidea
Tras ejecutar este comando nos solicitará que introduzcamos una contraseña.
Hago un pequeño inciso para recordar el tutorial de cómo añadir y eliminar usuarios en Linux que
escribimos hace algún tiempo.

Usaremos este usuario vozidea para acceder al servidor FTP. Debemos saber que el sistema de
seguridad de jaulas chroot de vsftp encierra al usuario en su carpeta home, por lo que en nuestro
caso el chroot sería /home/vozidea. Además, vsftp maneja las jaulas chroot de forma que se
deben cumplir dos condiciones:

 El dueño de la carpeta chroot y el usuario que se conecta por FTP no pueden ser el
mismo.
 La carpeta chroot no puede tener permisos de escritura.
Así que debemos cambiar el dueño de esta carpeta con el siguiente comando:
sudo chown root:root /home/vozidea
Si queremos que el usuario pueda subir archivos al servidor FTP, necesitaremos crear una carpeta:
sudo mkdir /home/vozidea/ftp_subidas
sudo chown vozidea:vozidea /home/vozidea/ftp_subidas
Algo muy importante es quitar el acceso al intérprete de comandos (shell) del usuario
vozidea que agregamos. Insisto en que es muy importante porque puede suponer un grave
riesgo de seguridad. El problema está en que al quitar acceso a la shell, vsftpd no nos deja acceder
al servidor FTP porque el usuario no tiene una shell válida asignada. Para solucionar esto vamos a
crear una shell personalizada, que añadiremos a la lista de shells válidas y finalmente
asignaremos esta shell a nuestro usuario.
Empezamos ejecutando el siguiente comando:
sudo nano /bin/ftponly
Añadimos las siguientes líneas y guardamos el archivo:
1 #!/bin/sh
2 echo "Esta cuenta solo dispone de acceso por FTP."
Damos permisos de ejecución a la shell ftponly con el comando:
sudo chmod a+x /bin/ftponly
Editamos la lista de shells válidas con el comando:
sudo nano /etc/shells

Añadimos /bin/ftponly al final de la lista:

1 # /etc/shells: valid login shells


2 /bin/sh
3 /bin/dash
4 /bin/bash
5 /bin/rbash
6 /bin/ftponly
Asignamos la shell ftponly a nuestro usuario:
sudo usermod vozidea -s /bin/ftponly
Nota importante: en algunos tutoriales que he podido leer no crean esta shell personalizada
ftponly, sino que usan la shell del sistema /usr/sbin/nologin o /sbin/nologin.
Como hay varios servicios del sistema que emplean esta shell nologin, no debemos usarla o
estaremos creando un problema de seguridad grave.
Llegados a este punto, ya tenemos nuestro usuario listo. Ahora procedemos a editar el archivo de
configuración de vsftpd con el comando:
sudo nano /etc/vsftpd.conf

Hay que modificar el archivo eliminando el carácter # en las partes correspondientes y haciendo las
modificaciones tal y como las mostramos a continuación:
1 ...
2
3 # Allow anonymous FTP? (Disabled by default).
4 anonymous_enable=NO
5 #
6 # Uncomment this to allow local users to log in.
7 local_enable=YES
8 #
9 # Uncomment this to enable any form of FTP write command.
10 write_enable=YES
11 #
12
13 ...
14
15 # You may restrict local users to their home directories. See
16 the FAQ for
17 # the possible risks in this before using chroot_local_user or
18 # chroot_list_enable below.
19 chroot_local_user=YES
20 #
...
Ya sólo nos queda reiniciar vsftpd con el comando que os mostramos al comienzo de este tutorial y
pasamos a probar que todo funciona correctamente. Así de sencillo es instalar vsftpd en Linux
Ubuntu.

You might also like