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, inclusi Linux, *BSD, Solaris e HP-UX. Pure-FTPd ha molte funzionalità come domini virtuali, home directory chroot, utenti virtuali, supporto TLS/SSL, quota virtuale e molti altri.
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 quindi configurare utenti virtuali.
Prerequisito
- OpenSUSE Leap 42.1
- Privilegi di root
- OpenSUSE, Zypper Knowledge
Fase 1:installazione e configurazione di SuSEfirewall2
SuSEfirewall2 è uno script per generare la configurazione del firewall nel file '/etc/sysconfig/SuSEfirewall2'. Installeremo SuSEfirewall2 e quindi apriremo le porte per SSH e il servizio FTP.
Installa SuSEfirewall2 con zypper:
zypper in SuSEfirewall2
Quindi, 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
Passaggio 2:installazione e configurazione di Pure-FTPd
In questo passaggio, 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 'Utente FTP' chiamato 'ftpuser ' al gruppo.
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Vai alla directory pure-ftpd e modifica il file di configurazione 'pure-ftpd.conf' con l'editor vim:
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Modificare il valore nella riga 81 in 'yes' per la disabilitazione dell'utente anonimo.
NoAnonymous yes
Decommentare la riga 131 per configurare il backend. Pure-ftpd ha il supporto per MySQL, PostgreSQL e LDAP come back-end, ma in questo tutorial useremo "PureDB" per il backed.
PureDB /etc/pure-ftpd/pureftpd.pdb
Commenta la riga PAMAuthentication per disabilitare l'autenticazione PAM sulla riga 141 poiché useremo PureDB come fonte di autenticazione.
#PAMAuthentication yes
Salva ed esci.
Passaggio 3 - Configura 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
Modifica le autorizzazioni del file del certificato in 0600:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Quindi, torna alla directory pure-ftpd e modifica il file di configurazione per abilitare il supporto TLS/SSL per la connessione client.
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Decommentare la riga 439 per abilitare TLS.
TLS 1
Decommenta la riga 449 e aggiungi una nuova opzione per renderla più sicura.
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
Decommentare la riga 445 per definire il file del certificato.
CertFile /etc/ssl/private/pure-ftpd.pem
Salva ed esci.
Ora avvia pure-ftpd con il comando systemctl:
systemctl start pure-ftpd
Fase 4 - Configura utenti virtuali
Pure-FTPd fornisce funzionalità per creare e utilizzare utenti virtuali anziché utenti del sistema reale (Linux). Pure-FTPd fornisce diversi backend di autenticazione e la configurazione dell'utente virtuale dipende dal backend utilizzato dal server. Nel passaggio 2 abbiamo impostato 'PureDB' come backend.
Possiamo creare un nuovo utente virtuale con il comando 'pure-pw' fornito da pure-ftpd. In questo passaggio, creeremo un nuovo utente virtuale chiamato 'shiro' con la directory '/srv/ftp/shiro' come directory home ftp e l'utente sarà chroot in 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 nel master 'Utente FTP'.
mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiro
Successivamente, dobbiamo salvare le modifiche con il comando seguente:
pure-pw mkdb
Ora l'utente shiro è pronto per essere utilizzato, possiamo utilizzare FTPp 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.
Fase 5 - Test
Userò il comando FTP nel terminale per il test. Apri il tuo terminale e digita "ftp":
ftp
Quindi inserisci l'ip del server ftpd puro:
open 192.168.43.69
Accedi con l'utente 'shiro' e la password, quindi premi 'Invio'.
Prova a caricare il file con il comando 'put':
put picture.png mypict.png
Ora vedrai il file mypict.png sul server con il comando ls di seguito:
ls