FTP-palvelimen asentaminen, määrittäminen ja suojaaminen CentOS 7: ssä - [Kattava opas]
FTP (File Transfer Protocol) on perinteinen ja laajasti käytetty vakiotyökalu tiedostojen siirtämiseen palvelimen ja asiakkaiden välillä verkon kautta, varsinkin kun todentamista ei tarvita (sallii nimettömien käyttäjien muodostaa yhteyden palvelimeen). Meidän on ymmärrettävä, että FTP on oletusarvoisesti suojaamaton, koska se lähettää käyttäjän tunnistetietoja ja tietoja ilman salausta.
Tässä oppaassa kuvataan vaiheet FTP-palvelimen asentamiseksi, määrittämiseksi ja suojaamiseksi (VSFTPD tarkoittaa "erittäin turvallista FTP-demonia") CentOS/RHEL 7- ja Fedora-jakelussa.
Huomaa, että kaikki tämän oppaan komennot suoritetaan pääkäyttäjänä, jos et käytä palvelinta juuritilillä, hanki root-oikeudet sudo-komennolla.
Vaihe 1: FTP-palvelimen asentaminen
1. vsftpd-palvelimen asennus on suoraviivaista, suorita seuraava komento terminaalissa.
# yum install vsftpd
2. Kun asennus on valmis, palvelu poistetaan käytöstä ensin, joten meidän on käynnistettävä se toistaiseksi manuaalisesti ja sallittava se käynnistää automaattisesti myös seuraavasta järjestelmän käynnistyksestä:
# systemctl start vsftpd # systemctl enable vsftpd
3. Seuraavaksi, jotta voimme sallia pääsyn FTP-palveluihin ulkoisista järjestelmistä, meidän on avattava portti 21, jossa FTP-demonit kuuntelevat seuraavasti:
# firewall-cmd --zone=public --permanent --add-port=21/tcp # firewall-cmd --zone=public --permanent --add-service=ftp # firewall-cmd --reload
Vaihe 2: FTP-palvelimen määritys
4. Nyt siirrymme suorittamaan muutaman kokoonpanon FTP-palvelimen asentamiseksi ja suojaamiseksi. Aloitetaan tekemällä varmuuskopio alkuperäisestä asetustiedostosta /etc/vsftpd/vsftpd.conf:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
Avaa seuraavaksi yllä oleva määritystiedosto ja aseta seuraavat asetukset näillä vastaavilla arvoilla:
anonymous_enable=NO # disable anonymous login local_enable=YES # permit local logins write_enable=YES # enable FTP commands which change the filesystem local_umask=022 # value of umask for file creation for local users dirmessage_enable=YES # enable showing of messages when users first enter a new directory xferlog_enable=YES # a log file will be maintained detailing uploads and downloads connect_from_port_20=YES # use port 20 (ftp-data) on the server machine for PORT style connections xferlog_std_format=YES # keep standard log file format listen=NO # prevent vsftpd from running in standalone mode listen_ipv6=YES # vsftpd will listen on an IPv6 socket instead of an IPv4 one pam_service_name=vsftpd # name of the PAM service vsftpd will use userlist_enable=YES # enable vsftpd to load a list of usernames tcp_wrappers=YES # turn on tcp wrappers
5. Määritä nyt FTP sallimaan/estämään FTP-käyttö käyttäjille käyttäjäluettelotiedoston /etc/vsftpd.userlist
perusteella.
Oletusarvon mukaan userlist_file =/etc/vsftpd.userlist
-luettelossa luetelluilta käyttäjiltä evätään sisäänkirjautumisoikeudet, kun userlist_deny-asetuksena on YES, jos userlist_enable = YES.
Userlist_deny = EI muuttaa asetusta, mikä tarkoittaa, että vain käyttäjät, jotka on nimenomaisesti lueteltu userlist_file =/etc/vsftpd.userlist -palvelussa, voivat kirjautua sisään.
userlist_enable=YES # vsftpd will load a list of usernames, from the filename given by userlist_file userlist_file=/etc/vsftpd.userlist # stores usernames. userlist_deny=NO
Tämä ei ole kaikki, kun käyttäjät kirjautuvat FTP-palvelimelle, heidät asetetaan chroot’ed-vankilaan, tämä on paikallinen juurihakemisto, joka toimii heidän kotihakemistona vain FTP-istunnossa.
Seuraavaksi tarkastellaan kahta mahdollista skenaariota siitä, miten FTP-käyttäjät voidaan chroottaa FTP-käyttäjien kotihakemistoihin (paikallinen juurihakemisto), kuten alla selitetään.
6. Lisää nyt nämä kaksi seuraavaa vaihtoehtoa rajoittaa FTP-käyttäjien kotihakemistoihin.
chroot_local_user=YES allow_writeable_chroot=YES
chroot_local_user = KYLLÄ tarkoittaa, että paikalliset käyttäjät sijoitetaan chroot-vankilaan, heidän kotihakemistoonsa sisäänkirjautumisen jälkeen oletusasetuksilla.
Ja myös oletusarvoisesti vsftpd ei salli chroot-vankilahakemiston kirjoittamista turvallisuussyistä, mutta voimme kuitenkin käyttää asetusta allow_writeable_chroot = YES tämän asetuksen ohittamiseen.
Tallenna tiedosto ja sulje se.
FTP-palvelimen suojaaminen SELinuxilla
7. Nyt asetetaan alla oleva SELinux-totuusarvo sallimaan FTP: n lukea käyttäjän kotihakemiston tiedostoja. Huomaa, että tämä tehtiin alun perin komennolla:
# setsebool -P ftp_home_dir on
ftp_home_dir
-direktiivi on kuitenkin oletusarvoisesti poistettu käytöstä, kuten tässä virheraportissa selitetään: https://bugzilla.redhat.com/show_bug.cgi?id=1097775.
Nyt käytämme semanage-komentoa asettamaan SELinux-säännön sallimaan FTP: n lukea/kirjoittaa käyttäjän kotihakemistoa.
# semanage boolean -m ftpd_full_access --on
Tässä vaiheessa meidän on käynnistettävä vsftpd uudelleen, jotta voimme tehdä kaikki tähän mennessä tekemämme muutokset:
# systemctl restart vsftpd
Vaihe 4: FTP-palvelimen testaus
8. Nyt testataan FTP-palvelin luomalla FTP-käyttäjä useradd -komennolla.
# useradd -m -c “Ravi Saive, CEO” -s /bin/bash ravi # passwd ravi
Myöhemmin meidän on lisättävä käyttäjän ravi tiedostoon /etc/vsftpd.userlist käyttämällä echo-komentoa seuraavasti:
# echo "ravi" | tee -a /etc/vsftpd.userlist # cat /etc/vsftpd.userlist
9. Nyt on aika testata, toimivatko yllä olevat asetuksemme oikein. Aloitetaan testaamalla anonyymit kirjautumistiedot. Näemme alla olevasta kuvakaappauksesta, että nimettömiä kirjautumisia ei sallita:
# ftp 192.168.56.10 Connected to 192.168.56.10 (192.168.56.10). 220 Welcome to TecMint.com FTP service. Name (192.168.56.10:root) : anonymous 530 Permission denied. Login failed. ftp>
10. Testataan myös, saako käyttäjälle, jota ei ole luettelossa /etc/vsftpd.userlist, kirjautumisoikeus, mikä ei ole asia kuten alla olevassa kuvakaappauksessa:
# ftp 192.168.56.10 Connected to 192.168.56.10 (192.168.56.10). 220 Welcome to TecMint.com FTP service. Name (192.168.56.10:root) : aaronkilik 530 Permission denied. Login failed. ftp>
11. Tarkista nyt, onko tiedostossa /etc/vsftpd.userlist lueteltu käyttäjä todella sijoitettu kotihakemistoonsa kirjautumisen jälkeen:
# ftp 192.168.56.10 Connected to 192.168.56.10 (192.168.56.10). 220 Welcome to TecMint.com FTP service. Name (192.168.56.10:root) : ravi 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls
Aktivoi tämä vaihtoehto vain, jos tiedät tarkalleen mitä olet tekemässä. On tärkeää huomata, että nämä turvallisuusvaikutukset eivät ole spesifisiä vsftpd: lle, vaan ne koskevat kaikkia FTP-demoneja, jotka tarjoavat paikallisten käyttäjien asettamista myös chroot-vankiloihin.
Siksi tarkastelemme turvallisempaa tapaa asettaa erilainen ei-kirjoitettava paikallinen juurihakemisto seuraavassa osassa.
Vaihe 5: Määritä eri FTP-käyttäjien kotihakemistot
12. Avaa vsftpd-määritystiedosto uudelleen ja aloita kommentoimalla alla olevaa suojaamatonta vaihtoehtoa:
#allow_writeable_chroot=YES
Luo sitten vaihtoehtoinen paikallinen juurihakemisto käyttäjälle ( ravi
, sinun on todennäköisesti erilainen) ja poista kirjoitusoikeudet kaikille tämän hakemiston käyttäjille:
# mkdir /home/ravi/ftp # chown nobody:nobody /home/ravi/ftp # chmod a-w /home/ravi/ftp
13. Luo seuraavaksi paikallisen juuren alle hakemisto, johon käyttäjä tallentaa tiedostot:
# mkdir /home/ravi/ftp/files # chown ravi:ravi /home/ravi/ftp/files # chmod 0700 /home/ravi/ftp/files/
Lisää/muokkaa sitten seuraavia asetuksia vsftpd-määritystiedostossa näillä arvoilla:
user_sub_token=$USER # inserts the username in the local root directory local_root=/home/$USER/ftp # defines any users local root directory
Tallenna tiedosto ja sulje se. Käynnistetään jälleen palvelu uudella asetuksella:
# systemctl restart vsftpd
14. Tee nyt viimeinen testi uudelleen ja huomaa, että käyttäjien paikallinen juurihakemisto on FTP-hakemisto, jonka loimme hänen kotihakemistoonsa.
# ftp 192.168.56.10 Connected to 192.168.56.10 (192.168.56.10). 220 Welcome to TecMint.com FTP service. Name (192.168.56.10:root) : ravi 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 CentOS 7: ssä, käytä alla olevaa kommenttiosaa kirjoittaaksesi meille takaisin tästä oppaasta/jakaaksesi hyödyllisiä tietoja tästä aiheesta.
Seuraavassa artikkelissa näytämme myös, kuinka FTP-palvelin voidaan suojata SSL/TLS-yhteyksillä CentOS 7: ssä, kunnes olet pysynyt yhteydessä TecMintiin.