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

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

FTP è un protocollo ampiamente utilizzato per il trasferimento di file tra server e client. Ci sono molti server FTP open source disponibili ora al giorno, inclusi FTPD, VSFTPD, PROFTPD e pureftpd. Tra questi, VSFTPD è un protocollo sicuro, veloce e più utilizzato in tutto il mondo. Viene anche chiamato "Very Secure File Transfer Protocol Daemon". Supporta anche SSL, IPv6, FTPS esplicito e implicito.

In questo tutorial, ti mostreremo come installare VSFTPD sul server CentOS 8 e proteggerlo con SSL/TLS.

Prerequisiti

  • Un server che esegue CentOS 8.
  • Sul tuo server è configurata una password di root.

Installa VSFTPD

Per impostazione predefinita, VSFTPD è disponibile nel repository predefinito di CentOS 8. Puoi installarlo eseguendo il seguente comando:

dnf install vsftpd -y

Una volta completata l'installazione, avvia il servizio VSFTPD e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:

systemctl start vsftpd
systemctl enable vsftpd

A questo punto, il tuo server VSFTPD è installato e funzionante. Ora puoi procedere al passaggio successivo.

Crea un utente per VSFTPD

Successivamente, dovrai creare un nuovo utente per VSFTPD. Quindi puoi accedere al tuo server FTP utilizzando questo utente.

Esegui il comando seguente per creare un nuovo utente chiamato vyom come mostrato di seguito:

adduser vyom

Quindi, imposta la password per un utente vyom con il seguente comando:

passwd vyom

Una volta terminato, puoi procedere al passaggio successivo.

Configura VSFTPD

Quindi, apri il file di configurazione predefinito di VSFTPD che si trova nella directory /etc/vsftpd come mostrato di seguito:

nano /etc/vsftpd/vsftpd.conf

Modifica le seguenti righe:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=NO

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio VSFTPD e verifica lo stato del servizio con il comando seguente:

systemctl restart vsftpd
systemctl status vsftpd

Dovresti vedere il seguente output:

? vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-21 00:43:57 EST; 6s ago
  Process: 2698 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 2699 (vsftpd)
    Tasks: 1 (limit: 6102)
   Memory: 1020.0K
   CGroup: /system.slice/vsftpd.service
           ??2699 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Feb 21 00:43:57 centos8 systemd[1]: Stopped Vsftpd ftp daemon.
Feb 21 00:43:57 centos8 systemd[1]: Starting Vsftpd ftp daemon...
Feb 21 00:43:57 centos8 systemd[1]: Started Vsftpd ftp daemon.

A questo punto, il tuo server VSFTPD è configurato. Ora puoi procedere a tutto il VSFTPD tramite SELinux e firewall.

Configura Firewall e SELInux

Per impostazione predefinita, SELinux è abilitato in CentOS 8. Quindi dovrai configurare SELinux per VSFTPD.

È possibile configurare SELinux per consentire l'accesso FTP con il seguente comando:

setsebool -P allow_ftpd_full_access=1

Successivamente, dovrai consentire il servizio FTP tramite firewalld. Puoi consentirlo con il seguente comando:

firewall-cmd --zone=public --permanent --add-service=ftp

Quindi, ricarica il servizio firewalld per applicare le modifiche alla configurazione del firewall:

firewall-cmd --reload

A questo punto, il firewall e SELinux sono configurati per consentire la connessione FTP in entrata dal sistema remoto. Ora puoi procedere con il test della connessione FTP.

Connetti al server VSFTPD

Il tuo server VSFTPD è ora installato e configurato. Ora è il momento di connettere il server FTP dal sistema client.

Per farlo, vai al sistema Client ed esegui il seguente comando per connettere il tuo server FTP:

ftp 172.20.10.3

Ti verrà chiesto di fornire il tuo utente FTP e la password come mostrato di seguito:

Connected to 172.20.10.3.
220 (vsFTPd 3.0.3)
Name (172.20.10.3:root): vyom
331 Please specify the password.
Password:
230 Login successful.

Una volta che la connessione è stata stabilita correttamente, dovresti vedere il seguente output:

Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Ora, digita exit e premi il pulsante Invio per uscire dalle sessioni FTP.

Configura VSFTPD con supporto TLS

Per motivi di sicurezza, è una buona idea crittografare le trasmissioni FTP con SSL/TLS. Per farlo, dovrai generare un certificato SSL e configurare il server VSFTPD per usarlo.

