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:
- Linux CentOS 5.x
- Package vsftpd
- 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
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
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.
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.
Si ripresenta la finestra precedente. Cliccare sul bottone OK per attivare il firewall.
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:
local_enable=YES write_enable=YES local_umask=022
Per abilitare il chroot degli utenti su determinate directory:
chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
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
Una configurazione tipo di vsftpd può essere impostata come riportato in figura.
Configurato il servizio, non rimane che creare nel sistema gli utenti che utilizzeranno l’FTP.
Per rendere operativa la configurazione, riavviare il daemon vsftpd.
# service vsftpd restart
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.
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.
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.
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.