Come configurare un FTP Server su linux

 

Che cos'è FTP e come funziona

FTP è un protocollo standard per il trasferimento di files fra hosts in una rete. Solitamente prevede l'autenticazione degli utenti ed una serie di comandi semplici per il download e l'upload dei files che devono essere scaricati sul proprio host o copiati sull'host remoto. se vi serve creare solo un gateway vedete GatewayLan.

Questa guida si occupa della configurazione del servizio FTP utilizzando il programmavsftpd (very secure FTP daemon), uno dei programmi maggiormente usati e sicuri per l'implementazione di questo servizio.

        vsftpd.beasts.org - Sito ufficiale di vsftpd.

        vsftpd.beasts.org/vsftpd_conf - Guida alla configurazione di vsftpd.

 

Installazione

Aprite una shell ed al prompt dei comandi digitate:

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 installerà vsftpd risolvendo automaticamente le dipendenze necessarie ed avviando il server ftp nella configurazione di default.

&& Il pacchetto vsftpd si trova nel repository universe, accertatevi di averlo abilitato, in caso consultate AddingRepositoriesHowto.

L'installazione di default attiva il server FTP in modalità anonima, ovvero quando si tenta di connettersi all'host digitando al prompt:

ftp 192.168.20.101

si ottiene una messaggio di richiesta di immissione delle credenziali di accesso del tipo :

Username:

Password:

come username bisogna mettere anonymous e la password è in bianco (date semplicemente invio sulla tastiera).

A questo punto si accede come utente anonymous senza che vi venga richiesta la password, ma ovviamente con possibilità limitate di sfogliare le cartelle disponibili sul server nonché di fare download e upload di 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

Nel caso in cui si voglia configurare un server FTP i cui utenti sono quelli già abilitati sul sistema, sarà necessario intervenire sul file di configurazione del servizio vsftpd: /etc/vsftpd.conf.

Modificate il seguente parametro come segue :

LOCAL_ENABLE = YES

Digitando l'indirizzo del server FTP, verranno chiesti all'utente lo username e la password, egli dovrà inserire semplicemente quelli che già utilizza in locale. In questo modo si permetterà agli utenti del sistema di accedere al servizio FTP con il proprio username e la propria password, accedendo a tutte le cartelle presenti sul server. 
&& 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 abilitare questo parametro:

chroot_local_user=YES

Quindi, per esempio, l'utente "carlo", avrà accesso alla sola cartella /home/carlo.

 

ACL

Il modo in cui il servizio FTP implementa le liste di controllo degli accessi è attraverso l'uso di un file che contiene l'elenco degli utenti il cui accesso FTP è proibito. Questo 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

 

Lista 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