Apraksts:
Apache instalācija un drošības ieteikumi.Darbs:
SatursINSTALĀCIJA 2
APACHE SĀKNĒŠANA 4
FAILS ACCESS.CONF 5
AR DROŠĪBU SAISTĪTĀS DIREKTĪVAS 6
AUTENTIFIKĀCIJA 10
DROŠĪBAS IETEIKUMI 13
Atļaujas ServerRoot katalogam 13
Server Side Includes 14
Servera uzstādījumu aizsargāšana 15
Servera failu aizsargāšana 15
PIELIKUMI 17
Pielikums 1. Servisu startēšana chroot vidē 18
Pielikums 2. Servera startēša ar Root lietotāju 18
Pielikums 3. Saites 19
Instalācija
Instalācija notiek uz Linux Mandrake 8.2. Apache instalācijai izmanto bināro .rpm instalāciju, versiju 1.4. Instalācijas fails ir pieejams Mandrake instalācijas kompaktdiskā. Rpm ir iepriekš sagatavota pakete, kuru startējot instalācija tālāk notiek automātiski. Šāda veida instalēšana ir vienkārša, bet tai ir trūkums, nevar zināt visas darbības kas notiek instalēšanas procesā. Šajā gadījumā to nevarētu uzskatīt par drošības trūkumu, jo Linux ir atvērtā koda programma un līdz ar to nav iespējams noslēpt kādu nedokumentētu darbību instalācijas procesā. Eksistē brīvi pieejami Apache servera izejas kodi, kurus var kompilēt, tad pašrocīgi uzstādīt apache serveri. Pie kompilēšanas ir iespējams uzstādīt daudzus parametrus, kas maina noklusētās vērtības, kuras ir pielietotas veidojot rpm paketi.
Instalācijas (ServerRoot) katalogs ir /etc/httpd. Instalācijas katalogā atrodas konfigurācijas faili, un dažādi Apache moduļi.
Dokumentu katalogs (DocumentRoot) ir /var/www/html.
Apache sāknēšana
Apache serveris tiek startēts pēc operētājsistēmas ielādēšanas. Automātisku startēšanu nodrošina /etc/init.d/httpd fails. Šajā failā ir norādīts lietotājs zem kura tiek sākumā startēts Apache (parasti root). Ja sāknēšanas failā ir norādīts cits lietotājs, tad var būt problēmas ar 80 porta rezervēšanu. Ja nevēlas startēt Apache ar root, tad jāizmanto kāds no augstajiem portiem (virs 1024), piemēram, 8080.
Pēc tam, kad Apacche ir ielādēts un uzdarītas dažas sākuma darbības, atvērti log faili, tas startē dažus apakšprocesus, kuri klausās 80 portu un atbild kientam, tai skaitā darbojas ar CGI un SSI.
Turpmāk Apache kodols darbojas kā root, bet apakšprocesi ar mazāk priviliģētu lietotāju.
Sīkāk par Apache startēšanu ar root pielikumā 2.
Fails access.conf
Fails access.conf ir galvenais konfigurācijas fails, tas atrodas ServerRoot katalogā. Serveris to nolasa tikai startējoties. Ja ir veiktas izmaiņas konfigurācijas failā, tad ir nepieciešams pārstartēt Apache. Faila nosaukums ir noteikts kompilējot Apache, bet to var mainīt no komandrindas ar –f.
/usr/local/apache/bin/httpd -f /usr/local/apache/conf/httpd.conf
Var pievienot papildus konfigurācijas failus lietojot Include direktīvu.
Include
Sintakse: Include file-path|directory-path
Konteksts: server config, virtual host, directory
Ja Include norāda uz katalogu, tad Apache nolasa visus failus šajā katalogā un apakškatalogos un uzskata tos par konfigurācijas failiem. Ērti lietot ja operē ar virtuālajiem hostiem.
Sīkāk par konfigurācijas faila sintaksi: http://httpd.apache.org/docs-2.0/configuring.html
Ar drošību saistītās direktīvas
User
Sintakse: User unix-userid
Konteksts: server config, virtual host
Lietotājs zem kura apache servers darbojas. Ieteicams izveidot jaunu lietotāju kuram nav tiesību. Lai varētu lietotu šo direktīvu serverim sākumā ir jāstartējas kā root. Iespējams, ka var norādīt kā lietotāju nobody. Virtuāliem hostiem var notiekt citu lietotāju.
Group
Sintakse: Group unix-group
Konteksts: server config, virtual host
Grupa zem kuras serveris darbojas. Ieteicams izveidot jaunu grupu kuram nav tiesību. Iespējams ka var norādīt kā grupu nobody.
Allow
Sintakse: Allow from all|host|env=env-variable [host|env=env-variable] ...
Konteksts: directory, .htaccess
Nosaka kuri host var piekļūt noteiktiem dokumentiem uz servera.
Pieeju var kontrolēt pēc pilna vai daļēja domēna vārda vai IP adreses, pēc tikla/tīkla maskas (Allow from 10.1.0.0/255.255.0.0), pēc A network/nnn CIDR specification (Allow from 10.1.0.0/16)
Deny
Sintakse: Deny from all|host|env=env-variable [host|env=env-variable] ...
Konteksts: directory, .htaccess
Nosaka kādi hosti nevar pieslēgties serverim
Deny ir identiska Allow.
Order
Sintakse: Order ordering
Konteksts: directory, .htaccess
Nosaka kādā secībā tiek izvērtētas Allow from un Deny from direktīvas.
Order Deny,Allow . Nosākuma izvērtē Deny, tad Allow. Šajā secībā stiprākas ir Allow tiesības.
Order Allow,Deny Nosākuma izvērtē Allow, tad Deny. Šajā secībā stiprākas ir Deny tiesības. Stiprākai drošībai šāda secība ir piemērotāka.
AllowOverride
Sintakse: AllowOverride All|None|directive-type [directive-type] ...
Konteksts: directory
Nosaka kādas direktīvas ir atļautas lietot .htaccess failā (vai cits nosaukums, kas norādīts AccessFileName direktīvā).
Serverim atrodot failu .htaccess ir jāzina kādas direktīvas, kas noteiktas iepriekš, var pārrakstīt.
Ja AllowOverride ir uzstādīts kā none, tad .htaccess faili tiek ignorēti, serveris tos pat nelasa no diska.
Ja AllowOverride ir uzstādīts kā All, tad jebkuru direktīvu var pārrakstīt ar .htaccess failu.
Kā directive-type var būt:
- AuthConfig
Ļauj lietot autorizācijas direktīvas. (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, un citas.).
- FileInfo
Ļauj lietot direktīvas, kas kontrolē dokumentu tipus (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, and mod_mime Add* and Remove* directives, un citas.).
- Indexes
Ļauj lietot direktīvas, kas kontrolē katalogu nolasīšanu (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, un citas.).
- Limit
Ļauj lietot direktīvas, kas kontrolē pieeju resursam pēc hostiem (Allow, Deny and Order).
- Options
Ļauj lietot direktīvas, kas kontrolē specifiskas kataloga īpašības (Options and XBitHack). Atļaujot ietot šo direktīvu lietotājs pat sev var piešķirt atļauju izpildīt CGI un SSI.
Options
Sintakse: Options [+|-]option [[+|-]option] ...
Konteksts: server config, virtual host, directory, .htaccess
Nosaka kādas īpašības ir konkrētajam katalogam.
Option None, neviena īpašība nepiemīt folderim. Maksimāla drošība.
Sekojošus option var uzstādīt:
All- visas īpašības.
ExecCGI – atļauj izpildīt CGI skriptus.
FollowSymLinks
Includes – ļauj izpildīt Server-side includes
IncludesNOEXEC – ļauj izpildīt Server-side includes, bet #exec komanda un #exec CGI ir aizliegts.
Indexes
MultiViews
SymLinksIfOwnerMatch
Ja vienam katalogam ir definēts options vairākās vietās, tad tiek ņemts vērā specifiskākā norāde. Tas ir, ja katalogu struktūrā options ir definēts augstākajam līmenim un tai pašā laikā options ir definēts apakškatalogam, tad options tiek ņemts no apakškataloga.
<Directory /web/docs>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/docs/spec>
Options Includes
</Directory>
Šajā piemērā katalogam /web/docs/spec tiek uzstādīts tikai Includes. Parasti options netiek apvienoti, bet ir iespējams apvienot options ar + un -.
<Directory /web/docs>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/docs/spec>
Options +Includes –Indexes
</Directory>
Šajā piemērā katalogam /web/docs/spec tiek uzstādīts papildus esošajām options Includes un noņemts Indexes.
<Limit>
Sintakse: <Limit method [method] ... > ... </Limit>
Konteksts: server config, virtual host, directory, .htaccess
Liedz pieeju minētajām HTTP metodēm.
<Limit POST PUT DELETE>
Require valid-user
</Limit>
Šis piemērs liedz pieeju POST, PUT un DELETE , atstājot pārējās metodes nepasargātas. Metodes var būt GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, un UNLOCK. Metode ir reģistrjūtīga.
<LimitExcept>
Sintakse: <LimitExcept method [method] ... > ... </LimitExcept>
Konteksts: server config, virtual host, directory, .htaccess
Liedz pieejeu visām HTTP direktīvām izņemot minētās. Šī direktīva ir pretēja <Limit>.
Autentifikācija
Ar autentifikāciju saistītās direktīvas.
AuthType
Sintakse: AuthType Basic|Digest
Konteksts: directory, .htaccess
Autentifikācijas tips. Digest ir daudz stiprāka par Basic, bet Digest autentisikācija ir ieviesta tikai jaunākajās pārlūkprogrammās.
AuthName
Sintakse: AuthName auth-domain
Konteksts: directory, .htaccess
Autentifikācijas vietas nosaukums. To rāda web pārlūkprogramma lietotāja autentifikācijas logā.
AuthUserFile
Sintakse: AuthUserFile file-path
Konteksts: directory, .htaccess
Uzstāda faila vārdu, kurā glabājas lietotāju saraksts ar parolēm. Jāuzmanās, lai AuthUserFile ir novietots ārpus web katalogu koka. Citādi klientiem ir iespēja ta redzēt.
Piemērs:
bob: nfF/iXiQjaip6
joe:rzNNm.uDYrq0U
Parole ir šifrēta ar funkciju crypt(), piemēram, crypt(“manaparole”,”nf”);. Kā otro argumentu norāda sāli no diviem simboliem. Šo funkciju var izmantot PHP.
AuthGroupFile
Sintakse: AuthGroupFile file-path
Konteksts: directory, .htaccess
Uzstāda faila vārdu, kurā glabājas lietotāju grupas.
Piemērs:
mygroup: bob joe anne
Lietotājus atdala ar tukšumu.
Require
Sintakse: Require entity-name [entity-name] ...
Konteksts: directory, .htaccess
Nosaka kuri autentificēti lietotāji var piekļūt. Tikai require iedarbina lietotāja autentifikāciju uz noteiktiem resursiem.
require group admin
require user director
Šajā gadījumā piekļuve ir atļauta visiem lietotājiem no grupas admin un lietotājam director.
Require valid-user atļauj piekļuvi jebkuram autentificētam lietotājam.
Satisfy
Sintakse: Satisfy any|all
Noklusētā vērtība: Satisfy all
Konteksts: directory, .htaccess
Saistība starp host-līmeņa piekļuves kontroli un lietotāju autentifikāciju.
Satisfy direktīvai ir nozīme, ja izmanto abus Allow un Require.
Satisfy all. Lai piekļūtu resursam nepieciešams ievadīt paroli un būt no atļautā hosta. Satidfy all nodrošina stiprāku drošibu.
Satisfy any. Piekļuve resursam tiek atļauta, ja ir no atlautā hosta vai arī ir ievadīta pareizs lietotājs.
Lai nodrošināti Basic autentifikāciju katalogam /var/www/html.
<Directory /var/www/html>
AuthType Basic
AuthName "Admin area"
AuthUserFile /etc/httpd/conf/pass.txt
AuthGroupFile /etc/httpd/conf/group.txt
require group admin
require user director



Komentāri