> MENU
k9copy.png

Ripping di DVD con K9Copy

Creare le proprie estensioni per Firefox (1/2)

13 luglio 2007 Visualizzazioni: 1128 Focus

Creare utenti FTP senza shell e con chroot con VSFTPD (1/2)

Un amministratore di rete potrebbe avere delle particolari necessità per la configurazione di servizi, che non sempre possono essere soddisfatte velocemente. Un esempio è proprio il classico caso di un server Web contenente vari domini appartenenti a persone diverse in cui si debba creare diversi utenti di una macchina Linux con la possibilità per loro di accedere al file system solo tramite protocollo FTP e di non vedere la propria home directory, in modo da considerarla come se fosse la root del sistema.

illustration341.jpg

Come tante cose troppo semplici, anche questa potrebbe essere difficile da mettere in atto se non si sa come fare.

La prima parte della richiesta può essere fatta in maniera abbastanza semplice su una qualsiasi macchina Linux, mentre per la seconda prenderemo in esame il demone FTP VSFTPD (Very Secure File Transfer Protocol Daemon). Esso è un server FTP open source per sistemi UNIX — Linux compreso — rilasciato sotto licenza GPL e supporta numerose feature, tra cui FXP, la configurazione di IP e utenti virtuali, l’integrazione con SSL ed LDAP, il supporto a IPv6 e la configurazione di parametri interessanti, come vari limiti sugli IP identici simultaneamente connessi o l’ampiezza di banda per le connessioni.

Inoltre può essere utile ricordare che esiste di default un modulo in Webmin, che permette di gestirlo. Vantando l’essere probabilmente più sicuro e veloce di tutti gli altri suoi concorrenti e argomentando con segnalazioni di buchi nella sicurezza di ProFTPd o wu-ftpd, VSFTPD è ormai presente di default in moltissime distribuzioni Linux e viene usato in molti siti. Dopo questo breve preambolo passiamo alla parte pratica, cercando di effettuare con semplicità quanto chiesto.

In un sistema UNIX-based, quando si crea un utente, è necessario specificare oltre allo username alcuni parametri come la password, il gruppo di appartenenza, la home directory e il tipo di shell abilitata. Solitamente la home di un utente è /home/nomeutente, a meno che non si debba adibire il server come server Web in cui far risiedere più domini, per utenti diversi. In quel caso sarebbe, invece, buona regola creare in una cartella principale una sottocartella per ogni dominio a cui far puntare un host virtuale del demone HTTP. La stessa sottocartella diventerebbe la home directory dell’utente che si deve creare.

A parte questo, però, la cosa più importante è il tipo di shell da assegnare ad un utente, che definisce, infatti, tutte le informazioni circa i permessi relativi alla connessione di ogni singolo utente che la utilizza. Alcune distribuzioni di Linux, come Red Hat, hanno a disposizione una shell /dev/null utile proprio per i nostri scopi: si tratta di una shell inesistente, che inibisce ogni possibilità di login a qualsiasi shell da parte degli utenti della macchina a cui è stata assegnata. Ad ogni modo essa non inibirà l’accesso tramite protocollo FTP che non è, di fatto, una shell. Se la distribuzione sulla quale state lavorando non contiene la shell /dev/null è possibile crearla in maniera abbastanza semplice: basta modificare il file /etc/shells accodando, su un nuovo rigo, il nome della falsa shell da usare (/dev/null).

Dopo questo articolo, in cui abbiamo presentato il problema da risolvere, concluderemo quanto iniziato con le ultime informazioni necessarie e tutti i restanti passi da seguire.

di Pierpaolo Cira - Programmazione.it

twittergoogle_pluslinkedinmail