
Il motivo per il quale vengono impostati utenti virtuali in un server FTP, è generalmente per consentire l’accesso ftp al web server e di conseguenza ai diversi siti web che mantiene online. Ogni utente può avere uno o più login di accesso all’ftp, e nome utente e password possono essere condivisi con il web server.
Installazione
Come si può ben capire dal titolo, prenderemo in esame vsftpd come server FTP e apache come web server. Entrambi li ho scelti per il loro rinomato livello di sicurezza, leggerezza e stabilità e per quanto concerne la loro installazione vi rimando alle rispettive guide: vstfpd e apache (appena ho due minuti per scriverla). Adesso, andremo ad installare il modulo pam_pwdfile che permette una semplice e rapida condivisione delle credenziali di autenticazione fra l’ftp ed il web server.
# apt-get install libpam-pwdfile
Configurazione
Lo scopo principale di impostare utenti virtuali, è il fatto di fornire accesso ftp ai vari siti web hostati da apache che di standard si trovano in /var/www/, prevenendo accessi anonimi o accessi ad altri siti da parte di utenti non autorizzati. A questo punto, tutto quello che dobbiamo fare è creare un file dove andremo a salvare tutte le password degli utenti. Utilizzeremo lo strumento htpasswd fornito da apache. C’è da dire però, che quest’ultimo supporta unicamente password fino ad 8 caratteri. Di conseguenza, se volete usare password più lunghe, potete usare tranquillamente un altro modulo PAM o fare ricorso a md5-crypt.
# htpasswd -c /etc/vsftpd/passwd user
Per gli utenti successivi è sufficiente eseguire lo stesso comando senza l’opzione “-c”.
# htpasswd /etc/vsftpd/passwd user2
Affinché gli utenti riescano a loggarsi ed uppare/modificare/cancellare file correttamente è necessario creare la loro home directory e dargli i permessi di scrittura.
# mkdir /var/www/user
# chown user1 /var/www/user
# chmod +w /var/www/user
Ovviamente l’operazione va ripetuta per tutti gli utenti creati:
# mkdir /var/www/user2
# chown user1 /var/www/user2
# chmod +w /var/www/user2
Adesso, se non sono già presenti, è necessario aggiungere delle opzioni al file di configurazione di vsftpd che si trova in /etc/vsftpd.conf:
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
Ora è il momento di passare a configurare il PAM per usare il file delle password che abbiamo creato.
# nano /etc/pam.d/vsftpd
Aggiungiamo le seguenti righe.
auth required pam_pwdfile.so pwdfile /var/www/conf/users
account required pam_permit.so
Riavviamo il serizio di vsftpd.
# /etc/init.d/vsftpd restart
Testiamone il funzionamento
La configurazione è finita, possiamo passare a testare il funzionamento effettivo degli utenti virtuali.
$ ftp 192.168.1.200
Connected to 192.168.1.200.
220-Welcome to Pandora's Chest.
220-All activities are logged.
220-Good work.
Name (192.168.1.200:donlimo): user
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 3 ftp ftp 4096 Jul 11 19:46 images
-rw-r--r-- 1 ftp ftp 5952 Jul 07 20:26 index.php
226 Directory send OK.







Sottoscrivi il nostro Feed



Lascia un commento Feed dei commenti