Appunti ad una mente congestionata

29 ottobre 2009

Configurare vsftpd per accettare login da utenti senza home

In più occasioni mi è capitato di dover configurare un server FTP per accettare connsseioni da utenti senza che questi pero avessero la possibilità di collegarsi via telnet/SSH, ad esempio.

La soluzione che ho adottato non è proprio quella di creare account virtuali, ma più semplicemente quella di impedire l'accesso via terminale a determinate utenze reali del sistema, pur consentendogli di usare l'FTP.

Alla fine l'utente, quindi, avrà la possibilità di fare FTP e verrà posizionato direttamente nella directory che noi vogliamo senza la possibilità di risalire l'albero (chroot) ne tanto meno di collegarsi in altri modi.



Per ottenere questo risultato, ho utilizzato vsftpd e configurato il sistema come segue.

Premesse: l'utente utilizzato per questa spiegazione si chiama 'pippo' e vogliamo far si che quando si logghi venga a trovarsi direttamente nella directory '/Data/pippo'

Per prima cosa installiamo, se non l'abbiamo già fatto, il server FTP. In Ubuntu con il seguente comando
sudo apt-get install vsftpd

poi creiamo l'utente 'pippo' con
sudo adduser --home /Data/pippo --shell /bin/false --no-create-home pippo2

inserite quindi una password come vi viene richiesto, completate le altre notizie a confermate.

Ora bisogna controllare se la shell /bin/false è valida nel vostro sistema, ovvero se è inserita nel file /etc/shells. Questa shell fittizia, serve per fare in modo che l'utente materialmente non si possa collegare via terminale, ma allo stesso tempo deve essere una shell valida elencata nell'apposito file, altrimenti non riusciremo mai ad entrare neanche via FTP. Quindi, editiamo il file ed assicuriamoci che la shell sia elencata, altrimenti aggiungiamola in coda:
sudo nano /etc/shells

Il gioco è fatto!
Share:

0 commenti:

Posta un commento