Sunteți pe pagina 1din 22

7 Serverul Apache

Serverul Apache
7.1 7.2 7.3 7.4 7.5 7.! 7.7 Protocolul HTTP Prezentare generala server Compilare si instalare Structura Apache Con igurare Apache PHP Securitate "e#

$esurse %&$eill' ( Apache The )e initive *ui+e 3r+ ,+ition ( Carte completa protocol HTTP - Server 7 Serverul Apache . 7.1 Protocolul HTTP

Protocolul HTTP
HTTP /H'perte0t Trans er Protocol1 reprezinta un protocol la nivel +e aplicatie care +e ineste mo+alitatea +e comunicatie +intre un server care implementeaza protocolul HTTP si un client. )intre serverele HTTP cele mai olosite sunt Apache si 2icroso t 33S4 iar +intre clientii HTTP 2ozilla 5ire o04 3nternet ,0plorer si %pera. )ezvoltarea protocolului HTTP a ost coor+onata +e organizatia "3C /"orl+ "i+e "e# Consortium1 care a culminat cu pu#licarea a o serie +e $5C(uri +e catre 3,T5 +intre care $5C2!1! +e ineste HTTP61.1 Protocolul HTTP este cel care a +us la ormarea "orl+ "i+e "e# care reprezinta o colectie +e +ocumente interconectate prin lin7(uri. 8ota 9n server HTTP se mai numeste si server :e#. 9n client HTTP se mai numeste si ;ro:ser. $olul unui server ",; este +e a translata a+rese numite 9$<(uri cerute +e #ro:ser in isiere si trimiterea continutului acestora prin retea /3nternet sau <A81 la client. Protocolul HTTP oloseste +e ault portul TCP6=>. Acesta este portul pe care serverul :e# asculta +upa cone0iuni +e la clienti. 9n 9$< /9ni orm $esource <ocator1 este ormat +in? @schemeA?66@hostA6@pathA @schemeA reprezentat +e http ceea ce in+ica protocolul olosit +e client si serverB @hostA reprezinta numele sau 3P(ul serverului ",; la care se conecteaza #ro:serul cum ar i :::.cr'stalmin+.ro sau ==.>.>.1B @pathA reprezinta calea catre isierul cerut +e client relativ la )ocument$ootB ;ro:serul primeste +e la server )%A$ continut te0t ormatat +upa stan+ar+ul HT2<. 5olosin+ plugin( uri speciale clientul poate primi si un isier non(te0t in ormat #inar precum lash4 au+io4 vi+eo4 p+ etc 3mportant )ocument$oot reprezinta un termen generic +ar si o +irectiva +e con igurare a unui server :e# care 1

reprezinta un +irector +in sistemul +e isiere al serverului +e un+e acesta va servi isierele cerute +e clienti. ,0emplu )aca )ocument$oot este +irectorul 6var6:e#4 iar un client se conecteaza la server olosin+ schema http?66:::.cr'stalmin+.ro6cursuri6linu0.html4 atunci serverul va translata http?66:::.cr'stalmin+.ro6cursuri6linu0.html in 6var6:e#6cursuri6linu0.html si va incerca sa livreze isierul clientului.

HTTPS HTTP este un protocol te0t /tot ceea ce transmite serverul clientului este te0t in ormat HT2<1 si in clar /in ormatia nu se cripteaza1. %+ata cu +ezvoltarea e0ploziva a :e#(ului si cu aparitia +e servicii critice care olosesc HTTP /online #an7ing4 online shopping etc1 mo+ul in clar +e operare a HTTP(ului a inceput sa reprezinte un mare +ezavantaC. 3n ormatia +intre client si server poate i usor interceptata olosin+ un simplu sni er precum tcp+ump sau :ireshar7. HTTPS inseamna HTTP Secure sau HTTP over SS< /Secure Soc7et <a'er1 si este un protocol cu acelasi scop ca si HTTP la care comunicatia +intre client si server este criptata olosin+ SS<6T<S. 3nitializarea unei sesiuni criptate presupune olosirea schemei https in loc +e http ceea ce are ca e ect conectarea la serverul :e# pe portul tcp6443 in loc +e tcp6=>. ,0emplu? https?66mail.google.com $esurse )ocument$oot HTTP "i7ipe+ia "3C HTTPS "i7ipe+ia

7 Serverul Apache . 7.2 Prezentare generala server

Prezentare generala server


Apache reprezinta un server care implementeaza protoculul HTTP /H'per Te0t Trans er Protocol1 si care ruleaza pe mai toate sistemele +e operare /"in+o:s4 <inu04 9ni04 ;S)4 2ac%S etc1. ,ste cel mai olosit server :e# +in lume iin+ instalat pe zeci +e milioane +e hosturi. Cota sa +e piata variaza intre !>(7>D. )intre cele mai populare :e# site(uri care ruleaza Apache enumeram? *oogle /ruleaza o versiune putin mo+i icata +e Apache numita *"S ( *oogle "e# Server14 Cisco S'stems4 "i7ipe+ia etc Apache a pornit ca un proiect al 8ational Center or Supercomputing Applications /8CSA1 pentru crearea unui server :e#. 3n momentul in care coor+onatorul +e proiect $o#ert 2cCool a parasit 8CSA in 1EE44 +ezvoltarea proiectului a ost sistata. 9lterior ceilalti mem#ri ai echipei au in iintat FApache *roupF si au continuat +ezvoltarea serverului. 3nitial aplicatia s(a numit 8CSA HTTP+. )in punct +e ve+ere istoric numele Apache are 2 ra+acini? 2

1. Con orm cu 5AG +e la Apache *roup? The name &Apache& :as chosen rom respect or the 8ative American 3n+ian tri#e o Apache4 :ell(7no:n or their superior s7ills in :ar are strateg' an+ their ine0hausti#le en+urance. 2. 5iin+ #azat pe co+ initial /+e la 8CSA1 serverul s(a +ezvolatat prin a+augarea +e patch(uri. /a patch' server1 $esurse Apache *roup 7 Serverul Apache . 7.3 Compilare si instalare

Compilare si instalare
3nstalarea prin compilare a Apache(ului se realizeaza in mo+ stan+ar+ ara pro#leme +eose#ite. ,0emplu +e mai Cos s(a realizat pe 5e+ora Core E. 3n mo+ 3),8T3C se compileaza si instaleaza pe orice +istri#utie <inu0. Pasi +e urmat? 1. )o:nloa+ sursele ultimei versiuni Apache +e pe site(ul pro+ucatorului http+.apache.org. Acestea pot i +o:nloa+ate in orice +irector +in sistem. Se ruleaza? :get http?66mirrors.evolva.ro6apache.org6apache(+ist6http+6http+(2.2.E.tar.#z2 2. Heri icare integritate arhiva tar.#z2 olosin+ hash(ul sau semnatura +igitala /%ptional +ar oarte recoman+at1 3. )ecomprimare si +ezarhivare arhiva. Se ruleaza? tar (0Cv http+(2.2.E.tar.#z2 4. $ularea scriptului con igure care veri ica sistemul si anume +aca acesta contine toate componentele necesare compilarii si instalarii serverului Apache. )orim instalarea in +irectorul 6opt6apache ast el incat sa putem urmari si stu+ia toate componentele cu care vine serverul. Se recoman+a rularea scriptului con igure +e catre un user neprivilegiat. Se ruleaza +in +irectorul cu surse? .6con igure ((pre i0I6opt6apache ((ena#le(so ((ena#le(mo+s(share+Iall 8ota 5ara optiunea ((pre i0I6opt6apache instalarea are loc in +irectoarele stan+ar+ precum 6usr6#in4 6usr6s#in4 6etc. 3n acest caz ne va i greu sa gasim isierele componente ale serverului sau sa(l +ezinstalam6stergem. %ptiunea ((ena#le(so are rolul +e a compila serverul cu suport mo+ular4 iar optiunea ((ena#le(mo+s( share+Iall are rolul +e a compila toate mo+ulele +isponi#ile. Acestea se vor gasi in +irectorul 6opt6apache6mo+ules si tre#uie incarcate la pornirea serverului pentru ca acesta sa se oloseasca +e unctionalitatea o erita +e acestea. Scriptul con igure al serverului are oarte multe optiuni +e compilare. Pentru vizualizarea tuturor optiunilor se poate rula +in +irectorul cu surse .6con igure ((help J less 5. Compilare Se recoman+a compilarea oricarei aplicatii +e catre un user neprivilegiat. 3n urma compilarii rezulta +in isierele sursa isiere e0ecuta#ile. Se ruleaza? ma7e !. 3nstalare 3nstalarea presupune +oar mutarea isierelor e0ecuta#ile rezultate in urma compilarii +in +irectorul cu surse in +irectorul +orit / 6opt6apache1. Coman+a poate i e0ecutata +oar +e root. Se ruleaza? ma7e install 3

8ota )upa instalare se recoman+a e+itarea isierului 6etc6man.con ig pentru inclu+erea man page(urilor utilitarelor venite o+ata cu instalarea serverului. 3n 6etc6man.con ig se a+auga? 2A8PATH 6opt6apache6man Compilare si instalare Apache )urata? 7.>4 min 2arime? 12.>!2; 7 Serverul Apache . 7.4 Structura Apache

