Serija RHCSA: Namestitev, konfiguracija in zaščita spletnega in FTP strežnika - 9. del
Spletni strežnik (znan tudi kot strežnik HTTP) je storitev, ki obravnava vsebino (najpogosteje spletne strani, vendar tudi druge vrste dokumentov) do odjemalca v omrežju.
Strežnik FTP je eden najstarejših in najpogosteje uporabljenih virov (tudi do danes), ki omogoča dostop do datotek odjemalcem v omrežju v primerih, ko overjanje ni potrebno, saj FTP uporablja uporabniško ime in geslo brez šifriranja.
Spletni strežnik, ki je na voljo v RHEL 7, je različica 2.4 strežnika Apache HTTP. Kar zadeva strežnik FTP, bomo za vzpostavitev povezav, zaščitenih s TLS, uporabili zelo varen Ftp Daemon (alias vsftpd).
V tem članku bomo razložili, kako namestiti, konfigurirati in zaščititi spletni strežnik in strežnik FTP v RHEL 7.
Namestitev strežnika Apache in FTP
V tem priročniku bomo uporabili strežnik RHEL 7 s statičnim naslovom IP 192.168.0.18/24. Če želite namestiti Apache in VSFTPD, zaženite naslednji ukaz:
# yum update && yum install httpd vsftpd
Po končani namestitvi bosta obe storitvi na začetku onemogočeni, zato ju moramo zaenkrat zagnati ročno in jim omogočiti samodejni zagon z naslednjim zagonom:
# systemctl start httpd # systemctl enable httpd # systemctl start vsftpd # systemctl enable vsftpd
Poleg tega moramo odpreti vrata 80 in 21, kjer poslušata demona splet in ftp, da omogočimo dostop do teh storitev od zunaj:
# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --zone=public --add-service=ftp --permanent # firewall-cmd --reload
Če želite potrditi, da spletni strežnik deluje pravilno, zaženite brskalnik in vnesite IP strežnika. Morali bi videti preskusno stran:
Kar zadeva strežnik ftp, ga bomo morali dodatno konfigurirati, kar bomo storili čez minuto, preden bomo potrdili, da deluje po pričakovanjih.
Konfiguriranje in zaščita spletnega strežnika Apache
Glavna konfiguracijska datoteka za Apache se nahaja v /etc/httpd/conf/httpd.conf
, vendar se lahko zanaša na druge datoteke, ki so znotraj /etc/httpd/conf.d
.
Čeprav bi privzeta konfiguracija v večini primerov zadoščala, je dobro, da se seznanite z vsemi razpoložljivimi možnostmi, kot je opisano v uradni dokumentaciji.
Kot vedno naredite varnostno kopijo glavne konfiguracijske datoteke, preden jo uredite:
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.$(date +%Y%m%d)
Nato ga odprite z želenim urejevalnikom besedil in poiščite naslednje spremenljivke:
- ServerRoot: imenik, v katerem so shranjene konfiguracijske datoteke strežnika, napake in dnevniške datoteke.
- Poslušaj: naroči Apacheju, naj posluša določen naslov IP in/ali vrata.
- Vključi: omogoča vključitev drugih konfiguracijskih datotek, ki morajo obstajati. V nasprotnem primeru strežnik ne bo uspel, v nasprotju z direktivo IncludeOptional, ki je tiho prezrta, če navedene konfiguracijske datoteke ne obstajajo.
- Uporabnik in skupina: ime uporabnika/skupine za zagon storitve httpd kot.
- DocumentRoot: Imenik, iz katerega bo Apache služil vašim dokumentom. Privzeto so vse zahteve vzete iz tega imenika, simbolične povezave in vzdevki pa se lahko uporabijo za usmerjanje na druge lokacije.
- ServerName: ta direktiva nastavi ime gostitelja (ali naslov IP) in vrata, ki jih strežnik uporablja za identifikacijo.
Prvi varnostni ukrep bo sestavljen iz ustvarjanja namenskega uporabnika in skupine (tj. Tecmint/tecmint) za zagon spletnega strežnika kot in spreminjanje privzetih vrat na višja (v tem primeru 9000):
ServerRoot "/etc/httpd" Listen 192.168.0.18:9000 User tecmint Group tecmint DocumentRoot "/var/www/html" ServerName 192.168.0.18:9000
Konfiguracijsko datoteko lahko preizkusite z.
# apachectl configtest
in če je vse v redu, znova zaženite spletni strežnik.
# systemctl restart httpd
in ne pozabite omogočiti novih vrat (in onemogočiti starih) v požarnem zidu:
# firewall-cmd --zone=public --remove-port=80/tcp --permanent # firewall-cmd --zone=public --add-port=9000/tcp --permanent # firewall-cmd --reload
Upoštevajte, da lahko zaradi pravilnikov SELinux uporabljate samo vrata, ki jih vrne
# semanage port -l | grep -w '^http_port_t'
za spletni strežnik.
Če želite uporabiti druga vrata (tj. Vrata TCP 8100), jih boste morali dodati v kontekst vrat SELinux za storitev httpd:
# semanage port -a -t http_port_t -p tcp 8100
Če želite dodatno zaščititi namestitev Apache, sledite tem korakom:
1. Uporabnik Apache deluje, ker ne bi smel imeti dostopa do lupine:
# usermod -s /sbin/nologin tecmint
2. Onemogočite seznam imenikov, da brskalniku preprečite prikazovanje vsebine imenika, če v njem ni indeksa.html.
Uredite /etc/httpd/conf/httpd.conf
(in konfiguracijske datoteke za navidezne gostitelje, če obstajajo) in se prepričajte, da je nastavljena direktiva Options, tako na vrhu kot na ravni blokov imenika. do Brez:
Options None
3. V odgovorih HTTP skrijte informacije o spletnem strežniku in operacijskem sistemu. Uredite /etc/httpd/conf/httpd.conf
, kot sledi:
ServerTokens Prod ServerSignature Off
Zdaj ste pripravljeni začeti prikazovati vsebino iz vašega imenika/var/www/html.
Konfiguriranje in zaščita strežnika FTP
Kot v primeru Apache je tudi glavna konfiguracijska datoteka za Vsftpd (/etc/vsftpd/vsftpd.conf)
dobro komentirana in čeprav bi privzeta konfiguracija zadostovala za večino aplikacij, se morate seznaniti z dokumentacijo in man stran (man vsftpd.conf)
za učinkovitejše upravljanje strežnika ftp (tega ne morem dovolj poudariti!).
V našem primeru gre za naslednje smernice:
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 chroot_local_user=YES allow_writeable_chroot=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
Z uporabo chroot_local_user = YES
bodo lokalni uporabniki takoj po prijavi v privzeto zaprti zapor v svojem domačem imeniku. To pomeni, da lokalni uporabniki ne bodo mogli dostopati do datotek zunaj ustreznih domačih imenikov.
Nazadnje, če želite ftp omogočiti branje datotek v uporabnikovem domačem imeniku, nastavite naslednjo logično vrednost SELinux:
# setsebool -P ftp_home_dir on
Zdaj se lahko s strežnikom ftp povežete z odjemalcem, kot je Filezilla:
Upoštevajte, da dnevnik /var/log/xferlog
beleži prenose in nalaganja, kar se ujema z zgornjim seznamom imenikov:
Povzetek
V tej vadnici smo razložili, kako nastaviti splet in strežnik ftp. Zaradi obsežnosti teme ni mogoče zajeti vseh vidikov teh tem (tj. Virtualnih spletnih gostiteljev). Zato vam priporočam, da na tem spletnem mestu preverite tudi druge odlične članke o Apacheju.