VSFTPD en Ubuntu 12.04

En esta entrada voy a describir los pasos básicos para poder instalar en nuestra máquina Linux con Ubuntu 12.04 un servidor FTP. Para ello voy ha utilizar VSFTPD, estas siglas vienen de “Very Secure FTP Daemon”, que viene a ser demonio FTP muy seguro. Se encuentra bajo licencia GNU y soporta IPv6 y SSL.

Instalación

La instalación la hacemos desde un terminal, aunque se puede utilizar Synaptic o cualquier otro gestor de paquetes, pero a mi me resulta más fácil desde comandos.

$ sudo apt-get install vsftpd

Configuración

La configuración del servicio se encuentra en un mismo fichero en /etc/vsftpd.conf, editamos este fichero y modificamos algunas de las opciones.

$ sudo gedit /etc/vsftpd.conf

A continuación detallo las que suelo modificar, evidentemente no están todas las opciones de configuración que ofrece VSFTPD. Como ocurre en otros servicios, la almohadilla (#) marca un comentario.

#Permitir o no el acceso a los usuarios anónimos
anonymous_enable=NO

#Permitir el acceso de usuarios locales a sus respectivas cuentas
local_enable=YES

#Activar el modo escritura
write_enable=YES

#Mensaje de bienvenida
ftpd_banner=Bienvenidos...

#Encerrar a los usuarios dentro de su propio directorio persona, aumenta la seguridad
chroot_local_user=YES

#Para que los usuarios puedan ver sus carpetas FTP y no el resto del sistema
chroot_list_enable=YES

#Lista de usuarios con acceso permitido al FTP
chroot_list_file=/etc/vsftpd.chroot_list

#Opciones de transferencia
#Establece el ancho de banda por cada usuario anónimo
anon_max_rate=5100

#Establece el ancho de banda por cada usuario local
local_max_rate=5100

#Número máximo de clientes simultáneos
max_clients=5

#Máximo número de conexiones por IP
max_per_ip=2

Usuarios para utilizar el servicio FTP

Generalmente, cuando instalas el servicio se crea automáticamente el grupo ftp y el directorio /home/ftp, pero si no ocurre esto lo tendremos que crear a mano.

  1. Creamos el directorio para el usuario dentro de /home/ftp, el directorios será el punto en el que se encuentren todos los directorios para cada usuario del FTP. En este caso, nuestro usuario se llamará copias.
    $ sudo mkdir /home/ftp/copias
  2. Creamos el grupo ftp, puede que ya exista.
    $ sudo groupadd ftp
  3. Ahora creamos el usuario para el FTP, añadiéndolo al grupo ftp y asignándole su directorio.
    $ sudo useradd -g ftp -d /home/ftp/copias -c "Copias" copias
  4. Y ahora se crea la contraseña para el usuario creado.
    $ sudo passwd copias

Ahora viene la parte interesante para los usuarios, vamos a crear un shell fantasma, de esta forma el usuario no podrá iniciar sesión en el sistema y esta cuenta únicamente servirá para el FTP.

  1. Creamos el directorio para el shell.
    $ sudo mkdir /bin/ftp
  2. Añadimos la línea /bin/ftp al fichero /etc/shells.
    $ sudo gedit /etc/shells

  3. Editamos el fichero /etc/passwd
    $ sudo gedit /etc/passwd

    Buscamos una línea parecida a la siguiente:

    copias:1001:1001:Copias:/home/ftp/copias:/bin/sh

    Y la modificamos de la siguiente forma:

    copias:1001:1001:Copias:/home/ftp/copias:/bin/ftp

Ahora le damos permiso al usuario para que pueda acceder mediante FTP, para ello añadimos el usuario al fichero vsftpd.chroot_list.

$ sudo gedit /etc/vsftpd.chroot_list

Su contenido tiene que ser algo parecido a esto:

#Usuarios permitidos
copias

Reiniciar el servicio

Ya sólo nos queda reiniciar el servicio y probarlo.

$ sudo /etc/init.d/vsftpd restart

o con esta otra

$ sudo service vsftpd restart

Espero que os haya servido.

10 pensamientos en “VSFTPD en Ubuntu 12.04”

  1. oye y como se si esta bien la instalación y la configuración?
    como lo puedo probar de manera local, para saber que esta listo.

    1. Hola Juan Antonio, perdona por la tardanza, una forma fácil de probarlo es desde el mismo equipo, puedes utilizar Filezilla por ejemplo, y te conectas por ftp a tu dirección IP.

  2. Perdon parece facil pero no entiendo como hacerlo… uso ubuntu hace una semana y solo veo que me tomo ipv4 pero esta super mega lento, se que ipv6 permite mas liberacion pero trate de seguir los pasos señalados y en algun lado diste algo por sobre entendido y me perdi podes enviarme por mail los pasos uno a uno aunque parezcan lo mas pavos que se te ocurran, por ejemplo como encontrar esa carpeta… desde ya gracias y perdon, la ignorancia tiene un precio.

    1. Hola Carlos, el tipo de IP no debe influir en el servicio, ya que éste funciona sobre la interfaz (eth0, eth1…). En cuanto a los pasos, dime exactamente donde te has perdido y lo compruebo.

      Un saludo.

  3. Hola, funciona perfecto, lo que necesito es que el usuario copie y modifique archivos en /var/www/html donde tengo publicado el sitio, es de desarrollo, cree un usuario john y todo lo que subo va a su carpeta en /home/john/. Estoy migrando de windows, estoy harto con los virus, troyanos etc…

    instale lubuntu que anda super, apache2 php, mysqlserver y phpmysql, todo bien, solo falta modificar y actualizar los datos.
    He leido por la web el crear otro usuario y agregar al grupo www-data,no tengo mucha experiencia en linux.
    espero tu ayuda gracias.

Deja un comentario

* Copy This Password *

* Type Or Paste Password Here *