Il File Transport Protocol (FTP) è un protocollo TCP di vecchia concezione, creato per trasferire i file attraverso la rete. Dato che tutte le operazioni con il server sono in chiaro, incluso l'autenticazione dell'utente, esso viene considerato un protocollo insicuro e dovrebbe essere configurato con molta attenzione.
Red Hat Enterprise Linux fornisce tre server FTP.
gssftpd — Un demone FTP basato suxinetd kerberizzato, il quale non passa le informazioni di autenticazione attraverso la rete.
Red Hat Content Accelerator (tux) — Un web server kernel-space con capacità FTP
vsftpd — Una implementazione di sicurezza del tipo standalone del servizio FTP.
Le seguenti direttive di sicurezza, riguardano l'impostazione del servizio vsftpd.
Prima di sottoscrivere un nome utente e una password, viene presentato a tutti gli utenti un banner di benvenuto. Per default, questo banner include informazioni sulla versione, utili ai cracker che tentano di identificare punti deboli in un sistema.
Per cambiare il banner di benvenuto per vsftpd, aggiungere la seguente direttiva a /etc/vsftpd/vsftpd.conf:
ftpd_banner=<insert_greeting_here> |
Sostituire <insert_greeting_here> nella direttiva su indicata con il testo del messaggio di benvenuto.
Per banner mutli-line, è consigliabile usare un file banner. Per facilitare la gestione di banner multipli, posizionare tutti i banner in una nuova directory chiamata /etc/banners/. Il file banner per i collegamenti FTP in questo esempio sarà /etc/banners/ftp.msg. Di seguito viene riportato un esempio di come dovrebbe apparire un file:
#################################################### # Hello, all activity on ftp.example.com is logged.# #################################################### |
![]() | Nota |
---|---|
Non è necessario iniziare ogni riga del file con 220 come specificato in la Sezione 5.1.1.1. |
Per collegare questo file banner di benvenuto a vsftpd, aggiungere la seguente direttiva a /etc/vsftpd/vsftpd.conf:
banner_file=/etc/banners/ftp.msg |
È possibile anche inviare banner aggiuntivi ai collegamenti in entrata, usando i wrapper TCP come descritto in la Sezione 5.1.1.1.
La presenza della directory /var/ftp/ attiva l'account anonymous.
Il modo più semplice per creare questa directory, è quello d'installare il pacchetto vsftpd. Questo pacchetto imposta un albero della directory per utenti anonimi e configura i permessi sulle directory in modalità di sola lettura.
Per default l'utente anonimo non è in grado di scrivere a nessuna directory.
![]() | Attenzione |
---|---|
Se si abilita un accesso anonimo a un server FTP, fate attenzione a dove conservate i dati più importanti. |
Se desiderate abilitare utenti anonimi nell'effettuare l'upload, è consigliabile creare una directory con permessi di sola lettura all'interno di /var/ftp/pub/.
Per fare ciò inserire:
mkdir /var/ftp/pub/upload |
Successivamente cambiare i permessi per far sì che gli utenti anonimi non siano in grado di vedere cosa c'è all'interno della directory, in tal senso inserite:
chmod 730 /var/ftp/pub/upload |
Il formato dovrebbe somigliare a quanto segue:
drwx-wx--- 2 root ftp 4096 Feb 13 20:05 upload |
![]() | Avvertanza |
---|---|
Gli amministratori che abilitano utenti anonimi alla lettura e scrittura all'interno delle directory, rendono i loro server fonte di software pronto ad essere trafugato. |
In aggiunta, con vsftpd, aggiungete la seguente riga a /etc/vsftpd/vsftpd.conf:
anon_upload_enable=YES |
Dato che FTP passa in chiaro le informazioni inerenti i nomi utenti e le password necessarie per l'autenticazione, è consigliabile negare l'accesso al server da parte degli utenti del sistema, dai loro account utente.
Per disabilitare gli account in vsftpd, aggiungere la seguente direttiva a /etc/vsftpd/vsftpd.conf:
local_enable=NO |
Il modo più semplice per disabilitare un gruppo specifico di account, come ad esempio l'utente root e coloro che hanno privilegi sudo, all'accesso di un server FTP, è quello di utilizzare un file di elenco PAM come descritto nella Sezione 4.4.2.4. Il file di configurazione PAM per vsftpd è /etc/pam.d/vsftpd.
È anche possibile disabilitare l'account utente all'interno di ogni servizio in modo diretto.
Per disabilitare specifici account utente in vsftpd, aggiungere il nome utente su /etc/vsftpd.ftpusers.
Per controllare l'accesso al demone FTP, come indicato nella Sezione 5.1.1, potete usare i wrapper TCP.