FTP Server · 3 min read · Dec 16, 2025
Come installare Pure-FTPd con TLS e utenti virtuali su OpenSUSE Leap 42.1
Pure-FTPd è un server FTP gratuito e leggero basato su Troll-FTPd, lo sviluppo è iniziato nel 2001 e funziona su molti sistemi operativi simili a Unix, tra cui Linux, *BSD, Solaris e HP-UX. Pure-FTPd ha molte funzionalità come domini virtuali, directory home chroot, utenti virtuali, supporto TLS/SSL, quota virtuale e molto altro.
In questo tutorial, ti mostrerò come installare e configurare pure-ftpd su OpenSUSE Leap 42.1. Ti mostrerò come configurare pure-ftpd con TLS/SSL e poi configurare gli utenti virtuali.
Prerequisiti
- OpenSUSE Leap 42.1
- Privilegi di root
- Conoscenza di OpenSUSE e Zypper
Passo 1 - Installare e configurare SuSEfirewall2
SuSEfirewall2 è uno script per generare la configurazione del firewall nel file ‘/etc/sysconfig/SuSEfirewall2’. Installeremo SuSEfirewall2 e poi apriremo le porte per SSH e il servizio FTP.
Installa SuSEfirewall2 con zypper:
zypper in SuSEfirewall2Successivamente, modifica il file di configurazione ‘/etc/sysconfig/SuSEfirewall2’ con vim:
vim /etc/sysconfig/SuSEfirewall2Aggiungi i nuovi servizi ssh e FTP alla riga 253:
FW_SERVICES_EXT_TCP="ssh ftp"Salva ed esci.
Ora avvia SuSEfirewall2 con il comando systemctl:
systemctl start SuSEfirewall2Passo 2 - Installare e configurare Pure-FTPd
In questo passo, installeremo pure-ftpd con OpenSSL per la configurazione TLS/SSL e configureremo l’utente e il gruppo pure-ftpd.
Installa le applicazioni con zypper come mostrato di seguito:
zypper in pure-ftpd opensslOra aggiungi il nuovo gruppo ‘ftpgroup‘ e il nuovo utente per il master ‘FTP user’ chiamato ‘ftpuser‘ al gruppo.
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuserVai nella directory pure-ftpd e modifica il file di configurazione ‘pure-ftpd.conf’ con l’editor vim:
cd /etc/pure-ftpd/
vim pure-ftpd.confCambia il valore nella riga 81 in ‘yes’ per disabilitare l’utente anonimo.
NoAnonymous yesDecommenta la riga 131 per configurare il backend. Pure-ftpd ha supporto per MySQL, PostgreSQL e LDAP come backend, ma in questo tutorial utilizzeremo ‘PureDB’ come backend.
PureDB /etc/pure-ftpd/pureftpd.pdbCommenta la riga PAMAuthentication per disabilitare l’autenticazione PAM nella riga 141 poiché utilizzeremo PureDB come sorgente di autenticazione.
#PAMAuthentication yesSalva ed esci.
Passo 3 - Configurare TLS/SSL per Pure-FTPd
Genera un nuovo file di certificato autofirmato nella directory ‘/etc/ssl/private’ con il comando openssl:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365Cambia i permessi del file di certificato a 0600:
chmod 600 /etc/ssl/private/pure-ftpd.pemSuccessivamente, torna nella directory pure-ftpd e modifica il file di configurazione per abilitare il supporto TLS/SSL per la connessione del client.
cd /etc/pure-ftpd/
vim pure-ftpd.confDecommenta la riga 439 per abilitare TLS.
TLS 1Decommenta la riga 449 e aggiungi una nuova opzione per renderlo più sicuro.
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3Decommenta la riga 445 per definire il file di certificato.
CertFile /etc/ssl/private/pure-ftpd.pemSalva ed esci.
Ora avvia pure-ftpd con il comando systemctl:
systemctl start pure-ftpdPasso 4 - Configurare utenti virtuali
Pure-FTPd fornisce funzionalità per creare e utilizzare utenti virtuali anziché utenti reali del sistema (Linux). Pure-FTPd offre diversi backend di autenticazione e la configurazione dell’utente virtuale dipende dal backend utilizzato dal server. Nel passo 2 abbiamo impostato ‘PureDB’ come backend.
Possiamo creare un nuovo utente virtuale con il comando ‘pure-pw’ fornito da pure-ftpd. In questo passo, creeremo un nuovo utente virtuale chiamato ‘shiro’ con directory ‘/srv/ftp/shiro’ come directory home ftp e l’utente è chrooted a quella directory in modo che non possa accedere alle altre directory di sistema.
Crea il nuovo utente virtuale con pure-pw:
pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiroCrea la directory per l’utente virtuale e cambia il proprietario di quella directory all’utente master ‘FTP user’.
mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiroSuccessivamente, dobbiamo salvare le modifiche con il comando qui sotto:
pure-pw mkdbOra l’utente shiro è pronto per essere utilizzato, possiamo utilizzare FTP dalla riga di comando o FileZilla per l’interfaccia GUI per connetterci al server.
Nota:
pure-pw ha più opzioni di comando, puoi usare ‘pure-pw help‘ per vedere tutti i comandi utili.
Passo 5 - Test
Utilizzerò il comando FTP nel terminale per il test. Apri il tuo terminale e digita “ftp”:
ftpSuccessivamente, inserisci l’IP del server pure-ftpd:
open 192.168.43.69Accedi con l’utente ‘shiro’ e la password e poi premi ‘Invio’.
Prova a caricare un file con il comando ‘put’:
put picture.png mypict.pngOra vedrai il file mypict.png sul server con il comando ls qui sotto:
ls
Riferimenti
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.