Instalación y configuración de vsftpd
Anuncio:
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
4 comentarios
Como puedo hacer que por ejemplo tengo 2 usuarios : Publicador – Visitante. Quiero que el publicador ponga un archivo en su carpeta y que el visitante pueda verlo ademas de versus propias carpetas
Hola Gregory, para hacer esto, deberías dar acceso a ambos usuarios al mismo directorio. Al publicador darle el permiso de lectura/escritura y al visitante solo lectura.
para debian (Kali) usese esta línea:
sudo chown pepito.ftpusers /home/ftp/dir_userftp/ -R
de lo contrario devuelve el error:
chown: no se puede acceder a ‘R’: No existe el fichero o el directorio
Gracias Alan!