Obiettivo
L'obiettivo è innanzitutto configurare un server ProFTPD di base su CentOS 7. Una volta che avremo una configurazione di base del server FTP, aggiungeremo la modalità passiva FTP e aumenteremo la sicurezza aggiungendo Transport Layer Security (TLS).
Infine, aggiungiamo una configurazione anonima opzionale per consentire all'utente anonimo di accedere al server FTP senza nome utente e password.
Sistema operativo e versioni software
- Sistema operativo: – CentOS Linux versione 7.5.1804
- Software: – ProFTPD versione 1.3.5e
Requisiti
Accesso privilegiato al tuo sistema Ubuntu come root o tramite sudo
comando è richiesto.
Difficoltà
MEDIO
Convenzioni
- # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando
sudo
comando - $ – dati comandi linux da eseguire come un normale utente non privilegiato
Istruzioni
Configurazione FTP di base
Iniziamo con l'installazione e la configurazione di base del server ProFTP. Ciò include l'installazione, la definizione delle regole del firewall e il test del client.
Configurazione del server
Il server FTP ProFTPD fa parte di un repository EPEL. Pertanto, il primo passo è abilitare il repository EPEL e quindi installare il server ProFTPD:
# yum install epel-release # yum install proftpd
Quindi, avvia il server ProFTPD e conferma il suo corretto avvio controllando una porta aperta 21
# service proftpd start # ss -nlt
Successivamente, dobbiamo inserire un intero nel firewall del server per consentire il traffico in entrata sulla porta 21
# firewall-cmd --add-port=21/tcp --permanent # firewall-cmd --reload
Per confermare una porta in entrata aperta 21
eseguire:
# firewall-cmd --list-portsConfigurazione del server FTP Basig utilizzando ProFTPD su CentOS 7
In questa fase qualsiasi utente del sistema esistente è in grado di accedere tramite FTP al server ProFTPD appena configurato. Opzionalmente possiamo creare un nuovo utente ad es. lubos
con accesso alla directory /var/ftp-share
:
# useradd lubos -s /sbin/nologin -d /var/ftp-share # passwd lubos # chmod -R 750 /var/ftp-share # setsebool -P allow_ftpd_full_access=1
Connessione client
A questo punto dovremmo essere in grado di eseguire una connessione FTP da un computer client remoto. Il test più semplice è usare ftp
comando.
Dato che il nostro server ProFTPD può essere risolto tramite ftp.linuxconfig.org
nome host e utente lubos
esiste esegui:
$ ftp ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 230 User lubos logged in Remote system type is UNIX. Using binary mode to transfer files. ftp>NOTA:Si prega di notare che a questo punto siamo solo in grado di effettuare solo “Connessioni FTP attive”! Qualsiasi tentativo di creare una "connessione FTP passiva" avrà esito negativo.
Configurazione FTP in modalità passiva
Configurazione del server
Per consentire al nostro server FTP di accettare anche connessioni FTP passive, eseguire i seguenti comandi per abilitare le connessioni passive sull'intervallo di porte effimere registrate IANA:
echo "PassivePorts 49152 65534" >> /etc/proftpd.conf
Riavvia il server ProFTPD:
# service proftpd restart
Apri il firewall per le porte nell'intervallo 49152-65534
:
# firewall-cmd --add-port=49152-65534/tcp --permanent # firewall-cmd --reload
Conferma che le porte sono state aperte correttamente:
# firewall-cmd --list-portsConfigura il server ProFTPD per ricevere connessioni FTP passive.
Connessione client FTP
Come prima ora possiamo testare la connessione passiva FTP usando il ftp
comando. Assicurati di utilizzare questa volta il -p
opzione come mostrato di seguito:
$ ftp -p ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 230 User lubos logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,1,111,209,252). 150 Opening ASCII mode data connection for file list 226 Transfer complete ftp>
Tutto funziona come previsto!
Server FTP sicuro con TLS
Configurazione del server
Nel caso in cui prevedi di utilizzare il tuo server FTP al di fuori della tua rete locale, si consiglia di utilizzare una sorta di crittografia. Fortunatamente, configurare ProFTPD con TLS è estremamente semplice. Per prima cosa, se non è già disponibile, installa openssl
pacchetto:
# yum install openssl
Quindi, crea un certificato utilizzando il comando seguente. L'unico valore richiesto è Common Name
che è il nome host del tuo server FTP :
# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem Generating a 1024 bit RSA private key ...++++++ .......++++++ writing new private key to '/etc/pki/tls/certs/proftpd.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:ftp.linuxconfig.org Email Address []:
Quindi, come utente root, apri /etc/sysconfig/proftpd
utilizzando il tuo editor di testo preferito e modifica:
FROM: PROFTPD_OPTIONS="" TO: PROFTPD_OPTIONS="-DTLS"
Una volta pronto, riavvia il server ProFTPD:
# service proftpd restart
Connessione client
Questa volta utilizziamo FileZilla come nostro client di test FTP:
Crea una nuova connessione FTP. Per testare TLS assicurati di selezionare unaEncryption
corretta e Logon Type
. Il client FTP ti avviserà del Unknown Certificate
. Spunta Always Trust
e premi OK
. Connessione crittografata TLS riuscita. Configura utente FTP anonimo
Configurazione del server
Per consentire a un utente anonimo di accedere al server FTP, aprire /etc/sysconfig/proftpd
utilizzando il tuo editor di testo preferito e modifica:
FROM: PROFTPD_OPTIONS="-DTLS" TO: PROFTPD_OPTIONS="-DTLS -DANONYMOUS_FTP"
Sopra assumiamo che tu abbia già abilitato TLS in precedenza. Quando è pronto, riavvia il server FTP:
# service proftpd restart
Connessione client
Utilizzo di FileZilla come client di test FTP:
ComeLogon Type
seleziona Anonymous
Connessione FTP anonima riuscita. Appendice
Blocca/rifiuta l'accesso FTP dell'utente
Nel caso sia necessario bloccare/rifiutare l'accesso al server FTP di qualsiasi utente del sistema, aggiungere il suo nome utente in /etc/ftpusers
. Un nome utente per riga. In questo modo, qualsiasi tentativo di accesso da parte dell'utente fallirà con 530
errore di accesso:
$ ftp ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 530 Login incorrect. Login failed. Remote system type is UNIX. Using binary mode to transfer files. ftp>