Livello:
Facile.
Ambiente di riferimento: debian lenny
Server ftp usato: vsftpd
L'installazione e la configurazione di base sono quasi banali:
Si installi il server ftp
su
apt-get install vsftpdA questo punto il sistema è configurato con una directory /home/ftp/ che funge da home per l'utente anonymous.
Nessun altro utente può accedere via ftp.
Se questo è sufficiente abbiamo finito :-)
Se invece si desidera dare accesso ad altri utenti è possibile lavorare sul file di configurazione
vim /etc/vsftpd.confAlcune righe interessanti sono le seguenti:
anonymous_enable=YESQuesta se presente (o se commentata dato che il default è YES) permette l'accesso all'utente anonymous, come abbiamo appena visto. Impostare a NO per bloccare l'accesso anonimo.
local_enable=YESQuesta permette agli utenti locali della macchina di accedere via ftp, entrando nella propria home directory.
Nel file di configurazione di default è commentata. Scommentarla per consentire l'accesso non anonimo.
Attenzione: di default (almeno su debian) gli utenti non anonimi hanno possibilità dinavigare in tutto il filesystem con i permessi dell'utente locale.
Per aggiungere un utente basta crearlo nel server con:
adduser gianniAlcune righe sono interessanti per le impostazioni relative all'upload. Di default sono commentate, e il server risulta in sola lettura. Si consiglia comunque di leggere con attenzione i commenti del file di configurazione prima di utilizzarle.
Abilitandola proma opzione (write_enable=YES) si ottiene che gli utenti non anonimi adispongano dei permessi di scrittura (e modifica, e cancellazione, ...).
# Uncomment this to enable any form of FTP write command.
#write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YESOcchio che questa ultima opzione permette a chiunque di caricare file nella directory dell'accesso anonimo!
Con la seguente invece si modifica l'owner dei file caricati.
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoeverLe righe che seguono servono a gestire il chroot. Di default sono commentate e gli utenti non anonimi possono navigare in tutto il filesystem. Consiglio caldamente di scommentare chroot_local_users=YES.
L'altra impostazione serve ad indicare una lista di utenti a cui viene fatto il chroot (non possono uscire dalla loro home directory). Attenzione al funzionamento, se la precedente riga vale YES allora questa diventa la lista degli utenti che non subiscono il chroot e possono navigare in tutto il filesystem.
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_listPer comprendere meglio le opzioni consigliodi applicarle una alla volta e verificare che si ottenga il risultato desiderato.
Ovviamente ad ogni modifica del file di configurazione si riavvii il demone con il seguente comando:
/etc/init.d/vsftpd restart
Nota: l'autore e il presente Blog declinano ogni responsabilità per danni, accessi illegittimi o perdite di dati. Provare sempre i sistemi su macchine di prova prima di metterli in produzione. Ogni miglioria al presente scritto è ben accetta.