manual de supervivencia del administrador apache

Upload: tux3

Post on 01-Mar-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    1/67

    Manual de Supervivencia delAdministrador de ApacheEn gnu/Linux, por supuesto

    10 de noviembre de 2006

    Autor:Miguel Jaque Barbero

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    2/67

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    3/67

    3 Manual de Supervivencia del Administrador de Apache

    ndice de ContenidosCaptulo 1. Introduccin.......................................................................................................................7

    1.1. ontenido....................................................................................................................................!1.2. Li"en"ia.......................................................................................................................................!1.#. $esponsabilidad...........................................................................................................................!1.%. &"er"a del &utor..........................................................................................................................'

    Captulo 2. Introduccin.......................................................................................................................92.1. (ienes )uerte de *tili+ar &pa"e................................................................................................-2.2. nstala"in....................................................................................................................................-2.#. onigura"in..............................................................................................................................-2.%. &rranque arada.......................................................................................................................-2.3. ro"esos.......................................................................................................................................-

    Captulo . Servidor !"sico................................................................................................................11#.1. )ervidor )en"illo.......................................................................................................................11#.2. )ervidor onigurado por 4ire"torios.......................................................................................1#

    Captulo #. $osts %irtuales.................................................................................................................17%.1. 5p"iones de &rquite"tura..........................................................................................................1!%.2. osts 7irtuales por ................................................................................................................1'%.#. osts 7irtuales por uerto.........................................................................................................1-%.%. osts 7irtuales por 8ombre......................................................................................................20%.3. osts 7irtuales por 8ombre, uerto..................................................................................21

    %.6. osts 7irtuales 4in9mi"os........................................................................................................22%.!. 4ire"tivas para la onigura"in de osts 7irtuales................................................................2#

    Captulo &. Autenticacin...................................................................................................................2&3.1. :mo un"iona;.......................................................................................................................233.2. &utenti"a"in B9si"a.................................................................................................................263.#. &utenti"a"in B9si"a "on ermisos Espe"iales ...........................................................2'3.%. &utenti"a"in "on 4igest...........................................................................................................2-3.3. &utenti"a"in ersonali+ada......................................................................................................#03.6. 4ire"tivas para la &utenti"a"in................................................................................................#13.!. 5tras 5p"iones de &utenti"a"in..............................................................................................#2

    Captulo '. (e)ociacin de Contenidos.............................................................................................6.1. 8ego"ia"in de ontenidos por Multi7ie=s.............................................................................##6.2. 8ego"ia"in de ontenidos "on (pe Maps.............................................................................#%6.#. 4ire"tivas para la 8ego"ia"in de ontenidos..........................................................................#3

    Captulo 7. ndices...............................................................................................................................7!.1. 4ire"tivas para la onigura"in de ?ndi"es..............................................................................#!

    Captulo *. +edirecciones...................................................................................................................9'.1. $edire""iones "on &lias............................................................................................................#-'.2. $edire""iones "on $edire"t.......................................................................................................#-

    '.#. $e=rite......................................................................................................................................#-'.%. 4ire"tivas para la onigura"in de $edire""iones...................................................................%1

    Captulo 9. Contenidos ,in"micos con C-I.....................................................................................#

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    4/67

    Miguel Jaque Barbero ([email protected] !

    -.1. :@uA es ;.............................................................................................................................%#-.2. ECemplo de .........................................................................................................................%#-.#. onigura"in de s para *suarios.......................................................................................%3-.%. 4ire"tivas para la onigura"in de ..................................................................................%6

    Captulo 1. Server Side Includes......................................................................................................#710.1. ECemplo de ))........................................................................................................................%'10.2. ECemplo &van+ado de )).......................................................................................................%-

    Captulo 11. /o))in)...........................................................................................................................&111.1. Di"eros de Log.......................................................................................................................3111.2. 4ire"tivas para la onigura"in de Logs...............................................................................32

    Captulo 12. 0$0.................................................................................................................................&12.1. nstala"in onigura"in.....................................................................................................3#12.2. omprobando que Dun"iona....................................................................................................3%

    12.#. ra"ti"ando "on ...............................................................................................................3%12.%. ManeCo de Dormularios............................................................................................................3312.3. Evitando el aos......................................................................................................................36

    Captulo 1. Aplicaciones e con /AM0.......................................................................................&71#.1. nstala"in onigura"in de M)@L..................................................................................3!1#.2. one"tando "on la Base de 4atos............................................................................................3'1#.#. ECe"utando )enten"ias )@L.....................................................................................................3'1#.%. nsertando 4atos......................................................................................................................3-1#.3. onsultas de )ELE(.............................................................................................................60

    Captulo 1#. Secure Soc3ets /a4er 5SS/6..........................................................................................'11%.1. omo Dun"iona ))L................................................................................................................611%.2. nstala"in................................................................................................................................611%.#. onigura"in..........................................................................................................................621%.%. ECemplo....................................................................................................................................62

    Captulo 1&. Conseos para Meorar la Se)uridad...........................................................................'13.1. Mantente al 4a.......................................................................................................................6#13.2. rotege los Di"eros de onigura"in....................................................................................6#13.#. 7igila los Logs.........................................................................................................................6#13.%. Evita los ...........................................................................................................................6#

    13.3. Evita ))..................................................................................................................................6%13.6. Evita los ontenidos 4in9mi"os en eneral...........................................................................6%13.!. 7igila los Enla"es )imbli"os.................................................................................................6%13.'. a+ opias de )eguridad.........................................................................................................6%

    Captulo 1'. 8ptimiacin de +endimiento......................................................................................'&16.1. M9s $&M................................................................................................................................6316.2. *sa Linux 2.% o )uperior.........................................................................................................6316.#. Evita la $esolu"in de 48)s nversos....................................................................................6316.%. Evita los Enla"es )imbli"os...................................................................................................6616.3. Evita los Di"eros .ta""ess.....................................................................................................6616.6. La 8ego"ia"in de ontenidos................................................................................................6616.!. Evita ))..................................................................................................................................66

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    5/67

    " Manual de Supervivencia del Administrador de Apache

    16.'. ompila (u &pa"e.................................................................................................................66Captulo 17. !ilio)raa.....................................................................................................................'7

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    6/67

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    7/67

    # Manual de Supervivencia del Administrador de Apache

    Captulo 1. Introduccin

    1.1. Contenido

    Este do"umento no es un manual "ompleto de &pa"e. (ampo"o es una gua paraprogramadores =eb ni, mu"o menos, para quienes deseen "olaborar en la programa"indel )ervidor Feb &pa"e. )implemente es una ua $9pida de $eeren"ia para quienestengan la suerte de administrar un )ervidor Feb &pa"e.

    8aturalmente, este do"umento "ontiene errores de este do"umento pertene"en a su autor,Miguel Jaque Barbero 2006.

    )e "on"ede permiso para "opiar, distribuir /o modii"ar este do"umento baCo lostArminos de la Li"en"ia 8* de 4o"umenta"in Libre , versin 1.1 o "ualquier versin posterior publi"ada por la Dunda"in de)ot=are Libre K sin se""iones invariantes, ni textos deportada o "ontraportada.

    *na "opia de esta li"en"ia est9 disponible en ttp//===.gnu.org/"oplet/dl.tml.

    (odos los dere"os de reprodu""in

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    8/67

    Miguel Jaque Barbero ([email protected] $

    1.4. Acerca del Autor

    Miguel Jaque Barbero na"i en Bar"elona en 1-6'. Es ngeniero )uperior de(ele"omuni"a"in por la *niversidad olitA"ni"a de Madrid M9ster en &dministra"in

    de Empresas por el nstituto de Empresa de Madrid.a desarrollado toda su "arrera proesional en el se"tor de la ingeniera de sot=are ,desde 1--- "entrado ex"lusivamente en te"nologas de sot=are libre a travAs de lIeBenson

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    9/67

    % Manual de Supervivencia del Administrador de Apache

    Captulo 2. Introduccin

    2.1. Tienes Suerte de Utilizar Apace

    )in duda &pa"e es uno de los meCores servidores =eb que existen o. ara mu"os, elmeCor.

    4esde su "rea"in1 en 1--3 a dominado el mer"ado de servidores .

    o, &pa"e es desarrollado por una "omunidad de voluntarios que tiene su sede en===.apa"e.org. &ll podr9s en"ontrar toda la do"umenta"in detallada.

    2.2. Instalacin

    on 4ebian, la instala"in de &pa"e es mu sen"illa. Basta "on eCe"utar el "omando

    # apt-get install apache2

    G tendr9s el servidor =eb instalado.

    2.3. Con!i"uracin

    La "onigura"in de 4ebian, por dee"to, in"lue

    Los ar"ivos de "onigura"in de &pa"e en /var/www

    2.4. Arran#ue $ %arada

    &pa"e se eCe"uta "omo un demonio. ara arran"arlo basta "on eCe"utar el "omando

    # /etc/init.d/apache2 start

    G para detenerlo

    # /etc/init.d/apache2 stop

    E"9ndole un vista+o al s"ript ver9s que el "omando querealmente arran"a detiene &pa"e es apa"e2"tl. onsultando la p9gina de manual ver9s que tiene mu"as m9s op"iones que start stop.

    2.&. %rocesos

    &unque &pa"e se eCe"uta ini"ialmente "omo root, pues en un sistema Linux slo rootest9 autori+ado a abrir so"Iets en puertos por debaCo del 1000, &pa"e es"u"a, pordee"to, en el tradi"ional puerto '0 del proto"olo ((.

    &l arran"ar &pa"e el pro"eso de root arran"ar9 otros pro"esos iCos que a se eCe"utan

    "on otro usuario grupo menos peligroso que root. or dee"to estos pro"esos iCos seeCe"utan "on el usuario ;;;

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    10/67

    Miguel Jaque Barbero ([email protected] &'

    tiene permiso para leer los do"umentos que debe servir &pa"e.

    El pro"eso ini"ial no atender9 ninguna peti"in de "liente para evitar as problemas deseguridad. En su lugar, ser9n los pro"esos iCos quienes se en"arguen de servir las

    p9ginas.uedes "omprobar todo esto "on el "omando ps -aux para ver los pro"esos eneCe"u"in en tu sistema.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    11/67

    && Manual de Supervivencia del Administrador de Apache

    Captulo 3. Ser'idor ()sico

    El i"ero de "onigura"in de &pa"e que 4ebian instala por dee"to, aunque es mu bueno, es tambiAn mu"ompli"ado no nos sirve para expli"ar los "on"eptos m9s elementales de &pa"e.

    &s que vamos a "ambiarlo

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    12/67

    Miguel Jaque Barbero ([email protected] &

    3.1.1. Directivas Bsicas

    Ser'er*a+e

    Estable"e el nombre "on el que el servidor se "ono"e a s mismo.

    Esta dire"tiva se utili+a para las redire""iones. Es de"ir, "uando &pa"ele tiene que indi"ar al "liente otra dire""in a la que tieneque ir.

    Es importante que ese nombre se pueda resuelver por 48). 4e lo"ontrario el "liente no podr9 a""eder a la p9gina redire""ionada.

    Ser'erRoot

    Estable"e el dire"torio en el que se en"uentran los i"eros de"onigura"in de &pa"e.

    G si &pa"e no "ono"e el dire"torio de "onigura"in, :"mo puedea""eder a Aste i"ero de "onigura"in;

    La respuesta a esta paradoCa es que &pa"e puede arran"arse pas9ndole"omo par9metro un i"ero de "onigura"in. ero puede o"urrir que enel i"ero de "onigura"in agamos reeren"ia a otros i"eros quedeben in"luirse.

    ,ocu+entRoot

    Estable"e el dire"torio en el que se en"uentran los i"eros que &pa"eservir9 a los "lientes .

    %id-ile

    Estable"e el i"ero en el que se guardar9 el nNmero del pro"eso de&pa"e.

    Este i"ero es el que se lee "uando a que parar/matar el pro"eso.

    User

    Estable"e el usuario "on el que se eCe"utar9 &pa"e.

    Bueno, realmente el pro"eso &pa"e se eCe"uta "omo root, porquenormalmente tiene que abrir un so"Iet de es"u"a para el puerto '0 ,en 5)P, slo root puede abrir puertos por debaCo del 1000.

    )in embargo, tras arran"ar ese primer pro"eso "omo root, &pa"e "reavarios pro"esos iCos que se eCe"utan "on el usuario estable"ido en estadire"tiva . Estos pro"esos ser9n quienesrealmente atender9n las peti"iones de los usuarios.

    roup

    Estable"e el grupo "on el que se eCe"utar9 &pa"e

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    13/67

    &3 Manual de Supervivencia del Administrador de Apache

    /rrorLo"

    Estable"e el i"ero de log de errores de &pa"e.

    En este i"ero se registrar9n los allos de a""eso, intentos de a""eso a

    re"ursos sin autori+a"in, p9ginas no en"ontradas, et".

    Listen

    Estable"e la dire""in el puerto en el que es"u"ar9 &pa"e.

    or dee"to, &pa"e es"u"ar9 en todas las dire""iones abilitadasen la m9quina.

    ,irector$Inde0

    Estable"e los nombres de i"eros que servir9n "omo ndi"es al a""eder

    a un dire"torio sin indi"ar ningNn re"urso "on"reto.&s, si un usuario soli"ita ===.mi=eb.org/dir1/ &pa"e bus"ar9 en esedire"torio i"eros "on el nombre indi"ado en esta dire"tiva paraentreg9rselos.

    T$pesCon!i"

    Estable"e el i"ero "on la lista de tipos Mime.

    Los tipos Mime "onstituen un est9ndar que rela"iona tipos de i"eros"on sus extensiones le permiten a &pa"e inormar al navegador del

    tipo de i"ero que le est9 entregando. &s, el navegador de"ide "omopresentarlo

    ,e!aultT$pe

    Estable"e el tipo Mime por dee"to para aquellos i"eros "uaextensin no igure en la lista de tipos Mime.

    3.2. Ser'idor Con!i"urado por ,irectorios

    En el servidor sen"illo que a"abamos de ver, la "onigura"in es la misma para todos losdo"umentos que estemos publi"ando.

    En algunos "asos puede interesarnos tener "onigura"iones dierentes para distintosdire"torios e in"luso para distintos i"eros.

    ara eso, podemos utili+ar un i"ero de "onigura"in "omo el siguiente

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    14/67

    Miguel Jaque Barbero ([email protected] &!

    #(ichero de 4oniguracin *5% 657+S

    ServerName "aym.juntae.es"

    Server%oot "/etc/apache2"!ocument%oot "/var/'''"*id(ile /var/run/apache2.pid+ser '''-dataroup '''-datarrorog /var/log/apache2/error.logisten 013ypes4onig /etc/mime.types!eault3ype tet/plain

    !irectorynde inde.html inde.htm

    #stablecemos la coniguracin de cada directorio

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    15/67

    &" Manual de Supervivencia del Administrador de Apache

    ption

    Modii"a las op"iones que se apli"an a un dire"torio.

    Las op"iones se aaden respe"to a las que en

    ese momento se apli"asen sobre el dire"torio.Mediante esta dire"tiva pueden aadirse/quitarse las siguientesop"iones &ll, Exe", Dollo=)mLinIs, n"ludes,n"ludes85EPE, ndexes, Multivie=s )mLinIs5=nerMat".

    -ile

    ndi"a que el bloque de "onigura"in que abar"a se apli"ar9 a los i"eros "uo nombre "oin"ida "on elindi"ado.

    (ambiAn a una dire"tiva TDileMat"U que permite utili+arexpresiones regulares. &s, un mismo bloque de "onigura"in puedeapli"arse a varios i"eros.

    Location

    ndi"a que el bloque de "onigura"in que abar"a se apli"ar9 a las lo"ali+a"iones que "oin"idan "on la indi"ada.

    La Rlo"ali+a"inS es la dire""in que soli"ita el "liente. DCate que no eslo mismo que el sistema de i"eros

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    16/67

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    17/67

    Manual de Supervivencia del Administrador de Apache

    Captulo 4. osts 5irtuales

    (ener todo un servidor &pa"e para atender slo un sitio =eb es una pArdida de re"ursos.

    &pa"e es "apa+ de atender, desde una sola m9quina a todo un "onCunto de sitios =eb. Esde"ir, podemos servir al mismo tiempo peti"iones para am.Cuntaex,es, bs.Cuntaex.es,===.ilIebenson."om, ===.apa"e.org, ===.Iernel.org...

    Esto se a"e utili+ando Rosts virtualesS.

    4.1. pciones de Ar#uitectura

    ara atender varios sitios =eb primero debemos "onseguir que las peti"iones de los

    "lientes para esas *$Ls lleguen asta nuestro servidor. Este es un problema de la"onigura"in de 48)s que, "omo administradores de &pa"e, no nos "orresponde.

    ero, si lo que quieres es a"er pruebas, puedes modii"ar el i"ero osts de tus "lientes

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    18/67

    Miguel Jaque Barbero ([email protected] &$

    4.2. osts 5irtuales por I%

    )upongamos en primer lugar, que nuestro servidor atiende dos dire""iones queasignamos "ada una de ellas a un sitio =eb.

    El i"ero de "onigura"in sera el siguiente

    #(ichero de 4oniguracin para ?5S3S @%3+$S *5% *

    Server%oot "/etc/apache2"!ocument%oot "/var/'''"*id(ile /var/run/apache2.pid+ser '''-dataroup '''-datarrorog /var/log/apache2/error.logisten 013ypes4onig /etc/mime.types!eault3ype tet/plain

    !irectorynde inde.html inde.htm

    #stablecemos la coniguracin para cada ?ost @irtual

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    19/67

    &% Manual de Supervivencia del Administrador de Apache

    4.3. osts 5irtuales por %uerto

    agamos lo mismo, pero en una de las dire""iones , utili"emos dos puertos (/

    distintos para atender dos sitios dierentes.El i"ero de "onigura"in sera el siguiente

    #(ichero de 4oniguracin para ?5S3S @%3+$S *5% * E *+%35

    Server%oot "/etc/apache2"!ocument%oot "/var/'''"*id(ile /var/run/apache2.pid+ser '''-dataroup '''-datarrorog /var/log/apache2/error.logisten 01

    3ypes4onig /etc/mime.types!eault3ype tet/plain

    !irectorynde inde.html inde.htm

    #ndicamos el puerto de cada sitio 'eb

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    20/67

    Miguel Jaque Barbero ([email protected] '

    4.4. osts 5irtuales por *o+bre

    G aora, "oniguremos el servidor utili+ando los nombres de "ada sitio =eb

    #(ichero de 4oniguracin para ?5S3S @%3+$S *5% N5G6%

    Server%oot "/etc/apache2"!ocument%oot "/var/'''"*id(ile /var/run/apache2.pid+ser '''-dataroup '''-datarrorog /var/log/apache2/error.logisten 013ypes4onig /etc/mime.types!eault3ype tet/plain

    !irectorynde inde.html inde.htm

    #a coniguracin de hosts virtuales por nombre se aplica a las#peticiones recibidas en esta *Nae+irtua*o&t ,-2.,.2.,

    #4oniguramos haciendo reerencia a cada sitio por su nombre

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    21/67

    & Manual de Supervivencia del Administrador de Apache

    4.&. osts 5irtuales por *o+bre6 I% $ %uerto

    ara "ompletar el eCemplo, "oniguremos el servidor utili+ando todas las op"iones

    #(ichero de 4oniguracin para ?osts @irtuales

    Server%oot "/etc/apache2"!ocument%oot "/var/'''"*id(ile /var/run/apache2.pid+ser '''-dataroup '''-datarrorog /var/log/apache2/error.logisten 013ypes4onig /etc/mime.types!eault3ype tet/plain

    !irectorynde inde.html inde.htm

    Nae+irtua*o&t ,-2.,.2.,

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    22/67

    Miguel Jaque Barbero ([email protected]

    4.7. osts 5irtuales ,in)+icos

    ero... :quA pasa si tenemos que "onigurar de"enas, "ientos o in"luso miles de sitios =eb

    tal "omo o"urre en un );ara eso tenemos la op"in de osts 7irtuales 4in9mi"os. 7eamos un eCemplo

    #(ichero de 4oniguracin para ?osts @irtuales !in,micos

    ServerName "sabio"Server%oot "/etc/apache2"!ocument%oot "/var/'''"*id(ile /var/run/apache2.pid+ser '''-dataroup '''-data

    rrorog /var/log/apache2/error.logisten 013ypes4onig /etc/mime.types!eault3ype tet/plainrrorog /tmp/juntaeA%%5%.log

    !irectorynde inde.html inde.htm

    #4argamos el mdulo que nos permite hacer coniguracin din,mica de#hosts virtualesIncude /etc/apache2/od&'aaia4e/ho&t5aia&.oad

    #e indicamos a $pache que utilice como nombre 8ServerName9 el de la#peticin recibida6&eCanonicaNae Off

    #stablecemos el !ocument%oot para cada sitio 'eb que atendemos.+irtuaocuent7oot /ar/$$$/8,.1

    ero, si tenemos mu"os sitios =eb, tambiAn puede ser Ntil que "ada uno de ellos tenga supropio i"ero de "onigura"in .

    Esto podemos "onseguirlo "argando todos los i"eros de "onigura"in de los sitiosvirtuales desde un dire"torio.

    odramos a"erlo utili+ando la siguiente lnea en el i"ero de "onigura"in de &pa"e

    nclude /etc/apache2/sites-enabled/HI.#JK

    Esta dire"tiva in"lue en el i"ero de "onigura"in todos los i"eros que en"uentre enel dire"torio indi"ado.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    23/67

    3 Manual de Supervivencia del Administrador de Apache

    4.8. ,irecti'as para la Con!i"uracin de osts 5irtuales

    7eamos las dire"tivas que emos utili+ado

    5irtualostndi"a que el bloque de "onigura"in que abar"a se apli"a al sitio =eb indi"ado.

    ada ost virtual se puede identii"ar por , uerto o por nombre.

    *a+e5irtualost

    Estable"e la dire""in sobre la que se "onigurar9n osts virtuales.

    5irtual,ocu+entRoot

    Estable"e din9mi"amente la ra+ de los do"umentos

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    24/67

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    25/67

    " Manual de Supervivencia del Administrador de Apache

    Captulo &. Autenticacin

    En mu"as o"asiones querremos restringir el a""eso a algunos re"ursos . on&pa"e podemos estable"er me"anismos de usuario "ontrasea, para limitar el a""eso.&dem9s, los usuarios pueden in"luirse en grupos estable"er permisos para estos Nltimos.

    XE$5 *4&45Y la transmisin de inorma"in tiene una en"ripta"in mu dAbil. 8omontes ninguno de los me"anismos que veremos a "ontinua"in si no utili+as tambiAn))L. ualquier snier podr9 9"ilmente robarte las "ontraseas.

    &.1. 9C+o !unciona:

    *na ve+ que estable"emos que un determinado re"urso de nuestro servidor requiereautenti"a"in, al intentar a""eder a Al &pa"e devuelve al "liente un mensaCe %01

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    26/67

    Miguel Jaque Barbero ([email protected] )

    &.2. Autenticacin ()sica

    on este me"anismo la "ontrasea es enviada en "laro por la red, o "omo mu"o, "on una

    "odii"a"in en base 6% . 7eamos un eCemplo

    #(ichero de 4oniguracin con $utenticacin 6,sica

    ServerName "sabio"Server%oot "/etc/apache2"!ocument%oot "/var/'''"*id(ile /var/run/apache2.pid+ser '''-dataroup '''-datarrorog /var/log/apache2/error.logisten 01

    3ypes4onig /etc/mime.types!eault3ype tet/plain!irectorynde inde.html inde.htm

    Name@irtual?ost BC2.BD0.1.LB:@irtual?ost aym.juntae.es;

    ServerName "aym.juntae.es"!ocument%oot "/var/'''/aym"rrorog /tmp/aymA%%5%.log3ranserog /tmp/aymA$44SS.log:!irectory /var/'''/aym/pac;

    #stablecemos el tipo de 4ontrol de $cceso que se#utili&ar, para acceder a este directorio9uth:!pe ;a&ic

    #e damos un nombre al entorno privado que protegemos9uthNae "Inforacin riada de a 9C"

    #(ichero con la inormacin de los usuarios autori&ados y#sus contraseMas 8encriptadas9.9uth6&erFie /u&r/cur&oapache/u&er&

    #(ichero con la inormacin de los grupos y sus usuarios#miembros.9uth=roupFie /u&r/cur&oapache/group&

    #stablecemos el nivel de seguridad para este directorio.re>uire aid'u&er#5tros valores posibles sonF

    # require user usuarioB usuario2 ... lista con los# usuarios autori&ados# require group grupoB grupo2 ... lista con los# grupos autori&ados# require user usuB usu2 group grB gr2 ... una# combinacin de ambos

    :/!irectory;:/@irtual?ost;

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    27/67

    # Manual de Supervivencia del Administrador de Apache

    5.2.1. Ficheros de Usuarios !rupos

    La inorma"in "on los usuarios las "ontraseas se guarda en el i"erosealado por la dire"tiva &ut*serDile. Este i"ero tendr9 algo pare"ido a

    usuBFaprBEm2v...>$t2gByDd5StO1OP>a2.usu2FaprB1!1n/..cv0e$61(y>j/*no*/1D.

    G, naturalmente, debe estar donde ningNn usuario del servidor =eb pueda llegara leerlo.

    omo po"a gente es "apa+ de es"ribir dire"tamente la "ontrasea en"riptada,&pa"e in"lue una apli"a"in para gestionar este i"ero. )e trata dehtpasswd2.

    ara "rear un i"ero "omo el del eCemplo, tendremos que eCe"utar los siguientes"omandos

    # htpass'd2 -cm /usr/cursoapache/users usuB# htpass'd2 -m /usr/cursoapache/users usu2

    El primero "rea el i"ero le aade el usuario usu1. La op"in " indi"a que se debe"rear un nuevo i"ero la op"in m que la "ontrasea se en"riptar9 "on M43.

    El segundo "omando simplemente aade el usuario us2 al i"ero a "reado.

    En ambos "asos se nos preguntar9 por la "ontrasea.

    El i"ero de grupos "ontiene la inorma"in de estos, indi"ando quA usuariospertene"en a "ada grupo. 8o requiere ningNn "omando, pues se trata de un simplei"ero de texto, "on una estru"tura "omo la siguiente

    pacF usuB usu2desarrolloF progB prog2

    DCate que los usuarios de "ada grupo no se separan por "omas

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    28/67

    Miguel Jaque Barbero ([email protected] $

    &.3. Autenticacin ()sica con %er+isos /speciales ;Allo

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    29/67

    % Manual de Supervivencia del Administrador de Apache

    &.4. Autenticacin con ,i"est

    odemos meCorar algo la seguridad utili+ando 4igest. En lugar de enviar la "ontrasea en"laro por la red, "on 4igest las "ontraseas no viaCan porla red.

    En lugar de eso, al pedir un re"urso protegido, el servidor enva al "liente un nNmero. Le basta "on guardar otro digest basado en la misma"ontrasea para poder "omprobarlo.

    iertamente, este me"anismo redu"e el riesgo de "aptura de "ontraseas. 7eamos uneCemplo

    #(ichero de 4oniguracin con $utenticacin con !igest

    ServerName "sabio"Server%oot "/etc/apache2"!ocument%oot "/var/'''"*id(ile /var/run/apache2.pid+ser '''-data

    roup '''-datarrorog /var/log/apache2/error.logisten 013ypes4onig /etc/mime.types!eault3ype tet/plainrrorog /tmp/juntaeA%%5%.log!irectorynde inde.html inde.htm

    Name@irtual?ost BC2.BD0.1.LB

    #4argamos el mdulo que necesitamosIncude /etc/apache2/od&'aaia4e/auth5dige&t.oad

    :@irtual?ost aym.juntae.es;ServerName "aym.juntae.es"Server$dmin "'ebmasterUaym.juntae.es"!ocument%oot "/var/'''/aym"rrorog /tmp/aymA%%5%.log3ranserog /tmp/aymA$44SS.log:!irectory /var/'''/aym/pac;

    9uth:!pe ige&t$uthName "pac"#(ichero con los !igest de los usuarios autori&ados9uthige&tFie /u&r/cur&oapache/dige&trequire valid-user

    :/!irectory;:/@irtual?ost;

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    30/67

    Miguel Jaque Barbero ([email protected] 3'

    5.".1. Fichero de Digest

    La gestin del i"ero de digest en el servidor se reali+a "on la apli"a"in tdigest2. araaadir los mismos usuarios que tenamos, debemos reali+ar los siguientes "omandos

    # htdigest -c /usr/cursoul/digest pac usuB# htdigest /usr/cursoul/digest pac usu2

    4e nuevo, la op"in " en el primer "omando "rear9 el i"ero.

    DCate que es ne"esario pasarle al "omando el nombre del entorno protegido

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    31/67

    3& Manual de Supervivencia del Administrador de Apache

    &.7. ,irecti'as para la Autenticacin

    7eamos las dire"tivas que emos utili+ado

    AutT$peEstable"e el tipo de autenti"a"in de usuario que se utili+ar9.

    Los valores posibles son Basi" 4igest.

    Aut*a+e

    Estable"e el nombre para el espa"io protegido.

    AutUser-ile

    Estable"e el i"ero del servidor que guarda la inorma"in de usuarios sus "ontraseas en"riptadas

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    32/67

    Miguel Jaque Barbero ([email protected] 3

    Access-ile*a+e

    Estable"e el nombre para los i"eros de "onigura"in distribuidos.

    Allo

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    33/67

    33 Manual de Supervivencia del Administrador de Apache

    Captulo 7. *e"ociacin de Contenidos

    &pa"e es "apa+ de entregar re"ursos dierentes en un"in de las preeren"ias del "liente.Es de"ir, que para un "liente italiano, &pa"e puede entregare la versin italiana de undo"umento para un oreano, entregarle la versin "oreana .

    Esta adapta"in a las preeren"ias del "liente no se limita al idioma. (ambiAn puedeapli"arse a

    >ipo Mime de documento. or eCemplo, entregando im9genes en ormato Cpgpara navegadores antiguos en png para los m9s modernos.

    /a conunto de caracteres del recurso 5charset6. 7ariando entre isoQ''3-Q13para "lientes del sur de Europa e isoQ''3-Q3 para los "lientes tur"os.

    /a codiicacin 5encondin)6. 7ariando entre un re"urso "omprimido "omo g+ip otro "omo rar.

    ? el Idioma, men"ionado anteriormente.

    ara "onseguir todo esto, &pa"e dispone de dos me"anismos dierentes.

    7.1. *e"ociacin de Contenidos por >ulti5ie

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    34/67

    Miguel Jaque Barbero ([email protected] 3!

    7.2. *e"ociacin de Contenidos con T$pe >aps

    La segunda orma que tenemos para nego"iar "ontenidos es mediante mapas de tipos, tambiAn "ono"idos "omo i"eros .var. 7amos "on el eCemplo

    #(ichero de 4oniguracin para Negociacin de 4ontenidos por 3ype#Gaps

    ServerName "sabio"Server%oot "/etc/apache2"!ocument%oot "/var/'''"*id(ile /var/run/apache2.pid+ser '''-dataroup '''-datarrorog /var/log/apache2/error.logisten 013ypes4onig /etc/mime.types!eault3ype tet/plainrrorog /tmp/juntaeA%%5%.log!irectorynde inde.html inde.html

    #stablecemos el manejador para los icheros .var9dd*ander t!pe'ap ar

    Name@irtual?ost BC2.BD0.1.LB:@irtual?ost aym.juntae.es;

    ServerName "aym.juntae.es"!ocument%oot "/var/'''/aym"

    :!irectory /var/'''/aym/;# n este directorio< el ndice ser, un ichero .varirector!Inde inde.ar

    :/!irectory;:/@irtual?ost;

    Este me"anismo es mu"o m9s potente permitira in"luso nego"iar plugins.

    7eamos aora "omo es"ribimos el i"ero [email protected] que nos permita mostrar losndi"es en "ada idioma.

    # stablecemos el nombre del ichero y el tipo de variacin+%F indeV varyW"language"# tambiQn podemos variar por type< charset y enconding

    # Si 4ontent-language es es< el ichero ser, inde.es.html+%F inde.es.html4ontent-typeF tet/html4ontent-languageF es

    +%F inde.en.html4ontent-typeF tet/html4ontent-languageF en

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    35/67

    3" Manual de Supervivencia del Administrador de Apache

    Los i"eros .var tambiAn pueden in"luir "ontenido en lnea. Este es un eCemplo, dedo"umento de error "on varia"in

    +%F O1OV varyWXlanguageX

    4ontent-languageF es4ontent-typeF tet/htmlV charsetWS5-00LC-B6odyF----------es--l documento solicitado :b;RN5 S3Y:/b;*or avor contacte con el:a hreW"mailtoFinoUino.ino";'ebmaster:/a;en caso de que usted crea que eiste un error en el servidor.----------es--

    4ontent-languageF en4ontent-typeF tet/htmlV charsetWS5-00LC-B6odyF----------en--3he requested document :b;SNZ3 ?%:/b;*lease contact:a hreW"mailtoFinoUino.ino";'ebmaster:/a;i you presume there is an error in this server.----------en--

    ara a"tivar este do"umento de error, nos basta "on aadir la dire"tiva

    rror!ocument O1O /errores/O1O.html.var

    7.3. ,irecti'as para la *e"ociacin de Contenidos

    7eamos las dire"tivas utili+adas

    AddLan"ua"e

    &so"ia una extensin "on un determinado idioma .

    Lan"ua"e%riorit$

    Estable"e las prioridades de los idiomas por si el navegador no indi"a

    ninguna preeren"ia./rror,ocu+ent

    &so"ia un do"umento a un mensaCe de error.

    a otras dire"tivas, "omo 5ptions &ddandler que a abamos visto en "aptulosanteriores.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    36/67

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    37/67

    3# Manual de Supervivencia del Administrador de Apache

    Captulo 8. ?ndices

    En o"asiones puede resultar imposible mantener a"tuali+ada la p9gina de ndi"e de undire"torio. or eCemplo, si se trata de un dire"torio de des"argas en el que varios usuariospueden subir inorma"in para que otros a""edan a ella.

    &dem9s, para quA vamos a trabaCar a"iendo ndi"es en (ML si &pa"e puede a"erlospor nosotros.

    &pa"e dispone de dire"tivas no solo para reali+ar ndi"es mu potentes, sino tambiAnpara personali+arlos aadiendo o quitando op"iones.

    7eamos "omo "onigurarlos

    :@irtual?ost aym.juntae.es;ServerName "aym.juntae.es"!ocument%oot "/var/'''/curso/aym":!irectory /var/'''/curso/aym/ormularios;

    #stablecemos ndices bonitos para este directorioIndeOption& Fanc!Indeing

    #$Madimos una descripcin para algunos recursos9dde&cription "Foruario de Contacto" contacto.ht

    #?acemos que algunos elementos no apare&can en el ndiceIndeIgnore .3pgIndeIgnore ..

    :/!irectory;:/@irtual?ost;

    8.1. ,irecti'as para la Con!i"uracin de ?ndices

    a mu"as dire"tivas que nos permitir9n "onigurar los ndi"es. &qu a algunas

    Inde0ptions

    Estable"e las op"iones para los ndi"es. ueden ser, entre otras4es"riptionFidt, Dan"ndexing, DoldersDirst, "ons&reLinIs,"oneigt, "onFidt, gnorease, )"an(ML(itles ...

    Inde0I"nore

    Estable"e que i"eros no apare"er9n en el ndi"e.

    Add,escription

    &ade una des"rip"in para uno o varios i"eros del ndi"e.

    AddIcon

    &so"ia un i"ono a un i"ero o tipo de i"eros

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    38/67

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    39/67

    3% Manual de Supervivencia del Administrador de Apache

    Captulo @. Redirecciones

    En o"asiones es ne"esario mover las "osas de sitio. a que mover dire"torios de un sitioa otro, trasladar i"eros ... queremos que nuestros "lientes sigan a""ediendo "omo loa"an antes.

    ara "onseguirlo tenemos tres me"anismos

    @.1. Redirecciones con Alias

    &lias nos permite dar a""eso a re"ursos que no est9n en la dire""in indi"ada por ladire"tiva 4o"ument$oot.

    or eCemplo,

    :@irtual?ost aym.juntae.es;ServerName "aym.juntae.es"!ocument%oot "/var/'''/aym"

    #!amos acceso a un directorio que N5 est, en !ocument%oot9ia& /4iene&tar&ocia /ar/$$$/4&

    #3ambiQn podemos crear accesos a directorios de !ocument%oot9ia& /pro!, /ar/$$$/a!/de&arroo/pro!,/te&t

    :/@irtual?ost;

    @.2. Redirecciones con Redirect

    $edire"t aso"ia una *$L antigua "on una nueva. La nueva *$L es notii"ada al "lientepara que reali"e la "onexin "on ella.

    or eCemplo

    :@irtual?ost aym.juntae.es;

    ServerName "aym.juntae.es"!ocument%oot "/var/'''/curso/aym"

    #%edireccionamos a los clientes a la nueva 'eb7edirect /pac http0//$$$.agraia.e&

    :/@irtual?ost;

    @.3. Re

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    40/67

    Miguel Jaque Barbero ([email protected] !'

    #4argamos el mdulo que necesitamosnclude /etc/apache2/mods-available/re'rite.load

    Name@irtual?ost BC2.BD0.1.LB:@irtual?ost aym.juntae.es;

    ServerName "aym.juntae.es"!ocument%oot "/var/'''/curso/aym"

    #$ctivamos el motor de re'rite%e'ritengine on

    #stablecemos el ichero de log%e'riteog /tmp/logAre'rite

    #stablecemos el nivel de log%e'riteogevel C

    #a direccin aym.juntae.es/ino/ la redirigimos a agralia%e'rite%ule I/ino/ httpF//'''.agralia.es

    :/@irtual?ost;

    ero a reglas de re=rite mu"o m9s "ompli"adas Ntiles. or eCemplo, imaginemos quetenemos una p9gina =eb "uo "ontenido depende de un par9metro . El problema es que ni a los seres umano ni tampo"o a los bus"adores lesgusta re"ordar una *$L del tipo ttp//am.Cuntaex.es/prog.pp;op"ionZ1. reerimos las*$L) dire"tas.

    :@uA podemos a"er;

    odemos rees"ribir las peti"iones que nos lleguen a una dire""in R9"ilS. or eCemplo, sila op"in 1 nos da inorma"in de la & la op"in 2 nos da inorma"in del (aba"o,podemos "rear dos dire""iones Ri"ti"iasS que sean ttp//am.Cuntaex.es/pa"/ ttp//am.Cuntaex.es/taba"o/ poner en el i"ero de "onigura"in la siguientesdire"tivas

    %e'rite%ule I/pac/ prog.php[opcionWB HJ%e'rite%ule I/tabaco/ prog.php[opcionW2 HJ

    DCate en la op"in [L\ al inal. ndi"a al pro"eso que es una regla inal. )i se apli"a, no seseguir9n apli"ando m9s reglas.

    Las reglas de re=rite se eCe"utan en "as"ada. La *$L de entrada para la segunda regla esla salida de la primera. Esto nos permite utili+ar reglas en"adenadas.

    Las op"iones son "asi ilimitadas podemos pasar partes de la *$L "omo par9metros,podemos estable"er "ondi"iones, "adenas de reglas... ualquier problema de redire""in,por "ompli"ado que sea, puede resolverse "on este mdulo.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    41/67

    !& Manual de Supervivencia del Administrador de Apache

    @.4. ,irecti'as para la Con!i"uracin de Redirecciones

    emos utili+ado las siguientes dire"tivas

    Alias&so"ia *$Ls "on i"eros del sistema.

    Redirect

    Enva una redire""in externa indi"9ndole al "liente que "argue otra*$L.

    Re

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    42/67

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    43/67

    !3 Manual de Supervivencia del Administrador de Apache

    Captulo . Contenidos ,in)+icos con CI

    iertamente, o no podemos limitar nuestro =eb a los "ontenidos est9ti"os de (ML.8e"esitamos "one"tar "on bases de datos, ore"er "ontenidos personali+ados a "adausuario, generar inormes al momento, vender, tramitar...

    ara todo esto ne"esitamos que nuestro servidor =eb genere los "ontenidosdin9mi"amente. G, aortunadamente, existen mu"as te"nologas que nos a"ilitan la vida.

    .1. 9Bu es CI:

    son las siglas de Common -ate;a4 Interace. )e trata de una de las erramientas

    m9s antiguas para generar "ontenidos din9mi"os en el =eb. propor"iona un intera+ entre el servidor =eb las apli"a"iones que generar9ndin9mi"amente los "ontenidos. )e trata de un intera+ antiguo mu "ono"ido, pero algoinei"iente. 4e todas ormas, mere"e la pena que le e"emos un vista+o.

    .2. /De+plo de CI

    & travAs de podemos eCe"utar "ualquier programa del sistema operativo del servidor. )er9 el programa llamado quien seen"argar9 de generar el (ML que el servidor =eb entregar9 al

    "liente.

    ara nuestro eCemplo, vamos a "rear un s"ript de bas mu sen"illito

    #/bin/bashecho "4ontent-3ypeF tet/plain"echoecho "?ola Gundo. Soy un 4"

    XuidadoY En un "gi todo es importante. a que espe"ii"ar la "abe"era, a que deCar

    una lnea en blan"o despuAs de las "abe"eras...

    (ambiAn tenemos que a"er el s"ript eCe"utable para el usuario de &pa"e. ara ello,"rearemos un dire"torio "d "gi en /usr/"ursoapa"e/"giQbin. En Al guardaremos el s"riptanterior le aremos eCe"utable. Bastar9 "on eCe"utar el "omando

    #; chmod = /usr/cursoapache/cgi-bin/ejemplo.cgi

    Es importante deCar los "gis en un dire"torio que no pertene+"a al 9rbol de do"umentos de&pa"e

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    44/67

    Miguel Jaque Barbero ([email protected] !!

    8os resta de"irle a &pa"e que tiene que eCe"utar los programas de ese dire"torio "omo siueran "gis .

    ara ello, reali+amos el siguiente i"ero de "onigura"in

    #(ichero de 4oniguracin para 4s

    ServerName "localhost"Server%oot "/etc/apache2"*id(ile /var/run/apache2.pid3ypes4onig /etc/mime.types!eault3ype tet/plain+ser '''-dataroup '''-datarrorog /tmp/apacheA%%5%.log3ranserog /tmp/apacheA$44SS.log

    !ocument%oot "/var/'''"isten 01!irectorynde inde.html inde.html

    # ncluimos el mdulo que necesitamos para ejecutar 4sIncude "/etc/apache2/od&'aaia4e/cgi.oad"

    # stablecemos el directorio que contendr, programas 4Script9ia& /cgi'4in/ /u&r/cur&oapache/cgi'4in/

    &ora, si vamos a ttp//lo"alost/"giQbin/eCemplo."gi, podremos ver nuestro programaun"ionando.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    45/67

    !" Manual de Supervivencia del Administrador de Apache

    .3. Con!i"uracin de CIs para Usuarios

    La "onigura"in anterior se apli"a a todo el servidor =eb. En o"asiones, en mu po"as

    o"asiones, ne"esitaremos "onigurar el servidor de modo que nuestros usuarios puedansubir eCe"utar programas .

    XEsto es un enorme problema de seguridadY

    &s que, lo meCor es no a"erlo. ero, si no tienes m9s remedio, si "onas en tus usuarios,en que no "ometer9n errores en sus programas, en que ser9n "uidadosos "on su uso...enton"es puedes "onigurar el servidor de la siguiente orma

    #(ichero de 4oniguracin para 4s

    ServerName "localhost"Server%oot "/etc/apache2"*id(ile /var/run/apache2.pid3ypes4onig /etc/mime.types!eault3ype tet/plain+ser '''-dataroup '''-datarrorog /tmp/apacheA%%5%.log3ranserog /tmp/apacheA$44SS.log

    isten 01!irectorynde inde.html inde.html

    nclude "/etc/apache2/mods-available/cgi.load"!ocument%oot "/var/'''"

    :@irtual?ost BC2.BD0.1.LB;ServerName "aym.juntae.es"!ocument%oot "/var/'''/aym"

    #*ermitimos ejecutar 4s en esta locali&acin

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    46/67

    Miguel Jaque Barbero ([email protected] !)

    .4. ,irecti'as para la Con!i"uracin de CI

    emos utili+ado las siguientes dire"tivas

    ScriptAlias&so"ia una lo"ali+a"in "on un dire"torio del sistema de i"eros estable"e su "ontenido "omo s.

    ptions E/0ecCI

    ermite la eCe"u"in de s para el dire"torio.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    47/67

    !# Manual de Supervivencia del Administrador de Apache

    Captulo 1F. Ser'er Side Includes

    8aturalmente a otras op"iones para generar "ontenidos din9mi"os. *na de las menospeligrosas, tambiAn de las menos potentes, es utili+ar ))

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    48/67

    Miguel Jaque Barbero ([email protected] !$

    1F.1. /De+plo de SSI

    7amos a es"ribir un pequeo eCemplo de ))

    :--#conig errmsgW" rror de SS "--;:--#conig si&emtW"bytes"--;l tamaMo de este ichero es :--#si&e ileW"ssi.shtml"--;bytes.

    ara poder eCe"utarlo, estable"emos este i"ero de "onigura"in de &pa"e

    #(ichero de 4oniguracin para SS

    ServerName "localhost"Server%oot "/etc/apache2"*id(ile /var/run/apache2.pid3ypes4onig /etc/mime.types!eault3ype tet/plain+ser '''-dataroup '''-datarrorog /tmp/apacheA%%5%.log3ranserog /tmp/apacheA$44SS.log

    isten 01!irectorynde inde.html inde.html

    !ocument%oot "/var/'''"

    #ncluimos el mdulo que necesitamosIncude "/etc/apache2/od&'aaia4e/incude.oad"

    #$sociamos la etensin shtml al manejador de SS9dd*ander &erer'par&ed &ht

    #stablecemos que se pueden ejecutar en todos los directorios#8por deecto suele estar deshabilitado9Option& AIncude&

    &ora, si reini"iamos &pa"e pedimos ttp//lo"alost/ssi.stml podremos ver la salidaparseada.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    49/67

    !% Manual de Supervivencia del Administrador de Apache

    1F.2. /De+plo A'anzado de SSI

    )) tiene mu"o m9s. 8os permite in"luir i"eros, deinir variables e in"luso utili+ar

    estru"turas de "ontrol "omo i, ten, else.7amos a ver un eCemplo en el que utili+amos )) para deinir un mismo pie para todaslas p9ginas de nuestro =ebsite.

    En primer lugar, "reamos un i"ero )) "on la inorma"in que queremos mostrar

    :-- vitamos que el usuario vea los errores.Ea los veremos en el log--;

    :--#conig errmsgW":-- rror de SS --;"--;

    :-- 4oniguramos el ormato de la echa seg)n strmt --;

    :--#conig timemtW"\$< \e de \6 de \E a las \?F\GF\S"--;

    :hr/;

    :-- +tili&ando echo podemos ver el contenido de variables--;:p;4opy%ight l>e 6enson 211D - :--#echo varW"!54+GN3A+%"--; -Godiicado el :--#echo varW"$S3AG5!(!"--;.:/p;:--#echo varW"!$3A54$"--;

    Este i"ero lo guardaremos en /usr/"ursoapa"e/ssi "on el nombre pie.stml. &ora loenla+aremos en el resto de p9ginas de nuestro =ebsite.

    ara ello, "ambiamos nuestro index.tml por index.stml

    :html;:head;:title;4onsejera de $gricultura y

    Gedioambiente:/title;:/head;:body;

    :hB;4onsejera de $gricultura y Gedioambiente:/hB;6la< bla< bla...

    :-- a directiva include nos permite incluir icheros--;

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    50/67

    Miguel Jaque Barbero ([email protected] "'

    or Nltimo, slo nos resta "onigurar ade"uadamente nuestro servidor &pa"e

    #(ichero de 4oniguracin para SS eneral

    ServerName "localhost"Server%oot "/etc/apache2"*id(ile /var/run/apache2.pid3ypes4onig /etc/mime.types!eault3ype tet/plain+ser '''-dataroup '''-datarrorog /tmp/apacheA%%5%.log3ranserog /tmp/apacheA$44SS.log

    isten 01!irectorynde inde.&htinde.html inde.html

    !ocument%oot "/var/'''"

    Incude "/etc/apache2/od&'aaia4e/incude.oad"9dd*ander &erer'par&ed &ht

    #4reamos un alias para encontrar los includes9ia& /incude /u&r/cur&oapache/&&i

    :@irtual?ost BC2.BD0.1.LB;ServerName "aym.juntae.es"!ocument%oot "/var/'''/aym"

    :/@irtual?ost;

    )i aora vamos "on nuestro navegador a ttp//am.Cuntaex.es/ veremos el pie que emos"reado.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    51/67

    "& Manual de Supervivencia del Administrador de Apache

    Captulo 11. Lo""in"

    Los i"eros de log son un instrumento "rti"o para la seguridad de nuestro servidor. Eneste "aptulo veremos "mo "onigurarlos para que &pa"e guarde la inorma"in quene"esitamos, tanto para meCorar su rendimiento "omo para resolver problemas a losusuarios, "ono"er a quA se""iones a""eden m9s, intentos de a""eso no autori+ados, et".

    ero no basta "on "onigurar "orre"tamente los logs para que guarden la inorma"in quequeremos. (ambiAn tenemos que "onsultarla peridi"amente. )ino, "ualquier inorma"inque pudiAramos registrar ser9 inNtil.

    Existen mu"os programas que te pueden audar a inspe""ionar gestionar los logs de

    &pa"e. uedes en"ontrarlos en los paquetes apa"e2Qutils, s"anerrlog, visitors, vlogger,=ebdruid...

    11.1. -iceros de Lo"

    &unque a los emos utili+ado, vamos a men"ionarlos expl"itamente.

    &pa"e utili+a dos i"eros de log

    rror/o)^ ara registrar los errores que se produ"en al a""eder a los re"ursos de&pa"e.

    >ranser/o)^ ara registrar los a""esos que no produ"en error.

    11.1.1. #rror$og

    El "ontenido de ErrorLog es algo pare"ido a esto

    H3ue Nov 2B BBF21FBO 211DJ HnoticeJ caught S3%G< shutting do'nH3ue Nov 2B BBF21FBL 211DJ HnoticeJ $pache/2.1.LL 8!ebian9 conigured

    -- resuming normal operationsH3ue Nov 2B BBF21FB0 211DJ HerrorJ Hclient B2].1.1.BJ un>no'n

    directive "s&eW"ssi.shtml"" in parsed doc /var/'''/ssi.shtmlH3ue Nov 2B B2FB2F^D 211DJ HerrorJ Hclient BC2.BD0.1.LBJ (ile does

    not eistF /var/'''/curso/aym/noAeisto

    En Al podemos ver los mensaCes de "ierre de &pa"e, de reini"io, errores dedire"tivas )), p9ginas no en"ontradas, et".

    11.1.2. %ransfer$og

    El "ontenido de (ranserLog ser9 pare"ido a estoBC2.BD0.1.LB - - H2B/Nov/211DFB1F22F^2 =1B11J "3 /cgi/aym.cgi

    ?33*/B.B" 211 LBB2].1.1.B - - H2B/Nov/211DFBBF1]F^1 =1B11J "3 /ssi.shtml ?33*/B.B"

    211 B^1

    BC2.BD0.1.LB - - H2B/Nov/211DFBBFO^F21 =1B11J "3 /inde.shtml?33*/B.B" 211 ^O0BC2.BD0.1.LB - - H2B/Nov/211DFB2FB2F^D =1B11J "3 /noAeisto

    ?33*/B.B" O1O 21]

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    52/67

    Miguel Jaque Barbero ([email protected] "

    En Al podemos ver desde quA dire""in se a a""edido a nuestro servidor, en quemomento, quA peti"in se re"ibi, resultado, et".

    11.2. ,irecti'as para la Con!i"uracin de Lo"s

    odemos utili+ar las siguientes dire"tivas para la "onigura"in de los i"eros de log

    /rrorLo"

    Estable"e el i"ero que para el log de errores.

    5p"ionalmente puede ser un programa que, por eCemplo, registre loserrores en una base de datos.

    Lo"Le'el

    Estable"e el nivel de detalle para el log de errores.Los valores posibles son emerg, alert, "rit, error, =arn, noti"e, ino debug.

    Trans!erLo"

    Estable"e el i"ero que para el log de a""esos.

    5p"ionalmente puede ser un programa que, por eCemplo, registre losa""esos en una base de datos.

    Lo"-or+at

    4eine un ormato de log para el log de a""esos o para un logpersonali+ado.

    Custo+Lo"

    Estable"e el i"ero el ormato para un log personali+ado.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    53/67

    "3 Manual de Supervivencia del Administrador de Apache

    Captulo 12. %%

    7ale, a mu"as ormas de generar "ontenidos din9mi"os en un servidor =eb. ero laque o en da se lleva la palma es .

    es un lenguaCe de s"ript, "on orienta"in a obCetos

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    54/67

    Miguel Jaque Barbero ([email protected] "!

    12.2. Co+probando #ue -unciona

    7amos aora a "rear una sen"illa p9gina pp para "omprobar que todo un"iona.

    Este es el "digo

    :[phpecho _?ola GundoXV

    [;

    )alvemos aora la p9gina "omo olamundo.pp , las mar"as de son ignoradas por el navegador "uando se interpretan"omo .

    8aturalmente no podemos meter en este Manual de )uperviven"ia todo un "urso de .uedes en"ontrar toda la inorma"in que ne"esitas sobre en ===.pp.net.

    ero si podemos aprove"ar la o"asin para aprender un po"o.

    12.3. %racticando con %%7amos a preparar un eCemplo m9s "ompli"ado. agamos el tpi"o eCer"i"io de presentaren la pantalla los nNmeros primos que a entre el 1 el 100.

    En este eCer"i"io ne"esitaremos utili+ar estru"turas de "ontrol

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    55/67

    "" Manual de Supervivencia del Administrador de Apache

    omo ves, este programa "arga un i"ero "on otras un"iones auxiliares. En este "aso, eli"ero lib.pp "ontiene la un"in esOprimo. DCate que la instru""in requireOon"egaranti+a que el i"ero se "arga slo una ve+, aunque sea llamado en varios sitios

    El "digo de lib.pp es el siguiente

    :[phpunction esAprimo8num9

    or 8iW2V i:numV i==9i 8num \ i WW 19 return alseV

    return trueV

    [;

    12.4. >aneDo de -or+ularios

    ero el uso m9s abitual de es para "rear apli"a"iones =eb. En ellas, ne"esitamosque el usuario nos enve inorma"in, pro"esarla devolverle un resultado.

    7amos a ver, "on el siguiente eCemplo de login, "omo nos llegan las variables de usuarioa pp "omo las leemos.

    En primer lugar, el usuario introdu"e los valores que nos quiere enviar en un ormulario(ML que nos enva al programa

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    56/67

    Miguel Jaque Barbero ([email protected] ")

    omo ves, la inorma"in que nos enva el usuario se re"ibe en un arra indexado . El arra indexado es_O$E@*E)(.

    )alva ambos i"eros en el mismo dire"torio "omprueba su un"ionamiento.

    12.&. /'itando el Caos

    &l programar en podemos en"ontrarnos 9"ilmente metidos en un buen lo. )i nosomos "uidadosos, nos en"ontraremos "on un"ionalidad distribuida entre varios i"eros, "digo de distintos lenguaCes en un mismo i"ero, et".

    7amos a simplii"ar nuestro eCemplo anterior. ara ello, in"luiremos el "digo delormulario en el mismo i"ero que el "digo de la respuesta al ormulario.

    :[phpponer5ca4ecera()Kif (Di&&et(57EG6ES:Hno4reJ))

    html W Z:orm actionW"login.php" methodW"*5S3";ZVhtml .W ZNombreF :input nameW"nombre"

    typeW"tet"/;:br/;ZVhtml .W Z4laveF :input nameW"clave"

    typeW"pass'ord"/;:br/;ZVhtml .W Z:input typeW"submit" valueW"$ceptar"/;ZVhtml .W Z:/orm;ZV

    Me&e

    html W Z?as hecho ZloginZ`aposV:br/;ZVhtml .W "l nombre es ".A%7+S3HZnombreZJ.":br/;"Vhtml .W "a clave es ".A%7+S3HZclaveZJ.":br/;"V

    Mecho htmlVponer5pie()K

    unction ponerAcabecera89echo ":html;:body;"V

    unction ponerApie89

    echo ":/body;:/html;"V

    [;

    En este eCemplo, emos "reado dos un"iones para poner el pie la "abe"era de lasp9ginas. 8ormalmente estas un"iones estar9n en un i"ero externo ser9n "ompartidas por otras p9ginas.

    &dem9s, el programa tiene dos partes "orrespondientes a la estru"tura i ten.

    En la primera, se muestra el ormulario de login. En la segunda, se muestra la respuesta alormulario.

    4e"idimos si eCe"utar una u otra en un"in de que exista la variable _O$E@*E)(.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    57/67

    "# Manual de Supervivencia del Administrador de Apache

    Captulo 13. Aplicaciones Geb con LA>%

    L&M son las siglas de LinuxQ&pa"eQM)@LQ es, sin duda, la arquite"tura m9sutili+ada o para la programa"in de apli"a"iones =eb.

    Ga emos visto "omo un"ionan "onCuntamente Linux, &pa"e . &s que slo nosqueda ver "mo integramos la Base de 4atos a""edemos a ella.

    13.1. Instalacin $ Con!i"uracin de >$SBL

    ablamos de 4ebian, as que la instala"in de M)@L tendr9 que ser 9"il. En "on"reto,tenemos que instalar dos paquetes. El primero es el propio servidor M)@L, el segundo

    es la librera de un"iones de para a""eder a M)@L.El "omando para a"er todo esto es el siguiente

    #; apt-get install mysql-server phpL-mysql

    8o ne"esitamos ninguna "onigura"in parti"ular, as que vamos a "rear un nueva base dedatos llamada R"ursoS "on un usuario para a""eder a ella una tabla "on algunas"olumnas.

    ara ello, es"ribimos el siguiente i"ero )@L

    !%5* !$3$6$S ( PS3S cursoV4%$3 !$3$6$S cursoV%$N3 S43< NS%3< +*!$3< !3 5N curso.K 35 curso !N3(!6E "claveAcurso"V

    +S cursoV

    !%5* 3$6 ( PS3S usuarioV4%$3 3$6 usuario 8

    id N3 $+35AN4%GN3

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    58/67

    Miguel Jaque Barbero ([email protected] "$

    13.2. Conectando con la (ase de ,atos

    omo primer eCer"i"io, "one"temos nuestro usuario R"ursoS "on la base de datos.

    ara ello, es"ribimos el siguiente programa

    :[phpecho "Ge voy a conectar a GyS7:br/;"V

    coneion !&>5connect(ocaho&t@ root@ )K

    i 8coneion9 echo "(all`oacuteV la conei`oacuteVn a la base de

    datos.".!&>5error()V

    eit89V

    [;

    En este eCemplo realmente lo que estamos a"iendo es R"one"tarS "on el servidor de basede datos. ero no basta "on eso, ne"esitamos espe"ii"ar "u9l de todas las bases de datosdel servidor es la que vamos a utili+ar.

    Eso lo a"emos "on la instru""in msqlOsele"tOdb.

    13.3. /Decutando Sentencias SBL

    ECe"utar senten"ias sen"illas, "omo 8)E$(, 4ELE(E o *4&(E que no devuelvenningNn resultado, es 9"il.

    Basta "on "one"tarse "on el servidor de base de datos, sele""ionar la base de datos "on laque queremos operar lan+ar la senten"ia )@L.

    Este es un eCemplo

    :[php

    mysqlAconnect8ZlocalhostZ

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    59/67

    "% Manual de Supervivencia del Administrador de Apache

    13.4. Insertando ,atos

    7amos a utili+ar lo que a sabemos de para a"er un ormulario que inserte datos en

    la tabla de la base de datos:[phpponerAcabecera89Vi 8isset8A%7+S3HZusuarioZJ99

    html W Z:orm actionW"insertar.php" methodW"*5S3";ZVhtml .W ZdF :input nameW"id" typeW"tet"/;:br/;ZVhtml .W Z+suarioF :input nameW"usuario" typeW"tet"/;:br/;ZVhtml .W Z4laveF :input nameW"clave" typeW"pass'ord"/;:br/;ZVhtml .W Z%epita la 4laveF :input nameW"clave2"

    typeW"pass'ord"/;:br/;ZVhtml .W ZNombre 4ompletoF :input nameW"nombre"

    typeW"tet"/;:br/;ZVhtml .W Z:input typeW"submit" valueW"nsertar"/;ZVhtml .W Z:/orm;ZV

    else

    coneion W mysqlAconnect8ZlocalhostZ< ZrootZ< ZZ9Vi 8coneion9

    echo "Se astidi`oacuteV"Veit89V

    !&>5&eect5d4(te&t)Kconsulta W ZNS%3 N35 usuario ZVconsulta .W ZS3 idWZ.A%7+S3HZidZJ.Z

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    60/67

    Miguel Jaque Barbero ([email protected] )'

    13.&. Consultas de S/L/CT

    7eamos un eCemplo m9s "ompleto

    :[php

    ponerAcabecera89Vconeion W mysqlAconnect8ZlocalhostZ< ZrootZ< ZZ9Vi 8coneion9

    echo "Se astidif"Veit89V

    mysqlAselectAdb8ZtestZ9Vconsulta W ZS43 K (%5G usuarioZV

    resultado W !&>5>uer!(con&uta)Ki8resultado9

    echo "a consulta ha alladoF ".mysqlAerror89Veit89V

    html W Z:table borderW"B";ZV'hile8ila W !&>5fetch5arra!(re&utado)9

    html .W Z:tr;ZVhtml .W Z:td;Z.fiaHidJ.Z:/td;ZVhtml .W Z:td;Z.fiaHu&uarioJ.Z:/td;ZVhtml .W Z:td;Z.fiaHcaeJ.Z:/td;ZVhtml .W Z:td;Z.fiaHno4reJ.Z:/td;ZVhtml .W Z:td;ZVhtml .W Z:a

    hreW"httpF//localhost/borrar.php[idWZ.ilaHZidZJVhtml .W Z";6orrar +suario:/a;:/td;ZVhtml .W Z:/tr;ZV

    html .W ":/table;"V

    echo htmlVponerApie89V

    unction ponerAcabecera89echo ":html;:body;"V

    unction ponerApie89

    echo ":/body;:/html;"V[;

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    61/67

    )& Manual de Supervivencia del Administrador de Apache

    Captulo 14. Secure SocHets La$er ;SSL=

    ))L es un proto"olo "riptogr9i"o de "omuni"a"in utili+ado para garanti+ar la identidad la priva"idad de las "omuni"a"iones =eb.

    (A"ni"amente se "orresponde "on la "apa de transporte del Modelo )5, por eso tambiAnes "ono"ido "omo (L)

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    62/67

    Miguel Jaque Barbero ([email protected] )

    "ual es "modo para un "urso "omo este pero di"ilmente "reble si pretendemosutili+arlo en un =eb pNbli"o.

    )i quieres un "ertii"ado RserioS puedes a"udir a "ualquier empresa espe"iali+ada

    .14.3. Con!i"uracin

    La "onigura"in es igual que todo lo que emos visto anteriormente... salvo para lasdire"tivas propias de ))L.

    or "ierto, si vas a utili+ar ))L "on osts7irtuales, tendr9s que asignar a "ada ost una , no puedes a"erlo por nombres.

    14.4. /De+plo

    7eamos un eCemplo de "onigura"in#(ichero de 4oniguracin para ?osts @irtuales con SS

    ServerName "sabio"Server%oot "/etc/apache2"*id(ile /var/run/apache2.pidrrorog /tmp/apache2.log3ypes4onig /etc/mime.types!eault3ype tet/plain+ser '''-dataroup '''-data

    isten 01isten OO^

    !irectorynde inde.html inde.html

    #4argamos el mdulo que necesitamos y su coniguracinIncude /etc/apache2/od&'aaia4e/&&.oadIncude /etc/apache2/od&'aaia4e/&&.conf

    #ndicamos donde tenemos nuestro certiicadoSSLCertificateFie /etc/apache2/&&/apache.pe

    :@irtual?ost BC2.BD0.1.^;SSLEngine onServerName "aym.juntae.es"!ocument%oot "/var/'''/curso/aym"rrorog /tmp/aymA%%5%.log3ranserog /tmp/aymA$44SS.log:ocation /seguro;

    SSL7e>uireSSL:/ocation;

    :/@irtual?ost;

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    63/67

    )3 Manual de Supervivencia del Administrador de Apache

    Captulo 1&. ConseDos para >eDorar la Se"uridad

    &pa"e no tiene problemas espe"iales de seguridad. M9s bien todo lo "ontrario. )e tratade un servidor mu seguro "on po"os puntos dAbiles .

    &pa"e dispone de una lista de distribu"in para mantener inormados a losadministradores. uedes darte de alta en ttp//ttpd.apa"e.org/lists.tml`ttpQannoun"e.

    1&.2. %rote"e los -iceros de Con!i"uracin

    Los i"eros de "onigura"in de &pa"e, as "omo sus subdire"torios, slo ne"esitaleerlos root. 8o a porque dar permisos, ni de le"tura, a ningNn otro usuario.

    1&.3. 5i"ila los Lo"s

    R5Cos que no ven, torta+o que te pegasS

    :4e quA te sirve tener unos logs magni"os, pere"tamente "onigurados si nun"a los

    "onsultas;on los sistemas de an9lisis que te avisen de las situa"iones de los logs bNs"ate un ratopara e"arles un vista+o de ve+ en "uando.

    Lo ideal sera que te i"ieras tus propios programas de an9lisis aadieras reglas paradete"tar situa"iones de riesgo.

    1&.4. /'ita los CI

    )implemente son un gran problema de seguridad.

    )i realmente los ne"esitas, es meCor que los es"ribas tN mismo o alguien de quien te esmu"o. G a"tiva la op"in suexe" para asegurarte de que se eCe"utan "on los permisos quetN de"idas

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    64/67

    Miguel Jaque Barbero ([email protected] )!

    1&.&. /'ita SSI

    on la dire"tiva exe" "md de )) se puede a"er el mismo dao que "on un .&dem9s, los )) pueden suponer una pArdida de rendimiento.

    ero si realmente los ne"esitas, puedes a"tivar la op"in suexe", al menos evitar9s quese eCe"uten "on los permisos de &pa"e .

    1&.7. /'ita los Contenidos ,in)+icos en eneral

    5tros lenguaCes "omo , erl o (L se eCe"utar9n "on los permisos de los propietariosde los i"eros. Eso signii"a que pueden a"er mu"as "osas, qui+9s demasiadas.

    )i no puedes evitar los programas de genera"in de "ontenidos en tu servidor, al menosrevisa bien "on quA usuario se est9n eCe"utando quA permisos tienen esos usuarios.

    1&.8. 5i"ila los /nlaces Si+blicos

    Lo meCor es no permitirlos. &s evitas que un usuario a""eda a "ontenido al que nodebera a""eder.

    ero si quieres abilitarlos, al menos asegNrate de que el destino del enla"e es legalaadiendo la op"in )mLinIs5=nerMat"

    1&.@. az Copias de Se"uridad

    or Nltimo, ten en "uenta que lo m9s valioso de tu servidor probablemente sea lainorma"in que alberga.

    *n ataque por denega"in de servi"io puede deCarnos uera de la red unas oras, pero noae"tar9 a nuestros "ontenidos.

    )in embargo, un intruso puede daar o eliminar la inorma"in que albergamos.&segNrate que puedes reponerla.

    www.detodoprogramacion.com

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    65/67

    )" Manual de Supervivencia del Administrador de Apache

    Captulo 17. pti+izacin de Rendi+iento

    &l igual que o"urre "on la seguridad, &pa"e no tiene problemas de rendimiento. M9sbien al "ontrario.

    Es "ierto que no es un servidor diseado para batir re"ords en ban"os de pruebas. ero enentornos reales de produ""in su rendimiento es m9s que a"eptable.

    4e todas ormas, si eres un istAri"o del rendimiento o tienes una m9quina realmentepequea )s RA>

    Lo m9s importante para el rendimiento de un servidor =eb es no s=apear. G eso dependede la "antidad de memoria $&M que tengas disponible.

    ara evitarlo, "ontrola el par9metro Maxlients que determina el nNmero m9ximo depro"esos &pa"e que se eCe"utar9n en la m9quina. Mide "uanto o"upa "ada uno de ellos reparte la memoria $&M disponible.

    Es "ierto que a otros a"tores que a"en el "9l"ulo inexa"to... a otros pro"esos en elsistema que "onsumir9n $&M al eCe"utarse, pero tambiAn a memoria "ompartida entretodos los pro"esos de &pa"e.

    El resto de par9metros son importantes. or eCemplo, una buena *, una buena tarCetade $ed, dis"os r9pidos... pero sobretodo, XM9s $&MY

    uanta m9s $&M tengas, m9s pro"esos de &pa"e podr9s tener arran"adospara atender a tus "lientes.

    17.2. Usa Linu0 2.4 o Superior

    &pa"e un"iona en otros entornos.

    ero si quieres que "orra, ponle sobre una buena "arretera. Las llamadas al )istema

    5perativo que ne"esita &pa"e est9n mu"o m9s optimi+adas si puedes eCe"utarlo sobreLinux 2.6.

    17.3. /'ita la Resolucin de ,*Ss In'ersos

    ada ve+ que &pa"e tiene que resolver el nombre de m9quina o dominio que"orresponde a una dire""in , debe a"er una llamada a un 48). G eso "onsume mu"otiempo.

    &pa"e ne"esita resolver 48)s inversos "uando utili+as ost8ameLooI*ps o dire"tivas&llo=, 4en basadas en nombres de m9quina o de dominio. ntenta evitarlas. )i lo

    "oniguras por ser9 mu"o m9s r9pido

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    66/67

    Miguel Jaque Barbero ([email protected] ))

    17.4. /'ita los /nlaces Si+blicos

    )i permites enla"es simbli"os, "ada ve+ que &pa"e entra en un dire"torio tendr9 quebus"arlos. )i adem9s utili+as )mLinIs5=nerMat", tambiAn tendr9 que "omprobar a

    quiAn pertene"e el enla"e a quiAn pertene"e el destino del enla"e... Mu"o trabaCo.

    17.&. /'ita los -iceros .taccess

    Est9 mu bien tener "onigura"in personali+ada por los usuarios. ero tiene un "oste.

    ada ve+ que &pa"e tiene que bus"ar un re"urso, debe "omprobar si en ese dire"torio a i"eros de "onigura"in parti"ulares que sean apli"ables...)i la estru"tura de dire"torios es mu prounda, puede requerir un montn de llamadas alsistema. G si en"ima a i"eros .ta""ess, tambiAn tendr9 que abrirlos pro"esarlos.

    or lo tanto, evita la dire"tiva &llo=5verride.

    17.7. La *e"ociacin de Contenidos

    ), es "ierto que la nego"ia"in de "ontenidos requiere tiempo de pro"eso. ero es tanes"aso al mismo tiempo resuelve tantos problemas, que son mu raras las o"asiones enque ne"esites evitarla.

    )i realmente ne"esitas nego"ia"in de "ontenidos, &pa"e resuelve la situa"in "on elmenor "oste de rendimiento posible.

    Es preerible utili+ar (pe Maps que Multivie=s. pues este Nltimo requiere mirar en todoel dire"torio para ver quA ar"ivos a mientras que "on (pe Maps la "onigura"in est9en un Nni"o i"ero.

    17.8. /'ita SSI

    )i a"tivas ))

  • 7/26/2019 Manual de Supervivencia Del Administrador Apache

    67/67

    )# Manual de Supervivencia del Administrador de Apache

    Captulo 18. (iblio"ra!a

    La meCor uente de do"umenta"in para &pa"e est9 en ===.apa"e.org. & en"ontrar9sla reeren"ia a todas las dire"tivas de "onigura"in, do"umentos sobre ))L, )eguridad,MM, $endimiento, nstala"in, ompila"in... Xasta el "digoY Q>

    (ambiAn a libros mu buenos. eneralmente es"ritos por alguno de los programadoresde &pa"e que parti"ipa en la omunidad. uedes "onsultar, por eCemplo, R&pa"e$eeren"e uideS de Ben eter Laurie de la editorial 5$eill.