original in de Mario M. Knopf
en to it Davide Lo Vetere
Mario si occupa attivamente di Linux, reti di calcolatori
e di tematiche legate alla sicurezza informatica. Nel tempo libero cura
due pagine web:
neo5k.org e linuxwallpapers.de.
FTP utilizza TCP (Transmission Control Protocol) per il trasporto e questo assicura che i dati arrivino al destinatario correttamente e in modo affidabile. Non c'� dunque bisogno che sia FTP a gestire l'eventuale perdita di pacchetti o a verificare la loro integrit�. In altre parole TCP assicura che ogni pacchetto giunga a destinazione senza ripetizioni, integro e nell'ordine corretto.
Nella trasmissione dati si distinguono tre tipi di trasferimento a seconda che la terminazione del flusso sia marcata con un end-of-file (EOF) oppure come end-of-record (EOR).
A questo si aggiungono due modalit� di trasferimento:
La modalit� ASCII � utilizzata nel trasferimento di files di testo, quella binary (binaria) � usata per trasferire programmi e altri tipi di files. L'utente non ha bisogno di selezionare la modalit� di trasferimento dal momento che oramai tutti i client FTP riconoscono il tipo di file e commutano la modalit� di conseguenza.
Essendo le credenziali dell'utente, username e password, non cifrate, � estremamente importante considerare questo aspetto come una falla nella sicurezza di FTP. Questa � la ragione dalla quale hanno avuto inizio gli studi sulla sicurezza di FTP. Nell'ottobre 1997 � stata rilasciata la documentazione di riferimento RFC 2228[2] che ha definito le modifiche di sicurezza per FTP
Il nome vsftpd sta per "very secure FTP daemon" e la sicurezza � una delle principali caratteristiche che il suo creatore, Chris Evans, ha voluto curare fin dall'inizio dello sviluppo dell'applicazione.
Un esempio eloquente � che vsftpd � eseguito in modalit� chroot, cio� al programma (in questo caso vsftpd) � assegnata una versione della directory di root "ridotta" e diversa da quella originaria (l). In questo modo il programma non pu� in alcun modo accedere a risorse al di fuori di questa particolare directory a lui assegnata: esso � per cos� dire "confinato" (jailed). Nel caso in cui il server FTP dovesse essere compromesso l'attaccante sarebbe isolato dal resto del sistema limitando cos� i danni alla sola applicazione attaccata. Ulteriori informazioni sulla tecnica di chrooting si possono trovare in [3]. L'articolo [4] � raccomandato a coloro interessati alle specifiche soluzioni di sicurezza adottate in vsftpd
Questa variet� di caratteristiche peculiari - tra le quali spiccano quelle rivolte alla sicurezza - fanno di vsftpd un server considerevolmente pi� evoluto degli omologhi server FTP. WU-FTPD[5] pu� essere qui citato come esempio negativo a causa delle numerose falle di sicurezza rilevate nei passati due anni.
Dopo aver scompattato il tarball, vai alla directory creata ed esegui il make. Ecco i comandi:
neo5k@phobos> tar xzvf
vsftpd-x.x.x.tar.gz
neo5k@phobos> cd vsftpd-x.x.x
neo5k@phobos> make
neo5k@phobos> mkdir /var/ftp
neo5k@phobos> useradd -d /var/ftp ftp
neo5k@phobos> chown root.root /var/ftp
neo5k@phobos> chmod og-w /var/ftp
neo5k@phobos> make install
Il manuale e il programma dovrebbero ora essere presenti nelle posizioni corrette. Se cos� non dovesse essere si pu� eseguire una copia manuale.neo5k@phobos> cp vsftpd /usr/sbin/vsftpd
neo5k@phobos> cp vsftpd.conf.5 /usr/share/man/man5
neo5k@phobos> cp vsftpd.8 /usr/share/man/man8
neo5k@phobos> cp vsftpd.conf /etc
# Comment line
# Accesso FTP anonimo?
YES/NO
anonymous_enable=NO
# Upload anonimo? YES/NO
anon_upload_enable=NO
# Gli utenti anonimi possono creare directories?
YES/NO
anon_mkdir_write_enable=NO
# Permesso per gli utenti anonimi di effettuare operazioni di renaming or deleting? YES/NO
anon_other_write_enable=NO
# Log on per gli utenti locali? YES/NO
local_enable=YES
# Confinamento degli utenti locali alla loro home?
YES/NO
chroot_local_user=YES
# Massimo transfer rate (in bytes al secondo) per gli utenti locali. Default = 0 (unlimited)
local_max_rate=7200
# Permesso di scrittura? YES/NO
write_enable=YES
# Abilitazione di messaggi di notifica al cambio directory? YES/NO
dirmessage_enable=YES
# Welcome banner (banner di benvenuto) da presentare al logon del sistema.
ftpd_banner="Welcome to neo5k's FTP service."
# Abilitare il logging (tracciamento delle operazioni)? YES/NO
xferlog_enable=YES
# Logging di tutte le attivit� FTP? YES/NO
# Attenzione! Questo pu� generare grandi quantit� di dati.
log_ftp_protocol=NO
# Connessioni solo dati sulla porta 20 (ftp data). YES/NO
connect_from_port_20=YES
# Timeout per inattivit� di una sessione
idle_session_timeout=600
# Timeout di connessione dati
data_connection_timeout=120
# Accesso via PAM (Pluggable Authentication Modules)
pam_service_name=vsftpd
# Modalit� operativa standalone? YES/NO - pu� essere di uno dei tipi (inetd, xinetd, Standalone)
# In questo esempio il servizio FTP viene avviato con xinetd, il valore � dunque NO.
listen=NO
neo5k@phobos> vi /etc/inetd.conf
# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd ftp stream tcp nowait root /usr/sbin/tcpd vsftpd
# vsftp daemon. service ftp { disable = no socket_type = stream wait = no user = root server = /usr/sbin/vsftpd per_source = 5 instances = 200 no_access = 192.168.1.3 banner_fail = /etc/vsftpd.busy_banner log_on_success += PID HOST DURATION log_on_failure += HOST nice = 10 }
# Shall the vsftp daemon run in standalone
operation? YES/NO
listen=YES
neo5k@phobos> /usr/sbin/vsftpd &
Se il percorso � stato inserito correttamente (cio� fa parte delle variabili d'ambiente condivise dall'utente e dal sistema) il servizio pu� partire anche cos�neo5k@phobos> vsftpd &
Un breve controllo sulla correttezza della variabile d'ambiente � il seguente:neo5k@phobos> echo $PATH
/usr/sbin:/bin:/usr/bin:/sbin:/usr/X11R6/bin
neo5k@phobos> ftp phobos Connected to phobos 220 "Welcome to neo5k's FTP service." Name (phobos:neo5k): testuser 331 Please specify the password. Password: 230 Login successful Remote system type is UNIX. Using binary mode to transfer files. ftp> ls -l 229 Entering Extended Passive Mode 150 Here comes the directory listing drwxr-xr-x 11 500 100 400 May 07 16:22 docs drwxr-xr-x 9 500 100 464 Feb 01 23:05 hlds drwxr-xr-x 39 500 100 4168 May 10 09:15 projects 226 Directory send OK. ftp>
Questa introduzione fornisce solo un breve sguardo su quanto offre vsftpd, dal momento che il server FTP presenta una vasta gamma di possibilit� di configurazione. Chi volesse approfondire la conoscenza di vsftpd pu� visitare la home del progetto [6] e accedere alla documentazione completa.