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


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

Edellisessä artikkelissamme olemme selittäneet, kuinka FOS-palvelin asennetaan, konfiguroidaan ja suojataan CentOS/RHEL 7 -tietokoneessa tiedostojen siirtämistä varten asiakkaan ja palvelimen välillä tietokoneverkossa.

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

Asenna FTP-palvelin RHEL 8: een

1. Asenna suojattu FTP-paketti seuraavalla dnf-komennolla.

# dnf install vsftpd

2. Kun asennus on valmis, sinun on käynnistettävä vsftpd-palvelu sillä välin, sallittava sen käynnistyminen automaattisesti järjestelmän käynnistyksen yhteydessä ja tarkistaa sitten 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 FTP-palveluihin pääsee 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: lla

4. FTP-palvelimen määrittämiseksi sinun on tehtävä varmuuskopio FTP-kokoonpanotiedostosta /etc/vsftpd/vsftpd.conf seuraavaa kopiointikomentoa käyttämällä.

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

5. Avaa sitten määritystiedosto suosikkikomentorivieditorilla.

# vi /etc/vsftpd/vsftpd.conf

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

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/estämään käyttäjien pääsy FTP-palveluihin käyttäjäluettelotiedoston /etc/vsftpd.userlist perusteella.

Oletusarvon mukaan /etc/vsftpd.userlist -tiedostossa luetelluilta käyttäjiltä evätään pääsy userlist_deny -asetukseksi, joka on asetettu YES , jos userlist_enable = KYLLÄ , se mahdollistaa pääsyn.

Mutta 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ää sen vuoksi seuraavat rivit vsftpd.conf -määritystiedostoon (tai jos sellaisia on jo olemassa, poista niistä kommentit 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ääritystiedostoon rajoittaaksesi FTP-käyttäjien kotihakemistoihin.

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. Määritä seuraava SELinux-looginen 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, jotta se vaikuttaa kaikkiin yllä tekemiinne muutoksiin:

# systemctl restart vsftpd

FTP-palvelimen testaaminen RHEL 8: lla

10. Voit testata, toimiiko yllä oleva FTP-asennus hyvin, aloittamalla luomalla 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än tecmint tiedostoon /etc/vsftpd.userlist käyttämällä kaiku-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 todennäköisesti erilainen) ja aseta tarvittavat oikeudet tähän hakemistoon.

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

13. Luo seuraavaksi paikallisen juuripaikan sisään hakemisto, jossa käyttäjän tulee säilyttää tiedostojaan.

# 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 
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 kuvattiin, kuinka FTP-palvelin asennetaan, konfiguroidaan ja suojataan RHEL 8: ssa. Seuraavassa artikkelissamme näytetään, kuinka FTP-palvelin voidaan suojata SSL/TLS-yhteyksillä. Siihen asti, pysy kanssamme.