Kuinka asentaa, määrittää ja suojata FTP-palvelin RHEL 8:ssa


FTP (lyhenne sanoista File Transfer Protocol) on standardi ja vanha verkkoprotokolla, jota käytetään tiedostojen siirtämiseen asiakkaan ja palvelimen välillä tietokoneverkossa. Se on rakennettu asiakas-palvelin-malliarkkitehtuurille, joka tarjoaa pääsyn tiedostoihin ja hakemistoihin FTP-asiakkaan kautta tiedostojen lataamiseksi palvelimelle sekä tiedostojen lataamiseksi sieltä.

Edellisessä artikkelissamme olemme selittäneet, kuinka FTP-palvelin asennetaan, määritetään ja suojataan CentOS/RHEL 7:ssä tietokonetiedostojen siirtämiseksi asiakkaan ja tietokoneverkon palvelimen välillä.

Tässä artikkelissa kuvataan, kuinka FTP-palvelin asennetaan, määritetään ja suojataan RHEL 8:ssa tietokoneiden välistä perustiedostojen jakamista varten.

Asenna FTP-palvelin RHEL 8:aan

1. Asenna suojattu FTP-paketti käyttämällä seuraavaa dnf-komentoa.

dnf install vsftpd

2. Kun asennus on valmis, sinun on käynnistettävä vsftpd-palvelu sillä välin, otettava se käyttöön automaattisesti järjestelmän käynnistyksen yhteydessä ja tarkistettava tila seuraavilla systemctl-komennoilla.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Seuraavaksi sinun on avattava FTP-portti 21 järjestelmän palomuurissa, jotta voit käyttää FTP-palveluita ulkoisista järjestelmistä.

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

Määritä FTP-palvelin RHEL 8:ssa

4. FTP-palvelimen määrittämistä varten sinun on varmuuskopioitava pää FTP-määritystiedosto /etc/vsftpd/vsftpd.conf käyttämällä seuraavaa kopiointikomentoa.

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

5. Avaa sitten määritystiedosto suosikkikomentorivieditorillasi.

vi /etc/vsftpd/vsftpd.conf

Aseta seuraavat parametrit näillä vastaavilla arvoilla (katso man vsftpd.conf määritysparametrien merkitykset):

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. Seuraavaksi sinun on määritettävä FTP sallimaan tai estämään käyttäjien pääsy FTP-palveluihin käyttäjäluettelotiedoston /etc/vsftpd.userlist perusteella.

Oletuksena /etc/vsftpd.userlist-tiedostossa lueteltujen käyttäjien pääsy estetään userlist_deny-asetuksen ollessa YES, jos userlist_enable =KYLLÄ, se mahdollistaa pääsyn.

Parametrin userlist_deny=NO asettaminen muuttaa asetusta, mikä tarkoittaa, että vain käyttäjät, jotka on nimenomaisesti lueteltu kohdassa userlist_file=/etc/vsftpd.userlist, voivat kirjautua sisään.

Lisää siksi seuraavat rivit vsftpd.conf-määritystiedostoosi (tai jos ne on jo olemassa, poista ne ja aseta niiden arvot kuvan mukaisesti):

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

7. Lisää nyt seuraavat rivit vsftpd.conf-määritystiedostoosi rajoittaaksesi FTP-käyttäjien kotihakemistoihinsa.

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   	

Tallenna muutokset tiedostoon ja sulje se.

8. Aseta seuraava SELinuxin boolen sääntö, jotta FTP voi lukea/kirjoittaa käyttäjän kotihakemiston tiedostoja.

semanage boolean -m ftpd_full_access --on

9. Käynnistä lopuksi vsftpd-palvelu uudelleen vaikuttaaksesi kaikkiin yllä oleviin muutoksiin:

systemctl restart vsftpd

Testataan FTP-palvelinta RHEL 8:ssa

10. Voit testata, toimiiko yllä oleva FTP-asetus hyvin, luomalla ensin FTP-käyttäjä useradd-komennolla ja luomalla tälle käyttäjälle salasana.

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

11. Lisää sitten käyttäjä tecmint tiedostoon /etc/vsftpd.userlist käyttämällä echo-komentoa seuraavasti.

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

12. Luo sitten vaihtoehtoinen paikallinen juurihakemisto käyttäjälle (tecmint, sinun on luultavasti erilainen) ja määritä tarvittavat käyttöoikeudet tälle hakemistolle.

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

13. Luo seuraavaksi paikalliseen juurisijaintiin hakemisto, jossa käyttäjä säilyttää tiedostonsa.

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

14. Yhdistä nyt FTP-palvelimeen millä tahansa FTP-asiakkaalla seuraavasti.

ftp [email 
Näytelähtö
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

Se siitä! Tässä artikkelissa kuvailimme, kuinka FTP-palvelin asennetaan, määritetään ja suojataan RHEL 8:ssa. Seuraavassa artikkelissamme näytämme, kuinka FTP-palvelin suojataan SSL/TLS-yhteyksillä. Siihen asti, pysy kanssamme.