Vediamo come installare e configurare il nostro server debian come ftp server.
- Installiamo il software
# apt-get install vsftpd
- Assicuriamoci che il servizio sia fermo:
# /etc/init.d/vsftpd stop
[ ok ] Stopping vsftpd (via systemctl): vsftpd.service.
- Creiamo una copia di backup del file di configurazione:
# mv /etc/vsftpd.conf /etc/vsftpd.conf.orig
# cat /etc/vsftpd.conf.orig | grep -v "#" > /etc/vsftpd.conf
- A questo punto aggiungiamo le seguenti righe che autorizzano la scrittura e la possibilità di effettuare chroot come utente locale del server:
# echo "write_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
ls_recurse_enable=YES
user_sub_token=\$USER
<strong>local_root=/home/\$USER/shares</strong>
seccomp_sandbox=NO
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=64000
pasv_max_port=64001
port_enable=YES
local_umask=022" >> /etc/vsftpd.conf
Ho evidenziato in grasseto la path che verrà cercata come chroot, in altre parole per ogni utente verrà cercata la cartella shares all’interno della home (situata in /home). - Riavviamo il servizio:
# /etc/init.d/vsftpd restart
- [Opzionale] Creiamo le cartelle predefinite in /etc/skel (questo lo facciamo per fare in modo che venga creata la cartella shares – grassetto del punto 4 – per ogni utente aggiunto):
# mkdir /etc/skel/shares
- [Opazionale] Rendiamo disponibile la shell /bin/false, questa shell inibisce l’accesso da ssh (o quanto meno lo rende assai più complicato):
# echo "/bin/false" >> /etc/shells
# cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/false
- Creiamo ora un utente per l’accesso ftp inibendogli l’accesso ssh:
# useradd -s /bin/false -m utente1
# passwd utente1
Immettere nuova password UNIX:
Reimmettere la nuova password UNIX:
passwd: password aggiornata correttamente
- Possiamo ora testare la connessione ftp con username utente1 e password quella inserita.