Structura Apache
3n mo+ stan+ar+ o versiune compilata a serverului contine in +irectorul reprezentat prin Server$oot /in cazul nostru 6opt6apache1 urmatoarele +irectoare si utilitare? #in ( contine +aemonul http+ /serverul :e#1 precum si alte utilitare cum ar i apachectl olosit pentru controlul serverului si anume pornirea4 oprirea sau restartarea acestuia4 httpass:+ olosit pentru crearea +e useri pentru accesul restrictionat la anumite +irectoare4 a# olosit pentru #enchmar7ing4 ap0s /APache eKtenSion tool1 olosit pentru e0tin+erea unctionalitatii Apache prin compilarea +e noi mo+ule4 logrotate olosit pentru rotirea logurilor etcB man ( contine man pages /help(ul o icial1 pentru aplicatiile instalate / http+4 apachectl4 htpass:+ etc1B ht+ocs ( contine isierele care vor i servite clientilor. Acest +irector si toate +e su# el poarta +enumirea generica +e "e#Space si sunt accesi#ile tuturor /Atentie SecuritateL1. )irectorul 6opt6apache6ht+ocs este +e ault )ocument$ootB logs ( contine logurile serverului Apache. ,0ista 2 isiere importante accessMlog si errorMlogB cgi(#in ( contine scripturi C*3 /Common *ate:a' 3nter ace1B con ( contine isiere +e con igurare +intre care cel mai important este http+.con B mo+ules ( contine mo+ule )S% /)'namic Share+ %#Cects1 reprezentate prin isiere e0ecuta#ile ce sunt incarcate +e server la pornire pentru a(si e0tin+e unctionalitateaB manual ( contine manualul +e utilizare si con igurare al serverului in ormat HT2<B error ( contine isiere care reprezinta pagini HT2< ce vor i servite clientilor in caz +e eroare stan+ar+. 5iecare eroare stan+ar+ are un co+ unic / ,0emplu? 4>4 ( Page not oun+1B 8ota Apache poate i compilat mo+ular sau nemo+ular. 3n primul caz unctionalitatea sa se gaseste in isiere speciale numite mo+ule. 3n al +oilea caz unctionalitatea sa se a la chiar in +aemonul http+. Pentru a a isa mo+ulele compilate in +aemon se ruleaza? 6opt6apache6#in6http+ (l. 3n cazul in care Apache se compileaza mo+ular /optiunea ((ena#le(so a scriptului con igure14 mo+ulele se gasesc in +irectorul 6opt6apache6mo+ules /si mai corect in +irectorul numit mo+ules +in +irectorul reprezentat +e +irectiva Server$oot care este in cazul nostru 6opt6apache1. )aca acesta este gol cu toate ca s(a +orit compilarea mo+ulara inseamna cel mai pro#a#il o optiune eronata a scriptului con igure. 7 Serverul Apache . 7.5 Con igurare Apache

Configurare Apache
7.5.1 Con igurare 2inimala 7.5.2 )irective principale 4

7.5.3 Hirtual Hosting 7.5.4 Controlul accesului la resurse Con igurarea serverului Apache presupune e+itarea isierului +e con igurare http+.con sau a altor isiere care ulterior sunt incluse in acesta. ,0ista peste 3>> +e +irective +e con igurare4 iar iecare +irectiva este intro+usa +e un anumit mo+ul /+aca serverul a ost compilat mo+ular14 +eci +irectiva e0ista si poate i olosita in masura in care mo+ulul a ost incarcat in server. 9n mo+ul este reprezentat printr(un isier e0ecuta#il +in +irectorul mo+ules +in Server$oot /,0emplu? 6opt6apache6mo+ules1. Pentru ca serverul sa incarce un mo+ul4 in http+.con tre#uie a+augat in acesta? <oa+2o+ule 892,M2%)9< CA<,AMCAT$,M53S3,$9<MCA$,M$,P$,N38TAM2%)9<9< ,0emplu? <oa+2o+ule aliasMmo+ule mo+ules6mo+Malias.so 5isierul +e con igurare este citit +e catre Apache +oar la pornire /ca la toate serverele <inu0 +e alt el1. %rice mo+i icare in isierul +e con igurare presupune restartarea serverului Apache. Serverul se porneste4 opreste sau restarteaza olosin+ utilitarul apachectl +in +irectorul 6opt6apache6#in. Acesta primeste ca parametri start4 stop sau restart. ,0emplu? c+ 6opt6apache6#in .6apachectl restart 8ota )aca serverul se compileaza precum in e0emplul acestui curs4 procesul server care ruleaza se numeste http+. )aca serverul se instaleaza in mo+ automat +in repozitoare olosin+ apt(get install apache2 /in cazul 9#untu1 procesul server se numeste apache2. $esurse Apache Coo7#oo74 2n+ ,+ition ( Solutii si e0emple +e con igurare Apache Apache 2.2 ( )ocumentatia % iciala 7 Serverul Apache . 7.5 Con igurare Apache . 7.5.1 Con igurare 2inimala

Configurare Minimala
Con igurarea serverului Apache presupune e+itarea isierului +e con igurare http+.con . 3n general se porneste +e la un schelet +e isier cu care serverul FvineF in mo+ +e ault. 3mportant Serverul Apache este e0trem +e comple0. % intelegere apro un+ata a mo+ului in care acesta opereaza poate i +o#an+ita numai +upa oarte multa e0perienta. Pentru un server in pro+uctie4 mo+i icarea isierului +e con igurare tre#uie acuta cu griCa +upa intelegerea rolului si scopului iecarei +irective pe care o mo+i icam. 3n primele ran+uri ale isierului mostra http+.con gasim un avertisment +in partea Apache *roup? F)o 8%T simpl' rea+ the instructions in here :ithout un+erstan+ing :hat the' +o. The'&re here onl' as hints or remin+ers. 3 'ou are unsure consult the online +ocs. Oou have #een :arne+.F 5

Con igurarea minimala a serverului presupune? mo+i icarea Server$oot cu +irectorul in care acesta este instalatB sta#ilirea 3P(ului si portului pe care asculta serverul? +irectiva <istenB sta#ilirea userului si grupului su# care ruleaza serverul? +irectivele 9ser si *roup. Acestea nu tre#uie sa ie su# nicio orma useri generici olositi si +e alte servere. Tre#uie creat un user si un group pentru Apache care sa nu mai ie olosit in alt scopB mo+i icarea Server8ame cu numele sau 3P(ul serveruluiB sta#ilirea )ocument$oot4 +irectorul +in care serverul va urniza isiere clientilorB sta#ilirea isierelor +e ault pe care serverul le o era clientilor? +irectiva )irector'3n+e0B con igurarea mo+ului +e logare4 isierele in care serverul salveaza logurile si cantitatea +e in ormatii logataB alte con iguratii cum ar i +ocumentele stan+ar+ +e eroare etcB

,0emplu isier +e con igurare http+.con ? P P This is the main Apache HTTP server con iguration ile. 3t contains the P con iguration +irectives that give the server its instructions. P See @9$<?http?66http+.apache.org6+ocs62.2A or +etaile+ in ormation. P 3n particular4 see P @9$<?http?66http+.apache.org6+ocs62.26mo+6+irectives.htmlA P or a +iscussion o each con iguration +irective. P P )o 8%T simpl' rea+ the instructions in here :ithout un+erstan+ing P :hat the' +o. The' are here onl' as hints or remin+ers. 3 'ou are unsure P consult the online +ocs. Oou have #een :arne+. P P Con iguration an+ log ile names? 3 the ilenames 'ou speci ' or man' P o the server&s control iles #egin :ith F6F /or F+rive?6F or "in3214 the P server :ill use that e0plicit path. 3 the ilenames +o QnotQ #egin P :ith F6F4 the value o Server$oot is prepen+e+ (( so Flogs6 ooMlogF P :ith Server$oot set to F6opt6apacheF :ill #e interprete+ #' the P server as F6opt6apache6logs6 ooMlogF. P P Server$oot? The top o the +irector' tree un+er :hich the server&s P con iguration4 error4 an+ log iles are 7ept. P P )o not a++ a slash at the en+ o the +irector' path. 3 'ou point P Server$oot at a non(local +is74 #e sure to point the <oc75ile +irective P at a local +is7. 3 'ou :ish to share the same Server$oot or multiple P http+ +aemons4 'ou :ill nee+ to change at least <oc75ile an+ Pi+5ile. P Server$oot F6opt6apacheF P P <isten? Allo:s 'ou to #in+ Apache to speci ic 3P a++resses an+6or P ports4 instea+ o the +e ault. See also the @HirtualHostA P +irective. P P Change this to <isten on speci ic 3P a++resses as sho:n #elo: to P prevent Apache rom glomming onto all #oun+ 3P a++resses. P <isten 1E2.1!=.>.11?=> P P )'namic Share+ %#Cect /)S%1 Support P P To #e a#le to use the unctionalit' o a mo+ule :hich :as #uilt as a )S% 'ou P have to place correspon+ing R<oa+2o+ule& lines at this location so the P +irectives containe+ in it are actuall' availa#le M#e oreM the' are use+. P Staticall' compile+ mo+ules /those liste+ #' Rhttp+ (l&1 +o not nee+ P to #e loa+e+ here. P P ,0ample? P <oa+2o+ule ooMmo+ule mo+ules6mo+M oo.so P <oa+2o+ule authnM ileMmo+ule mo+ules6mo+MauthnM ile.so <oa+2o+ule authnM+#mMmo+ule mo+ules6mo+MauthnM+#m.so <oa+2o+ule authnManonMmo+ule mo+ules6mo+MauthnManon.so <oa+2o+ule authnM+#+Mmo+ule mo+ules6mo+MauthnM+#+.so <oa+2o+ule authnM+e aultMmo+ule mo+ules6mo+MauthnM+e ault.so <oa+2o+ule authzMhostMmo+ule mo+ules6mo+MauthzMhost.so <oa+2o+ule authzMgroup ileMmo+ule mo+ules6mo+MauthzMgroup ile.so <oa+2o+ule authzMuserMmo+ule mo+ules6mo+MauthzMuser.so <oa+2o+ule authzM+#mMmo+ule mo+ules6mo+MauthzM+#m.so <oa+2o+ule authzMo:nerMmo+ule mo+ules6mo+MauthzMo:ner.so <oa+2o+ule authzM+e aultMmo+ule mo+ules6mo+MauthzM+e ault.so <oa+2o+ule authM#asicMmo+ule mo+ules6mo+MauthM#asic.so <oa+2o+ule authM+igestMmo+ule mo+ules6mo+MauthM+igest.so <oa+2o+ule +#+Mmo+ule mo+ules6mo+M+#+.so <oa+2o+ule +umpioMmo+ule mo+ules6mo+M+umpio.so <oa+2o+ule e0tM ilterMmo+ule mo+ules6mo+Me0tM ilter.so <oa+2o+ule inclu+eMmo+ule mo+ules6mo+Minclu+e.so <oa+2o+ule ilterMmo+ule mo+ules6mo+M ilter.so <oa+2o+ule su#stituteMmo+ule mo+ules6mo+Msu#stitute.so <oa+2o+ule +e lateMmo+ule mo+ules6mo+M+e late.so <oa+2o+ule logMcon igMmo+ule mo+ules6mo+MlogMcon ig.so <oa+2o+ule logM orensicMmo+ule mo+ules6mo+MlogM orensic.so <oa+2o+ule logioMmo+ule mo+ules6mo+Mlogio.so <oa+2o+ule !

