FTP (Protokol za prenos datotek) je tradicionalno in pogosto uporabljeno standardno orodje za prenos datotek med strežnikom in odjemalci prek omrežja, zlasti kadar preverjanje pristnosti ni potrebno (dovoljuje anonimnim uporabnikom, da se povežejo s strežnikom). Zavedati se moramo, da FTP privzeto ni varen, ker prenaša poverilnice in podatke uporabnika brez šifriranja.
V tem priročniku bomo opisali korake za namestitev, konfiguracijo in zaščito strežnika FTP (VSFTPD pomeni "Zelo varen demon FTP“) V CentOS/RHEL 7 in Fedora distribucije.
Upoštevajte, da bodo vsi ukazi v tem priročniku izvedeni kot koren, če strežnika ne upravljate z koren račun, uporabite ukaz sudo pridobiti root pravice.
1. Namestitev vsftpd strežnik je naravnost naprej, v terminalu zaženite naslednji ukaz.
# yum install vsftpd.
2. Po končani namestitvi bo storitev najprej onemogočena, zato jo moramo zaenkrat zagnati ročno in omogočiti samodejni zagon tudi pri naslednjem zagonu sistema:
# systemctl start vsftpd. # systemctl omogoči vsftpd.
3. Nato moramo za dostop do storitev FTP iz zunanjih sistemov odpreti vrata 21, kjer demoni FTP poslušajo na naslednji način:
# firewall-cmd --zone = public --permanent --add-port = 21/tcp. # firewall-cmd --zone = public --permanent --add-service = ftp. # firewall-cmd --reload.
4. Zdaj bomo prešli na izvedbo nekaj konfiguracij za nastavitev in zaščito našega strežnika FTP. Začnimo z varnostno kopijo prvotne konfiguracijske datoteke /etc/vsftpd/vsftpd.conf:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig.
Nato odprite konfiguracijsko datoteko zgoraj in nastavite naslednje možnosti s temi ustreznimi vrednostmi:
anonymous_enable = NO # onemogoči anonimno prijavo. local_enable = DA # dovoli lokalne prijave. write_enable = YES # omogoči ukaze FTP, ki spremenijo datotečni sistem. local_umask = 022 # vrednost umask za ustvarjanje datotek za lokalne uporabnike. dirmessage_enable = YES # omogoči prikaz sporočil, ko uporabniki prvič vstopijo v nov imenik. xferlog_enable = DA # bo shranjena datoteka dnevnika s podrobnostmi o prenosih in prenosih. connect_from_port_20 = DA # uporabite vrata 20 (ftp-data) na strežniškem stroju za povezave v slogu PORT. xferlog_std_format = DA # ohrani standardno obliko datoteke dnevnika. listen = NO # preprečite izvajanje vsftpd v samostojnem načinu. listen_ipv6 = DA # vsftpd bo poslušal v vtičnici IPv6 namesto v IPv4. pam_service_name = vsftpd # ime storitve PAM bo uporabljalo vsftpd. userlist_enable = DA # omogoči vsftpd za nalaganje seznama uporabniških imen. tcp_wrappers = DA # vklopite zavoje za tcp.
5. Zdaj konfigurirajte FTP tako, da uporabnikom dovoli/zavrne dostop do FTP na podlagi datoteke s seznamom uporabnikov /etc/vsftpd.userlist
.
Privzeto so uporabniki, navedeni v userlist_file =/etc/vsftpd.userlist
zavrnejo dostop do računa z userlist_deny možnost nastavljena na DA, če userlist_enable = DA.
Vendar pa userlist_deny = NE spremeni nastavitev, kar pomeni, da so v njej izrecno navedeni samo uporabniki userlist_file =/etc/vsftpd.userlist se bo lahko prijavil.
userlist_enable = YES # vsftpd bo naložil seznam uporabniških imen iz imena datoteke, ki ga podaja userlist_file. userlist_file =/etc/vsftpd.userlist # shranjuje uporabniška imena. userlist_deny = NE
To še ni vse, ko se uporabniki prijavijo na strežnik FTP, so postavljeni v krotiran zapor, to je lokalni korenski imenik, ki bo deloval kot njihov domači imenik samo za sejo FTP.
Nato bomo pogledali dva možna scenarija, kako uporabnike FTP povezati s uporabniki FTP v domači imenik (lokalni korenski) za uporabnike FTP, kot je razloženo spodaj.
6. Zdaj dodajte ti dve naslednji možnosti, da omejite uporabnike FTP v njihove domače imenike.
chroot_local_user = DA. allow_writeable_chroot = DA.
chroot_local_user = DA pomeni, da bodo lokalni uporabniki po privzetku privzeto nastavljeni v kroot zapor, njihov domači imenik.
Prav tako privzeto vsftpd ne dovoljuje zapisovanja imenika chroot jail iz varnostnih razlogov, lahko pa uporabimo možnost allow_writeable_chroot = DA preglasiti to nastavitev.
Shranite datoteko in jo zaprite.
7. Zdaj nastavimo SELinux boolean spodaj, da FTP omogoči branje datotek v domačem imeniku uporabnika. Upoštevajte, da je bilo to sprva izvedeno z ukazom:
# setsebool -P ftp_home_dir vklopljeno.
Vendar pa je ftp_home_dir
Direktiva je privzeto onemogočena, kot je razloženo v tem poročilu o hroščih: https://bugzilla.redhat.com/show_bug.cgi? id = 1097775.
Zdaj bomo uporabili semanage ukaz za nastavitev pravila SELinux, ki dovoljuje FTP branje/pisanje domačega imenika uporabnika.
# semanage boolean -m ftpd_full_access --on.
Na tej točki moramo znova zagnati vsftpd, da izvedemo vse spremembe, ki smo jih naredili do sedaj zgoraj:
# systemctl znova zaženi vsftpd.
8. Zdaj bomo preizkusili strežnik FTP z ustvarjanjem uporabnika FTP z ukaz useradd.
# useradd -m -c “Ravi Saive, generalni direktor” -s /bin /bash ravi. # passwd ravi.
Nato moramo dodati uporabnika ravi v datoteko /etc/vsftpd.userlist uporabljati ukaz echo kot sledi:
# odmev "ravi" | tee -a /etc/vsftpd.userlist. # cat /etc/vsftpd.userlist.
9. Zdaj je čas, da preizkusimo, ali naše zgornje nastavitve delujejo pravilno. Začnimo s testiranjem anonimnih prijav, na spodnjem posnetku zaslona lahko vidimo, da anonimne prijave niso dovoljene:
# ftp 192.168.56.10 Povezano z 192.168.56.10 (192.168.56.10). 220 Dobrodošli v storitvi TecMint.com FTP. Ime (192.168.56.10:root): anonimno. 530 Dovoljenje zavrnjeno. Prijava ni uspela. ftp>
10. Preizkusimo tudi, če uporabnik ni naveden v datoteki /etc/vsftpd.userlist bo dobil dovoljenje za prijavo, kar pa ne velja kot na spodnjem posnetku zaslona:
# ftp 192.168.56.10 Povezano z 192.168.56.10 (192.168.56.10). 220 Dobrodošli v storitvi TecMint.com FTP. Ime (192.168.56.10: koren): aaronkilik. 530 Dovoljenje zavrnjeno. Prijava ni uspela. ftp>
11. Sedaj dokončno preverite, ali je uporabnik naveden v datoteki /etc/vsftpd.userlist, je po prijavi dejansko postavljen v njegov/njen domači imenik:
# ftp 192.168.56.10 Povezano z 192.168.56.10 (192.168.56.10). 220 Dobrodošli v storitvi TecMint.com FTP. Ime (192.168.56.10: koren): ravi. 331 Navedite geslo. Geslo: 230 Prijava uspešna. Vrsta oddaljenega sistema je UNIX. Uporaba binarnega načina za prenos datotek. ftp> ls
allow_writeable_chroot = DA
ima določene varnostne posledice, še posebej, če imajo uporabniki dovoljenje za nalaganje ali dostop do lupine.To možnost aktivirajte le, če natančno veste, kaj počnete. Pomembno je omeniti, da te varnostne posledice niso specifične za vsftpd, ampak veljajo za vse demone FTP, ki ponujajo, da se tudi lokalni uporabniki spravijo v kroot zapor.
Zato bomo v naslednjem razdelku pogledali varnejši način nastavitve drugačnega lokalnega korenskega imenika, ki ga ni mogoče zapisati.
12. Ponovno odprite konfiguracijsko datoteko vsftpd in začnite s komentiranjem spodnje nezaščitene možnosti:
#allow_writeable_chroot = DA.
Nato za uporabnika ustvarite nadomestni lokalni korenski imenik (ravi
, verjetno je vaš drugačen) in odstranite dovoljenja za pisanje vsem uporabnikom v ta imenik:
# mkdir/home/ravi/ftp. # chown nobody: nobody/home/ravi/ftp. # chmod a-w/home/ravi/ftp.
13. Nato ustvarite imenik pod lokalnim korenom, kamor bo uporabnik shranil svoje datoteke:
# mkdir/home/ravi/ftp/files. # chown ravi: ravi/home/ravi/ftp/files. # chmod 0700/home/ravi/ftp/files/
Nato v konfiguracijski datoteki vsftpd dodajte/spremenite naslednje možnosti s temi vrednostmi:
user_sub_token = $ USER # vstavi uporabniško ime v lokalni korenski imenik local_root =/home/$ USER/ftp # definira vse uporabniške korenske imenike.
Shranite datoteko in jo zaprite. Spet znova zaženimo storitev z novimi nastavitvami:
# systemctl znova zaženi vsftpd.
14. Zdaj naredite še zadnji preskus in preverite, ali je lokalni korenski imenik uporabnikov imenik FTP, ki smo ga ustvarili v njegovem domačem imeniku.
# ftp 192.168.56.10 Povezano z 192.168.56.10 (192.168.56.10). 220 Dobrodošli v storitvi TecMint.com FTP. Ime (192.168.56.10: koren): ravi. 331 Navedite geslo. Geslo: 230 Prijava uspešna. Vrsta oddaljenega sistema je UNIX. Uporaba binarnega načina za prenos datotek. ftp> ls
To je to! V tem članku smo opisali, kako namestiti, konfigurirati in zavarovati strežnik FTP v CentOS 7, uporabiti datoteko komentar spodaj, da nam pišete v zvezi s tem priročnikom/delite koristne informacije o tem temo.
Predlagano branje:Namestite strežnik ProFTPD na RHEL/CentOS 7
V naslednjem članku vam bomo tudi pokazali, kako zaščitite strežnik FTP s protokolom SSL/TLS povezave v CentOS 7, do takrat pa ostanite povezani s TecMintom.