GNU/Linux >> Linux Esercitazione >  >> Cent OS

Configurazione sicura del server ProFTPD su CentOS 7 con TLS

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-ports

Configurazione 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-ports

Configura 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 una Encryption 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:

Come Logon 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>

Cent OS
  1. Come installare un server FTP su CentOS 7 con VSFTPD

  2. Come configurare il server FTP con VSFTPD su Ubuntu 20.04

  3. Server ProFTPD

  4. Configura il server VPN IPSec con Libreswan su CentOS 8

  5. Come installare un server FTP su CentOS 7

Come installare il server FTP vsftpd con SSL/TLS su CentOS 8

Come installare ProFTPD con TLS su CentOS 7.2

Come proteggere il server CentOS 7 con ModSecurity

Come configurare il server di backup centralizzato con Amanda su CentOS 7

Come impostare e configurare il server FTP su CentOS

Come configurare un server FTP con ProFTPD in Ubuntu 18.04