Questo tutorial descrive l'installazione e la configurazione di ProFTPD su un server CentOS 7.2. ProFTPD è un demone FTP per sistemi operativi Unix e Linux e distribuito sotto GNU Public License (GPL).
1 Nota preliminare
Questo tutorial è basato su un server CentOS, quindi dovresti configurare un'installazione di base del server CentOS 7.2 prima di continuare con questo tutorial. Il sistema dovrebbe avere un indirizzo IP statico. Uso 192.168.1.100 come indirizzo IP in questo tutorial e server1.example.com come nome host.
2 Installa e configura ProFTPD
2.1 Installazione:
Abbiamo bisogno del software dal repository EPEL, abilitalo come segue:
yum -y install epel-release
Quindi importa la chiave EPEL GPG:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
e aggiorna i pacchetti:
yum -y update
Installeremo ProFTPD e OpenSSL come segue:
yum install -y proftpd openssl proftpd-utils
Dobbiamo avviare il servizio e abilitarlo per l'avvio automatico all'avvio.
systemctl start proftpd.service
systemctl enable proftpd.service
Se hai installato firewalld, configura il firewall con firewall-cmd per aprire la porta FTP:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
Possiamo controllare la versione di ProFTPD come segue:
proftpd -v[[email protetta] ~]# proftpd -v
ProFTPD versione 1.3.5b
[[email protetta] ~]#
2.2 Creazione di utenti ProFTPD
Creerò un gruppo ftpgroup e un utente tom per ProFTPD. Imposterò /ftpshare come home directory per l'utente tom.
groupadd ftpgroup
Successivamente aggiungerò l'utente srijan in ftpgroup:
useradd -G ftpgroup tom -s /sbin/nologin -d /ftpshare
passwd tom
[[email protected] ~]# passwd tom
Changing password for user srijan.
New password: <--ftppassword
Retype new password: <--ftppassword
passwd: all authentication tokens updated successfully.
[[email protected] ~]#
Imposta i permessi per la directory ftpshare:
chmod -R 1750 /ftpshare/
Ora siamo pronti per la connessione ProFTPD. Ma le connessioni non sono ancora crittografate, lo risolveremo nel prossimo capitolo.
3 Abilitazione di TLS in ProFTPD
Per abilitare TLS in ProFTPD, aprire /etc/proftpd/proftpd.conf. Prima di modificare il file, è meglio eseguire il backup del file originale e quindi modificare il file con nano.
cp -pf /etc/proftpd.conf /etc/proftpd.conf.bak
nano /etc/proftpd.conf
Aggiungi e modifica le linee come mostrato in rosso.
[...]
DefaultRoot ~ !adm PassivePorts 6000 6100
[...]
#<IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine>
[...]
Ho aggiunto 6000 e 6100 porte per consentire la modalità passiva di ftp, allo stesso modo consentirò la modalità passiva tramite il servizio firewalld CentOS come segue:
firewall-cmd --add-port=6000-6100/tcp --permanent
firewall-cmd --reload
Possiamo controllare lo stato delle porte come segue:
firewall-cmd --list-ports
[[email protected] ~]# firewall-cmd --list-ports
6000-6100/tcp
[[email protected] ~]#
Inoltre, dobbiamo dire a SELINUX di consentire la lettura/scrittura dei file.
setsebool -P allow_ftpd_full_access=1
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creerò in /etc/pki/tls/certs, possiamo generare il certificato SSL come segue:
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
[[email protected] certs]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Generazione di una chiave privata RSA a 1024 bit
....................................+++ +++
.........++++++
scrittura di una nuova chiave privata in '/etc/pki/tls/certs/proftpd.pem'
- ----
Stai per essere chiesto di inserire le informazioni che saranno incorporate
nella tua richiesta di certificato.
Quello che stai per inserire è quello che viene chiamato Distinguished Name o DN .
Ci sono alcuni campi ma puoi lasciare alcuni campi vuoti
Per alcuni campi ci sarà un valore predefinito,
Se inserisci '.', il campo verrà lasciato vuoto.
-----
Nome del paese (codice di 2 lettere) [XX]:<--DE
Nome dello stato o della provincia (nome completo) []:<-- Amburgo
Nome località (ad es. città) [Città predefinita]: <-- Luneberg
Nome dell'organizzazione (ad es. azienda) [Default Company Ltd]:<-- Howtoforge
Nome dell'unità organizzativa (ad es. sezione) []:<-- Sviluppo
Nome comune (ad es. il tuo nome o il nome host del tuo server) []:<-- server1.example.com
Indirizzo e-mail []:<-- [email protetta]
[[email protected] certs]#
Dai i valori sopra in rosso secondo la tua scelta, ho appena fornito un esempio.
Ora, per motivi di sicurezza, renderò i certificati leggibili solo come segue:
chmod 0440 /etc/pki/tls/certs/proftpd.pem
Infine riavvia il servizio ProFTPD come segue:
systemctl restart proftpd.service
Possiamo connetterci al server ProFTPD con il software Filezilla, è necessario che Filezilla sia installato sul computer client per connettersi al server. Apri Filezilla e fornisci i dettagli come segue:
I dettagli saranno:
Host =192.168.1.100
Protocollo =FTP
Utente = tom
Porta =può essere vuoto se non l'hai personalizzata con un'altra porta diversa da 21
Password =ftppassword (appena creata sopra)
Nota:poiché abbiamo crittografato la nostra connessione nel passaggio precedente, utilizzeremo la crittografia con Richiedi FTP esplicito su TLS
Se non hai configurato TLS, puoi utilizzare Usa FTP semplice
Chiederà di fidarsi del certificato, premere OK
Sarà connesso alla directory condivisa FTP con connessione TLS.
4 Accesso ftp anonimo in ProFTPD
Possiamo creare un account ftp anonimo in ProFTPD, basta aggiungere queste righe nel file di configurazione di ProFTPD:
nano /etc/proftpd.conf
E aggiungi queste righe alla fine del file.
[...]
###Anonymous share##### <Anonymous ~ftp> User ftp Group ftp UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
Ora dobbiamo riavviare il servizio FTP:
systemctl restart proftpd.service
Ora connettiti tramite Filezilla all'account anon come segue:
Nota:poiché abbiamo crittografato la nostra connessione nel passaggio precedente, utilizzeremo la crittografia con Richiedi FTP esplicito su TLS
Se non hai configurato TLS, puoi utilizzare Usa FTP semplice
Premi Connetti.
Siamo collegati correttamente al server con un utente anonimo.
Congratulazioni! Ora abbiamo configurato correttamente l'ambiente del server ProFTPD in CentOS 7.2 :)
5 link
- CentOS:http://www.centos.org/
- ProFTPD:http://www.proftpd.org/