RHCSA Series: Uppsetning, stilling og öryggi vef- og FTP netþjóns - Hluti 9


Vefþjónn (einnig þekktur sem HTTP netþjónn) er þjónusta sem sér um efni (oftast vefsíður, en aðrar tegundir skjala líka) yfir til viðskiptavinar á neti.

FTP þjónn er eitt elsta og mest notaða auðlindin (jafnvel enn þann dag í dag) til að gera skrár aðgengilegar viðskiptavinum á netinu í þeim tilvikum þar sem engin auðkenning er nauðsynleg þar sem FTP notar notandanafn og lykilorð án dulkóðunar.

Vefþjónninn sem er fáanlegur í RHEL 7 er útgáfa 2.4 af Apache HTTP þjóninum. Hvað FTP þjóninn varðar, þá munum við nota Very Secure Ftp Demon (aka vsftpd) til að koma á tengingum sem eru tryggðar með TLS.

Í þessari grein munum við útskýra hvernig á að setja upp, stilla og tryggja vefþjón og FTP netþjón í RHEL 7.

Að setja upp Apache og FTP netþjón

Í þessari handbók munum við nota RHEL 7 netþjón með fasta IP tölu 192.168.0.18/24. Til að setja upp Apache og VSFTPD skaltu keyra eftirfarandi skipun:

# yum update && yum install httpd vsftpd

Þegar uppsetningunni lýkur verða báðar þjónusturnar óvirkar í upphafi, þannig að við þurfum að ræsa þær handvirkt í bili og gera þeim kleift að byrja sjálfkrafa með næstu ræsingu:

# systemctl start httpd
# systemctl enable httpd
# systemctl start vsftpd
# systemctl enable vsftpd

Að auki verðum við að opna port 80 og 21, þar sem vef- og ftp-púkarnir hlusta, í sömu röð, til að leyfa aðgang að þessari þjónustu að utan:

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-service=ftp --permanent
# firewall-cmd --reload

Til að staðfesta að vefþjónninn virki rétt skaltu kveikja á vafranum þínum og slá inn IP þjónsins. Þú ættir að sjá prófunarsíðuna:

Hvað ftp-þjóninn varðar, þá verðum við að stilla hann frekar, sem við munum gera eftir eina mínútu, áður en við staðfestum að hann virki eins og búist var við.

Stilla og tryggja Apache vefþjón

Aðalstillingarskráin fyrir Apache er staðsett í /etc/httpd/conf/httpd.conf, en hún gæti reitt sig á aðrar skrár í /etc/httpd/conf.d.

Þó að sjálfgefna stillingin ætti að duga í flestum tilfellum, þá er það góð hugmynd að kynnast öllum tiltækum valkostum eins og lýst er í opinberu skjölunum.

Eins og alltaf skaltu taka öryggisafrit af aðalstillingarskránni áður en þú breytir henni:

# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.$(date +%Y%m%d)

Opnaðu það síðan með textaritlinum sem þú vilt og leitaðu að eftirfarandi breytum:

  1. ServerRoot: skráin þar sem stillingar, villur og skrár þjónsins eru geymdar.
  2. Hlustaðu: skipar Apache að hlusta á tiltekna IP tölu og/eða tengi.
  3. Include: leyfir innifalið í öðrum stillingarskrám, sem verða að vera til. Annars mun þjónninn bila, öfugt við IncludeOptional tilskipunina, sem er hunsuð í hljóði ef tilgreindar stillingarskrár eru ekki til.
  4. Notandi og hópur: nafn notandans/hópsins sem á að keyra httpd þjónustuna sem.
  5. DocumentRoot: Skráin sem Apache mun þjóna skjölunum þínum úr. Sjálfgefið er að allar beiðnir séu teknar úr þessari möppu, en táknrænir tenglar og samnefni geta verið notuð til að benda á aðrar staðsetningar.
  6. ServerName: Þessi tilskipun setur hýsilheitið (eða IP tölu) og gátt sem þjónninn notar til að auðkenna sig.