Innanzitutto, dovrai installare il pacchetto OpenSSL nel tuo sistema. Puoi installarlo con il seguente comando:

dnf install openssl -y

Una volta installato, crea una nuova directory in cui archiviare il certificato SSL:

mkdir /etc/ssl/private

Quindi, genera un certificato autofirmato con il seguente comando:

openssl req -newkey rsa:2048 -nodes -keyout /etc/ssl/private/vsftpd.key -x509 -days 365 -out /etc/ssl/private/vsftpd.crt

Fornisci tutte le informazioni richieste come mostrato di seguito:

Generating a RSA private key
...+++++
...........+++++
writing new private key to '/etc/ssl/private/vsftpd.key'
-----
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]:IN
State or Province Name (full name) []:GUJ
Locality Name (eg, city) [Default City]:JUN
Organization Name (eg, company) [Default Company Ltd]:IT
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:ftpserver
Email Address []:[email protected]

Dopo aver generato il certificato SSL, dovrai configurare VSFTPD per utilizzare questo certificato.

Apri il file di configurazione predefinito VSFTPD come mostrato di seguito:

nano /etc/vsftpd/vsftpd.conf

Aggiungi le seguenti righe alla fine del file:

#Path of the SSL certificate
rsa_cert_file=/etc/ssl/private/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
#Enable the SSL
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
#TSL is more secure than SSL so enable ssl_tlsv1_2.
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
#Enable SSL debugging to store all VSFTPD log.
debug_ssl=YES

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio VSFTPD per applicare le modifiche:

systemctl restart vsftpd

A questo punto, il tuo server VSFTPD è configurato per utilizzare un certificato SSL. Ora puoi procedere al passaggio successivo.

Verifica connessione TLS VSFTPD

Il tuo server VSFTPD è ora protetto con il supporto SSL/TLS. Quindi, prova a connettere il tuo server FTP dalla riga di comando come mostrato di seguito:

ftp 172.20.10.3

Dovresti visualizzare l'errore nel  seguente output:

Connected to 172.20.10.3.
220 (vsFTPd 3.0.2)
Name (172.20.10.3:root): vyom
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp> 

Non è possibile connettersi al server VSFTP dal client della riga di comando. Perché non supporta il supporto SSL/TLS.

Quindi dovrai scaricare e testare la connessione VSFTPD utilizzando un client FTP che supporta le connessioni TLS.

Per fare ciò, vai al Sistema client e installa il pacchetto client FileZilla.

Dopo aver installato FileZilla, apri il software FileZilla come mostrato di seguito:

Quindi, apri Site Manager come mostrato di seguito:

Fai clic su Nuovo sito pulsante per aggiungere una nuova connessione FTP come mostrato di seguito:

Fornisci l'IP del tuo server FTP, Seleziona il protocollo FTP, Seleziona "Usa FTP esplicito su TLS", Seleziona Richiedi password, fornisci il nome utente del tuo server FTP e fai clic su Connetti pulsante. Ti verrà chiesto di fornire la password dell'utente FTP come mostrato di seguito:

Fornisci la tua password FTP e fai clic su OK pulsante. Ti verrà chiesto di verificare il certificato utilizzato per la connessione SSL/TLS come mostrato di seguito:

Fare clic su OK pulsante per verificare il certificato. Una volta che la connessione è stata stabilita correttamente, dovresti vedere la seguente schermata:

Conclusione

Nella guida sopra, abbiamo installato il server VSFTPD su CentOS 8. Abbiamo anche configurato il server VSFTPD per utilizzare il certificato SSL/TLS. Il tuo server FTP è ora protetto. Sentiti libero di chiedermi se hai domande.


Cent OS
  1. Come installare e configurare un server FTP (vsftpd) con SSL/TLS su Ubuntu 20.04

  2. Come installare il server FTP vsftpd e proteggerlo con TLS su Debian 11

  3. Come installare un server FTP su CentOS 7

  4. Installa Vsftpd con SSL/TLS su Ubuntu 20.04

  5. Come installare il server FTP su CentOS 7

Come installare il server FTP vsftpd con TLS su Debian 10

Come installare il server VsFTPD con TLS su Ubuntu 18.04 LTS

Come installare VSFTPD su CentOS 7

Come installare LetsEncrypt SSL con Nginx su CentOS 6

Come installare il server FTP su CentOS 8

Come installare un server FTP?