FTP Server sicuro con “vsftpd”

Desiderate salvare i vostri file dall’ufficio, o qualunque altro posto, direttamente sul vostro computer di casa senza dover fare affidamento su scomodi CD, DVD e penne USB o imbattervi nei limiti dei servizi di web hosting come Megaupload o RapidShare? Volete fare tutto questo in totale sicurezza? Quello che fa per voi è un server FTP, facilmente installabile e configurabile, con tutta la sicurezza che offre un sistema unix-like come Debian potenziato dal demone vsftpd.

Un server FTP può sembrare un protocollo obsoleto dato che la prima specifica risale al 1971, invece rimane tutt’oggi uno dei più usati in tutto il mondo. Inoltre presenta notevoli vantaggi rispetto ad i normali metodi di salvataggio dei dati sopra citati:

  • Nessun limite sulla dimensione dei file che si vuole salvare.
  • Per accedere al server FTP necessitate solamente di un normalissimo browser o di un client ftp.
  • Tutela della privacy non dovendo affidare i vostri file a terzi. (Ad esempio Megaupload o RapidShare)

Tuttavia il server FTP sarà accessibile solamente quando il vostro computer sarà acceso e collegato ad internet. Inoltre, la banda di download/upload sarà direttamente proporzionale alla capacità della vostra linea ADSL o qualunque altro servizio di banda larga disponiate.

Avvertenza

Questa guida è stata scritta prendendo in considerazione la versione 2.0.7-1 di vsftpd con sistema operativo Debian GNU/Linux. È possibile quindi che vi siano differenze con altre versioni del demone, e molto più probabilmente, con altre distro. Nonostante questa guida sia molto semplice da seguire e capire, ci tengo a precisare che è consigliabile avere delle conoscenze di base per quanto riguarda il mondo linux, e delle conoscenze generali nel mondo dell’informatica, in modo da tutelare la sicurezza del vostro server, e di conseguenza la vostra. Bene, e adesso cominciamo!

Cos’è vsftpd?

vsftpd, acronimo di “Very Secure FTP Daemon“, è un demone che svolge il ruolo FTP Server su sistemi operativi unix-based, distribuito sotto licenza GPL. È pensato per essere sicuro, stabile ed estremamente veloce.

Presenta molti punti di forza che invogliano certamente l’utente ad installarlo, tra i quali troviamo:

  • Possibilità di avvio sia da inetd, sia in standalone.
  • Alta semplicità di configurazione.
  • Possibilità di creare utenti virtuali.
  • Controllo della banda.
  • Controllo degli accessi IP.
  • Supporto al nuovo protocollo di rete IPv6.
  • Supporto al Secure Sockets Layer e Transport Layer Security (SSL e TLS) per FTPS e FTPES.

Installazione e configurazione

L’installazione è semplicissima, è sufficiente eseguire il seguente comando.

# apt-get install vsftpd
Una volta completata l’operazione, il server FTP è già perfettamente funzionante. Per testarlo potete accedere come utente “anonymous” o “ftp”: entrambi vengono riconosciuti di default come utenti per il login anonimo. Adesso è giunto il momento di rifinire i dettagli del nostro server, e per farlo, è necessario lavorare sul file principale di configurazione di vsftpd. Lo possiamo trovare in /etc/vsftpd.conf.

# nano /etc/vsftpd.conf
Di seguito vado a riportarvi le opzioni principali con la relativa spiegazione ed il mio personale consiglio su come debbano essere impostate. Ovviamente, nessuno vi vieta di fare diversamente da quanto da me consigliato, soprattutto per chi abbia delle esigenze particolari. Affinché le impostazioni funzionino, le opzioni dovranno essere inserite nel file di configurazione se non sono già presenti.

listen

listen=YES
Se abilitato, vsftpd si avvierà in modalità standalone e si prenderà carico dell’ascolto e della gestione delle connessioni in ingresso. Di conseguenza non dovrà essere avviato da inetd o demoni simili.

listen_ipv6

listen_ipv6=NO
Stessa storia del parametro listen, con la differenza che vsftpd si metterà in ascolto su socket IPv6.

anonymous_enable

anonymous_enable=NO
Stabilisce se i logins anonimi sono consentiti o meno.

local_enable

local_enable=YES
Se abilitato, gli utenti presenti nel file /etc/passwd (o qualsivoglia file di configurazione PAM) potranno loggarsi sul server. Questa opzione deve essere abilitata per il funzionamento in modalità non-anonima.

write_enable

write_enable=YES
Stabilisce se i comandi che operano sul filesystem sono consentiti o meno. Alcuni esempi sono: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE e SITE.

anon_upload_enable

anon_upload_enable=NO
Se abilitato, gli utenti anonimi saranno abilitati ad effettuare uploads sul server sotto certe condizioni. Perché funzioni, l’opzione write_enable deve essere attiva e l’utente “ftp” deve avere permessi di scrittura sulle cartelle nelle quali volete permettere gli uploads.
Abilitate questa opzione con prudenza.

xferlog_enable

xferlog_enable=YES
Se abilitato, verrà creato un log dettagliato di tutti i downloads e gli uploads. Di default, il file si trova in /var/log/vsftpd.log, tuttavia potete cambiarne la posizione a vostro piacimento con l’opzione vsftpd_log_file.

nopriv_user