envMmo+ule mo+ules6mo+Menv.so <oa+2o+ule mimeMmagicMmo+ule mo+ules6mo+MmimeMmagic.so <oa+2o+ule cernMmetaMmo+ule mo+ules6mo+McernMmeta.so <oa+2o+ule e0piresMmo+ule mo+ules6mo+Me0pires.so <oa+2o+ule hea+ersMmo+ule mo+ules6mo+Mhea+ers.so <oa+2o+ule i+entMmo+ule mo+ules6mo+Mi+ent.so <oa+2o+ule usertrac7Mmo+ule mo+ules6mo+Musertrac7.so <oa+2o+ule uniSueMi+Mmo+ule mo+ules6mo+MuniSueMi+.so <oa+2o+ule setenvi Mmo+ule mo+ules6mo+Msetenvi .so <oa+2o+ule versionMmo+ule mo+ules6mo+Mversion.so <oa+2o+ule mimeMmo+ule mo+ules6mo+Mmime.so <oa+2o+ule +avMmo+ule mo+ules6mo+M+av.so <oa+2o+ule statusMmo+ule mo+ules6mo+Mstatus.so <oa+2o+ule autoin+e0Mmo+ule mo+ules6mo+Mautoin+e0.so <oa+2o+ule asisMmo+ule mo+ules6mo+Masis.so <oa+2o+ule in oMmo+ule mo+ules6mo+Min o.so <oa+2o+ule cgiMmo+ule mo+ules6mo+Mcgi.so <oa+2o+ule +avM sMmo+ule mo+ules6mo+M+avM s.so <oa+2o+ule vhostMaliasMmo+ule mo+ules6mo+MvhostMalias.so <oa+2o+ule negotiationMmo+ule mo+ules6mo+Mnegotiation.so <oa+2o+ule +irMmo+ule mo+ules6mo+M+ir.so <oa+2o+ule imagemapMmo+ule mo+ules6mo+Mimagemap.so <oa+2o+ule actionsMmo+ule mo+ules6mo+Mactions.so <oa+2o+ule spelingMmo+ule mo+ules6mo+Mspeling.so <oa+2o+ule user+irMmo+ule mo+ules6mo+Muser+ir.so <oa+2o+ule aliasMmo+ule mo+ules6mo+Malias.so <oa+2o+ule re:riteMmo+ule mo+ules6mo+Mre:rite.so @3 2o+ule LmpmMnet:areMmo+uleA @3 2o+ule LmpmM:inntMmo+uleA P P 3 'ou :ish http+ to run as a +i erent user or group4 'ou must run P http+ as root initiall' an+ it :ill s:itch. P P 9ser6*roup? The name /or Pnum#er1 o the user6group to run http+ as. P 3t is usuall' goo+ practice to create a +e+icate+ user an+ group or P running http+4 as :ith most s'stem services. P 9ser :::user *roup :::group @63 2o+uleA @63 2o+uleA P &2ain& server con iguration P P The +irectives in this section set up the values use+ #' the &main& P server4 :hich respon+s to an' reSuests that aren&t han+le+ #' a P @HirtualHostA +e inition. These values also provi+e +e aults or P an' @HirtualHostA containers 'ou ma' +e ine later in the ile. P P All o these +irectives ma' appear insi+e @HirtualHostA containers4 P in :hich case these +e ault settings :ill #e overri++en or the P virtual host #eing +e ine+. P P P ServerA+min? Oour a++ress4 :here pro#lems :ith the server shoul+ #e P e(maile+. This a++ress appears on some server(generate+ pages4 such P as error +ocuments. e.g. a+minT'our(+omain.com P ServerA+min 'ouTe0ample.com P P Server8ame gives the name an+ port that the server uses to i+enti ' itsel . P This can o ten #e +etermine+ automaticall'4 #ut :e recommen+ 'ou speci ' P it e0plicitl' to prevent pro#lems +uring startup. P P 3 'our host +oesn&t have a registere+ )8S name4 enter its 3P a++ress here. P Server8ame 1E2.1!=.>.11?=> P P )ocument$oot? The +irector' out o :hich 'ou :ill serve 'our P +ocuments. ;' +e ault4 all reSuests are ta7en rom this +irector'4 #ut P s'm#olic lin7s an+ aliases ma' #e use+ to point to other locations. P )ocument$oot F6opt6apache6ht+ocsF P P ,ach +irector' to :hich Apache has access can #e con igure+ :ith respect P to :hich services an+ eatures are allo:e+ an+6or +isa#le+ in that P +irector' /an+ its su#+irectories1. P P 5irst4 :e con igure the F+e aultF to #e a ver' restrictive set o P eatures. P @)irector' 6A %ptions 5ollo:S'm<in7s Allo:%verri+e 8one %r+er +en'4allo: )en' rom all @6)irector'A P P 8ote that rom this point or:ar+ 'ou must speci icall' allo: P particular eatures to #e ena#le+ ( so i something&s not :or7ing as P 'ou might e0pect4 ma7e sure that 'ou have speci icall' ena#le+ it P #elo:. P P P This shoul+ #e change+ to :hatever 'ou set )ocument$oot to. P @)irector' F6opt6apache6ht+ocsFA P P Possi#le values or the %ptions +irective are F8oneF4 FAllF4 P or an' com#ination o ? P 3n+e0es 3nclu+es 5ollo:S'm<in7s S'm<in7si %:ner2atch ,0ecC*3 2ultiHie:s P P 8ote that F2ultiHie:sF must #e name+ Qe0plicitl'Q ((( F%ptions AllF P +oesn&t give it to 'ou. P P The %ptions +irective is #oth complicate+ an+ important. Please see P http?66http+.apache.org6+ocs62.26mo+6core.htmlPoptions P or more in ormation. P %ptions 3n+e0es 5ollo:S'm<in7s P P Allo:%verri+e controls :hat +irectives ma' #e place+ in .htaccess iles. P 3t can #e FAllF4 F8oneF4 or an' com#ination o the 7e':or+s? P %ptions 5ile3n o AuthCon ig <imit P Allo:%verri+e 8one P P Controls :ho can get stu rom this server. P %r+er allo:4+en' Allo: rom all @6)irector'A P P )irector'3n+e0? sets the ile that Apache :ill serve i a +irector' P is reSueste+. P @3 2o+ule +irMmo+uleA )irector'3n+e0 in+e0.php in+e0.html in+e0.htm @63 2o+uleA P P The ollo:ing lines prevent .htaccess an+ .htpass:+ iles rom #eing P vie:e+ #' "e# clients. P @5iles2atch FUV.htFA %r+er allo:4+en' )en' rom all Satis ' All @65iles2atchA P P ,rror<og? The location o the error log ile. P 3 'ou +o not speci ' an ,rror<og +irective :ithin a @HirtualHostA P container4 error messages relating to that virtual host :ill #e P logge+ here. 3 'ou Q+oQ +e ine an error log ile or a @HirtualHostA P container4 that host&s errors :ill #e logge+ there an+ not here. P ,rror<og Flogs6errorMlogF P P <og<evel? Control the num#er o messages logge+ to the errorMlog. P Possi#le values inclu+e? +e#ug4 in o4 notice4 7

