back to top

Vsftpd: realizzare un server FTP su Linux

L’FTP (File Transfer Protocol) è un protocollo facente parte della famiglia di protocolli TCP/IP, utilizzato per la trasmissione di dati e per caricare/scaricare file tra computer.

Per funzionare l’FTP utilizza un modello client/server che consiste appunto in un server FTP, un programma che accetta connessioni in entrata, nel caso di Linux un demone continuamente in ascolto, e il client FTP, che invia al server la richiesta, costituito generalmente da un programma apposito (es. FileZilla) oppure da un qualsiasi browser.

Più semplicemente, il server FTP mette a disposizione del client FTP file e ogni altro tipo di risorsa che può essere condivisa e trasmessa.

In questo articolo prenderemo in esame l’installazione e la configurazione del server FTP Vsftpd su una macchina Debian (discorso valido quindi anche per installazioni Ubuntu).

L’accesso a un server FTP da parte di un client può avvenire in due modi principali:

  • in modo anonimo
  • con autenticazione

Nel modo anonimo, i client accedono al server FTP utilizzando in maniera predefinita l’account utente chiamato "anonymous" o "ftp" e inviando generalmente un indirizzo di posta elettronica come password. Nel modo con autenticazione l’utente utilizzato dal client deve essere in possesso di un account e di una password preventivamente definiti sul server.

Di default la directory radice del server FTP è nascosta e scambiata con la directory /home/ftp, che contiene i file resi disponibili, in modo da nascondere il resto del file system agli accessi dei client.

Gli esempi che seguiranno sono stati realizzati su una rete locale e riguardano configurazioni molto semplici che possono essere da stimolo per un approfondimento dell’argomento.

Installazione e primo utilizzo.

Il server FTP Vsftpd può essere scaricato e installato per la distribuzione Debian (e Ubuntu) con l’utility apt attraverso il seguente comando:

apt-get install vsftpd

Terminata l’installazione abbiamo già un server FTP minimale funzionante con accesso anonimo. Per testarne il funzionamento è possibile digitare sulla barra degli indirizzi del browser la seguente stringa (supponendo che 192.168.1.3 sia l’indirizzo IP della macchina che ospita il server FTP):

ftp://192.168.1.3

con un risultato simile alla figura seguente


dove l’unico file disponibile per il download, "test_ftp", è stato inserito precedentemente nella directory /home/ftp del server.

La visualizzazione, configurazione e modifica delle impostazioni di Vsftpd avvengono attraverso un unico file, /etc/vsftpd.conf. Editiamo il file, ad esempio con il comando

nano /etc/vsftpd.conf

visualizziamo il contenuto e analizziamolo in alcuni aspetti (tenendo presente che le direttive precedute dal simbolo del cancelletto – # – sono commentate quindi non attive).

La direttiva

anonymous_enable=YES

consente, come accennato in precedenza, l’accesso alle risorse del server FTP da parte di utenti anonimi, cioè non autenticati sul server, in pratica chiunque voglia usufruire del servizio. Se vogliamo impedire l’accesso anonimo e sufficiente sostituire "YES" con "NO".

La direttiva

#local_enable=YES

permette, se decommentata, agli utenti della macchina Linux che ospita il server FTP di utilizzare il servizio.

Mentre la direttiva

ftp_banner=Benvenuti nel server FTP di MrWebmaster.it

definisce un messaggio liberamente modificabile che viene visualizzato nel momento in cui si stabilisce un collegamento con il server.

Un’installazione di base permette quindi esclusivamente un accesso anonimo in sola lettura. Se vogliamo concedere agli utenti anonimi anche la possibilità di creare nuove directory all’interno della directory principale del server FTP e di eseguire l’upload di file, dobbiamo decommentare le seguenti direttive:

#write_enable=YES
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES

Dopo queste semplici operazioni l’utente anonimo avrà la possibilità di creare proprie directory e di utilizzarle anche per l’upload di file. Ma se vogliamo anche permettere di rinominare e cancellare i file dobbiamo aggiungere la seguente direttiva che di default non è presente in /etc/vsftpd.conf

anon_other_write_enable=YES

Per rendere effettive le modifiche ricordiamoci sempre di riavviare il servizio con il comando

/etc/init.d/vsftpd restart

Accesso con autenticazione.

Per rendere le regole di accesso al server FTP più restrittive utilizziamo il metodo che richiede autenticazione. In questo caso è necessario essere in possesso di un nome utente e di una password presenti e validi sul nostro server. La direttiva da attivare è

local_enable=YES

così gli utenti locali sono abilitati all’accesso.

C’é anche la possibilità di non consentire l’accesso a tutti gli utenti locali ma di definire un file che contiene una lista di nomi: solo gli utenti indicati all’interno di questa hanno il diritto di usufruire del servizio FTP. Innanzitutto attiviamo la seguente direttiva

userlist_deny=NO

poi

userlist_enable=YES

e infine

userlist_file=/etc/vsftpd.user_list

Le modifiche appena apportate indicano che è stato definito il file /etc/vsftpd.user_list, creato durante l’installazione del server, che conterrà i nomi degli utenti che soli avranno la possibilità di accesso. Le prime due direttive indicano che la lista di nomi che verrà creata sarà composta da utenti che appunto avranno il diritto di accesso. Nel caso opposto, definendo cioè

userlist_deny=YES

e

userlist_enable=NO

la lista sarà composta dai nomi degli utenti che invece non avranno diritto di accesso.

Pubblicitร 

Leggi anche...

Linux: recuperare una partizione con GNU Parted o Gpart

A volte, nell'uso quotidiano del computer, possono capitare dei...

Differenze tra su e sudo in Linux

su e sudo, vengono considerati a torto due comandi...

Creare una lista dei programmi installati su Ubuntu (per effettuarne il ripristino)

In questo breve post vedremo come visualizzare tutto il...

Come svuotare la memoria Cache in Linux?

La memoria cache è stata creata perché, anche quando...

Installare un’interfaccia grafica su Ubuntu Server

Indipendentemente dalla versione di riferimento, il ramo principale della...

Creiamo un file server con Samba

La finalità di una rete locale di computer (LAN)...
Pubblicitร