Ricerca nel sito web

Come installare, configurare e proteggere il server FTP in RHEL 8


FTP (sta per “File Transfer Protocol”) è un vecchio e standard protocollo di rete utilizzato per il trasferimento di file tra un client e un server su una rete di computer. È costruito su un'architettura modello client-server, che offre accesso a file e directory tramite un client FTP, per caricare file sul server e scaricare file da esso.

Nel nostro articolo precedente, abbiamo spiegato come installare, configurare e proteggere il server FTP in CentOS/RHEL 7 per il trasferimento di file di computer tra un client e un server su una rete di computer.

In questo articolo descriveremo come installare, configurare e proteggere un server FTP su RHEL 8 per la condivisione di file di base tra computer.

Installa il server FTP su RHEL 8

1. Per installare il pacchetto FTP sicuro, utilizza il seguente comando dnf.

dnf install vsftpd

2. Una volta completata l'installazione, è necessario avviare temporaneamente il servizio vsftpd, abilitarlo per l'avvio automatico all'avvio del sistema e quindi verificare lo stato utilizzando i seguenti comandi systemctl.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Successivamente, è necessario aprire la porta FTP 21 sul firewall di sistema per consentire l'accesso ai servizi FTP da sistemi esterni.

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload

Configurare il server FTP su RHEL 8

4. Per configurare un server FTP, è necessario eseguire il backup del file di configurazione FTP principale /etc/vsftpd/vsftpd.conf utilizzando il seguente comando di copia.

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

5. Quindi apri il file di configurazione utilizzando il tuo editor della riga di comando preferito.

vi /etc/vsftpd/vsftpd.conf

Imposta i seguenti parametri con questi valori corrispondenti (vedi man vsftpd.conf per il significato dei parametri di configurazione):

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        

6. Successivamente, è necessario configurare FTP per consentire/negare agli utenti l'accesso ai servizi FTP in base al file di elenco utenti /etc/vsftpd.userlist.

Per impostazione predefinita, agli utenti elencati nel file /etc/vsftpd.userlist viene negato l'accesso con l'opzione userlist_deny impostata su YES, se userlist_enable =SI, abilita l'accesso.

Tuttavia, l'impostazione del parametro userlist_deny=NO altera l'impostazione, il che significa che solo gli utenti esplicitamente elencati in userlist_file=/etc/vsftpd.userlist potranno accedere.

Pertanto, aggiungi le seguenti righe nel tuo file di configurazione vsftpd.conf (o se esistono già, decommentale e imposta i loro valori come mostrato):

userlist_enable=YES                   # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames.
userlist_deny=NO   

7. Ora aggiungi le seguenti righe nel tuo file di configurazione vsftpd.conf per limitare gli utenti FTP alle loro directory Home.

chroot_local_user=YES		#means local users will be placed in a chroot jail, their home directory after login by default settings.
user_sub_token=$USER         	
local_root=/home/$USER/ftp   	

Salvare le modifiche nel file e chiuderlo.

8. Imposta la seguente regola booleana SELinux per consentire all'FTP di leggere/scrivere file della directory home dell'utente.

semanage boolean -m ftpd_full_access --on

9. Infine riavvia il servizio vsftpd per applicare tutte le modifiche apportate finora sopra:

systemctl restart vsftpd

Test del server FTP su RHEL 8

10. Per verificare se la configurazione FTP di cui sopra funziona correttamente, inizia creando un utente FTP con il comando useradd e crea una password per quell'utente.

useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint

11. Quindi aggiungi l'utente tecmint al file /etc/vsftpd.userlist utilizzando il comando echo come segue.

echo "tecmint" | tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

12. Quindi crea la directory root locale alternativa per l'utente (tecmint, la tua probabilmente è diversa) e imposta le autorizzazioni appropriate su questa directory.

mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp

13. Successivamente, crea una directory all'interno della posizione root locale, dove l'utente conserverà i propri file.

mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/

14. Ora connettiti al server FTP utilizzando qualsiasi client FTP come segue.

ftp [email 
Uscita del campione
Connected to 192.168.56.100
220 Welcome to TecMint.com FTP service.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Questo è tutto! In questo articolo, abbiamo descritto come installare, configurare e proteggere un server FTP in RHEL 8. Nel nostro prossimo articolo, mostreremo come proteggere il server FTP utilizzando connessioni SSL/TLS. Fino ad allora, resta con noi.