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.