:arn4 error4 crit4 P alert4 emerg. P <og<evel :arn @3 2o+ule logMcon igMmo+uleA P P The ollo:ing +irectives +e ine some ormat nic7names or use :ith P a Custom<og +irective /see #elo:1. P <og5ormat FDh Dl Du Dt VFDrVF DAs D# VFDW$e ererXiVF VFDW9ser(AgentXiVFF com#ine+ <og5ormat FDh Dl Du Dt VFDrVF DAs D#F common @3 2o+ule logioMmo+uleA P Oou nee+ to ena#le mo+Mlogio.c to use D3 an+ D% <og5ormat FDh Dl Du Dt VFDrVF DAs D# VFDW$e ererXiVF VFDW9ser(AgentXiVF D3 D%F com#ine+io @63 2o+uleA P P The location an+ ormat o the access log ile /Common <og ile 5ormat1. P 3 'ou +o not +e ine an' access log iles :ithin a @HirtualHostA P container4 the' :ill #e logge+ here. Contrari:ise4 i 'ou Q+oQ P +e ine per(@HirtualHostA access log iles4 transactions :ill #e P logge+ therein an+ QnotQ in this ile. P Custom<og Flogs6accessMlogF common P P 3 'ou pre er a log ile :ith access4 agent4 an+ re erer in ormation P /Com#ine+ <og ile 5ormat1 'ou can use the ollo:ing +irective. P PCustom<og Flogs6accessMlogF com#ine+ @63 2o+uleA @3 2o+ule aliasMmo+uleA P P $e+irect? Allo:s 'ou to tell clients a#out +ocuments that use+ to P e0ist in 'our server&s namespace4 #ut +o not an'more. The client P :ill ma7e a ne: reSuest or the +ocument at its ne: location. P ,0ample? P $e+irect permanent 6 oo http?66:::.e0ample.com6#ar P P Alias? 2aps :e# paths into iles'stem paths an+ is use+ to P access content that +oes not live un+er the )ocument$oot. P ,0ample? P Alias 6:e#path 6 ull6 iles'stem6path P P 3 'ou inclu+e a trailing 6 on 6:e#path then the server :ill P reSuire it to #e present in the 9$<. Oou :ill also li7el' P nee+ to provi+e a @)irector'A section to allo: access to P the iles'stem path. P P ScriptAlias? This controls :hich +irectories contain server scripts. P ScriptAliases are essentiall' the same as Aliases4 e0cept that P +ocuments in the target +irector' are treate+ as applications an+ P run #' the server :hen reSueste+ rather than as +ocuments sent to the P client. The same rules a#out trailing F6F appl' to ScriptAlias P +irectives as to Alias. P ScriptAlias 6cgi(#in6 F6opt6apache6cgi(#in6F @63 2o+uleA @3 2o+ule cgi+Mmo+uleA P P ScriptSoc7? %n threa+e+ servers4 +esignate the path to the 983K P soc7et use+ to communicate :ith the C*3 +aemon o mo+Mcgi+. P PScriptsoc7 logs6cgisoc7 @63 2o+uleA P P F6opt6apache6cgi(#inF shoul+ #e change+ to :hatever 'our ScriptAliase+ P C*3 +irector' e0ists4 i 'ou have that con igure+. P @)irector' F6opt6apache6cgi(#inFA Allo:%verri+e 8one %ptions 8one %r+er allo:4+en' Allo: rom all @6)irector'A P P )e aultT'pe? the +e ault 232, t'pe the server :ill use or a +ocument P i it cannot other:ise +etermine one4 such as rom ilename e0tensions. P 3 'our server contains mostl' te0t or HT2< +ocuments4 Fte0t6plainF is P a goo+ value. 3 most o 'our content is #inar'4 such as applications P or images4 'ou ma' :ant to use Fapplication6octet(streamF instea+ to P 7eep #ro:sers rom tr'ing to +ispla' #inar' iles as though the' are P te0t. P )e aultT'pe te0t6plain @3 2o+ule mimeMmo+uleA P P T'pesCon ig points to the ile containing the list o mappings rom P ilename e0tension to 232,(t'pe. P T'pesCon ig con 6mime.t'pes P P A++T'pe allo:s 'ou to a++ to or overri+e the 232, con iguration P ile speci ie+ in T'pesCon ig or speci ic ile t'pes. P PA++T'pe application60(gzip .tgz P P A++,nco+ing allo:s 'ou to have certain #ro:sers uncompress P in ormation on the l'. 8ote? 8ot all #ro:sers support this. P PA++,nco+ing 0(compress .N PA++,nco+ing 0(gzip .gz .tgz P P 3 the A++,nco+ing +irectives a#ove are commente+(out4 then 'ou P pro#a#l' shoul+ +e ine those e0tensions to in+icate me+ia t'pes? P A++T'pe application60(compress .N A++T'pe application60(gzip .gz .tgz P P A++Han+ler allo:s 'ou to map certain ile e0tensions to Fhan+lersF? P actions unrelate+ to ilet'pe. These can #e either #uilt into the server P or a++e+ :ith the Action +irective /see #elo:1 P P To use C*3 scripts outsi+e o ScriptAliase+ +irectories? P /Oou :ill also nee+ to a++ F,0ecC*3F to the F%ptionsF +irective.1 P PA++Han+ler cgi(script .cgi P 5or t'pe maps /negotiate+ resources1? PA++Han+ler t'pe(map var P P 5ilters allo: 'ou to process content #e ore it is sent to the client. P P To parse .shtml iles or server(si+e inclu+es /SS31? P /Oou :ill also nee+ to a++ F3nclu+esF to the F%ptionsF +irective.1 P PA++T'pe te0t6html .shtml PA++%utput5ilter 38C<9),S .shtml @63 2o+uleA P P The mo+MmimeMmagic mo+ule allo:s the server to use various hints rom the P contents o the ile itsel to +etermine its t'pe. The 232,2agic5ile P +irective tells the mo+ule :here the hint +e initions are locate+. P P232,2agic5ile con 6magic P P Customiza#le error responses come in three lavors? P 11 plain te0t 21 local re+irects 31 e0ternal re+irects P P Some e0amples? P,rror)ocument 5>> FThe server ma+e a #oo #oo.F P,rror)ocument 4>4 6missing.html P,rror)ocument 4>4 F6cgi( #in6missingMhan+ler.plF P,rror)ocument 4>2 http?66:::.e0ample.com6su#scriptionMin o.html P P P ,na#le22AP an+ ,na#leSen+ ile? %n s'stems that support it4 P memor'(mapping or the sen+ ile s'scall is use+ to +eliver P iles. This usuall' improves server per ormance4 #ut must P #e turne+ o :hen serving rom net:or7e+(mounte+ P iles'stems or i support or these unctions is other:ise P #ro7en on 'our s'stem. P P,na#le22AP o P,na#leSen+ ile o P Supplemental con iguration P P The =

