Installare un server FTP con vsftpd su CentOS

vsftpd1

Per un’azienda e non solo, la condivisione di dati e file di medio/grosse dimensioni (grafica, presentazioni, media, etc.) è una necessità sempre più presente nel business svolto.

Anche se gli utenti si ostinano ad inviare grossi file via email fino a saturare il loro inbox o vedersi respingere il messaggio dal destinatario (per questo gli amministratori mettono le quote sulle caselle!), l’utilizzo di un servizio FTP è spesso la soluzione del problema.

Tra le varie proposte del mercato, uno dei più quotati sistemi FTP in ambiente Linux è vsftpd.

 

Prerequisiti

Per implementare il server FTP, sono richiesti i seguenti componenti:

  1. Linux CentOS 5.x
  2. Package vsftpd
  3. Consigliata la creazione di una partizione dedicata home per le home directory

 

Procedura

Data la tipologia del servizio da implementare, effettuare un’installazione tipo “bare minimum” di Linux CentOS 5.x (trovate un esempio questo articolo).

Successivamente installare il package vsftpd tramite il comando yum.

# yum install vsftpd

vsftpd2

Terminata l’installazione, la configurazione risiede nel file /etc/vsftpd/vsftpd.conf. Per avviare il servizio durante il reboot della macchina, impostare il parametro tramite chkconfig.

# chkconfig vsftpd on

vsftpd3

Nel firewall bisogna aprire la porta TCP 21 per permettere il corretto funzionamento dell’FTP. Utilizzando il comando system-config-securitylevel-tui si accede alla configurazione base del firewall.

# system-config-securitylevel-tui

Abilitare il firewall cliccando nel campo Security Level il parametro Enabled, disabilitare SELinux e cliccare sul bottone Customize.

vsftpd4

Nel campo Allow incoming cliccare sulla voce FTP (abilita la porta TCP 21). Lasciare SSH attivo per la connessione remota sulla macchina. Cliccare su OK per impostare.

vsftpd5

Si ripresenta la finestra precedente. Cliccare sul bottone OK per attivare il firewall.

vsftpd6

Editare il file di configurazione vsftpd.conf per impostare i parametri di funzionamento.

# vi /etc/vsftpd/vsftpd.conf

Rimuovere dal file di configurazione il simbolo # dalle varie voci per abilitare le specifiche funzioni.

Per permettere la scrittura, il listing delle directory e assegnare i diritti di read & write alle directory:

Per abilitare il chroot degli utenti su determinate directory:

Creare il file /etc/vsftpd/chroot_list per inserire la lista degli utenti che dovranno essere “jailed” nella loro home directory.

# vi /etc/vsftpd/chroot_list

vsftpd7

Una configurazione tipo di vsftpd può essere impostata come riportato in figura.

vsftpd8

Configurato il servizio, non rimane che creare nel sistema gli utenti che utilizzeranno l’FTP.

vsftpd9

Per rendere operativa la configurazione, riavviare il daemon vsftpd.

# service vsftpd restart

vsftpd10

 

Test del servizio

Per verificare che il tutto funzioni correttamente, utilizzare un client FTP per testare la connessione e provare ad effettuare l’upload di un file.

vsftpd11

Utilizzando Internet Explorer (mezzo utilizzato da molte aziende), connettersi al server FTP ed effettuare il download del file. Digitando l’indirizzo del server FTP, si presenta la finestra di autenticazione. Inserire le credenziali (nell’esempio ftptest) e cliccare su Log on.

vsftpd12

Si accede all’area FTP dell’utente (ftptest in questo caso) dove è presente il file precedentemente caricato. Come si nota, l’utente non ha modo di “uscire” dalla propria directory poichè è soggetto a chroot dal sistema.

vsftpd13

Il server FTP è adesso operativo e pronto per essere messo in produzione. Generalmente, dato l’utilizzo, è consigliabile posizionare il server FTP nell’area DMZ della rete, configurando opportunamente il firewall.