Pure-FTPd è un server FTP veloce e leggero costruito pensando alla sicurezza. In questo tutorial, ti mostrerò come installare e utilizzare Pure FTP in 4 semplici passaggi. Questa guida spiega come installare Pure FTPd su Debian 9.
Fase 1: installazione
Pure-FTPd si trova nel repository stabile di Debian, quindi non è necessario aggiungere altri repository al proprio sistema.
Esegui il comando seguente con i privilegi di root:
apt install -y pure-ftpd-common pure-ftpd
Passaggio due: configurazione
Esistono molte opzioni che è possibile utilizzare per modificare il comportamento dell'applicazione. Queste opzioni potrebbero essere applicate al demone di Pure-FTPd all'avvio oppure renderle persistenti creando i file necessari all'interno della confdirectory.
Noi vogliamo:
- Crea utenti virtuali.
- Crea automaticamente home directory per gli utenti.
- Gli
chrootutenti Limit ( ) hanno accesso solo alla propria home directory.
Abilita il database Pure-FTPd e disabilita l'autenticazione PAM e Unix per abilitare gli utenti virtuali:
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure
echo no > /etc/pure-ftpd/conf/PAMAuthentication
echo no > /etc/pure-ftpd/conf/UnixAuthentication
Impostare Pure-FTPd per creare home directory per gli utenti al primo accesso:
echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir
Chroot tutti.
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
Se sei interessato a conoscere altre opzioni, visita la pagina della documentazione ufficiale .
Passaggio tre: creare utenti
Pure-FTPd può gestire utenti virtuali, il che significa che sono conservati nel database di Pure-FTPd e non sono correlati agli utenti del sistema Linux.
Per far sì che Pure-FTPd gestisca i file con utenti virtuali, dobbiamo creare un utente e un gruppo Linux a cui saranno associati tutti gli utenti virtuali. Tutti gli utenti virtuali possono utilizzare lo stesso utente e gruppo di sistema purché siano stati sottoposti a chroot.
Eseguire i comandi seguenti per creare l'utente e il gruppo di sistema:
groupadd ftpusr
useradd -g ftpusr -d /dev/null -s /etc ftpusr
Nota : non vogliamo che questo utente abbia una home directory o funzionalità di accesso.
Crea la nostra directory root FTP:
mkdir /home/FTP
Creare un utente virtuale in Pure-FTPd:
pure-pw useradd alex -u ftpusr -g ftpusr -d /home/FTP/alex
Abbiamo aggiunto il nostro primo utente virtuale ( alex) e associato al sistema utente / gruppo ( ftpusr). Tutti i file con cui scrivi alexsaranno di proprietà ftpusrdel sistema.
Aggiorna il database di Pure-FTPd:
pure-pw mkdb
Controlla le informazioni dell'utente:
pure-pw show alex
Login : alex
Password : <encrypted password>
UID : 1000 (ftpusr)
GID : 1000 (ftpusr)
Directory : /home/FTP/alex/./
Full name :
Download bandwidth : 0 Kb (unlimited)
Upload bandwidth : 0 Kb (unlimited)
Max files : 0 (unlimited)
Max size : 0 Mb (unlimited)
Ratio : 0:0 (unlimited:unlimited)
Allowed local IPs :
Denied local IPs :
Allowed client IPs :
Denied client IPs :
Time restrictions : 0000-0000 (unlimited)
Max sim sessions : 0 (unlimited)
Per semplificare la vita, utilizzare il seguente script per aggiungere account FTP:
echo -e '#!/bin/bash\nread -p "Enter UserName: " usrname\npure-pw useradd $usrname -u ftpusr -g ftpusr -d /home/FTP/$usrname && pure-pw mkdb' > /usr/sbin/ftp-createacc
chmod u+x /usr/sbin/ftp-createacc
Ora, creare account FTP è semplice:
ftp-createacc
Enter UserName: mike
Password:
Enter it again:
Fase quattro: supporto TLS
Innanzitutto, dobbiamo installare OpenSSL.
apt install -y openssl
Forza Pure-FTPd a utilizzare TLS, oppure possiamo renderlo facoltativo, il che significa che sono accettate sia connessioni non sicure che TLS
# force TLS
echo 2 > /etc/pure-ftpd/conf/TLS
# insecure + TLS
echo 1 > /etc/pure-ftpd/conf/TLS
Crea una directory per memorizzare le nostre chiavi.
mkdir -p /etc/ssl/pure-ftpd
Genera una chiave bundle (chiave privata e chiave pubblica).
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Riavvia il pure-ftpddemone.
systemctl restart pure-ftpd
Se hai un firewall installato sul tuo sistema o il tuo server è protetto da NAT, devi definire le porte passive in Pure-FTPd e aprire queste porte nel tuo firewall, altrimenti riceverai errori come questi:
Server sent passive reply with unroutable address. Passive mode failed.
Failed to retrieve directory listing.
500 I won't open a connection to 192.168.1.4 (only to 10.10.10.10).
Impostare le porte passive in Pure-FTPd:
echo "40110 42210" > /etc/pure-ftpd/conf/PassivePortRange
Riavvia pure-ftpdper applicare la modifica.
systemctl restart pure-ftpd
Nel firewall, aprire l'intervallo di porte in entrata da 40110 a 42210 , protocollo TCP.
FTP non è sicuro per natura, ma è anche veloce e facile da configurare. Per una soluzione più sicura, utilizzare invece SFTP.