nopriv_user=nobody
Specifica l’utente con il quale verrà avviato il server. È preferibile che sia un utente dedicato e totalmente non-privilegiato, di conseguenza fate attenzione all’utente che scegliete.

ftpd_banner

ftpd_banner=quello che vi pare
Questa opzione mostra del testo da voi specificato quando qualcuno si connette al server. Se il testo è lungo, è preferibile usare l’opzione banner_file (es: banner_file=/etc/vsftpd.banner_file) per specificare un file a parte piuttosto che riempire il file di configurazione.

chroot_local_user

chroot_local_user=YES
Serve a “bloccare” gli utenti nella loro home directory impedendo che possano risalire l’albero delle cartelle.

delete_failed_uploads

delete_failed_uploads=YES
Cancella i frammenti di file di un upload non andato a buon fine.

userlist_enable

userlist_enable=YES
Se abilitato, vsftpd caricherà una lista di usernames presi dal file specificato da userlist_file. Se un utente tenta di loggarsi usando uno degli username presenti nella lista, gli verrà negato l’accesso prima di richiedergli la password. Questa opzione può essere utile per prevenire che vengano trasmesse passwords in chiaro. Leggi con attenzione anche userlist_deny.

userlist_deny

userlist_deny=YES
Questa opzione viene presa in considerazione solo se userlist_enable è attiva. Se impostata su YES, stabilisce che la lista di usernames caricati da userlist_file, diventa una lista di utenti ai quali negare l’accesso. In caso contrario diventa una lista di utenti ai quali consentire il login.

max_clients

max_clients=100
Se vsftpd parte in modalità standalone, questa opzione stabilisce il numero massimo di utenti che possono connettersi simultaneamente al server. Settando “0″, si stabilisce un numero illimitato. Se volete limitare gli utenti, scegliete tale numero in base alla banda alla quale avrebbe accesso il server.

local_max_rate

local_max_rate=0
Imposta la velocità massima in bytes al secondo per gli utenti locali autenticati correttamente. Questa variabile è molto soggettiva, dipenderà tutto dalla disponibilità della vostra linea, quindi cercate di non esagerare. Settando “0″, si stabilisce un numero illimitato di bytes al secondo.

anon_max_rate

anon_max_rate=10240
Di rilevanza solamente se avete deciso di lasciare abilitata l’autenticazione anonima. Il concetto è lo stesso di local_max_rate scritto subito sopra.

hide_ids

hide_ids=YES
È consigliabile abilitare questa opzione per una questione di privacy, in quanto nasconde tutte le informazioni riguardanti i proprietari di file e cartelle durante il “directory listings” sostituendole con “ftp”.

Se non siete ancora soddisfatti di queste opzioni, e volete conoscerne altre, potete consultare il manpage di vsftpd.conf, ma una volta che avrete finito di configurare il vostro server, sarà necessario riavviare il servizio di vsftpd eseguendo il seguente comando:

# /etc/init.d/vsftpd restart

Creare e cancellare utenti vsftpd

La creazione di utenti per vsftpd ha senso solo se avete abilitato l’opzione “local_enable”. Per creare gli utenti useremo il comando “useradd”:

# useradd -d /home/nomeutente -m nomeutente
L’opzione “-d” definisce quale sia l’home directory dell’utente, che di norma si trova sotto /home.
L’opzione “-m” crea la home directory in caso non l’abbiate già fatto voi. L’unica differenza è che facendolo da useradd, la cartella viene già resa di proprietà dell’utente senza dover eseguire un ulteriore comando. Se preferite creare la home directory manualmente dovrete usare questi comandi:

# mkdir /home/nomeutente
# chown nomeutente: /home/nomeutente

Resta solo da assegnare una password al nostro utente:

# passwd nomeutente

Adesso il nostro utente è pronto per essere usato per collegarsi con l’ftp. Ovviamente non c’è limite al numero di utenti che è possibile creare, quindi non fatevi scrupoli. Se invece avete la necessità di cancellare un utente lo fate così:

# userdel nomeutente
Notate bene che in questa maniera la home directory e tutti i file contenuti rimarranno, di conseguenza se volete eliminare anche i dati dell’utente lo fate aggiungendo le opzioni “-f” e “-r”:

# userdel -f -r nomeutente

Problemi di connessione a vsftpd con alcuni browser

Ho notato di recente che alcuni browser in alcune versioni, tra cui anche Firefox, non riescono a connettersi all’ftp e ricevono l’errore “530 Permission Denied”. L’unica soluzione possibile al problema è dichiarare in anticipo con quale utente ci si vuole connettere seguendo la sintassi ftp://<nome_utente>@<indirizzo_ip_del_server>/. Quindi nella barra degli indirizzi del browser dovrete scrivere una cosa simile:

ftp://donlimo@192.168.1.200/
In aggiunta potete dichiarare anche la password seguendo la sintassi ftp://<nome_utente>:<password>@<indirizzo_ip_del_server>/. Di conseguenza:

ftp://donlimo:miapassword@192.168.1.200/
Mi sembra tutto. Se avete dubbi, perplessità o non avete capito come fare una cosa, non esitate a chiedere nei commenti.

Buon FTP a tutti.

Lascia un commento Feed dei commenti cmt_RSS

* Nome, Email, Testo sono obbligatori
Anteprima

RSS Sottoscrivi il nostro Feed

Se non possiedi un lettore di Feed puoi ricevere aggiornamenti via email

Tag Cloud

Visita ThemeForest Visita NetTuts diw