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 SuSEfirewall2

Successivamente, modifica il file di configurazione ‘/etc/sysconfig/SuSEfirewall2’ con vim:

vim /etc/sysconfig/SuSEfirewall2

Aggiungi 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 SuSEfirewall2

Passo 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 openssl

Ora 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 ftpuser

Vai nella directory pure-ftpd e modifica il file di configurazione ‘pure-ftpd.conf’ con l’editor vim:

cd /etc/pure-ftpd/  
vim pure-ftpd.conf

Cambia il valore nella riga 81 in ‘yes’ per disabilitare l’utente anonimo.

NoAnonymous                 yes

Decommenta 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.pdb

Commenta la riga PAMAuthentication per disabilitare l’autenticazione PAM nella riga 141 poiché utilizzeremo PureDB come sorgente di autenticazione.

#PAMAuthentication             yes

Salva 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 365

Cambia i permessi del file di certificato a 0600:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Successivamente, 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.conf

Decommenta la riga 439 per abilitare TLS.

TLS                      1

Decommenta la riga 449 e aggiungi una nuova opzione per renderlo più sicuro.

TLSCipherSuite           HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3

Decommenta la riga 445 per definire il file di certificato.

CertFile                 /etc/ssl/private/pure-ftpd.pem

Salva ed esci.

Ora avvia pure-ftpd con il comando systemctl:

systemctl start pure-ftpd

Passo 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/shiro

Crea 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/shiro

Successivamente, dobbiamo salvare le modifiche con il comando qui sotto:

pure-pw mkdb

Ora 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”:

ftp

Successivamente, inserisci l’IP del server pure-ftpd:

open 192.168.43.69

Accedi con l’utente ‘shiro’ e la password e poi premi ‘Invio’.

Prova a caricare un file con il comando ‘put’:

put picture.png mypict.png

Ora vedrai il file mypict.png sul server con il comando ls qui sotto:

ls

Connessione FTP

Riferimenti

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.