Instalación y configuración de vsftpd

Antonio Galisteo

Instalar este servidor de FTP es muy sencillo. Lo haremos mediante la siguiente instrucción:

sudo apt-get install vsftpd

Ya lo tenemos instalado, pero, está con la configuración por defecto que normalmente es aconsejable modificar un poco, por ejemplo, eliminando el usuario anónimo.

Veamos ahora como configurar nuestro servidor vsftpd.

Lo primero que haremos será editar el archivo de configuración del servidor FTP

sudo gedit /etc/vsftpd.conf

Realizaremos los siguiente cambios:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=037
ftpd_banner=Bienvenidos a mi servidor FTP
chroot_local_user=YES

Si alguna, o todas, estas líneas están comentadas (con el símbolo # delante) solo tendremos que descomentarlas y asegurarnos que tienen el valor que se indica arriba.

Para que se aplique esta configuración tenemos que reiniciar el servidor FTP con:

sudo /etc/init.d/vsftpd restart

Hasta este punto, hemos deshabilitado el usuario anónimo y se podrá logear cualquier usuario de nuestro sistema.

Lo que haremos ahora será acotar los usuarios que se puedan conectar al mismo. Para esto, primero crearemos un grupo al que pertenecerán los usuarios que se puedan conectar mediante FTP:

sudo groupadd ftpusers

El directorio por defecto de vsftpd está en /home/ftp, dentro de ésta, iremos creando un directorio para cada usuario de nuestro FTP

sudo mkdir /home/ftp/dir_userftp

Ahora, crearemos una SHELL ficticia de modo que los usuarios FTP nunca puedan abrir una sesión en el sistema operativo.

sudo mkdir /bin/ftp

Y lo registramos como shell

sudo nano /etc/shells

Agregamos al final la línea:

/bin/ftp

Hasta este punto tenemos todo lo que necesitamos para crear usuarios solo para FTP. Vamos entonces a crear un usuario para vsftpd

Usaremos lo siguiente para crear un usuario de FTP

sudo useradd -g ftpusers -d /home/ftp/dir_userftp -s /bin/ftp pepito

Ya está creado el usuario, en el grupo ftpuser, cuyo directorio es el que creamos anteriormente /home/ftp/dir_userftp y cuya shell es /bin/ftp, que no existe, la creamos anteriormente para no permitir a un usuario iniciar sesión en el sistema operativo, y cuyo nombre de usuario es pepito.

Ya solo nos falta asignarle una contraseña a pepito

sudo passwd pepito

Nos pedirá una contraseña y que la volvamos a escribir

Ya tenemos el usuario, pero nos falta algo importante, dar permisos de escritura a pepito para que pueda modificar su directorio, esto lo podemos hacer, o bien dandole permisos con chmod o bien poniendo a pepito como propietario de su directorio con chown, que en principio es lo más lógico:

sudo chown pepito.ftpusers /home/ftp/dir_userftp/ R

Lo que haremos ahora es enjaular a los usuarios ftp dentro de su directorio, para que no puedan salir de él y acceder a otros directorios que no son de su propiedad. Para esto editamos el archivo

sudo nano /etc/vsftpd.conf

Buscamos los parámetros:

#chroot_local_user=YES
#chroot_list_enable=YES

y los descomentamos

chroot_local_user=YES
chroot_list_enable=YES

Y además delimitaremos los usuarios que se pueden conectar indicandolos en un archivo. Para esto buscamos o añadimos si no está el parametro

chroot_list_file=/etc/vsftpd.chroot_list

Este archivo, vsftpd.chroot_list, tenemos que crearlo nosotros

sudo touch /etc/vsftpd.chroot_list
sudo echo "pepito" >> /etc/vsftpd.chroot_list

Todo usuario que no esté registrado en el archivo /etc/vsftpd.chroot_list no podrá ingresar por FTP

Por último lo que haremos es limitar el ancho de banda para que un usuario no consuma todos los recursos disponibles. Para esto agregamos al final del archivo de configuración que seguimos editando:

#Ancho de banda para usuario anónimo 500kb.
anon_max_rate=512000
#Ancho de banda por usuario local 500kb.
local_max_rate=512000
#Numero máximo clientes conectados
max_clients=3
#Numero máximo de conexiones desde una misma ip
max_per_ip=2

Si nuestro servidor no es muy potente, con estos parametros nos aseguramos que no se sature por falta de recursos. Estos parámetros van en función del hardware que tengamos y de nuestra conexión a internet.

Para aplicar esta configuración volvemos a reiniciar vsftpd

sudo /etc/init.d/vsftpd restart

Con esto ya tenemos nuestros servidor FTP configurado y operativo.

Para conectarnos al mismo podemos usar cualquier cliente FTP, como por ejemplo, Filesilla.

Esperamos que os haya sido de utilidad

Publicado el 12-03-2015

Compartelo!

2 comentarios

Deja un comentario

Comentanos

*
Ir arriba de la pagina