Vsftpd (Very Secure FTP Daemon) o demonio FTP muy seguro es un servidor FTP liviano, potente y altamente configurable. Se encuentra en los repositorios de todas las distribuciones Linux.

Por su parte, un FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos es uno de los protocolos estándar más utilizados en Internet para la transferencia de grandes bloques de datos a través de redes que soporten TCP/IP. Existen variantes que implementen túneles SSH sobre FTP denominados FTP.

El uso más extendido es para acceder al servidor web para modificar, subir, eliminar o modificar permisos de archivos o directorios.

En esta entrada vamos a ver cómo instalarlo y configurarlo con una instalación previa de apache.

instalación

Para su instalación, basta con un simple comando:

sudo apt-get install vsftpd

configuración

El nivel de complejidad de la configuración variará según qué necesidades tengamos. EL fichero de configuración se encuentra en /etc/vsftp.conf y viene configurado por defecto con características como FTP anónimo y otra serie de cosas, que a mi personalmente no me gustan, por lo que el primer paso va a ser editarlo:

sudo nano /etc/vsftpd.conf

Comentamos las siguientes líneas:

  • anonymous_enable: desactiva FTP anónimo.
  • ftpd_banner: mensaje de bienvenida.

A continuación, establecemos los siguientes parámetros para enjaular a determinados usuarios, es decir, evitar que anden por otros directorios que no sean los que nosotros indicamos:

  • chroot_local_user=YES
  • chroot_list_enable=YES
  • chroot_list_file=/etc/vsftpd/chroot_list

Con esto terminamos de configurar las opciones básicas. Lo que tenemos que hacer ahora es crear el fichero chroot_list que contendrá una lista de los usuarios a enjaular de la siguiente forma:

sudo nano /etc/vsftpd/chroot_list

y dentro introducimos la lista de usuarios del sistema que queremos enjaular:

usuario1
usuario2

Sólo tendremos que crear tantas líneas con usuarios del sistema que vayan a tener acceso al FTP como queramos.
Los usuarios del servicio FTP serán los usuarios del sistema.

usuarios

Se pueden crear nuevos usuarios con el simple comando:

sudo adduser –home /var/www/html –no-create-home –shell /bin/bash usuario

con el cual no se creará carpeta home por defecto pero se le vinculará la de apache. Habrá que dar permisos a la carpeta /var/www/html para que nuestro usuario pueda escribir.

Otra forma es con los usuarios existentes en el sistema, crear una carpeta www que redireccione a /var/www/html:

mkdir www
sudo ln -s /home/usuario/www /var/www/html

La última opción será crear usuarios fantasma, es decir, usuarios que no existan como tal en el sistema pero que si esten en un fichero de texto en formato usuario y contraseña. Para ello, mirar esta entrada.