Kuidas installida, konfigureerida ja turvata FTP-serverit CentOS 7-s - [põhjalik juhend]
FTP (File Transfer Protocol) on traditsiooniline ja laialt kasutatav standardne tööriist failide edastamiseks serveri ja klientide vahel võrgu kaudu, eriti kui autentimine pole vajalik (lubab anonüümsetel kasutajatel serveriga ühendust luua). Peame mõistma, et FTP on vaikimisi ebaturvaline, kuna see edastab kasutaja mandaate ja andmeid krüptimata.
Selles juhendis kirjeldame FTP-serveri (VSFTPD tähendab "väga turvaline FTP-deemon") installimise, konfigureerimise ja turvamise samme CentOS/RHEL 7 ja Fedora jaotustes.
Pange tähele, et kõik selles juhendis olevad käsud käivitatakse juurena, kui te ei kasuta serverit juurkontoga, kasutage juurõiguste saamiseks käsku sudo.
1. samm: FTP-serveri installimine
1. vsftpd serveri installimine on otse edasi, käivitage lihtsalt terminalis järgmine käsk.
# yum install vsftpd
2. Pärast installimise lõppu keelatakse teenus esmalt, nii et peame selle esialgu käsitsi käivitama ja lubama ka järgmisel süsteemi käivitamisel automaatselt käivitada:
# systemctl start vsftpd # systemctl enable vsftpd
3. Järgmisena peame välistest süsteemidest FTP-teenustele juurdepääsu võimaldamiseks avama pordi 21, kus FTP-deemonid kuulavad järgmiselt:
# firewall-cmd --zone=public --permanent --add-port=21/tcp # firewall-cmd --zone=public --permanent --add-service=ftp # firewall-cmd --reload
2. samm: FTP-serveri konfigureerimine
4. Nüüd läheme üle mõne konfiguratsiooni sooritamiseks FTP-serveri seadistamiseks ja turvaliseks muutmiseks, alustades algse konfigureerimisfaili /etc/vsftpd/vsftpd.conf varundamisest:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
Seejärel avage ülaltoodud konfiguratsioonifail ja määrake järgmised valikud nende vastavate väärtustega:
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. Nüüd konfigureerige FTP, et lubada/keelata FTP juurdepääs kasutajatele kasutajaloendifaili /etc/vsftpd.userlist
alusel.
Vaikimisi keelatakse kasutajatel, mis on loetletud userlist_file u003d/etc/vsftpd.userlist
, sisselogimisõigus, kui kasutajanime_deny väärtuseks on seatud YES, kui userlist_enable u003d YES.
Kuid userlist_deny u003d EI muudab seadet, see tähendab, et sisse logida lubatakse ainult kasutajatel_file u003d/etc/vsftpd.userlist selgesõnaliselt loetletud kasutajatel.
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
See pole veel kõik, kui kasutajad FTP-serverisse sisse logivad, paigutatakse nad chroot’ed-vanglasse. See on kohalik juurkataloog, mis toimib nende kodukataloogina ainult FTP-seansi jaoks.
Järgmisena vaatame kahte võimalikku stsenaariumi, kuidas FTP-kasutajaid FTP-kasutajate jaoks kodukataloogidesse (kohalikku juurkataloogi) kataloogida, nagu allpool selgitatud.
6. Nüüd lisage need kaks järgmist valikut, et piirata FTP kasutajate kodukatalooge.
chroot_local_user=YES allow_writeable_chroot=YES
chroot_local_user u003d JAH tähendab, et kohalikud kasutajad paigutatakse pärast vaikimisi sisselogimist chrooti vanglasse, nende kodukataloogi.
Ja ka vaikimisi ei luba vsftpd turvalisuse kaalutlustel chroot vangla kataloogi kirjutada, kuid selle sätte alistamiseks võime kasutada valikut allow_writeable_chroot u003d YES.
Salvestage fail ja sulgege see.
FTP-serveri turvamine SELinuxiga
7. Nüüd seadistame allpool oleva SELinuksi tõeväärtuse, et FTP saaks lugeda kasutaja kodukataloogi faile. Pange tähele, et see tehti algselt käsuga:
# setsebool -P ftp_home_dir on
Kuid direktiiv ftp_home_dir
on vaikimisi keelatud, nagu on selgitatud selles veaaruandes: https://bugzilla.redhat.com/show_bug.cgi?idu003d1097775.
Nüüd kasutame semanage käsku SELinuksi reegli seadmiseks, mis võimaldab FTP-l kasutaja kodukataloogi lugeda/kirjutada.
# semanage boolean -m ftpd_full_access --on
Siinkohal peame vsftpd taaskäivitama, et viia läbi kõik eespool tehtud muudatused:
# systemctl restart vsftpd
4. samm: FTP-serveri testimine
8. Nüüd testime FTP-serverit, luues FTP-kasutaja käsuga useradd.
# useradd -m -c “Ravi Saive, CEO” -s /bin/bash ravi # passwd ravi
Hiljem peame lisama kasutaja ravi faili /etc/vsftpd.userlist, kasutades käsku echo järgmiselt:
# echo "ravi" | tee -a /etc/vsftpd.userlist # cat /etc/vsftpd.userlist
9. Nüüd on aeg testida, kas meie ülaltoodud seaded töötavad õigesti. Alustame anonüümsete sisselogimiste testimisega. Näeme allolevalt ekraanipildilt, et anonüümsed sisselogimised pole lubatud:
# 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. Testime ka seda, kas kasutajale, kes pole failis /etc/vsftpd.userlist loetletud, antakse sisselogimiseks luba, mis pole nii, nagu alloleval ekraanipildil:
# 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. Nüüd tehke viimane kontroll, kas failis /etc/vsftpd.userlist loetletud kasutaja on pärast sisselogimist tegelikult oma kodukataloogis:
# 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

