1. Crear la base de dades d’usuaris virtuals
Els usuaris virtuals es gestionaran amb un fitxer que es convertirà en una base de dades per PAM.
Crearem el fitxer per als usuaris virtuals:
sudo nano /etc/vsftpd/virtual_users.txt
Escriu els usuaris i contrasenyes en aquest format:
usuari1 (Manolo)
contrasenya1 (P@ssw0rd)
usuari2 (Juan)
contrasenya2 (P@ssw0rd)
Convertirem el fitxer en una base de dades db4:
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
Després li posarem els permisos equivalents:
sudo chmod 600 /etc/vsftpd/virtual_users.db
2. Configuració PAM per als usuaris virtuals
Crear o editar el fitxer PAM per vsftpd:
sudo nano /etc/pam.d/vsftpd
Afegirem aquestes comandes:
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
3. Crear un usuari del sistema per als usuaris virtuals
Els usuaris virtuals no tenen comptes de sistema, així que han d’estar associats a un usuari real:
sudo useradd -m -d /home/ftpusers -s /usr/sbin/nologin ftpuser
Li donem els permisos adequats:
sudo chmod 555 /home/ftpusers
4. Configurar directoris personals per als usuaris virtuals
Crear carpetes per a cada usuari virtual:
sudo mkdir -p /home/ftpusers/usuari1
sudo mkdir -p /home/ftpusers/usuari2
Canviar el propietari de les carpetes:
sudo chown -R ftpuser:ftpuser /home/ftpusers/usuari1
sudo chown -R ftpuser:ftpuser /home/ftpusers/usuari2
Donar permisos d’escriptura només dins d’una subcarpeta:
sudo chmod 750 /home/ftpusers/usuari1
sudo chmod 750 /home/ftpusers/usuari2
5. Configurar vsftpd per a usuaris virtuals
Obre el fitxer de configuració de vsftpd:
sudo nano /etc/vsftpd.conf
Afegeix o modifica aquestes línies:
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/ftpusers/$USER
chroot_local_user=YES
allow_writeable_chroot=YES
Reiniciem vsftpd per aplicar els canvis:
sudo systemctl restart vsftpd
Prova en vídeo del funcionament dels usuaris: