Skip to content

Configurazione vsftp

Una guida rapida e (spero completa) alla installazione e all’uso di un server FTP usando vsftpd. La traccia base mi è stata data dall’articolo già pubblicato su questo sito, ed ho cercato di completarlo e di chiarire alcuni punti che mi sembrano importanti.

In questa guida, riferirò di come utilizzare il ftp server per più utenti accreditati.


INSTALLAZIONE

Niente di più facile:

apt-get vsftpd


PRIMA CONFIGURAZIONE

Alcune cose da ricordare:

  1. Innanzitutto una cosa che TUTTE le altre guide si dimenticano (!!!) di specificare. La cartella usata come “root” del nostro sito ftp è la seguente: /var/ftp
  2. Fondamentale: ogni utente del sito FTP, deve essere definito come utente del sistema con tutto quello che ne consegue (di positivo).
  3. Non appena installato, vsftpd è già perfettamente funzionante, come server per un utente denominato (con molta fantasia) “ftp”: potete eseguire il test semplicemente digitando da console:
    ftp 192.168.1.4 
    username: ftp 
    password: ftp

Visto, funziona!


PREPARAZIONE E PERSONALIZZAZIONE DELL’AMBIENTE DI LAVORO

Innanzitutto occorre creare la cartella di root del server (quella nella quale accederanno gli utenti, per capirci).

Da root:

mkdir /var/ftp

Se si vuole creare la cartella in un altro disco (Es: il sistema linux su hda1, il disco archivio è sda1), si può creare una cartella sul secondo disco (Es: /mnt/sda1/ftproot), e creare un link simbolico alla cartella ftp:

ln -s /mnt/sda1/ftproot /var/ftp

Fatto questo, occorre personalizzare il file di configurazione di vsftpd (/etc/vsftpd.conf): questo file contiene tutti i parametri necessari per il funzionamento del server.
Esistono molti parametri di configurazione, per i quali vi rimando alla documentazione su google… Quello riportato di seguito, è usempio di file /etc/vsftpd.conf
Prima però mi faccio una copia del file standard, non si sa mai:

cp /etc/vsftpd.conf /etc/vsftpd.conf.old

Per editare i files, io uso “nano” ma potete editarli con l’editor che preferite. Inserire questi parametri, cancellando tutto il contenuto precedente (l’avete fatta la copia, vero?)

#### /etc/vsftpd.conf ###
 
 anonymous_enable=NO
 anon_upload_enable=NO
 anon_mkdir_write_enable=NO
 local_enable=YES
 write_enable=YES
 local_umask=022
 dirmessage_enable=YES
 xferlog_enable=YES
 xferlog_file=/var/log/vsftpd.log
 xferlog_std_format=YES
 ascii_upload_enable=YES
 ascii_download_enable=YES
 ls_recurse_enable=NO
 listen_port=21
 connect_from_port_20=NO
 listen=YES
 background=YES
 # definiamo una chroot() jail
 chroot_local_user=YES
 check_shell=NO
 userlist_deny=NO
 # definiamo una lista di utenti autorizzati
 # nel file /etc/vsftpd.user_list
 userlist_enable=YES
 userlist_file=/etc/vsftpd.user_list


CREAZIONE DEGLI UTENTI

Ripeto, visto che è fondamentale: ogni utente del server FTP è anche un utente del sistema linux! Aggiungiamo adesso il primo utente linux (pippo), e creiamo cartella relativa sulla cartella ftp.

mkdir /var/ftp/pippo
useradd -d /var/ftp/pippo pippo
chown /var/ftp/pippo pippo

Posso creare tutti gli utenti che voglio adesso o posso anche aggiungerli successivamente.
Una nota importante: il parametro chroot_local_user=YES visto sopra, nel file /etc/vsftpd.conf , fa in modo che nel momento dell’accesso, l’utente venga indirizzato (chroottato, oserei dire) nella propria cartella, definita nel momento della creazione dell’utente stesso.

Problema: come faccio a dire a vsftpd quali utenti sono ammessi all’accesso nl nostro server? Semplicissimo, basta creare un file chiamato /etc/vsftpd.user_list contenente la lista degli utenti ammessi:

### /etc/vsftpd.user_list ###
# file /etc/vsftpd.user_list
# Lista Utenti Autorizzati
 pippo
 pluto
 topolino

Naturalmente, ogni volta che aggiungo un utente, dovrò aggiungerlo a mano nel file di cui sopra, pena il mancato riconoscimento da parte del server (quante nottate si possono perdere per un errore come questo!!!!!)

Ad ogni modifica, si deve far riavviare il server FTP:

/etc/init.d/vsftpd restart

LA CILIEGINA SULLA TORTA!

Una volta configurato il server FTP, e testato in tutte le funzionalità, sarebbe bello e professionale aggiungere un messaggio iniziale di benvenuto. Questo messaggio sarà contenuto in un semplice file di testo (/etc/welcome.banner).

Aggiungere al file /etc/vsftpd.conf le seguenti righe:

# Aggiunge un messaggio iniziale
 banner_file=/etc/welcome.banner

Poi creare il file ti puro testo (/etc/welcome.banner)

Benvenuti sul server FTP di Mario Rossi.
 Inserisci i tuoi dati per l'autenticazione
 Tutte le attivita sono monitorate.
 Ti auguriamo un buon lavoro....

(o qualsiasi altra cosa vi venga in mente!)

e far ripartire il server:

/etc/init.d/vsftpd restart

Alla connessione, vedremo anche il messaggio di accesso…


Impostazioni personalizzate

Se vuoi redirigere la cartella dell’anonimous nella cartella di un utente cambia il file /etc/passwd la voce utente ftp assegnando la home dell’utente Per evitare l’ssh imposta la shell su /bin/false

ftp:x:106:65534::/home/Pippo/:/bin/false
Pippo:x:1003:100::/home/Pippo/:/bin/false

Last updated: 11 Febbraio 2015 by Pierluigi Minati