con iguration iles in the con 6e0tra6 +irector' can #e P inclu+e+ to a++ e0tra eatures or to mo+i ' the +e ault con iguration o P the server4 or 'ou ma' simpl' cop' their contents here an+ change as P necessar'. P Server(pool management /2P2 speci ic1 P3nclu+e con 6e0tra6http+(mpm.con P 2ulti( language error messages P3nclu+e con 6e0tra6http+(multilang(error+oc.con P 5anc' +irector' listings P3nclu+e con 6e0tra6http+(autoin+e0.con P <anguage settings P3nclu+e con 6e0tra6http+(languages.con P 9ser home +irectories P3nclu+e con 6e0tra6http+(user+ir.con P $eal(time in o on reSuests an+ con iguration P3nclu+e con 6e0tra6http+(in o.con P Hirtual hosts P3nclu+e con 6e0tra6http+(vhosts.con P <ocal access to the Apache HTTP Server 2anual P3nclu+e con 6e0tra6http+(manual.con P )istri#ute+ authoring an+ versioning /"e#)AH1 P3nclu+e con 6e0tra6http+(+av.con P Harious +e ault settings P3nclu+e con 6e0tra6http+(+e ault.con P Secure /SS<6T<S1 connections P3nclu+e con 6e0tra6http+(ssl.con P P 8ote? The ollo:ing must must #e present to support P starting :ithout SS< on plat orms :ith no 6+ev6ran+om eSuivalent P #ut a staticall' compile+(in mo+Mssl. P @3 2o+ule sslMmo+uleA SS<$an+omSee+ startup #uiltin SS<$an+omSee+ connect #uiltin @63 2o+uleA $esurse? 2o+ule Apache 2.2 Con igurare minimala Apache )urata? 14.>= min 2arime? 1>.>42; 7 Serverul Apache . 7.5 Con igurare Apache . 7.5.2 )irective principale

Directive principale
1. A+resa si portul pe care va asculta serverul. <isten 1E2.1!=.>.13?=> 3n cazul in care serverul are mai multe inter ete si +eci 3P(uri si se +oreste ca Apache sa asculte pe toate inter etele se oloseste? <isten Q?=> 2. 9serul si grupul su# care ruleaza Apache 9ser :::user *roup :::group 3. 8umele olosit +e server pentru a se i+enti ica clientilor. Haloarea +irectivei Server8ame este in mo+ normal numele serverului / ,0emplu? :::.cr'stalmin+.ro1. Se poate olosi si a+resa 3P. Server8ame 1E2.1!=.>.13?=> 4. )irectiva Server$oot reprezinta +irectorul in care se gaseste Apache si toate isierele necesare lui. )aca pe viitor in isierul +e con igurare 89 se va olosi o cale a#soluta si o cale relativa aceasta va i a+augata la Server$oot. Server$oot 6opt6apache ,0emplu? +ir16access inseamna 6opt6apache6+ir16access 5. )irectorul +in care Apache va servi continut clientilor. Acesta este "e#space(ul. Se poate olosi +irectiva Alias pentru a in+ica alte locatii E

)ocument$oot 6opt6apache6ht+ocs !. 2o+ulul +irMmo+ule intro+uce +irectiva )irector'3n+e0. )irector'3n+e0 reprezinta isierul servit +e ault clientilor in momentul in care acestia nu speci ica in mo+ e0press un isier. ,0emplu? +aca )irector'3n+e0 are valoarea in+e0.php4 iar un client se conecteaza la server olosin+ http?66:::.cr'stalmin+.ro4 serverul va urniza clientului isierul in+e0.php +in )ocument$oot ca si can+ acesta s(ar i conectat la server olosin+ http?66:::.cr'stalmin+.ro6in+e0.php <oa+2o+ule +irMmo+ule mo+ules6mo+M+ir.so @3 2o+ule +irMmo+uleA )irector'3n+e0 in+e0.html in+e0.php home.php @63 2o+uleA 7. )irectiva 3n+e0%ptions genereaza in+e0(ul unui +irector automat4 asemanator comenzii ls. )irectiva este intro+usa +e autoin+e0Mmo+ule <oa+2o+ule autoin+e0Mmo+ule mo+ules6mo+Mautoin+e0.so 3n+e0%ptions 5anc'3n+e0ing 5ol+ers5irst 3n+e03gnore Q.Cpeg =. )irectivele Alias si ScriptAlias se olosesc pentru a mapa un 9$< cu un +irector +in sistemul +e isiere care se gaseste in a ara +irectorului +e init +e )ocument$oot. ;ro:serul poate accesa ast el isiere +in a ara lui )ocument$oot. )irectiva ScriptAlias se oloseste +aca +irectorul target contine +oar scripturi C*3. Cele 2 +irective sunt intro+use +e aliasMmo+ule care tre#uie incarcat. <oa+2o+ule aliasMmo+ule mo+ules6mo+Malias.so Alias 6icons 6var6apache6images Alias se oloseste pentru a mapa o resursa +in :e#space cu una locala4 iar $e+irect pentru a mapa o resursa cu una remote. )irectiva $e+irect este intro+usa +e mo+Malias $e+irect 6help http?66:::.invata(online.ro E. )irectiva ,rror<og sta#ileste isierul in care serverul va salva mesaCele +e eroare. 5oarte util pentru trou#leshooting si +e#ugging. ,rror<og logs6errorMlog P<og<evel? Control the num#er o messages logge+ to the errorMlog. PPossi#le values inclu+e? +e#ug4 in o4 notice4 :arn4 error4 crit4 alert4 emerg. <og<evel :arn 1>. )irectiva ,rror)ocument speci ica isierul sau mesaCul pe care serverul il returneaza in caz +e eroare stan+ar+. ,0ista mai multe asa numite HTTP Status Co+es in unctie +e statusul paginii cerute serverului. 2ulte +intre acestea sunt co+uri +e eroare. )etalii. P2o+i icarea paginilor +e ault care vor i urnizate in caz +e eroare ,rror)ocument 5>> FThe server ma+e a #oo #oo.F ,rror)ocument 4>4 F<ipsesteLF P,rror)ocument 4>4 http?66:::.google.com P,rror)ocument 4>4 6missing.html ,rror)ocument 4>2 http?66:::.e0ample.com6su#scriptionMin o.html 8ota Apache status return co+es /lista incompleta1? 4>> ;a+ $eSuest ( HTTPM;A)M$,G9,ST 4>1 Authorization $eSuire+ ( HTTPM98A9TH%$3N,) 4>2 Pa'ment $eSuire+ ( HTTPMPAO2,8TM$,G93$,) 4>3 5or#i++en ( HTTPM5%$;3)),8 4>4 8ot 5oun+ ( HTTPM8%TM5%98) 4>5 2etho+ 8ot Allo:e+ ( HTTPM2,TH%)M8%TMA<<%",) 1>

4>! 8ot Accepta#le ( HTTPM8%TMACC,PTA;<, 4>7 Pro0' Authentication $eSuire+ ( HTTPMP$%KOMA9TH,8T3CAT3%8M$,G93$,) 4>= $eSuest Time(out ( HTTPM$,G9,STMT32,M%9T 4>E Con lict ( HTTPMC%85<3CT 41> *one ( HTTPM*%8, 411 <ength $eSuire+ ( HTTPM<,8*THM$,G93$,) 413 $eSuest ,ntit' Too <arge ( HTTPM$,G9,STM,8T3TOMT%%M<A$*, 414 $eSuest(9$3 Too <arge ( HTTPM$,G9,STM9$3MT%%M<A$*, 5>> 3nternal Server ,rror ( HTTPM38T,$8A<MS,$H,$M,$$%$ 5>1 2etho+ 8ot 3mplemente+ ( HTTPM8%TM32P<,2,8T,) 5>3 Service Temporaril' 9navaila#le ( HTTPMS,$H3C,M98AHA3<A;<, 5>5 HTTP Hersion 8ot Supporte+ ( HTTPMH,$S3%8M8%TMS9PP%$T,) 11. Pentru a seta optiuni pentru un anumit +irector +in "e#Space se olosesc +irective in ca+rul unui container +e tipul @)irector'A @)irector' +irectorulMcaruiaMiiMsetamMoptiunileA %ptiune1 %ptiune2 @6)irector'A ,0emplu? @)irector' 6opt6apache6ht+ocs6+ocsA %ptions 3n+e0es 5ollo:S'm<in7s Papartine mo+ulului core si poate sa apara +oar in @)irector'A glo#al. Speci ica +irectivele care pot aparea in .htaccess si Psuprascriu +irectivele +in conte0tul glo#al sau @)irector'A. )aca Allo:%verri+e este 8%8,4 serverul nici macar nu va mai Pincerca sa citeasca .htaccess Allo:%verri+e A<< @6)irector'A 3mportant .htaccess este un isier special care se oloseste pentru a seta optiuni pentru un +irector +in "e#Space. <a pornire serverul scaneaza +irectoarele +in "e#Space pentru isierul .htaccess si incarca +irective olosite in acesta. ,ste mo+alitatea prin care se pot seta optiunile pentru +i erite +irectoare ara a mo+i ica isierul glo#al +e con igurare http+.con . 8u orice +irectiva poate i olosita in .htaccess. )eci pentru a seta optiuni pentru un +irector acestea pot sa apara in isierul glo#al +e con igurare /+oar root il poate mo+i ica1 sau intr(un isier numit .htaccess in +irectorul respectiv /orice user cu +repturi +e scriere pe +irector poate crea si mo+i ica .htaccess1.

12. )irectiva 5iles2atch se oloseste +e cele mai multe ori pentru restrictionarea accesului la anumite isiere. ,0emplu? se +oreste con igurarea serverului ast el incat acesta sa nu transmita clientilor anumite isiere cum ar i imagini sau +ocumente. Poate i olosita si in .htaccess /in contrast cu @)irector'A si @<ocationA care nu pot i olosite in .htaccess1 Permite olosirea +e regular e0pressions. ,ste echivalenta cu +irectiva @5ilesA4 +ar +e pre erat. )aca se oloseste @5ilesA4 stringul care tre#uie FprinsF +e regular e0pression tre#uie prece+at cu FYF /til+a1. @5iles2atch FUV.htFA %r+er allo:4+en' )en' rom all @65iles2atchA @5iles Y FV./gi JCpZgJpng1[FA %r+er allo:4+en' Allo: rom 1E2.1!=.>.2 @65ilesA Pentru +etalii +espre +irectivele %r+er4 Allo: si )en' cititi capitolul FControlul accesului la resurseF a acestui curs. 13. 2o+ulul mimeMmo+ule se oloseste pentru a asocia o anumita actiune a serverului in unctie +e e0tensia isierului cerut +e client. )etalii.

11

,0emplu? clientul cere serverului un isier html sau un isier p+ . <oa+2o+ule mimeMmo+ule mo+ules6mo+Mmime.so )e aultT'pe te0t6plain T'pesCon ig con 6mime.t'pes )e o#icei e0ista isierul mime.t'pes care contine toate in ormatiile necesare +espre tipurile +e isiere si care se inclu+e in http+.con $esurse? )irectivele Apache 2.2 .htaccess ( )ocumentatia o iciala 7 Serverul Apache . 7.5 Con igurare Apache . 7.5.3 Hirtual Hosting