Aktiveerige see valik ainult siis, kui teate täpselt, mida teete. Oluline on märkida, et need turvamõjud pole vsftpd spetsiifilised, need kehtivad kõigi FTP-deemonite kohta, mis pakuvad ka kohalikke kasutajaid chroot-vanglatesse.
Seetõttu vaatame järgmises jaotises turvalisemat viisi, kuidas seada teistsugune kirjutamatu kohalik juurkataloog.
5. samm: konfigureerige erinevad FTP kasutajate kodukataloogid
12. Avage vsftpd konfiguratsioonifail uuesti ja alustage allpool oleva ebaturvalise võimaluse kommenteerimisega:
#allow_writeable_chroot=YES
Seejärel looge kasutaja jaoks alternatiivne kohalik juurkataloog ( ravi
, teie oma on tõenäoliselt erinev) ja eemaldage kõigile selle kataloogi kasutajatele kirjutamisõigused:
# mkdir /home/ravi/ftp # chown nobody:nobody /home/ravi/ftp # chmod a-w /home/ravi/ftp
13. Seejärel looge kohaliku juure alla kataloog, kuhu kasutaja oma failid salvestab:
# mkdir /home/ravi/ftp/files # chown ravi:ravi /home/ravi/ftp/files # chmod 0700 /home/ravi/ftp/files/
Seejärel lisage/muutke konfiguratsioonifailis vsftpd järgmisi valikuid nende väärtustega:
user_sub_token=$USER # inserts the username in the local root directory local_root=/home/$USER/ftp # defines any users local root directory
Salvestage fail ja sulgege see. Taaskäivitame teenuse uuesti uute seadetega.
# systemctl restart vsftpd
14. Tehke nüüd viimane test uuesti ja vaadake, et kasutajate kohalik juurkataloog on tema kodukataloogis loodud FTP-kataloog.
# 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

See on kõik! Selles artiklis kirjeldasime, kuidas CentOS 7-s FTP-serverit installida, konfigureerida ja turvata. Kasutage allpool toodud kommentaaride jaotist, et meile selle juhendi kohta tagasi kirjutada/selle teema kohta kasulikku teavet jagada.
Järgmises artiklis näitame teile ka, kuidas FOS-serverit SSL/TLS-ühenduste abil CentOS 7-s turvata, hoidke seni ühendust TecMintiga.