Instalar un servidor FTP en Ubuntu Server usando VSFTPD
1. Empezamos con este comando para realizar su instalación: sudo apt-get install vsftpd
2. Una vez instalado editamos su fichero de configuración para afinar más su seguridad:
sudo vi /etc/vsftpd.conf
3. Nos aseguramos que tenemos habilitados estos parámetros:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
[email protected] a mi Servidor FTP
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=YES
chroot_list_enable=YES
Habilitamos la siguiente línea que manda a llamar a un archivo, este archivo lo tienes que crear y dentro de este agregar los cuentas de los usuario enjaulados.
chroot_list_file=/etc/vsftpd.chroot_list
Ahora reiniciamos el servidor para que se tengan en cuenta estos cambios:
sudo /etc/init.d/vsftpd restart
Ahora tenemos que crear un grupo el cual controle al servicio de vsftpd de la siguiente manera:
sudo groupadd ftp
Tenemos que crear el depósito o el home donde el usuario va alojar su información, cuando el servidor vsftpd termina de instalarse crea una carpeta en home quedando de la siguiente manera /srv/ftp, pero tu puedes tener tus usuarios en otras rutas nosotros la creamos en la Raíz de esta forma /ftp. Dentro de esta carpeta creamos las carpetas Comunes y Publico, para el usuario local y para el anonimo.
sudo mkdir /home/ftp/directorio
Lo que haremos es crear un shell virtual o fantasma, para que los usuarios no puedan conectarse a una sesión del sistema operativo: sudo mkdir /bin/ftp/comunes publico
Ya que lo creamos,ahora tenemos que editar el siguiente archivo: sudo nano /etc/shells
Agregar al final del archivo /etc/ftp.
/bin/bash
/bin/rbash
/bin/ftp
Para poder crear usuarios para nuestro servicio ftp se ocupa el siguiente comando
sudo useradd -g ftp -d /home/ftp/directorio -s /bin/ftp/comunes "User"
sudo useradd -g ftp -d /home/ftp/directorio -s /bin/ftp/publico
sudo passwd usuario
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Ahora hay que darle permiso al usuario pueda ser el dueño de su depósito
cd /home
sudo chown -R usuario:"User" ftp
cd /etc
sudo touch vsftpd.chroot_list
echo "User">> vsftpd.chroot_list
Ahora reiniciamos el servidor para que se tengan en cuenta estos cambios:
sudo /etc/init.d/vsftpd restart
2. Una vez instalado editamos su fichero de configuración para afinar más su seguridad:
sudo vi /etc/vsftpd.conf
3. Nos aseguramos que tenemos habilitados estos parámetros:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
[email protected] a mi Servidor FTP
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
Enjaulamiento de los usuarios dentro de su directorio personal:
chroot_local_user=YES
chroot_list_enable=YES
Habilitamos la siguiente línea que manda a llamar a un archivo, este archivo lo tienes que crear y dentro de este agregar los cuentas de los usuario enjaulados.
chroot_list_file=/etc/vsftpd.chroot_list
Ahora reiniciamos el servidor para que se tengan en cuenta estos cambios:
sudo /etc/init.d/vsftpd restart
Creación del grupo
Ahora tenemos que crear un grupo el cual controle al servicio de vsftpd de la siguiente manera:
sudo groupadd ftp
Creación del home
Tenemos que crear el depósito o el home donde el usuario va alojar su información, cuando el servidor vsftpd termina de instalarse crea una carpeta en home quedando de la siguiente manera /srv/ftp, pero tu puedes tener tus usuarios en otras rutas nosotros la creamos en la Raíz de esta forma /ftp. Dentro de esta carpeta creamos las carpetas Comunes y Publico, para el usuario local y para el anonimo.
sudo mkdir /home/ftp/directorio
Creación de shell FTP
Lo que haremos es crear un shell virtual o fantasma, para que los usuarios no puedan conectarse a una sesión del sistema operativo: sudo mkdir /bin/ftp/comunes publico
Ya que lo creamos,ahora tenemos que editar el siguiente archivo: sudo nano /etc/shells
Agregar al final del archivo /etc/ftp.
/bin/bash
/bin/rbash
/bin/ftp
Creando usuarios FTP
Para poder crear usuarios para nuestro servicio ftp se ocupa el siguiente comando
sudo useradd -g ftp -d /home/ftp/directorio -s /bin/ftp/comunes "User"
sudo useradd -g ftp -d /home/ftp/directorio -s /bin/ftp/publico
Tenemos que agregarle una contraseña a nuestro usuario creado
sudo passwd usuario
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Ahora hay que darle permiso al usuario pueda ser el dueño de su depósito
cd /home
sudo chown -R usuario:"User" ftp
Añadimos el usuario creado al fichero de usuarios FTP enjaulados
cd /etc
sudo touch vsftpd.chroot_list
echo "User">> vsftpd.chroot_list
Ahora reiniciamos el servidor para que se tengan en cuenta estos cambios:
sudo /etc/init.d/vsftpd restart