Virtual Hosting
)e cele mai multe ori pe un server Apache se +oreste gaz+uirea mai multor :e# site(uri. 3n cazul unui server +e+icat +e hosting4 pot i gaz+uite cateva sute +e site(uri. 8ota *az+uirea mai multor site(uri pe un sever poarta +enumirea +e Hirtual Hosting. Serverul Apache tre#uie sa poata ace +i erenta intre site(uri si sa serveasca continutul corespunzator. ,0ista 2 mo+alitati +e virtual hosting? 1. 3P(#ase+ Hirtual Hosting Serverul :e# se con igureaza cu mai multe 3P(uri4 cate unul pentru iecare site. 3P(urile se con igureaza pentru iecare inter ata sau se pot crea inter ete virtuale ast el incat unei singure inter ete izice i se pot asocia mai multe 3P(uri. 5iecare nume +e +omeniu care reprezinta un site se translateaza intr(un alt 3P. 3n unctie +e 3P(ul +estinatie +in pachet4 serverul :e# alege )ocument$oot al unui anume site si serveste continutul +in acesta. ,0emplu Presupunem gaz+uirea a 3 site(uri pe un server. Acestea sunt :::.cr'stalmin+.ro4 :::.invata( online.ro si :::.lim#istraine.net. Serverul tre#uie con igurat cu 3 3P(uri cate unul pentru iecare site. 3n unctie +e 3P(ul +estinatie +in pachetele pe care le primeste serverul i+enti ica site(ul la care se conecteaza clientul si serveste continutul ast el / iecare site are propriul )ocument$oot1? pentru primul 3P )ocument$oot este 6opt6apache6ht+ocs6cr'stal4 pentru al +oilea 3P )ocument$oot este 6opt6apache6ht+ocs6invata4 iar pentru al 3(a 3P Apache serveste clientilor isiere +in 6opt6apache6ht+ocs6lim#istraine 3n cazul unui numar mare +e site(uri 3P(#ase+ Hirtual Hosting nu este o con iguratie scala#ila mai ales +aca ne re erim la un server conectat +irect la 3nternet care tre#uie con igurat cu 3P(uri pu#lice. 2. 8ame+(#ase+ Hirtual Hosting $eprezinta varianta cea mai olosita si la in+emana +e gaz+uire a mai multor site(uri pe un singur server. Acesta este con igurat cu un singur 3P catre care sunt rezolvate prin )8S toate +omeniile. ,0emplu Presupunem gaz+uirea a +oua site(uri :::.cr'stalmin+.ro si :::.invata(linu0.ro. Cele 2 +omenii se translateaza catre unicul 3P pu#lic al serverului care este ==.>.>.1. 9n user +e pe 12

3nternet se va conecta atat la :::.cr'stalmin+.ro cat si la :::.invata(linu0.ro olosin+ 3P(ul ==.>.>.1 3ntre#area care apare este? cum +i erentiaza serverul :e# la ce site s(a conectat clientulZ $aspunsul sta in implementarea protocolului HTTP61.1 si anume olosirea unui hea+er +in protocolul HTTP +e catre client numit H%ST. Ast el un client va olosi 3P(ul +estinatie ==.>.>.1 si H%ST :::.cr'stalmin+.ro pentru a se conecta la primul site si 3P(ul +estinatie ==.>.>.1 si H%ST :::.invata(linu0.ro pentru cel +e(al +oilea site. 3n unctie +e valoarea H%ST serverul Apache sta#ileste )ocument$oot +in care tre#uie sa serveasca continutul. Pentru con igurarea 8ame+(#ase+ HirtualHosting in http+.con se a+auga? 8ameHirtualHost ==.>.>.1 @HirtualHost :::.cr'stalmin+.roA Server8ame :::.cr'stalmin+.ro ServerA+min a+minTcr'stalmin+.ro )ocument$oot 6opt6apache6ht+ocs6cr'stalmin+ ,rror<og 6opt6apache6error6cr'stalmMerorr Trans er<og 6opt6apache6logs6cr'stalmMaccessMlog @6HirtualHostA @HirtualHost :::.invata(linu0.roA Server8ame :::.invata(linu0.ro ServerA+min a+minTinvata( linu0.ro )ocument$oot 6opt6apache6ht+ocs6invata(linu0 ,rror<og 6opt6apache6error6invatalMerorr Trans er<og 6opt6apache6logs6invatalMaccessMlog @6HirtualHostA )etalii? )irectiva 8ameHirtualHost speci ica serverului Apache ca reSuesturile catre 3P(ul ==.>.>.1 tre#uie mai +eparte su# +ivizateB pentru iecare site este nevoie +e un container @HirtualHostAB @HirtualHost :::.cr'stalmin+.roA ( speci ica numele site(ului. Poate i olosit si 3P(ul pe care asculta serverulB )irectivele cruciale pentru 8ame+(#ase+ Hirtual Hosting sunt Server8ame care in+ica valoarea hea+erului H%ST trimis +e #ro:ser si +eci site(ul la care se conecteaza clientul si )ocument$oot care i+enti ica +irectorul +in care serverul va servi continut pentru acel siteB restul +irectivelor sunt optionale4 +ar recoman+ate in cazul in care +orim pentru iecare site sa con iguram o alta a+resa +e e(mail a a+minului4 un alt isier cu logurile +e eroare sau +e trans er etcB 8ota 1. 8ame+(#ase+ Hirtual Hosting unctioneaza +oar pentru #ro:serele care implementeaza versiunea 1.1 a protocolului HTTP. 2. Conceptul +e 8ame+(#ase+ Hirtual Hosting a ost implementat pentru prima +ata +e Apache4 ulterior iin+ inglo#at +e cam toate serverele :e#. $esurse? Apache Hirtual Host +ocumentation 7 Serverul Apache . 7.5 Con igurare Apache . 7.5.4 Controlul accesului la resurse

13

Controlul accesului la resurse


7.5.4.1 Acces in unctie +e 3P 7.5.4.2 Acces in unctie +e user si parola 2o+ul +e ault +e unctionare al serverului Apache presupune ca acesta serveste orice isier +in orice +irector +e su# +irectorul +e init +e )ocument$oot clientilor. Pentru un site +e prezentare acest comportament este accepta#il4 +ar pentru un sistem in ormatic4 pentru o sectiune +e a+ministrare4 pentru un 3ntranet sau pentru un site care contine in ormatii sensi#ile sau con i+entiale4 Apache tre#uie sa limiteze accesul la resurse +oar pentru clientii autorizati. ,0ista 2 mo+uri in care Apache poate limita accesul la resurse? 1. 3n unctie +e 3P(ul +e la care se conecteaza clientul Aceasta varianta este optima in momentul in care accesul la in ormatiile con i+entiale se realizeaza +e la un 3P sau grup +e 3P(uri cunoscute +inainte. 3n cazul in care cone0iunea are loc +e pe 3nternet limitarea accesului in unctie +e 3P este consi+erata oarte sigura. 3P(ul pu#lic este urnizat +e un 3SP4 iar un posi#il Crac7er nu poate su# nicio orma olosi un 3P care nu i(a ost setat +e provi+er. 2. 3n unctie +e username si parola Aceasta varianta este optima in momentul in care accesul la in ormatiile con i+entiale se realizeaza +e la 3P(uri +inamice4 necunoscute apriori cum ar i cazul utilizatorilor mo#ili care +oresc accesarea in ormatiei +e oriun+e s(ar a la. 8ota Pentru o securitate crescuta serverul :e# poate i con igurat pentru am#ele mo+uri +e restrictionare a accesului. 7 Serverul Apache . 7.5 Con igurare Apache . 7.5.4 Controlul accesului la resurse . 7.5.4.1 Acces in unctie +e 3P

Acces in functie de IP
2o+ulul care intro+uce +irectivele ce realizeaza accesul la resursele serverului in unctie +e 3P(ul clientului este mo+MauthzMhost pentru Apache 2.2 si mo+Maccess pentru Apache 1.3 si 2.> )irectivele olosite pentru restrictionara accesului sunt? %r+er4 Allo: si )en' si se olosesc in interiorul unui container @)irector'A pentru sta#ilirea accesului la un intreg +irector4 @<ocationA4 @5ilesA sau @5iles2atchA pentru sta#ilirea accesului +oar la anumite isiere. )irectiva Allo: speci ica 3P(urile +e la care se permit cone0iuni. Se pot olosi atat 3P(uri cat si clase +e 3P(uri sau nume +e +omenii. ,0emplu 1. Permite cone0iuni la server +e la un singur 3P Allo: rom 1E2.1!=.>.1 Allo: rom ==.>.>.1

14

2. Permite un intreg +omeniu / com sau :::.cr'stalmin+.ro1. Serverul realizeaza un reverse )8S pentru translatarea 3P(ului in nume +e +omeniu care ulterior este olosit pentru evaluare Allo: rom .com Allo: rom :::.cr'stalmin+.ro 3. Permite un intreg range +e 3P(uri olosin+ un pre i0 /6=1 Allo: rom 1>.>.>.>6= 4. Heri ica +oar partial /sa inceapa cu 1> sau 172.1!1 Allo: rom 1> 172.1! 5. Permite pentru un 3Pv! Allo: rom 2>>1?+#=??a>>?2> ? ea7?ccea !. Permite toate 3P(urile Allo: rom all )irectiva )en' speci ica 3P(urile +e un+e nu se permit cone0iuni. 2o+ul +e olosire este i+entic cu cel al +irectivei Allo: ,0emplu 1. ;locheaza un singur 3P )en' rom 1E2.1!=.>.E> 2. ;locheaza un intreg range +e 3P(uri )en' rom ==.>.>.>61! 3. ;locheaza in unctie +e +omeniu. Serverul Apache realizeaza reverse )8S )en' rom evil.linu0.com 4. ;locheaza cone0iuni +e la toate 3P(urile )en' rom all A 3(a +irectiva necesara4 %r+er poate avea 2 orme si sta#ileste or+inea +e evaluare. Cele 2 orme sunt? 1. %r+er Allo:4)en' Prima +ata sunt evaluate toate +irectivele Allo:. )aca nici una nu este a+evarata reSuestul clientului este reCectat. )en' este polic'? ce nu este permis +e un Allo: este reCectat @)irector' 6opt6apache6ht+ocs6cr'stalmin+.ro6:e#site6cursuriA %r+er Allo:4)en' Allo: rom cr'stalmin+.ro )en' rom ==.>.>.1 @6)irector'A

15

Pentru +irectorul 6opt6apache6ht+ocs6cr'stalmin+.ro6:e#site6cursuri sunt permise +oar reSuesturile +e la 3P(urile care se rezolva invers in )8S in cr'stalmin+.ro. $eSuesturile +e la ==.>.>.1 precum si restul reSuesturilor sunt reCectate. 2. %r+er )en'4 Allo: Prima +ata sunt evaluate toate +irectivele )en'. )aca vreuna este a+evarata 5A$A ca 3P(ul clientului sa ie FprinsF si +e o +irectiva Allo:4 reSuestul este reCectat. $eSuesturile care nu corespun+ cu nicio +irectiva )en' sau Allo: sunt permise. Allo: este Polic'? ce nu este reCectat +e un )en' este permis @)irector' 6opt6apache6ht+ocs6cr'stalmin+.ro6:e#siteA %r+er )en'4Allo: )en' rom ==.>.>.1 )en' rom 1E2.1!=.>.>624 @6)irector'A Pentru +irectorul 6opt6apache6ht+ocs6cr'stalmin+.ro6:e#site reSuesturile +e la 3P(ul ==.>.>.1 sau +in su#netul 1E2.1!=.>.>624 sunt reCectate. $estul reSuesturilor sunt permise +in cauza or+inei +e evaluare )en'4 Allo: %rice isier cu terminatia sau e0tensia 0ls este servit +oar +aca clientul se conecteaza +e la ==.>.>.1 @5iles2atch FV.0ls[FA %r+er Allo:4)en' Allo: rom ==.>.>.1 @65iles2atchA 3mportant 2o+ulul +e evaluare al +irectivelor Allo: si )en' este +i erit +e mo+ul +e evaluare a regulilor unui 5ire:all. $egulile unui ire:all sunt evaluate pana can+ o regula &prin+e& pachetul caz in care se e0ecuta o actiune ara a se mai evalua restul regulilor. 3n cazul +irectivelor Allo: si )en' toate regulile se evalueaza pana la inal ceea ce +etermina ca or+inea in care acestea apar sa nu ie importanta ceea ce este in contrast cu un ire:all.