Fyrsta öryggisráðstöfunin mun felast í því að búa til sérstakan notanda og hóp (þ.e. tecmint/tecmint) til að keyra vefþjóninn sem og breyta sjálfgefna gáttinni í hærra (9000 í þessu tilfelli):

ServerRoot "/etc/httpd"
Listen 192.168.0.18:9000
User tecmint
Group tecmint
DocumentRoot "/var/www/html"
ServerName 192.168.0.18:9000

Þú getur prófað stillingarskrána með.

# apachectl configtest

og ef allt er í lagi skaltu endurræsa vefþjóninn.

# systemctl restart httpd

og ekki gleyma að virkja nýju tengið (og slökkva á því gamla) í eldveggnum:

# firewall-cmd --zone=public --remove-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=9000/tcp --permanent
# firewall-cmd --reload

Athugaðu að vegna SELinux reglna geturðu aðeins notað höfnin sem skilað er af

# semanage port -l | grep -w '^http_port_t'

fyrir vefþjóninn.

Ef þú vilt nota annað tengi (þ.e. TCP tengi 8100), verður þú að bæta því við SELinux tengi fyrir httpd þjónustuna:

# semanage port -a -t http_port_t -p tcp 8100

Til að tryggja enn frekar Apache uppsetninguna þína skaltu fylgja þessum skrefum:

1. Notandinn Apache er í gangi þar sem hann ætti ekki að hafa aðgang að skel:

# usermod -s /sbin/nologin tecmint

2. Slökktu á möppuskráningu til að koma í veg fyrir að vafrinn sýni innihald möppu ef ekkert index.html er til staðar í þeirri möppu.

Breyttu /etc/httpd/conf/httpd.conf (og stillingarskrám fyrir sýndargestgjafa, ef einhverjar eru) og vertu viss um að Options tilskipunin, bæði efst og á Directory blokkarstigum, sé stillt til Enginn:

Options None

3. Fela upplýsingar um vefþjóninn og stýrikerfið í HTTP svörum. Breyttu /etc/httpd/conf/httpd.conf sem hér segir:

ServerTokens Prod 
ServerSignature Off

Nú ertu tilbúinn til að byrja að þjóna efni úr /var/www/html skránni þinni.

Stilla og tryggja FTP netþjón

Eins og í tilfelli Apache er aðalstillingarskráin fyrir Vsftpd (/etc/vsftpd/vsftpd.conf) vel skrifuð og þó að sjálfgefna stillingin ætti að duga fyrir flest forrit ættir þú að kynnast skjöl og mannsíðuna (man vsftpd.conf) til að reka ftp-þjóninn á skilvirkari hátt (ég get ekki lagt nógu mikla áherslu á það!).

Í okkar tilviki eru þessar tilskipanir sem notaðar eru:

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

Með því að nota chroot_local_user=JÁ verða staðbundnir notendur (sjálfgefið) settir í chroot'ed fangelsi í heimaskrá sinni strax eftir innskráningu. Þetta þýðir að staðbundnir notendur munu ekki geta fengið aðgang að neinum skrám utan samsvarandi heimaskrár þeirra.

Að lokum, til að leyfa ftp að lesa skrár í heimaskrá notandans, stilltu eftirfarandi SELinux boolean:

# setsebool -P ftp_home_dir on

Þú getur nú tengst ftp þjóninum með því að nota biðlara eins og Filezilla:

Athugaðu að /var/log/xferlog skráin skráir niðurhal og upphleðslu, sem eru í samræmi við skráningarskrána hér að ofan:

Samantekt

Í þessari kennslu höfum við útskýrt hvernig á að setja upp vef og ftp netþjón. Vegna víðáttu viðfangsefnisins er ekki hægt að fjalla um alla þætti þessara mála (þ.e. sýndarvefgestgjafar). Þannig mæli ég með að þú skoðir líka aðrar frábærar greinar á þessari vefsíðu um Apache.