IndiceBRTableOfContents |
Introduzione
FTP (File Transfer Protocol) è un protocollo standard per il trasferimento di file tra host all'interno di una rete. Solitamente prevede l'autenticazione degli utenti e una serie di comandi semplici per scaricare e caricare file da o per l'host desiderato.
Questa guida si occupa della configurazione del servizio FTP utilizzando il programma vsftpd (very secure FTP daemon), uno dei programmi maggiormente usati e sicuri per l'implementazione di questo servizio.
Installazione
Aprire un terminale e digitare:
sudo apt-get -y install vsftpd.
L'opzione -y di apt-get non chiede la conferma per le azioni legate al processo di installazione del software. In questo modo viene installato il pacchetto vsftpd risolvendo automaticamente le dipendenze necessarie e avviando il server FTP con la configurazione predefinita.
Il pacchetto vsftpd si trova nel repository [:Repository/Componenti#universe:universe], accertarsi di averlo abilitato, in caso consultare la pagina [:Repository#abilitare:Repository]. |
Prova del servizio
Ora, consideriamo di doverci collegare al computer, con indirizzo IP 192.168.1.2, su cui è stato installato il server FTP. Per fare ciò, da un terminale, digitare:
ftp 192.168.1.2
Viene visualizzato un messaggio ottiene una messaggio di richiesta di immissione delle credenziali di accesso del tipo:
Connected to 192.168.1.2 Name (192.168.1.2):
Inserire come nome utente:
anonymous
e premere Invio.
Viene quindi chiesta la password. In questo caso basta premere Invio. L'utente anonymous non ha una password impostata.
A questo punto si accede come utente anonymous, ma ovviamente con possibilità limitate di esplorare le cartelle disponibili sul server e limitate possibilità di scaricamento e caricamento file. Gli utenti anonimi possono avere accesso soltanto alla cartella /home/ftp del server, nella quale, a seconda dei parametri di configurazione impostati, potranno soltanto leggere/scaricare, oppure anche scrivere/caricare.
Configurazione
Per configurare un server FTP in cui gli utenti abilitati ad accedere siano gli utenti del sistema, è necessario sul file di configurazione del servizio vsftpd /etc/vsftpd.conf.
Modificare la riga:
#local_enable=YES
in:
local_enable= YES
Collegandosi al server con il comando:
ftp 192.168.1.2
gli utenti presenti all'interno di quella macchina potranno eseguire l'accesso inserendo il proprio nome utente e la propria password. Gli utenti del sistema avranno accesso al servizio FTP potendo esplorare tutte le cartelle del sistema.
Quando si abilita questa funzione è opportuno limitare l'accesso degli utenti registrati alla sola cartella /home/nomeutente ad essi già attribuita
Per fare questo è necessario modificare la riga:
#chroot_local_user=YES
in:
chroot_local_user=YES
Quindi, per esempio, l'utente mario avrà accesso alla sola cartella /home/mario.
ACL
Il modo in cui il servizio FTP implementa le liste di controllo degli accessi (Access Control List), è attraverso l'uso di un file che contiene l'elenco degli utenti a cui l'accesso FTP è proibito. Questo file è il file /etc/ftpusers.
# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5). root daemon bin sys sync games man lp mail news uucp nobody
Pertanto se volete che l'utente di sistema marco non possa usare il servizio FTP dovete soltanto aggiungerlo nel file /etc/ftpusers e riavviare il servizio con il comando :
/etc/init.d/vsftpd restart
Elenco dei parametri di vsftpd.conf
# Abilita/disabilita accesso anonimo anonymous_enable=YES ... ... # Abilita/disabilita accesso agli user locali local_enable=YES ... ... # Abilita/disabilita agli utente accesso in scrittura write_enable=YES ... ... # Abitilità/disabilita la possibilità degli utenti anonimi di scaricare file # ha valore solo se write_enable è decomentato # Also, you will # obviously need to create a directory writable by the FTP user. # anon_upload_enable=YES ... ... # Decomenta sei vuoi permettere agli utenti anonimi di creare nuove directory # anon_mkdir_write_enable=YES # Attiva i log su tutte le operazione di upload/download xferlog_enable=YES ... ... # Specificare il path dei log o lasciare quello di default # xferlog_file=/var/log/vsftpd.log # Gli utenti contenuti nel file vsftp.chroot_list non avranno accesso # alla cartella superiore alla proprio home dir chroot_list_enable=YES chroot_list_file=/etc/vsftp.chroot_list # Nel file chroot_list mettere semplicemente il nome utente che deve essere limitato
Ulteriori risorse
[http://vsftpd.beasts.org/ vsftpd.beasts.org Sito ufficiale di vsftpd]
[http://vsftpd.beasts.org/vsftpd_conf.html Guida alla configurazione di vsftpd]
