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:
- ServerRoot: kataloog, kus hoitakse serveri konfiguratsiooni-, tõrke- ja logifaile.
- Kuula: käsib Apache'il kuulata konkreetset IP-aadressi ja/või porte.
- 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.
- Kasutaja ja rühm: kasutaja/rühma nimi, kellena httpd-teenust käitatakse.
- 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.
- 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.