RHCSA seeria: veebi- ja FTP-serveri installimine, konfigureerimine ja turvamine - 9. osa


Veebiserver (tuntud ka kui HTTP-server) on teenus, mis haldab sisu (enamasti veebilehti, kuid ka muud tüüpi dokumente) võrgus olevale kliendile.

FTP-server on üks vanimaid ja kõige sagedamini kasutatavaid ressursse (isegi tänapäevani), et failid võrgus klientidele kättesaadavaks teha, kui autentimist pole vaja, kuna FTP kasutab kasutajanime ja parooli ilma krüpteerimiseta.

RHEL 7-s saadaval olev veebiserver on Apache HTTP-serveri versioon 2.4. Mis puutub FTP-serverisse, siis TLS-ga kaitstud ühenduste loomiseks kasutame väga turvalist Ftp-deemonit (aka vsftpd).

Selles artiklis selgitame, kuidas veebiserverit ja FTP-serverit RHEL 7-s installida, konfigureerida ja turvata.

Apache'i ja FTP-serveri installimine

Selles juhendis kasutame RHEL 7 serverit, mille staatiline IP-aadress on 192.168.0.18/24. Apache ja VSFTPD installimiseks käivitage järgmine käsk:

# yum update && yum install httpd vsftpd

Kui installimine on lõpule viidud, keelatakse mõlemad teenused esialgu, seega peame need esialgu käsitsi käivitama ja lubama neil järgmisel käivitamisel automaatselt alustada:

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

Lisaks peame avama pordid 80 ja 21, kus vastavalt veebi- ja ftp-deemonid kuulavad, et võimaldada juurdepääsu nendele teenustele väljastpoolt:

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

Veebiserveri korraliku töö kinnitamiseks käivitage oma brauser ja sisestage serveri IP. Te peaksite nägema testlehte:

Mis puutub ftp-serverisse, siis peame selle veelgi konfigureerima, mida teeme ühe minuti jooksul, enne kui kinnitame, et see töötab ootuspäraselt.

Apache veebiserveri konfigureerimine ja turvamine

Apache'i peamine konfiguratsioonifail asub /etc/httpd/conf/httpd.conf , kuid see võib tugineda teistele failidele, mis asuvad /etc/httpd/conf.d.

Kuigi vaikekonfiguratsioon peaks enamikul juhtudel piisama, on mõistlik tutvuda kõigi saadaolevate võimalustega, nagu on kirjeldatud ametlikus dokumentatsioonis.

Nagu alati, tehke enne selle redigeerimist peamise konfiguratsioonifaili varukoopia:

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

Seejärel avage see eelistatud tekstiredaktoriga ja otsige järgmisi muutujaid:

  1. ServerRoot: kataloog, kus hoitakse serveri konfiguratsiooni-, tõrke- ja logifaile.
  2. Kuula: käsib Apache'il kuulata konkreetset IP-aadressi ja/või porte.
  3. Kaasa: võimaldab kaasata muid konfiguratsioonifaile, mis peavad olemas olema. Vastasel juhul nurjub server, erinevalt direktiivist IncludeOptional, mida vaikimisi ignoreeritakse, kui määratud konfiguratsioonifaile pole olemas.
  4. Kasutaja ja rühm: kasutaja/rühma nimi, kellena httpd-teenust käitatakse.
  5. DocumentRoot: kataloog, kust Apache teie dokumente serveerib. Vaikimisi võetakse kõik taotlused sellest kataloogist, kuid teistele asukohtadele osutamiseks võidakse kasutada sümboolseid linke ja varjunimesid.
  6. ServerName: see direktiiv määrab hostinime (või IP-aadressi) ja pordi, mida server kasutab enda tuvastamiseks.

Esimene turvameede koosneb spetsiaalse kasutaja ja rühma (st. Tecmint/tecmint) loomisest veebiserveri käitamiseks ja vaikepordi muutmiseks kõrgemaks (antud juhul 9000):

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

Konfiguratsioonifaili saate testida.

# apachectl configtest

ja kui kõik on korras, taaskäivitage veebiserver.

# systemctl restart httpd

ja ärge unustage lubada tulemüüris uus port (ja keelata vana):

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

Pange tähele, et SELinuksi poliitika tõttu saate kasutada ainult neid porte, mille tagastas

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

veebiserveri jaoks.

Kui soovite kasutada mõnda muud porti (st TCP-porti 8100), peate selle lisama SELinuksi pordi konteksti teenuse httpd jaoks:

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

Apache'i installi täiendavaks kindlustamiseks toimige järgmiselt.

1. Kasutaja Apache töötab, kuna sellel ei peaks olema juurdepääsu kestale:

# usermod -s /sbin/nologin tecmint

2. Keelake kataloogide loend, et takistada brauseril kataloogi sisu kuvamist, kui selles kataloogis puudub index.html.

Redigeerige /etc/httpd/conf/httpd.conf (ja virtuaalsete hostide konfiguratsioonifaile, kui neid on) ja veenduge, et suvandi direktiiv oleks seatud nii ülaosas kui ka kataloogiplokkide tasemel mitte kellelegi:

Options None

3. Peida HTTP-vastustes teave veebiserveri ja operatsioonisüsteemi kohta. Redigeerige /etc/httpd/conf/httpd.conf järgmiselt:

ServerTokens Prod 
ServerSignature Off

Nüüd olete valmis alustama sisu pakkumist kataloogist/var/www/html.

FTP-serveri konfigureerimine ja turvamine

Nagu Apache puhul, on ka Vsftpd (/etc/vsftpd/vsftpd.conf) peamist konfiguratsioonifaili hästi kommenteeritud ja kuigi vaikekonfiguratsioon peaks enamiku rakenduste jaoks piisama, peaksite tutvuma dokumentatsiooni ja manulehte (man vsftpd.conf) , et ftp-serverit tõhusamalt kasutada (ma ei saa seda piisavalt rõhutada!).

Meie puhul kasutatakse neid direktiive:

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

Kasutades chroot_local_user u003d YES , paigutatakse kohalikud kasutajad (vaikimisi) kohe pärast sisselogimist oma kodukataloogi chroot’ed-vanglasse. See tähendab, et kohalikud kasutajad ei pääse juurde failidele, mis asuvad väljaspool nende vastavaid kodukatalooge.

Lõpuks, et lubada ftp-l lugeda kasutaja kodukataloogis olevaid faile, määrake järgmine SELinuksi tõeväärtus:

# setsebool -P ftp_home_dir on

Nüüd saate ftp-serveriga ühenduse luua sellise kliendi abil nagu Filezilla:

Pange tähele, et logi /var/log/xferlog salvestab allalaadimised ja üleslaadimised, mis vastavad ülaltoodud kataloogide loendile:

Kokkuvõte

Selles õpetuses oleme selgitanud, kuidas seadistada veebi ja ftp-serverit. Teema ulatuslikkuse tõttu pole võimalik käsitleda kõiki nende teemade aspekte (s.t virtuaalsed veebihostid). Seega soovitan teil vaadata ka teisi suurepäraseid artikleid sellel veebisaidil Apache kohta.