Anche se vsftpd potrebbe non offrire un livello di personalizzazione offerto da altri server FTP disponibili, esso offre opzioni sufficienti per far fronte a molte delle esigenze di un amministratore. Per questo motivo gli errori di configurazione e quelli programmatici sono limitati.
Tutta la configurazione di vsftpd � gestita dal suo file di configurazione, /etc/vsftpd/vsftpd.conf. Ogni direttiva � situata sulla propria riga all'interno del file e segue il formato seguente:
<directive>=<value>
Per ogni direttiva, sostituire <directive> con una valida direttiva, e <value> con un valore accettato.
Importante
Non ci deve essere alcun spazio tra <directive>, il simbolo uguale, e <value> in una direttiva.
Le righe di commento devono essere precedute dal carattere # e sono ignorate dal demone.
Per un elenco completo di tutte le direttive disponibili, consultare la pagina man per vsftpd.conf.
Importante
Per una panoramica dei modi su come rendere sicuro vsftpd, consultate il capitolo intitolato Sicurezza del Server nella Red Hat Enterprise Linux Security Guide.
Il seguente � un elenco di alcune delle direttive pi� importanti all'interno di /etc/vsftpd/vsftpd.conf. Tutte le direttive non esplicitamente trovate all'interno del file di configurazione di vsftpd, sono impostate nel loro valore di default.
15.5.1. Opzioni del demone
Il seguente � un elenco delle direttive che controllano il comportamento generale del demone vsftpd.
listen — Quando abilitata, vsftpd viene eseguita in modalit� standalone. Red Hat Enterprise Linux imposta questo valore su YES. Questa direttiva non pu� essere usata insieme con la direttiva listen_ipv6.
Il valore di default � NO.
listen_ipv6 — Quando abilitata, vsftpd viene eseguita in modalit� standalone, ma � in ascolto sui socket IPv6. Questa direttiva non pu� essere usata insieme con la direttiva listen.
Il valore di default � NO.
session_support — Quando abilitata, vsftpd cerca di mantenere le sessioni di login per ogni utente attraverso i Pluggable Authentication Modules (PAM). Consultate Capitolo 16 per maggiori informazioni. Se la sessione di logging non � necessaria, disabilitando questa opzione si permette a vsftpd di essere eseguito con meno processi e privilegi.
Il valore di default � YES.
15.5.2. Opzioni di log in e controlli d'accesso
Il seguente � un elenco di direttive le quali controllano il comportamento di login e dei meccanismi di controllo dell'accesso.
anonymous_enable — Quando abilitata, gli utenti anonimi sono abilitati al log in. Il nome utente anonymous e ftp sono accettati.
Il valore di default � YES.
Consultare la Sezione 15.5.3 per un elenco di direttive che influenzano gli utenti anonimi.
banned_email_file — Se la direttiva deny_email_enable viene impostata su YES, la stessa specifica il file contenente un elenco di password email anonime, le quali non hanno un accesso al server.
Il valore di default � /etc/vsftpd.banned_emails.
banner_file — Specifica il file contenente il testo mostrato quando viene stabilito un collegamento con il server. Questa opzione annulla qualsiasi testo specificato nella direttiva ftpd_banner.
Non vi � alcun valore di default per questa direttiva.
cmds_allowed — Specifica un elenco di comandi delimitati da una virgola abilitati dal server. Tutti gli altri comandi vengono rifiutati.
Non vi � alcun valore di default per questa direttiva.
deny_email_enable — Quando abilitata, qualsiasi utente anonimo che utilizza le password delle email specificate in /etc/vsftpd.banned_emails non sar� in grado di accedere al server. Il nome del file di riferimento di questa direttiva pu� essere specificato usando la direttiva banned_email_file.
Il valore di default � NO.
ftpd_banner — Quando abilitata, la stringa specificata all'interno di questa direttiva, viene visualizzata quando viene stabilito un collegamento al server. Questa opzione pu� essere annullata dalla direttiva banner_file.
Per default vsftpd mostra i suoi banner standard.
local_enable — Quando abilitata, gli utenti locali sono abilitati ad eseguire un log in nel sistema.
Il valore di default � YES.
Consultare la Sezione 15.5.4 per un elenco di direttive che influenzano gli utenti locali.
pam_service_name — Specifica il nome del servizio PAM per vsftpd.
Il valore di default � ftp. Da notare tuttavia che con Red Hat Enterprise Linux il valore � impostato su vsftpd.
tcp_wrappers — Quando abilitata, i wrapper TCP vengono usati per garantire l'accesso al server. Inoltre, se il server FTP � configurato con indirizzi IP multipli, l'opzione VSFTPD_LOAD_CONF pu� essere usata per caricare i diversi file di configurazione basati su indirizzi IP richiesti dal client. Per maggiori informazioni sui Wrapper TCP, consultate Capitolo 17.
Il valore di default � NO. Da notare tuttavia che con Red Hat Enterprise Linux il valore � impostato su YES.
userlist_deny — Quando usato insieme con la direttiva userlist_enable e impostato su NO, tutti gli utenti locali sono impossibilitati ad eseguire un accesso, a meno che il nome utente non sia presente nel file specificato dalla direttiva userlist_file. Poich� l'accesso viene negato prima di richiedere la password al client, impostando questa direttiva su NO, impedisce agli utenti locali di richiedere una password in modo non cifrato attraverso la rete.
Il valore di default � YES.
userlist_enable — Quando abilitata, gli utenti presenti nel file specificato dalla direttiva userlist_file, non possono eseguire l'accesso. Poich� l'accesso viene negato prima di richiedere la password al client, gli utenti non hanno la necessit� di richiedere delle password non cifrate attraverso la rete.
Il valore di default � NO, tuttavia con Red Hat Enterprise Linux il valore � impostato su YES.
userlist_file — Specifica il file indicato da vsftpd, quando � abilitata la direttiva userlist_enable.
Il valore di default � /etc/vsftpd.user_list ed � creato durante l'installazione.
cmds_allowed — Specifica un elenco, separato da una virgola, di comandi FTP abilitati dal server. Qualsiasi altro comando viene rifiutato.
Non vi � alcun valore di default per questa direttiva.
15.5.3. Opzioni per l'utente anonimo
Il seguente � un elenco di direttive le quali controllano l'accesso al server degli utenti anonimi. Per usare queste opzioni, la direttiva anonymous_enable deve essere impostata su YES.
anon_mkdir_write_enable — Quando abilitata insieme con la direttiva write_enable, gli utenti anonimi sono in grado di creare nuove directory all'interno di una directory genitore, la quale possiede i permessi di scrittura.
Il valore di default � NO.
anon_root — Specifica i cambiamenti della directory vsftpd, dopo che un utente anonimo ha eseguito il log in.
Non vi � alcun valore di default per questa direttiva.
anon_upload_enable — Quando abilitata insieme con la direttiva write_enable, gli utenti anonimi sono abilitati ad eseguire un upload di file all'interno della directory genitore la quale possiede i permessi di scrittura.
Il valore di default � NO.
anon_world_readable_only — Quando abilitata, gli utenti anonimi possono solo scaricare i file letti da tutti 'world-readable'.
Il valore di default � YES.
ftp_username — Specifica l'account dell'utente locale (riportato in /etc/passwd), usato per un utente FTP anonimo. La home directory specificata in /etc/passwd per l'utente, � la directory root dell'utente FTPanonimo.
Il valore di default � ftp.
no_anon_password — Quando abilitata, non viene richiesta alcuna password all'utente anonimo.
Il valore di default � NO.
secure_email_list_enable — Quando abilitata, viene accettato solo un elenco specificato di email password per login anonimi. Ci� rappresenta un modo molto conveniente di offrire una sicurezza limitata per contenuti resi pubblici senza la necessit� di utenti virtuali.
I login anonimi vengono evitati a meno che la password risulta essere presente nell'elenco /etc/vsftpd.email_passwords. Il formato del file � di una password per riga, senza alcuno spazio.
Il valore di default � NO.
15.5.4. Opzioni dell'utente locale
Il seguente � un elenco di direttive che caratterizzano il modo di accesso al server dell'utente locale. Per usare queste opzioni, la direttiva local_enable deve essere impostata su YES.
chmod_enable — Quando abilitata, il comando FTP SITE CHMOD viene abilitato per gli utenti locali. Questo comando permette agli utenti locali di cambiare i permessi presenti sui file.
Il valore di default � YES.
chroot_list_enable — Quando abilitata, gli utenti locali presenti nel file specificato nella direttiva chroot_list_file, vengono posizionati in una cella chroot previo log in.
Se abilitata con la direttiva chroot_local_user, gli utenti locali elencati nel file specificato nella direttiva chroot_list_file, non vengono posizionati in una cella chroot dopo il log in.
Il valore di default � NO.
chroot_list_file — Specifica il file contenente un elenco di utenti locali indicati quando la direttiva chroot_list_enable � impostata su YES.
Il valore di default � /etc/vsftpd.chroot_list.
chroot_local_user — Quando abilitata, la directory root verr� cambiata, dopo aver eseguito il log in, nella home directory degli utenti locali.
Il valore di default � NO.
Avvertimento
Abilitando chroot_local_user si v� incontro a diverse problematiche riguardanti la sicurezza, in special modo per utenti che possiedono dei privilegi di upload. Per questo motivo tale configurazione non � consigliata.
guest_enable — Quando abilitata, tutti gli utenti che non sono anonimi, vengono registrati come utenti guest, i quali rappresentano gli utenti locali specificati nella direttiva guest_username.
Il valore di default � NO.
guest_username — Specifica il nome utente sul quale viene mappato l'utente guest.
Il valore di default � ftp.
local_root — Specifica il cambiamento della directory di vsftpd dopo che l'utente locale ha eseguito il log in.
Non vi � alcun valore di default per questa direttiva.
local_umask — Specifica il valore di umask per la creazione di un file. Da notare che il valore di default viene espresso con un numero ottale 'octal mode' (un sistema numerico basato su otto cifre), il quale include un prefisso "0". In caso contrario il valore viene considerato come un numero intero con base decimale.
Il valore di default � 022.
passwd_chroot_enable — Quando abilitata insieme con la direttiva chroot_local_user, viene modificata la directory root vsftpd degli utenti locali in base all'evento della /./ nel campo della home directory all'interno di /etc/passwd.
Il valore di default � NO.
user_config_dir — Specifica il percorso per una directory contenente i file di configurazione che presentano il nome degli utenti locali del sistema, il quale contiene a sua volta le impostazioni specifiche per quell'utente. Qualsiasi direttiva nel file di configurazione dell'utente, annulla quelle trovate in /etc/vsftpd/vsftpd.conf.
Non vi � alcun valore di default per questa direttiva.
15.5.5. Opzioni della directory
Il seguente � un elenco di direttive che influenzano le directory.
dirlist_enable — Quando abilitata, gli utenti possono visualizzare gli elenchi della directory.
Il valore di default � YES.
dirmessage_enable — Quando abilitata, viene visualizzato un messaggio ogni qualvolta un utente inserisce una directory con un file di messaggio. Questo messaggio si trova all'interno della directory che � stata inserita. Il nome di questo file � specificato nella direttiva message_file ed � .message per default.
Il valore di default � NO. Da notare tuttavia che con Red Hat Enterprise Linux il valore � impostato su YES.
force_dot_files — Quando abilitata, i file che iniziano con un punto (.), vengono elencati negli elenchi delle directory, con l'accezione dei file . and ..
Il valore di default � NO.
hide_ids — Quando abilitata, tutti gli elenchi delle directory mostrano ftp come l'utente e il gruppo per ogni file.
Il valore di default � NO.
message_file — Specifica il nome del file di messaggio quando si usa la direttiva dirmessage_enable.
Il valore di default � .message.
text_userdb_names — Quando abilitata, vengono usati i nomi dell'utente e dei gruppi in formato di test, al posto delle voci UID e GID. Abilitando questa opzione potrebbe rallentare le prestazioni del server.
Il valore di default � NO.
use_localtime — Quando abilitata, gli elenchi della directory rivelano l'orario locale per il computer invece dell'orario GMT.
Il valore di default � NO.
15.5.6. Opzioni di trasferimento del file
Il seguente � un elenco di direttive che influenzano le directory.
download_enable — Quando abilitata, � possibile scaricare i file.
Il valore di default � YES.
chown_uploads — Quando abilitata, tutti i file caricati dagli utenti anonimi, sono posseduti dall'utente specificato nella direttiva chown_username.
Il valore di default � NO.
chown_username — Specifica il proprietario dei file caricati anonimamente, se si abilita la direttiva chown_uploads.
Il valore di default � root.
write_enable — Quando abilitata, sono abilitati i comandi FTP che possono modificare il file system, come ad esempio DELE, RNFR, e STOR.
Il valore di default � YES.
15.5.7. Opzioni di Logging
Il seguente � un elenco di direttive che influenzano il comportamento di vsftpd durante un logging.
dual_log_enable — Quando abilitata insieme con xferlog_enable, vsftpd registra contemporaneamente due file: un log wu-ftpd-compatibile per il file specificato nella direttiva xferlog_file (/var/log/xferlog per default) e un file log standard vsftpd specificato nella direttiva vsftpd_log_file (/var/log/vsftpd.log per default).
Il valore di default � NO.
log_ftp_protocol — Quando abilitato insieme con xferlog_enable e con xferlog_std_format impostato su NO, vengono registrati tutti i comandi FTP e le risposte. Questa direttiva � utile per il debugging.
Il valore di default � NO.
syslog_enable — Quando abilitata insieme con xferlog_enable, tutti i logging registrati normalmente sul file log vsftpd standard specificato nella direttiva vsftpd_log_file (/var/log/vsftpd.log per default), vengono inviati al sistema che li registra invece della facility FTPD.
Il valore di default � NO.
vsftpd_log_file — Specifica il file log vsftpd. Per usare questo file, xferlog_enable deve essere abilitato e xferlog_std_format deve essere impostato su NO o, se si imposta xferlog_std_format su YES, dual_log_enable deve essere abilitato. � importante notare che se syslog_enable � impostato su YES, viene usato il sistema di log, invece del file specificato in questa direttiva.
Il valore di default � /var/log/vsftpd.log.
xferlog_enable — Quando abilitata, vsftpd registra i collegamenti (solo in formato vsftpd) e le informazioni di trasferimento del file sul file log specificato nella direttiva vsftpd_log_file (per default /var/log/vsftpd.log). Se xferlog_std_format � impostato su YES, vengono registrate solo le informazioni sul trasferimento del file e non i collegamenti, e viene usato il file log specificato in xferlog_file (/var/log/xferlog per default). � importante notare che entrambi i file log ed i formati log vengono usati se dual_log_enable � impostato su YES.
Il valore di default � NO. Da notare tuttavia che con Red Hat Enterprise Linux il valore � impostato su YES.
xferlog_file — Specifica il file log wu-ftpd-compatibile. Per usare questo file, bisogna abilitare xferlog_enable, e xferlog_std_format deve essere impostato su YES. Esso viene anche usato se dual_log_enable � impostato su YES.
Il valore di default � /var/log/xferlog.
xferlog_std_format — Quando abilitata insieme con xferlog_enable, viene registrato, sul file specificato nella direttiva xferlog_file, solo un log di tresferimento del file wu-ftpd-compatibile (/var/log/xferlog per default). � importante notare che questo file registra solo i trasferimenti del file e non registra i collegamenti al server.
Il valore di default � NO. Da notare tuttavia che con Red Hat Enterprise Linux il valore � impostato su YES.
Importante
Per mantenere una compatibilit� con i file log scritti dal server FTP wu-ftpd pi� vecchi, la direttiva xferlog_std_format � impostata su YES con Red Hat Enterprise Linux. Tuttavia, questa impostazione significa che i collegamenti al server non sono registrati.
Per eseguire un log dei collegamenti in formato vsftpd e gestire un log di trasferimento del file wu-ftpd-compatibile, impostare dual_log_enable su YES.
Se non � importante mantenere un log di trasferimento del file wu-ftpd-compatibile, impostare xferlog_std_format su NO, e commentare la riga con un carattere #, oppure cancellare l'intera riga.
15.5.8. Opzioni della rete
Il seguente � un elenco di direttive che influenzano il modo con il quale vsftpd interagisce con la rete.
accept_timeout — Specifica la quantit� di tempo per un client, nell'uso della modalit� passiva, per stabilire un collegamento.
Il valore di default � 60.
anon_max_rate — Specifica la velocit� massima di trasferimento dei dati per gli utenti anonimi in byte al secondo.
Il valore di default � 0, il quale non limita la velocit� di trasferimento.
connect_from_port_20 Quando abilitata, vsftpd viene eseguita con privilegi sufficienti per aprire la porta 20 sul server, durante i trasferimenti dei dati in modalit� attiva. Disabilitare questa opzione permette a vsftpd di essere eseguito con meno privilegi, ma potrebbe essere non compatibile con alcuni client FTP.
Il valore di default � NO. Da notare tuttavia che con Red Hat Enterprise Linux il valore � impostato su YES.
connect_timeout — Specifica il tempo massimo, in secondi, al quale un client che usa una modalit� attiva, deve rispondere per un collegamento dei dati.
Il valore di default � 60.
data_connection_timeout — Specifica il tempo massimo, in secondi, all'interno del quale il trasferimento dei dati pu� arrestarsi. Una volta azionato, il collegamento al client remoto viene chiuso.
Il valore di default � 300.
ftp_data_port — Specifica la porta usata per i collegamenti attivi dei dati quando connect_from_port_20 � impostato su YES.
Il valore di default � 20.
idle_session_timeout — Specifica il tempo massimo che intercorre tra due comandi da un client remoto. Una volta azionato, il collegamento al client remoto viene chiuso.
Il valore di default � 300.
listen_address — Specifica l'indirizzo IP sul quale vsftpd � in ascolto per i collegamenti di rete.
Non vi � alcun valore di default per questa direttiva.
Suggerimento
Se si eseguono copie multiple di vsftpd e si servono indirizzi IP diversi, il file di configurazione per ogni copia del demone vsftpd, deve avere un valore diverso per questa direttiva. Consultare la Sezione 15.4.1 per maggiori informazioni sui server FTP 'multihomed'.
listen_address6 — Specifica l'indirizzo IPv6 sul quale vsftpd � in ascolto per i collegamenti di rete, quando listen_ipv6 � impostato su YES.
Non vi � alcun valore di default per questa direttiva.
Suggerimento
Se si eseguono copie multiple di vsftpd e si servono indirizzi IP diversi, il file di configurazione per ogni copia del demone vsftpd, deve avere un valore diverso per questa direttiva. Consultare la Sezione 15.4.1 per maggiori informazioni sui server FTP 'multihomed'.
listen_port — Specifica la porta sulla quale vsftpd � in ascolto per i collegamenti di rete.
Il valore di default � 21.
local_max_rate — Specifica la velocit� massima di trasferimento dei dati, in byte al secondo, per utenti locali registrati nel server.
Il valore di default � 0, il quale non limita la velocit� di trasferimento.
max_clients — Specifica il numero massimo di client simultanei che si possono collegare al server, quando lo stesso � in esecuzione in modalit� 'standalone'. Qualsiasi altro collegamento client aggiuntivo causer� la generazione di un messaggio di errore.
Il valore di default � 0, il quale non limita i collegamenti.
max_per_ip — Specifica il numero massimo di client che si possono collegare dallo stesso indirizzo IP della sorgente.
Il valore di default � 0, il quale non limita i collegamenti.
pasv_address — Specifica l'indirizzo IP per l'indirizzo IP 'public facing' del server, per i server situati dietro i firewall Network Address Translation (NAT). Ci� abilita vsftpd a fornire l'indirizzo di ritorno corretto per i collegamenti in modalit� passiva.
Non vi � alcun valore di default per questa direttiva.
pasv_enable — Quando abilitata, sono permessi i collegamenti in modalit� passiva.
Il valore di default � YES.
pasv_max_port — Specifica la porta pi� alta inviata ai client FTP per i collegamenti in modalit� passiva. Questa impostazione viene usata per limitare la gamma della porta, in modo da semplificare la creazione delle regole del firewall.
Il valore di default � 0, il quale non limita la gamma della porta passiva pi� alta. Il valore non deve eccedere 65535.
pasv_min_port — Specifica la porta pi� bassa inviata ai client FTP per i collegamenti in modalit� passiva. Questa impostazione viene usata per limitare la gamma della porta, in modo da semplificare la creazione delle regole del firewall.
Il valore di default � 0, il quale non limita la gamma della porta passiva pi� bassa. Il valore non deve essere minore di 1024.
pasv_promiscuous — Quando abilitata, i collegamenti dei dati non vengono controllati in modo da assicurare che gli stessi siano originati dallo stesso indirizzo IP. Questa impostazione � utile solo per alcuni tipi di tunneling.
Attenzione
Non abilitate questa opzione se non � necessario, in quanto essa disabilita un contenuto di sicurezza molto importante, il quale verifica che i collegamenti in modalit� passiva siano originati dallo stesso indirizzo IP del collegamento di controllo che inizia il trasferimento dei dati.
Il valore di default � NO.
port_enable — Quando abilitata, sono permessi i collegamenti in modalit� attiva.