$esurse? 3P(#ase+ Access Control mo+MauthzMhost4 Allo:4 )en' si %r+er ( )ocumentatia o iciala Accesul la resurse in unctie +e 3P )urata? 14.>= min 2arime? 1>.>42; 7 Serverul Apache . 7.5 Con igurare Apache . 7.5.4 Controlul accesului la resurse . 7.5.4.2 Acces in unctie +e user si parola

Acces in functie de user si parola


2o+ulele care intro+uc autenti icarea accesului la un +irector pe #aza +e username si parola sunt mo+MauthM+igest si mo+MauthM#asic. Primul reprezint o alternativa securizata. 8ota 2otivul pentru care am +ori sa olosim vreo+ata mo+ul #asic este ca anumite versiune mai vechi +e #ro:sere nu suporta mo+ul +igest. 9sername si parola cu care ne autenti icam se gasesc intr(un isier in clar sau in hash in unctie +e meto+a olosita. 5isierul cu username si parola se creaza cu coman+a ht+igest 1!

,0emplu? ht+igest (c 53<, realm username (c(A se oloseste +oar prima +ata si are +rep scop crearea isierului in care se vor gasi username si parola. 9lterior va goli isierul +aca se oloseste aceasta optiuneB ream (A zona4 categoria +in care ace parte userul. ,ste un nume generic precum a+min4 numeM irma sau orice alta +enumire.B ,0emplu? con igurare server Apache2 ast el incat accesul la +irectorul numit protect +in )ocument$oot sa ie proteCat. 3n momentul in care cineva va accesa +irectorul respectiv4 va aparea o ereastra ca cea +e mai Cos in care userul tre#uie sa se autenti ice.

Creare user numit user1? ht+igest (c 6opt6apache6con 6+igestMp: cma user1 un+e cma se numeste realm si tre#uie sa ie i+entic cu numele olosit +e +irectiva Auth8ame. Se pot proteCa ast el +irectoare /@)irector'A1 sau <ocation /@<ocationA1. 2o+ulul mo+MauthM+igest tre#uie sa ie incarcat. Pse creaza un +irector proteCat <oa+2o+ule authMmo+ule mo+ules6mo+Mauth.so @)irector' 6opt6apache6ht+ocs6protectA Pse speci ic mo+ul +e autenti icare /#asic sau +igest1 AuthT'pe )igest Ptre#uie sa ie i+entic cu realm +in coman+a ht+igest Auth8ame FcmaF Auth)igestProvi+er ile Pcalea catre +irectorul cu useri si parole Auth9ser5ile 6etc6apache6cont6+igestMp: $eSuire vali+(user @6)irector'A $esurse? mo+MauthM+igest coman+a ht+irest 7 Serverul Apache . 7.! PHP

PHP
7.!.1 Prezentare generala 7.!.2 3nstalare si compilare 7.!.3 Con igurare Apache si PHP 7 Serverul Apache . 7.! PHP . 7.!.1 Prezentare generala

Prezentare generala
PHP a ost inventat in 1EE5 +e catre un programator +anez pe nume $asmus <er+or . <a inceput PHP insemna FPersonal Home PageF. 3n prezent se consi+era ca PHP reprezinta un acromim recursiv +e la FPHP ( H'perte0t PreprocessorF si este un lim#aC +e scripting %penSource care este rulat +e serverul :e# 17

pentru a urniza in mo+ +inamic continut clientului /#ro:serului1. Programe interpretate versus programe e0ecutate PHP este un lim#aC +e programare interpretat si nu e0ecutat. Alte programe interpretate sunt P,$<4 P'thon si \ava. <im#aCele e0ecutate creaza prin compilare un isier #inar care se ruleaza. )e iecare +ata can+ se mo+i ica ceva in sursa programului acesta tre#uie recompilat. <im#aCele compilate sunt C4 C--4 Hisual ;asic etc <im#aCele interpretate nu genereaza programe4 isiere #inare e0ecuta#ile in urma compilarii. Acestea nu se compileaza. 3n schim# programul este impartit in mai multe operatii elementare numite opco+es care se e0ecuta +e catre serverul :e# /in cazul php +e catre Apache1 una cate una. )aca se mo+i ica ceva in program4 se mo+i ica +oar operatia elementara corespunzatoare. )e iecare +ata can+ se acceseza printr(un 9$< pagina o PHP4 serverul trimite pagina spre procesare interpretorului PHP care e0ecuta instructiunile +in pagina si apoi returneaza co+ HT2< clientului /3,I3nternet ,0plorer4 5ire o0 etc1. $esurse? PHP 5AG PHP "i7ipe+ia 7 Serverul Apache . 7.! PHP . 7.!.2 3nstalare si compilare

Instalare si compilare
8ota Pentru instalarea PHP presupunem e0istenta serverului Apache instalat con orm cu in+icatiile +in capitolele anterioare. 3nstalarea prin compilare a PHP se realizeaza in mo+ stan+ar+ olosin+ scriptul con igure4 ma7e si ma7e install. ,0emplu +e mai Cos s(a realizat pe 5e+ora Core E. 3n mo+ 3),8T3C se compileaza si instaleaza pe orice +istri#utie <inu0. Pasi +e urmat? 1. )o:nloa+ sursele ultimei versiuni PHP +e pe site(ul pro+ucatorului php.net. Acestea pot i +o:nloa+ate in orice +irector +in sistem. :get (c http?66:::.php.net6get6php(5.2.!.tar.#z26 rom6ro.php.net6mirror 2. Heri icare integritate arhiva tar.#z2 olosin+ hash(ul sau semnatura +igitala /%ptional +ar oarte recoman+at1 3. )ecomprimare si +ezarhivare arhiva Se ruleaza? tar (0Cv php(5.2.!.tar.#z2 apoi c+ php(5.2.! 4. $ularea scriptului con igure care veri ica sistemul si anume +aca acesta contine toate componentele necesare compilarii si instalarii PHP. )orim instalarea in +irectorul 6opt6php. Se recoman+a rularea scriptului con igure +e catre un user neprivilegiat. Se ruleaza? .6con igure ((:ith(ap0s2I6opt6apache6#in6ap0s (:ith(m'sSl ((pre i0I6opt6php 8ota 1. 5ara optiunea ((pre i0I6opt6php instalarea are loc in +irectoarele stan+ar+ precum 6usr6#in4 6usr6s#in4 6etc. 3n acest caz ne va i greu sa gasim isierele componente sau sa(l +ezinstalam6stergem.

1=

2. ap0s ( APache eKtenSion tool ( is a tool or #uil+ing an+ installing e0tension mo+ules or the Apache H'perTe0t Trans er Protocol /HTTP1 server. This is achieve+ #' #uil+ing a )'namic Share+ %#Cect /)S%1 rom one or more source or o#Cect iles :hich then can #e loa+e+ into the Apache server un+er runtime via the <oa+2o+ule +irective rom mo+Mso. 3. Plat orma <A2P/<inu0-Apache-2'SSl-PHP6Perl6P'thon1 presupune olosirea ca #aza +e +ate a serverului 2'SSl. Plat orma pentru aplicatii :e# presupune interactiunea +intre PHP si 2'sSl pentru servirea +e continut +inamic clientilor +in #aza +e +ate. %ptiunea ((:ith(m'sSl compileaza in PHP suport pentru 2'SSl. 4. )e ault PHP se compileaza cu suport pt. K2<. Scriptul con igure4 oarte pro#a#il4 nu va gasi li#rariile pentru 0ml2 care sunt +epen+inte /pe 9#untu1. Tre#uie instalate inainte +e rularea scriptului con igure /apt(get install li#0ml2 li#0ml2(+ev1. 3mportant 3n cazul in care se +oreste compilarea PHP cu suport +e 2'SSl4 componentele 2'sSl si anume m'sSl4 m'sSl(server4 m'sSl(+evel si m'sSl(li# tre#uie sa ie +eCa instalate. Alt el scriptul con igure returneaza eroare.

5. Compilare Se recoman+a compilarea oricarei aplicatii +e catre un user neprivilegiat. 3n urma compilarii rezulta +in isierele sursa isiere e0ecuta#ile. Se ruleaza? ma7e !. 3nstalare 3nstalarea presupune +oar mutarea isierelor e0ecuta#ile rezultate in urma compilarii +in +irectorul cu surse in +irectorul +orit / 6opt6php1. Coman+a poate i e0ecutata +oar +e root. Se ruleaza? ma7e install Compilare si instalare PHP )urata? 2.2E min 2arime? 4.132; 7 Serverul Apache . 7.! PHP . 7.!.3 Con igurare Apache si PHP

Configurare Apache si PHP


Pentru ca Apache si PHP sa poata comunica si +eci lucra impreuna este nevoie +e urmatoarele con iguratii? 1. ,+itare http+.con 5isierul +e con igurare al +aemonului http+ /serverul Apache1 tre#uie mo+i icat ast el incat acesta sa incarce mo+ulul PHP /+aca PHP a ost compilat ca mo+ul pentru Apache ( e0emplul nostru si cel mai olosit in practica1 si sa trimita isierele cu e0tensia .php preprocesorului PHP pentru a le e0ecuta. 3n http+.con tre#uie a+augat? <oa+2o+ule php5Mmo+ule mo+ules6li#php5.so @5iles Q.phpA Set%utput5ilter PHP Set3nput5ilter PHP @65ilesA A++T'pe application60(http+(php .php 8ota 1. )e multe ori +aca PHP a ost compilat ca mo+ul pentru Apache olosin+ ap0s24 liniile +e mai sus

1E

sunt a+augate automat in http+.con 4 caz in care tre#uie +oar sa veri icam prezenta lor. 2. 5isierul care reprezinta mo+ulul PHP apare in +irectorul cu mo+ule al lui Apache4 in cazul nostru 6opt6apache6mo+ules. 8umele mo+ulului poate sa +i ere4 caz in care tre#uie sa a+aptam in http+.con 2. Testare Pentru a testa unctionarea Apache - PHP se creeaza un isier cu e0tensia .php /,0emplu? phpMtest.php1 in )ocument$oot care sa contina urmatoarele linii? @Zphp phpin o/1B ZA 9lterior se acceseaza acest isier conectan+u(ne cu ;ro:serul la serverul :e# si ceran+ isierul phpMtest.php. 3mportant 3n cazul in care ;ro:serul +oreste +o:nloa+area isierului sau a iseaza e0act cele 3 linii +e mai sus4 PHP nu a ost instalat sau con igurat corect. ,ste nevoie +e trou#leshooting.

3n cazul in care PHP /si Apache1 a ost instalat si con igurat corect la accesarea paginii phpMtest.php este a isat mult continut care in+ica mo+ul +e operare al PHP4 +i erite varia#ile4 etc. )etalii pagina ce tre#uie a isata. 3. Con igurare PHP Con igurarea mo+ului in care PHP opereaza este controlata +e un isier numit php.ini. 3n mo+ e0press acest pas a ost trecut +upa pasul +e testare pentru simplu apt ca locatia un+e PHP cauta isierul php.ini nu este stan+ar+4 nu poate i mo+i icata +ecat la compilare4 iar unui user incepator ii este oarte greu sa gaseasca locatia sa. <ocatia isierului php.ini se i+enti ica in outputul generat +e pagina phpMtest.php +e la pasul 2. )upa i+enti icarea locatiei in care tre#uie sa se gaseasca php.ini4 un &schelet& +e isier tre#uie copiat in +irectorul respectiv /in cazul nostru este 6opt6php6li#1. % ast el +e mostra gasim in +irectorul cu surse si se numeste php.ini(recommente+ sau php.ini(+evelopment sau php.ini(pro+uction. Acesta se copiaza in 6opt6php6li# su# numele +e php.ini si se e+iteaza pentru a con igura mo+ul +e operare al PHP. Con igurare Apache si PHP )urata? 3.>= min 2arime? 3.232; 7 Serverul Apache . 7.7 Securitate "e#

Securitate We
Securitatea unui sistem in ormatic este la el +e #una ca cea mai sla#a veriga a sa. ,ste su icient ca un crac7er sa compromita serverul :e# sau sa ruleze un e0ploit la nivel +e aplicatie cum ar i un SSl 3nCection pentru ca apoi sa mai ai#a un mic pas pana sa +evina root pentru intreg sistemul +e operare. Plat ormele :e# ormate +in server http4 php4 server #aze +e +ate si aplicatiile instalate au un istoric plin +e vulnera#ilitati. )e oarte multe ori compromiterea unui sistem +e operare a plecat +e la con igurarea gresita a mo+ului in care PHP opereaza sau +e la serverul 2'SSl ori Apache. 2>

Securitatea in ormatiei este un proces continuu4 o stare +e apt. Securizarea unui server presupune cunostinte avansate si e0perienta. 3mi propun enumerarea catorva aspecte minimale care con+uc catre o plat orma :e# sta#ila si sigura. 1. Ascun+erea a cat mai multa in ormatie +espre serverul :e# care ruleaza4 versiunea acestuia4 versiunea +e PHP sau +e 2'SSl. Primul pas al oricarui atac in ormatic este i+enti icarea serviciilor si versiunilor care ruleaza. 9lterior un crac7er e0perimentant sau nu4 poate cauta pe 3nternet e0ploit(uri pentru anumite versiuni +e Apache sau +e PHP si le poate rula. Ascun+erea +e in ormatie in ve+erea cresterii securitatii in ormatice poarta +enumirea +e Fsecurit' through o#scurit'F. 3n general acest proces nu im#unatateste securitatea generala a sistemului ci +oar evita atacuri +in partea persoanelor nee0perimentate si care cauta tinte la intamplare. 2. 3nstalarea ultimei versiuni sta#ile +e server :e#4 php si server 2'SSl 3ntre specialistii in securitate si crac7eri e0ista o cursa continua. %ricat +e #un ar i un pro+us acesta nu poate i &#ug( ree&. Perio+ic se +escopera erori +e programare in maCoritatea serverelor care pot i e0ploatate +e persoane rau intentionate. Singura solutie inala este aplicarea unui patch care &astupa& respectiva &gaura +e securitate&. 3. $ularea serverului Apache si 2'SSl su# propriul user care sa nu mai ie olosit in alt scop. ,0emplu? apache ruleaza su# :::user si :::group4 iar 2'SSl su# m'sSluser si m'sSlgroup 4. Setarea accesului la resursele o erite +e server in unctie +e 3P(ul clientilor sau +e username si parola. )irectoarele sau isierele sensi#ile si con i+entiale tre#uie proteCate impotriva accesului neautorizat. Acces neautorizat poate i chiar si in+e0area paginilor respective +e catre motoare +e cautare precum *oogle. 3n ultima vreme multe tipuri +e atacuri se #azeaza pe cautarea pe *oogle +e continut con i+ential care a ost in+e0at +atorita con igurarii necorespunzatoare a serverelor HTTP. )etalii. 5. PHP Session Securit'. !. 3nstalarea si con igurarea mo+Mstatus pentru a urmarii activitatea si per ormantele serverului Apache 7. 3nstalarea Apache in Cail /chroote+1 =. 3nstalarea si con igurarea mo+Msecurit' mo+Msecurit' reprezinta cel mai cunoscut si olosit "A5 /"e# Application 5ire:all1. Acesta este e0trem +e comple04 iar pentru intelegerea apro un+ata a mo+ului in care acesta unctioneaza este nevoie +e cunostinte avansate. E. 5olosirea protocolului HTTPS in loc +e HTTP pentru continut con i+ential. %ricat +e sigur ar i con igurat sistemul si oricat +e #un ar i ire:all(ul4 in ormatia poate i captata si citita pe +rumul +intre sursa si +estinatie in cel mai simplu mo+ iin+ca aceasta circula in clar. Solutia este criptarea in ormatiei olosin+ ssl6tls /HTTPS1. 1>. 2'SSl Securit' setarea +e parola pentru userul root stergerea userilor anonimi 3mportant 21

8u e0ista sistem 1>>D sigur. %ricat +e pregatit este a+minul si oricata munca +epune in ve+erea securizarii serverului4 tot e0ista posi#ilitatea ca acesta sa ie compromis. Sansa ca serverul sa ie compromis tre#uie luata in calcul intot+eauna. )e multe ori un #ac7up e icient reprezinta salvarea.

$esurse? Apache Securit' Tips Apache Securit' ;oo7

22

S-ar putea să vă placă și