DESPLIEGUE DE APLICACIONES WEB Profesor: Sergio Cuesta Vicente. htts:!!sites.goog"e.co#!site!sergiocuesta! rofesor.sc$%g#ai".co#
DAW – Despliegue de Aplicaciones Web https://sites.google.com/site/sergiocuesta
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web https://sites.google.com/site/sergiocuesta
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Licencia Los conteni&os &e este &ocu#ento &ocu#ento est'n co#arti&os co#arti&os (a)o una "icencia Creati$e Co##ons si Co##ons si no se in&ica "o contrario. Pue&e conocer #'s so(re Creati$e Co##ons u"san&o Co##ons u"san&o en e" en"ace.
E" uso &e este &ocu#ento est' su)eto a "as nor#as *ue se in&ican en esta 'gina. 'gina . Si *uiere sa(er #'s so(re Creati$e Co##ons ue&e $isitar su 'gina We( o "a $ersi+n en esa,o" esa,o".. Para sa(er #'s so(re e" tio &e "icencia a"ica&o a este &ocu#ento ue&e $isitar esta 'gina. 'gina. -o&os "os #ateria"es usa&os ara "a confecci+n &e este &ocu#ento est'n (a)o "icencia &e Creati$e Co##ons se har' referencia a su autor en "a #anera *ue sea osi("e. Si *uiere usar to&o o arte &e este &ocu#ento/ or fa$or/ haga referencia a" autor.
Sergio Cuesta Vicente rofesor.sc$%g#ai".co#
Sergio Cuesta Vicente 3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Sergio Cuesta Vicente de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
LICENCIA.....................................................................................................................................................................0 -E1A 2: I1PLAN-ACI3N DE A45UI-EC-U4AS WEB.................................................................................................................26 La ar*uitectura 7e( a"gunos #o&e"os................................ #o&e"os.................................................. ..................................... ..................................... ..................................... ......................................................20 ...................................20 Un #o&e"o si#"e ara e" &es"iegue &e a"icaciones We(......................................... We(........................................................... ..................................... ...................................................28 ................................28 !u" es una aplicaci#n aplicaci#n $eb................. $eb.............................. ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... .............................................. ................................. %8 &ases de un pro'ecto de una aplicaci#n $eb............ ........... .......... ........... ........... ........... ........... .......... ........... ........... ........... ........... ....... ...... %8
Ser$i&ores 7e(................................. 7e(.................................................... ..................................... ..................................... ..................................... ..................................... ..................................... .....................................................69 ...................................69 Ser(icios Ser(icios Web.............. Web............................ ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... .......................................... ............................ 2% Alternati(as................. .......... ........... ........... ........... ........... .......... ........... ........... ........... .......... ........... ........... ........... ......... ...... ..... ...... ..... ...... . 22 )!u" necesito para montar un ser(idor $eb*.............. .......... ........... ........... ........... .......... ........... ........... ........... ........... .......... ........... ...... ..... 23
Insta"aci+n configuraci+n ('sica &e un ser$i&or 7e(: Aache...................................... Aache........................................................ ..................................... ................................................6 .............................6 Comprobaci Comprobaci#n #n ' eliminaci# eliminaci#n n de otras (ersiones (ersiones............. .......................... ........................... ........................... ........................... ........................... ........................... ........................... ............................................. ................................ 2+ ,nstalaci#n ,nstalaci#n............. .......................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... .................................... ...................... 3%
Insta"ar un ser$i&or con LA1P................................. LA1P................................................... ..................................... ..................................... ..................................... ..................................... ..................................... ...............................0; ............0; Ser$i&ores &e A"icaciones........................ A"icaciones.......................................... ..................................... ..................................... ..................................... ..................................... ..................................... ..................................... ..........................08 ........08 Contenedor Contenedores.... es.................. ........................... ........................... ........................... ........................... ............................ ........................... ........................... ........................... ........................... ........................... ........................... ........................... ......................... ............ 38
-o#cat............................ o#cat............................................... ..................................... ..................................... ..................................... ..................................... ..................................... ..................................... ..................................... ...................................<9 .................<9 ,nstalando ,nstalando -a(a............ -a(a......................... ........................... ........................... ........................... ........................... ........................... ............................ ........................... ........................... ........................... ........................... .......................................... ............................ ,nstalar ,nstalar Apache Apache omcat.............. omcat........................... ........................... ............................ ........................... ........................... ........................... ........................... ........................... ........................... ........................... .........................................0 ............................0 ,nstalando ,nstalando pa1uetes pa1uetes adicionale adicionales....... s..................... ........................... ........................... ............................ ........................... ........................... ........................... ........................... ........................... ............................................... .................................. +
Sergio Cuesta Vicente 0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta suarios suarios de omcat............ omcat.......................... ........................... ........................... ............................ ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ...................... ........ 8 ,niciar ,niciar ' parar omcat............. omcat........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ................................ ..................
A"icaciones 7e(................................ 7e(.................................................. ..................................... ...................................... ..................................... ..................................... ..................................... ...................................................;2 .................................;2 4structura 4structura.............. ........................... ........................... ........................... ........................... ............................ ........................... ........................... ........................... ........................... ........................... ........................... ........................... ................................... ...................... 0 Descriptor Descriptor de despliegue despliegue............. .......................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ............................ ........................... ........................... ........................... ............. 00
-E1A 6: AD1INIS-4ACI3N DE SE4VIDO4ES WEB...................................................................................................................; Aache 6 Aache 6.<................................. 6.<.................................................... ..................................... ..................................... ..................................... ..................................... ..................................... .........................................;8 .......................;8 Configuraci+n &e" ser$i&or 7e(.................................... 7e(...................................................... ..................................... ..................................... ..................................... ...............................................................;= ............................................;= Di(idiendo ' organi5ando el archi(o de con6iguraci#n...................................................................................................................................73 Directi(as Directi(as del archi(o archi(o de con6igurac con6iguraci#n... i#n................. ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... .......................................... ............................ 70 egistros egistros de error......... error....................... ........................... ........................... ............................ ........................... ........................... ........................... ........................... ........................... ........................... ........................... ........................... ............................+ ..............+
1+&u"os.......................... 1+&u"os............................................. ..................................... ..................................... ..................................... ..................................... ..................................... ..................................... ..................................... ...................................=2 .................=2 9#dulos 9#dulos relacionado relacionados s con el entorno...... entorno.................... ............................ ........................... ........................... ........................... ........................... ........................... ........................... ........................... .........................................8 ............................8 9#dulos de autenticaci#n ' control de acceso..............................................................................................................................................8 9#dulos de generaci#n dinmica de contenidos................ .......... ........... ........... ........... .......... ........... ........... ........... ........... .......... ........ ...... .. 87 9#dulos de con6iguraci#n del tipo de contenido............... ........... .......... ........... ........... ........... ........... .......... ........... ........... ........... ......... ...... .. 87 9#dulos 9#dulos para el listado listado de directorios directorios............. .......................... ........................... ............................ ........................... ........................... ........................... ........................... ........................... ...............................................8+ ..................................8+ 9#dulos para la gesti#n de las cabeceras ;< de las respuestas..............................................................................................................88 9#dulos de in6ormaci#n del ser(idor ' de registro de la acti(idad.................................................................................................................88 9#dulos 9#dulos de mapeo de =s............ =s.......................... ........................... ........................... ........................... ........................... ............................ ........................... ........................... ........................... ........................... ................................... ..................... 8
Sergio Cuesta Vicente 7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta >tros m#dulos............................................................................................................................................................................................... %
Insta"aci+n/ configuraci+n uso &e "os #+&u"os &e Aache..............................................................................................................>0 =os archi(os de con6iguraci#n de la instalaci#n por pa1uete.........................................................................................................................3 Comprobaci#n de los m#dulos 'a instalados................................................................................................................................................ ,nstalaci#n..................................................................................................................................................................................................... 0 so ' con6iguraci#n....................................................................................................................................................................................... mod?status ' mod?in6o............................................................................................................................................................................... %% Directorios personales de usuarios............................................................................................................................................................. %3 4l m#dulo 9,94.......................................................................................................................................................................................... %7
?osts $irtua"es...................................................................................................................................................................................229 Sitio por de6ecto...........................................................................................................................................................................................%% 9odi6icando los mensa@es de error............... ........... .......... ........... ........... ........... ........... .......... ........... ........... ........... ........... ........ ...... ..... ..... %% Alias a otros directorios................... ........... .......... ........... ........... ........... ........... .......... ........... ........... ........... .......... .......... ...... ..... ...... ..... ...... %%0 edirecciones.............................................................................................................................................................................................. %%0 Creaci#n de hosts (irtuales......................................................................................................................................................................... %%7
Contro" &e acceso.............................................................................................................................................................................260 Control de acceso basado en la direcci#n................ ........... .......... ........... ........... ........... .......... ........... ........... ........... ........... .......... ..... ...... .. %23 Control de acceso por (ariable de entorno..................................................................................................................................................%2 Control de acceso con el m#dulo re$rite.............. ........... ........... .......... ........... ........... ........... .......... ........... ........... ........... ........... ......... ...... . %20
Autenticaci+n autori@aci+n.............................................................................................................................................................26 =os m#dulos mod?auth?core ' mod?auth?basic........................................................................................................................................%2+
Sergio Cuesta Vicente + de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta =os 6icheros .htaccess................................................................................................................................................................................. %3 Agrupando usuarios para el control de acceso................ .......... ........... ........... ........... ........... .......... ........... ........... ........... ........... .......... ...... %32
E" rotoco"o ?--PS..........................................................................................................................................................................20; Certifica&os Digita"es........................................................................................................................................................................208 >btener un certi6icado digital.......................................................................................................................................................................%3
SSL!-SL............................................................................................................................................................................................2<9 ?--PS en Aache............................................................................................................................................................................2<2 Creando un sitio (irtual con ;
Des"iegue &e a"icaciones so(re ser$i&ores 7e( E#a*ueta&o &e a"icaciones 7e(..............................................................2;9
-E1A 0: AD1INIS-4ACI3N DE SE4VIDO4ES DE APLICACIONES.................................................................................................2;2 Ar*uitectura.......................................................................................................................................................................................2;0 =a estructura de directorios de omcat............ .......... ........... ........... ........... ........... .......... ........... ........... ........... .......... ........... ........... ......... .. %0 n (ista5o ms pro6undo a la ar1uitectura de omcat.................................................................................................................................%00
Configuraci+n ('sica &e" ser$i&or &e a"icaciones..........................................................................................................................2;> ser(er.ml.................................................................................................................................................................................................... %0 contet.ml.................................................................................................................................................................................................. %7 $eb.ml....................................................................................................................................................................................................... %77
Ainistrar a"icaciones 7e(...........................................................................................................................................................28 =a estructura de archi(os ' directorios de una Aplicaci#n Web...................................................................................................................%7
Des"iegue &e a"icaciones en e" ser$i&or &e a"icaciones.............................................................................................................282
Sergio Cuesta Vicente 8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta Despliegue manual...................................................................................................................................................................................... %+2 4stableciendo nuestra aplicaci#n como la principal para el ser(idor...........................................................................................................%+3 Despliegue con omcat Web 9anager.............. ........... .......... ........... ........... ........... ........... .......... ........... ........... ........... ........... ......... ..... ..... %+
Autenticaci+n &e usuarios.................................................................................................................................................................28; 4@emplos de autenticaci#n...........................................................................................................................................................................%+ Dominios de seguridad para la autenticaci#n............... ........... ........... .......... ........... ........... ........... ........... .......... ........... ........... ....... ..... ...... . %80
Ainistraci+n &e sesiones. Sesiones ersistentes........................................................................................................................2> Archi$os &e registro &e acceso fi"tro &e so"icitu&es.......................................................................................................................692 Vl(ulas....................................................................................................................................................................................................... 22 &iltros.......................................................................................................................................................................................................... 23
Configurar e" ser$i&or &e a"icaciones ara cooerar con ser$i&ores 7e(..................................................................................... 69; mod?@B......................................................................................................................................................................................................... 27 mod?pro'.................................................................................................................................................................................................. 2%2
Seguri&a& en e" ser$i&or &e a"icaciones. Configurar e" ser$i&or &e a"icaciones con soorte SSL!-SL...................................... 62= Pr'cticas fina"es................................................................................................................................................................................666
-E1A <: INS-ALACI3N
AD1INIS-4ACI3N DE SE4VIDO4ES DE -4ANSE4ENCIA DE A4C?IVOS..........................................................66<
Configuraci+n &e" ser$icio &e transferencia &e archi$os.................................................................................................................66; ,nstalando el ser(idor.................................................................................................................................................................................. 220 Con6igurando el ser(idor............................................................................................................................................................................. 22+
Sergio Cuesta Vicente de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-ios &e usuarios accesos a" ser$icio...........................................................................................................................................66>
Protoco"o seguro &e transferencia &e archi$os................................................................................................................................6;2 n cliente en modo teto para &
Uti"i@aci+n &e herra#ientas gr'ficas.................................................................................................................................................6;< Uti"i@aci+n &e" ser$icio &e transferencia &e archi$os &es&e e" na$ega&or.......................................................................................6;; Uti"i@aci+n &e" ser$icio &e transferencia &e archi$os en e" roceso &e &es"iegue &e "a a"icaci+n 7e(........................................6; Desarro""o &e oeraciones re#otas &e gesti+n &e conteni&os: We(DAV........................................................................................6;8
-E1A ;: SE4VICIOS DE 4ED I1PLICADOS EN EL DESPLIEGUE DE UNA APLICACI3N WEB..................................................................6;> 4eso"utores &e no#(res...................................................................................................................................................................69
Par'#etros &e configuraci+n registros &e" ser$i&or &e no#(res afecta&os en e" &es"iegue......................................................6< Ser$icio &e &irectorios: caractersticas funciona"i&a&....................................................................................................................6> LDAP.................................................................................................................................................................................................682 Insta"aci+n &e OenLDAP................................................................................................................................................................680 Archi(os bsicos de con6iguraci#n. ,nterpretaci#n ' uso.................. .......... ........... ........... ........... ........... .......... ........... .......... ..... ...... ..... ...... 2+
Crean&o conteni&o en LDAP............................................................................................................................................................6=9 9odi6icando el contenido............................................................................................................................................................................. 28+ orrando entidades.....................................................................................................................................................................................2%
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
C"ientes gr'ficos...............................................................................................................................................................................6>6 Autenticaci+n &e usuarios en e" ser$icio &e &irectorios....................................................................................................................6>< 4l atributo olcAccess...................................................................................................................................................................................20 Contraseas para los usuarios.................................................................................................................................................................... 28 Aplicando las directi(as.................... ........... ........... ........... .......... ........... ........... ........... .......... ........... ........... ........... ........... .......... ...... ...... ... 3 Control de acceso en redes de ordenadores................. .......... ........... ........... ........... .......... ........... ........... ........... ........... .......... .......... ...... ... 38
A&ataci+n &e "a configuraci+n &e" ser$i&or &e &irectorios ara e" &es"iegue &e "a a"icaci+n. Usuarios centra"i@a&os.......... ....09> =DA< ' Apache........................................................................................................................................................................................... 3 =DA< ' omcat............................................................................................................................................................................................ 3%3
-E1A : DOCU1EN-ACI3N
SIS-E1AS DE CON-4OL DE VE4SIONES........................................................................................02=
?erra#ientas eternas ara "a generaci+n &e &ocu#entaci+n........................................................................................................02> ,nstalaci#nE con6iguraci#n ' uso............. ........... ........... ........... ........... .......... ........... ........... ........... ........... .......... ........... ........... ........... ......... 32 Creaci#n ' utili5aci#n de plantillas...............................................................................................................................................................32%
Insta"aci+n/ configuraci+n uso &e siste#as &e contro" &e $ersiones............................................................................................066
APNDICES............................................................................................................................................................... 06< We(#in: Una interfa@ gr'fica &e ainistraci+n..............................................................................................................................06; Un e*ue,o ser$i&or DNS................................................................................................................................................................068 Insta"ar 1S5L.................................................................................................................................................................................008
Sergio Cuesta Vicente %% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-e#a 2: I#"antaci+n &e ar*uitecturas 7e(
Sergio Cuesta Vicente %2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
La ar*uitectura 7e( a"gunos #o&e"os Una a"icaci+n 7e(/ o 7e( en genera" necesita &e una estructura *ue er#ita su acceso &es&e &iferentes "ugares F#'*uinas. Esta estructura es "o *ue se &eno#ina Ar*uitectura We( Frea"#ente este no#(re se &a ta#(iHn a" &ise,o &e to&a "a estructura. La gran #aora &e "as ar*uitecturas 7e( en "a actua"i&a& se (asan en un #o&e"o cliente/servidor: una co#unicaci+n asi#Htrica en "a *ue uno &e "os etre#os ofrece uno o #'s ser$icios e" otro hace uso &e H". ste es e" #o&e"o so(re e" *ue centrare#os e" curso/ ero no ha *ue o"$i&ar otros #o&e"os co#o P2P (peer-to-peer), B2B (bussiness to bussiness), etc.
E" tHr#ino servicio es #u a#"io #uchas $eces confuso. Por e)e#"o se ue&e consi&erar una 7e( a "a *ue acu&i#os a co#rar ro&uctos un ser$icio en si #is#a/ ero a "a $e@ &icho ser$icio est' co#uesto &e ser$icios &e seguri&a&/ &e sesi+n/ &e transacciones/ etcHtera. La estructura &e una Ar*uitectura We( actua" sigue e" siguiente modelo: 2. Una capa cliente: es genera"#ente e" na$ega&or We( e)ecut'n&ose en e"
Sergio Cuesta Vicente %3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
or&ena&or &e" usuario fina". Eisten otras ociones #'s ('sicas ero en "a actua"i&a& "a otencia &i$ersi&a& &e "os na$ega&ores eistentes Fas co#o su gratui&a& han re"ega&o "as &e#'s ociones a "a r'ctica &esaarici+n. 6. Un ser$i&or We( Fcapa de negocio: La caa c"iente ue&e acce&er a &iferente "+gica roce&i#ientos *ue eisten en "a caa &e negocio. A*u "a "+gica ue&e ser #ucho #'s co#"e)a *ue en "a caa anterior. Los co#onentes &e esta caa ue&en ser &es&e si#"es archi$os ?-1L hasta Ser$"ets &e a$a. Eisten #uchas tecno"ogas *ue ue&en usarse en este ni$e": or e)e#"o scriting 7e( co#o P?P/ ASP o SP a "engua)es &e rogra#aci+n co#o -CL/ CO4BA PE4L. 0. Una capa de datos: Se co#one &e un siste#a &e a"#acena#iento acceso a &atos *ue se uti"i@an ara confeccionar "a 'gina We(. Genera"#ente es un gestor &e (ases &e &atos re"aciona"es FSGDB ero ue&en ser ficheros &e teto "ano/ ficheros J1L/ etc. Una oci+n ca&a $e@ #'s usa&a es "a creaci+n &e ficheros J1L a artir &e &atos a"#acena&os en una (ase &e &atos su resentaci+n #e&iante a"guna &e "as ociones $istas e" curso asa&o co#o or e)e#"o JSL-. La caa &e negocio ue&e estar a su $e@ &i$i&i&a en &os artes si e" siste#a es suficiente#ente gran&e o co#"e)o. Pue&e &i$i&irse en una caa &e resentaci+n una caa &e "+gica &e negocio. La capa de presentación se encarga &e co#oner "as 'ginas integran&o "a arte &in'#ica en "a est'tica. A&e#'s ta#(iHn rocesa "as 'ginas *ue en$a e" c"iente For e)e#"o &atos en for#u"arios. A"gunas so"uciones ara esta su(caa son "os ASP &e 1icrosoft o "os SP &e a$a. Esta arte "a rea"i@a genera"#ente un ser$i&or 7e(. La capa de lógica de negocio ""e$a a ca(o oeraciones #'s co#"e)as. Se correson&e con "a i#"antaci+n &e un ser$i&or &e a"icaciones. 4ea"i@a #uchos tios &e oeraciones entre "os *ue &estacan: o 4ea"i@ar to&as "as oeraciones $a"i&aciones. Gestionar e" f"u)o &e tra(a)o F7orKf"o7 inc"uen&o e" contro" gesti+n &e "as sesiones "os &atos *ue se necesitan. o o Gestionar to&as "as oeraciones &e accesos a &atos &es&e "a caa &e resentaci+n. En e" caso &e estar usan&o 'ginas 7e( est'ticas Fno ca#(ian en funci+n &e &i$ersas $aria("es no eistira "a caa &e &atos a *ue estos $an incorora&os en "os roios archi$os &e #arcas *ue ser'n "as confor#an "as 'ginas 7e(. •
•
Este suuesto es ca&a $e@ #enos co#n. De(i&o a "a intro&ucci+n &e &ina#is#o en "as 'ginas/ "a estructura $ista anterior#ente se ha $isto a"tera&a sensi("e#ente:
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Los na$ega&ores We( son caaces &e interretar &iferentes e"e#entos &in'#icos aut+no#a#ente o #e&iante "ugins F)a$ascrit/ f"ash/ etc. Los ser$i&ores We( ta#(iHn ue&en interretar c+&igo ara generar "as 'ginas 7e(. As se ue&en intro&ucir e*ue,os rogra#as *ue a"teren e" conteni&o o asecto fina" &e una 'gina 7e( &een&ien&o &e &iferentes e"e#entos co#o e" usuario *ue acce&e o "a infor#aci+n so"icita&a en ca&a #o#ento. E" ser$i&or 7e( necesita &e a"gn #+&u"o a&iciona" ara o&er interretar este c+&igo. Genera"#ente se e#otra en e" roio ser$i&or 7e( ara "engua)es &e scrit o se incorora en un ser$i&or a arte F&e a"icaciones ara "os "engua)es #'s otentes. A"gunos "engua)es *ue tica#ente se usan en "as 'ginas &in'#icas en e" ser$i&or son P?P/ Pthon/ 4u( o a$a. Estos "engua)es ta#(iHn er#iten e" acceso a "a caa &e &atos "a interca"aci+n &e estos &atos entre "os e"e#entos &e "a 'gina fina". Un e)e#"o &e" #o&e"o co#"eto estara co#uesto or un ser$i&or Aache un -o#cat *ue se conecte a una (ase &e &atos. Un e)e#"o &e" si#"ifica&o sera un ser$i&or LA1P. •
•
D+n&e se e)ecute e" c+&igo &e &ina#i@aci+n &e "a 'gina &eter#inar' si e" "engua)e &e rogra#aci+n es &e entorno c"iente o &e entorno ser$i&or co#o se estu&iar' en "os otros &os #+&u"os &e conteni&o infor#'tico &e este curso &e" cic"o. A esar &e *ue e" #o&e"o C"iente!Ser$i&or es e" #'s eten&i&o/ e" W0C &escri(e cuatro #o&e"os &e ar*uitectura &e ser$icios 7e(. Estos concetos "os $ere#os or enci#a or no tener una gran inf"uencia en e" resto &e" curso: 2. E" 1o&e"o Orienta&o a 1ensa)es: Se centra en &efinir "os #ensa)es/ su estructura/ "a for#a &e transortar"os/ etc. sin referencias a" or *uH &e ca&a #ensa)e ni a su significa&o.
6. E" 1o&e"o Orienta&o a Ser$icios: Es e" #'s eten&i&o e" #'s co#"e)o &e to&os. Aun*ue usa #ensa)es/ su &efinici+n no se (asa en e""os si no en *uH se roorciona a "os recetores &e &icho ser$icio. E" ser$icio "o ""e$a a ca(o un agente "o usa otro agente/ uti"i@an&o #ensa)es ara co#unicarse. En este #o&e"o se usan #eta&atos ara for#ar &e acor&ar #uchos asectos &e "a co#unicaci+n en si #is#a. 0. E" 1o&e"o Orienta&o a 4ecursos: Este #o&e"o se (asa en "a creaci+n &e recursos su accesi(i"i&a& #e&iante re&es.
Sergio Cuesta Vicente %0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
<. E" 1o&e"o &e Po"ticas: se (asa en &efinir "os co#orta#ientos &e "os agentes *ue uti"i@an "os ser$icios &efinien&o c+#o acce&er'n a "os recursos
Estos #o&e"os son en #uchos casos co#"e#entarios "a &efinici+n &e una ar*uitectura 7e( ue&e hacerse &es&e &iferentes enfo*ues. En un caso r'ctico "o #'s ha(itua" es *ue nuestra ar*uitectura se (ase en una &efinici+n est'n&ar.
Sergio Cuesta Vicente %7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Un #o&e"o si#"e ara e" &es"iegue &e a"icaciones We( En "a actua"i&a& "a #aor arte &e "a infor#aci+n "+gica &e un negocio &e(e ser accesi("e &es&e &iferentes "ugares. A*u entran en )uego "as a"icaciones 7e(. -o&os ensa#os en tien&as on"ine co#o #o&e"o &e una a"icaci+n 7e(/ ero ha otros #uchos co#o or e)e#"o una a"icaci+n &e co#ra $enta &e acti$os entre &os (ancos en e" sector entre negocios FB6B. Se ue&e i#aginar in#e&iata#ente *ue "a seguridad es un asecto c"a$e en este tio &e a"icaciones/ ero no e" nico. 1uchas $eces "a velocidad estabilidad &e "a co#unicaci+n &e" ser$icio en s ue&en ser tanto o #'s crticas. Cuan&o uno $a a &esarro""ar e i#"antar una a"icaci+n 7e( &e(e tener en cuenta $arios factores. Lo ri#ero &e(e ser hacerse una idea general de la aplicación &e "as &iferentes soluciones *ue o&e#os uti"i@ar. Se &e(en tener en cuenta "as tres caas. Un error #u co#n es e" uso &e un nico con)unto &e tecno"ogas constante#ente. Por suuesto conocer una tecno"oga es un unto a fa$or &e su uso/ ero #uchas $eces $a#os a ""e$ar a ca(o una so"uci+n #anifiesta#ente #e)or nica#ente or no ha(er consi&era&o usar otras afrontar su aren&i@a)e. E" siguiente asecto a consi&erar sera e" coste. Cu'nto nos $a a costar *uH resuuesto tene#os. Estos factores ha *ue consi&erar"os antes de firmar ningn contrato e inc"uso antes &e &ar un resuuesto aun*ue sea orientati$o. Por e)e#"o una co#a,a &e $enta &e $ehcu"os in&ustria"es *uiere una a"icaci+n 7e( ara u("icar sus &atos &e $entas *ue "os co#ercia"es ue&an acce&er a e""a re#ota#ente. Necesitare#os una (ase &e &atos en "a *ue se a"#acenen "os &iferentes $ehcu"os sus $entas. -a#(iHn har' fa"ta una "+gica *ue #antenga to&o e" siste#a actua"i@a&o er#ita #o&ificaciones. A&e#'s necesitare#os una caa &e c"iente con autenticaci+n ara *ue "os &iferentes $en&e&ores ue&an acce&er a" siste#a/ consu"tar actua"i@ar "os &atos.
Sergio Cuesta Vicente %+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
DesuHs &e "a e$a"uaci+n se ue&e &eci&ir no afrontar e" roecto or #uchos #oti$os. A&e#'s &e "os costes a #enciona&os o&ra &arse e" caso &e *ue no tenga#os "os conoci#ientos o "a infraestructura ara ""e$ar a ca(o e" roecto. Una $e@ $aa#os a rea"i@ar e" roecto &e(ere#os oner en r'ctica "os conoci#ientos a&*uiri&os &urante e" estu&io &e este cic"o/ ero #uchas $eces es &ifci" hacerse una i&ea &e c+#o hacer"oM a*u nos orientan con un e)e#"o esta e*ue,a gua nos ue&e ser #u ti" ara organi@ar e" fronten&.
!u" es una aplicaci#n $eb Es una a"icaci+n *ue se $a a e)ecutar a tra$Hs &e internet. Constar' &e &os artes Fa" #enos una en e" "a&o ser$i&or otra *ue se e)ecutar' en "a #'*uina &e" c"iente en un na$ega&or 7e(. Las a"icaciones 7e( se eng"o(an en e" conceto suerior &e a"icaciones &istri(ui&as. E" ser$i&or one a &isosici+n &e" c"iente &iferentes recursos. E)e#"os &e a"icaciones 7e( son e" correo e"ectr+nico 7e(/ "as tien&as on"ine/ "as re&es socia"es/ etc.
&ases de un pro'ecto de una aplicaci#n $eb Se ue&en consi&erar cuatro fases en e" roecto: 2. Concepto: Durante esta fase se &e(e o(tener una i&ea c"ara concreta &e *uH *uiere e" c"iente. A&e#'s ha *ue o(tener una i&ea genera" &e c+#o se ""e$ar' a ca(o &e si es $ia("e o no. ?a *ue &eter#inar "as "i#itaciones rea"es con *ue nos o&e#os encontrar. Por e)e#"o "a conei+n a internet eistente en "a @ona ue&e no ser suficiente ara o(tener "os resu"ta&os re$istos. Otro e)e#"o &e ro("e#a ue&a ser *ue "a tecno"oga necesaria sea &e#asia&o cara. Es $ita" *ue a" ter#inar esta fase se tenga una &ocu#entaci+n *ue &efina c"ara#ente "os "#ites o()eti$os &e" roecto. 6. Diseo: Esta fase se centra en reson&er a c+#o hare#os "a a"icaci+n. ?a *ue concretar "as tecno"ogas Ftanto soft7are co#o har&7are *ue usare#os c+#o se $an a co#unicar entre e""as. -a#(iHn ha *ue &eter#inar "os &istintos #+&u"os *ue usare#os sus interfaces. Es #u i#ortante rea"i@ar un "an &e roecto rea"ista en e" *ue se &i$i&an "as tareas resonsa(i"i&a&es se ca"cu"en
Sergio Cuesta Vicente %8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
"os tie#os ara ca&a e"e#ento as co#o su secuencia &een&encias. -a#(iHn ha *ue o(tener una esecificaci+n funciona" en "a *ue se &eta""en tanto e" funciona#iento co#o e" f"u)o &e "a a"icaci+n. 0. Desarrollo: En esta fase se &e(e &esarro""ar e" roecto en s. Es #u i#ortante ""e$ar a ca(o rue(as tanto unitarias co#o &e integraci+n as co#o gestionar una &ocu#entaci+n &e" &esarro""o un contro" &e $ersiones. <. Pruebas e implantación: Cuan&o e" roecto est' tota"#ente ter#ina&o es necesario ro(ar"o intensi$a#ente antes &e oner"o en ro&ucci+n. Es necesario tener en cuenta tanto nuestra a"icaci+n co#o su co#unicaci+n con otros siste#as infor#'ticos. Cuanto #'s se are@ca e" siste#a &e rue(as a" rea" #e)or. E" "ti#o aso es "a insta"aci+n uesta en #archa &e" siste#a. Es un #o#ento crtico. Este #o&e"o es una si#"ificaci+n &e "os *ue se uti"i@an ha(itua"#ente en ingeniera &e soft7are.
In$estiga en Internet "as fases ha(itua"es en un roecto &e &esarro""o &e soft7are cu'"es son "os &iferentes cic"os &e $i&a *ue se usan. Discute en c"ase "os &escu(ri#ientos con au&a &e" rofesor.
Una fase co#n a to&os "os roectos infor#'ticos *ue no se inc"ue a*u es e" mantenimiento. Este conceto inc"ue &os artes. E" #anteni#iento &e" ser$icio correcci+n &e errores "as #e)oras. La ri#era consiste en asegurarse &e *ue to&o sigue funcionan&o so"ucionar "os osi("es errores ca&as &e" ser$icio. La segun&a consiste en a#"iar e" roecto. A#(os casos sue"en consi&erarse contratos a arte or e""o no se inc"uen en e" cic"o. E" or&en correcto ara e" &esarro""o es e#e@ar &e a(a)o a arri(a. Es &ecir/ ri#ero "a caa &e &atos/ "uego "a &e negocio or "ti#o "a resentaci+n a" c"iente. 1uchas $eces se tiene "a tentaci+n &e hacer"o a" re$Hs. Esto es &e(i&o a *ue no se han i&entifica&o (ien "as necesi&a&es o()eti$os &e roecto o no se ha rea"i@a&o un &ise,o concreto. Es un error *ue nos con&ucir' a #uchas #'s #o&ificaciones errores en nuestra a"icaci+n.
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ser$i&ores 7e( Un servidor !eb es un rogra#a o con)unto &e e""os *ue roorciona un ser$icio a tra$Hs &e una re&. La co#unicaci+n con un ser$i&or 7e( sue"e hacerse #e&iante e" rotoco"o htt Fhertet transfer rotoco" *ue est' eng"o(a&o en "a caa &e a"icaci+n &e" #o&e"o OSI. 1uchas $eces ser$i&or 7e( se usa co#o referencia ta#(iHn a" "ard!are *ue "o a"o)a/ ero esto es ineacto or*ue e" #is#o har&7are ue&e a"(ergar #uchas otras funciona"i&a&es o ue&e &arse e" caso &e *ue un #is#o har&7are contenga $arios ser$i&ores 7e( Fa $eces si#u"a&os. E" o()eti$o &e un ser$i&or 7e( es roorcionar "os #e&ios ara er#itir "a co#unicaci+n entre &os o #'s rogra#as o gruos &e soft7are sin i#ortar "a tecno"oga usa&a ara crear oerar ca&a uno &e e""os. En "a actua"i&a& e" ser$i&or 7e( #'s eten&i&o con #ucha &iferencia es #pac"e. Por e""o ser' en e" *ue centrare#os este curso. Eisten #uchos otros ser$i&ores 7e(. Una for#a f'ci" &e consu"tar "a "ista $er una co#arati$a #u genera" es $isitan&o "a WiKie&ia. En esta otra se ue&en "eer "as rincia"es caractersticas &e ca&a uno. Los ser$i&ores 7e( se eng"o(an en un con)unto &e siste#as #'s genera" *ue se &eno#ina modelo distribuido or*ue e" siste#a no es unitario/ est' rearti&o entre &iferentes #'*uinas o con)untos &e har&7are. Este #o&e"o tiene *ue afrontar a"gunos ro("e#as *ue ha *ue tener sie#re en cuenta: 2. 6. 0. <. ;.
La "atencia oca fia(i"i&a& &e" transorte For e)e#"o "a re&. La fa"ta &e #e#oria co#arti&a entre "as artes. Los ro("e#as &eri$a&os &e fa""os arcia"es. La gesti+n &e" acceso concurrente a recursos re#otos. Pro("e#as &eri$a&os &e actua"i@aciones &e a"guna!s &e "as artes.
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
QDe *uH se encarga ca&a ni$e" &e "a i"a &e" #o&e"o OSIR Q5uH rotoco"os se inc"uen en ca&a caaR I&entifca"os e"ica #u (re$e#ente *uH hace ca&a uno.
Ser(icios Web Un servicio !eb es un conceto a(stracto *ue &e(e i#"e#entarse #e&iante un agente: un e&a@o &e soft7are *ue en$a/ reci(e rocesa #ensa)es #ientras *ue e" ser$icio es e" conceto &e *uH hace. E" agente so"o &e(e a)ustarse a "a &efinici+n &e una interfa@ F&os rea"#ente/ una hacia &entro Fi"a OSI otra hacia fuera ue&e #o&ificarse o inc"uso rehacerse en otro "engua)e &e rogra#aci+n sin ningn ro("e#a. E" &ise,o se rea"i@a siguien&o nor#as &e #o&u"ari&a& ara er#itir estas #o&ificaciones. Es &e $ita" i#ortancia *ue e" ser$icio 7e( estH (ien &efini&o ara osi(i"itar "a co#unicaci+n entre a#(os etre#os. Por e""o ha #uchos est'n&ares so(re ser$icios 7e( *ue er#iten "a co#unicaci+n &e un c"iente genHrico For e)e#"o un na$ega&or 7e( con &i$ersos ser$icios. Genera"#ente "a &efinici+n &e un ser$icio se rea"i@a en una API *ue esecifica c+#o co#unicarse con e" ser$icio. E" roceso ara usar e" ser$icio es co#o sigue: 2. E" c"iente e" ser$i&or &e(en ser conscientes &e "a eistencia &e" otro. En e" caso #'s ha(itua" es e" c"iente e" *ue infor#a a" ser$i&or &e su intenci+n &e usar e" ser$icio ero ta#(iHn ue&e ser e" ser$i&or e" *ue inicie e" contacto. Si es e" c"iente e" *ue co#ien@a/ ue&e hacer"o o (ien conocien&o re$ia#ente c+#o "oca"i@ar e" ser$i&or o usan&o e" ser$icio ara &escu(rir ser$icios FWe( Ser$ice Disco$er. 6. A#(as artes &e(en onerse &e acuer&o so(re "os ar'#etros *ue regir'n "a co#unicaci+n. Esto no significa *ue &iscutan/ so"o *ue "as nor#as rotoco"os &e(en ser "as #is#as en a#(as artes. 0. Los agentes &e a#(os "a&os e#ie@an a interca#(iar #ensa)es. E" ser$i&or 7e( necesita co#oner "as 'ginas en caso &e *ue ""e$en e"e#entos #u"ti#e&ia e inc"uso necesitar' rea"i@ar otras acciones si "a 'gina se crea &in'#ica#ente.
Sergio Cuesta Vicente 2% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Alternati(as Antes &e &eci&irse a insta"ar nuestro roio ser$i&or 7e(/ &e(e#os tener en cuenta *ue no sie#re es "a #e)or oci+n. Lo ri#ero *ue &e(e#os sa(er es *uH *uiere e" c"iente. Deen&ien&o &e" ta#a,o &e" ser$icio *ue $aa#os a roorcionar &e "a i#ortancia &e o&er contro"ar to&os "os asectos &e" ser$i&or/ o&e#os &eci&ir usar otras osi(i"i&a&es. Por otro "a&o "a #'*uina *ue necesita#os ten&r' *ue tener #ucha 4A1 caaci&a& &e a"#acena#iento a arte &e soortar gran&es cargas &e tra(a)o. La conei+n a internet ta#(iHn &e(er' ser otente necesitare#os contratar una &irecci+n IP est'tica. Lo ri#ero *ue se &e(e tener en cuenta es si nos interesa tener nuestro roio ser$i&or 7e( o contratar un ser$icio &e a"#acena#iento 7e( F 7e( "osting. 4ea"#ente e" tHr#ino We( ?osting inc"ue e" tener un ser$i&or roio/ ero en "a actua"i&a& se uti"i@a ara &eno#inar e" a"*ui"ar esacio en un ser$i&or &e otra co#a,a. Genera"#ente esta co#a,a est' &e&ica&a a e""o esecfica#ente. Las $enta)as &e este caso son "as o($ias: no tene#os *ue reocuarnos &e a&*uirir ni #antener ni e" har&7are ni e" soft7are necesario. A&e#'s "a fia(i"i&a& &e" ser$icio &e una e#resa esecia"i@a&a sue"e ser #u a"ta. Eisten casos en "os *ue inc"uso ha tecno"ogas #'s esecficas ara nuestras necesi&a&es. Ca&a $e@ es #'s ha(itua" "a eistencia &e sitios 7e( en "os *ue "a aariencia no ca#(ia ero e" conteni&o es actua"i@a&o constante#ente. Para estos casos se ue&e usar un gestor de contenidos. Con e""os se er#ite a" usuario actua"i@ar "a infor#aci+n &e" sitio sin necesi&a& &e *ue tenga conoci#ientos 7e( concretos. Eisten #uchos gestores 7e(/ a"gunos co#ercia"es caros ero #u onentes. -a#(iHn ha &os a"ternati$as gratuitas #u eten&i&as: oo#"a Drua". "ti#a#ente se consi&era inc"uso una a"ternati$a #'s senci""a si se *uiere una 7e( infor#ati$a (astante senci""a. Wor&ress e#e@+ sien&o una "atafor#a ara a"o)ar ("ogs ero ca&a $e@ inc"ue #'s ociones osi(i"i&a&es &e configuraci+n er#itien&o ""e$ar a ca(o 'ginas (astante atracti$as. En "a actua"i&a& es un gestor &e conteni&os *ue inc"uso ue&e insta"arse &e #anera aut+no#a co#o se in&ica a*u. htt:!!777.fra#e7or.co.@a! htt:!!777.7e(&esigner&eot.co#!
Sergio Cuesta Vicente 22 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
htt:!!&esignshacK.net! Son a"gunos e)e#"os &e 'ginas hechas en Wor&ress.
Busca co#arati$as entre #ontar tu roio ser$i&or/ contratar un hosting eterno o usar 7or&ress. Q5uH funciona"i&a&es crees *ue son #'s i#ortantesR QPor cu'" te &ecantaras ara crear "a 7e( &e una ana&eraR Q &e un centro &eorti$o #unicia"R Q"a &e "a conse)era &e &eortes &e "a Co#uni&a& &e 1a&ri& "a rea"i@aras con e" #is#o siste#aR Los gestores &e conteni&o co#o oo#"a/ Drua" o Wor&ress est'n generan&o (astantes ofertas &e tra(a)o en "a actua"i&a&. Busca en Internet "as rincia"es caractersticas &e ca&a uno "os #oti$os *ue te ue&en ""e$ar a &eci&irte or uno u otro.
)!u" necesito para montar un ser(idor $eb* Lo ri#ero *ue necesitas es una m$%uina con una otencia caa@ &e aten&er "as eticiones *ue $aa a rocesar. Este unto es crtico &ifci" &e gestionar or*ue no sa(e#os cu'" ser' "a &e#an&a #uchas $eces es co#"e)o esti#ar "a carga &e tra(a)o *ue soortar'. Es #u reco#en&a("e *ue sea una #'*uina &e&ica&a o *ue cu#"a otras funciones re"aciona&as con interca#(io &e infor#aci+n en internet co#o gestionar correo e"ectr+nico o -P. -a#(iHn es $ita" *ue e" sistema operativo *ue e"i)a#os sea esta("e. No tiene ningn senti&o e"egir un siste#a oerati$o *ue &e)e &e estar funciona" con faci"i&a&. Es con$eniente *ue ""e$e cierta seguri&a& contro" &e er#isos integra&o. Los siste#as #'s ha(itua"es son &iferentes $ersiones &e UNIJ For e)e#"o So"aris ero "as &iferentes &istri(uciones &e Linu est'n to#an&o una osici+n fuerte or su (a)o Fo ineistente coste. Win&o7s ta#(iHn es una (uena oci+n Fso(re to&o sus $ersiones ser$i&or ero es #'s caro *ue Linu es #'s &ifci" &e gestionar &e(i&o a "a &i$ersi&a& &e configuraciones/ ociones funciona"i&a& *ue ""e$en integra&os.
Sergio Cuesta Vicente 23 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Lo siguiente *ue ten&r's *ue conseguir es una dirección &P est$tica . Por suuesto &e(e ser una &irecci+n &e internet a no ser *ue tu o()eti$o sea #ontar una intranet. Nuestra #'*uina &e(e ser accesi("e &es&e re&es re#otas.
Consu"ta c+#o se ue&e contratar una &irecci+n IP est'tica cu'nto cuesta.
Los no#(res &irecciones &e internet *ue conoce#os se (asan en un siste#a ""a#a&o DNS *ue "o *ue hace es con$ertir esas &irecciones "egi("es ara nosotros en &irecciones IP $ice$ersa. Si nuestra &irecci+n IP ca#(ia frecuente#ente cuan&o a"guien fuera a acce&er a nuestra 'gina esta "e aarecera co#o no &isoni("e a esar &e *ue to&o e" resto &e" siste#a estu$iera tra(a)an&o.
Q5uH es DNSR Q5uiHn "o gestionaR QC+#o se consigue un no#(re &e &o#inioR Para a"ternati$as co#o Wor&ress o un hosting eterno/ Qes necesario un no#(re &e &o#inioR
Eiste "a osi(i"i&a& &e funcionar con una &irecci+n IP &in'#ica #e&iante siste#as co#o htt:!!&n.co#!&ns! *ue #antienen sie#re actua"i@a&a nuestra &irecci+n ero so"o es reco#en&a&o Finc"uso en "a roia 'gina ara ser$i&ores con #u oca carga &e coneiones tra(a)o. La cone'ión a internet 2 "oras se &a or garanti@a&a ero ta#(iHn i#"ica ciertos ro("e#as co#o "a a&*uisici+n &e &isositi$os &e re& *ue aguanten ese horario sin so(reca"entarse o saturarse. E" soft!are &e" ser$i&or &e" *ue a he#os ha("a&o sin e" *ue no o&ra#os tra(a)ar.
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta Configurar nuestra #'*uina ara *ue sea accesi("e ero i#i&ien&o "a conei+n &e &esconoci&os a artes &e" siste#a crticas o *ue no
*uere#os u("icar. En &efiniti$a/ ha *ue #e)orar "a seguri&a&.
Sergio Cuesta Vicente 20 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Insta"aci+n configuraci+n ('sica &e un ser$i&or 7e(: Aache Nosotros $a#os a otar or insta"ar un ser$i&or 7e( Aache en un siste#a oerati$o Linu. Es una &e "as ociones #'s eten&i&as "a osi(i"i&a& &e o(tener este soft7are &e #anera gratuita &is#inue #ucho "os costes ero no es "a nica ra@+n. Aache &estaca so(re otros ser$i&ores or: -iene un &ise,o #o&u"ar a"ta#ente configura("e. Es &e c+&igo a(ierto or "o *ue eisten #uchas etensiones herra#ientas &e terceros. unciona #u (ien con Per"/ P?P otros "engua)es &e scrit. Eisten $ersiones ara #uchos siste#as oerati$os inc"uen&o Win&o7s/ Linu 1ac OS J. La fa#i"ia Aache 6 tra)o #uchas #e)oras con resecto a "a ri#era $ersi+n so(re to&o en e" "ano &e "a f"ei(i"i&a&/ esca"a(i"i&a& orta(i"i&a&. • • • •
Lo #'s "+gico sera insta"ar Aache en un siste#a oerati$o &e tio ser$i&or FU(untu Ser$er ero or #oti$os &i&'cticos/ $a#os a insta"ar"o en una $ersi+n est'n&ar con interfa@ gr'fica. Es #enos seguro or "o *ue en un siste#a en ro&ucci+n &e(era#os otar or "a otra oci+n. A esar &e usar un Linu con interfa@ gr'fica $a#os a insta"ar to&o &es&e "a $entana &e ter#ina"/ or "o *ue "os asos se o&r'n a"icar a un ser$i&or. Aache ue&e funcionar &e for#a aut+no#a/ ero en "a actua"i&a& F#'s an ha("an&o &e a"icaciones 7e( sue"e necesitar una (ase &e &atos ca&a $e@ son #'s "os siste#as *ue usan P?P. Por e""o han ro"ifera&o "os insta"a&ores A1P FAache/ 1S5L P?P *ue insta"an configuran "os tres siste#as ara *ue funcionen &e #anera con)unta. Esto re*uiere conocer en rofun&i&a& "a configuraci+n &e "os tres e"e#entos ara o&er tener un ser$i&or seguro. Para seguri&a& so(re P?P 1S5L ha(r' *ue referirse a "os #+&u"os roios. JA1PP es "a $ersi+n #'s usa&a ara Win&o7s Linu. Deen&ien&o &e" siste#a ara e" *ue $aan orienta&os/ estos a*uetes se ""a#an WA1P LA1P genHrica#ente. La insta"aci+n &e estos a*uetes es tre#en&a#ente senci""a.
Sergio Cuesta Vicente 27 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta *+# En anteriores $ersiones &e estos auntes/ se inc"ua una gua ara rea"i@ar una insta"aci+n #anua" &e Aache. ?e &eci&i&o *uitar"a
or*ue este #+&u"o se inc"ue en un cic"o so(re &esarro""o no so(re ainistraci+n/ or*ue es &e#asia&o farragosa/ or*ue no "a us'(a#os &urante e" resto &e" curso or*ue *uita(a &e#asia&o tie#o *ue "uego ech'(a#os en fa"ta &urante "os "ti#os te#as. Consi&ero *ue un a"u#no *ue ter#ina e" cic"o &e(e ser caa@ &e rea"i@ar "a insta"aci+n #anua" siguien&o una gua con "os conoci#ientos &e Linu a&*uiri&os en Siste#as Oerati$os "os &e Aache *ue se e"ican en este #+&u"o.
Comprobaci#n ' eliminaci#n de otras (ersiones En "a #aora &e "as guas tutoria"es &e internet $er's *ue insta"an ri#ero 1S5L. Esto es or*ue faci"ita "a insta"aci+n/ ero Q si tene#os *ue #ontar una (ase &e &atos en un ser$i&or 7e( *ue a est' funcionan&oR Nosotros insta"are#os ri#ero "a oci+n #'s ('sica &e nuestro ser$i&or 7e(. Antes &e na&a/ #'s an en un ser$i&or *ue $aa a u("icar en "a 7e(/ &e(e#os asegurarnos &e tener e" contro" a(so"uto. 1uchas $ersiones &e Linu $ienen con a*uetes &e Aache preinstalados as *ue "o ri#ero ser' eliminarlos si eisten. Esto #e)ora "a seguri&a& or*ue nos asegura#os &e estar insta"an&o "a "ti#a $ersi+n. Va#os a co#ro(ar &e #anera con)unta si eisten insta"aciones &e Aache/ 1S5L P?P ara o&er &e)ar una #'*uina "i#ia. dpkg --list|grep -e httpd -e apache -e mysql -e php
Q5uH hace "a "nea anteriorR
Sergio Cuesta Vicente 2+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En U(untu or &efecto no $iene insta"a&o. Si est' reinsta"a&o e" co#an&o anterior &e$o"$er' a"go. Si es as &e(e#os co#ro(ar "as &een&encias ara e"i#inar to&o. Si $iHra#os *ue aarece ii a" "a&o &e" a*uete estara insta"a&o ha(ra *ue e"i#inar"o. Suonga#os *ue nos &e$ue"$e "o siguiente ii apache2 extendable eb se ii apache2-mpm-pre!ork $""%& ii apache2-utils ii apache2.2-common extendable eb se ii libapache2-mod-php( scripting languag ii libdbd-mysql-perl the *y+ data ii libmysqlclient1 (o!! ii mysql-client-(. ii mysql-common ii mysql-ser'er package dependin ii mysql-ser'er-(. ii php(-common !rom the php ii php(-mysql
2.2.4-3build1 2.2.4-3build1 2.2.4-3build1 2.2.4-3build1 (.2.3-1ubuntu) 4.4-2
Next generation, scalable, "raditional model !or #pache utility programs !or ebser'ers Next generation, scalable, ser'er-side, $"*+-embedded # %erl( database inter!ace to
(..4(-1ubuntu3 (..4(-1ubuntu3 (..4(-1ubuntu3 (..4(-1ubuntu3
*y+ database client library *y+ database client binaries *y+ database common !iles *y+ database ser'er /meta
(..4(-1ubuntu3 (.2.3-1ubuntu)
*y+ database ser'er binaries 0ommon !iles !or packages built
(.2.3-1ubuntu)
*y+ module !or php(
Busca#os "os rocesos &e aache. ps -e!|grep apache2
Sergio Cuesta Vicente 28 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Suone#os *ue nos #uestra root -data -data -data -data -data -data -data -data root
4) 42( 42) 426 427 42 414 4141 4142 41(6
1 4) 4) 4) 4) 4) 4) 4) 4) 412(
41 41 41 41 41 41 1424 1424 1424 143)
pts5
5usr5sbin5apache2 5usr5sbin5apache2 5usr5sbin5apache2 5usr5sbin5apache2 5usr5sbin5apache2 5usr5sbin5apache2 5usr5sbin5apache2 5usr5sbin5apache2 5usr5sbin5apache2 grep apache2
Para#os Aache apachectl stop
Vo"$e#os a (uscar"o ara asegurarnos &e *ue a no se est' e)ecutan&o. ps -e!|grep apache2 root 41)2 412( 143) pts5
grep apache2
Ahora (usca#os 1S5L ps -e!|grep mysql
Sergio Cuesta Vicente 2 de 338
-k -k -k -k -k -k -k -k -k
start start start start start start start start start
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Nos #uestra root 37(6 1 41 5bin5sh 5usr5bin5mysqld8s a!e mysql 376 37(6 41 5usr5sbin5mysqld --basedir95usr --datadir95'ar5lib5mysql --user9mysql --pid-!ile95'ar5run5mysqld5mysqld.pid --skip-external-locking --port933) --socket95'ar5run5mysqld5mysqld.sock root 377 37(6 41 logger -p daemon.err -t mysqld8sa!e -i -t mysqld root 43(( 431 17(4 pts51 grep mysql
Para#os 1S5L 5etc5init.d5mysql stop : topping *y+ database ser'er mysqld
; <= >
co#ro(a#os *ue a no est'. ps -e!|grep mysql root 43( 431
17(( pts51
grep mysql
P?P no ha *ue arar"o. E"i#ina#os to&os "os a*uetes *ue aarecan. 3 remo'e php(-mysql libapache2-mod-php( php(-common apt-get remo'e libdbd-mysql-perl mysql-ser'er mysql-ser'er-(. mysql-client-(.
Sergio Cuesta Vicente 3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
apt-get remo'e libmysqlclient1(o!! mysql-common apt-get remo'e apache2 apache2-mpm-pre!ork apache2.2-common apache2-utils
Ahora *ue a he#os $isto c+#o hacer una insta"aci+n configuraci+n &e Aache 6 &e for#a #anua"/ $a#os a rea"i@ar otra insta"aci+n #'s est'n&ar ara continuar. A&e#'s esta insta"aci+n nos er#itir' tener una $ersi+n "i#ia.
,nstalaci#n Antes &e insta"ar a"go es i#ortante tener actua"i@a&a "a "ista &e a*uetes Feste co#an&o no insta"a na&a/ so"o actua"i@a "a "ista &e a*uetes sudo apt-get update
ara "uego actua"i@ar "a #'*uina entera Finsta"a#os "as $ersiones #'s recientes &e "as #'*uinas insta"a&as sudo apt-get upgrade
"uego a insta"a#os apt-get install apache2
Lo ri#ero *ue &e(e#os hacer es $er *ue ahora Aache est' insta"a&o en
Sergio Cuesta Vicente 3% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
cd 5etc5apache25
Eisten &iferentes $ersiones &e Aache 6 or "o *ue es interesante co#ro(ar cu'" es "a *ue esta#os usan&o. apache2 ?'
"o *ue nos #ostrar' a"go co#o esto er'er 'ersion #pache52.4.6 /@buntuA er'er built Bul 22 214 143)37
Configura e insta"a Aache en tu #'*uina $irtua" siguien&o "os asos in&ica&os co#rue(a e" acceso &es&e "a #'*uina $irtua" &es&e "a #'*uina anfitri+n. Co#enta en c"ase "os resu"ta&os.
Po&e#os $er *ue a eiste un archi$o aache6 en !etc!init.&! *ue hace *ue se inicie Aache ca&a $e@ *ue encen&a#os "a #'*uina. sudo gedit 5etc5init.d5apache2
Nos #uestra un conteni&o #u co#"e)o ero a" *ue o&e#os echar un $ista@o sa(ien&o *ue se (asa en esta("ecer *uH hacer ante &i$ersas +r&enes F"as #'s i#ortantes son start/ sto/ restart gracefu".
Sergio Cuesta Vicente 32 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Echa un $ista@o a" scrit sin entrar en &eta""es. Q5uH es gracefu"R Qara *uH se usa a*uR
?a #uchas #aneras &e insta"ar Aache. Se ue&en e"egir #+&u"os/ configuraci+n rutas. Nosotros $a#os a usar una *ue uti"i@a DSO FDna#ic Share& O()ects. Esto es una configuraci+n &e Aache *ue er#ite a,a&ir "uego #+&u"os sin necesi&a& &e reco#i"ar to&o e" ser$i&or or &efecto en "a insta"aci+n auto#'tica a $iene acti$a&a. Para nuestro curso es $ita". E" nico ero es un &escenso casi i#erceti("e &e" ren&i#iento or "o *ue consi&ero #u reco#en&a("e usar este #Hto&o. Ahora a(ri#os e" na$ega&or 7e( carga#os "a 'gina ara $er *ue to&o ha i&o (ien. Escri(i#os htt:!!"oca"host &e(e#os encontrar "a 'gina *ue one It WorKsT. En "a $ersi+n &e U(untu a&e#'s esta 'gina ha si&o #o&ifica&a ara *ue nos e"i*ue "a organi@aci+n &e "a configuraci+n &e Aache en esta &istri(uci+n. En "a &istri(uci+n est'n&ar to&a "a configuraci+n $a en un nico archi$o ero se ue&e &istri(uir #e&iante ""a#a&as a archi$os &e configuraci+n eternos. La configuraci+n *ue nos encontra#os a*u es (astante "+gica $ere#os *ue "a re"aci+n entre a#(as for#as es senci""a &e #o&ificar a&atar. Po&e#os a&e#'s co"ocar a"gn archi$o ?-1L co#ro(ar *ue se #uestra. Para e""o ire#os a htt:!!"oca"host!no#(rearchi$o.ht#"
Configura e insta"a Aache en tu #'*uina $irtua" siguien&o "os asos in&ica&os co#rue(a e" acceso &es&e "a #'*uina $irtua" &es&e "a #'*uina anfitri+n.
Aun*ue e" esritu &e un ser$i&or es estar acti$o to&o e" tie#o osi("e/ es i#ortante o&er arar"o/ arrancar"o reiniciar"o en ciertas situaciones. -o&as estas ociones nos "as e"ican en "a &ocu#entaci+n &e Aache. 1uchas &e estas 'ginas &e "a &ocu#entaci+n ue&en
Sergio Cuesta Vicente 33 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
estar tra&uci&as a" esa,o"/ ero refiero en"a@ar "as $ersiones en ing"Hs a *ue estar'n sie#re actua"i@a&as cosa *ue ue&e no suce&er ara otros i&io#as.
?e#os ha("a&o antes &e "a oci+n gracefu". Q5uH suce&e si usas aachect" K gracefu"R Qes "+gicoR Qcu'" es "a &iferencia con usar gracefu"stoR QC+#o se &e(e arar e" ser$i&or ara una oeraci+n &e #anteni#iento rutinarioR Q si "o *ue *uere#os es *ue se carguen a"gunas #o&ificaciones en "os archi$os &e configuraci+nR
Sergio Cuesta Vicente 3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Insta"ar un ser$i&or con LA1P Ahora $a#os a e#e@ar con una nueva m$%uina virtual a insta"ar un ser$i&or con Aache/ 1S5L P?P a *ue co#o he#os co#enta&o es "a oci+n #'s ha(itua". Ni 1S5L ni P?P son necesarios ara #ontar un ser$i&or &e a"icaciones 7e(. Esta $e@ $a#os a hacer"o con "a oci+n #'s f'ci" ara $er &iferentes insta"aciones. En e" catu"o siguiente $ere#os "as configuraciones necesarias ara asegurar nuestro ser$i&or. Para asectos &e #aor seguri&a& en 1S5L P?P consu"ta "os #+&u"os &e" cic"o a" resecto. Lo ri#ero es &escargar e insta"ar tasKse". sudo apt-get install tasksel
Luego insta"a#os &irecta#ente to&o e" a*uete segui#os "as instrucciones. sudo tasksel install lamp-ser'er
Para ro(ar Aache si#"e#ente a(ri#os e" na$ega&or consu"ta#os "oca"host. Para ro(ar P?P/ crea#os un archi$o rue(a.h *ue so"o contenga Rh hinfoFM R Para ro(ar 1S5L o&e#os usar cua"*uier #Hto&o: conectarnos/ insta"ar P?P1Ain/ etc. Si *uere#os insta"ar P?P1Ain escri(i#os Sergio Cuesta Vicente 30 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
apt-get install phpmyadmin
"uego carga#os htt:!!"oca"host!h#ain E" &irectorio en e" *ue se ha insta"a&o Aache es 5etc5apache2
Coia una nue$a #'*uina $irtua" e insta"a e" ser$i&or LA1P. Prue(a e" correcto funciona#iento &e to&o.
Sergio Cuesta Vicente 37 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ser$i&ores &e A"icaciones Un ser$i&or &e a"icaciones es un a*uete soft7are *ue roorciona ser$icios a "as a"icaciones co#o ue&en ser seguri&a&/ ser$icios &e &atos/ soorte ara transacciones/ (a"anceo &e carga gesti+n &e siste#as &istri(ui&os. E" tHr#ino se acu,+ ara ser$i&ores &e "a "atafor#a a$a en su $ersi+n Enterrise E&ition/ ero en "a actua"i&a& se etien&e a #uchas otras tecno"ogas. Nosotros nos centrare#os en -o#cat/ un ser$i&or &e a"icaciones a$a crea&o or Aache. Eisten #uchos otros co#o "a integraci+n &e .NEen ser$i&ores &e 1icrosoft/ integraci+n &e P?P en un ser$i&or ara tener ser$i&ores &e a"icaciones P?P/ Xen& Ser$er/ ta#(iHn ara P?P/ Barracu&a/ We(Logic &e IB1/ etc. Aache -o#cat es un ser$i&or &e a"icaciones crea&o ara a"o)ar Ser$"ets a$a Ser$er Pages FSP. -o#cat es gratuito &e c+&igo a(ierto ero no tiene na&a *ue en$i&iar a otras so"uciones co#ercia"es. La $ersi+n *ue usare#os nosotros es "a 8. E" funciona#iento &e un ser$i&or &e a"icaciones necesita &e un ser$i&or 7e(. 1uchas $eces $ienen en e" #is#o a*uete/ ero rea"#ente son &os artes &iferencia&as. Cuan&o un c"iente hace una etici+n a" ser$i&or 7e(/ este trata &e gestionar"o/ ero ha #uchos e"e#entos con "os *ue no sa(e *uH hacer. A*u entra en )uego e" ser$i&or &e a"icaciones/ *ue &escarga a" ser$i&or 7e( &e "a gesti+n &e &eter#ina&os tios &e archi$o/ en nuestro caso ser$"ets SP. Si un c"iente hace una etici+n a" ser$i&or i&ien&o un SP/ esta ""ega a" ser$i&or We( *ue "ee un archi$o J1L *ue "e roorciona e" ser$i&or &e a"icaciones &eter#ina *ue e" archi$o "o gestionar' e" ser$i&or &e a"icaciones. En e" archi$o J1L ta#(iHn se inc"ue "a &irecci+n &e" ser$i&or &e a"icaciones e" ser$i&or 7e( "e en$a "a etici+n #e&iante ?--P.
Sergio Cuesta Vicente 3+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Contenedores E" tHr#ino contenedor es otro (astante a#(iguo co#o a nos suce&i+ con ser(idor . En #uchos casos se usa ara referirse a" roio ser$i&or &e a"icaciones e inc"uso a" ser$i&or 7e(. Sin e#(argo/ "a aceci+n #'s eten&i&a es otra. ?a *ue tener en cuenta *ue "os concetos &e "os *ue esta#os ha("an&o surgieron rincia"#ente &e 6EE.
Los contene&ores en "os ser$i&ores &e a"icaciones son una for#a &e ais"ar "a e)ecuci+n &e ca&a a"icaci+n o &e ca&a instancia &e una a"icaci+n &e" resto &e instancias &e otras a"icaciones. Para ca&a e)ecuci+n roorcionan seguri&a&/ soorte ara transacciones/ conei+n re#ota "a gesti+n &e "os recursos recisos ara "a e)ecuci+n &e "a a"icaci+n. En referencia a "a i#agen anterior/ con$iene concretar a"gunos concetos:
Sergio Cuesta Vicente 38 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
E" ser$i&or 6EE es e" rogra#a *ue roorciona contene&ores EB We(. E" contene&or Enterrise a$aBeans FEB se encarga &e "a e)ecuci+n &e "os EBs. E" contene&or 7e( se encarga &e "a e)ecuci+n &e ser$"ets SPs. E" contene&or &e" c"iente &e "a a"icaci+n encarga &e "a e)ecuci+n &e "os co#onentes &e "as a"icaciones en "a #'*uina &e" c"iente. E" conten&or &e a"ets se encarga &e e)ecutar "os a"ets en e" c"ientes. Est' co#uesto or un na$ega&or 7e( un "ugin a$a. Los contene&ores &e -o#cat se &eno#inan Cata"ina. • • • •
•
Sergio Cuesta Vicente 3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-o#cat -o#cat es un ser$i&or &e a"icaciones *ue ue&e funcionar or si #is#o. De hecho es caa@ &e rocesar eticiones en ?--P ser$ir archi$os ?-1L con (astante eficiencia/ ero no tan (ien co#o "o hace Aache. Genera"#ente si "o *ue *uere#os es un ser$i&or 7e( con funciona"i&a& a&iciona" "o #e)or es &isoner &e a#(os ser$i&ores tra(a)an&o con)unta#ente/ ero ara casos &on&e casi to&o $a a ser "+gica en )a$a con -o#cat funcionan&o aut+no#a#ente es suficiente. En este ri#er acerca#iento a -o#cat "o insta"are#os en una #'*uina $irtua" nue$a. 1's a&e"ante $ere#os co#o integrar"o con Aache ara *ue ca&a cua" se encargue &e hacer "o *ue gestiona #e)or. En ese caso/ Aache reci(ir' to&as "as eticiones en$iar' a -o#cat "o *ue "e correson&a a H". En una #'*uina $irtua" &e a$a so"o ue&e e)ecutarse una instancia &e -o#cat.
Q5uH hace "a #'*uina $irtua" &e a$aR QEn *uH se &iferencia &e "as #'*uinas $irtua"es *ue se crean con rogra#as co#o Orac"e Virtua" Bo o V17areR
,nstalando -a(a Eisten &os $ersiones &e a$a #u eten&i&as en entornos Linu. Una es "a oficia" &e Orac"e "a otra se &eno#ina OenDY es un $ersi+n &e c+&igo a(ierto.
Sergio Cuesta Vicente de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
*penD Esta $ersi+n es #u reco#en&a("e cuan&o se $a a uti"i@ar con otros siste#as &e c+&igo a(ierto o &e soft7are "i(re or "o *ue nosotros usaremos esta instalación.
Actua"i@a#os "os reositorios e insta"a#os a$a sudo apt-get update sudo apt-get install openCdk-6-Cdk
co#ro(a#os "a $ersi+n &e a$a Ca'a ?'ersion
"o *ue &e(era #ostrar a"go co#o Ca'a 'ersion D1.6.8)(D
?a *ue esta("ecer "as $aria("es &e entorno &e a$a sudo gedit 5etc5en'ironment
a,a&i#os a" rinciio "as rutas &e insta"aci+n &e a$a: e" ri#ero es e" &irectorio &on&e est'n )a$a )a$ac e" segun&o e" &e )re.
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
NO-A: -en en cuenta *ue a continuaci+n in&ico &os e)e#"os/ ero *ue "os no#(res &e "as caretas en "as rutas &een&en &e "a ar*uitectura &e "a #'*uina en "a *ue se estH e)ecutan&o e" siste#a. B#J#8$<*F95usr5lib5C'm5Ca'a-6-openCdk-i37) BEF8$<*F95usr5lib5C'm5Ca'a-6-openCdk-i37)5Cre
o B#J#8$<*F95usr5lib5C'm5Ca'a-6-openCdk-amd)4 BEF8$<*F95usr5lib5C'm5Ca'a-6-openCdk-amd)45Cre
en e" #is#o archi$o a,a&i#os a" fina" &e" ath KB#J#8$<*FKBEF8$<*F
E" archi$o entero &e(era *ue&ar areci&o a esto: B#J#8$<*F95usr5lib5C'm5Ca'a-6-openCdk-i37) BEF8$<*F95usr5lib5C'm5Ca'a-6-openCdk-i37)5Cre %#"$9D5usr5local5sbin5usr5local5bin5usr5sbin5usr5bin5sbin5bin5usr5gamesKB#J#8$<*F KBEF8$<*FD
Aun*ue no es estricta#ente necesario/ reinicia#os "a #'*uina $irtua".
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
ava de *racle -o#cat es un ser$i&or &e a"icaciones rogra#a&as en a$a or "o *ue antes &e insta"ar -o#cat/ &e(e#os tener a$a insta"a&o funcionan&o.
Lo ri#ero es a,a&ir unos reositorios *ue contienen e" insta"a&or &e a$a sudo add-apt-repository ppaebupd7team5Ca'a
Actua"i@a#os e" soft7are &e "os reositorios con sudo apt-get update
Para "uego insta"ar a$a sudo apt-get install oracle-Ca'a6-installer
Po&e#os co#ro(ar *ue tenga#os funcionan&o "a $ersi+n correcta Ca'a ?'ersion
De(e aarecer en anta""a a"go si#i"ar a esto: Ca'a 'ersion D1.6.8(D
Sergio Cuesta Vicente 3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ba'a/"*A F Euntime Fn'ironment /build 1.6.8(-b(A Ba'a $otpot/"*A 0lient J* /build 23.1-b3, mixed modeA
Por u"ti#o/ o&e#os co#ro(ar e" correcto funciona#iento en&o a htt:!!777.)a$a.co#!es!&o7n"oa&!insta""e&.)s en e" na$ega&or 7e(. Ahora ha *ue esta("ecer "as $aria("es &e entorno ara *ue -o#cat ue&a encontrar a$a. Para e""o e&ita#os e" archi$o en(ironment sudo gedit 5etc5en'ironment
a,a&i#os a" rinciio "as rutas &e insta"aci+n &e a$a: e" ri#ero es e" &irectorio &on&e est'n )a$a )a$ac e" segun&o e" &e )re. B#J#8$<*F95usr5lib5C'm5Ca'a-6-oracle5 BEF8$<*F95usr5lib5C'm5Ca'a-6-oracle5Cre5
en e" #is#o archi$o a,a&i#os a" fina" &e" ath KB#J#8$<*FKBEF8$<*F
E" archi$o entero &e(era *ue&ar areci&o a esto: B#J#8$<*F95usr5lib5C'm5Ca'a-6-oracle5 BEF8$<*F95usr5lib5C'm5Ca'a-6-oracle5Cre5 %#"$9D5usr5local5sbin5usr5local5bin5usr5sbin5usr5bin5sbin5bin5usr5gamesKB#J#8$<*F KBEF8$<*FD
Sergio Cuesta Vicente de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Aun*ue no es estricta#ente necesario/ reinicia#os "a #'*uina $irtua".
,nstalar Apache omcat NO-A: Aun*ue -o#cat est' en "a $ersi+n = &e #anera esta("e/ to&a$a no es "a $ersi+n #'s eten&i&a no ha si&o agrega&a a "os reositorios est'n&ar &e U(untu. A&e#'s ara e" ro+sito &e este curso no nos es necesario/ or "o *ue $o a #antener -o#cat 8 co#o "a $ersi+n &e "os auntes un curso #'s. Si a"guien *uiere ro(ar -o#cat = ue&e encontrar instrucciones &e insta"aci+n en Internet co#o Hstas o estas otras. Es necesario tener a$a insta"a&o configura&o ara e" correcto funciona#iento &e -o#cat. Los asos son "os #is#os *ue a $i#os. Ahora insta"a#os -o#cat sudo apt-get install tomcat6
*+#: En a"gunos casos/ -o#cat no $a a funcionar hasta *ue no configure#os "as $aria("es &e entorno co#o se e"ica a continuaci+n.
Ahora o&e#os a(rir un na$ega&or 7e( acce&er a htt:!!"oca"host:=9=9 Nos #uestra "a siguiente anta""a en "a *ue es #u i#ortante e" siguiente 'rrafo: omcat+ (eterans might be pleased to learn that this s'stem instance o6 omcat is installed $ith CAA=,FA?;>94 in /usr/share/tomcat+ and CAA=,FA?AS4 in /(ar/lib/tomcat+E 6ollo$ing the rules 6rom /usr/share/doc/tomcat+Gcommon/FF,FH.tt.g5.
En e" *ue nos in&ican "a u(icaci+n &e &os $aria("es &e entorno #u necesarias en "a configuraci+n uso &e -o#cat. En "a insta"aci+n #anua"/ a#(as auntaran a" &irectorio en e" *ue &esco#ri#i#os -o#cat. Va#os a esta("ecer"as co#o $aria("es &e entorno:
Sergio Cuesta Vicente 0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
sudo gedit 5etc5en'ironment
en e" a,a&i#os Fa continuaci+n &e "as &e a$a 0#"#+GN#8$<*F95usr5share5tomcat6 0#"#+GN#8I#F95'ar5lib5tomcat6
"as a,a&i#os a" ath/ *ue&ara co#o sigue: B#J#8$<*F95usr5lib5C'm5Ca'a-6-openCdk-i37) BEF8$<*F95usr5lib5C'm5Ca'a-6-openCdk-i37)5Cre 0#"#+GN#8$<*F95usr5share5tomcat6 0#"#+GN#8I#F95'ar5lib5tomcat6 %#"$9D5usr5local5sbin5usr5local5bin5usr5sbin5usr5bin5sbin5bin5usr5gamesKB#J#8$<*F KBEF8$<*FK0#"#+GN#8$<*FK0#"#+GN#8I#FD +#NL@#LF9DesenD +#NL9Des8F.@"M-7D +08N@*FEG09Des8F.@"M-7D +08"G*F9Des8F.@"M-7D +08*
CA-ALINA?O1E in&ica e" &irectorio &e insta"aci+n &e -o#cat.
Sergio Cuesta Vicente 7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
CA-ALINABASE in&ica e" &irectorio &e una instancia &e -o#cat. Si tene#os #'s &e una instancia/ CA-ALINABASE ser' &iferente ara ca&a una. En a"gunas insta"aciones Faun*ue no en esta a#(as $aria("es &e entorno auntan a" #is#o &irectorio. 4einicia#os "a #'*uina ara *ue "as $aria("es se carguen. E" archi$o *ue carga -o#cat or &efecto es /(ar/lib/tomcat+/$ebapps/>>/inde.html -o#cat est' insta"a&o en /etc/tomcat+ Co#o o&e#os $er esta $ersi+n &e -o#cat a "o insta"a co#o ser$icio hace *ue se inicia auto#'tica#ente a" encen&er "a #'*uina. E" archi$o &on&e est' configura&o esto es #ucho #'s co#"e)o *ue e" *ue hici#os nosotros en "a insta"aci+n #anua"M ue&es consu"tar"o en gedit 5etc5init.d5tomcat6
,nstalando pa1uetes adicionales a tene#os -o#cat insta"a&o funcionan&o/ ero co#o u&i#os "eer en "a 'gina &e inicio or &efecto &e -o#cat/ no se han insta"a&o ni "a &ocu#entaci+n/ ni "os e)e#"os ni "a a"icaci+n &e ainistraci+n. En un ser$i&or &e ro&ucci+n esta ue&e ser "a configuraci+n correcta/ ero ara nuestro ro+sito &i&'ctico es #u reco#en&a("e insta"ar "os a*uetes. sudo apt-get install tomcat6-docs sudo apt-get install tomcat6-examples sudo apt-get install tomcat6-admin
Ahora o&e#os acce&er a ca&a uno &e e""os #e&iante e" correson&iente en"ace &e "a 'gina &e inicio.
Sergio Cuesta Vicente + de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Insta"a -o#cat "os a*uetes a&iciona"es en un #'*uina $irtua" nue$a. a he co#enta&o antes c+#o $iene aarecien&o en "as noticias tecno"+gicas *ue a$a en inseguro en "a re& *ue se &e(e &esacti$ar en "os na$ega&ores. Esto ue&e arecer e" fin &e a$a/ eroZ &esacti$a a$a en tu na$ega&or rue(a a e)ecutar "os e)e#"os *ue aca(a#os &e insta"ar Q ahora *uHR Si inchas en e" en"ace *ue aarece ara $er e" c+&igo &e un e)e#"o $er's *ue contiene c+&igo ero si #uestras e" c+&igo &e "a 'gina resu"tante &e e)ecutar e" e)e#"o en e" na$ega&or o&r's o(ser$ar *ue no/ Q*uH in&ica estoR
*+# A" igua" *ue suce&a en Aache/ eista un aarta&o so(re "a insta"aci+n #anua" &e -o#cat *ue he &eci&i&o e"i#inar or "os #is#os
#oti$os.
suarios de omcat Lo ri#ero es configurar "os usuarios &e -o#cat. Para e""o &e(e#os e&itar e" archi$o tomcatGusers.ml *ue est' en e" &irectorio con6 sudo gedit 5etc5tomcat65tomcat-users.xml
Lo *ue esta#os hacien&o es a,a&ir un usuario ainistra&or as *ue e" fichero/ en "a arte fina" &e(era *ue&ar areci&o a "o siguiente/ con e" no#(re &e usuario contrase,a *ue *uera#os/ or suuesto.
Sergio Cuesta Vicente 8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Otomcat-usersP Orole rolename9Dmanager-guiD5P Orole rolename9Dmanager-scriptD5P Orole rolename9DmanagerD5P Orole rolename9Dadmin-guiD5P Orole rolename9Dadmin-scriptD5P Orole rolename9DadminD5P Ouser username9DsergioD passord9DsergioD roles9Dmanager-gui,admin-gui,manager,admin,managerscript,admin-scriptD5P O5tomcat-usersP
Con este usuario contrase,a *ue a he#os crea&o o&e#os cargar e" #anager/ &es&e "a 'gina &e inicio &e -o#cat o &irecta#ente &es&e htt:!!"oca"host:=9=9!#anager!ht#" Se reco#ien&a ro(ar e)e#"os &e -o#cat ara $er *ue to&o $aa (ien siguien&o e" en"ace en "a 'gina rincia" o en htt:!!"oca"host:=9=9!ea#"es!
,niciar ' parar omcat Para iniciar -o#cat usare#os sudo 5etc5init.d5tomcat6 start sudo 5etc5init.d5tomcat6 stop sudo 5etc5init.d5tomcat6 restart
segn "o *ue *uera#os hacer.
Sergio Cuesta Vicente de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Si *uisiHra#os *ue funcionara co#o ser$icio/ sera: sudo ser'ice tomcat6 start
ara arar"o sudo ser'ice tomcat6 stop
Sergio Cuesta Vicente 0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
A"icaciones 7e( Una a"icaci+n 7e( se &iferencia &e una est'n&ar en *ue se acce&e a e""a a tra$Hs &e una re& co#o Internet o una intranet or e)e#"o. En #uchos casos es una a"icaci+n *ue se escri(e en "engua)es soorta&os or "os na$ega&ores 7e( For e)e#"o a$ascrit [ ?-1L *ue necesita &e un na$ega&or 7e( ara e)ecutarse. E" e)e#"o #'s senci""o *ue se nos ocurre &e una a"icaci+n 7e( es un rogra#a *ue er#ita acce&er a &atos &e una e#resa &es&e e" eterior &e Hsta. A*u a *ue&a atente e" rincia" ro("e#a *ue tienen "as a"icaciones 7e(: "a seguridad. 1uchas $eces e" ro("e#a es "a necesi&a& &e encontrar un co#ro#iso entre "a seguri&a& "a eficiencia en "a a"icaci+nM &e#asia&a seguri&a& ue&e ra"enti@ar e" uso/ au#entar e" tr'fico/ etc. Las rincia"es desventaas &e este tio &e a"icaciones son "as *ue se &eri$an &e" uso &e una re& &e" acceso si#u"t'neo &e $arios Fa $eces #uchos usuarios. Las rincia"es ventaas son e" o&er usar un na$ega&or 7e( co#o c"iente Fa"go &e "o *ue &isonen to&os "os or&ena&ores en "a actua"i&a& "a si#"ificaci+n &e "as actua"i@aciones or no tener *ue actua"i@ar "os or&ena&ores uno a uno. Va#os a concretar un oco #'s: 0entaas : •
•
• •
No es necesario ningn tio &e &istri(uci+n/ insta"aci+n o actua"i@aci+n co#"e)o &e "a a"icaci+n. Si#"e#ente e" uso &e un na$ega&or co#ati("e nos er#itir' usar "a a"icaci+n. 1uchas $eces se crea "a a"icaci+n ara un nico na$ega&or 7e( "o *ue en #i oini+n es un error. No es necesario cu(rir to&o e" esectro ero &ar a" #enos &os o tres ociones sera reco#en&a("e. No se necesitan #'*uinas c"ientes esecia"#ente otentes. Pr'ctica#ente cua"*uier or&ena&or en "a actua"i&a& es caa@ &e e)ecutar un na$ega&or 7e(. Si "a a"icaci+n es #'s esa&a en e" c"iente se ue&en necesitar recursos un oco #'s a"tos. Son f'ci"es &e integrar con otras funciona"i&a&es &e ser$i&or co#o e" correo e"ectr+nico. Genera"#ente er#iten e"i#inar "os ro("e#as &eri$a&os &e" uso &e &iferentes "atafor#as infor#'ticas Far*uitecturas/ siste#as oerati$os/ etc..
Sergio Cuesta Vicente 0% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
•
E" uso &e ?-1L; au#enta #ucho "a funciona"i&a& *ue ue&e e)ecutarse nati$a#ente en un na$ega&or 7e(.
Desventaas: •
•
• • •
Genera"#ente "as interfaces &e usuario &e "as a"icaciones 7e( son #enos intuiti$as tienen un co#orta#iento eor *ue "as c"'sicas. Las tecno"ogas 7e( son #u &in'#icas ca#(iantes or "o *ue o&e#os usar a"guna funciona"i&a& *ue &esaare@ca o se #o&ifi*ue &r'stica#ente o("ig'n&onos a rehacer "a interfa@ FQ"ash en un futuro no #u "e)anoR La ausencia &e est'n&ares en archi$os &e oficina ue&e &ificu"tar e" co#artir &atos e infor#aci+n. Deen&en tota"#ente &e" correcto funciona#iento &e "a re& FInternet !o intranet. Des&e e" unto &e $ista &e un usuario es reocuante "a ri$aci&a& seguri&a& &e sus &atos. Uno &e "os ri#eros e)e#"os &e esto es e" correo 7e(/ ero en "a actua"i&a& to&as "as a"icaciones &e Goog"e #uchas otras co#o ace(ooK contro"an a(so"uta#ente to&o "o *ue haces or "o *ue "a ausencia &e ri$aci&a& es nota("e.
La "ista &e $enta)as &es$enta)as $ista es un oco a#(igua. Para ca&a caso iensa en "o *ue i#"ica "a afir#aci+n e intenta (uscar un e)e#"o *ue suonga una ececi+n.
Co#o a he#os co#enta&o antes una &e "as rincia"es reocuaciones a "a hora &e &esarro""ar una a"icaci+n 7e( &e(e ser "a seguri&a&. En #uchos casos se &e(en roteger tanto información cr1tica de la empresa co#o "os datos privados de los usuarios. A "a hora &e i#"e#entar "a seguri&a& &e una a"icaci+n 7e( &e(e#os tener en cuenta cinco 'reas: •
La autentificación &e "os usuarios: e" uso &e un #Hto&o efecti$o ara asegurar *ue se conecten "os usuarios autori@a&os &ificu"tar "a su"antaci+n &e i&enti&a&es es a"go ri#or&ia". QEs una a"icaci+n a(ierta a to&o e" #un&oR Qse ue&en registrar "os usuarios or si #is#osR
Sergio Cuesta Vicente 02 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
•
•
•
•
La autoriación &e ca&a usuario: #uchas $eces &e(en eistir &iferentes tios &e usuarios no to&os "os usuarios &e(en o&er acce&er a to&os "os &atos o rea"i@ar to&as "as oeraciones Fconsu"ta/ inserci+n/ #o&ificaci+n o e"i#inaci+n so(re "os &atos. La i&entificaci+n creaci+n &e &iferentes ro"es es un asecto a tener en cuenta &es&e "as ri#eras etaas &e &ise,o &e "a a"icaci+n. La gestión de los recursos: es necesario roteger "os &atos tanto cuan&o se encuentran en "a (ase &e &atos co#o cuan&o se encuentran en tr'nsito entre "a #'*uina c"iente e" ser$i&or. Genera"#ente se e$itan "as coneiones &irectas &e for#a re#ota Fen una re& a(ierta a "a (ase &e &atos. A&e#'s es #u i#ortante "a encritaci+n &e "os &atos tanto en "a (ase &e &atos co#o en "as co#unicaciones. Los &atos se uti"i@an co#o e)e#"o &e recurso/ ero es a"ica("e a otros tios. La entrada de datos: otro asecto a tener en cuenta es *uH ue&e escri(ir e" usuario en ca&a unto &e entra&a &e &atos. Cuanto #'s "i#ite#os "os caracteres tio &e entra&a *ue ue&an rea"i@ar "os usuarios #'s f'ci" ser' i#e&ir *ue "a gente acce&a a untos no &esea&os &e nuestra a"icaci+n e inc"uso a otras a"icaciones &e "a #is#a re&. #uditor1as 3 registros: Para o&er contro"ar corregir "as (rechas en "a seguri&a& es #u i#ortante o&er sa(er *uH ha asa&o. Por e""o &e(e#os tener #Hto&os &e registro For e)e#"o archi$os log &e to&o "o *ue suce&a en nuestra a"icaci+n. E" ta#a,o &e "os archi$os &e(e er#itirnos re$isar situaciones &e hace (astante tie#o a *ue #uchas $eces un agu)ero en "a seguri&a& tar&a en &etectarse.
Aun*ue no conoce#os c+#o afrontar ca&a ro("e#a en &eta""e/ a &e(era#os tener conoci#ientos co#o ara "antear so"uciones ara "as 'reas &e"ica&as *ue aca(a#os &e $er. Co#enta un escenario *ue contro"e "os ro("e#as genera&os en ca&a 'rea.
Para contro"ar to&os estos ro("e#as ha &os recomendaciones ('sicas: •
Pruebas: cuanto #'s ro(e#os una a"icaci+n #enos fa""os ten&r'. Si "a a"icaci+n no es #u e*ue,a/ es r'ctica#ente
i#osi("e e$itar to&os "os agu)eros &e seguri&a& ero ha *ue intentar #ini#i@ar"os. Lo i&ea" es tener una ersona o un e*uio
Sergio Cuesta Vicente 03 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
*ue sean "o *ue hacen intentan&o atacar "a a"icaci+n. Este es e" #oti$o or e" *ue #uchos hacKers han ter#ina&o tra(a)an&o ara co#a,as #u otentes. Usa un #arco &e tra(a)o F 4rame!or5: Si tene#os un e*uio &e tra(a)o no *uere#os *ue ca&a #ie#(ro haga "a guerra or su "a&o. -o&os "os integrantes &e(en usar uno o $arios #Hto&os co#unes ara gestionar "a seguri&a& &e "a a"icaci+n. Un #arco co#n #e)orar' enor#e#ente "a seguri&a& &e "a a"icaci+n. Un #arco &e tra(a)o ara a"icaciones 7e( &e(e tener en cuenta "os siguientes asectos: ersistencia &e &atos/ gesti+n &e sesiones autenticaci+n &e usuarios/ seguri&a&/ uso &e cachHs/ uso &e "anti""as Fcon tios &e &atos/ etc. e inc"uir una interfa@ &e ainistraci+n. Aun*ue escaa a" conteni&o &e" curso/ en Hsta 'gina ue&es consu"tar estos asectos so(re "os fra#e7orKs &e a"icaciones 7e( $er una "ista con #uchos &e e""os. •
4structura La estructura &e una a"icaci+n 7e( es e%uivalente a la de un servidor !eb co#o $i#os a" rinciio &e" te#a. La a"icaci+n &e(e funcionar en to&os "os ni$e"es or "o *ue ten&re#os una estructura en caas. La #'s co#n es en tres caas Faun*ue "a &e" #e&io ue&e estar su(&i$i&i&a co#o a co#enta#os: resentaci+n/ a"icaci+n &atos. Otra for#a &e $er una a"icaci+n 7e( es en &os caas: e" c"iente e" ser$i&or. Deen&ien&o &e &+n&e se rea"i@a "a #aor arte &e" tra(a)o "a a"icaci+n ser' &e c"iente o &e ser$i&or esa&o. En "a actua"i&a&/ con "a ro"iferaci+n &e &isositi$os con oca caaci&a& otencia F#+$i"es/ ta("etas/ net(ooKs/ etc. eisten #uchas a"icaciones esa&as en e" ser$i&or/ ero cuan&o "a a"icaci+n re*uiere #ucha "+gica se tien&e a &istri(uir e" tra(a)o en "os c"ientes ara #e)orar e" ren&i#iento. La estructura &e una a"icaci+n 7e( ta#(iHn se usa ara referirse a "a distribución en directorios &e to&os "os e"e#entos *ue co#onen &icha a"icaci+n. Aun*ue #'s a&e"ante $o"$ere#os so(re este unto es i#ortante enfati@ar *ue "a estructura &e &irectorios *ue use#os &e(e estar conteni&a &entro &e un unto &e inicio *ue no &e(e re$e"ar asectos so(re "a &istri(uci+n &e" resto &e "a #'*uina.
Sergio Cuesta Vicente 0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Descriptor de despliegue E" &escritor &e &es"iegue &e una a"icaci+n 7e( es un archi$o &e configuraci+n en e" contene&or o ser$i&or &e a"icaciones. En 6EE este archi$o se escri(e usan&o sintais J1L. Descri(e c+#o un co#onente/ #+&u"o o a"icaci+n &e(e &es"egarse esecifican&o asectos co#o "a seguri&a&/ "as ociones &e" contene&or asectos &e "a configuraci+n. Eiste a&e#'s un &escritor &e &es"iegue roio &e ca&a ser$i&or 7e(. Por e)e#"o en -o#cat/ este otro &escritor se encuentra en -O1CA-?O1E!conf!7e(.#". En e" caso &e "a insta"aci+n $ista anterior#ente est' en !ot!to#cat!aacheto#cat8.9.6>! conf!7e(.#". Si esta#os usan&o un entorno &e &esarro""o For e)e#"o Ec"ise e" &escritor &e &es"iegue "o crea e" roio entorno/ ero sie#re es con$eniente re$isar"o ara asegurarnos &e *ue uti"i@a "as ociones *ue *uera#os. Para "as a"icaciones 7e( 6EE &e(e ""a#arse 7e(.#" u(icarse en e" &irectorio WEBIN en e" &irectorio ra@ &e "a a"icaci+n. E" es*ue#a a" *ue &e(e a)ustarse e" &escritor &e &es"iegue se ue&e consu"tar en "a 'gina correson&iente &e )a$a. Po&e#os $er un (uen e)e#"o &e &es"iegue &e a"icaci+n 7e( a*u. -en en cuenta *ue si inchas so(re una eti*ueta te #ostrar' una (re$e e"icaci+n &e su uso. Se ue&en consu"tar e)e#"os #'s co#"etos &esuHs &e insta"ar -o#cat en "as siguientes rutas: • •
-O1CA-?O1E!7e(as!)sea#"es!WEBIN!7e(.#" -O1CA-?O1E!ser$er!7e(as!#anager!WEBIN!7e(.#"
Va#os a roectar "a 'gina $ista antes a &iscutir so(re "a estructura &iferentes e"e#entos &e" &escritor &e &es"iegue *ue nos onen co#o e)e#"o. Para e""o &eter#ina re$ia#ente *uH in&ica ca&a una &e "as eti*uetas &e segun&o ni$e" F"os hi)os &e 7e(a
Sergio Cuesta Vicente 00 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-e#a 6: Ainistraci+n &e ser$i&ores 7e(
Sergio Cuesta Vicente 07 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Aache 6 Aache 6.< E" ser$i&or We( Aache sufri+ un ca#(io #u rofun&o con "a $ersi+n 6. Intro&u)o asectos &estaca&os co#o e" uso &e he(ras !o rocesos en siste#as UNIJ/ "a inc"usi+n &e a"gunos #+&u"os #u i#ortantesM $arios &e estos #+&u"os "os tratare#os en e" unto correson&iente. -o&os "os ca#(ios se ue&en $er a*u. La siguiente $ersi+n i#ortante fue "a 6.6 *ue en "a actua"i&a& sigue us'n&ose #ucho es "a $ersi+n *ue se ha uti"i@a&o en estos auntes hasta esta $ersi+n en "a *ue he &eci&i&o asar a "a 6. "a #'s #o&erna. Aun*ue "os ca#(ios #'s fuertes se ro&ucen en e" aso &e "as $ersiones 2 a "a 6/ en "as "ti#as $ersiones se han intro&uci&o ca#(ios #e)oras *ue afectan a configuraciones #+&u"os *ue usare#os. Otro unto a tener en cuenta es c+#o actua"i@ar &e "a $ersi+n 6.6 a "a 6.< *ue a&e#'s ser$ir' a a*ue""os fa#i"iari@a&os con "a $ersi+n anterior &e estos auntes a fa#i"iari@arse con "os nue$os usos.
Sergio Cuesta Vicente 0+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Configuraci+n &e" ser$i&or 7e( En Aache/ "a configuraci+n or &efecto est' en un archi$o *ue se ""a#a httpd.con6 . A" insta"ar Aache se crea un &irectorio conf &on&e tene#os #'s archi$os &e e)e#"o &e configuraci+n. ?asta e" no#(re "a ruta &e" archi$o &e configuraci+n en Aache se ue&en ca#(iar. En una insta"aci+n as estara en 5etc5apache25httpd.con!
Pero na&a &e esto se a"ica a nuestra insta"aci+n a *ue en "as &istri(uciones &e U(untu F #uchas otras reco#i"a&as e" archi$o (ase se ""a#a apache2.con6 Antes &e hacer ninguna #o&ificaci+n so(re este archi$o &e(e#os hacer una coia &e seguri&a& &e" #is#o Fa*u $e#os e" &e" e)e#"o ero es a"ica("e a cua"*uier archi$o &e configuraci+n. cd 5etc5apache25 sudo cp apache2.con! apache2.con!.old
En e" archi$o &e configuraci+n se inc"uen &irecti$as ara e" ser$i&or co#entarios. Los co#entarios son "as "neas *ue co#ien@an or \. E" ser$i&or ignora to&os "os co#entarios "as "neas en ("anco as *ue o&e#os usar a#(os ara #e)orar "a "egi(i"i&a& &e" archi$o ara e" ainistra&or. Lo #e)or es echar un $ista@o a" archi$o &e configuraci+nM en nuestra &istri(uci+n/ e" archi$o rincia" &e configuraci+n es apache2.con6
Sergio Cuesta Vicente 08 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
gedit apache2.con!
E" archi$o contiene &irecti$as ara e" ser$i&or en s #is#o: &+n&e estar' e" &irectorio *ue conten&r' "os &ocu#entos 7e( For e)e#"o archi$os ?-1L/ *uH #+&u"os se cargar'n/ etc. -a#(iHn ue&e contener infor#aci+n so(re hosts $irtua"es/ ero eso "o $ere#os un oco #'s a&e"ante. Lo i#ortante ahora es $er *uH ha asa&o con "a configuraci+n. Si $a#os a" fina" &e" archi$o $ere#os unas &irecti$as ,nclude *ue auntan a otros ficheros o &irectorios. Esta &istri(uci+n &e Aache 6 uti"i@a una &i$isi+n &e "a configuraci+n en &iferentes archi$os ara #e)orar "a organi@aci+n.
In$estiga e"ica e" uso re&eter#ina&o &e ca&a uno &e "os archi$os &e configuraci+n *ue aarecen en apache2.con6 / inc"uen&o Hste #is#o. No hace fa"ta *ue aren&as e" uso &e ca&a uno/ so"o *ue ue&as &efinir en una "nea o &os e" ro+sito &e ca&a archi$o.
4ea"#ente to&o esto nos "o e"ican a" rinciio &e" archi$o en "os co#entarios/ en "os *ue a&e#'s nos &a#os cuenta &e *ue "o *ue he#os &eno#ina&o "a &istri(uci+n &e U(untu rea"#ente to#a "a for#a &e hacer "as cosas &e De(ian.
ummary o! ho the #pache 2 con!iguration orks in &ebian "he #pache 2 eb ser'er con!iguration in &ebian is quite di!!erent to upstreamQs suggested ay to con!igure the eb ser'er. "his is because &ebianQs de!ault #pache2 installation attempts to make adding and remo'ing modules, 'irtual hosts, and extra con!iguration directi'es as !lexible as possible, in order to make automating the changes and administering the ser'er as easy as possible.
Sergio Cuesta Vicente 0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Gt is split into se'eral !iles !orming the con!iguration hierarchy outlined belo, all located in the 5etc5apache25 directory 5etc5apache25 |-- apache2.con! | R-- ports.con! |-- mods-enabled | |-- :.load | R-- :.con! |-- con!-enabled | R-- :.con! R-- sites-enabled R-- :.con!
: apache2.con! is the main con!iguration !ile /this !ileA. Gt puts the pieces together by including all remaining con!iguration !iles hen starting up the eb ser'er. : ports.con! is alays included !rom the main con!iguration !ile. Gt is supposed to determine listening ports !or incoming connections hich can be customiSed anytime. : 0on!iguration !iles in the mods-enabled5, con!-enabled5 and sites-enabled5 directories contain particular con!iguration snippets hich manage modules, global con!iguration !ragments, or 'irtual host con!igurations, respecti'ely. "hey are acti'ated by symlinking a'ailable con!iguration !iles !rom their respecti'e :-a'ailable5 counterparts. "hese should be managed by using our helpers a2enmod5a2dismod , a2ensite5a2diss ite and a2encon!5a2discon !. ee
Sergio Cuesta Vicente 7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
their respecti'e man pages !or detailed in!ormation. : "he binary is called apache2. &ue to the use o! en'ironment 'ariables, in the de!ault con!iguration, apache2 needs to be started5stopped ith 5etc5init.d5apa che2 or apache2ctl. 0alling 5usr5bin5apache 2 directly ill not ork ith the de!ault con!iguration.
Un gran ca#(io *ue se ro&u)o en Aache 6 es "a intro&ucci+n &e "os módulos multiproceso F1u"tirocessing #o&u"es o 1P1s. ?asta "a $ersi+n 2.0 Aache funciona(a con un siste#a reforK en e" *ue un roceso crea(a rocesos hi)o ara aten&er "as eticiones H" si#"e#ente se encarga(a &e #onitori@ar"os ara crear"os o &estruir"os segn fuera necesario en ca&a #o#ento. Este siste#a no funciona(a (ien en &eter#ina&os siste#as oerati$os For e)e#"o Win&o7s as *ue a artir &e "a $ersi+n 6 se us+ otra so"uci+n: Ca&a #+&u"o 1P1 crea hi"os Fthrea&s o rocesos hi)o F#e&iante reforK ara aten&er "as eticiones. 4ea"#ente ha $arios #+&u"os e inc"uso &een&en &e" siste#a oerati$o usa&o. Deen&ien&o &e cu'" use#os se usar'n unas configuraciones u otras. Una for#a &e sa(er *uH #+&u"o est' usan&o Aache es usar "a oci+n ]V En e" ser$i&or con Aache nica#ente apachectl ?J
o apache2 -J
nos #uestra
Sergio Cuesta Vicente 7% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
er'er 'ersion #pache52.4.6 /@buntuA er'er built Bul 22 214 143)37 er'erQs *odule *agic Number 21221126 er'er loaded #%E 1.(.1-de', #%E-@"G+ 1.(.3 0ompiled using #%E 1.(.1-de', #%E-@"G+ 1.(.3 #rchitecture )4-bit er'er *%* e'ent threaded yes /!ixed thread countA !orked yes /'ariable process countA er'er compiled ith.... -& #%E8$#8FN&MG+F -& #%E8$#8**#% -& #%E8$#JF8G%J) /G%'4-mapped addresses enabledA -& #%E8@F8JF*8FEG#+GTF -& #%E8@F8%"$EF#&8FEG#+GTF -& GNL+F8+G"FN8@NFEG#+GTF&8#00F%" -& #%E8$#8<"$FE80$G+& -& #%8$#JF8EF+G#I+F8%G%F&8+
Po&e#os $er *ue usa e$ent.
Sergio Cuesta Vicente 72 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Va#os a echar un $ista@o a" archi$o apache2.con6 e intentar $er ara *uH ser$ir' ca&a &irecti$a *ue aarece.
Di(idiendo ' organi5ando el archi(o de con6iguraci#n Lo ri#ero *ue o&e#os o(ser$ar es *ue httpd.con6 no eiste Fhasta "a $ersi+n 6.6 aareca ero $aco. sudo gedit 5etc5apache25httpd.con!
Co#o a he co#enta&o en una insta"aci+n #anua"/ "a configuraci+n or &efecto ir' to&a en ese archi$o/ ero $ien&o "o *ue suce&e en "a insta"aci+n *ue esta#os uti"i@an&o/ o&e#os aren&er a organi@ar "a configuraci+n ara hacer"a #'s #ane)a("e. Esto es or*ue e" archi$o rincia" &e configuraci+n ue&e ca#(iarse cuan&o co#i"a#os Aache. Por &efecto es httpd.con6 ero en "a insta"aci+n LA1P *ue usa#os "o han ca#(ia&o a apache2.con6 han &e)a&o e" otro or si *uere#os hacer #o&ificaciones. De cua"*uier for#a o&e#os e&itar e" archi$o rincia". sudo gedit 5etc5apache25apache2.con!
A "o "argo &e" archi$o aarece una secci+n &e inc"usiones *ue er#iten su(&i$i&ir "a configuraci+n &e" ser$i&or Aache co#o #e)or nos are@ca. En este caso se #uestran: Gnclude module con!iguration Gnclude
Sergio Cuesta Vicente 73 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Gnclude
La #aora &e e""os ire#os $ien&o ara *uH sir$en en sucesi$as secciones. Baste ac"arar *ue or e)e#"o en ports.con6 $a infor#aci+n *ue a conoce#os *ue esto ue&e hacerse con to&o. Si nuestro ser$i&or es e*ue,o *ui@' nos (aste con usar un nico fichero &e configuraci+n con to&as "as &irecti$as ero en cuanto $aa a ser un oco co#"e)o nos ir' #e)or si "o &i$i&i#os siguien&o a"gn criterio "+gico. Una curiosi&a& es *ue en $arios include se a,a&e un &irectorio. Sue"e usarse ara crear en H" archi$os &e configuraci+n &e e"e#entos *ue no tienen otra secci+n "+gica o ara rue(as en "a configuraci+n *ue as sea f'ci" re$ertir "a situaci+n a" esta&o anterior en caso &e fa""o o ara a,a&ir configuraci+n *ue tenga *ue $er con #+&u"os o sitios concretos *ue ue&en ha(i"itarse o &esha(i"itarse segn se necesite. Cuan&o insta"e#os Aache ara e" uso &e #+&u"os ha("are#os &e to&os "os archi$os &e configuraci+n en #'s &eta""e. *+# aun*ue no tiene *ue $er son "a asignatura a,a&o a*u c+#o (uscar teto &entro &e archi$os &e un &irectorio sus su(&irectorios en
Linu a *ue con "as &iferentes su(&i$isiones &e configuraci+n "os ca#(ios *ue se ro&ucen en e""os segn "a &istri(uci+n *uiHn rea"ice "a configuraci+n es #u ti". grep -iE textoabuscar|more
Sergio Cuesta Vicente 7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Directi(as del archi(o de con6iguraci#n Co#o a he#os co#enta&o antes/ e" archi$o &e configuraci+n est' co#uesto or &irecti$as *ue "e in&ican a" ser$i&or c+#o actuar. -en en cuenta *ue ca&a $e@ *ue haces un ca#(io en e" archi$o &e configuraci+n es necesario reiniciar e" ser$i&or ara *ue surta efecto. No to&as "as &irectrices *ue $a#os a $er est'n en nuestro archi$o &e configuraci+n. -a#(iHn eisten otras so(re a"gunas ha("are#os #'s a&e"ante. En esta &irecci+n est' "a referencia &e "as &irecti$as &e aache. Por "ti#o a*u o&e#os o(tener una e*ue,a e"icaci+n for#a &e uso &e e""as con una in&icaci+n &e ara *uH sir$en. En esta "ti#a 'gina en "a tercera co"u#na se in&ican "os contetos en "os *ue ue&e a"icarse ca&a &irecti$a. A*u se concreta un oco #'s a *uH hace referencia ca&a conteto. sudo apachectl restart
Es i#ortante &estacar *ue "as "neas *ue co#ien@an or 6 son comentarios o est$n comentadas. 7erver8oot Ahora $a#os a co#entar for#a"#ente "as &irecti$as *ue aarecen en e" archi$o &e configuraci+n. er'erEoot D5etc5apache2D
5ue in&ica e" &irectorio ra@ &e "a insta"aci+n &e Aache. No se refiere a" &irectorio &on&e co"ocare#os "as 'ginas 7e(. -en en cuenta *ue est' co#enta&a or*ue es "a *ue usa or &efecto. Con$iene recor&ar *ue a" rea"i@ar "a insta"aci+n #anua"/ antes &e co#i"ar e" ser$i&or "o configurara#os con "a siguiente "nea/ estara#os in&ican&o *ue es !777
Sergio Cuesta Vicente 70 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
.5con!igure --pre!ix95 --enable-shared9max --enable-module9rerite --enable-module9so
Si nos fi)a#os/ e" &irectorio coinci&e con e" $a"or &e GGpre6i . Esta &irecti$a so"o se #o&ificara en caso &e #o$er e" ser$i&or Aache a otra u(icaci+n en "a estructura &e &irectorios co#o ire#os $ien&o ha(ra *ue ca#(iar #'s. Lo #e)or es e"egir (ien &es&e e" rinciio &+n&e insta"are#os Aache. En e" caso *ue esta#os $ien&o/ no aarece ninguna otra ruta/ ero ara configurar rutas re"ati$as a" &irectorio &e insta"aci+n &e Aache/ una $e@ esecifica&o con "a &irecti$a anterior/ o&ra#os usar ISer(erootI en "ugar &e "a ruta co#"eta. Pid4ile Pi&i"e esta("ece "a ruta a" archi$o en e" *ue e" ser$i&or gra(a su ID &e roceso Fi&. Por &efecto/ e" PID se co"oca en ISer(erootI/logs
En e" archi$o $e#os *ue aarecen unas constantes *ue est'n &efini&as en e" archi$o /etc/apache2/en((ars Para $er "os $a"ores rea"es ue&es e&itar e" archi$o/ nosotros usare#os e)e#"os concretos or*ue son #'s c"aros. %idMile logs5httpd.pid
No se reco#ien&a ca#(iar "a ruta si no se sa(e #u (ien "o *ue se est' hacien&o. +imeout Son "os segun&os *ue se eseran "as resuestas &urante "a co#unicaci+n. Por &efecto es 099 segun&os se reco#ien&a no ca#(iar"o. "imeout 3
Sergio Cuesta Vicente 77 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
eep#live, 9a'eep#live8e%uests 3 eep#live+imeout Deter#ina si e" ser$i&or $a a er#itir *ue ca&a conei+n haga #'s &e una etici+n. E" ro("e#a &e acti$ar"o es *ue un nico c"iente ue&e consu#ir &e#asia&os recursos saturar e" ser$i&or or "o *ue en caso &e esta("ecer"o a on se reco#ien&a configurar cui&a&osa#ente JeepAli(eimeout / genera"#ente a un ni$e" (a)o Fen "a $ersi+n 6.6 or &efecto era 2; se ha (a)a&o a ;. =eep#li'e
9aJeepAli(ee1uests &eter#ina e" n#ero &e eticiones *ue o&r' rea"i@ar ca&a conei+n. E$i&ente#ente so"o tiene senti&o si JeepAli(e
est' acti$a&a. *ax=eep#li'eEequests 1
JeepAli(eimeout &eter#ina e" tie#o *ue e" ser$i&or eserar' antes &e aten&er una nue$a etici+n &e" #is#o c"iente en "a #is#a conei+n.
=eep#li'e"imeout (
Estas &irecti$as son un (uen e)e#"o &e e"e#entos *ue ue&en hacer *ue nuestro ser$i&or no funcione co#o esera#os una $e@ en ro&ucci+n. Si no ro(a#os con un n#ero &e eticiones suerior a" #'i#o no o&re#os co#ro(ar si e" funciona#iento es e" esera&o. &f9odule Es un contene&or *ue er#ite esta("ecer &eter#ina&as ociones so"o si se ha carga&o un #+&u"o &eter#ina&o. Si se escri(e T Fcierre &e ec"a#aci+n antes &e" no#(re &e" #+&u"o se e)ecutan "as ociones si no se ha carga&o e" #+&u"o.
Esta &irecti$a no aarece en "a configuraci+n rincia" or*ue se ha &es"a@a&o a" archi$o &e configuraci+n &e ca&a #+&u"o/ ero se #antiene a*u or*ue su uso es i#ortante.
Sergio Cuesta Vicente 7+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
OG!*odule mod8mime8magic.cP *G*F*agicMile con!5magic O5G!*oduleP
7tart7ervers Esta &irecti$a aarece en e" archi$o /etc/apache2/modsGenabled/mpm?e(ent.con6 OG!*odule mpm8e'ent8moduleP tarter'ers *inpare"hreads *axpare"hreads "hread+imit "hreads%er0hild *axEequestVorkers *ax0onnections%er0hild O5G!*oduleP
2 2( 6( )4 2( 1(
Aache crea &estrue ser$i&ores auto#'tica#ente segn e" tr'fico *ue tenga *ue aten&er en ca&a #o#ento. Aache es #u eficiente en esto or "o *ue no &e(era#os reocuarnos &e#asia&o &e este &e "os siguientes ar'#etros. A&e#'s &e(eran ir &entro &e un ,69odule segn a" *ue *uera#os a"icar"o. Esta &irectri@ esta("ece cuantos ser$i&ores se crear'n a" arrancar. tarter'ers (
Sergio Cuesta Vicente 78 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
A" fina" &e "a e"icaci+n &e "a &irecti$a o&e#os $er *ue se usan otras asocia&as a esta ara &eter#inar cu'ntos ser$i&ores o hi"os Fhe(ras se &e(en #antener a "a esera. :isten Esta &irecti$a se encuentra en ports.con6
Este e"e#ento in&ica a" ser$i&or en *uH &irecci+n uerto &e(e escuchar "as eticiones htt *ue ""eguen adem$s de los de por defecto . E" uerto est'n&ar *ue un ser$i&or 7e( reci(a eticiones htt es e" =9 or "o *ue "a "nea *ue nos encontra#os es +isten 7
En nuestro caso he#os insta"a&o Aache en una #'*uina $irtua" as *ue est' configura&o ara escuchar en "a interfa@ &e "oo(acK F268.9.9.2. Si *uere#os *ue e" ser$i&or sea $isto &es&e "a #'*uina host &e(e#os configurar"o situan&o "a &irecci+n IP *ue configura#os ara "a tar)eta &e re& *ue a,a&i#os co#o so"oanfitri+n. La &irecci+n IP e" uerto se searan or &os untos. +isten 12.1)7.().117
Si configura#os Aache ara escuchar en otro uerto so"o o&re#os acce&er a "as 'ginas 7e( a,a&ien&o &icho uerto &etr's &e "a &irecci+n. Co#o $i#os a" insta"ar -o#cat/ Hste escucha or &efecto en e" uerto =9=9 or e""o acce&a#os a H" con htt:!!"oca"host:=9=9 :oad9odule Cuan&o insta"a#os Aache/ ha(i"ita#os "a oci+n &e Dna#ic Share& O()ect FDSO *ue er#ite a,a&ir #+&u"os &in'#ica#ente sin necesi&a& &e reco#i"ar e" ser$i&or. La &irecti$a Loa&1o&u"e in&ica *uH #+&u"os &in'#icos cargar. No es necesario inc"uir "os #+&u"os *ue se co#i"aron con e" ser$i&or.
En e" archi$o aarece co#enta&a or*ue no a,a&i#os ningn #+&u"o. 1's a&e"ante ha("are#os &e "os #+&u"os.
Sergio Cuesta Vicente 7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
De to&as for#as en nuestra &istri(uci+n se ha ota&o or otro #Hto&o *ue $ere#os #'s a&e"ante. ;ser 3
Si no arranca#os e" ser$i&or con e" usuario root / "os rocesos hi)o *ue se "an@ar'n con ese #is#o usuario a *ue so"o root ue&e ca#(iar e" usuario e" gruo &e un roceso or "o *ue estas &irecti$as se ignorar'n. En Linu or &efecto e" usuario nobod' e" gruo nogroup tienen #u ocos ri$i"egios or "o *ue son (uenos can&i&atos ara "an@ar "os rocesos hi)o. Si *uere#os usar e" n#ero &e" gruo o &e" usuario en "ugar &e" no#(re &e(e#os a,a&ir \ )usto antes &e" n#ero. @ser nobody Lroup -1
En nuestra &istri(uci+n se uti"i@an &os $aria("es g"o(a"es. 7erver#dmin Esta &irecti$a "as siguientes aarecen en /etc/apache2/sitesGa(ailable/Gde6ault.con6
Esta oci+n er#ite configurar "a &irecci+n &e" ainistra&or &e" ser$i&or 7e( *ue se #ostrar' si e" ser$i&or genera una 'gina &e error. E$i&ente#ente &e(e ser una &irecci+n rea" genera"#ente es &e" #is#o &o#ino *ue e" roio ser$i&or 7e(. Nosotros no &isone#os &e un no#(re &e &o#inio/ ero o&e#os configurar una &irecci+n &e correo rea". er'er#dmin pro!esor.sc'Wgmail.com
Sergio Cuesta Vicente + de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
7erverame In&ica e" no#(re &e" ser$i&or. De(e cu#"ir con "as esecificaciones DNS estar en nuestro o&er. er'erName .eCemplo.es7
Document8oot Con esta oci+n in&ica#os e" &irectorio ra@ &on&e co"ocare#os "as 'ginas 7e(. Po&e#os crear su(&irectorios &entro &e Hste acce&ere#os a "os &ocu#entos *ue onga#os en e" su(&irectorio con una ruta re"ati$a. &ocumentEoot D55docebD
E" ro("e#a es *ue no (asta con ca#(iar esta ruta/ es necesario ca#(iar ta#(iHn otra &e "a &irecti$a Director *ue $ere#os "uego. O&irectory D55docebDP X
Si *uere#os co#ro(ar *ue funciona "o #e)or es #o&ificar e" archi$o in&e.ht#" &e" nue$o &irectorio o a,a&ir un archi$o nue$o cargar ese. =n el caso %ue nos ocupa ahora/ esta &irecti$a aarece en e" archi$o de6ault &e" &irectorio /etc/apache2/sitesGa(ailable. Esto es as or*ue "a
insta"aci+n *ue usa#os nosotros $iene reeara&a or &efecto ara funcionar con sitios $irtua"es.
Sergio Cuesta Vicente +% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Director3 Esta &irecti$a ha(a si&o &eri$a&a a" archi$o &e configuraci+n &e" sitio or &efecto/ ara *ue no se a"icara a to&os "os sitios &e" ser$i&or a *ue no er#ite so(rescritura &e "as &irecti$as &e seguri&a&. En nuestro caso est' en e" ser$i&or or "o *ue afectara a to&os "os sitio *ue uti"i@aran e" &irectorio esecifica&o.
Esta oci+n se usa ara configurar c+#o se co#ortar' *uH se er#itir' en ca&a &irectorio a" *ue tiene acceso e" ser$i&or Aache. Esta configuraci+n se a"ica a un &irectorio "os su(&irectorios *ue contiene si no se so(rescri(e en otra &efinici+n so(re un &irectorio #'s concreto. Nos encontra#os &os $eces esta eti*ueta. La ri#era hace referencia a" &irectorio ra@ se configura sie#re con ociones #u restricti$as. O&irectory 5P
*ue i#i&e *ue na&ie *ue acce&e a" ser$i&or ue&a acce&er a ningn &irectorio &e "a estructura &e nuestro ser$i&or a *ue se a"ica a "os su(&irectorios ta#(iHn esta#os artien&o &e" &irectorio ra@. Esto es una &e "as cosas *ue ha ca#(ia&o &es&e "a $ersi+n 6.6 a *ue antes se uti"i@a(a una sintais &iferente a "a hora &e esta("ecer "os er#isos. Notación 2.2 O&irectory 5P
Sergio Cuesta Vicente +2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
&eny !rom all O5&irectoryP
?a *ue tener #ucho cui&a&o or*ue en e" #o#ento &e "a rea"i@aci+n &e estos auntes/ en "a &ocu#entaci+n &e director' e" e)e#"o *ue "o usa uti"i@a "a notaci+n antigua sin e#(argo en "a 'gina ara actua"i@ar &e "a $ersi+n 6.6 a "a 6.< est' (ien. E" conteni&o "o $e#os a continuaci+n. Pri#ero $a#os a #ostrar ta#(iHn "a otra $e@ *ue aarece/ hacien&o referencia a" &irectorio Documentoot a" co#arti&o &e" usuario. O&irectory 5usr5shareP #llo<'erride None Eequire all granted O5&irectoryP O&irectory 5'ar55P
Aun*ue a#(os casos estHn configura&os igua"/ o&ran &iferir. Pue&en a,a&irse &irecti$as ara otros &irectorios segn "o $aa#os necesitan&o. La ri#era "nea er#ite a Aache seguir en"aces si#(+"icos "a segun&a *ue "as ociones &e acceso &e ca&a &irectorio Farchi$o . htaccess &e" *ue ha("are#os en "a &irecti$a Access&ileFame no ri#an so(re Hstas. La tercera &irecti$a in&ica "os er#isos. Por ahora nos (asta sa(er *ue se er#ite e" acceso a to&os F en "a anterior se &enega(a a to&os.
Sergio Cuesta Vicente +3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Director3&nde' Esta &irecti$a en "a actua"i&a& se encuentra en /etc/apache2/modsGenabled/dir.con6
Esecifica "a 'gina or &efecto *ue se (uscar' a" acce&er a un &irectorio &e "a )erar*ua &e nuestro sitio. Acce&er a un &irectorio es usar una &irecci+n 7e( *ue aca(a con una (arra !. E" &irectorio ra@ est' inc"ui&o en esa )erar*ua or "o *ue cuan&o acce&e#os a nuestro sitio 7e( Fen nuestros casos htt:!!"oca"host carga e" archi$o in&e.ht#" *ue es e" $a"or or &efecto &e Director',nde . &irectoryGndex index.html
Pue&e esta("ecerse una sucesi+n &e archi$os e" ser$i&or #ostrar' "a ri#era *ue encuentre &e" or&en esta("eci&o en "a &irecti$a. &irectoryGndex index.html, index.htm, inicio.html, inicio.htm
Si acce&e#os a un &irectorio *ue no contiene ninguno &e "os archi$os esecifica&os/ Aache crea &in'#ica#ente un archi$o *ue "ista "os conteni&os. #ccess4ileame In&ica e" no#(re &e" archi$o en e" *ue se &e(en (uscar "as &irecti$as &e acceso &eter#ina&as en ca&a &irectorio. Por &efecto es . htaccess no se reco#ien&a ca#(iar"o en a(so"uto. #ccessMileName .htaccess
4iles Es un contene&or *ue sir$e ara esta("ecer &irecti$as ara tios &e archi$o. Por "o #enos es necesario a,a&ir un gruo *ue i#i&a e" acceso a "os archi$os *ue e#ie@an or .ht or #oti$os &e seguri&a&.
Sergio Cuesta Vicente + de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
OMiles*atch DYZ.htDP Eequire all denied O5Miles*atchP
Se ue&e usar ara otros tios &e archi$o segn crea#os con$eniente. >ostname:oo5ups In&ica a" ser$i&or si &e(e hacer una consu"ta DNS ara ca&a etici+n. Esto consu#e #ucho tie#o or "o *ue or &efecto est' &esha(i"ita&a. $ostname+ookups o!!
7erver7ignature Esta &irecti$a se encuentra en e" archi$o /etc/apache2/con6Ga(ailable/securit'.con6
In&ica si a" #ostrarse una 'gina genera&a auto#'tica#ente or e" ser$i&or Fno "as genera&as #e&iante "engua)es a artir &e a"go esta("eci&o or e" usuario sino "as 'ginas &e error/ "ista&o &e &irectorios -P/ etc &e(e #ostrarse e" no#(re "a $ersi+n &e" ser$i&or. Esto ue&e ser usa&o #a"iciosa#ente as *ue si no est's confor#e esta("Hce"o a off. er'erignature
?a otra oci+n FE1ai" *ue a,a&e "a &irecci+n &e" ainistra&or &e "a 7e( a "a infor#aci+n #ostra&a. #lias Esta &irecti$a se encuentra en e" archi$o /etc/apache2/modsGenabled/alias.con6
Sergio Cuesta Vicente +0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Per#ite crear a"ias ara archi$os o &irectorios. Se ue&en a,a&ir "os *ue *uera#os ero e" #'s ha(itua" es e" &e "a careta &e iconos *ue usa Aache. #lias 5icons5 D5usr5share5apache25icons5D O&irectory D5usr5share5apache25iconsDP
La &irecti$a es so"o "a ri#era "nea. Lo &e#'s es "a &irecti$a &e configuraci+n &e" &irectorio. 7cript#lias Se encuentra en /etc/apache2/con6Genabled/ser(eGcgiGbin.con6
In&ica &+n&e se u(icar' "a careta &e scrits CGI. E" funciona#iento es si#i"ar a" anterior ero so"o &e(e#os inc"uir"os si $a#os a usar scrits CGI. cript#lias 5cgi-bin5 5usr5lib5cgi-bin5 O&irectory D5usr5lib5cgi-binDP #llo<'erride None
Sergio Cuesta Vicente +7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
&nde'*ptions, #dd&conB3=ncoding, #dd&conB3+3pe, #dd&con, Default&con, 8eadmeame, >eaderame e &nde'&gnore Son &irecti$as asocia&as a "a creaci+n &e n&ices &e #anera auto#'tica or e" ser$i&or. Cuan&o nos #uestra e" ser$i&or 7e( un "ista&o &e conteni&os &e un &irectorio or e)e#"o. Est'n en e" archi$o /etc/apache2/modsGenabled/autoinde.con6
No $a#os a rofun&i@ar en e""as. :anguagePriorit3 -anto esta &irecti$a co#o "a siguiente tienen #ucho *ue $er son e" #+&u"o 1I1E *ue $ere#os #'s a&e"ante aun*ue no for#an arte &e H" con "os conoci#ientos *ue trae#os &e" ri#er curso o&e#os enten&er c+#o funcionan.
Per#ite esta("ecer una riori&a& &e "os i&io#as en caso &e *ue no se esecifi*ue uno o haa un e#ate en "a negociaci+n or &iferentes #oti$os. Por &efecto $iene en ing"Hs/ ero en "a #aora &e "os casos nosotros *uerre#os esta("ecer"o en esa,o". +anguage%riority es en !r de
Para o&er ro(ar este tio &e configuraci+n es necesario tener $arios archi$os en &iferentes i&io#as con e" #is#o no#(re. En Hsta 'gina o&e#os $er c+#o hacer"o/ ero aun*ue es (astante co#"eta es antigua. En e" W0c nos roorcionan una infor#aci+n #'s reciente en "a &ocu#entaci+n oficia" &e Aache aarece to&o esecifica&o. Los c+&igos &e i&io#as est'n #anteni&os or "a IANA. Co#o son "os #is#os *ue se uti"i@an en ?-1L/ J1L/ etc eisten 'ginas #u co#"etas so(re e""os. #ddDefaultC"arset De(era esta("ecerse a" )uego &e caracteres *ue #e)or se a)uste a "a @ona en "a *ue se sita e" ser$i&or a" i&io#a &e" conteni&o. En caso &e no estar seguros es #e)or &e)ar"o co#o est'.
Sergio Cuesta Vicente ++ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
#dd&e!ault0harset G<-77(-1
Bro!ser9atc" Se encuentran Fentre otros en /etc/apache2/modsGenabled/seten(i6.con6
Sir$e ara #o&ificar "a resuesta &een&ien&o &e "a configuraci+n &e" c"iente en cuanto a na$ega&or "ugins. Esto sue"e usarse ara e$itar ro("e#as con na$ega&ores *ue no siguen a"gn est'n&ar o e$itar agu)eros &e seguri&a&. Las siguientes "neas son #u co#unes or*ue inc"uen configuraciones con ro("e#as &e so(ra conoci&os. Iroser*atch Iroser*atch Iroser*atch Iroser*atch Iroser*atch
D*oSilla52D nokeepali'e D*GF 4Z.b2\D nokeepali'e dongrade-1. !orce-response-1. DEeal%layer 4Z.D !orce-response-1. DBa'a51Z.D !orce-response-1. DB&=51Z.D !orce-response-1.
Configura tu ser$i&or Aache ara *ue "a careta ra@ sea !ag7e( rue(a a consu"tar"o &es&e "a #'*uina host. So"o aitir' consu"tar or e" uerto >9>9. A&e#'s "a 'gina or &efecto *ue cargar' en ca&a &irectorio &e(e ser inicio.ht#". Por "ti#o a,a&e e" i&io#a esa,o"/ cata"'n/ ga""ego $asco en este or&en. E" )uego &e caracteres or &efecto &e(e ser e" euroeo occi&enta". Prue(a e" correcto funciona#iento &e to&o.
Sergio Cuesta Vicente +8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
egistros de error Los archi$os &e son fun&a#enta"es en "a gesti+n &e ser$i&ores a *ue nos er#iten co#ro(ar *uH ha suce&i&o en ca&a #o#ento. Aun*ue ha otros tios/ "os *ue $ere#os ahora son "os *ue guar&an errores &e configuraci+n o funciona#iento. Estas &irecti$as &e registro &e errores ue&en ir tanto en "a configuraci+n rincia" co#o en "a &e a"gn sitio Fhost esecfico. Aun*ue no nos eten&ere#os or fa"ta &e tie#o s $a#os a echar un $ista@o genera" a" registro/ a *ue es tre#en&a#ente ti" cuan&o tene#os a"gn ro("e#a &e funciona#iento en e" ser$i&or o a"guno &e "os sitios 7e( en"a@a&os. Lo ri#ero es echar un $ista@o genera" a "a &ocu#entaci+n &e Aache ara hacernos una i&ea. =rror:og
Esta &irecti$a es #u i#ortante a *ue in&ica &+n&e u(icar e" archi$o &e registro &e "os errores *ue se ro&u@can en e" ser$i&or. E" "ugar or &efecto es ISer(erootI/logs/error?log. 1uchos ainistra&ores crean una artici+n ec"usi$a#ente ara situar este tio &e archi$os as tener #'s ro(a(i"i&a&es &e o&er consu"tar"os en caso &e un error fata". Frror+og logs5error8log
:og:evel Esta("ece cu'nta infor#aci+n se guar&ar' en e" archi$o &e registro &e errores. E" ni$e" or &efecto es suficiente ara e#e@ar ero cuanto #aor sea e" ser$i&or #'s i#ortante su funci+n #'s infor#aci+n necesitare#os. Los $a"ores osi("es inc"uen: &e(ug/ info/ notice/ 7arn/ error/ crit/ a"ert/ e#erg. +og+e'el arn
Sergio Cuesta Vicente + de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
:og4ormat Esta("ece *uH en *uH for#ato se registrar'. No $a#os a entrar en #'s &eta""es en este curso. Custom:og Esta("ece "a ruta a" archi$o &e *ue registra "as $isitas a nuestro sitio 7e(. 0ustom+og logs5access8log combined
Co#(ine& in&ica e" uso &e un nico archi$o ara guar&ar to&a "a infor#aci+n a *ue es osi("e &i$i&ir este registro en $arios.
Consu"ta "os archi$os &e registro &e errores &e acceso &e tu ser$i&or Aache.
Sergio Cuesta Vicente 8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
1+&u"os E" &ise,o &e Aache es #o&u"ar/ a"go *ue a he#os &e)a&o entre$er cuan&o he#os ha("a&o &e Dna#ic Share& O()ect FDSO. E" nc"eo &e Aache inc"ue "a funciona"i&a& necesaria ara esta("ecer un ser$i&or 7e( ero eisten #uchos #+&u"os a&iciona"es *ue er#iten a,a&ir funciones etra. E" uso &e DSO tiene unas $enta)as e$i&entes "a nica &es$enta)a es una e*ue,a &is#inuci+n &e" ren&i#iento &e" ser$i&or or "o *ue se reco#ien&a su uti"i@aci+n eceto en casos en "os *ue e" ren&i#iento sea crtico. Ca&a #+&u"o tiene un con)unto &e &irecti$as esecficas *ue er#iten su gesti+n. Nosotros ahora nos centrare#os en $er *uH #+&u"os ha #'s a&e"ante estu&iare#os a"gunos casos en rofun&i&a&. Pue&es consu"tar "os #+&u"os *ue est'n insta"a&os en ca&a ser$i&or #e&iante e" co#an&o sudo apachectl ?l
*ue en e" caso &e nuestra insta"aci+n nos &e$ue"$e "o siguiente. 0ompiled in modules core.c mod8so.c mod8atchdog.c http8core.c mod8log8con!ig.c mod8logio.c
Sergio Cuesta Vicente 8% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mod8'ersion.c mod8unixd.c
Otra for#a &e consu"tar"o es sudo apachectl ?*
5ue nos #uestra "os #+&u"os or no#(re &eter#inan&o si se a,a&ieron &e for#a est'tica Fcuan&o se co#i"+ Aache o &e #anera &in'#ica. +oaded *odules core8module /staticA so8module /staticA atchdog8module /staticA http8module /staticA log8con!ig8module /staticA logio8module /staticA 'ersion8module /staticA unixd8module /staticA access8compat8module /sharedA alias8module /sharedA auth8basic8module /sharedA authn8core8module /sharedA authn8!ile8module /sharedA authS8core8module /sharedA authS8host8module /sharedA authS8user8module /sharedA autoindex8module /sharedA
Sergio Cuesta Vicente 82 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
de!late8module /sharedA dir8module /sharedA en'8module /sharedA !ilter8module /sharedA mime8module /sharedA mpm8e'ent8module /sharedA negotiation8module /sharedA seten'i!8module /sharedA status8module /sharedA
Es f'ci" reconocer e" #is#o #+&u"o en "a ter#ino"oga &e" ri#er "ista&o en "a &e" segun&o. Pue&es consu"tar to&os "os #+&u"os a*u. Si inchas en e" no#(re &e a"guno te ""e$ar' a una e"icaci+n #'s co#"eta con e)e#"os. Va#os a resentar a"gunos &e "os &iferentes #+&u"os en gruos con funciones si#i"ares.
Para "os siguientes #+&u"os &e(es "eer "a e*ue,a e"icaci+n *ue $iene a*u/ reararte ara e"icar *uH hace ensar uno o &os e)e#"os &e uti"i&a& *ue tenga e" #+&u"o. Va#os a ir"o hacien&o gruo a gruo.
La $ersi+n 6.< trae #+&u"os nue$os #e)oras en otros a eistentes. E" #+&u"o #'s i#ortante es e" &eno#ina&o Core Fcora@+n o nc"eo *ue contiene "a #aora &e "as &irecti$as $istas hasta ahora #uchas otras.
Sergio Cuesta Vicente 83 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
9#dulos relacionados con el entorno Estos #+&u"os nos er#iten contro"ar *uH arte &e" entorno &e" ser$i&or estar' &isoni("e ara otros #+&u"os o rogra#as. A" &ecir entorno nos referi#os a" con)unto &e $aria("es &in'#icas &e entorno &e Aache *ue #o&ifican e" co#orta#iento &e" ser$i&or. Pue&en ser ti"es en otros #+&u"os Fa*u #e refiero a asignaturas co#o Desarro""o en Entorno Ser$i&or. mod?env Este #+&u"o est' &isoni("e en nuestras insta"aciones. Per#ite asar e" $a"or &e $aria("es &e entorno a rogra#as &e scrit CGI/ er"/ P?P/ etc. mod?setenvif -a#(iHn aarece or &efecto or "o *ue est' &isoni("e en nuestras insta"aciones. Este #+&u"o nos osi(i"ita "a creaci+n &e $aria("es &e entorno a artir &e &atos *ue nos en$a en c"iente con e" rotoco"o ?--P. La &irecti$a ro$ser9atch $ista anterior#ente ertenece a este #+&u"o. mod?uni%ue?id Este #+&u"o sin &irecti$as se encarga &e esta("ecer un i&entifica&or nico ara ca&a etici+n *ue ""ega a "a #'*uina con e" ser$i&or Aache en caso &e *ue "o necesite#os. 4ea"#ente ue&e crear un i&entifica&or nico ara ca&a etici+n *ue ""egue a un con)unto &e #'*uinas configura&as correcta#ente ara funcionar co#o un c"uster.
9#dulos de autenticaci#n ' control de acceso Aache i#"e#enta $arios #+&u"os ara rea"i@ar autenticaci+n contro" &e acceso "o *ue se sue"e a"icar a" fi"tra&o &e usuarios *ue ue&en $isitar un &irectorio &e nuestro 7e( (as'n&ose en "a &irecci+n IP o e" no#(re &e usuario.
Sergio Cuesta Vicente 8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
E" #aor ro("e#a *ue resentan estos #+&u"os es *ue uti"i@an e" rotoco"o ?--P *ue trans#ite teto "ano or "o *ue "as contrase,as se en$an sin cifrar crean&o un agu)ero &e seguri&a& #u reocuante. ?a("are#os #'s &e $arios &e estos #+&u"os cuan&o $ea#os autenticaci+n autori@aci+n. mod?aut"@@@@@@ #o&auth(asic es e" #+&u"o ('sico &e autenticaci+n &e Aache. E" #+&u"o #o&auth&igest es si#i"ar ero er#ite encritar "a contrase,a en "ugar &e en$iar"a &e &e for#a c"ara. Usan e" rotoco"o ?--P ara e""o.
4e"aciona&os con H" ha $arios #+&u"os #'s con &iferentes for#as &e autenticaci+n F#o&authn autori@aci+n F#o&auth@ &e "os *ue "os e)e#"os #'s senci""os son #o&authnfi"e #o&auth@user. En Aache 6.< se ha inc"ui&o #o&authfor#.
En are)as o or gruos/ intenta& enten&er c+#o funcionan estos #+&u"os &e #anera ('sica Fno se reten&e *ue o&a#os hacer"os funcionar an &e *uH se encarga ca&a uno &e "os tres gruos. Posterior#ente "o on&re#os en co#n. Una $e@ he#os enten&i&o "os gruos $a#os a $er e" uso &e uno u otro &entro &e ca&a gruo/ restan&o esecia" atenci+n a "os *ue $ienen or &efecto en Aache. QCrees *ue en $ersiones anteriores &e Aache no o&a usarse "a autenticaci+n #e&iante for#u"ariosR Q*uH aorta "a inc"usi+n &e" #+&u"o #o&authfor#R
Sergio Cuesta Vicente 80 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mod?aut"?"ost Per#ite autenticaci+n #e&iante &irecci+n IP o no#(re &e &o#inio.
#o&access er#ita en $ersiones anteriores acti$ar "a autenticaci+n #e&iante &irecci+n IP o no#(re &e "a #'*uina c"iente. Sin e#(argo usa #o&access er#ita "a sintais antigua or "o *ue est' &esaconse)a&o.
9#dulos de generaci#n dinmica de contenidos Estos #+&u"os er#iten &e"egar "a atenci+n &e &eter#ina&as eticiones a &iferentes scrits o rogra#as eternos. mod?cgi Sir$e ara e)ecutar scrits &e tio CGI FCo##on Gate7a Interface Interface mod?include Per#ite usar fi"tros SSI FSer$erSi&e Inc"u&es mod?actions Deen&ien&o &e" tio 1I1E o en e" #Hto&o &e "a etici+n ?--P/ ?--P/ er#ite usar &iferentes scrits ara rocesar &ichas eticiones. mod?e't?filter Per#ite fi"trar una resuesta #e&iante un rogra#a eterno antes &e en$i'rse"a a" c"iente.
9#dulos de con6iguraci#n del tipo de contenido Este con)unto &e #+&u"os er#iten a" ser$i&or &etectar o negociar e" tio &e conteni&o #'s a&ecua&o ara e" c"iente/ enten&ien&o co#o c"iente "a #'*uina e" na$ega&or *ue reci(ir'n "a resuesta ?--P. ?--P.
Sergio Cuesta Vicente 87 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mod?mime Per#ite *ue Aache &eter#ine &eter#ine e" tio 1I1E a artir &e "a etensi+n &e" archi$o. Se co#i"a or &efecto nos er#ite acti$ar un ;andler ara ara gestionar tios &e archi$o. Varias &e "as &irecti$as *ue $i#os &e tios &e co&ificaci+n &e i&io#as &e" conteni&o est'n re"aciona&as con este #+&u"o. mod?mime?magic Este #+&u"o er#ite a Aache &eter#inar e" tio 1I1E a artir &e un atr+n &e (tes *ue se a"#acena en un archi$o se co#ara con "a etici+n. S+"o se acti$a si e" #+&u"o anterior no es caa@ &e &eter#inar e" tio 1I1E. mod?negotiation La negociaci+n negociaci+n &e conteni&o conteni&o entre c"iente ser$i&or ser$i&or tica consiste consiste en *ue e" c"iente c"iente "e en$a a" ser$i&or *uH tios &e conteni&o conteni&o Fi&io#a/ Fi&io#a/ co&ificaci+n/ etc ue&e #ane)ar e" ser$i&or (usca e" #'s a&ecua&o ara reson&er"e. Este #+&u"o se co#i"a or &efecto.
9#dulos para el listado de directorios Cuan&o un c"iente hace una etici+n a nuestro ser$i&or con una &irecci+n 7e( *ue in&ica un &irectorio e" ser$i&or intenta ser$ir ri#ero e" archi$o o archi$os esta("eci&os ara e""o Fcon "a &irecti$a Director',nde . . En caso &e no encontrar ninguno en ese &irectorio #uestra una "ista &e "os archi$os conteni&os. Estos #+&u"os nos er#iten er#iten configurar c+#o ser'n esos "ista&os. mod?dir 1+&u"o ('sico &e #ane)o &e &irectorios *ue se inc"ue en "a co#i"aci+n est'n&ar &e Aache. Por &efecto rea"i@a &os funciones ('sicas: a,a&e a,a&e una (arra (arra ! ! a" fina" fina" &e ca&a ca&a &irecc &irecci+n i+n *ue no ter#in ter#ina a en un no#(re no#(re &e archi$ archi$o o Fre&ir Fre&irige ige 777.#i 777.#isit sitio. io.es! es!un& un&ire irecto ctorio rio a 777.#isitio.es!un&irec 777.#isitio.es!un&irectorio! torio! (usca un archi$o or &efecto ara cargar en "os casos en "os *ue se intenta acce&er a un &irectorio. Si no &efini#os na&a con "a &irecti$a Director',nde se se (usca inde.html or or &efecto.
Sergio Cuesta Vicente 8+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mod?autoinde' Este #o&u"o ta#(iHn se inc"ue en "a configuraci+n &e Aache or &efecto. En caso &e *ue a" acce&er a un &irectorio no se encuentre ninguno &e "os archi$os esecifica&os mod?autoinde se encarga &e generar e" "ista&o. A&e#'s A&e#'s o&e#os configurar c+#o se generar' &icho "ista&o.
Configurar este #+&u"o es ti" en caso &e *ue tenga#os un ser$i&or &e archi$os For e)e#"o en una intranet a" *ue acce&an #uchos usuarios. No ha *ue confun&ir este tio &e acceso con e" *ue roorciona un ser$i&or -P co#o $ere#os en e" te#a <.
9#dulos para la gesti#n de las cabeceras ;< de las respuestas Las ca(eceras en e" rotoco"o ?--P inc"uen #ucha infor#aci+n i#ortante ara "a co#unicaci+n. ste con)unto &e #+&u"os nos er#ite #o&ificar &ichas ca(eceras. E" uso &e estos #+&u"os re*uiere conoci#ientos a$an@a&os &e" funciona#iento &e" rotoco"o ?--P or "o *ue so"o "os "istare#os: mod?asisE mod?headersE mod?epires mod?cern?meta son "os #+&u"os *ue se inc"uen en este gruo. So"o e" ri#ero se inc"ue en "a co#i"aci+n or &efecto.
9#dulos de in6ormaci#n del ser(idor ' de registro de la acti(idad Estos #+&u"os roorcionan infor#aci+n so(re e" esta&o &e" ser$i&or er#iten configurar e" registro &e "a acti$i&a&. mod?log?config Per#ite configurar e" registro &e" acceso &e usuarios a" ser$i&or. mod?status 1uestra infor#aci+n so(re e" esta&o &e" ser$i&or. mod?info 1uestra infor#aci+n &e configuraci+n &e" ser$i&or.
Sergio Cuesta Vicente 88 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mod?usertrac5 Per#ite i&entificar usuarios registrar"os &e #anera in&i$i&ua" usan&o ?--P CooKies. E" i&entificar usuarios &e for#a in&i$i&ua" nos er#ite tratar a ca&a usuario &e for#a nica o ser$ir"e infor#aci+n ersona"i@a&a or e)e#"o.
Q5uH son "as cooKiesR In$estiga en Internet e"ica &e for#a ('sica c+#o funcionan. 4eciente#ente Goog"e 1icrosoft han #anifesta&o su intenci+n &e &e)ar &e usar cooKies/ Qsignifica esto *ue est'n &isuestos a renunciar a "a funciona"i&a& *ue roorcionanR EntHrate en Internet &e *uH "antean. QD+n&e se a"#acenan "as cooKies en tu or&ena&orR Acce&e a a"guna ara $er su conteni&o. La etensi+n E&it this CooKie the Goog"e Chro#e ue&e au&arte si eortas a"guna "a egas en un &ocu#ento &e teto.
9#dulos de mapeo de =s Con este con)unto &e #+&u"os o&e#os #ane)ar #o&ificar "as U4Ls &e nuestro sitio: a artir &e" no#(re &e &o#ino hacia a&e"ante. Nos er#itir' crear a"ias/ nos au&ar' a tener $arios sitios 7e( en e" #is#o ser$i&or o&re#os rescri(ir "as &irecciones ara *ue ""e$en a &iferentes "ugares &e "a estructura &e archi$os &irectorios &e nuestro ser$i&or. ser$i&or. mod?userdir a co#enta#os co#enta#os a" re$isar e" archi$e &e configuraci+n &e Aache c+#o o&a#os crear sitios ersona"es ara ca&a usuario usan&o "a &irecti$a serdir . Este #+&u"o es e" *ue nos er#ite hacer"o.
Sergio Cuesta Vicente 8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mod?alias Si *uere#os esta("ecer a"ias o en"aces si#(+"icos entre &os rutas &e "a estructura &e archi$os. Inc"uso er#ite crear re&irecciones &e un archi$o o &irectorio a otro. Este #+&u"o se co#i"a or &efecto con Aache. mod?re!rite Con este #+&u"o o&e#os #o&ificar "a U4L &e "a etici+n *ue hace e" c"iente ara *ue sea una *ue configure#os nosotros. Para e""o/ se esta("ece un atr+n con e" *ue se co#ara "a U4L si coinci&e se ca#(ia or otra segn otro atr+n *ue se esta("ece. Esto er#ite entre otras #uchas cosas #o&ificar "a estructura &e archi$os &irectorios &e nuestro na$ega&or 7e( *ue "as U4Ls &e "a estructura antigua sigan funcionan&o. Es #'s otente *ue "os a"ias crea&os en e" #+&u"o anterior or*ue un atr+n ue&e eng"o(ar #uchas U4Ls Fto&as "as *ue cu#"an con e" atr+n esta("eci&o. mod?speling Este #+&u"o corrige osi("es e*ue,os errores en "as U4Ls &e eticiones or arte &e "os c"ientes. -iene &os tios &e correcci+n: en "a ri#era er#ite un error co#o "a intro&ucci+n &e un car'cter &e #'s/ "a o#isi+n &e un car'cter o e" ca#(io &e un car'cter or otro Fso"o uno #ientras *ue "a segun&a funciona"i&a& (usca errores ro$oca&os or e" incorrecto uso &e #ascu"as #inscu"as.
E" #+&u"o co#ara "a etici+n con "os &irectorios archi$os *ue encuentra en "a estructura. Si ha una coinci&encia se rea"i@a una etici+n &e re&irecci+n a" c"iente si ha $arias se "e en$a a" c"iente "a "ista &e coinci&encias. E" gran ro("e#a *ue tiene "a acti$aci+n &e este #+&u"o es e" tre#en&o i#acto negati$o *ue ue&e ""egar a tener en e" ren&i#iento &e" ser$i&or or "o *ue ha *ue estar #u seguros &e "a necesi&a& &e acti$ar"o. mod?v"ost?alias Este #+&u"o est' re"aciona&o con e" uso &e hosts $irtua"es *ue $ere#os #'s a&e"ante. B'sica#ente sir$en ara tener $arios sitios 7e( en e" #is#o ser$i&or Aache. Sin e#(argo este #+&u"o no se usa #u ha(itua"#ente or*ue "o *ue er#ite es "a creaci+n &e hosts $irtua"es &e for#a &in'#ica so"o se reco#ien&a cuan&o se $an a crear #uchsi#os "a configuraci+n #anua" $aa a ser &e#asia&o "enta. Por e)e#"o si un ro$ee&or &e ser$icios &e Internet FISP &eci&e crear sitios 7e( ara to&os "os c"ientes *ue "o so"iciten.
Sergio Cuesta Vicente de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
>tros m#dulos En este gruo $a#os a ha("ar &e $arios #+&u"os *ue no enca)an en ninguno &e "os gruos anteriores ero *ue #erece "a ena tener en cuenta. mod?so Este es e" #+&u"o *ue nos er#ite a,a&ir otros sin "a necesi&a& &e reco#i"ar"os. Es e" #+&u"o *ue nos er#ite e" uso &e DSO FDna#ic Share& O()ect to&os "os &e#'s #+&u"os &e Aache se ue&en usar &e esta #anera #enos este. 4ecuer&o *ue cuan&o co#i"a#os Aache Aache a,a&i#os este #+&u"o ara o&er usar otros sin necesi&a& &e reco#i"ar e" ser$i&or ca&a $e@ *ue *uisiHra#os a,a&ir o e"i#inar a"gn #+&u"o &e nuestro ser$i&or 7e(. mod?i mag mag ema map p Con Hste #+&u"o *ue se co#i"a or &efecto con Aache/ se inc"ue e" soorte ara #aas &e i#'genes e" archi$os ?-1L. mod?pro'3 Este #+&u"o nos er#ite con$ertir Aache en un ser$i&or ro. Un ser$i&or ro se sita entre e" c"iente e" ser$i&or ('sica#ente acta co#o e" ser$i&or ara e" c"iente co#o un c"iente ara e" ser$i&or. Los #oti$os ara usar un ser$i&or ro ue&en ser #u $aria&os/ ero inc"uen &ar acceso a &eter#ina&os recursos &e Internet a or&ena&ores sin &irecciones $ia("es/ hacer "a funci+n &e cachH ara "os usuarios &e una re& o contro"/ registrar !o restringir e" uso &e &eter#ina&os recursos &e Internet. mod?file?cac"e Si usa#os este #+&u"o er#iti#os *ue Aache onga en cachH &eter#ina&os archi$os est'ticos no ca#(ien frecuente#ente. E" ro("e#a con e" uso &e esta tHcnica es *ue si e" archi$o ca#(ia ue&e tar&ar (astante en en$iarse e" archi$o #o&ifica&o a "os c"ientes &e(i&o a "a coia *ue tene#os en cachH.
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mod?dav Si *uere#os usar We(DAV ten&re#os *ue acti$ar este #+&u"o. ?a("are#os &e We(DAV en e" te#a <. mod?e'ample? "oo5s Es un #+&u"o &e $ita" i#ortancia ara to&o a*ue" *ue *uiera o necesita aren&er a rogra#ar un #+&u"o &e Aache/ ero ara na&ie #'s. ?a *ue tener conoci#ientos &e" "engua)e &e rogra#aci+n C ara o&er co#ren&er"o.
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Insta"aci+n/ configuraci+n uso &e "os #+&u"os &e Aache DesuHs &e "a intro&ucci+n a "as funciones &e a"gunos #+&u"os &e Aache/ $a#os a aren&er a usar a"gunos &e e""os. Aun*ue ca&a uno tiene sus roias ecu"iari&a&es "a r'ctica con a"gunos nos ""e$ar' a co#ren&er e" funciona#iento o&er usar cua"*uiera consu"tan&o "a &ocu#entaci+n ertinente.
=os archi(os de con6iguraci#n de la instalaci#n por pa1uete Este tio &e insta"aci+n ""e$a asocia&a una &istri(uci+n &e "as &irecti$as &e configuraci+n en $arios archi$os. Es #ucho #'s raciona" si#"ifica "a ainistraci+n &e" ser$i&or Aache con resecto a "a insta"aci+n #anua" *ue uti"i@a un nico fichero &e configuraci+n aun*ue #e&iante "a &irecti$a ,nclude se u&e configurar a" gusto &e ca&a uno co#o $i#os en e" aarta&o correson&iente. 4ea"#ente "a arte *ue nos afecta a a nosotros es Gnclude module con!iguration Gnclude
4ea"#ente en "a careta modsGenabled so"o ha en"aces s#(+"icos a "os archi$os en modsGa(ailable.
Sergio Cuesta Vicente 3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Comprobaci#n de los m#dulos 'a instalados Para co#ro(ar *uH #+&u"os est'n insta"a&os or &efecto apachectl -*
Ve#os "o siguiente +oaded *odules core8module /staticA so8module /staticA atchdog8module /staticA http8module /staticA log8con!ig8module /staticA logio8module /staticA 'ersion8module /staticA unixd8module /staticA access8compat8module /sharedA alias8module /sharedA auth8basic8module /sharedA authn8core8module /sharedA authn8!ile8module /sharedA authS8core8module /sharedA authS8host8module /sharedA authS8user8module /sharedA autoindex8module /sharedA
Sergio Cuesta Vicente de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
de!late8module /sharedA dir8module /sharedA en'8module /sharedA !ilter8module /sharedA mime8module /sharedA mpm8e'ent8module /sharedA negotiation8module /sharedA seten'i!8module /sharedA status8module /sharedA
Por "o *ue a" ""e$ar acti$o e" so?module *uiere &ecir *ue soorta DSO as *ue se ue&en acti$ar "os #+&u"os &e #anera &in'#ica. Nosotros o&e#os encontrar "os #+&u"os en "a careta /usr/lib/apache2/modsGa(ailable cd 5usr5lib5apache25mods-a'ailabe ls ?la
Eisten #uchos #+&u"os a&iciona"es *ue no se inc"uen en "a insta"aci+n est'n&ar &e Aache. Para consu"tar estos #+&u"os &e(e#os e)ecutar "a or&en sudo apt-cache search libapache2-mod
,nstalaci#n Para insta"ar un #+&u"o &e Aache ha *ue usar "a &irecti$a =oad9odule &e" #+&u"o #o&so. Cua sintais $iene &efini&a co#o
Sergio Cuesta Vicente 0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
+oad*odule
module filename
Don&e module es e" no#(re &e" #+&u"o 6ilename "a ruta no#(re &e" archi$o .so &on&e se encuentra. Por e)e#"o ara acti$ar e" #+&u"o mod?speling +oad*odule speling8module 5usr5lib5apache25modules5mod8speling.so
Sien&o necesario &esuHs reiniciar Aache apachectl restart
Q5uH suce&e si intentas cargar un #+&u"o *ue no eisteR
Pero en nuestra insta"aci+n $e#os *ue to&o esto est' organi@a&o en &iferentes archi$os. Si $a#os a "a careta /etc/apache2/modsGa(ailable $ere#os *ue ha &os etensiones &e archi$o: ."oa& *ue contiene "a instrucci+n ara cargar e" #+&u"o. +oad*odule alias8module 5usr5lib5apache25modules5mod8alias.so
Sergio Cuesta Vicente 7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
.conf *ue contiene "a configuraci+n ara &icho #+&u"o. OG!*odule alias8moduleP #liases #dd here as many aliases as you need /ith no limitA. "he !ormat is #lias !akename realname Note that i! you include a trailing 5 on !akename then the ser'er ill require it to be present in the @E+. o D5iconsD isnQt aliased in this example, only D5icons5D. G! the !akename is slash-terminated , then the realname must also be slash terminated, and i! the !akename omits the trailing slash, the realname must also omit it. Ve include the 5icons5 alias !or MancyGndexed directory listings. G! you do not use MancyGndexing, you may comment this out. #lias 5icons5 D5usr5share5apache25icons5D O&irectory D5usr5share5apache25iconsDP
Esta for#a &e funcionar si#"ifica to&o ero o&ran usarse igua" &es&e un nico archi$o &e configuraci+n.
Sergio Cuesta Vicente + de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
#lternativa En a"gunas &istri(uciones &e Linu ha otra for#a &e acti$ar "os #+&u"os. Si nos &a#os cuenta tene#os &os &irectorios !etc!aache6!#o&s a$ai"a("e !etc!aache6!#o&sena("e&. En e" ri#ero est'n to&os "os #+&u"os *ue $ienen inc"ui&os en esta $ersi+n &e Aache #ientras *ue en e" segun&o est'n "os *ue tene#os acti$os en nuestro ser$i&or #e&iante en"aces si#(+"icos a "os #+&u"os en e" &irectorio anterior.
Para acti$ar un #+&u"o usa#os e" co#an&o a6en#o& con e" no#(re &e" #+&u"o. sudo a2enmod speling
*ue nos infor#a &e "o *ue est' suce&ien&o &e *ue es necesario reiniciar e" ser$i&or Fnabling module speling. "o acti'ate the ne con!iguration, you need to run ser'ice apache2 restart
ara &esacti$ar"o se hace igua" ero con e" co#an&o a6&is#o&. sudo a2dismod speling
ara "o *ue o(tene#os una infor#aci+n e*ui$a"ente. *odule speling disabled. "o acti'ate the ne con!iguration, you need to run ser'ice apache2 restart
Sergio Cuesta Vicente 8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
&esuHs &e ca&a acti$aci+n o &esacti$aci+n es necesario reiniciar e" ser$i&or. apachectl restart
ten en cuenta *ue "a "nea anterior es e*ui$a"ente a apache2 restart
so ' con6iguraci#n Ca&a #+&u"o en Aache 6 tiene un uso configuraci+n &iferentes. Para sa(er c+#o usar ca&a #+&u"o "o #e)or es consu"tar "a &ocu#entaci+n &e "a 'gina oficia". Des&e "a "ista &e #+&u"os se ue&e hacer c"icK en ca&a uno ara $er sus &irecti$as uso. Nosotros $a#os a seguir con e" e)e#"o &e" #+&u"o mod?speling. Po&e#os $er *ue so"o tiene &os &irecti$as *ue o&e#os usar: ChecBSpelling ChecBCase>nl' . La ri#era acti$a o &esacti$a e" #+&u"o "a segun&a hace *ue so"o se corri)an "os errores &e #ascu"as!#inscu"as. Para acti$ar"o "a correcci+n co#"eta &e(e#os a,a&ir a" archi$o &e configuraci+n "a siguiente "nea: 0heckpelling on
DesuHs &e ca&a ca#(io en "a configuraci+n es necesario reiniciar "a #'*uina ara *ue "a #o&ificaci+n surta efecto. apache2 restart
Sergio Cuesta Vicente de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Para ro(ar si to&o funciona correcta#ente o&e#os intentar cargar "a 'gina 7e( htt:!!"oca"host!ins&e.ht#" antes &e "os ca#(ios en e" ser$i&or. Nos &e$ue"$e una 'gina &e error genera&a auto#'tica#ente con Aache con e" siguiente teto: Not Mound "he requested @E+ 5insdex.html as not !ound on this ser'er. #pache52.2.22 /@buntuA er'er at localhost %ort 7
Si &esuHs &e "os ca#(ios intenta#os acce&er a "a #is#a 'gina 7e( $ere#os *ue corrige "a &irecci+n a htt:!!"oca"host!in&e.ht#" carga "a 'gina &e inicio &e Aache.
Prue(a a acti$ar e" #+&u"o *ue corrige "a sintais #o&ifican&o e" archi$o htt&.conf Fno e" aache6.conf a *ue as es #'s f'ci" co#ro(ar "o *ue he#os hecho. Prue(a *ue to&o funciona correcta#ente (orra "as #o&ificaciones en "a configuraci+n. -en en cuenta "a &irecti$a If1o&u"e De$ue"$e "a configuraci+n a" esta&o anterior a este e)ercicio.
#rc"ivos de configuración asociados a cada módulo En e" &irectorio /etc/apache2/modsGenabled o&e#os $er *ue ha &os archi$os asocia&os a ca&a #+&u"o acti$o. Los archi$os ."oa& inc"uen "a &irecti$a ara *ue se cargue e" #+&u"o en cuesti+n #ientras *ue "os archi$os .conf inc"uen &irecti$as &e configuraci+n *ue nica#ente se a"icar'n si se carga un #+&u"o &eter#ina&o. Esto se consigue con "a &irecti$a ,69odule *ue funciona co#o un if &e rogra#aci+n.
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
4ea"#ente "o *ue encontra#os en e" &irectorio son en"aces si#(+"icos a "os archi$os en /etc/apache2/modsGa(ailable
mod?status ' mod?in6o Estos &os #+&u"os nos er#iten o(tener infor#aci+n #u ti" so(re nuestro ser$i&or. mod?status est' acti$a&o or &efecto en nuestra &istri(uci+n &e Aache/ ero se acti$a &esacti$a co#o cua"*uier otro #+&u"o. Po&e#os $er #o&ificar su configuraci+n en /etc/apache2/modsGa(ailable/
gedit status.con!
Va#os a aro$echar ara $er otra &irecti$a &e configuraci+n. Si nos fi)a#os ahora so"o nos er#ite consu"tar e" esta&o &es&e nuestra #'*uina. Eequire local
Po&e#os a,a&ir una "nea &e(a)o con "a &irecci+n IP &e otra #'*uina ara *ue nos &H acceso &es&e e""a. Se consu"ta &icha infor#aci+n en "a &irecci+n o no#(re &e nuestro ser$i&or con: htt:!!2>6.2=.;.292!ser$erstatus si nuestra &irecci+n fuera esa. #o&info no $iene acti$a&o or &efecto sudo a2enmod in!o
o&e#os consu"tar o #o&ificar su configuraci+n
Sergio Cuesta Vicente %% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
gedit 5etc5apache25mods-enabled5in!o.con!
Esta infor#aci+n se ue&e consu"tar en htt:!!2>6.2=.;.292!ser$erinfo #o&ifican&o "a &irecci+n IP or "a tua o e" no#(re &e tu ser$i&or. 4ecuer&a *ue ara o&er usar "os ca#(ios en "a configuraci+n ha *ue reiniciar e" ser$i&or.
Consu"ta "os &os archi$os &e configuraci+n asocia&os a" #+&u"o status. Estu&ia ara *uH se uti"i@an "as &irecti$as *ue se e)ecutan en caso &e *ue se cargue e" #+&u"o co#Hnta"o en c"ase. ?a(i"ita a#(os #+&u"os er#ite *ue se consu"ten &es&e "a #'*uina anfitri+n. Prue(a e" #+&u"o #o&status. Co#rue(a *ue funciona acti$a "a oci+n *ue #uestra e" esta&o eten&i&o. Acti$a e" #+&u"o #o&info co#rue(a *ue funciona. A,a&e a "a infor#aci+n est'n&ar infor#aci+n so(re e" #+&u"o #o&status. Prue(a a consu"tar a#(as 'ginas &e infor#aci+n echa un $ista@o a *uH infor#aci+n se ue&e o(tener.
Sergio Cuesta Vicente %2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Directorios personales de usuarios En &eter#ina&as circunstancias For e)e#"o una instituci+n e&ucati$a co#o un instituto o una uni$ersi&a& es ti" *ue ca&a usuario tenga un &irectorio en e" *ue ue&a crear su roio con)unto &e 'ginas 7e(. Si e" n#ero &e usuarios es gran&e/ esto ue&e cargar innecesaria#ente &e tra(a)o a" ainistra&or &e" ser$i&or. Aache ofrece una a"ternati$a auto#ati@a&a ara esta situaci+n #e&iante e" #+&u"o mod?userdir . Si acti$a#os e" #+&u"o For &efecto no $iene acti$o ca&a usuario ten&r' un esacio a" *ue se acce&er' #e&iante "a U4L htt:!!sitioe)e#"o.co#!^no#(reusuario &on&e no#(reusuario ser' e" no#(re *ue tiene en e" ser$i&or Linu. En "a &istri(uci+n *ue usa#os a eiste en modsGa(ailable/ una configuraci+n ara este #+&u"o as *ue en "a e"icaci+n &e "a siguiente &irecti$a no es necesario escri(ir"o. OG!*odule mod8userdir.cP @ser&ir public8html @ser&ir disabled root O&irectory 5home5:5public8htmlP #llo<'erride MileGn!o #uth0on!ig +imit Gndexes
Sergio Cuesta Vicente %3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
;serDir In&ica si se &e(e er#itir *ue ca&a usuario &e nuestro siste#a tenga su roia careta ersona" en e" ser$i&or 7e( esta("ece cu'" ser' "a ruta &es&e e" ser$i&or ara acce&er a &icha careta. Esto tiene senti&o or e)e#"o si se #onta un ser$i&or Aache en un instituto ca&a rofesor tiene su roio usuario. Para *ue ca&a uno tenga su roia 7e( ersona" se ue&e acti$ar esta oci+n. @ser&ir public8html
Es "a oci+n #'s frecuente a *ue creara en nuestro ser$i&or rutas ara ca&a usuario. Si or e)e#"o ha un usuario Sergio otro 1aria ten&ra#os "as rutas: .ser'idordeprueba.es5Hergio .ser'idordeprueba.es5H*aria
ca&a usuario ten&ra en su careta ersona" un su(&irectorio u("icht#" ara u("icar "o *ue *uisiera. Co#o se ue&e $er e" argu#ento &etr's &e serDir in&ica c+#o se ""a#ar' ese su(&irectorio. @ser&ir disable
Es "a oci+n or &efecto hace *ue "os usuarios no tengan su roio esacio. En caso &e acti$ar "os &irectorios &e usuarios se reco#ien&a &esha(i"itar e" &e root @serdir disabled root
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ca&a usuario ue&e crear ahora en su careta ersona" un &irectorio public?html &on&e u(icar sus 'ginas. A*u se e"ica en #'s &eta""e c+#o se uti"i@a "a careta ersona". No se acti$a esta oci+n ara e" usuario root .
Este tio &e configuraci+n se ha uti"i@a&o #ucho or e)e#"o en uni$ersi&a&es &on&e ca&a rofesor tena una 'gina 7e( &isoni("e so"o con tener un usuario. -o&a$a no ue&es ro(ar "a configuraci+n &e esta &irecti$a en tu ser$i&or/ ero s "eer "a &ocu#entaci+n &e "a &irecti$a Q5uH usuarios tienen ahora careta ersona"R La ruta or &efecto a "a careta ersona" no es #u f'ci" &e escri(ir con un tec"a&o en #uchos ases/ Qc+#o "a ca#(iarasR -enien&o en cuenta un ser$i&or re#oto/ Q*uH incon$eniente $es a esta for#a &e funcionarR Si tu$ieras *ue "antear a"guna funciona"i&a& si#i"ar en "a actua"i&a&/ Qc+#o "o harasR
En "a &ocu#entaci+n &e" #+&u"o ue&es o(ser$ar *ue e" &irectorio en e" *ue ca&a usuario o&r' crear sus 'ginas es a"ta#ente configura("e.
Acti$a e" #+&u"o #o&user&ir crea una careta ara e" usuario con e" *ue insta"aste Linu. Dentro &e "a careta crea un archi$o rue(a.ht#" configura e" #+&u"o ara *ue a" acce&er a "a careta ersona" &e" usuario &es&e un na$ega&or 7e( se #uestre &icho archi$o or &efecto. Por "ti#o &esacti$a e" #+&u"o.
Sergio Cuesta Vicente %0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
4l m#dulo 9,94 Los tios 1I1E sir$en ara i&entificar tios &e archi$os. Este #+&u"o se usa ara e""o a"gunas otras cosas. Eiste una configuraci+n a hecha en mime.con6 . +3pesConfig In&ica &+n&e estar' e" archi$e *ue &escri(e "os tios 1I1E F#i#e.tes o su e*ui$a"ente si "o he#os ca#(ia&o. No ha #uchas ra@ones ara e""o/ or "o *ue &e(era#os &e)ar e" $a"or or &efecto. "ypes0on!ig con!5mime.types
Default+3pe Esta("ece e" tio 1I1E ara to&os a*ue""os archi$os a "os *ue no se "es ue&a asignar uno #e&iante su etensi+n/ etc. Si tene#os un ser$i&or &on&e "a #aora &e" conteni&o son 'ginas ?-1L/ J1L/ etc es (uena i&ea usar e" $a"or or &efecto/ ero si "a #aora &e" conteni&o son archi$os (inarios Ffotografas/ rogra#as/ etc sera con$eniente esta("ecer application/octetGstream. &e!ault"ype text5plain
Se ue&e esecificar #'s: &e!ault"ype text5html
Sergio Cuesta Vicente %7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
In$estiga en Internet *uH son "os tios 1I1E cu'"es ha. Q5uH organis#o se encarga &e gestionar"osR QDe *uH otras cosas se encargaR
#dd=ncoding Esecifica un tio articu"ar &e co&ificaci+n ara &eter#ina&as etensiones &e archi$os. -a#(iHn se ue&e usar Add4ncoding ara in&icar a "os na$ega&ores *ue &esco#ri#an ciertos archi$os #ientras "os &escargan: #ddFncoding x-compress T #ddFncoding x-gSip gS
#dd:anguage Sir$e ara asociar etensiones a i&io#as &eter#ina&os ara e" conteni&o. Esta &irectri@ es ti" ara "a negociaci+n &e conteni&os entre e" ser$i&or e" na$ega&or 7e( &e" c"iente a *ue Aache ue&e &e$o"$er conteni&os en &iferentes i&io#as &een&ien&o &e "a configuraci+n &e" i&io#a &e" na$ega&or We(. Es ti" so(re to&o en "os casos en "os *ue tene#os e" sitio escrito en $arios i&io#as a *ue er#itir' *ue Aache sir$a "a a&ecua&a en ca&a caso en funci+n &e "a configuraci+n &e" na$ega&or &e" c"iente. Esto se rea"i@a &e for#a transarente ara e" usuario fina".
Los c+&igos &e i&io#as se &efinen en "a esecificaci+n ISO 0>. 1's concreta#ente en "a ISO 0>2 "os c+&igos &e &os "etras en "a ISO 0>6 "os &e tres "etras *ue inc"uen #'s i&io#as.
&an]s /daA - $oland]s /nlA - Gngl]s /enA - Fstonio /etA Mranc]s /!rA - #lem^n /deA ? Lriego *oderno /elA Gtaliano /itA - Noruego /noA - =oreano /krA %ortugu]s /ptA - +uxemburgu]s/ltSA
Sergio Cuesta Vicente %+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Fspa_ol /esA - ueco /s'A - 0heco/cSA %olaco /plA - %ortugu]s de Irasil /pt-brA - Bapon]s /CaA Euso /ruA - 0roata /hrA #dd+anguage es .es #dd+anguage da .dk #dd+anguage nl .nl #dd+anguage en .en #dd+anguage et .et #dd+anguage !r .!r #dd+anguage de .de #dd+anguage el .el #dd+anguage it .it #dd+anguage Ca .Ca #dd+anguage pl .po #dd+anguage kr .kr #dd+anguage pt .pt #dd+anguage no .no #dd+anguage pt-br .pt-br #dd+anguage ltS .ltS #dd+anguage s' .se #dd+anguage cS .cS #dd+anguage ru .ru #dd+anguage t .t #dd+anguage hr .hr
-en en cuenta *ue e" in&ica&or &e" i&io#a no tiene or *uH ser i&Hntico a" sufi)o co#o se $e en $arios &e "os e)e#"os. #ddC"arset Es igua" *ue Add=anguage ero ara a,a&ir nue$os )uegos &e caracteres.
Sergio Cuesta Vicente %8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
#dd0harset G<-77(-1 .iso77(-1 .latin1 #dd0harset G<-77(-2 .iso77(-2 .latin2 .cen
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
?osts $irtua"es Aache ue&e ser$ir $arios sitios 7e( &es&e un nico ser$i&or 7e(. E" c"iente nunca &iferenciar' si son sitios en ser$i&ores &iferentes o en "a #is#a #'*uina. Aache es un ser$i&or #u otente ara "a uti"i@aci+n &e esta oci+n. Si or e)e#"o so#os "os gestores &e &os &o#inios DNS F 777."ae#resa.es 777.#iagina.es o&e#os a"o)ar a#(os sitios en e" #is#o ser$i&or Aache. Uno &e estos &o#inios se consi&erar' e" sitio rincia" to&os "os &e#'s ser'n "os hosts $irtua"es. Venta)as: 2. Aro$echar e" har&7are eistente. 6. Aro$echar "as &irecciones IP ("icas &isoni("es. Una gran $enta)a en e" uso &e hosts $irtua"es en Aache es *ue permite "eredar "a configuraci+n &e" sitio rincia" or "o *ue no ha(r' *ue reconfigurar to&as "as &irecti$as/ so"o "as *ue ca#(ien. A" igua" *ue asa(a con "os #+&u"os/ eisten &os &irectorios ara contener "os sitios $irtua"es/ uno ara "os &isoni("es otro ara "os acti$os: /etc/apache2/sitesGa(ailable /etc/apache2/sitesGenabled resecti$a#ente. E" segun&o contiene en"aces si#(+"icos a "os sitios &e" ri#ero *ue estHn acti$os. Esta &ocu#entaci+n se (asa a en "a $ersi+n 6.< &e aache/ ero co#o au&a a "os *ue haan usa&o "a $ersi+n 6.6 o se encuentren sitios 7e( configura&os con &icha $ersi+n/ &e)o a*u unas in&icaciones &e "os ca#(ios a rea"i@ar. 4ea"#ente ninguno es &irecta#ente &e Virtua" ?osts/ sino *ue son &irecti$as genera"es *ue sue"en usarse en este '#(ito.
Sitio por de6ecto La configuraci+n &e" ser$i&or $irtua" or &efecto se ue&e consu"tar Sergio Cuesta Vicente %% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
gedit 5etc5apache25sites-a'ailable5-de!ault.con!
"o *ue nos #ostrar' OJirtual$ost :7P "he er'erName directi'e sets the request scheme, hostname and port that the ser'er uses to identi!y itsel!. "his is used hen creating redirection @E+s. Gn the context o! 'irtual hosts, the er'erName speci!ies hat hostname must appear in the requestQs $ost header to match this 'irtual host. Mor the de!ault 'irtual host /this !ileA this 'alue is not decisi'e as it is used as a last resort host regardless. $oe'er, you must set it !or any !urther 'irtual host explicitly. er'erName .example.com er'er#dmin ebmasterWlocalhost &ocumentEoot 5'ar55html #'ailable logle'els trace7, ..., trace1, debug, in!o, notice, arn, error, crit, alert, emerg. Gt is also possible to con!igure the logle'el !or particular modules, e.g. +og+e'el in!o sslarn Frror+og K`#%#0$F8+
Mor most con!iguration !iles !rom con!-a'ailable5, hich are enabled or disabled at a global le'el, it is possible to include a line !or only one particular 'irtual host. Mor example the !olloing line enables the 0LG con!iguration !or this host only
Sergio Cuesta Vicente %%% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
a!ter it has been globally disabled ith Da2discon!D. Gnclude con!-a'ailable5ser'e-cgi-bin.con! O5Jirtual$ostP
Po&e#os co#ro(ar *ue en e" &irectorio &e sitios acti$os se encuentra un archi$o Gde6ault *ue es e" en"ace si#(+"ico a" sitio or &efecto.
Estu&ia co#enta en c"ase "as &irecti$as inc"ui&as en "a configuraci+n &e" sitio $irtua" or &efecto.
En e" archi$o o&e#os o(ser$ar *ue e" &irectorio ra@ es /(ar/$$$/html "a configuraci+n *ue tiene e" &irectorio. -en en cuenta *ue es necesario reiniciar Aache ara *ue "os ca#(ios en "a configuraci+n surtan efecto. Nota: hasta "a $ersi+n 6.6 e" &irectorio or &efecto era /(ar/$$$ &icha ruta sigue sien&o #u ha(itua". Sin e#(argo en e" archi$o &e configuraci+n rincia" &e Aache/ aache6.conf/ nos encontra#os: O&irectory 5'ar55html5P
Un &irectorio here&a "as &irecti$as &e" suerior si no se so(rescri(en. Por e""o/ to&os "os &irectorios *ue cree#os &entro &e /(ar/$$$/ ten&r'n "a #is#a configuraci+n *ue e" ra@ eceto en a*ue""as &irecti$as *ue esecifi*ue#os en "a configuraci+n roia &e" &irectorio.
Sergio Cuesta Vicente %%2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Va#os a #o&ificar "a configuraci+n &e" sitio or &efecto. Crea un archi$o DAW.html en e" &irectorio ra@ con tu no#(re tus &atos. Ahora *uere#os *ue e" n&ice o 'gina rincia" &e" &irectorio sea "a *ue aca(as &e crear. Q5uH &irecti$a &e(es a,a&irR QEs osi("e esta("ecer #'s &e una 'gina rincia"R En caso afir#ati$o/ Qcu'" se cargar' si acce&e#os a" sitio sin esecificar 'ginaR Q5uH suce&e si no ha ninguna &e "as 'ginas esta("eci&as co#o 'gina rincia"R Busca una &irecti$a *ue &esha(i"ite e" "ista&o &e archi$os inc"uso si no encuentra ninguna &e "as 'ginas or &efecto. Crea un nue$o &irectorio &entro &e" &irectorio ra@. E" no#(re &e" &irectorio ser' tu ae""i&o. Crea $arios archi$os ht#" ero no esta("e@cas ninguno co#o e" rincia". Acce&e a" &irectorio &es&e un na$ega&or. Ahora #o&ifica "a configuraci+n &e" &irectorio ara *ue "iste e" conteni&o. Q5uH suce&eR Esta("ece uno &e "os archi$os co#o e" rincia" ara e" &irectorio $ue"$e a ro(ar. 4ecuer&a *ue &esuHs &e ca&a ca#(io en "a configuraci+n es necesario reiniciar Aache.
Co#o a &e(es ha(er $isto en "a r'ctica/ ara &esha(i"itar e" "ista&o &e "os conteni&os &e un ser$i&or/ host $irtua" o &irectorio se usa
Si *uieres acti$ar"o ara un ser$i&or/ &irectorio o host $irtua" se uti"i@a
La oci+n &e seguir "os en"aces no es o("igatoria ero se sue"e a,a&ir.
Sergio Cuesta Vicente %%3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-en en cuenta *ue ha *ue #irar *ue "a configuraci+n no estH so(rescrita en "a configuraci+n &e" host $irtua" or &efecto o &e a"gn &irectorio en articu"ar. Lo *ue &e(e hacerse en estos casos es una co#ro(aci+n &e "a &irecti$a &e "o articu"ar a "o genera": &irectorios/ host $irtua" ser$i&or.
9odi6icando los mensa@es de error La &irecti$a 4rrorDocument sir$e ara esta("ecer #ensa)es &e error ersona"i@a&os ara &iferentes situaciones. Los c+&igos &e error *ue ue&en uti"i@arse son "os &efini&os or "a organi@aci+n 70 ara e" rotoco"o htt en este caso "a $ersi+n 2.2 se ue&en consu"tar a*u. En esta otra 'gina se e"ican &e una #anera #'s co#rensi("e. -en en cuenta *ue e" c+&igo es so"o e" "ti#o n#ero &e ca&a aarta&o tiene tres cifras. Esta &irecti$a se usar' tantas $eces co#o se crea necesario. Se esta("ece &e #anera in&een&iente para cada sitio virtual se sue"e escri(ir &e(a)o &e Custom=og. En e" aarta&o anterior he#os $isto *ue se usa una $aria("e &e entorno ""a#a&a A
H?D, ara &eter#inar e" &irectorio &on&e se u(icar'n "os archi$os &e "og. En esta insta"aci+n es /(ar/log/apache2/ ero si no o&e#os (uscar "os archi$os en "a estructura &e &irectorios o consu"tar e" $a"or &e "a $aria("e &e entorno.
Esta("ece acciones ersona"i@a&as ara e" error <9<. Pri#ero re&irige "as consu"tas a 'ginas no encontra&as a "a 'gina rincia" &e" sitio. Luego rue(a a re&irigir estos errores a "a 'gina rincia" &e" instituto. En "a tercera rue(a &e(es #ostrar un #ensa)e &irecta#ente *ue &iga 'gina no encontra&a/ consu"te a No#(re Ae""i&o con tu no#(re ae""i&o. Por "ti#o crea un archi$o ht#" *ue e"i*ue e" error ha@ *ue se #uestre si se &a e" caso. Consu"ta "a "ista &e errores &efini&os aunta "os *ue creas #'s ti"es. Co#Hnta"os en c"ase.
Sergio Cuesta Vicente %% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Alias a otros directorios Por &efecto "a estructura &e un sitio 7e( ser' "a *ue &e#os a "os &irectorios &es&e e" unto &e #onta)e &e" &irectorio ra@ &e" sitio/ sin e#(argo es osi("e inc"uir otros &irectorios &e" 'r(o" &e nuestro ser$i&or hacer *ue are@can arte &e" sitio co#o cua"*uier otra careta *ue estH conteni&a fsica#ente &entro. Es a"go si#i"ar a tener un en"ace si#(+"ico a archi$os o caretas en otro &irectorio. En e" archi$o &e configuraci+n &e" sitio rincia" $isto antes a eiste un a"ias a un &irectorio *ue se encuentra fuera &e " a careta &efini&a ara e" sitio. Para rea"i@ar esta oeraci+n se uti"i@a "a &irecti$a Alias )usto &e(a)o Fno es o("igatorio ero s una (uena r'ctica se configura con "a &irecti$a Director' co#o cua"*uier otro &irectorio. En "a gua r'i&a &e &irecti$as/ se ue&en a"icar a &irectorios to&as "as *ue ""e$an & en "a tercera co"u#na.
Crea un &irectorio !$ar!etras co"oca &entro una 'gina ?-1L *ue te er#ita &iferenciar"a &e "as &e#'s. Configura e" &irectorio ara *ue aare@ca co#o !etras en nuestro sitio 7e( a"ica "as &irecti$as &e &irectorio *ue consi&eres i#ortantes.
edirecciones A"gunas $eces es ti" o&er re&irigir "as ""a#a&as a una &irecci+n 7e( ara *ue se rocesen en otro unto. Por e)e#"o si he#os ca#(ia&o "a estructura &e nuestro sitio he#os reu(ica&o "a 'gina &e contacto o&e#os *uerer *ue "os usuarios *ue acce&an #e&iante "a antigua &irecci+n sean re&irigi&os auto#'tica#ente a "a nue$a. -a#(iHn ue&e ser ti" si he#os &i$i&i&o nuestro sitio ara faci"itar "a gesti+n o e" #anteni#iento.
Sergio Cuesta Vicente %%0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Para e""o se usa "a &irecti$a edirect *ue nos er#ite asociar una &irecci+n a(so"uta o re"ati$a a otra.
Crea una re&irecci+n en e" sitio rincia" &e" ser$i&or ara *ue en caso &e *ue a"guien *uiera acce&er a !aficiones se re&iri)a a una 'gina *ue $isites #u a #enu&o. Crea ahora una re&irecci+n *ue en e" caso &e a"guien *uiera acce&er a !et se "e #uestre e" conteni&o &e !etras *ue creaste en e" unto anterior.
Creaci#n de hosts (irtuales Eisten tres for#as &iferentes &e crear hosts $irtua"es en Aache: 2. Basa&os en nombres: Este tio es "a oci+n #'s co#n. Se configura to&o ara *ue #"ti"es &o#inios DNS aunten a una nica #'*uina con Aache. 4e*uiere configuraci+n &e" ser$i&or DNS ara *ue funcione. Este #Hto&o hace #u f'ci" #igrar nuestro ser$i&or a otra &irecci+n IP. Es e" Anico mtodo %ue vamos a estudiar. 6. Basa&os en &P: En este #Hto&o se necesita configurar "as &irecciones IP &e ca&a sitio en Aache. E" ser$i&or fsico ten&r' $arias &irecciones IP/ una ara ca&a sitio. 0. Basa&os en puertos. Ca&a sitio se aten&er' en "a #is#a IP o no#(re ero en &istintos uertos. Es una etensi+n &e cua"*uiera &e "as a"ternati$as anteriores. <. Varios servidores principales: En esta oci+n se #antienen $arias configuraciones rincia"es en e" ser$i&or. So"o se reco#ien&a su uso si es necesario tener un archi$o &e configuraci+n &iferente ara ca&a sitio. Aenas se usa es "a oci+n #enos reco#en&a&a ara configurar nuestro ser$i&or. E" uso &e estas a"ternati$as no es ec"uente. Pue&en co#(inarse $arias o to&as en e" #is#o ser$i&or Aache.
Sergio Cuesta Vicente %%7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En esta &irecci+n est' "a &ocu#entaci+n so(re hosts $irtua"es &e aache. En esta otra se ue&en $er e)e#"os &e configuraci+n.
Estu&ia co#enta en c"ase "os ri#eros e)e#"os &e" en"ace anterior. CHntrate so"o en "os ri#eros/ *ue tratan &e "os tios "ista&os anterior#ente.
Las &irecti$as necesarias ara crear hosts $irtua"es se encuentran en e" #+&u"o core &e Aache or "o *ue no es necesario acti$ar ningn #+&u"o. Para usar estos #Hto&os es necesario o&er hacer *ue to&os "os no#(res &e &o#inio asocia&os a "os hosts $irtua"es *ue $a#os a crear aunten a "a &irecci+n IP o "as &irecciones IP &e nuestro ser$i&or 7e(. Si he#os contrata&o un no#(re &e &o#inio con un ro$ee&or Hste nos roorcionar' "a #anera &e hacer"o. En caso &e *ue tenga#os o *uera#os u("icar nuestros roios sitios &e(e#os configurar un ser$i&or DNS. En "os aHn&ices encontrar's una #anera #u si#"e &e configurar DNS en nuestro ser$i&or. Otra oci+n ara ro(ar"o es e&itan&o e" archi$o hosts sudo gedit 5etc5hosts
en H" a,a&ir "os a"ias necesarios. Los sitios $irtua"es uti"i@an una estructura &e &irectorios si#i"ar a "a *ue he#os $isto ara "os #+&u"os. En 5etc5apache25sites-a'ailable5
Sergio Cuesta Vicente %%+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Encontra#os "os sitios &isoni("es/ *ue a" ser acti$a&os crean un a"ias en 5etc5apache25sites-enabled5
>osts virtuales basados en nombres Este #Hto&o es e" #'s reco#en&a&o a *ue re*uiere una nica &irecci+n IP ara o&er a"o)ar #"ti"es sitios. Po&e#os $er "a &ocu#entaci+n esecfica &e Aache. *+# =n #pac"e, "asta la versión 2.2 era necesario aadir lo siguiente.
Po&e#os co#ro(ar *ue en e" archi$o /etc/apache2/ports.con6 se encuentra "a &irecti$a NameJirtual$ost :7
Esta &irecti$a es "a necesaria ara o&er usar "os hosts $irtua"es (asa&os en no#(res. A" acti$arse &esha(i"ita e" ser$i&or rincia" Fe" *ue ha(a#os usa&o en "a insta"aci+n #anua" or e""o en este tio &e insta"aci+n e" ser$i&or $irtua" es rea"#ente un sitio $irtua" or &efecto. En caso &e reci(ir un error Apache2 NameVirtualHost *:80 has no VirtualHosts sue"e ser or*ue has uesto "a &irecti$a Na#eVirtua"?ost en a#(os archi$os &e configuraci+n &e "os sitios. A" o&er ser una &irecti$a &e ser$i&or/ con oner"a en e" httpd.con6 $a"e. 4& *+#.
E" ri#er aso es crear "os registros DNS ara *ue e" no#(re &e &o#inio aunte a nuestra #'*uina o a,a&ir"os en e" fichero hosts. De(e#os crear un &irectorio ara ca&a sitio as tener "os &ocu#entos seara&os. A&e#'s ha(ra *ue crear un archi$o inde.html en e" &irectorio ara *ue "o cargue a" consu"tar e" sitio.
Sergio Cuesta Vicente %%8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mkdir 5'ar55eCemplo2.es
En este unto o&e#os acce&er a "os &atos &e e)e#"o6 #e&iante "a &irecci+n htt:!!"oca"host!e)e#"o6.es! ero nuestro o()eti$o es o&er hacer"o escri(ien&o htt:!!e)e#"o6.es! Lo tercero *ue &e(era#os hacer es escri(ir "os &atos &e" nue$o host $irtua" en "a configuraci+n &e Aache. 4ecuer&o *ue he#os $isto &os casos &iferentes &e &+n&e se encontra(a "a configuraci+n &e Aache/ ero con "a oci+n *ue esta#os usan&o actua"#ente "a configuraci+n rincia" esta(a en e" archi$o /etc/apache2/apache2.con6 &es&e H" se i#orta(an otros #uchos. Po&e#os $er *ue se i#orta una careta co#"eta &e "a *ue coge "a configuraci+n &e "os hosts $irtua"es. X Gnclude the 'irtual host con!igurations Gnclude sites-enabled5 X
Sin e#(argo/ antes &e hacer esto &e(e#os crear e" host $irtua" en "a careta &e hosts &isoni("es "o acti$are#os cuan&o estH ter#ina&o. La careta en "a *ue o&e#os a,a&ir "os &atos &e nuestros hosts $irtua"es es /etc/apache2/sitesGa(ailable Si $a#os a "a careta *ue nos in&ican o&e#os consu"tar e" archi$o &e "a configuraci+n &e un host $irtua"/ e" sitio or &efecto. Esto ue&e ser$irnos e)e#"o gua ara crear otros. Crea#os e" archi$o &e configuraci+n sudo gedit 5etc5apache25sites-a'ailable5eCemplo2.es
escri(i#os "o siguiente
Sergio Cuesta Vicente %% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
OJirtual$ost 1..2.1(7P er'erName eCemplo2.es er'er#lias .eCemplo2.es er'er#dmin alguienWeCemplo2.es &ocumentEoot 5'ar55eCemplo2.es #qui pueden ir otras directi'as. %or de!ecto hereda las del archi'o principal. O5Jirtual$ostP
Entre to&as "as &irecti$as *ue se ue&en inc"uir son esecia"#ente ti"es "as referentes a directorios a *ue si e" sitio consta &e $arios F"o #'s ha(itua" ue&e interesarnos tener configuraciones &iferentes ara ca&a uno. -a#(iHn es ha(itua" configurar registros &e error in&een&ientes ara ca&a sitio #e&iante "a &irecti$a a&ecua&a. Esto se hace &entro &e "a configuraci+n &e ca&a sitio $irtua" &e)an&o e" rincia" ara e" ser$i&or en si. a $i#os *ue en e" sitio or &efecto se inc"uan. Frror+og K`#%#0$F8+
Pero or suuesto &e(e#os dar otros nombres a nuestros registros ara *ue no se usen "os #is#os. Es (uena i&ea revisar la configuración del sitio principal ara hacernos una i&ea &e *uH configurar a *ue en e" e)e#"o anterior he re&uci&o "as &irecti$as a" #ni#o. Si en "ugar &e "a &irecci+n IP escri(i#os _ se rea"i@ar' ara to&as "as IP *ue tenga "a #'*uina.
Sergio Cuesta Vicente %2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En "os &os casos en "os *ue he#os escrito "a &irecci+n IP e" uerto o&ra#os ha(er uesto un asterisco F_ en "ugar &e "a &irecci+n ero se estara#os in&ican&o a Aache *ue escuche to&as "as eticiones "o *ue o&ra generar conf"ictos. Sie#re es referi("e concretar "os &atos. Ahora a he#os configura&o e" nue$o host as *ue o&e#os acti$ar"o. sudo a2ensite eCemplo2.es
recargar "os sitios &e Aache ser'ice apache2 reload
si a" hacer"o nos &a e" error : Eeloading eb ser'er con!ig apache2 apache2 0ould not reliably determine the ser'erQs !ully quali!ied domain name, using 126..1.1 !or er'erName
De(e#os a(rir e" archi$o httpd.con6 a,a&ir er'erName +ocal$ost
O e" no#(re co#"eto &e nuestro ser$i&or. a o&e#os acce&er a nuestro &ocu#ento #e&iante 777.e)e#"o6.es
Sergio Cuesta Vicente %2% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Para &esacti$ar un sitio $irtua" se hace con For e)e#"o ara &esacti$ar e" sitio or &efecto. sudo a2dissite de!ault
Crea un nue$o host $irtua" (asa&o en no#(re rue(a *ue to&o sea correcto. Crea otro $er's *ue ahora tienes "a osi(i"i&a& &e acce&er a tres sitios en "a #is#a #'*uina. ?a@ "a asociaci+n #e&iante e" archi$o hosts &e Linu. Posterior#ente e"i#inare#os "a entra&a &e" archi$o hosts rea"i@a "a asociaci+n #e&iante un ser$i&or DNS. Por "ti#o &esacti$a e" sitio $irtua". Para esta r'ctica $as a necesitar configurar tu ser$i&or DNS. En "os aHn&ices e"ico c+#o.
Sergio Cuesta Vicente %22 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Contro" &e acceso En este unto co#en@a#os con $arios asectos re"aciona&os con "a seguri&a& &e nuestro ser$i&or 7e(. Con este ri#er aarta&o $a#os a consi&erar "os asectos *ue nos $an a er#itir fi"trar e" acceso a &eter#ina&os recursos. E" contro" &e acceso se refiere a cua"*uier #Hto&o *ue nos er#ita fi"trar e" acceso a a"gn recurso &eter#ina&o. ?a rincia"#ente &os #+&u"os i#"ica&os en e" contro" &e acceso en Aache: #o&authcore #o&auth@host aun*ue ara cu(rir to&os "os asectos se usan ta#(iHn #o&seten$if #o&re7rite. -a#(iHn eisten tres #Hto&os ara gestionar e" contro" &e acceso re"aciona&os con estos #+&u"os. E" contro" &e acceso est' nti#a#ente re"aciona&o con "a autori@aci+n autenticaci+n *ue $ere#os en e" siguiente unto.
Control de acceso basado en la direcci#n Este tio &e contro" se (asa en e" uso &e" #+&u"o #o&auth@host en "as &irecciones IP &e "as #'*uinas *ue *uieran acce&er a nuestro ser$i&or. Po&e#os co#ro(ar *ue estH #+&u"o a est' acti$o en nuestra insta"aci+n &e hecho a he#os usa&o anterior#ente este tio &e contro" &e acceso ara er#itir acce&er a artes &e nuestro ser$i&or &es&e "a #'*uina anfitri+n en "as r'cticas. a co#enta#os a" rinciio &e" te#a *ue este ara este caso "as &irecti$as *ue se uti"i@a(an "asta la versión 2.2 eran Allo$ Den' . Genera"#ente $an asocia&as con otra/ >rder . Sin e#(argo actua"#ente to&o se ""e$a a ca(o con "a &irecti$a e1uire. En "a roia &ocu#entaci+n o&e#os encontrar #uchos e)e#"os &iferentes usos ero este ca#(io ha si#"ifica&o enor#e#ente "a tarea. Sin e#(argo &e(e#os centrarnos ri#ero en co#ren&er c+#o funciona "a &irecti$a &e for#a #'s genHrica estu&ian&o "a &ocu#entaci+n &e" #+&u"o #othauthcore.
Sergio Cuesta Vicente %23 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-en en cuenta *ue "a #is#a &irecti$a nos sir$e ara er#itir o &enegar acceso #e&iante e" uso &e granted o denied .
In$estiga c+#o se ue&e fi"trar un &o#inio entero un rango &e &irecciones IP en "ugar &e #'*uinas sue"tas. Qes osi("e fi"trar &irecciones con una #'scara *ue no sea #"ti"o &e =R Qc+#oR QPara *uH sir$en "os contene&oresR Estu&ia 4e*uireA""/ 4e*uireAn 4e*uireNone. Crea un &irectorio con tu no#(re en e" sitio or &efecto. Per#ite e" acceso &es&e "a #'*uina anfitri+n ero &eniHga"o &es&e "a #'*uina en "a *ue se encuentra e" ser$i&or.
-en en cuenta *ue estas &irecti$as no son ec"usi$as &e "os &irectorios. Pue&en a"icarse a" sitio 7e( co#"eto or e)e#"o. Para e""o ir'n e" "a configuraci+n genera" &e" sitio no &entro &e unas eti*uetas Director' .
Control de acceso por (ariable de entorno Este tio &e contro" &e acceso se rea"i@a #e&iante e" uso &e "os #+&u"os #o&auth@host #o&seten$if. Se (asa en er#itir e" acceso segn "a configuraci+n &e a"guna $aria("e &e entorno &e "a #'*uina &e" usuario or e""o no es #u reco#en&a("e.
Sergio Cuesta Vicente %2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Control de acceso con el m#dulo re$rite 1e&iante e" uso &e" #+&u"o #o&re7rite o&e#os contro"ar e" acceso segn criterios ar(itrarios. Por e)e#"o si *uere#os &enegar e" acceso &urante e" erio&o &e "as ocho &e "a tar&e a "as &e "a #a,ana/ escri(ire#os EeriteFngine Eerite0ond `"G*F8$<@E O6 EeriteEule Y5!ridge - ;M>
E" uso &e este #Hto&o se (asa en "as &irecti$as 4e7riteCon& 4e7rite4u"e ero *ue&a fuera &e" a"cance &e este curso se in&ica so"o co#o intro&ucci+n a "as osi(i"i&a&es *ue er#ite.
Sergio Cuesta Vicente %20 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Autenticaci+n autori@aci+n Estos &os tHr#inos $an "iga&os ero no son "o #is#o a esar &e *ue #ucha gente "os confun&e. La autenticaci+n consiste en co#ro(ar *ue a"guien es *uien &ice ser #ientras *ue "a autori@aci+n es co#ro(ar *ue a"guien tiene er#iso ara acce&er a un "ugar o recurso &eter#ina&o. Por e)e#"o/ si *uieres $ia)ar a" etran)ero Ffuera &e "os ases *ue ha fir#a&o e" Acuer&o &e Schengen necesitas un asaorte un $isa&o. E" asaorte es un &ocu#ento genera" *ue sir$e ara &e#ostrar *ue eres *uien &ices ser #ientras *ue e" $isa&o te autori@a a $isitar un as &eter#ina&o. En infor#'tica/ "a autenticaci+n ue&e &arnos acceso a &iferentes recursos ara "os *ue este#os autori@a&os/ e inc"uso estas autori@aciones ue&en $ariar &een&ien&o &e &iferentes circunstancias. Por e)e#"o/ o&e#os tener er#iso ara acce&er a &eter#ina&o recurso en una fran)a horaria &eter#ina&a o &es&e "a oficina &e tra(a)o ero no &es&e casa. E" roceso &e autori@aci+n sue"e i#"icar "a autenticaci+n. Por e)e#"o si un c"iente *uiere acce&er a &eter#ina&o recurso e" ser$i&or "e i&e *ue se autenti*ue F#e&iante un #ensa)e &e esta&o <92: Authoritation 4e*uire& or e)e#"o con una so"icitu& &e usuario contrase,a. Si esta autenticaci+n es ositi$a se er#itir' e" acceso si no se reson&er' con otro #ensa)e <92. Un ro("e#a &e esta for#a &e autenticaci+n es *ue "a contrase,a ni se encrita ni se ocu"ta/ or "o *ue #'s a&e"ante ha("are#os &e" rotoco"o https. Cua"*uiera con un sni66er o&ra intercetar "os no#(res &e usuario contrase,as. En Aache o&e#os centrarnos en "a &ocu#entaci+n so(re estos concetos. Va#os a ir viendo todo el enlace paso a paso enten&ien&o to&a "a infor#aci+n *ue nos roorcionan. Es esecia"#ente interesante e" aarta&o en e" *ue se rofun&i@a en e1uire.
Sergio Cuesta Vicente %27 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
E" co#an&o htpass$d es &e "os ri#eros *ue aarecen. In$estiga c+#o se usa *uH hace. Des&e esta $ersi+n &e Aache es necesario insta"ar"o aarte a *ue no est' inc"ui&o en "a insta"aci+n genera". su&o atget insta"" aache6uti"s
E" co#an&o ue&e encritar "as contrase,as &e #aneras &iferentes. En Aache &es&e "a $ersi+n 6.0 "a (ase &e autenticaci+n se ha centra"i@a&o en #o&authncore "a &e autori@aci+n en #o&auth@core. E" n#ero &e #+&u"os i#"ica&os rea"#ente es #ucho #aor/ ero se agruan en tres gran&es con)untos: Uno ara "a autenticaci+n/ otro ara "a autori@aci+n otro ara &eter#inar contra *uH siste#a se co#ro(ar'n "as cre&encia"es en "a autenticaci+n For e)e#"o un archi$o/ una (ase &e &atos/ etc.
=os m#dulos mod?auth ?core ' mod?auth?basic Estos #+&u"os nos er#ite rea"i@ar autori@aci+n &e una #anera (astante ('sica. Nos $an a er#itir esta("ecer acceso #e&iante usuario contrase,a a secciones &e nuestro sitio. B'sica#ente es "o *ue he#os co#enta&o en e" en"ace anterior. Por e)e#"o o&e#os esta("ecer un &irectorio a" *ue haa *ue acce&er con contrase,a. Po&e#os e"egir cua"*uier &irectorio sie#re *ue e" usuario *ue "an@a aache F&irecti$a ser tenga acceso a H". No es necesario *ue e" &irectorio estH en "a estructura ('sica &e nuestro sitio/ ero si no est' ten&re#os *ue esta("ecer un Alias. mkdir 5'ar55pri'ado mkdir 5'ar5secreto
Sergio Cuesta Vicente %2+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ahora a,a&i#os a" sitio en e" *ue *uera#os gestionar "a autenticaci+n gedit 5etc5apache25sites-a'ailable5-de!ault
"a configuraci+n ara e" &irectorio O&irectory D5'ar55pri'adoDP #uthName #cceso pri'ado GntroduSca su usuario y contrase_a #uth"ype Iasic #uth@serMile 5'ar5secreto5.miembros Eequire 'alid-user O5&irectoryP
• •
AuthFame "e in&ica a" usuario *uH hacer. Es un #ensa)e ara e" usuario. Auth'pe es e" tio &e autenticaci+n *ue usare#osM htt so"o aite Basic. La otra oci+n *ue eiste es Digest *ue a &iferencia &e "a oci+n asic no trans#ite "os no#(res &e usuario contrase,a co#o teto "ano F or "o tanto es una oci+n &e
seguri&a& #e)or ero *ue no est' &isoni("e ara to&os "os na$ega&ores We( co#o oci+n outofthe(o. E" cifra&o *ue usa "a oci+n Digest es (astante &H(i" or aun*ue su uso no es i&Hntico a" &e "a oci+n asic es (astante si#i"ar/ or "o *ue no "o $ere#os. Authser&ile es e" archi$o *ue se uti"i@ar' ara guar&ar "as contrase,as. In&ica "a ruta se ""a#ar' .#ie#(ros. e1uire esecifica *ue ser' necesario acce&er con un usuario $'"i&o. Ahora necesita#os crear e" archi$o &e contrase,as. • •
htpassd -c 5'ar5secreto5.miembros srsergio
Sergio Cuesta Vicente %28 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Don&e &e(er's esecificar "a ruta a "os e)ecuta("es &e aache si no es "a #is#a/ c es "a oci+n ara crear e" archi$o as *ue si $as a a,a&ir otro #ie#(ro &e(es *uitar"a. La ruta a" archi$o &e contrase,as &e(e ser "a #is#a esecifica&a ara "a configuraci+n &e" sitio srsergio ser' e" no#(re &e usuario *ue *uere#os crear. Nos e&ir' *ue cree#os una contrase,a. Po&e#os asegurarnos &e *ue se ha crea&o e" usuario a(rien&o e" archi$o. Date cuenta &e *ue "a contrase,a est' co&ifica&a. gedit 5'ar5secreto5.miembros
4einicia aache apachectl restart
Ahora a tienes una secci+n ara acceso so"o con usuario contrase,a. -en en cuenta *ue "a &e(i"i&a& &e "ttp en "a trans#isi+n &e "a infor#aci+n hace *ue este #Hto&o no sea seguro ero se ue&e so"ucionar usan&o "ttps co#o $ere#os #'s a&e"ante.
Crea una secci+n ri$a&a en tu sitio e intro&uce a"gunos archi$os ht#". Crea a" #enos &os usuarios *ue tengan acceso rue(a a acce&er tanto con e""os co#o con &atos no $'"i&os. Sie#re se ha("a &e *ue "a infor#aci+n *ue se trans#ite or Internet co#o teto "ano es #u f'ci" &e intercetar. QC+#o se hara esto es nuestra re& internaR Q5uH rogra#as necesitasR QSeras caa@ &e intercetar un usuario contrase,a en$ia&os or un usuario ara acce&er a "a secci+n ri$a&a crea&a en e" unto anteriorR
Sergio Cuesta Vicente %2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
A#"iaci+n: In$estiga c+#o se hara "o #is#o con "a oci+n Digest . Parece ser *ue Aache trae Digest &esacti$a&o or &efecto "o nico *ue hace es co&ificar ero no encritar "os &atos or "o *ue no #erece "a ena ni acti$ar"o.
=os 6icheros .htaccess Aun*ue "os he#os usa&o &e #anera intuiti$a/ es (uen #o#ento ara rofun&i@ar en "os archi$os &e configuraci+n &e Aache en "os *ue o&e#os usar &iferentes secciones. Las so"uciones $ista hasta ahora no son #u a&ecua&as si *uere#os o&er &e"egar "a creaci+n contro" &e @onas ri$a&as ara #ie#(ros &eter#ina&os. Esto ue&e ser #u ti" si or e)e#"o he#os #onta&o una 7e( ara una e#resa *ue tiene su roio ainistra&or &e siste#as a *ue e$itar' *ue tenga#os *ue gestionar to&o nosotros. -a#(iHn nos faci"itar' e" tra(a)o si ha #uchos ca#(ios en "as @onas ri$a&as o #ie#(ros *ue se conecten a e""as. Po&e#os conocer #'s so(re htaccess en este artcu"o. Otra 7e( nos intro&uce a a"gunos &e "os usos #'s co#unes &e estos archi$os con una segun&a arte. Para er#itir e" uso &e ficheros .htaccess en nuestro ser$i&or o sitio $irtua" F"a &irecti$a se ue&e usar en a#(os entornos "o ri#ero *ue &e(e#os hacer es #o&ificar e" archi$o &e configuraci+n. En #i caso $o a hacer"o en e" sitio $irtua" or &efecto. De(e#os #o&ificar "a &irecti$a #llo<'erride None
ca#(iar"a a
Sergio Cuesta Vicente %3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
#llo<'erride #uth0on!ig
E" "ugar en e" *ue #o&ificar "a &irecti$a &een&e &e "o *ue necesite#os. -en en cuenta *ue "as &irecti$as se here&an si no se encuentra otra #'s esecfica/ or e""o/ en nuestro archi$o &e configuraci+n &e" sitio $irtua" or &efecto &e(era ir en e" &irectorio !$ar!777 or "o #enos a *ue si "o one#os en e" ra@ ero no en e" ri#ero/ se #anten&ra "a configuraci+n anterior. O&irectory 5'ar55P
Lo *ue er#ite *ue #o&ifi*ue#os "as &irecti$as &e autori@aci+n #e&iante un fichero . htaccess. En #uchos sitios in&ican *ue ha *ue er#itir "a so(re escritura &e to&as "as &irecti$as #e&iante Allo$>(erride All ero es e$i&ente *ue es eor oci+n. Luego reinicia#os e" ser$i&or Aache apachectl restart
Ahora o&ra#os crear ficheros &irectorios configurar su contro" &e acceso en ca&a uno &e e""os. mkdir 5'ar55!icheros5 cd 5'ar55!icheros5
En ca&a &irectorio *ue *uere#os gestionar as &e(e#os crear un fichero . htaccess &ar"e un conteni&o si#i"ar a" siguiente.
Sergio Cuesta Vicente %3% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
#uthName eccin %ri'ada %rueba de .htaccess #uth"ype Iasic #uth@serMile 5'ar5secreto5.miembros Eequire 'alid-user
-en en cuenta *ue: •
•
• • •
Lo *ue he#os hecho ha si&o sacar "a configuraci+n &e" contro" &e acceso &e" archi$o &e configuraci+n &e" ser$i&or!sitio $irtua" a un archi$o in&een&iente. ?e usa&o e" #is#o archi$o &e usuarios contrase,as *ue en e" unto anterior ara &ar"e coherencia a "os e)e#"os/ ero esto no es necesario. Los usuarios sus contrase,as se crearan igua" *ue en e" aarta&o anterior. La creaci+n o #o&ificaci+n &e un fichero &e este tio no i#"ica reiniciar e" ser$i&or. Se &e(e #e)orar "a seguri&a& ca#(ian&o "os er#isos &e acceso a" fichero . htaccess. Por "o #enos e" usuario &e Aache &e(e tener acceso.
Crea &os &irectorios en tu sitio or &efecto configra"os ara *ue en e" ri#ero ue&an acce&er &os usuarios en e" segun&o so"o uno &e e""os. Para e""o en e1uire &e(e ir su no#(re &e usuario.
Agrupando usuarios para el control de acceso Si *uere#os refinar #'s e" contro" &e acceso tene#os $arias a"ternati$as. Por e)e#"o o&e#os er#itir e" acceso a so"o a"gunos usuarios esecifican&o sus no#(res en "a c"'usu"a e1uire en cua"*uier sitio *ue "a use#os.
Sergio Cuesta Vicente %32 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
require user sergio maria
Otra a"ternati$a es crear archi$os &e usuarios &iferentes ara &istintos &irectorios &e nuestro sitio. O&irectory D5'ar55'entasDP #uthName #cceso pri'ado GntroduSca su usuario y contrase_a #uth"ype Iasic #uth@serMile 5'ar5secreto5.miembros-'entas Eequire 'alid-user O5&irectoryP O&irectory D5'ar55!inanSasDP #uthName #cceso pri'ado GntroduSca su usuario y contrase_a #uth"ype Iasic #uth@serMile 5'ar5secreto5.miembros-!inanSas Eequire 'alid-user O5&irectoryP
La "ti#a oci+n asar' or usar "a &irecti$a AuthHroup&ile. As o&re#os tener to&os "os usuarios en e" #is#o fichero "uego asignar"es gruos en otro archi$o. O&irectory D5'ar55'entasDP #uthName #cceso pri'ado GntroduSca su usuario y contrase_a #uth"ype Iasic #uth@serMile 5'ar5secreto5.miembros # ut hL rou pMi le 5' ar5 se cre to5 .gr upo s Eequire group 'entas O5&irectoryP
Sergio Cuesta Vicente %33 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
O&irectory D5'ar55!inanSasDP #uthName #cceso pri'ado GntroduSca su usuario y contrase_a #uth"ype Iasic #uth@serMile 5'ar5secreto5.miembros #ut hL rou pMi le 5' ar5 se cre to5 .gr upo s Eequire group !inanSas O5&irectoryP
-en en cuenta *ue: Se usa e" #is#o archi$o &e #ie#(ros ara to&os "os &irectorios. ?a *ue a,a&ir "a &irecti$a e" fichero &e gruos. En "a c"'usu"a 4e*uiere se in&ica e" gruo *ue ue&e acce&er. E" archi$o .gruos ser' un fichero &e teto con a"go co#o • • •
'entas sergio maria !inanSas carlos roberto
1o&ifica "a configuraci+n &e" e)ercicio anterior ara *ue ue&an acce&er &os gruos &e usuarios &iferentes a ca&a &irectorio con e" "ti#o #Hto&o. QPue&e un usuario estar en #'s &e un gruoR A,a&e un tercer &irectorio otro gruo. Da acceso a" tercer &irectorio a &os &e "os tres gruos. QC+#o se hace estoR
Sergio Cuesta Vicente %3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
E" rotoco"o ?--PS a he#os $isto *ue e" rotoco"o ?--P es #u inseguro ara trans#itir infor#aci+n sensi("e. Es #u f'ci" caturar esta infor#aci+n "eer &atos co#o no#(res &e usuarios o c"a$es. Cua"*uier infor#aci+n *ue se en$a $a sin cifrar or "o *ue se trans#ite co#o un teto *ue cua"*uiera *ue cature nuestra co#unicaci+n ue&e "eer. E" rotoco"o ?--PS se uti"i@a ara e$itar este ro("e#a. Sus sig"as se correson&en con ;'pertet rans6er
In$estiga *uH a"gorit#os *uH tio &e c"a$es se uti"i@an en Internet actua"#ente. Q5uH son "os a"gorit#os &e c"a$e si#Htrica "os a"gorit#os &e c"a$e asi#HtricaR Q5uH con "as c"a$es ri$a&as c"a$es ("icasR QC+#o se uti"i@anR
Sergio Cuesta Vicente %30 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Esta 'gina &e "a WiKie&ia te ue&e au&ar a co#ren&er estos concetos "os *ue $ere#os a continuaci+n. Necesitar's tener una i&ea &e "os untos anteriores &e este e)ercicio ara enten&er"a.
Un sitio *ue use ?--PS &e(era tener to&os sus conteni&os rotegi&os or este rotoco"o ara e$itar osi("es ata*ues o ro(os &e infor#aci+n a tra$Hs &e "as artes inseguras. ?--PS es un oco #enos eficiente *ue ?--P or "o *ue si se uti"i@a en sitios &on&e "a transferencia &e infor#aci+n es #u gran&e ue&e notarse en e" ren&i#iento. Por suuesto en e" caso &e *ue "a infor#aci+n trasferi&a sea sensi("e/ "as $enta)as co#ensan con creces a "os incon$enientes. E" rotoco"o ?--PS usa e" puerto E or &efecto. A" igua" *ue suce&a con ?--P e" uerto =9/ en caso &e *ue se uti"ice este uerto no es necesario *ue e" c"iente "o in&i*ue en "a (arra &e &irecciones &e" na$ega&or.
Sergio Cuesta Vicente %37 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Certifica&os Digita"es E" rotoco"o ?--PS encrita "a co#unicaci+n ara *ue *uien cature tra#as &e e""a no ue&a $er "os conteni&os. Los na$ega&ores 7e( actua"es (asan e" uso &e ?--PS en e" conoci#iento &e Autori&a&es Certifica&oras *ue e#iten Certifica&os Digita"es ara asegurar *ue e" ser$i&or a" *ue nos conecta#os es *uien &ice ser. Estas Autori&a&es Certifica&oras son o agentes &e&ica&os a e""o esecfica#ente o e#resas co#o 1icrosoft. E" uso &e ?--PS se (asa en "a confian@a *ue nos roorcionen "as enti&a&es *ue e#iten "os certifica&os. Cuan&o usa#os un na$ega&or 7e( &eter#ina&o/ "a e#resa *ue "o ha &esarro""a&o a ha intro&uci&o en H" &eter#ina&as Autori&a&es Certifica&oras *ue consi&era &e confian@a. Estas enti&a&es se ue&en consu"tar en e" roio na$ega&or o&e#os #o&ificar"as. En "a i#agen ue&es $er arte &e "a "ista inc"ui&a en irefo.
In$estiga en "os &iferentes na$ega&ores *ue tengas insta"a&os c+#o se consu"ta "a "ista &e Autori&a&es Certifica&oras en "as *ue se confa. En "a catura &e i#agen se ue&en $er otras esta,as ara e" ainistra&or &e certifica&os. QPara *uH sir$e ca&a una &e e""asR
Eisten #uchos ser$i&ores *ue usan certifica&os no e#iti&os or estas autori&a&es. En esos casos &een&e &e" usuario e" acetar"os o no. E" na$ega&or #uestra una a&$ertencia cuan&o $a#os a conectarnos ten&re#os *ue &eci&ir si *uere#os seguir o referi#os no conectarnos con e" &estino.
Sergio Cuesta Vicente %3+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En "a i#agen o&e#os $er un e)e#"o con $arias artes: 2. 6. 0. <.
Si no confia#os en e" &estino &e(e#os u"sar e" (ot+n ara sa"ir. Po&e#os o(tener #'s infor#aci+n. En este caso $e#os *ue "a enti&a& es go(.es or "o *ue o&e#os &eci&ir confiar en H". Si *uere#os confiar &e(e#os "eer "os riesgos *ue con""e$a. Po&e#os a,a&ir una ececi+n &e seguri&a& ara confiar en este sitio a artir &e ahora.
Q5uH es "a fir#a &igita" cu'" es su re"aci+n con "os certifica&os &igita"esR
Un Certificado Digital es un &ocu#ento e"ectr+nico *ue en"a@a una c"a$e ("ica con una ir#a Digita" e infor#aci+n ersona" so(re "a ersona u organi@aci+n *ue *uiere usar "a c"a$e ("ica. Sir$e ara asegurar *ue esa c"a$e ertenece a &icha ersona u organi@aci+n. La infor#aci+n ersona" *ue se a&)unta sue"e ser e" no#(re/ "a &irecci+n/ e" correo e"ectr+nico/ etc. La ir#a Digita" sue"e ser "a &e una Enti&a& Certifica&ora reconoci&a ara *ue "os c"ientes ue&an confiar en *ue "a C"a$e P("ica "a infor#aci+n ersona" correson&en a "a #is#a ersona!organi@aci+n. Este tio &e certifica&os se conocen co#o Certificados 8a1 a *ue se encuentran en e" ni$e" #'s a"to &e un 'r(o" &e certifica&os. E" usuario &e(e fiarse &e "a enti&a& e#isora &e" Certifica&o 4a@ a *ue es e" *ue asegura "a autentici&a& &e to&os "os certifica&os e#iti&os or e""a. La "ista &e certifica&os *ue se inc"uen or &efecto en un na$ega&or 7e( correson&en a esta categora e" usuario confa en "os &esarro""a&ores &e" na$ega&or ara *ue se aseguren &e *ue esos certifica&os son &e confian@a. `Co#o se ue&e $er "a seguri&a& en Internet se (asa en #uchos ni$e"es &e confian@aT Na&ie &e(e asustarse. Las autori&a&es *ue inc"uen "os rincia"es na$ega&ores est'n $erifica&as con re$isa&as con regu"ari&a&. En esta 'gina &e "a WiKie&ia se ue&e o(tener #ucha #'s infor#aci+n so(re "os Certifica&os Digita"es. En esta i#agen se ue&e $er e" uso &e certifica&os &igita"es. Los 7ervidores de Certificados son "os *ue se encargan &e $a"i&ar o certificar "as c"a$es.
Sergio Cuesta Vicente %38 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En "a actua"i&a& se uti"i@an $arios for#atos &e Certifica&os Digita"es en Internet. E" #'s eten&i&o es e" J.;9> Lee esta 'gina co#enta en c"ase "os untos *ue consi&eres #'s interesantes so(re "a infor#aci+n o(teni&a.
En nuestro na$ega&or o&e#os consu"tar "os &eta""es &e un certifica&o. Si nos one#os so(re e" certifica&o &eter#ina&o u"sa#os Ver sue"e aarecer una oci+n Deta""es en "a *ue o&e#os consu"tar &atos co#o e" a"gorit#o e" $a"or &e "a fir#a.
>btener un certi6icado digital Para o&er uti"i@ar ?--PS en nuestro ser$i&or es necesario &isoner &e un Certifica&o Digita". Po&e#os o(tener un Certifica&o Digita" &e una Autori&a& Certifica&ora F certi6icate authorit'E CA o crear nuestra roia Autori&a& Certifica&ora generar nuestros Certifica&os Digita"es. En Esa,a/ o&e#os o(tener Certifica&os Digita"es a tra$Hs &e "a '(rica Naciona" &e 1one&a -i#(re o #e&iante e#resas co#o Verisign. Para o(tener un Certifica&o &e una Autori&a& Certifica&ora genera"#ente ha *ue &e#ostrar *ue so#os *uienes &eci#os ser Fc+#o "o esta("ece ca&a autori&a& generar una etici+n ara nuestro ser$i&or F certi6icate signing re1uestE CS *ue se &e(e en$iar a "a autori&a&. Cuan&o nuestra etici+n haa si&o aceta&a/ a o&e#os insta"ar e" certifica&o en nuestro ser$i&or.
Sergio Cuesta Vicente %3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
SSL!-SL Secure SocBet =a'er FSSL fue &esarro""a&o or Netscae en "os a,os >9. ?an eisti&o tres $ersiones &e SSL ero actua"#ente se uti"i@a "a 0.9 aun*ue &e(era#os &e)ar &e hacer"o a *ue es un rotoco"o o(so"eto con $u"nera(i"i&a&es conoci&as. ?a &eri$a&o en otro rotoco"o ransport =a'er Securit' F-LS *ue ta#(iHn tiene tres $ersiones/ "a 2.9/ "a 2.2 "a 2.6. La #aora &e "os na$ega&ores actua"es usan "a $ersi+n 2.9
Co#o "a he#os co#enta&o con ante"aci+n/ ?--PS es una i#"e#entaci+n &e ?--P so(re SSL o -SL en e" ser$i&or. Este rotoco"o se co"oca so(re "a caa &e transorte &on&e "os &os rotoco"os #'s ticos son -CP UDP. Es un rotoco"o *ue se uti"i@a ara asegurar confidencialidad/ autenticidad/ integridad no repudio entre e" c"iente e" ser$i&or.
In$estiga co#enta "os cuatro concetos &e" 'rrafo anterior.
Eisten &os #o&os: Uno en e" *ue so"o e" ser$i&or &e#uestra su i&enti&a& otro en e" *ue tanto e" c"iente co#o e" ser$i&or usan Certifica&os Digita"es. Las a"icaciones &e" uso &e SSL!-SL son #"ti"es e inc"uen "a creaci+n &e re&es ri$a&as $irtua"es FVPN/ e" uso en co#ercio e"ectr+nico en e" correo e"ectr+nico/ etc.
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
?--PS en Aache Aache uti"i@a un #+&u"o esecfico (asa&o en un roecto *ue se ""a#a OenSSLM a esar &e" no#(re i#"e#enta ta#(iHn -LS. Para uti"i@ar ?--PS en Aache es necesario *ue e" #+&u"o mod?ssl estH acti$o. sudo a2enmod ssl ser'ice apache2 restart
Ahora e" ser$i&or &e(era estar escuchan&o tanto e" uerto =9 Fhtt co#o en e" <<0 Fhtts. Si #ira#os e" archi$o &e configuraci+n &e uertos gedit 5etc5apache25ports.con!
en e" *ue $e#os "os &iferentes archi$os *ue o&ra#os usar GNU-LS. +isten 7 OG!*odule ssl8moduleP +isten 443 O5G!*oduleP OG!*odule mod8gnutls.cP +isten 443 O5G!*oduleP
Sergio Cuesta Vicente %% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
$ere#os *ue si e" #+&u"o mod?ssl est' acti$o se a,a&e "a or&en NameJirtual$ost :7 +isten 7 OG!*odule mod8ssl.cP G! you add NameJirtual$ost :443 here, you ill also ha'e to change the Jirtual$ost statement in 5etc5apache25si tes-a'ailable5de!a ult-ssl to OJirtual$ost :443P er'er Name Gndication !or + named 'irtual hosts is currently not supported by *GF on Vindos U%. +isten 443 O5G!*oduleP
?e#os $isto *ue esta &istri(uci+n &e Aache $iene con &os sitios or &efecto. E" *ue no he#os usa&o se ""a#a De6aultGSS= recisa#ente. Si "o acti$a#os ten&ra#os a un sitio con &icha configuraci+n *ue escuchara or conei+n segura. sudo a2ensite de!ault-ssl ser'ice apache2 reload
Ahora ten&ra#os &isoni("e "a osi(i"i&a& &e conectarnos &e for#a segura a a#(os ser$i&ores. Si no esecifica#os e" rotoco"o o usa#os htt se conectar' &e "a for#a est'n&ar. Sin e#(argo/ si nos conecta#os #e&iante htts nos #uestra una ececi+n &e seguri&a& co#o "a *ue $i#os antes. Esto es &e(i&o a *ue a" insta"ar Aache se crea un certifica&o autofir#a&o ara e" sitio or &efecto. Si a(ri#os e" archi$o &e configuraci+n &e" sitio con ss" o&e#os $er c+#o est' configura&o.
# sel!-signed /snakeoilA certi!icate can be created by installing
Sergio Cuesta Vicente %2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
the ssl-cert package. ee 5usr5share5doc5a pache2.2-common5E F#&*F.&ebian.gS !or more in!o. G! both key and certi!icate are stored in the same !ile, only the +0erti!icateMi le directi'e is needed. +0erti!icateMile 5etc5ssl5certs5ssl-cert-snakeoil.pem +0erti!icate=eyMile 5etc5ssl5pri'ate5ssl-cert-snakeoil.key
-ras rea"i@ar "os asos anteriores/ rue(a a intercetar tra#as &e coneiones htt htts. Q5uH &iferencias $esR Guar&a en un archi$o una tra#a &e ca&a tio ara su &iscusi+n en c"ase. Si te fi)as/ "os &os sitios or &efecto tienen configura&o e" #is#o &irectorio co#o ra@ ara "os &ocu#entos. 5uH asara si ca#(ias e" &irectorio ra@ &e uno &e "os &os. PruH(a"o.
Es una #a"a oci+n &e)ar a(ierta "a osi(i"i&a& &e acce&er a" #is#o sitio #e&iante una conei+n segura una insegura. Por e""o si ha(i"ita#os un sitio con ?--PS no &e(era#os tener acti$o e" e*ui$a"ente con ?--P co#o suce&e con "os &os or &efecto. :o correcto ser1a des"abilitar el default.
Si &esha(i"ita#os e" sitio or &efecto o&e#os $er *ue ahora/ si no esecifica#os e" rotoco"o/ uti"i@a ?--PS or &efecto. sudo a2dissite de!ault ser'ice apache2 reload
Sergio Cuesta Vicente %3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Estu&ia e" resto &e" archi$o &e configuraci+n &e" sitio or &efecto con ss" e"ica *uH hacen e" resto &e &irecti$as. Los en"aces a continuaci+n contienen to&a "a infor#aci+n necesaria. htts:!!htt&.aache.org!&ocs!6.
Creando un sitio (irtual con ;
Co#o a he#os $isto antes/ ara o&er usar SSL en Aache es necesario tener un certifica&o. E" *ue se insta"a ara e" sitio &e e)e#"o a no es $'"i&o tene#os *ue conseguir uno. Po&e#os a&*uirir uno &e una CA o crear uno autofir#a&o. Por #oti$os e$i&entes nosotros usare#os esta "ti#a oci+n. Para o(tener un certifica&o es necesario generar una c"a$e ri$a&a ara e""o necesita#os un no#(re &e &o#inio as *ue "o ri#ero ser' configurar el D7 correcta#ente. En #i caso $o a ""a#ar"o 777.conss".es ha(r' *ue configurar"o co#o un host $irtua" or no#(re.
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Para generar "a c"a$e se uti"i@a e" co#an&o genrsa openssl genrsa -out cla'epru.key 247
Se ue&e generar una contrase,a ara "a c"a$e/ ero si se $a a uti"i@ar ara crear un certifica&o no es (uena i&ea or*ue ca&a $e@ *ue e" ser$i&or 7e( necesite acce&er a "a c"a$e ha(r' *ue intro&ucir "a contrase,a. Si no nos i#orta intro&ucir "a c"a$e ca&a $e@ *ue se reinicie e" ser$i&or/ usara#os "a oci+n openssl genrsa ?des3 -out cla'epru.key 247
Actua"#ente se reco#ien&an "ongitu&es #ni#as &e c"a$e &e 69<= (its. Lo siguiente ser' generar una etici+n ara nuestro certifica&o. Esta etici+n es "a *ue &e(era#os en$iar a "a CA ara o(tener un certifica&o fir#a&o or e""os. Luego eserara#os a *ue "o fir#aran nos en$iaran e" certifica&o ara insta"ar"o. Nosotros usare#os uno autofir#a&o. openssl req -ne -key cla'epru.key -out peticionpru.csr
Cuan&o e)ecuta#os este co#an&o nos $a i&ien&o infor#aci+n &e "a e#resa ara "a *ue sea e" certifica&o. La $a#os re""enan&o hasta ter#inar. Los ca#os *ue ter#inan en b no son o("igatorios. Si hu(iHra#os genera&o "a c"a$e con contrase,a nos "a e&ira antes &e re""enar "a infor#aci+n. ou are about to be asked to enter in!ormation that ill be incorporated into your certi!icate request. Vhat you are about to enter is hat is called a &istinguished Name or a &N.
Sergio Cuesta Vicente %0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
"here are quite a !e !ields but you can lea'e some blank Mor some !ields there ill be a de!ault 'alue, G! you enter Q.Q, the !ield ill be le!t blank. ----0ountry Name /2 letter codeA ;#@>F tate or %ro'ince Name /!ull nameA ;ome-tate>*adrid +ocality Name /eg, cityA ;>*adrid ergio0uesta 0 0ommon Name /e.g. ser'er M&N or <@E nameA ;>ergio 0uesta Fmail #ddress ;>unaWcon-ssl.es %lease enter the !olloing QextraQ attributes to be sent ith your certi!icate request # challenge passord ;> #n optional company name ;>
Para o(tener un certifica&o autofir#a&o usare#os e" co#an&o openssl x( -req -days 3)( -in peticionpru.csr -signkey cla'epru.key -out certi!icadopru.crt
Lo *ue in&ica *ue usar' e" for#ato J.;9> ten&r' una $a"i&e@ &e un a,o. Si to&o ha i&o (ien &e(era#os $er a"go co#o "o siguiente ignature ok subCect9509F5"9*adrid5+9*adrid5<9ergio0uesta5<@9050N9ergio Letting %ri'ate key
Sergio Cuesta Vicente %7 de 338
0uesta5email#ddress9unaWcon-ssl.es
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En #uchos sitios $er's *ue en "ugar &e crt se crean archi$os con "a etensi+n pem. En teora "a &iferencia es *ue crt so"o contiene e" certifica&o #ientras *ue pem contiene tanto e" certifica&o co#o "a c"a$e ero en "a r'ctica esto se ignora &a igua" usar una *ue otra. -en en cuenta *ue to&os "os archi$os *ue se han crea&o en "os asos anteriores se han genera&o en e" &irectorio en e" *ue nos encontr'ra#os or "o *ue ha *ue #o$er"os a "os sitios a&ecua&os. La etici+n no es necesaria. sudo m' cla'epru.key 5etc5ssl5pri'ate5 sudo m' certi!icadopru.crt 5etc5ssl5certs5
Creare#os un &irectorio ara e" conteni&o &e" sitio seguro mkdir 5'ar55con-ssl5
Proce&e#os a crear e" sitio $irtua" or no#(re OG!*odule mod8ssl.cP NameJirtual$ost 12.1)7.1.3)443 OJirtual$ost 12.1)7.1.3)443P er'erName con-ssl.es er'er#lias .con-ssl.es er'er#dmin alguienWcon-ssl.es &ocumentEoot 5'ar55con-ssl O&irectory 5'ar55con-sslP &irectoryGndex index.html
Sergio Cuesta Vicente %+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
D Z nokeepali'e ssl-unclean-shutdon Z dongrade-1. !orce-response-1. Iroser*atch D*GF ;16->D ssl-unclean-shutdon O5Jirtual$ostP O5G!*oduleP
?a(i"ita#os e" sitio recarga#os Aache sudo a2ensite con-ssl.es
Sergio Cuesta Vicente %8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
ser'ice apache2 reload
4ecuer&a *ue e" no#(re *ue tene#os asocia&o en e" DNS $a a "a &irecci+n IP &e "a #'*uina as *ue tendremos %ue usar htts:!!777.con.ss".es ara acce&er a" sitio seguro. Si usa#os ?--P $a a" sitio or &efecto. Para e$itar esto &e(era#os a,a&ir otra entra&a a" DNS ara *ue $aa a" sitio sin SSL Fuerto =9 #o&ificar "a configuraci+n &e" host $irtua" ara *ue reson&a a "as eticiones a ese otro no#(re &e &o#inio en "ugar &e a to&o F_ Si "os he#os a&*uiri&o "os certifica&os a tra$Hs &e una CA &e confian@a &e)ara &e aarecer e" a$iso cuan&o un c"iente se conecta. E$i&ente#ente ara un sitio rofesiona" es #'s *ue reco#en&a("e. Para casos en "os *ue este#os in$o"ucra&os en e" &es"iegue en una e#resa #u gran&e o or e)e#"o una uni$ersi&a&/ ue&e interesarnos crear nuestra propia C# ara uso roio. -a#(iHn es osi("e crear un sitio en e" *ue los clientes tengan %ue acceder mediante un certificado propio co#o or e)e#"o en "a Agencia -ri(utaria. A#(as cosas se ue&en hacer usan&o >penSS= ero escaa tota"#ente a" conteni&o &e" curso. Des&e e" &escu(ri#iento &e" ata%ue Poodle se ha hecho #'s i#ortante configurar correcta#ente "a $ersi+n *ue use#os &e encritaci+n.
Crea &os sitios &iferentes/ uno con ?--PS e" otro sin H". Configura to&o correcta#ente ara *ue a" ir a un sitio o a otro use e" rotoco"o a&ecua&o sin necesi&a& &e *ue e" usuario "o esecifi*ue en "a (arra &e &irecciones &e" na$ega&or 7e(.
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Des"iegue &e a"icaciones so(re ser$i&ores 7e( E#a*ueta&o &e a"icaciones 7e(. Estos &os concetos no "os $a#os a estu&iar a*u. Las a"icaciones en ser$i&ores 7e( sue"en uti"i@ar a" #enos una (ase &e &atos "as *ue se &es"iegan en Aache se est'n uti"i@an&o constante#ente en e" #+&u"o &e Desarro""o We( en Entorno Ser$i&or. E" e#a*ueta&o &e a"icaciones es un conceto *ue est' #'s re"aciona&o con -o#cat or "o *ue "o $ere#os en e" te#a siguiente. En "os casos en "os *ue no insta"e#os nuestro roio ser$i&or sino *ue contrate#os un hosting/ &e(e#os consi&erar *ue tenga "as caractersticas *ue necesite#os For e)e#"o *ue er#ita o roorcione e" uso &e 1S5L P?P. Genera"#ente acce&e#os a nuestra estructura &e caretas #e&iante -P a "a (ase &e &atos #e&iante a"gn c"iente.
Sergio Cuesta Vicente %0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-e#a 0: Ainistraci+n &e ser$i&ores &e a"icaciones Una a"icaci+n 7e( es a*ue""a *ue funciona a tra$Hs &e una re&. A#a@on/ Goog"e/ ace(ooK o -7itter son e)e#"os &e a"icaciones 7e(. Una a"icaci+n 7e( funciona en ?--P so(re -CP!IP "os c"ientes acce&en a e""a #e&iante un na$ega&or 7e(. Genera"#ente es una a"icaci+n *ue se a)usta a" #o&e"o c"iente ser$i&or consta &e tres caas a *ue hace uso &e una (ase &e &atos. E" tHr#ino Ser$i&or &e A"icaciones est' asocia&o hist+rica#ente a "a "atafor#a a$a Enterrise E&ition aun*ue en "a actua"i&a& eng"o(a un con)unto &e "engua)es caractersticas #ucho #'s a#"io. Un ser$i&or &e a"icaciones es una "atafor#a *ue ro$ee a"icaciones soft7are roorcionan&o ser$icios co#o seguri&a&/ transacciones/ acceso a &atos/ etc. Eisten #uchos ser$i&ores &e a"icaciones/ sien&o "os #'s frecuentes Web=ogic Application Ser(er &e >racle/ WebSphere Application Ser(er &e ,9/ omcat &e Apache. 1u re"aciona&o con Hste "ti#o est' Hlass&ish/ *ue fue &esarro""a&o or Sun 9icros'stems actua"#ente ertenece a >racle. Nosotros $ere#os omcat aun*ue Hlass&ish es #'s co#"eto. QPor *uH eisten &os (asa&os en "o #is#oR omcat so"o soorta "os contenedores !eb &e "a "atafor#a 6EE #ientras *ue Hlass&ish soorta to&os "os tios or "o es rea"#ente un ser$i&or &e a"icaciones en un senti&o #'s co#"eto. Va#os a $er -o#cat or su si#"ici&a&/ faci"i&a& &e uso configuraci+n/ (a)o consu#o &e recursos a"to ren&i#iento or *ue es #u uti"i@a&o/ ero en este caso no eiste un ara"e"is#o con "o *ue $ea#os con Aache e" #erca&o est' #ucho #'s frag#ento. Es #u
Sergio Cuesta Vicente %0% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
ro(a("e *ue omcat $aa &e)an&o aso a Hlass&ish. Para e*ue,as a"icaciones se sigue reco#en&an&o omcat / ero si necesita#os 6EE a" co#"eto ten&re#os *ue (uscar otra oci+n. Con e" tie#o a$a ha i&o er&ien&o u)an@a co#o "engua)e &e rogra#aci+n ara "a 7e(. "ti#a#ente se ha i&o *ue&an&o ara a"icaciones gran&es or caractersticas co#o e" (a"anceo &e carga/ f'ci" esca"a(i"i&a& o "as osi(i"i&a&es &e co#unicaci+n entre siste#as &e (acKen&. Sin e#(argo se consi&era #u esa&a ara "as a"icaciones #'s e*ue,as est' sien&o r'i&a#ente sustitui&o or "engua)es co#o P?P/ 4u( o Pthon. Un e)e#"o &e esto es -7itter *ue fue &esarro""a&o con 4u( on 4ai"s ero cuan&o $ieron "as &ificu"ta&es *ue tenan ara esca"ar "a a"icaci+n "a #igraron a a$a. Por si fuera oco "os "ti#os ro("e#as &e seguri&a& &e a$a han ""e$a&o a "as gran&es co#a,as &e Siste#as Oerati$os &e &esarro""o &e na$ega&ores 7e( a reco#en&ar &esha(i"itar a$a &e "os na$ega&ores. Inc"uso ?o#e"an& Securit un organis#o gu(erna#enta" a#ericano ha hecho esta reco#en&aci+n sugirien&o *ue se &esha(i"ite a$a &e to&os "os na$ega&ores 7e( eceto &on&e sea necesario. FDicie#(re 6926 Enero 6920. Orac"e est' intentan&o reaccionar sacan&o arches/ ero or e)e#"o e" "ti#o F2
Sergio Cuesta Vicente %02 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ar*uitectura Eisten $arias $ersiones &e Aache -o#cat. La &iferencia entre unas $ersiones otras es "a $ersi+n &e Ser(lets -S
Lee "a 'gina &e "a &ocu#entaci+n &e -o#cat *ue e"ica estos concetos . Entien&e #u so#era#ente *uH hace ca&a uno Fa *ue "uego "os $ere#os en #'s rofun&i&a& cu'" es "a re"aci+n entre unos otros. QCu'"es ten&re#os *ue #o&ificar &urante nuestro tra(a)oR 4ea"i@ar un &i(u)o ue&e au&arte en "a tarea. Posterior#ente &iscute en c"ase "os concetos aren&i&os.
Cuan&o haa#os insta"a&o -o#cat o&re#os $er e)e#"os &e to&os estos e"e#entos. Eceto Contet/ ue&en consu"tarse to&os en sudo gedit 5etc5tomcat65ser'er.xml
Echa un $ista@o a" archi$o !etc!to#cat8!ser$er.#"
Sergio Cuesta Vicente %03 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
=a estructura de directorios de omcat Los &irectorios *ue se inc"uen en una insta"aci+n &e -o#cat se u(ican genera"#ente en e" &irectorio &on&e he#os &esco#ri#i&o -o#cat. Sin e#(argo/ en esta insta"aci+n est'n &efini&os en &os u(icaciones: /usr/share/tomcat+ /(ar/lib/tomcat+. Sin e#(argo ha otro &irectorio afecta&o en "a insta"aci+n /etc/tomcat+ Los &irectorios co#unes son: • •
bin: contiene "os (inarios scrits &e inicio &e -o#cat. conf: "a configuraci+n g"o(a" &e -o#cat. En esta insta"aci+n es un en"ace si#(+"ico a /etc/tomcat+ . -iene a"gunos archi$os *ue
#erece "a ena &estacar. catalina.polic3: Este archi$o contiene "a o"tica &e seguri&a& re"aciona&a con a$a e i#i&e *ue "os Ser$"ets o SPs "a so(rescri(an or #oti$os &e seguri&a&. En esta insta"aci+n se encuentra en o"ic.&!90cata"ina.o"ic catalina.properties: Contiene "os archi$os .A4 *ue no ue&en so(rescri(irse or #oti$os &e seguri&a& otros &e uso co#n. conte't.'ml: E" archi$o &e conteto co#n a to&as "as a"icaciones. Se uti"i@a rincia"#ente ara infor#ar &e &+n&e se ue&e encontrar e" archi$o 7e(.#" &e "as roias a"icaciones. Contiene "a configuraci+n *ue ser' co#n a to&os "os e"e#entos Contet. logging.properties: Esta("ece "as o"ticas genera"es ara e" registro &e acti$i&a& &e" ser$i&or/ a"icaciones o a*uetes. server.'ml : a he#os $isto *ue es e" fichero rincia" &e configuraci+n &e -o#cat *ue tiene #ucho *ue $er con su ar*uitectura. tomcat-users.'ml: Contiene "os usuarios/ contrase,as ro"es usa&os ara e" contro" &e acceso. Es e" archi$o &on&e se encuentra "a infor#aci+n &e seguri&a& ara "as a"icaciones &e ainistraci+n &e -o#cat. -o&os "os $a"ores son or &efecto as *ue &e(en ca#(iarse en caso &e &esco#entar "as "neas. !eb.'ml: Un &escritor &e &es"iegue or &efecto con "a configuraci+n co#arti&a or to&as "as a"icaciones. Es un archi$o con &irecti$as &e funciona#iento &e "as a"icaciones. A&e#'s &e to&os estos archi$os/ eiste un su(&irectorio ara ca&a #otor con un su(&irectorio "oca"host &on&e ir' otro archi$o &e conteto esecfico ara ca&a a"icaci+n. Este archi$o tiene "a for#a no#(re&ea"icaci+n.#". En este caso e" ◦
◦
◦
◦ ◦
◦
◦
◦
Sergio Cuesta Vicente %0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
#otor es Cata"ina as *ue est'n en Catalina/localhost . Pue&es $er *ue ha uno or ca&a a*uete a&iciona" *ue insta"a#os/ &ocu#entaci+n/ e)e#"os a"icaciones &e ainistraci+n. •
• •
•
•
lib: continen to&os "os .A4 co#unes a to&as "as a"icaciones. A*u $an archi$os &e -o#cat/ APIs &e SPs/ etc en H" o&e#os
u(icar archi$os co#unes a "as &iferentes a"icaciones co#o 1S5L DBC. logs: a*u $an "os archi$os &e registro. En esta insta"aci+n es un en"ace si#(+"ico a /(ar/log/tomcat+ temp: este &irectorio es ociona". En esta insta"aci+n no est' crea&o ni acti$a&o or &efecto. Se usa ara "os archi$os te#ora"es *ue necesita -o#cat &urante su e)ecuci+n. !ebapps: a*u se u(ican "as a"icaciones roia#ente &ichas. Ahora so"o ha una *ue se &eno#ina 4OO-. Po&ra ha(er #'s ero co#o he#os insta"a&o "a &ocu#entaci+n/ e)e#"os ainistra&ores aarte se encuentran en su roio &irectorio en !usr!share!to#cat8ain/ to#cat8&ocs to#cat8ea#"es. !or5: es un &irectorio ara "os archi$os en uso/ cuan&o se co#i"an "os SPs/ etc.
Busca estos &irectorios en "a insta"aci+n &e -o#cat *ue rea"i@a#os en e" te#a 2.
n (ista5o ms pro6undo a la ar1uitectura de omcat E" tHr#ino ar*uitectura &e -o#cat ta#(iHn se refiere a "a estructura J1L *ue sigue su organi@aci+n. Se co#one &e un con)unto &e e"e#entos reresenta&os or eti*uetas. En "a i#agen ue&e $erse c+#o se re"acionan unos con otros. Son "os e"e#entos *ue $isteis antes/ $a#os a reasar"os. 7erver Es e" ri#er e"e#ento suerior reresenta una instancia &e -o#cat. Es e*ui$a"ente a" ser$i&or en si con un uerto asocia&o. Pue&en eistir $arios en &iferentes uertos a $eces se hace ara *ue si una a"icaci+n fa""a arrastran&o a" ser$i&or esto no afecte a otras a"icaciones.
Sergio Cuesta Vicente %00 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Contiene $arios =isteners *ue escuchan reson&en a e$entos. -a#(iHn usa G"o(a"Na#ing4esources *ue sir$en ara er#itir a c"ientes soft7are hechos en a$a encontrar o()etos &atos #e&iante su no#(re. Por e)e#"o a*u se o&ra in&icar un recurso g"o(a" co#o una (ase &e &atos 1S5L. 7ervice E" ser$icio agrua un contene&or &e tio 4ngine con un con)unto &e conectores. E" #otor sue"e ser Cata"ina "os conectores or &efecto ?--P AP. Connector Los conectores sir$en ara co#unicar "as a"icaciones con c"ientes For e)e#"o un na$ega&or 7e( u otros ser$i&ores. 4eresentan e" unto &on&e se reci(en "as eticiones se "es asigna un uerto IP en e" ser$i&or. Containers -o#cat se refiere a Engine/ ?ost/ Contet/ C"uster co#o contene&ores. E" &e ni$e" #'s a"to es Engine e" #'s (a)o Contet. A"gunos co#onentes co#o 4ea"# o Va"$e ue&en u(icarse &entro &e un contene&or. =ngine E" #otor rocesa "as eticiones es un co#onente *ue reresenta e" #otor &e Ser$"ets Cata"ina. Ea#ina "as ca(eceras For e)e#"o &e "as tra#as ?--P ara &eter#inar a host Fo $irtua" host o contet se "e &e(e asar ca&a etici+n.
Cuan&o -o#cat se uti"i@a co#o ser$i&or aut+no#o se usa e" #otor or &efecto. Cuan&o -o#cat se usa &an&o soorte a un ser$i&or 7e( se so(rescri(e or*ue e" ser$i&or 7e( a ha &eter#ina&o e" &estino correcto ara "as eticiones. Un #otor ue&e contener ?osts *ue reresentan un gruo &e a"icaciones 7e( o Contet *ue reresenta a una nica a"icaci+n. -o#cat se ue&e configurar con un nico host o #"ti"es hosts $irtua"es co#o Aache.
Sergio Cuesta Vicente %07 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
>ost Define un host or &efecto o #"ti"es hosts $irtua"es en -o#cat. En -o#cat "os hosts $irtua"es se &iferencian or no#(res &e &o#inio &istintos/ or e)e#"o 777.a"icacion2.es 777.a"icacion6.es. Ca&a uno soorta $arios Contet. Conte't Este e"e#ento es e*ui$a"ente a una a"icaci+n 7e(. ?a *ue infor#ar a" #otor a" host &e "a "oca"i@aci+n &e "a careta ra@ &e a"icaci+n. -a#(iHn se ue&e ha(i"itar "a recarga &in'#ica F&na#ic re"oa& ara *ue a" #o&ificar a"guna c"ase &e "a a"icaci+n se #o&ifi*ue en "a e)ecuci+n. Esta oci+n carga #ucho e" ser$i&or or "o *ue se reco#ien&a ara rue(as ero no en ro&ucci+n.
En un conteto ta#(iHn se ue&en esta("ecer 'ginas &e error esecficas ara ar#oni@ar"as con "a aariencia &e "a a"icaci+n. Pue&e contener ar'#etros &e inicio ara esta("ecer contro" &e acceso en "a a"icaci+n. Cluster En caso &e *ue tenga#os #'s &e un ser$i&or -o#cat aten&ien&o "as eticiones/ este e"e#ento nos er#ite configurar"o. Es caa@ &e re"icar "as sesiones "os ar'#etros &e ca&a Contet. 5ue&a #u or enci#a &e" conteni&o &e" curso. 8ealm Se ue&e a"icar a" ni$e" &e Engine/ ?ost o Contet. Se uti"i@a ara autenticaci+n autori@aci+n &e usuarios o gruos. Pue&en usarse con archi$os &e teto/ ser$i&ores LDAP o (ases &e &atos or e)e#"o.
Q5uH es un ser$i&or LDAPR
Sergio Cuesta Vicente %0+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Si "o a"ica#os a ni$e" &e #otor/ "os usuario o gruos ten&r'n i&Hnticos er#isos en to&as "as a"icaciones a "a hora &e acce&er a o()etos o recursos. Si "o a"ica#os en un ?ost to&as "as a"icaciones "os er#isos ser'n ara to&as "as a"icaciones &e &icho entorno #ientras *ue si "o a"ica#os en un Contet se esta("ecer'n or ca&a a"icaci+n. Sin e#(argo/ aun*ue un usuario tenga "os #is#os er#isos ara to&as "as a"icaciones &e(e seguir autentic'n&ose en ca&a una &e e""as or seara&o. Los er#isos se here&an or eso se &a "a situaci+n &escrita en e" 'rrafo anterior/ ero si "os er#isos &e un usuario o gruo se so(rescri(en en un entorno &e rango inferior "os "ti#os ser'n "os *ue se a"i*uen. Es si#i"ar a "o *ue $ea#os con ciertas &irecti$as For e)e#"o &e &irectorios en Aache. 0alve Se usa ara intercetar eticiones antes &e as'rse"as a "as a"icaciones. Esto nos er#ite rerocesar "as eticiones ara ("o*uear a"gunas/ registrar accesos/ registrar &eta""es &e "a conei+n Fen archi$os "og/ o esta("ecer un nico unto &e acceso ara to&as "as a"icaciones &e un host o ara to&os "os hosts &e un ser$i&or. Afectan a" tie#o &e resuesta a "a etici+n.
Pue&e esta("ecerse ara cua"*uier contene&or Engine/ ?ost/ an& Contet/ !o C"uster. ?a un conceto si#i"ar en "os ser$"ets *ue se &eno#ina i"tros Fi"ters.
Aun*ue en "a secci+n siguiente $ere#os "os archi$os &e configuraci+n en &eta""e/ echa un $ista@o a" archi$o en !etc!to#cat!ser$er.#" ara afian@ar estos concetos. Co#ara este archi$o con e" &e "a insta"aci+n &e -o#cat *ue hici#os en e" te#a 2.
Sergio Cuesta Vicente %08 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Configuraci+n ('sica &e" ser$i&or &e a"icaciones La configuraci+n &e -o#cat se rea"i@a a tra$Hs &e uno o #'s ficheros J1L. ?e#os $isto or enci#a "os ficheros &e configuraci+n en "os aarta&os anteriores. Para este ro+sito/ "os rincia"es son: ser$er.#"/ contet.#" 7e(.#". -o#cat (usca estos archi$os en e" &irectorio esecifica&o or CA-ALINABASE/ en un su(&irectorio !conf. En nuestro caso esta("eci#os 0#"#+GN#8I#F95'ar5lib5tomcat6
Pero si $isita#os este &irectorio $ere#os *ue e" su(&irectorio !conf es un en"ace si#(+"ico a !etc!to#cat! *ue es &on&e rea"#ente se encuentran "os archi$os &e configuraci+n. En e" caso &e *ue no se esecifi*ue CA-ALINABASE se usa CA-ALINA?O1E *ue es o("igatoria ara e" arran*ue &e -o#cat. La configuraci+n &e -o#cat inc"ue infini&a& &e ar'#etros no es e" o()eti$o &e este curso ser un eerto ainistra&or &e H". Va#os a $er or enci#a "os archi$os &e configuraci+n rincia"es "uego estu&iare#os "as configuraciones articu"ares #'s i#ortantes. La &ocu#entaci+n &e -o#cat inc"ue #uchsi#a #'s infor#aci+n &e to&os estos e"e#entos sus osi("es configuraciones.
ser(er.ml En e" archi$o &e configuraci+n or &efecto o&e#os $er *ue se esta("ece un nico ser$icio una nica instancia &e" ser$i&or. E" e"e#ento Ser$er tiene "a siguiente for#a:
Sergio Cuesta Vicente %0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Oer'er port9D7(D shutdon9D$@"&
Pue&e sorren&ernos *ue e" uerto &e -o#cat sea =9=9 sin e#(argo estH configura&o en e" uerto =99;. Este uerto es en e" *ue e" *ue se inicia una instancia &e" ser$i&or FV1 en e" *ue escucha or si ""egan se,a"es &e aaga&o Fshut&o7n. Esta se,a" no se ue&e #an&ar &es&e otra #'*uina or #oti$os &e seguri&a&/ ero e$i&ente#ente se ue&e e)ecutar e" co#an&o &e aaga&o &es&e otra #'*uina "a se,a" a ""egar' &es&e "a #is#a en "a *ue estH e" ser$i&or. F7erverG E" e"e#ento Ser$er ue&e contener otros tres: • •
•
Ser$ice: Un gruo &e conectores asocia&os con un #otor. Es necesario a" #enos uno. Listener: C"ases *ue tienen *ue escuchan #ane)an e$entos *ue tienen *ue $er con e" cic"o &e $i&a &e" ser$i&or/ or e)e#"o &esuHs &e arrancar/ etc. G"o(a"Na#ing4esources: 4ecursos g"o(a"es *ue ue&en ser usa&os en esta instancia &e" ser$i&or or "os co#onentes *ue "os necesiten/ or e)e#"o una (ase &e &atos.
OLlobalNamingEesourcesP Of-- Fditable user database that can also be used by @ser&atabaseEeal m to authenticate users --P OEesource name9D@ser&atabas eD auth9D0ontainerD type9Dorg.apache.catalina.@ser&atabaseD description9D@ser database that can be updated and sa'edD !actory9Dorg.apache.catalina.users.*emory@ser&atabaseMactoryD pathname9Dcon!5to mcat-users.xmlD 5P O5LlobalNamingEesourcesP
Sergio Cuesta Vicente %7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
F7erviceG E" ro+sito &e un ser$icio es agruar un #otor *ue rocese "as eticiones con uno o #'s conectores *ue gestionen "os rotoco"os &e co#unicaci+n. E" ser$icio or &efecto es e" #otor Cata"ina. Oer'ice name9D0atalinaDP
A*u se "e ha &a&o a" ser$icio e" no#(re &e" #otor/ ero no es necesario. Un Ser$ice contiene a" #enos un Connector so"o un Engine *ue es o("igatorio. FConnectorG Este e"e#ento tiene #ucho *ue $er con "os &os #o&os &e funciona#iento &e -o#cat:
Co#o ser$i&or nico: En e" *ue -o#cat rea"i@a "as funciones &e ser$i&or &e a"icaciones &e ser$i&or 7e(. Co#o ser$i&or &e a"icaciones: En e" *ue -o#cat co"a(ora con un ser$i&or 7e( *ue hace &e 6rontend . E" ser$i&or 7e( &irige to&as eticiones &e SPs Ser$"ets a -o#cat. En un entorno con acceso ("ico se sue"e usar "a segun&a configuraci+n a *ue e" ser$i&or 7e( est' #ucho #'s reara&o en tHr#inos &e seguri&a& ri$aci&a&. • •
Los &os conectores #'s co#unes son ?--P AP. E" segun&o es usa&o ara conectar con "os ser$i&ores en e" co#o co"a(orati$o FAache u otros. A#(os ue&en funcionar con SSL ara #e)orar "a seguri&a&. E" uerto or &efecto ara ?--P es =9=9. Se ue&e ca#(iar si or e)e#"o -o#cat $a a estar en ro&ucci+n co#o un ser$i&or en so"itario o&ra#os #o&ificar"o a" uerto est'n&ar &e ?--P/ =9. E" conector ?--P est' ha(i"ita&o:
Sergio Cuesta Vicente %7% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
O0onnector port9D77D protocol9D$""%51.1D connection"imeout9D2D @EGFncoding9D@"M-7D redirect%ort9D74 43D 5P
#ientras *ue e" AP no: O0onnector port9D7D protocol9D#B%51.3D redirect%ort9D7443D 5P
Ninguno &e "os &os usa SSL or &efecto. F=ngineG E" #otor es *uien rocesa "as eticiones rea"#ente. E" no#(re es e" *ue "e &e#os a "a instancia &efau"t?ost in&ica a *uH host $irtua" se "e asar' una etici+n en caso &e *ue no se esecifi*ue ninguno a *ue e" #is#o #otor ue&e rocesar eticiones &irigi&as a #"ti"es hosts $irtua"es &e "os esecifica&os en este archi$o. OFngine name9D0atalinaD de!ault$ost9DlocalhostDP
Un #otor contiene uno o #'s ?ost/ uno o ningn Contet/ uno o ningn 4ea"#/ #u"ti"es Va"$e Listener aun*ue ue&e no tener ninguno. F8ealmG Es un #ecanis#o &e seguri&a& *ue sir$e ara autenticar usuarios esta("ecer seguri&a& a ni$e" &e contene&or Frecuer&a *uH e"e#entos consi&era(a -o#cat contene&ores segn $i#os en e" aarta&o ar*uitectura. La configuraci+n or &efecto hace *ue -o#cat "ea "os usuarios &e" archi$o to#catusers.#" ero o($ia#ente sera #e)or configurar"o ara *ue se usara una (ase &e &atos o ser$i&or LDAP.
Sergio Cuesta Vicente %72 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Of-- @se the +ock
F>ostG Este e"e#ento reresenta un host $irtua" en -o#cat. La configuraci+n or &efecto so"o &efine localhost . Si tene#os configura&o e" ser$i&or DNS con un no#(re ara nuestro ser$i&or usare#os Hste.
E" atri(uto appase esta("ece e" &irectorio ra@ &e "as a"icaciones. Se esta("ece a artir &e CA-ALINABASE si no se in&ica "o contrario. Por &efecto "a U4L &e ca&a a"icaci+n es "a resu"tante &e a,a&ir su &irectorio ra@ a "a &e" ser$i&or. En nuestro e)e#"o he#os insta"a&o cuatro a"icaciones &ocs/ ea#"es/ host#anager #anager. -a#(iHn se esta("ece 4OO- *ue in&ica "a a"icaci+n or &efecto si no a,a&i#os otras ca&a una en su &irectorio. E" atri(uto unpacBWAs in&ica si este tio &e archi$os &e(e ser &esco#ri#i&o o no. En caso &e no &esco#ri#ir"os/ "a e)ecuci+n ser' un oco #'s "enta. autoDeplo' in&ica si e" &es"iegue &e una a"icaci+n *ue situe#os en e" &irectorio &e(e ser auto#'tico o no. O$ost name9DlocalhostD appIase9DebappsD unpackV#Es9DtrueD auto&eploy9DtrueDP
A&e#'s contiene un Va"$e ara registrar "os accesos.
Sergio Cuesta Vicente %73 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
OJal'e className9Dorg.apache.catalina.'al'es.#ccess+ogJal'eD directory9DlogsD pre!ix9Dlocalhos t8access8log.D su!!ix9D.txtD pattern9Dh l u t quot\rquot\ s bD 5P
In$estiga &iscute en c"ase *uH son "os archi$os WA4 su re"aci+n con "os archi$os A4. Configura un no#(re en e" DNS ara tu ser$i&or ca#(ia e" no#(re en ?ost. Prue(a *ue ue&es acce&er con e" no#(re a to&o.
contet.ml E" conteto en -o#cat se ue&e esta("ecer a #ucho ni$e"es se a"icar' e" #'s esecfico en ca&a a"icaci+n. Los &escritores &e conteto &e ainistraci+n &e ca&a a"icaci+n se encuentran en CA-ALINABASE!conf!no#(re#otor!no#(rehost En nuestro caso est'n en !etc!to#cat!Cata"ina!"oca"host Por e)e#"o e" &e host#anager O0ontext path9D5host-managerD docIase9D5usr5share5tomcat6-admin5host-managerD antiEesource+ocking9D!alseD pri'ileged9DtrueD 5P
Sergio Cuesta Vicente %7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
E" path in&ica c+#o se acce&er' a "a a"icaci+n en nuestro ser$i&or. E" ro("e#a ara ca#(iar"o es *ue ha(ra *ue #o&ificar to&os "os archi$os #" re"aciona&os ara *ue -o#cat siga encontran&o "a a"icaci+n. &ocBase es e" &irectorio &e &es"iegue &e "a a"icaci+n. Los &escritores &e conteto esecficos &e ca&a a"icaci+n 7e( est'n en e" &irectorio &e ca&a a"icaci+n en !1E-AIN E" &e "a #is#a a"icaci+n est' en !usr!share!to#cat8ain!host#anager!1E-AIN O0ontext antiEesource+ocking9D!alseD pri'ileged9DtrueD P Of-Eemo'e the comment markers !rom around the Jal'e belo to limit access to the host-manager application to clients connecting !rom localhost --P Of-OJal'e className9Dorg.a pache.catalina.'a l'es.Eemote#ddrJa l'eD allo9D126Z.Zd[Z .Zd[Z.Zd[|1| 1D 5P --P O50ontextP
Entonces Qara *uH sir$e contet.#"R contiene "os ar'#etros *ue $aan a ser co#unes a to&as "as a"icaciones. Si no se so(rescri(en en a"gn conteto #'s concreto se a"icar'n Hstos. O0ontextP OVatchedEesourcePVFI-GNM5eb.xmlO5VatchedEesourceP O50ontextP
Sergio Cuesta Vicente %70 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En este caso se esecifica *uH e"e#ento &e ca&a a"icaci+n &e(e ser $igi"a&o or si ca#(ia. En ese caso se $ue"$e a &es"egar "a a"icaci+n auto#'tica#ente.
$eb.ml Cua"*uier a"icaci+n 7e( en a$a &e(e tener un &escritor &e &es"iegue. Co#o suce&a con e" conteto/ ue&e esta("ecerse $arios se a"icar'n "as &irecti$as #'s concretas. Ca&a a"icaci+n tiene su roio &escritor $a en !WEBIN Por e)e#"o !usr!share!to#cat8ain!host#anager!WEBIN Eiste uno co#n a to&as "as a"icaciones en !etc!to#cat!7e(.#"
Co#o e" a,o asa&o $i#os #" es #u f'ci" enten&er un &escritor &e &es"iegue. A(re e" ri#ero estu&ia su conteni&o. E" segun&o archi$o es #uchsi#o #'s etenso ero no or eso $a#os a &e)ar &e echar"e un $ista@o. Q5uH tio &e ar'#etros se inc"uen en este archi$oR QCrees *ue es a&ecua&a esta &i$isi+nR En a#(os casos/ si no entien&es ara *uH sir$e un ar'#etro/ internet ue&e au&arte.
En e" unto &e &es"iegue &e a"icaciones $ere#os a"go #'s &e este te#a.
Sergio Cuesta Vicente %77 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ainistrar a"icaciones 7e( Va#os a ainistrar "as a"icaciones &e -o#cat a tra$Hs &e" Web 9anager . En "as &os insta"aciones *ue he#os hecho inc"ui#os este a*uete. En este caso cuan&o insta"a#os "os a*uetes a&iciona"es. Po&e#os acce&er a" ainistra&or a tra$Hs &e" en"ace &e "a 'gina &e inicio o en "a &irecci+n htt:!!"oca"host:=9=9!#anager!ht#" Es en si #is#a una a"icaci+n Fcon to&as "as caractersticas *ue esta#os $ien&o &e hecho ue&e ainistrarse &es&e "a roia a"icaci+n. E" acceso or &efecto est' &esha(i"ita&o/ ero a $i#os c+#o #o&ificar e" archi$o to#catusers.#" ara o&er entrar. Eisten $arios ro"es en caso &e *ue *uera#os &istri(uir e" tra(a)o/ ero nos asigna#os to&os "os er#isos. Na&a #'s entrar en e" #anager $e#os una "ista &e "as a"icaciones &es"ega&as en este ser$i&or.
Ve#os *ue aarece un en"ace a "a a"icaci+n en s/ si se ha esecifica&o una $ersi+n/ e" no#(re *ue se #ostrar' ara "a a"icaci+n/ si est' en e)ecuci+n/ e" n#ero &e sesiones *ue se han esta("eci&o Fsi "a a"icaci+n usa sesiones unos (otones ara arrancar/ arar/ recargar F"a a"icaci+n en caso &e #o&ificaciones o re"egar *ue "o *ue hace es e"i#inar"a &e" ser$i&or Fno estar' &es"ega&a. E" aarta&o &e "as sesiones se $er' #'s a&e"ante.
Sergio Cuesta Vicente %7+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Acce&e a" 7e( #anager rue(a a arar "os e)e#"os "a &ocu#entaci+n. QPue&es conectarte a e""osR
La arte &e &es"egar "as a"icaciones "a $ere#os en e" aarta&o correson&iente. Lo siguiente *ue nos encontra#os es
Los &iagn+sticos sir$en ara $er si una a"icaci+n est' fa""an&o/ or ahora so"o en e" te#as &e uso &e #e#oria. Si incha#os se recarga "a 'gina en "a arte suerior nos in&ica e" resu"ta&o &e "a rue(a. -a#(iHn o&e#os $er un cua&ro resu#en con infor#aci+n &e" ser$i&or. Esta infor#aci+n ue&e a#"iarse a" inchar en Esta&o Co#"eto &e" Ser$i&or en "a arte suerior &e "a 'gina. Por suuesto esta ainistraci+n ue&e ser #ucho #'s rofun&a a tra$Hs &e "os archi$os &e configuraci+n $istos en este te#a.
Sergio Cuesta Vicente %78 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Eisten otros &os #Hto&os &e ainistraci+n &e -o#cat *ue &e)a#os co#o te#as &e a#"iaci+n or arte &e" roio a"u#no en caso &e *ue "o crea con$eniente: Ant ainistraci+n #e&iante eticiones ?--P.
=a estructura de archi(os ' directorios de una Aplicaci#n Web Una a"icaci+n 7e( tica#ente $a &entro &e un &irectorio Fue&e ser un WA4 co#o $ere#os #'s a&e"ante tiene asocia&a una estructura &e &irectorios co#n a to&as:
Sergio Cuesta Vicente %7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
•
• • • •
4a@ &e" &irectorio &e "a a"icaci+n &irectorios no esecifica&os en "a siguiente "ista: -o&o "o *ue no estH en "os &irectorios WEBIN 1E-AIN son recursos ("icos a "os *ue se ue&e acce&er a artir &e "a U4L a&ecua&a. H=B-&4: a arte &e" &escritor &e &es"iegue F7e(.#" contiene: c"asses: &on&e se u(ican "os archi$os .c"ass otros recursos. "i(: &on&e se co"ocan "as "i(reras .)ar esecficas &e esta a"icaci+n. 9=+#-&4: contiene e" archi$o &e conteto contet.#". -a#(iHn ue&e hacer a*u un archi$o 1ANIES-.1 *ue "ista "as (i("iotecas A4 *ue &e(en estar &isoni("es ara e" funciona#iento &e "a a"icaci+n.
Sergio Cuesta Vicente %+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Des"iegue &e a"icaciones en e" ser$i&or &e a"icaciones Aun*ue en este #+&u"o no se inc"ue c+#o &esarro""ar un Ser$"et o un SP/ $o a &ar unas e*ue,as in&icaciones. En este caso usarH Net(eans aun*ue Ec"ise inc"ue "as #is#as funciona"i&a&es nos er#ite integrar &esarro""o en #uchos "engua)es. Lo ri#ero ser' insta"ar Net(eans &es&e "a 'gina oficia". Ve#os *ue tene#os una oci+n en "a *ue inc"uso est'n inc"ui&os -o#cat G"assish. Esta es "a reco#en&a&a ara o&er ir hacien&o "as rue(as. -en en cuenta *ue -o#cat no se insta"a or &efecto as *ue ha(r' *ue u"sar en ersona"i@ar &urante "a insta"aci+n Fco#o in&ica "a i#agen se"eccionar"o. Inc"uso aun*ue "o haga#os &e rue(a For suuesto en un caso rea" "a #'*uina &e &esarro""o e" ser$i&or nunca &e(en ser e" #is#o es referi("e insta"ar Net(eans en "a #'*uina anfitri+n o en otra $irtua" a *ue esta#os acti$an&o otro ser$i&or -o#cat. Si a tene#os Net(eans insta"a&o F un ser$i&or &e a"icaciones no *uere#os "a $ersi+n &e arri(a/ segui#os estas instrucciones ara a,a&ir configurar e" fra#e7orK &e re& . E" tio &e roecto *ue se &e(e crear es &e" gruo a$a We(. Por &efecto a nos crea un SP &e tio ?o"a 1un&o. Un Ser$"et es una c"ase &e )a$a reara&a ara funcionar en "a 7e(. En este en"ace e"ican (re$e#ente c+#o rogra#ar Ser$"ets. A&e#'s recuer&a *ue he#os insta"a&o e)e#"os en "os *ue ue&es consu"tar e" c+&igo ara $er *uH hacen c+#o "o hacen. DesuHs &e e)ecutar o "i#iar contruir FC"ean d Bui"& o&re#os ir a "a careta &e" roecto en un su(&irectorio &ist ha(r' un archi$o WA4 *ue nos ser$ir' ara e" &es"iegue. En e" site ha un eemplo IEJI?7P;no.!ar *ue uso ara estos e)e#"os ue&es usar ara tus r'cticas. Cuan&o "o &escargues recuer&a *ue un WA4 es un archi$o e#a*ueta&o *ue se ue&e &esco#ri#ir ara o(tener "os archi$os caretas origina"es.
Sergio Cuesta Vicente %+% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Aun*ue no es e" o()eti$o &e" curso $a#os a $er e" e)e#"o &e" site a"gunos &e "os insta"a&os re$ia#ente. Los ire#os estu&ian&o uno a uno segn &iga e" rofesor co#entan&o en c"ase. So"o $ere#os "os #'s senci""os. Se &e)a co#o a#"iaci+n ara e" a"u#no *ue "o &esee $er e" resto.
Despliegue manual Eiten &os for#as &e ""e$ar a ca(o e" &es"iegue #anua" &e una a"icaci+n en nuestro ser$i&or &e a"icaciones/ ero son (astante si#i"ares. La ri#era es usan&o "a careta con to&os "os e"e#entos &e" roecto "a segun&a es con e" archi$o WA4. Para desplegar la carpeta so"o ha *ue coiar"a en e" &irectorio 7e(as &e "a u(icaci+n CA-ALINABASE!7e(as *ue en nuestro caso es !$ar!"i(!to#cat8!7e(as En e" e)e#"o he &esco#ri#i&o "os conteni&os &e" WA4 en una careta Prue(a *ue es "a *ue coio a 7e(as. 4ecuer&a *ue en nuestro fichero ser$er.#" aareca O$ost name9DlocalhostD
appIase9Debapp sD
unpackV#Es9Dtrue D auto&eploy9Dtru eDP
Si "a oci+n autoDe"o estu$iera a fa"se ha(ra *ue reiniciar e" ser$i&or/ ero en nuestro caso no hace fa"ta as *ue o&e#os ir a" na$ega&or 7e( acce&er a nuestra a"icaci+n en "a &irecci+n htt:!!"oca"host:=9=9!Prue(a! Desplegar el arc"ivo H#8 es igua" ero one#os e" archi$o &irecta#ente en "a careta 7e(as. -en en cuenta *ue ahora "a ruta &e "a
a"icaci+n "a &eter#ina e" no#(re &e" archi$o WA4 as *ue ser' htt:!!"oca"host:=9=9!9029SPUno!
Sergio Cuesta Vicente %+2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
4stableciendo nuestra aplicaci#n como la principal para el ser(idor La so"uci+n anterior est' (ien ara a"icaciones secun&arias/ ero ahora *uere#os *ue sea "a rincia" en "ugar &e "a 'gina &e inicio &e -o#cat. Esto ta#(iHn se ue&e hacer &e $arias for#as aun*ue "o ri#ero sera e"i#inar e" conteni&o &e "a careta 4OO- &e 7e(as. Si $as a hacer"o/ ten en cuenta *ue en nuestro caso es #e)or ca#(iar e" no#(re o #o$er e" conteni&o a otro sitio or si "uego *uere#os recuerar e" esta&o origina". Luego "as ociones seran: 2. Coiar e" conteni&o &e "a careta &e" roecto Fno e" roecto en s a 4OO-. 6. Ca#(iar e" no#(re a" archi$o WA4 or 4OO-.7ar co"ocar"o en 7e(as ara *ue "o &es"iegue -o#cat auto#'tica#ente en "a careta 4OO0. Crear un &escritor &e conteto &e "a a"icaci+n en "a careta CA-ALINABASE!conf!Cata"ina!"oca"host. 4ecuer&a *ue esta ruta ue&e $ariar &een&ien&o &e tu configuraci+n/ #otor host. Este &escritor se ""a#ar' 4OO-.#" en H" ha(r' *ue escri(ir Oxml 'ersion9D1.D encoding9D@"M-7DP O0ontext docIase9D5usr5share5%ruebaD 5P
Suonien&o *ue hu(iHra#os u(ica&o nuestra a"icaci+n en e" &irectorio !usr!share!Prue(a -en en cuenta *ue no ha *ue esecificar ath or*ue *uere#os *ue sea e" *ue se cargue a" acce&er &irecta#ente a "a &irecci+n &e" ser$i&or. Si usa#os esta oci+n reinicia#os -o#cat ara *ue $ue"$a a cargar "os archi$os &e configuraci+n.
Sergio Cuesta Vicente %+3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Despliegue con omcat Web 9anager 4ecuer&a *ue cuan&o $i#os e" We( 1anager nos sa"ta#os una arte *ue er#ita &es"egar a"icaciones.
La ri#era oci+n es ara &es"egar una a"icaci+n *ue est' en otro ser$i&or. So"o $a#os a $er "a oci+n &e a(a)o. Esta oci+n es e*ui$a"ente co"ocar un WA4 en 7e(as. A" inchar e" (ot+n ea#inar ten&re#os *ue u(icar e" WA4 &esea&o u"sa#os so(re &es"egar ara *ue acti$e "a a"icaci+n. Nos aarecer' en "a "ista &e a"icaciones o&re#os gestionar"a co#o a cua"*uier otra. Si u"sa#os en 4e"egar se e"i#inar'.
Sergio Cuesta Vicente %+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Autenticaci+n &e usuarios Los #Hto&os ara autenticar usuarios en -o#cat son "os #is#os *ue en Aache: Basic/ Digest/ or#u"arios ?-1L Certifica&os Digita"es. Los &os ri#eros a $i#os *ue tenan un ro("e#a si se a"ica(an so(re coneiones no seguras. En e" caso &e for#u"arios se esta("ece una 'gina For e)e#"o un SP *ue sir$a &e e"e#ento &on&e se rea"i@ar' "a autenticaci+n. En "os e)e#"os *ue he#os insta"a&o se uti"i@a as *ue despus de ver este apartado estar's reara&o ara enten&er c+#o funciona. Por e)e#"o e" &escritor &e &es"iegue &e" 7e( #anager uti"i@a autenticaci+n Basic se "e asigna un no#(re a" &o#inio. Of-- &e!ine the +ogin 0on!iguration !or this #pplication --P Ologin-con!igP Oauth-methodPI#G0O5auth-methodP Orealm-nameP"om cat *anager #pplicationO5real m-nameP O5login-con!igP
En -o#cat ca&a usuario tiene asocia&o uno o #'s ro"es. Son estos ro"es "os *ue se co#rue(an ara conectarse no e" usuario en si. En e" #is#o archi$o o&e#os $er "a configuraci+n &e autenticaci+n co#"eta con to&os "os ro"es &efini&os. ?e e"i#ina&o gran arte &e" c+&igo &e)an&o so"o un e)e#"o &e ca&a tio. En e" siguiente e)e#"o es i#ortante &estacar *ue esta#os &ec"aran&o: •
•
Securitconstraint una restricci+n &e seguri&a& en "a *ue se esecifica un recurso o co"ecci+n &e recursos. En este caso to&o "o *ue haa en e" &irectorio html/ se "e asigna un no#(re. A&e#'s ""e$a una restricci+n &e autori@aci+n &on&e se esta("ecen uno o #'s ro"es *ue o&r'n acce&er. "oginconfig &on&e se esecifica *uH #Hto&o se uti"i@ar' ara ""e$ar a ca(o e" contro" &e acceso. Es e" tro@o *ue $i#os antes.
Sergio Cuesta Vicente %+0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
•
securitro"e or "ti#o se esecifican "os ro"es *ue se no#(ran en "a seguri&a& &e esta a"icaci+n. Date cuenta &e *ue &e(en estar &efini&os con e" #is#o no#(re en e" archi$o/ (ase &e &atos/ etc *ue uti"ice#os ara "a autenticaci+n.
Of-- &e!ine a ecurity 0onstraint on this #pplication --P Of-- N<"F None o! these roles are present in the de!ault users !ile --P Osecurity-constraintP Oeb-resource-collectionP Oeb-resource-na meP$"*+ *anager inter!ace /!or humansAO5eb-reso urce-nameP Ourl-patternP5html5:O5url-patternP O5eb-resource-collectionP Oauth-constraintP Orole-namePmanager-guiO5role-nameP O5auth-constraintP O5security-constraintP
Of-- &e!ine the +ogin 0on!iguration !or this #pplication --P Ologin-con!igP Oauth-methodPI#G0O5auth-methodP Orealm-nameP"om cat *anager #pplicationO5real m-nameP O5login-con!igP Of-- ecurity roles re!erenced by this eb application --P Osecurity-roleP OdescriptionP "he role that is required to access the $"*+ *anager pages O5descriptionP Orole-namePmanager-guiO5role-nameP O5security-roleP
Sin e#(argo si nos $a#os a $er "a estructura &e caretas &e "a a"icaci+n #anager $e#os *ue no ha un su(&irectorio html/ or ningn "a&o. Para enten&er esto ha *ue tener en cuenta otras &os artes &e" archi$o. Nue$a#ente #e centro en un e)e#"o or*ue ha $arios co#o este.
Sergio Cuesta Vicente %+7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Oser'let-mappingP Oser'let-nameP$"*+*anagerO5ser'let-nameP Ourl-patternP5html5:O5url-patternP O5ser'let-mappingP
A*u a $e#os e" #is#o atr+n *ue esta#os (uscan&o. Un #aea&o a suena a una asociaci+n. Se asocia un no#(re con un atr+n U4L. Si nos conecta#os a" #anager con e" na$ega&or 7e( $ere#os *ue se a,a&e este html/ a "as &irecciones. Si te &as cuenta/ a" inchar en e" en"ace Esta&o &e" Ser$i&or se ca#(ia ht#" or status. -a#(iHn encontra#os un #aeo a este a,a&i&o a "as U4L si nos &a#os cuenta tiene su roia configuraci+n &e seguri&a& ro"es asocia&os. Oser'let-mappingP Oser'let-namePtatusO5ser'let-nameP Ourl-patternP5status5:O5url-patternP O5ser'let-mappingP
Q5uH ro"es &e seguri&a& tienen acceso a "os recursos &e statusR
Pero to&a$a nos fa"ta $er *uH es ese no#(re *ue se asocia a un atr+n U4L. Si #ira#os #'s arri(a en e" archi$o Oser'letP Oser'let-nameP$"*+*anagerO5ser'let-nameP Oser'let-classPorg.apache.catalina.manager.$"*+*anagerer'letO5ser'let-classP Oinit-paramP
Sergio Cuesta Vicente %++ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Oparam-namePdebugO5param-nameP Oparam-'alueP2O5param-'alueP O5init-paramP Of-- @ncomment this to sho proxy sessions !rom the Iackup manager in the sessions list !or an application Oinit-paramP Oparam-namePsho%roxyessionsO5param-nameP Oparam-'aluePtrueO5param-'alueP O5init-paramP --P Omultipart-con!igP Of-- (*I max --P Omax-!ile-siSeP(24277O5max-!ile-siSeP Omax-request-siSeP(24277O5max-request-siSeP O!ile-siSe-thresholdPO5!ile-siSe-thresholdP O5multipart-con!igP O5ser'letP
Don&e "o #'s i#ortante or ahora son "as ri#eras "neas *ue asocian un no#(re a una c"ase &e a$a. Po&e#os $er otros &os factores Fsin entrar #ucho #'s en &eta""e or*ue no es e" o()eti$o &e este unto *ue nos au&ar'n a co#ren&er esto. En /usr/share/tomcat+G admin/manager/inde.@sp o&e#os $er "o siguiente: O response.sendEedirect/response.encodeEedirect@E+/request.get0ontext%ath/A [ D5htmlDAA\ P
5ue inc"uso con "os conoci#ientos *ue tene#os $e#os *ue re&irecciona "as eticiones a" #is#o ath ero con !ht#" a" fina". La "ti#a &u&a es Q&+n&e est' e" ser$"et a" *ue se asocia e" no#(re ?-1L1anagerR No aarece or "a estructura &e caretas &e "a a"icaci+n. De(e#os recor&ar *ue ha un &irectorio &e (i("iotecas co#arti&as: /usr/share/tomcat+/lib en H" ha un archi$o *ue se ""a#a cata"ina.)ar Fco#o arte &e" no#(re co#"eto &e "a c"ase. 4ea"#ente es un en"ace si#(+"ico a" archi$o ../../@a(a/tomcatGcatalinaG+..27.@ar o "o *ue es "o #is#o /usr/share/../../@a(a/tomcatGcatalinaG+..27.@ar
Sergio Cuesta Vicente %+8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Si ea#ina#os este archi$o encontrare#os e" &ichoso ser$"et. -o&o este funciona#iento se (asa en e" e"e#ento 4ea"# &e" *ue a he#os ha("a&o. 4ecuer&a *ue o&a ir &entro &e "os e"e#entos Engine/ ?ost/ Contet o C"uster co#o en otros casos esto in&icar' a *uH se a"ica. Posterior#ente $ere#os co#o configurar &iferentes ealms/ ero or ahora nos $a"e con sa(er *ue en e" caso or &efecto se (asa en e" archi$o tomcatGusers.ml
4@emplos de autenticaci#n Va#os a $er a"gunos e)e#"os &e autenticaci+n &e "os #Hto&os #enciona&os. E" caso &e certifica&os &igita"es e$i&ente#ente no ten&r' senti&o hasta *ue $ea#os "a integraci+n con SSL. a conoce#os "os ro("e#as &e seguri&a& &e ?--P. a he#os $isto co#o &es"egar a"icaciones hechas con Net(eans Fcon Ec"ise es #u si#i"ar/ or "o *ue $o a rea"i@ar ro(ar "os e)e#"os &irecta#ente en Net(eans. Para #o&ificar e" archi$o to#catusers.#" ha *ue (uscar"o ri#ero: 2. 6. 0. <. ;. .
Se"ecciona "a esta,a Ser$ices En Ser$ers hac c"ic con e" (ot+n &erecho so(re Proerties. Co#rue(a *ue es -o#cat no G"assish es *ue est' se"ecciona&o. Coia "a ruta &e CA-ALINABASE Cierra "a $entana. ?a@ c"ic en "os #ens en i"e Oen i"e $ete a "a ruta &e CA-ALINABASE a" &irectorio conf *ue ha &entro. Se"ecciona e" archi$o to#catusers.#" 8. Ahora ue&es #o&ificar e" archi$o *ue se usar'. 4ecuer&a *ue esto tienes *ue $o"$er a hacer"o en e" archi$o to#catusers.#" en e" ser$i&or &on&e &es"iegues "as a"icaciones osterior#ente. Este ser$i&or es so"o ara rue(as. =. En #i caso $o a &e)ar"o co#o se $e a continuaci+n. Ouser username9DideD passord9D#y<2yb@tD roles9Dmanager-script,adminD5P Orole rolename9Dpruebas D5P
Sergio Cuesta Vicente %+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Orole rolename9DotroD5P Ouser username9DsergioD passord9Dsergio D roles9DpruebasD 5P Ouser username9DcuestaD passord9Dcuesta D roles9Dpruebas, otroD5P Ouser username9D'icente D passord9D'icen teD roles9DpruebasD5 P O5tomcat-usersP
-en en cuenta *ue si e" ser$i&or a est' inicia&o &e(es reiniciar"o ara *ue cargue "a configuraci+n. Para esto ha@ c"ic con e" (ot+n &erecho so(re e" ser$i&or -o#cat u"sa 4estart o "a oci+n *ue necesites en ca&a caso. B#7&C Pri#ero $a#os a crear e" ser$"et/ se hace co#o cua"*uier otra c"ase &e a$a ero se"eccionan&o Ser$"et co#o tio "uego tienes *ue #arcar "a casi""a *ue a,a&e infor#aci+n a" 7e(.#" Oxml 'ersion9D1.D encoding9D@"M-7DP Oeb-app 'ersion9D3.D xmlns9Dhttp55Ca'a.sun.com5xml5ns5Ca'aeeD xmlnsxsi9Dhttp55.3.org5215U*+chema-instanceD xsischema+ocation9Dhttp55Ca'a.sun.com5xml5ns5Ca'aee http55Ca'a.sun.com5xml5ns5Ca'aee5eb-app838.xsdDP Oser'letP Oser'let-namePIasicer'letO5ser'let-nameP Oser'let-classPbasic.Iasicer'letO5ser'let-classP O5ser'letP Oser'let-mappingP Oser'let-namePIasicer'letO5ser'let-nameP Ourl-patternP5Iasicer'letO5url-patternP O5ser'let-mappingP Osession-con!igP Osession-timeoutP 3
Sergio Cuesta Vicente %8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
O5session-timeoutP O5session-con!igP O5eb-appP
De(e#os #o&ificar esto ara *ue se correson&a con "o *ue one a continuaci+n: Oxml 'ersion9D1.D encoding9D@"M-7DP Oeb-app 'ersion9D3.D xmlns9Dhttp55Ca'a.sun.com5xml5ns5Ca'aeeD xmlnsxsi9Dhttp55.3.org5215U*+chema-instanceD xsischema+ocation9Dhttp55Ca'a.sun.com5xml5ns5Ca'aee http55Ca'a.sun.com5xml5ns5Ca'aee5eb-app838.xsdDP Oser'letP Oser'let-namePIasicer'letO5ser'let-nameP Oser'let-classPbasic.Iasicer'letO5ser'let-classP O5ser'letP Oser'let-mappingP Oser'let-namePIasicer'letO5ser'let-nameP Ourl-patternP5Iasicer'letO5url-patternP O5ser'let-mappingP Of-- esto es lo que a_adimos para la seguridad b^sica --P Of-- %rimero una restriccin de seguridad --P Osecurity-constraintP Oeb-resource-collectionP Oeb-resource-namePFl : signi!ica que pedimos sutenticacin para toda la aplicacinO5eb-resource-nameP Ourl-patternP5:O5url-patternP Ohttp-methodPLF"O5http-methodP Ohttp-methodP%<"O5http-methodP O5eb-resource-collectionP
Sergio Cuesta Vicente %8% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Oauth-constraintP Orole-namePpruebasO5role-nameP O5auth-constraintP Ouser-data-constraintP Of-- hay tres tipos 0
timeoutP O5session-con!igP O5eb-appP
Con esto Ften en cuenta *ue nos ha crea&o un ser$"et a ten&ra#os "a autenticaci+n ('sica funcionan&o/ ero o&e#os #o&ificar e" ser$"et ara *ue nos roorcione cierta infor#aci+n.
Sergio Cuesta Vicente %82 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
transortguarantee tiene *ue ser NONE/ ero cuan&o ha(i"ite#os SSL &e(era#os ca#(iar"o a CONDIEN-IAL ara *ue nos re&iriga "as eticiones ?--P a ?--PS se trans#ita "a infor#aci+n &e esa #anera. Si *uere#os e)ecutar este ser$"et or &efecto en Net(eans &e(e#os hacer: 2. C"ic con e" (ot+n &erecho so(re e" roecto se"eccionar Proerties 6. Se"eccionar 4un 0. Escri(ir e" no#(re &e" Ser$"et Fsin etensi+n en 4e"ati$e U4L -en en cuenta *ue si "o &es"ega#os en nuestro ser$i&or -o#cat &e ro&ucci+n "a U4L sera "a correson&iente a "a a"icaci+n #'s e" no#(re &e" ser$"et. .e): htt:!!"oca"host:=9=9!no#a"icaci+n!no#ser$"et Pue&es $er to&o esto e" Ser$"et #o&ifica&o *ue roorciona infor#aci+n so(re "a conei+n en e" eemplo IE2I?basic.!ar &e" site. Aun*ue no es e" o()eti$o &e" #+&u"o/ este tutoria" &e Net(eans ue&e serte &e uti"i&a&. D&<=7+ La nica &iferencia entre e" uso &e BASIC DIGES- consiste en ca#(iar esa a"a(ra en 7e(.#". La nica &iferencia en e" funciona#iento es *ue "a contrase,a se co&ifica/ ero no encrita or "o *ue si a"guien "a interceta es r'ctica#ente igua" &e $u"nera("e.
1o&ifica e" e)e#"o 9069(asic.7ar ara *ue use DIGES- co#rue(a "a &iferencia en e" resu"ta&o.
4*89 Este #Hto&o se (asa en for#u"arios ?-1L.
Sergio Cuesta Vicente %83 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Lo ri#ero *ue ca#(ia es en e" archi$o 7e(.#" e" e"e#ento "oginconfig
Ologin-con!igP Oauth-methodPM
Los &os archi$os ?-1L in&ican en *uH 'gina se har' e" "ogin a cu'" nos re&irigir' si fa""a e" intento. -o&o esto ta#(iHn se ue&e configurar en Net(eans inchan&o en "a esta,a Securit cuan&o esta#os $ien&o e" archi$o 7e(.#" Este #Hto&o se (asa en e" uso &e tres e"e#entos: 2. )securitchecK: *ue rocesa e" for#u"ario. 6. )userna#e: co#o e"e#ento &on&e se en$iar' e" no#(re &e usuario. 0. )ass7or&: ara en$iar "a contrase,a. Pue&es estu&iar e" eemplo IEEI?form &e" site ara $er to&os estos e"e#entos. Para ro(ar &e(es intentar acce&er a" e"e#ento or#Ser$"et/ a tra$Hs &e "a ruta si "o tienes en un -o#cat o configuran&o Net(eans si "o est's ro(an&o con e" ser$i&or integra&o. E" e)e#"o usa sesiones a&e#'s or "o *ue ue&es $er un uso tota"#ente ('sico &e e""o.
Sergio Cuesta Vicente %8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Dominios de seguridad para la autenticaci#n Un &o#inio F4ea"# es a"gn tio &e asociaci+n entre usuarios/ contrase,as "os ro"es asocia&os. Los ro"es son a"go si#i"ar a "os gruos &e Linu en -o#cat e" acceso no se roorciona a ni$e" &e usuario si no &e ro". Un usuario ue&e tener asocia&o un n#ero i"i#ita&o &e ro"es. Eisten seis tios ('sicos en -o#cat aun*ue ha otros eten&i&os cua"*uiera ue&e rogra#ar uno *ue etien&a &e estos: 2. DBC8ealm: La infor#aci+n &e usuarios/ contrase,as ro"es se a"#acena en una (ase &e &atos re"aciona" se acce&e #e&iante un &ri$er DBC. 6. Data7ource8ealm: La infor#aci+n ta#(iHn se guar&a en una (ase &e &atos re"aciona"/ ero se acce&e a e""a #e&iante una fuente con no#(re &e tio NDI DBC DataSource. NDI Fa$a Na#ing an& Director Interface es un ser$icio &e a$a *ue er#ite (uscar o()etos &atos or no#(re. 0. D&8ealm: La infor#aci+n se a"#acena en un ser$i&or LDAP se acce&e con NDI. <. ;serDatabase8ealm: La infor#aci+n se a"#acena en "o *ue se conoce co#o una fuente NDI &e Base &e Datos &e Usuarios. Lo #'s ha(itua" es *ue se aoe en un archi$o #". Por e)e#"o &e con6/tomcatGusers.ml aun*ue no es esta "a oci+n *ue se usa or &efecto sino "a siguiente. La infor#aci+n ue&e actua"i@arse &in'#ica#ente/ ero no se reco#ien&a ara gran&es siste#as. ;. 9emor38ealm: La infor#aci+n est' a"#acena&a en un archi$o J1L *ue se carga en #e#oria a" iniciar -o#cat. Si se #o&ifica e" archi$o "a infor#aci+n no se usa hasta *ue se reinicie -o#cat. Es e" caso *ue $eni#os usan&o con conf!to#catusers.#". Por suuesto no se reco#ien&a en ro&ucci+n. . ##78ealm: Se uti"i@a e" fra#e7orK a$a Authentication d Authori@ation Ser$ice FAAS. Es e" #'s sofistica&o &e to&os. Nosotros so"o $ere#os a"gunos. a he co#enta&o *ue ha otros *ue etien&en &e estos. -o&a esta infor#aci+n #ucha #'s se ue&e consu"tar en "a 'gina &e "a &ocu#entaci+n &e -o#cat. 7olo puede "aber un 8ealm funcionando a la ve/ or "o tanto si rue(as "os e)e#"os anteriores tras configurar 4ea"#s &iferentes $er's
*ue usa ara conectarse e" 4ea"# acti$o.
Sergio Cuesta Vicente %80 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
9emor38ealm Es e" caso *ue he#os esta&o usan&o or &efecto a" conectarnos or e)e#"o a" #anager &e a"icaciones 7e(. a he#os $isto *ue "a infor#aci+n se a"#acena en un fichero J1L *ue or &efecto es tomcatGusers.ml
A" iniciar e" ser$i&or se carga "a infor#aci+n &e usuarios &e" archi$o en #e#oria no se $ue"$e a actua"i@ar hasta *ue se reinicie e" ser$i&or. Por este #oti$o or "a (a)a seguri&a& *ue suone tener "os usuarios contrase,as en un fichero &e teto "ano. Es e" caso *ue $i#os co#o e)e#"o en e" unto anterior. Esto se concreta en "os untos: 2. Gestionar "os usuarios en e" archi$o J1L correson&iente. 6. Crear e" &o#inio. Para e""o en e" archi$o &e conteto *ue &eter#ine#os For e)e#"o en e" *ue se encuentre en e" &irectorio 1E-AIN esecfico &e ca&a a"icaci+n escri(ire#os "o siguiente: O0ontextP OEealm className9Dorg.apache.catalina.realm.*emoryEealmD 5P O50ontextP
?e &e)a&o "as eti*uetas &e" conteto ara e$i&enciar *ue $a &entro. 0. Crear "as restricciones &e seguri&a& &e" recurso en e" &escritor &e &es"iegue correson&iente. Esto se hace con e" e"e#ento securitconstraint <. Deter#inar e" tio &e acceso a" recurso. "oginconfig ;. Esta("ecer uno o #'s ro"es *ue ue&an acce&er a" e"e#ento. securitro"e
Sergio Cuesta Vicente %87 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
;serDatabase8ealm Este tio es una e*ue,a #o&ificaci+n &e" anterior *ue nos er#ite si#u"ar *ue esta#os rea"i@an&o "a autenticaci+n con una (ase &e &atos. La nica &iferencia con e" anterior es *ue se rea"i@a a tra$Hs &e un recurso NDI. &9P*8+#+= 4ea"#ente #ent en e" unto anterior or*ue e" caso *ue se uti"i@a en e" ser$i&or &e -o#cat segn "o he#os insta"a&o es
Hste. Pero a" ser una etensi+n &e" anterior he referi&o searar "a e"icaci+n en &os artes. Para $er"o tene#os *ue ir a" archi$o ser$er.#"
Of-- Llobal BN&G resources &ocumentation at 5docs5Cndi-reso urces-hoto.html --P OLlobalNamingEesourcesP Of-- Fditable user database that can also be used by @ser&atabaseEeal m to authenticate users --P OEesource name9D@ser&atabas eD auth9D0ontainerD type9Dorg.apache.catalina.@ser&atabaseD description9D@ser database that can be updated and sa'edD !actory9Dorg.apache.catalina.users.*emory@ser&atabaseMactoryD pathname9Dcon!5to mcat-users.xmlD 5P O5LlobalNamingEesourcesP
Si nos &a#os cuenta se &efine un recurso g"o(a" &e tio serDatabase *ue se asocia a" archi$o tomcatGusers.ml A&e#'s un oco #'s a(a)o Of-- @se the +ock
Sergio Cuesta Vicente %8+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
OEealm className9Dorg.apa che.catalina.real m.+ock
Ve#os Ve#os *ue se &efine e" ealm F#ira e" interno ri#ero ri#ero *ue es )usto &e" tio *ue esta#os co#entan& co#entan&o o en este unto. E" ealm eterior =ocB>utealm arece interesante segn "o *ue e"ican "os co#entarios QnoR Es un contene&or ara asegurar e" ealm *ue uti"ice#os se ue&e $er en "a 'gina &e "a &ocu#entaci+n &e -o#cat -o#cat.. Por "o tanto a "os untos &e 1e#or4ea"# ha(ra *ue a,a&ir Fe" ri#ero se a,a&e e" segun&o es una #o&ificaci+n: 2. Config Configura urarr e" recurs recurso o DNI DNI 6. Crear e" 4ea"# ara *ue sea &e tio UserData(ase4ea"# UserData(ase4ea"# en "ugar &e 1e#or4ea"# 1e#or4ea"#
Uti"i@an&o 1e#or4ea"#/ esta("ece un tio &e contro" &e acceso ('sico a una a"icaci+n *ue &es"iegues en tu ser$i&or ue&es usar e" e)e#"o &e" site. Esta("ece un ro" cuo i&entifica&or sea tu ae""i&o a" #enos un usuario con tu no#(re. Prue(a e" acceso. 4ea"#ente so"o ue&e ha(er un 4ea"# actuan&o en una a"icaci+n en un #o#ento &a&o. Esta afir#aci+n i#"ica F&e(es e"egir una &e "as &os resuestas &esuHs &e ro(ar:
Sergio Cuesta Vicente %88 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
2. Se uti"i@a e" 4ea"# #'s concreto co#o con "as &irecti$as &e Aache. 6 .?a *ue e"i#inar e" 4ea"# &e ser$er.#" or*ue si noZ E"i#ina e" contro" &e acceso anterior rea"i@a "o #is#o con UserData(ase4ea"# QPue&es esta("ecer e" contro" &e acceso so"o ara a"guna arte &e "a &ocu#entaci+nR Q ara un archi$o en articu"arR A" $er "a estructura &e caretas &e una A"icaci+n We( &eca#os *ue to&o "o *ue no se u(icara en WEBIN o en 1E-AIN era ("ico. QAfecta a estoR Crea otro ro" en e" archi$o &e usuarios ero no "e &es acceso a "a a"icaci+n &e &ocu#entaci+n. Co#rue(a *ue no tiene acceso ero e" otro ro" s. 4ecuer&a *ue &e(es reiniciar e" ser$i&or F-o#cat tras ca&a ca#(io.
DBC8ealm Este caso necesita una (ase &e &atos ara funcionar or "o *ue e#e@are#os insta"an&o 1S5L. 1S5L . Los usuarios ahora se u(icar'n en una (ase &e &atos con ta("as &e usuarios/ ro"es "a re"aci+n entre e""os. Los no#(res &e estos e"e#entos se ue&en e"egir configurar ero ha unos r'ctica#ente est'n&ar *ue ser'n "os *ue use#os.
-o#cat se conecta a (ases &e &atos #e&iante una tecno"oga ""a#a&a -a(a Database Connecti(it' FDBC. FDBC. DBC funciona co#o una caa &e a(stracci+n entre "as (ases &e &atos "os e"e#entos *ue "a $aan a usar. De esta for#a -o#cat -o#cat se co#unica con "a API &e DBC en "ugar &e con "a (ase &e &atos &irecta#ente. As se consigue no &een&er &e "as ecu"iari&a&es &e ca&a (ase &e &atos. DBC se co#unica con "a (ase &e &atos a tra$Hs &e un &ri$er *ue con$ierte "as +r&enes &irecta#ente a" for#ato esecfico &e ca&a (ase &e &atos.
Sergio Cuesta Vicente %8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
a tene#os tene#os insta"a&o 1S5L DBC *ue se inc"ue en a$a or "o *ue e" siguiente aso ser' insta"ar e" &ri$er. Para e""o o&e#os &escargar e" &ri$er &es&e su 7e( co"ocar"o en CA-ALINA?O1E!"i( CA-ALINA?O1E!"i( *ue en nuestro caso est' en /usr/share/tomcat+/lib "o *ue "o har' &isoni("e ara to&as "as a"icaciones &e -o#cat -o#cat o co"ocar"o en e " &irectorio WEBIN!"i( &e una a"icaci+n esecfica ara *ue estH &isoni("e en e""a. Co#o a"ternati$a o&e#os insta"ar"o ara *ue estH &isoni("e ara cua"*uier a"icaci+n *ue use "a V1 &e a$a: sudo apt-get install libmysql-Ca'a
esta("ece#os e" CLASSPA-? 0+#%#"$9D.5usr5share5Ca'a5mysql.CarD
=ste Altimo mtodo da problemas por%ue el uso de classpat" 3a no est$ recomendado. osotros usaremos el mtodo de colocarlo en las librer1as comunes de +omcat.
-ras "o *ue ha(r' *ue reiniciar ara *ue se cargue. Ahora/ ten&re#os *ue crear "a configuraci+n correcta en 1S5L ara "a gesti+n &e usuarios ro"es. Para e""o usare#os e" siguiente scrit &e e)e#"o &E<% "#I#F GM FUG" tomcat8realm\ 0EF#"F "#I#F tomcat8realm\ @F tomcat8realm\ 0EF#"F "#I+F tomcat8users / user8name 'archar/2A N<" N@++ %EG*#E =F,
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
passord 'archar/32A N<" N@++ A\ 0EF#"F "#I+F tomcat8roles / role8name 'archar/2A N<" N@++ %EG*#E =F A\ 0EF#"F "#I+F tomcat8users8roles / user8name 'archar/2A N<" N@++, role8name 'archar/2A N<" N@++, %EG*#E =F /user8name, role8nameA, 0
La ta("a *ue "ista "os ro"es no es necesaria "as c"a$es a)enas ta#oco/ ero "as he#os crea&o or #antener "a correcci+n. En #i caso $o a crear este scrit en un &irectorio ara tener"o accesi("e en to&o #o#ento. L"a#o a" scrit tomcatusers.s1l mkdir 5usr5db-scripts cd 5usr5db-scripts5
Sergio Cuesta Vicente %% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
gedit tomcatusers.sql
Acce&e#os a 1S5L mysql -u root -p
&entro &e 1S5L e)ecuta#os e" scrit mysqlP source 5usr5db-scripts5tomcatusers.sql
co#ro(a#os *ue to&o haa i&o (ien. mysqlP select : !rom tomcat8users\ mysqlP select : !rom tomcat8users8roles\ quit
Ahora crea#os un usuario ara *ue se conecte e" 4ea"# *ue cree#os en -o#cat. Creo un scrit *ue se ""a#e usuarioealm.s1l @F mysql\ 0EF#"F @FE QaccesoEealmQWQlocalhostQ G&FN"GMGF& I QpdEealmQ\ LE#N" F+F0"
"o e)ecuto
Sergio Cuesta Vicente %2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mysqlP source 5usr5db-scripts5usuarioEealm.sql
En e" archi$o ser$er.#" #o&ifico "a secci+n &e" 4ea"# co#entan&o e" *ue ha e intro&ucien&o e" &e "a (ase &e &atos.
Of-- @se the +ock
Estu&ia "os ar'#etros &e configuraci+n &e" 4ea"# &iscte"os en c"ase.
-ras esto reinicia#os -o#cat -o#cat si no reci(i#os ningn error he#os configura&o e" 4ea"# (ien.
Sergio Cuesta Vicente %3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
5etc5init.d5tomcat6 restart
-en en cuenta *ue e" error ue&e estar en "os ficheros &e "og &e -o#cat. Aun*ue "uego $ere#os #'s so(re esto/ tienes *ue #irar en e" &irectorio /(ar/lib/tomcat+/logs (uscar e" archi$o con "a fecha &e ho &e "os *ue tengan un no#(re co#o catalina.2%3G%G27.log ten en cuenta *ue ue&es (orrar e" conteni&o &e" "og ara encontrar #'s f'ci"#ente "os nue$os errores. E" error #'s ha(itua" es *ue no encuentre e" &ri$er DBC ene 2), 213 74637 #* org.apache.catalina.realm.B&I0Eealm authenticate FJFEF Excepción al realizar la autentificación java.sql.SQLException: com.mysql.jdc.!river at org.apache.catalina.realm.B&I0Eealm.open/B&I0Eealm.Ca'a61A at org.apache.catalina.realm.B&I0Eealm.authenticate/B&I0Eealm.Ca'a3(2A at org.apache.catalina.realm.0ombinedEealm.authenticate/0ombinedEealm.Ca'a14)A at org.apache.catalina.realm.+ock
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ca'a.util.concurrent."hread%oolFxecutorKVorker.run/"hread%oolFxecutor.Ca'a)3A at Ca'a.lang."hread.run/"hread.Ca'a622A "aused y: java.lan#."lassNot$oundException: com.mysql.jdc.!river at Ca'a.net.@E+0lass+oaderK1.run/@E+0lass+oader.Ca'a3))A at Ca'a.net.@E+0lass+oaderK1.run/@E+0lass+oader.Ca'a3((A at Ca'a.security.# ccess0ontroller.d o%ri'ileged/Nati' e *ethodA at Ca'a.net.@E+0lass+oader.!ind0lass/@E+0lass+oader.Ca'a3(4A at Ca'a.lang.0lass+oader.load0lass/0lass+oader.Ca'a423A at Ca'a.lang.0lass+oader.load0lass/0lass+oader.Ca'a3()A at Ca'a.lang.0lass.!orName/Nati'e at Ca'a.lang.0lass .!orName/0lass.Ca 'a17)A at org.apache.cata lina.realm.B&I0Ee alm.open/B&I0Eeal m.Ca'a)6A ... 1) more
*ethodA
5ue se ro&uce or*ue no has co"oca&o (ien e" archi$o A4 con e" &ri$er o no est' funcionan&o (ien e" CLASSPA-?. Prue(a a acce&er a" 7e(#anager. No ue&es or*ue en "a (ase &e &atos no he#os asigna&o e" ro" correcto a" usuario. Para e""o he crea&o otro scrit manager.s1l @F tomcat8realm\ GNFE" GN"< tomcat8roles /role8nameA J#+@F /Qmanager-guiQA\ GNFE" GN"< tomcat8users8roles /user8name, role8nameA J#+@F /QsergioQ, Qmanager-guiQA\ 0<**G"\
Prue(a a &es"egar a"icaciones con contro" &e acceso en e" ser$i&or Fte ue&en ser$ir a"gunos &e "os e)e#"os &e" site rue(a a conectarte con UserData(ase4ea"#. DesuHs configura DBC4ea"# $ue"$e a ro(ar.
Sergio Cuesta Vicente %0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ainistraci+n &e sesiones. Sesiones ersistentes -o#cat uti"i@a un Persistent Session 1anager ara rea"i@ar coias &e "as sesiones &e "os usuarios en e" &isco. Esta gesti+n &e sesiones es ('sica ara e" funciona#iento &e "as a"icaciones. Per#ite rea"i@ar $arias #e)oras so(re "as sesiones sien&o "as rincia"es/ e" esta("eci#iento &e un tie#o #'i#o &e $i&a ara "as sesiones inacti$as guar&an&o "as sesiones en &isco cuan&o se aaga -o#cat/ "o *ue er#ite *ue "as sesiones se #antengan &urante $arias e)ecuciones &e" ser$i&or. ?a &efini&a un Intefa@ org.aache.cata"ina.1anager ara gestionar "as sesiones. Se configura #e&iante e" e"e#ento 1anager en a"guno &e "os archi$os &e conteto Fe" g"o(a" contet.#" o e" #is#o en e" &irectorio 1E-AIN &e a"guna a"icaci+n. -o#cat incorora &os i#"e#entaciones &e esta interfa@: org.aache.cata"ina.session.Stan&ar&1anager: *ue es "a i#"e#entaci+n *ue se usa or &efecto si no se esecifica otra. org.aache.cata"ina.session.Persisten1anager: *ue er#ite guar&ar "as sesiones en una (ase &e &atos aarte &e en un &isco. No $a#os a entrar en #uchos &eta""es so(re estas c"ases ero se ue&en consu"tar en "a &ocu#entaci+n &e -o#cat. • •
Si $a#os a" archi$o &e conteto gedit 5etc5tomcat65context.xml
o&e#os $er *ue or &efecto $iene acti$a&o
Of-- @ncomment this to disable session persistence across "omcat restarts --P Of-O*anager pathname9DD 5P
Sergio Cuesta Vicente %7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
--P
Ve#os *ue si "o &esco#enta#os NO ten&ra#os sesiones ersistentes aun*ue reinici'ra#os -o#cat. Po&e#os conectarnos a" 7e( #anager htt:!!"oca"host:=9=9!9009for#!or#Ser$"et
&e
-o#cat
htt:!!"oca"host:=9=9!#anager!ht#"
ro(ar
a
acce&er
a"
Po&e#os $er *ue si a(ri#os cerra#os e" na$ega&or $arias $eces se reinicia "a sesi+n ero si tene#os a(ierto e" na$ega&or se #antiene ara cuan&o $o"$a#os. Ca&a $e@ *ue cerra#os e" na$ega&or se su#a una sesi+n a" n#ero &e sesiones &e "a "ista.
Si hace#os c"ic so(re e" n#ero &e sesiones o&re#os ir a "a anta""a &e gesti+n
Don&e tene#os $arias ociones: • •
•
•
Pinchar en e" no#(re &e una co"u#na ara *ue ser or&enen "as sesiones or ese criterio. 4efrescar "a "ista. 1ientras esta#os gestionan&o esto ue&en estar ca#(ian&o "as sesiones or #uchos #oti$os/ or e)e#"o un usuario se conecta o &esconecta. Se"eccionar una o #'s sesiones ara in$a"i&ar"as osterior#ente con e" (ot+n correson&iente. Esta ter#inar' "a sesi+n e" usuario ten&r' *ue $o"$er a crear"a For e)e#"o autentic'n&ose en "a a"icaci+n. Pinchar en e" i&entifica&or &e "a sesi+n ara $er sus &eta""es.
Sergio Cuesta Vicente %+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Po&e#os co#ro(ar *ue aun*ue reinicie#os -o#cat o inc"uso "a #'*uina $irtua" "as sesiones se #antienen. Si #ira#os e" &escritor &e &es"iegue &e una a"icaci+n o&e#os $er *ue es osi("e configurar e" tie#o *ue se #anten&r'n "as sesiones inacti$as. Si tu$iHra#os a"icaciones *ue re*uieren #ucha seguri&a& con$iene (a)ar"o ara *ue cuan&o e" usuario se ausente se ter#ine "a conei+n.
Osession-con!igP Osession-timeoutP 3 O5session-timeoutP O5session-con!igP
Sergio Cuesta Vicente %8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Si #ira#os "a "ista &e a"icaciones &e" #anager $e#os *ue o&e#os cerrar "as sesiones *ue ""e$en inacti$as #'s &e un tie#o *ue onga#os. Para e""o se escri(e e" tie#o se u"sa e" (ot+n. Por suuesto so"o tiene senti&o en caso &e *ue e" tie#o *ue escri(a#os sea #enor *ue e" esta("eci&o or &efecto ara "a a"icaci+n. Por &efecto se uti"i@a e" Standard9anager *ue guar&a "as sesiones en un archi$o S4SS,>FS.ser *ue se u(ica en e" &irectorio $orB &e ca&a a"icaci+n. Estos archi$os se crean a" &etener -o#cat se &estruen cuan&o se reinicia or "o *ue si *uieres $er"os tienes *ue arar -o#cat. -en en cuenta *ue si -o#cat no se aaga correcta#ente For e)e#"o or un fa""o en "a corriente no se guar&an "as sesiones. Para configurar #'s asectos &e "as sesiones usara#os e" e"e#ento 1anager &e "os archi$os &e conteto C;&D#D*: en e" siguiente e)e#"o/ "a c"ase in&ica&a en rea"i&a& es "a interfa@ *ue tienen *ue i#"e#entar "as c"ases ara o&er usarse en e"
e"e#ento #anager. De(era ser una c"ase concreta/ or e)e#"o una &e "as &os *ue one a" rinciio &e" unto. -en en cuenta *ue e" a*uete &e "a c"ase ta#oco es e" #is#o ara "a interfa@ "as c"ases concretas. Oxml 'ersion9D1.D encoding9D@"M-7DP O0ontext antiB#E+ocking9DtrueD path9D5338!ormDP O*anager className 9 Dorg.apache.cat alina.*anagerD distributable 9 DtrueD max#cti'eession s 9 D2(D maxGnacti'eGnter 'al 9 D12D sessionGd+ength 9 D1)D 5P O50ontextP
Estu&ia "os atri(utos co#unes a to&as "as i#"e#entaciones &e 1anager en "a &ocu#entaci+n. Co#Hnta"os en c"ase.
Sergio Cuesta Vicente % de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Q5uH hace e" atri(uto ath &e Standard9anager R Q5uH $a"or "e &aras ara &esha(i"itar "as sesiones ersistentesR
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Archi$os &e registro &e acceso fi"tro &e so"icitu&es Co#o cua"*uier ser$i&or/ en -o#cat es #u i#ortante registrar a"gunos tios &e acti$i&a&. En e" &irectorio /etc/tomcat+ o&e#os $er &os archi$os *ue hacen referencia a estos registros. E" ri#ero es logging.properties e" segun&o ser(er.ml . A#(os hacen referencia a" &irectorio CA-ALINABASE!"ogs *ue en nuestra insta"aci+n se encuentra co#o en"ace si#(+"ico en !$arF"i(!to#cat8!"ogs Es una (uena r'ctica re$isar (orrar "os archi$os &e registro eri+&ica#ente a *ue ue&en crecer #ucho aca(ar afectan&o a" ren&i#iento &e" ser$i&or. En ese &irectorio o&e#os $er cuatro tios &e archi$os &e registro: 2. cata"ina.fecha."og: Estos archi$os guar&an "a acti$i&a& &e" #otor &urante un &a &eter#ina&o. 6. cata"ina.out: es un co#en&io &e "os anteriores. 0. "oca"host.fecha."og: guar&an "a acti$i&a& &e" sitio. <. "oca"hostaccess"og.fecha.tt: son registros &e acceso a "as a"icaciones &e" ser$i&or &urante un &a. Son "os *ue tratare#os a*u. Este "ti#o tio se aarece configura&o en e" archi$o ser$er.#" &entro &e" e"e#ento ?ost Of-- #ccess log processes all example. &ocumentation at 5docs5con!ig5'al' e.html Note "he pattern used is equi'alent to using pattern9DcommonD --P OJal'e className9Dorg.a pache.catalina.'a l'es.#ccess+ogJal 'eD directory9DlogsD pre!ix9Dlocalhos t8access8log.D su!!ix9D.txtD pattern9Dh l u t quot\rquot\ s bD 5P
Sergio Cuesta Vicente 2% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
co#o o&e#os $er nos refiere a una 'gina &e "a &ocu#entaci+n *ue he#os insta"a&o ero *ue ta#(iHn o&e#os $er en "a 'gina &e Aache. -ene#os *ue &arnos cuenta &e *ue rea"#ente $a asocia&o a un e"e#ento Va"$e #u re"aciona&o con H" ha otro *ue se ""a#a i"ter Estas &os tecno"ogas sir$en ara intercetar "as eticiones resuestas &e ?--P re rocesar"as ara rea"i@ar a"gn tio &e acci+n antes &e *ue sigan su ca#ino. Una gran $enta)a es *ue no &een&en &e ca&a a"icaci+n sino *ue ue&en i#"e#entarse ara to&o e" sitio. Una gran &iferencia entre e""as es *ue Va"$e es un &esarro""o asocia&o a -o#cat #ientras *ue i"ter ertenece a "a API &e Ser$"ets. Co#o a $i#os se ue&en co"ocar en Engine/ ?ost o Contet afectan&o a" entorno concreto segn correson&a.
Vl(ulas Se ue&e consu"tar su uso en "a 'gina correson&iente &e "a configuraci+n/ ero se ue&e areciar *ue es #u etensa. Uno ue&e rogra#ar su roia $'"$u"a o fi"tro artien&o &e "a interfa@ Va"$e o &e a"guna &e "as c"ases &e" a*uete $a"$es. Val(ease est' esacia"#ente in&ica&a ara e""o. De hecho #uchas &e "as otras c"ases &e" a*uete son 6inal or "o *ue no o&re#os here&ar &e e""as. Esto *ue&a tota"#ente fuera &e" conteni&o &e" curso or "o *ue nos centrare#os en $er a"gunas &e "as $'"$u"as inc"ui&as con -o#cat. Va#os a e#e@ar $o"$ien&o a "a *ue est' ha(i"ita&a en ser$er.#" OJal'e className9Dorg.a pache.catalina.'a l'es.#ccess+ogJal 'eD directory9DlogsD pre!ix9Dlocalhos t8access8log.D su!!ix9D.txtD pattern9Dh l u t quot\rquot\ s bD 5P
Po&e#os $er *ue usa Access=ogVal(e *ue co#o su no#(re in&ica registra e" acceso. Co#o est' inc"ui&a en e" e"e#ento ?ost registra to&os "os accesos a "oca"host.
Sergio Cuesta Vicente 22 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Consu"ta "a &ocu#entaci+n ara hasta enten&er *ue hace esta configuraci+n &e "a $'"$u"a. Estu&ia e" resto &e $'"$u"as F"as *ue no aca(an en i"ter so"o ara o&er tener una i&ea &e *uH hacen. No es necesario *ue consu"tes "os atri(utos ni "a configuraci+n.
-ras $er "as $'"$u"as inc"ui&as/ "a uti"i&a& &e e""as es e$i&ente. Una &e e""as es esecia"#ente curiosa ti" en &eter#ina&os entornos. Si or e)e#"o esta#os en una intranet &e una e#resa &on&e ha $arias a"icaciones 7e( &isoni("es ara "os e#"ea&os/ Sing"eSignOn nos er#ite *ue so"o tengan *ue autenticarse en "a ri#era *ue se conecten se #anten&r'n esas cre&encia"es a tra$Hs &e to&as "as a"icaciones.
Prue(a "a $'"$u"a Sing"eSignOn en tu sitio. Crea un usuario con un ro" *ue tenga acceso a unas a"icaciones ero no a otras. ConHctate con &icho usuario a una a"icaci+n ara "a *ue s tenga acceso. Luego $e a una en "a *ue no tenga acceso. Q5uH suce&eR
&iltros Los fi"tros son una interfa@ &e "os Ser$"ets. Por "o tanto no son ec"usi$os &e -o#cat. -ienen un co#orta#iento #u si#i"ar a "as $'"$u"as ero se configuran en e" &escritor &e &es"iegue &e ca&a a"icaci+n. Aun*ue o&e#os i#"e#entar nuestros roios fi"tros *ue i#"e#enten "a interfa@/ -o#cat inc"ue a"gunos *ue ue&en consu"tarse en "a 'gina &e "a &ocu#entaci+n correson&iente.
Sergio Cuesta Vicente 23 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
4e#ote A&&ress i"ter/ 4e#ote ?ost i"ter 4e#ote IP i"ter!Va"$e ue&en usarse tanto co#o $'"$u"as co#o fi"tros. Co#rue(a *ue "a &ocu#entaci+n en a#(os aarta&os es r'ctica#ente igua". Echa un $ista@o ara enten&er *uH hace ca&a uno. Si #iras For enci#a "a &ocu#entaci+n &e "os &e#'s fi"tros $er's *ue tienen usos #ucho #'s concretos *ue "as $'"$u"as/ #uchos &e e""os re"aciona&os con ata*ues o situaciones #u esecficas.
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Configurar e" ser$i&or &e a"icaciones ara cooerar con ser$i&ores 7e( Aun*ue -o#cat ue&e gestionar eticiones ?--P ser$ir archi$os ?-1L esto "o hace #e)or Aache Fu otro ser$i&or 7e(. A&e#'s Aache inc"ue #uchas #'s ociones &e configuraci+n &isone &e #uchsi#os #+&u"os ara rea"i@ar &iferentes tareas. Otros #oti$os ue&en ser e" ren&i#iento/ "a &istri(uci+n en $arias #'*uinas/ etc. En este unto $a#os a aren&er a configurar un ser$i&or 7e( *ue reci(a "as eticiones se "as reen$e a -o#cat si es necesario. E" conteni&o est'tico Fo &eri$a&o &e otros "engua)es co#o P?P si tene#os Aache configura&o ara e""o "o ser$ir' Aache "as eticiones re"aciona&as con SPs o Ser$"ets se "as re&irigir' a -o#cat. Co#o a he#os co#enta&o "a conei+n con e" eterior se rea"i@a a tra$Hs &e conectores. Los &os rincia"es son e" ?--P e" APM a#(os soortan SSL. E" conector ?--P $iene acti$a&o or &efecto es e" *ue er#ite a -o#cat rocesar eticiones ?--P funcionar co#o un ser$i&or 7e( in&een&iente. Si consu"ta#os e" archi$o ser(er.ml $ere#os.
O0onnector port9D77D protocol9D$""%5 1.1D connection"imeout9D2D @EGFncoding9D@"M-7D redirect%ort9D74 43D 5P
Po&e#os $er *ue "as ociones &e configuraci+n son #uchas #'s en "a au&a &e configuraci+n &e -o#cat. No $a#os a entrar en &eta""es ero es i#ortante $er *ue ha un aarta&o &on&e in&ica c+#o usar"o con SSL. De hecho/ aun*ue no estH acti$o or*ue aarece co#enta&o/ se ue&e o(ser$ar *ue $iene reara&o ara usar"o.
Sergio Cuesta Vicente 20 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
O0onnector port9D7443D protocol9D$""%51.1D +Fnabled9DtrueD max"hreads9D1(D scheme9DhttpsD secure9DtrueD client#uth9D!als eD ssl%rotocol9D"+ D 5P
Sin e#(argo ahora *uere#os configurar -o#cat ara funcionar co#o aoo a un ser$i&or 7e( Fen nuestro caso Aache. Para e""o necesita#os e" conector Apache -Ser(
mod?5: Es e" #'s #a&uro ro(a&o &e to&os. 4ea"#ente es e" #'s otente se &esarro""a or "a co#uni&a& -o#cat no
co#o #+&u"o &e Aache. Por e""o no $iene inc"ui&o en "a &istri(uci+n Aache ha *ue a,a&ir"o a #ano. En genera" si no se necesita a"guna &e sus funciona"i&a&es esecficas no arece reco#en&a("e afrontar e" resto &e incon$enientes. mod?pro'3?ap: se &istri(ue con Aache &es&e "as $ersiones 6.6 usa e" rotoco"o AP *ue tiene #e)or ren&i#iento *ue ?--P co#unican&o ser$i&ores. mod?pro'3?"ttp: Es si#i"ar ero usan&o ?--P en "ugar &e AP. Es una #anera f'ci" r'i&a &e configurar"o oner"o en funciona#iento ero *ue en genera" tiene $arios incon$enientes *ue &esaconse)an su uso en entornos &e ro&ucci+n si no es necesario. De cua"*uier for#a e" ri#er aso *ue &e(e#os &ar en insta"ar Aache -o#cat. Nosotros a tene#os e" segun&o or "o *ue a,a&ire#os Aache. Aun*ue nosotros "o $a#os a configurar en "a #is#a #'*uina/ ue&e estar en &os &iferentes &e hecho esto #e)orar' e" ren&i#iento re&ucien&o "a carga. -en en cuenta *ue $a#os a rea"i@ar &os configuraciones &iferentes or "o *ue es (uena i&ea c"onar "a #'*uina $irtua" en este unto. •
•
mod?@B Este #+&u"o no $iene con "a &istri(uci+n est'n&ar &e aache/ or "o *ue ha(r' *ue &escargar"o aun*ue &e(era#os co#ro(ar *ue no estH a &escarga&o en /etc/apache2/modsGa(ailable
Sergio Cuesta Vicente 27 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
sudo apt-get update sudo apt-get install libapache2-mod-Ck
Lo *ue ro&uce una sa"i&a *ue es interesante "eer or*ue nos in&ica *ue a se acti$a e" #+&u"o a" insta"ar"o Fsin necesi&a& *ue acti$ar"os #anua"#ente &e *ue tene#os *ue reiniciar aache ara *ue "os ca#(ios tengan efecto. +eyendo lista de paquetes... $echo 0reando ^rbol de dependencias +eyendo la in!ormacin de estado... $echo %aquetes sugeridos tomcat) libapache-mod-C k-doc e instalar^n los siguientes paquetes N@FJ< libapache2-mod-Ck actualiSados, 1 se instalar^n, para eliminar y 272 no actualiSados. Necesito descargar 144 kI de archi'os. e utiliSar^n (32 kI de espacio de disco adicional despu]s de esta operacin. &es1 http55es.archi'e.ubuntu.com5ubuntu5 precise5uni'erse libapache2-mod-Ck i37) 11.2.32-1 ;144 kI> &escargados 144 kI en seg. /16 kI5sA eleccionando paquete libapache2-mod-Ck pre'iamente no seleccionado /+eyendo la base de datos ... 164)62 !icheros o directorios instalados actualmente.A &esempaquetando libapache2-mod-Ck /de ...5libapache2-mod-Ck813a1.2.32-18i37).debA ... 0on!igurando libapache2-mod-Ck /11.2.32-1A ... Fnabling module Ck. "o acti'ate the ne con!iguration, you need to run ser'ice apache2 restart
Po&e#os reiniciar Aache &e cua"*uier for#a.
Sergio Cuesta Vicente 2+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
5etc5init.d5apache2 restart
De(era#os co#ro(ar *ue estH acti$a&o consu"tan&o #o&sena("e& o apachectl ?*
Si #ira#os "a configuraci+n &e" #+&u"o gedit 5etc5apache25mods-a'ailable5Ck.con!
Po&e#os o(ser$ar un #ont+n &e ar'#etros &e configuraci+n/ ero nos (asta or ahora con fi)arnos en "a configuraci+n &e tra(a)a&ores. Ve need a orkers !ile exactly once and in the global ser'er BkVorkersMile 5etc5libapache2 -mod-Ck5orkers.p roperties
Un tra(a)a&or F $orBer en -o#cat es una instancia *ue rocesa "as eticiones. En nuestra configuraci+n nos (astar' con uno so"o ero #"ti"es tra(a)a&ores ue&en configurarse si es necesario reartir "a carga. La &irecti$a *ue he#os $isto antes in&ica en *uH archi$o se configurar'n "os $orBers. Po&e#os e&itar e" archi$o ara configurar estos tra(a)a&ores: sudo gedit 5etc5libapache2-mod-Ck5orkers.properties
Sergio Cuesta Vicente 28 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ve#os *ue $iene configura&o ara -o#cat ero ca#(iar"o es senci""o orkers.tomcat8home should point to the location here you installed tomcat. "his is here you ha'e your con!, ebapps and lib directories. orkers.tomcat8home95usr5share5tomcat6
Lo siguiente a configurar es "a "ista &e tra(a)a&ores *ue estar'n &isoni("es. So"o $a#os a tener uno ero se ue&en a,a&ir #'s searan&o "os no#(res con co#as F/ ------ orker list ------------------------------------------------------------------------------------------------------------- "he orkers that your plugins should create and ork ith orker.list9aCp138orker
Por e)e#"o si tu$iHra#os &os orker.list 9 orkerprueba1, orkerprueba2
Por "ti#o ha *ue configurar ca&a 7orKer
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
------ aCp138orker V
Esto se o&ra reetir ara &iferentes 7orKers. 1ucho #'s so(re estas configuraciones se ue&e consu"tar en "a au&a. Co#o he#os ca#(ia&o "a configuraci+n &e" #+&u"o ha *ue reiniciar Aache. 5etc5init.d5apache2 restart
Cuan&o he#os $isto e" archi$o ser(er.ml &e -o#cat o(ser$a#os *ue e" conector AP $iene configura&o ero co#enta&o. Si "o &esco#enta#os est' reara&o ara funcionar. Of-- &e!ine an #B% 1.3 0onnector on port 7 --P O0onnector port9D7D protocol9D#B%51.3 D redirect%ort9D7 443D 5P
4einicia -o#cat ara *ue "os ca#(ios surtan efecto
Sergio Cuesta Vicente 2% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
5etc5init.d5tomcat6 restart
-o&a$a nos fa"ta in&icar a Aache *uH eticiones &e(e re&irigir a -o#cat. Esto se ue&e hacer en $arios untos &een&ien&o &e c+#o tenga#os configura&o e" ser$i&or 7e(/ ero en nuestro caso "o $a#os a rea"i@ar en e" sitio 7e( or &efecto. gedit 5etc5apache25sites-a'ailable5de!ault
Don&e #onta#os "os &irectorios e in&ica#os e" tra(a)a&or *ue aten&er' "as eticiones OJirtual$ost :7P er'er#dmin ebmasterWlocalho st &ocumentEoot 5'ar5 Bk*ount 5338!orm5 aCp138orker Bk*ount 5338!orm5: aCp138orker
-ras reiniciar Aache 5etc5init.d5apache2 restart
o&e#os acce&er a "a a"icaci+n a tra$Hs &e Aache/ o(ser$a *ue no in&ica#os e" uerto: htt:!!"oca"host!9009for#!
Sergio Cuesta Vicente 2%% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Configura Aache -o#cat ara *ue co"a(oren *ue Aache re&iri)a "as eticiones &e "os e)e#"os &e -o#cat.
mod?pro' o se debe usar este módulo con el anterior/ or "o *ue e#e@arH con otra #'*uina $irtua". Este #+&u"o es "a so"uci+n ara usar AP *ue
$iene integra&a con Aache &es&e "as $ersiones 6.6. Co#o se ue&e o(ser$ar en "a intro&ucci+n &e "a &ocu#entaci+n &e" #+&u"o eisten $arios &eri$a&os &e" #+&u"o *ue er#iten a,a&ir funciona"i&a&. Estos &eri$a&os re*uieren *ue e" #+&u"o rincia" estH resente ara o&er funcionar. Lo ri#ero *ue ha *ue hacer es acti$ar e" #+&u"o &e ro e" *ue ha(i"ita e" rotoco"o ?--P. sudo a2enmod proxy sudo a2enmod proxy8http
E&ita#os "a configuraci+n &e" #+&u"o gedit 5etc5apache25mods-a'ailable5proxy.con!
-en en cuenta *ue ara nuestro o()eti$o no es necesario &esco#entar "a ri#era "nea co#o e"ican en "os co#entarios *ue est'n )usto enci#a. La &irecti$a
Sergio Cuesta Vicente 2%2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
G! you only ant to use apache2 as a re'erse proxy5gateay in !ront o! some eb application ser'er, you &
Posterior#ente e&ita#os e" archi$o &e" host $irtua" *ue este#os configuran&o gedit 5etc5apache25sites-a'ailable5de!ault
configura#os "as re&irecciones. -en en cuenta *ue e" archi$o est' corta&o *ue "as tres ri#eras "neas a esta(an as. OJirtual$ost :7P er'er#dmin ebmasterWlocalhost &ocumentEoot 5'ar5 %roxy%ass 5338!orm http55localhost775338!orm %roxy%assEe'erse 5338!orm http55localhost775338!orm O+ocation 5338!orm P
Sergio Cuesta Vicente 2%3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
#llo !rom all O5+ocationP
reinicia#os Aache antes &e onernos a configurar -o#cat. 5etc5init.d5apache2 restart
So"o tene#os *ue rea"i@ar un e*ue,o a)uste en e" conector &e ser$er.#" gedit 5etc5tomcat65ser'er.xml
a,a&i#os una "nea con e" uerto &e" *ue reci(ire#os "as re&irecciones.
O0onnector port9D77D protocol9D$""%51.1D connection"imeout9D2D @EGFncoding9D@"M-7D redirect%ort9D7443D proxy%ort 9D7D 5P
reinicia#os -o#cat 5etc5init.d5tomcat6 restart
Ahora/ a" igua" *ue en e" caso anterior o&e#os acce&er a "a a"icaci+n a tra$Hs &e" ser$i&or 7e( htt:!!"oca"host!9009for#
Sergio Cuesta Vicente 2% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
mod?pro'3?ap Pero/ Q e" rotoco"o APR
Se configura r'ctica#ente igua". A&e#'s ue&en coeistir ?--P F ?--PS AP. En este aarta&o so"o $o a &estacar "os untos &on&e "a configuraci+n es &iferente or "o *ue si *uieres configurar so"o AP &e(eras "eer antes e" unto anterior. Lo ri#ero sera acti$ar e" #+&u"o sudo a2enmod proxy8aCp
Posterior#ente e&ita#os e" archi$o &e" host $irtua" *ue este#os configuran&o gedit 5etc5apache25sites-a'ailable5de!ault
configura#os "as re&irecciones. 1antengo "a configuraci+n &e" caso anterior ara *ue se $ea *ue son co#ati("es. OJirtual$ost :7P er'er#dmin ebmasterWlocalhost &ocumentEoot 5'ar5 %roxy%ass 5338!orm http55localhost775338!orm %roxy%assEe'erse 5338!orm http55localhost775338!orm O+ocation 5338!orm P
Sergio Cuesta Vicente 2%0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
O5+ocationP %roxy%ass 5examples5Csp aCp55localhost75examples5Csp %roxy%assEe'erse 5examples5Csp aCp55localhost75examples5Csp O+ocation 5examples5Csp P
reinicia#os Aache antes &e onernos a configurar -o#cat. 5etc5init.d5apache2 restart
So"o tene#os *ue rea"i@ar un e*ue,o a)uste en e" conector &e ser$er.#" gedit 5etc5tomcat65ser'er.xml
&esco#enta#os e" conector AP Of-- &e!ine an #B% 1.3 0onnector on port 7 --P O0onnector port9D7D protocol9D#B%51.3D redirect%ort9D7443D 5P
reinicia#os -o#cat
Sergio Cuesta Vicente 2%7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
5etc5init.d5tomcat6 restart
Ahora/ a" igua" *ue en e" caso anterior o&e#os acce&er a "a a"icaci+n a tra$Hs &e" ser$i&or 7e( htt:!!"oca"host!9009for# Fcon ?--P a htt:!!"oca"host!ea#"es!)s! Fcon AP
Configura Aache -o#cat ara *ue to&o *ue co"a(oren #ostran&o "a &ocu#entaci+n &e -o#cat en htt:!!"oca"host!to# &oc! PruH(a"o con ?--P "uego con AP.
Sergio Cuesta Vicente 2%+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Seguri&a& en e" ser$i&or &e a"icaciones. Configurar e" ser$i&or &e a"icaciones con soorte SSL!-SL. a $i#os *ue ?--PS no era #'s *ue ?--P con una caa inter#e&ia. Los #is#os rinciios se a"ican en -o#cat. En este caso ta#(iHn usare#os certifica&os &igita"es. Es i#ortante &estacar *ue aun*ue en -o#cat se ue&e usar un conector *ue usa OenSSL nosotros $a#os a $er "os *ue se (asan en a$a SSL. Des&e DY 2.< se inc"use SSE en "as &istri(uciones/ or "o *ue tene#os a nuestra &isosici+n to&o "o necesario. Nosotros so"o $a#os a generar un certifica&o autofir#a&o ara -o#cat/ ero en esta 'gina se ue&en $er "os asos ara crear uno e&ir *ue nos fir#e e" certifica&o una CA. Va#os a crear un a"#acHn &e certifica&os. La oci+n ]genKe esecifica *ue se cree un ar c"a$e ("ica!ri$a&a *ue se a"#acenan en un certifica&o autofir#a&o. a"#acen es e" no#(re &e" archi$o *ue se $a a crear. sudo keytool -genkey -alias tomcat -keyalg E# -keystore 5'ar5lib5tomcat65almacen
Lo *ue nos $a i&ien&o "os &atos necesarios. GntroduSca la contrase_a del almac]n de cla'es Jol'er a escribir la contrase_a nue'a 0u^les son su nombre y su apellido ;@nknon> ergio 0uesta 0u^l es el nombre de su unidad de organiSacin ;@nknon> 0onseCera de Fducacin
Sergio Cuesta Vicente 2%8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
0u^l es el nombre de su organiSacin ;@nknon> 0omunidad de *adrid 0u^l es el nombre de su ciudad o localidad ;@nknon> *adrid 0u^l es el nombre de su estado o pro'incia ;@nknon> *adrid 0u^l es el cdigo de pas de dos letras de la unidad ;@nknon> F Fs correcto 0N9ergio 0uesta, <@90onseCera de Fducacin, "9*adrid, 09F ;no> si
<90omunidad
de
*adrid,
+9*adrid,
GntroduSca la contrase_a de cla'e para OtomcatP /GN"E< si es la misma contrase_a que la del almac]n de cla'esA
Durante esta configuraci+n nos i&e *ue &efina#os "as contrase,as tanto &e" a"#acHn co#o &e" archi$o &e c"a$es. En #i caso a#(as son sergio. Lo siguiente sera ha(i"itar e" conector ?--PS en ser$er.#" Of-- &e!ine a + $""%51.1 0onnector on port 7443 "his connector uses the BF con!iguration, hen using #%E, the connector should be using the
Sergio Cuesta Vicente 2% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Pue&es $er *ue he a,a&i&o "as &os "ti#as "neas ara in&icar "a configuraci+n &e seguri&a&. -ras reiniciar -o#cat o&e#os conectarnos a" ser$i&or &e a"icaciones con coneiones seguras htts:!!"oca"host:=<<0! E" ro("e#a es *ue aun*ue ahora ue&o conectar#e a "as a"icaciones #e&iante ?--PS sigo tenien&o "a oci+n &e hacer"o #e&iante ?--P htt:!!"oca"host:=9=9!9009for#! Para o("igar a *ue a una a"icaci+n haa *ue conectarse #e&iante ?--PS ha *ue #o&ificar su &escritor &e &es"iegue. Para hacer "a rue(a #o&ifico e" &escritor &e &es"iegue &e 9069(asic gedit
5'ar5lib5tomcat65ebapps5328basic5VFI-GNM5eb.xml
?a *ue ca#(iar e" tio &e transorte *ue se o("iga &e NONE a CONIDEN-IAL
Ouser-data-constraintP Otransport-guaranteeP0
Po&e#os $er *ue ahora si ro(a#os a conectarnos htts:!!"oca"host:=<<0!9069(asic!
a
htt:!!"oca"host:=9=9!9069(asic! nos re&irige auto#'tica#ente
a
a sa(e#os configurar Aache -o#cat con SSL ero K%u sucede con la cone'ión entre ellosL Es #u raro *ue esta conei+n se rea"ice a tra$Hs &e una re& en "a *ue no confie#os. Inc"uso en e" caso &e *ue se encuentren en #'*uinas &iferentes sue"e usarse a"gn tio &e conei+n ri$a&a entre e""os ara *ue "os #ensa)es *ue se en$an no se &istri(uan or re&es #'s o #enos ("icas. Si necesit'ra#os configurar"o &e to&as for#as &e(era#os restar atenci+n a "as &irecti$as *ue co#ien@an or SSLPro &e" #+&u"o #o&ss" &e Aache.
Sergio Cuesta Vicente 22 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
De to&as for#as ara asegurar "a conei+n Aache ] -o#cat Fcon ?--PS ten&ra#os *ue usar un conector ?--PS/ "o *ue hago un oco #'s arri(a ca#(iar "as ca&enas &e re&irecci+n en "a configuraci+n &e" host $irtua" ara *ue uti"icen ?--PS e" uerto =<<0.
Sergio Cuesta Vicente 22% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Pr'cticas fina"es
En este unto con "os conoci#ientos &e hosts $irtua"es *ue aren&i#os en Aache/ esta#os reara&os ara aren&er a crear hosts $irtua"es en -o#cat or nosotros #is#os. Por e""o &e(es aren&er a configurar un host $irtua". -e au&ar'n #ucho/ "a a"icaci+n &e host #anager *ue insta"a#os con "os a*uetes a&iciona"es reasar to&o este te#a ara $er &+n&e se configura(a un e"e#ento ?ost *uH i#"icaciones tena. -en en cuenta *ue a" intentarte conectar a" host #anager/ si no ue&es te &ice e" ro" *ue tienes *ue tener ara o&er conectarte. -a#(iHn ha un e*ue,o tutoria" en "a &ocu#entaci+n &e -o#cat. -a#(iHn es i#ortante recor&ar *ue e" host #anager no configura e" e"e#ento ?ost &e ser$er.#"/ ero internet est' ""eno &e tutoria"es ara rea"i@ar esto. -u o()eti$o fina" &e(e ser o&er configurar un nue$o host $irtua" en -o#cat a #ano ser caa@ &e &es"egar una &e "as a"icaciones &e e)e#"o F#e)or con autenticaci+n so(re H". Las siguientes "neas te ue&en &ar una i&ea &e c+#o hacer"o. ?ost na#e777.sergio.es aBase7e(assergio.es unacKWA4strue autoDe"otrue A"iassergio.es!A"ias Va"$e c"assNa#eorg.aache.cata"ina.$a"$es.AccessLogVa"$e &irector"ogs refisergio.esaccess"og. suffi."og atternh " u t d*uotMrd*uotM s ( reso"$e?ostsfa"se !
Sergio Cuesta Vicente 222 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
!?ost
E" "ti#o e)ercicio *ue $a#os a rea"i@ar i#"ica usar casi to&o "o *ue he#os $isto en Aache -o#cat. De(es configurar un siste#a *ue gestiona eticiones ?--PS ec"usi$a#ente Fno ?--P or "o *ue tanto -o#cat co#o Aache &e(en usar SSL. E" sitio &e(e tener tu no#(re co#o no#(re &e &o#inio -en&r' archi$os ?-1L *ue ser$ir' Aache arte con Ser$"ets SPs *ue ser$ir' -o#cat a tra$Hs &e Aache. E" contro" &e acceso se rea"i@ar' con un DBC4ea"#. Pue&es usar "os e)e#"os &e" site ara "a arte &e a"icaciones en e" ser$i&or. Si &eci&es &esarro""ar "as tuas roias se ten&r' en cuenta ara "a nota/ ero no es necesario ara *ue "a r'ctica estH (ien. ?a(r' en"aces en "a arte ?-1L a "os Ser$"ets!SPs. Un usuario intro&ucir' nica#ente sus cre&encia"es una $e@ ara to&as "as a"icaciones. Pon tu no#(re en co#entarios tanto a" rinciio co#o a" fina" &e ca&a archi$o &e configuraci+n o &e conteni&o *ue e&ites. E$ita *ue se ue&a acce&er a "as a"icaciones &e -o#cat sin asar or Aache.
Sergio Cuesta Vicente 223 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-e#a <: Insta"aci+n ainistraci+n &e ser$i&ores &e transferencia &e archi$os
Sergio Cuesta Vicente 22 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Configuraci+n &e" ser$icio &e transferencia &e archi$os E" rotoco"o c"'sico ara "a transferencia &e archi$os en Internet se &eno#ina -P F &ile rans6er
,nstalando el ser(idor Des&e Linu "o ri#ero es actua"i@ar "os reositorios ara "uego insta"ar e" ser$i&or. Sergio Cuesta Vicente 220 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
sudo apt-get update sudo apt-get install 's!tpd
Po&e#os $er *ue se ha a,a&i&o un scrit &e autoarran*ue sudo gedit 5etc5init.d5's!tpd
or "o *ue "os #Hto&os ha(itua"es &e gesti+n/ #e&iante e" scrit o co#o ser$icio est'n &isoni("es sudo 5etc5init.d5's!tpd start sudo ser'ice 's!tpd start
con "os co#an&os start/ sto/ restart re"oa&. Po&e#os ro(ar *ue to&o haa i&o (ien #e&iante e" c"iente en #o&o teto !tp localhost
"o *ue nos e&ir' unas cre&encia"es ara acce&er. Por &efecto nos conecta#os co#o e" usuario anon'mous sin contrase,a. 0onnected to localhost. 22 /'sM"%d 2.3.(A Name /localhostrootA anonymous 331 %lease speci!y the passord.
Sergio Cuesta Vicente 227 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
%assord 23 +ogin success!ul. Eemote system type is @NGU. @sing binary mode to trans!er !iles. !tpP quit 221 Loodbye.
O(ser$a *ue usa#os 1uit ara &esconectarnos.
Con6igurando el ser(idor E" archi$o &e configuraci+n &e $s-P& se ue&e consu"tar co#o $iene sien&o ha(itua". sudo gedit 5etc5's!tpd.con!
Insta"a e" ser$i&or $s-P& Co#o e" archi$o est' #u co#enta&o a conoce#os "a #aora &e "os concetos i#"ica&os o&e#os &iscutir en c"ase "as &irecti$as *ue aarecen. En caso &e no conocer a"go uti"i@a internet.
Sergio Cuesta Vicente 22+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
De(e#os &arnos cuenta &e *ue "a co#(inaci+n &e" uso &e "os &irectorios &e usuarios "oca"es Fen e" ser$i&or Linu con su gesti+n en Aache ara *ue su &irectorio ersona" inc"ua una careta ara su sitio 7e(/ "as osi(i"i&a&es &e DNS "as ociones *ue aca(a#os &e co#entar en -P er#iten configurarse un ser$icio &e hosting roio. -ras ca&a ca#(io en "a configuraci+n es necesario reiniciar e" ser$i&or. Para "a #aora &e "os casos es suficiente con recargar "a configuraci+n Fre"oa&. ser'ice 's!tpd reload
-o&as "as ociones &e configuraci+n se ue&en consu"tar en esta 'gina &e U(untu. -a#(iHn est' (ien e"ica&as a*u.
Sergio Cuesta Vicente 228 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-ios &e usuarios accesos a" ser$icio En -P eisten &os tios ('sicos &e usuario/ "os corrientes "os an+ni#os. 4ea"#ente &efinen e" tio &e acceso or*ue in&ican si te est's autentican&o con un usuario concreto o est's uti"i@an&o una cuenta an+ni#a *ue genera"#ente no re*uiere autenticaci+n. Un ser$i&or -P ue&e ser$ir a#(os tios si#u"t'nea#ente.
4+P anónimo: Este #o&o se uti"i@a genera"#ente cuan&o e" ser$i&or -P se usa ara &istri(uir cua"*uier tio &e archi$o o archi$os a
un n#ero #u e"e$a&o &e usuarios en una situaci+n en "a *ue "a i&entificaci+n no es #u i#ortante. Si or e)e#"o he#os rea"i@a&o una a"icaci+n &e soft7are "i(re *uere#os &istri(uir"a es una (uena oci+n. En este tio &e conei+n so"o se "e i&e a" c"iente un no#(re &e usuario an+ni#o Fgenera"e#ente or &efecto es anon'mous si acaso Fno sie#re una contrase,a *ue se refiere a cua"*uier &irecci+n &e correo e"ectr+nico $'"i&a. Una $e@ nos he#os conecta&o a" ser$i&or ten&re#os acceso a" &irectorio an+ni#o sus su(&irectorios. 4+P corriente: En este caso "os usuarios &e -P son "os *ue eisten en "a #'*uina en "a *ue insta"a#os e" ser$i&or. Estos usuarios o&r'n "eer &e coiar a su &irectio ersona" archi$os re#ota#ente. Las #is#as cre&encia"es *ue tienen en "a #'*uina ser'n "as *ue necesiten ara conectarse a #e&iante -P. $s-P& er#ite *ue este tio &e conei+n se restrin)a a "os usuarios &e un gruo &eter#ina&o. E" uso &e este tio &e conei+n es #u ha(itua" en "os hostings 7e(/ aun*ue no es r'ctico cuan&o tene#os #uchs#os usuarios co#o ue&e ser e" caso. Para e""o se uti"i@an "os &eno#ina&os usuarios virtuales *ue ten&r'n cre&encia"es -P ero no cuenta en e" ser$i&or Linu. Se ue&en configurar estas ociones en e" archi$o
sudo gedit 5etc5's!tpd.con!
Por &efecto nuestra insta"aci+n so"o er#ite conei+n an+ni#a.
Sergio Cuesta Vicente 22 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
#llo anonymous M"% /Ieare - alloed by de!ault i! you comment this outA. anonymous8enable9F @ncomment this to allo local users to log in. local8enable9F
Pero $e#os *ue acti$ar o &esacti$ar otros tios &e usuarios es cuesti+n &e co#entar o &esco#entar una "nea.
Prue(a a er#itir *ue "os usuarios con cuenta en e" ser$i&or se conecten con sus roias cre&encia"es. De(es tener en cuenta *ue esto no acti$a "a conei+n &e root or "o *ue ser' necesario *ue uti"ices otro usuario ara conectarte. Desha(i"ita "a conei+n an+ni#a rue(a a#(os casos. Vue"$e a ha(i"itar "a conei+n an+ni#a.
E" &irectorio or &efecto ara e" usuario an+ni#o es /sr(/6tp/ ara "os usuarios regu"ares su careta ersona". !tp localhost 0onnected to localhost. 22 /'sM"%d 2.3.(A Name /localhostrootA sergio 331 %lease speci!y the passord. %assord 23 +ogin success!ul. Eemote system type is @NGU. @sing binary mode to trans!er !iles.
Sergio Cuesta Vicente 23 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
!tpP ls 2 %
using %#J. 4) 4) 4) 4) 4) 4) 4) 4) 744(
ep ep ep ep ep ep ep ep ep
2) 2) 2) 2) 2) 2) 2) 2) 2)
142 142 142 142 142 142 142 142 11(
&escargas &ocumentos Fscritorio Gmgenes *sica %lantillas %blico Jdeos examples.desktop
Prue(a a situar a"gn archi$o en "a careta &e" usuario an+ni#o. ConHctate #e&iante ft ara co#ro(ar *ue eiste e" archi$o.
Po&e#os #o&ificar este &irectorio mkdir 5'ar5!tpcomp5pub sudo gedit 5etc5's!tpd.con!
escri(i#os "a &irecti$a correcta
Sergio Cuesta Vicente 23% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
anon8root95'ar5!tpcomp5pub
tras reiniciar e" ser$i&or o&e#os $er *ue "a careta ra@ &e "os usuarios an+ni#os ha ca#(ia&o. Pue&es crear un archi$o &entro ara co#ro(ar"o. Aun*ue genera"#ente no es na&a reco#en&a("e Fue&e suoner un gran agu)ero &e seguri&a& or e" *ue se cue"en #uch#os ata*ues a nuestro ser$i&or/ a $eces es necesario *ue "os usuarios an+ni#os ue&an su(ir archi$os a" ser$i&or. Los usuarios ft no tienen er#iso ara escri(ir en su &irectorio ra@ or "o *ue &e(e#os crear otro &irectorio &entro en e" *ue er#ita#os su(ir archi$os. Crea#os "a careta nos asegura#os &e *ue tenga e" roietario "os er#isos a&ecua&os. mkdir 5'ar5!tpcomp5pub5upload chon root.root 5'ar5!tpcomp5pub5upload5 chmod 6(6 5'ar5!tpcomp5pub5upload5
Pue&es consu"tar "a "ista &e co#an&os &e -P &es&e conso"a en #uchas 'ginas &e Internet/ or e)e#"o a*u. Cuan&o intenta#os conectarnos ue&e &arnos un error ;99 !tp localhost 0onnected to localhost. 22 /'sM"%d 2.3.(A Name /localhostrootA anonymous 331 %lease speci!y the passord. %assord ( <<% 's!tpd re!using to run ith ritable root inside chroot/A +ogin !ailed.
Sergio Cuesta Vicente 232 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
!tpP quit 421 er'ice not a'ailable, remote ser'er has closed connection
Esto se &e(e a *ue e" usuario no &e(e tener re#isos &e escritura en su careta ra@ as *ue o&e#os *uit'rse"os a est'. Por e""o ahora ten&r' *ue escri(ir &entro &e u"oa&. chmod ((( 5'ar5!tpcomp5pub
-a#(iHn ha *ue #o&ificar una &irecti$a ara *ue se er#itan su(ir archi$os a" ser$i&or recargar "a configuraci+n @ncomment this to enable any !orm o! M"% rite command. rite8enable9F
un oco #'s a(a)o configura#os e" *ue e" usuario an+ni#os ue&a su(ir archi$os e" *ue ue&a crear &irectorios. @ncomment this to allo the anonymous M"% user to upload !iles. "his only has an e!!ect i! the abo'e global rite enable is acti'ated. #lso, you ill ob'iously need to create a directory ritable by the M"% user. anon8upload8enable9F @ncomment this i! you ant the anonymous M"% user to be able to create ne directories. anon8mkdir8rite8enable9F
recarga#os "a configuraci+n
Sergio Cuesta Vicente 233 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
ser'ice 's!tpd reload
ro(a#os. O(ser$a *ue en e" e)e#"o se intenta en e" &irectorio *ue he#os configura&o ara e""o en e" *ue no. -en encuenta *ue e" archi$o a su(ir est' en e" &irectorio &es&e e" *ue he e)ecuta&o e" c"iente -P. !tp localhost 0onnected to localhost. 22 /'sM"%d 2.3.(A Name /localhostrootA anonymous 331 %lease speci!y the passord. %assord 23 +ogin success!ul. Eemote system type is @NGU. @sing binary mode to trans!er !iles. !tpP cd upload 2( &irectory success!ully changed. !tpP put aubir.txt local aubir.txt remote aubir.txt 2 %
Sergio Cuesta Vicente 23 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Vo"$e#os a &esacti$ar "a oci+n &e *ue "os usuarios an+ni#os ue&an usar su(ir archi$os si#"e#ente $o"$ien&o a co#entar "as &os "ti#as &irecti$as ero #antene#os "a oci+n &e *ue "os usuarios corrientes ue&an su(ir archi$os. useradd -m prueba passd prueba
Un gra$e ro("e#a &e seguri&a& en -P Linu Fno so"o con $s-P& es *ue un usuario tiene acceso a to&a "a estructura &e archi$os &e" ser$i&or. Aun*ue no tenga er#isos ara escri(ir ue&e "eer "istarZ !tp localhost 0onnected to localhost. 22 /'sM"%d 2.3.(A Name /localhostrootA prueba 331 %lease speci!y the passord. %assord 23 +ogin success!ul. Eemote system type is @NGU. @sing binary mode to trans!er !iles. !tpP ls 2 %
using %#J. 744( #pr 1)
212 examples.desktop
using %#J. 4) ep 26 6(7 bin
Sergio Cuesta Vicente 230 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
drxr-xr-x 3 drxr-xr-x 2 drxr-xr-x 1( drxr-xr-x 127 drxr-xr-x 4 lrxrxrx 1 generic-pae lrxrxrx 1 2-generic-pae drxr-xr-x 21 drx-----2 drxr-xr-x 2 drxr-xr-x 2 drxr-xr-x 3 dr-xr-xr-x 1(3 drx-----2 drxr-xr-x 22 drxr-xr-x 2 drxr-xr-x 2 drxr-xr-x 3 drxr-xr-x 13 drxrxrt drxr-xr-x 1 drxr-xr-x 14 lrxrxrx 1 pae lrxrxrx 1 generic-pae 22) &irectory send <=. !tpP quit 221 Loodbye.
4) ep 26 72 boot 4) ep 2) 727 cdrom 47 Meb )27 de' 12277 Meb 142 etc 4) Meb 141 home 36 ep 26 71 initrd.img -P 5boot5initrd.img-3.2.-31-
3) ep 2) 117 initrd.img.old -P boot5initrd.img-3.2.-
4) ep 2) 11 lib 1)374 ep 2) 724 lost[!ound 4) ep 26 726 media 4) #pr 1 212 mnt 4) ep 26 614 opt Meb )26 proc 4) Meb 16 root 67 Meb 2 run 4) ep 26 72 sbin 4) *ar ( 212 selinux 4) Meb 64 sr' Meb )26 sys 4) Meb 116 tmp 4) Meb 16 usr 4) Meb 33 'ar 33 ep 26 71 'mlinuS -P boot5'mlinuS-3. 2.-31-generic
33 ep 2) 117 'mlinuS.old -P boot5'mlinuS-3.2.-2-
Sergio Cuesta Vicente 237 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
La for#a f'ci" &e so"ucionar"o es chroot8local8user9F
Para "a gran #aora &e "os casos/ a no ser *ue necesite#os un contro" ecesi$o so(re "o *ue hacen "os usuarios esta oci+n sera #'s *ue suficiente. Configuración avanada del c"root 4ea"#ente "a oci+n anterior tiene un e*ue,o agu)ero &e seguri&a& co#o se in&ica en "as A5 &e s$-P& A $elpf Vhat are the security implications re!erred to in the Dchroot8local8userD option #A Mirstly note that other !tp daemons ha'e the same implications. Gt is a generic problem. "he problem isnQt too se'ere, but it is this ome people ha'e M"% user accounts hich are not trusted to ha'e !ull shell access. G! these accounts can also upload !iles, there is a small risk. # bad user no has control o! the !ilesystem root, hich is their home directory. "he !tp daemon might cause some con!ig !ile to be read - e.g. 5etc5some8!ile. Vith chroot/A, this !ile is no under the control o! the user. 's!tpd is care!ul in this area. Iut, the systemQs libc might ant to open locale con!ig !iles or other settings...
Para e$itar esto ha *ue ca#(iar "as ociones &e configuraci+n.
ou may speci!y an explicit list o! local users to chroot/A to their home directory. G! chroot8local8user is F, then this list becomes a list o! users to N<" chroot/A. /Varningf chrootQing can be 'ery dangerous. G! using chroot, make sure that
Sergio Cuesta Vicente 23+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
the user does not ha'e rite access to the top le'el directory ithin the chrootA chroot8local8user9N< chroot8list8enable9F /de!ault !ollosA chroot8list8!ile95etc5's!tpd.chroot8list
En e" *ue he &e)a&o e" archi$o &e usuarios or &efecto. Lo siguiente sera ca#(iar "os er#isos a" &irectorio &e" usuario rue(a ara *ue no tenga er#isos &e escritura en su careta ersona" F as nos &e)e conectarnos chmod ((( 5home5prueba
E" ro("e#a es *ue cua"*uier otro usuario *ue se conecte to&a$a ue&e acce&er a to&o useradd -m pru passd pru !tp localhost 0onnected to localhost. 22 /'sM"%d 2.3.(A Name /localhostrootA pru 331 %lease speci!y the passord. %assord 23 +ogin success!ul. Eemote system type is @NGU. @sing binary mode to trans!er !iles. !tpP ls 2 %
Sergio Cuesta Vicente 238 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-r-r--r-1 13 14 744( #pr 1) 212 examples.desktop 22) &irectory send <=. !tpP cd .. 2( &irectory success!ully changed. !tpP ls 2 %
Sergio Cuesta Vicente 23 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
drx-----drxr-xr-x drxr-xr-x drxr-xr-x drxr-xr-x drxr-xr-x drxrxrt drxr-xr-x drxr-xr-x lrxrxrx
2 22 2 2 3 13 1 14 1
4) Meb 16 root 67 Meb 2 run 4) ep 26 72 sbin 4) *ar ( 212 selinux 4) Meb 64 sr' Meb )26 sys 4) Meb 116 tmp 4) Meb 16 usr 4) Meb 33 'ar 33 ep 26 71 'mlinuS -P boot5'mlinuS-3. 2.-31-generic-
pae lrxrxrx 1 generic-pae 22) &irectory send <=. !tpP quit 221 Loodbye.
33 ep 2) 117 'mlinuS.old -P boot5'mlinuS-3.2.-2-
Para so"ucionar"o sie#re o&e#os inc"uir a "os usuarios en e" archi$o &e "ista. gedit 5etc5's!tpd.chroot8list
escri(ir e" no#(re &e usuario uno &e(a)o &e otro prueba sergio pru
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En #i caso Sergio no ue&e conectarse a" ser$i&or -P or*ue sigue tenien&o er#isos &e escritura en su &irectorio. Co#(inan&o estos e"e#entos se ue&e conce&er acceso a "os usurios *ue *uera#os. Para "a gran #aora &e "os casos/ a no ser *ue necesite#os un contro" ecesi$o so(re "o *ue hacen "os usuarios/ "a oci+n or &efecto es suficiente #'s si tene#os en cuenta *ue en e" &es"iegue &e a"icaciones/ -P se usa casi ec"usi$a#ente ara *ue e" &esarro""a&or Ftica#ente nosotros #o&ifi*ue "os archi$os o a"icaciones en e" ser$i&or. ;suarios 0irtuales -o&o este aarta&o "o hare#os con una copia de la m$%uina virtual ara no inf"uir en e" resto &e" te#a.
-a#(iHn se ue&en uti"i@ar usuarios $irtua"es. Para e""o ha *ue estar usan&o PA1 FP"ugga("e Authentication 1o&u"es &e Linu. En e" archi$o &e configuraci+n "his string is the name o! the %#* ser'ice 's!tpd ill use. pam8ser'ice8name9's!tpd
Va#os a rea"i@ar un e)e#"o #u ti" ara a"o)ar sitios &e &iferentes ersonas *ue ue&an actua"i@ar sus roios archi$os #e&iante -P. Insta"a#os e" #+&u"o sudo apt-get install 's!tpd libpam-pd!ile
Va#os a crear un nue$o archi$o &e configuraci+n as *ue reno#(ra#os e" origina" crea#os uno nue$o sudo m' 5etc5's!tpd.con! 5etc5's!tpd.con!.bak
Sergio Cuesta Vicente 2% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
sudo gedit 5etc5's!tpd.con!
con "as siguientes &irecti$as listen9F anonymous8enable9N< local8enable9F rite8enable9F local8umask922 nopri'8user9's!tpd 'irtual8use8local8pri's9F guest8enable9F user8sub8token9K@FE local8root95'ar55K@FE chroot8local8user9F hide8ids9F guest8username9's!tpd
In$estiga co#enta en c"ase *uH hacen "as &irecti$as *ue &esconoces.
En e" siguiente aso ha *ue usar htpass$d or "o *ue necesita#os tener insta"a&o Aache "o *ue en e" e)e#"o *ue $e#os es #'s *ue necesario. Crea#os un &irectorio ara co"ocar "os archi$os &e configuraci+n
Sergio Cuesta Vicente 22 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
sudo mkdir 5etc5's!tpd
crea#os sudo htpassd -cd 5etc5's!tpd5!tpd.passd sergio1
&on&e ]c in&ica *ue se cree e" archi$o ]& *ue se uti"ice 1D;. Para "os siguientes usuarios o#itire#os "a oci+n ]c sudo htpassd -d 5etc5's!tpd5!tpd.passd maria
Coia#os e" archi$o &e configuraci+n &e PA1 sudo m' 5etc5pam.d5's!tpd 5etc5pam.d5's!tpd.bak
crea#os otro sudo gedit 5etc5pam.d5's!tpd
con e" conteni&o auth required pam8pd!ile.so pd!ile 5etc5's!tpd5!tpd.passd
Sergio Cuesta Vicente 23 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
account required pam8permit.so
` crea#os un usuario "oca" sin acceso en "oca"T Cuan&o e" usuario se conecte a tra$Hs &e un c"iente -P a" ser$i&or/ este usuario *ue crea#os es e" *ue &eter#inar' "os er#isos roie&a&es &e archi$os. A H" se asociar'n "os usuarios $irtua"es *ue se conecten a tra$Hs &e -P sudo useradd --home 5home5's!tpd --gid nogroup -m --shell 5bin5!alse 's!tpd
a so"o *ue&a configurar "os &irectorios mkdir chmod mkdir chmod chon
5'ar55sergio1 - 5'ar55sergio1 5'ar55sergio15 -E 6(( 5'ar55sergio15 -E 's!tpdnogroup 5'ar55sergio1
Ahora o&e#os coectarnos su(ir archi$os a /(ar/$$$/sergio%/$$$/ ero no a" ra@ &e" usuario.
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Esta("ecer "#ites a "os usuarios es &e $ita" i#ortancia en un siste#a -P ara e$itar *ue unos ocos consu#an &e#asia&os recursos. Aun*ue no es arte &e este #+&u"o/ *uiero &estacar *ue es osi("e "i#itar e" ancho &e (an&a n#ero &e coneiones si#u"t'neas *ue ue&e usar e" #is#o usuario. E" te#a *ue a*u $a#os a &iscutir es e" #'s i#ortante or*ue un so"o usuario ue&e ocuar &e#asia&o esacio &e &isco no &e)ar na&a ara otros. Para e$itar esto se esta("ece una cuota de espacio en disco . $s-P& er#ite esta("ecer cuotas ara ca&a usuario #e&iante un a*uete a&iciona". Este a*uete &e hecho esta("ece cuotas ara "os usuarios en Linu/ no so"o en $s-P&. sudo apt-get install quota
Lo siguiente *ue ha *ue hacer es ha(i"itar e" uso &e cuotas en nuestro siste#a &e archi$os. Para e""o se e&ita un fichero sudo gedit 5etc5!stab
"oca"i@a#os "a "nea &e" unto &e #onta)e &e" siste#a &e archi$os &on&e esta("ecere#os "a cuota 5etc5!stab static !ile system in!ormation. @se QblkidQ to print the uni'ersally unique identi!ier !or a de'ice\ this may be used ith @@G&9 as a more robust ay to name de'ices that orks e'en i! disks are added and remo'ed. ee !stab/(A. O!ile systemP Omount pointP OtypeP OoptionsP OdumpP OpassP proc 5proc proc node',noexec,nos uid 5 as on 5de'5sda1 during installation %%&!'()*)(+,c-ae-//e,-ad0-+c1fce*2(01 ext/ errors'remount-ro + sap as on 5de'5sda( during installation
Sergio Cuesta Vicente 20 de 338
,
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
@@G&96!12e1a-1 1a-4e!6-(1-3ceb !ee!47 none
sap
s
En este caso $iene con e" i&entifica&or &e" &isco ero ue&e aarecer co#o !&e$!h&a2! ero "o *ue o he (usca&o es *ue e" unto &e #onta)e fuera ! F"a ra@. Detr's &e" tio &e etensi+n a,a&i#os usr%uota grp%uota ara cuotas &e usuarios &e gruos resecti$a#ente. Pue&e a,a&irse so"o una &e "as &os si "a otra no nos $a a hacer fa"ta. 5 as on 5de'5sda1 during installation @@G&9()3)(1c-a6be-44e1-a6d-c67!ce32(7 usrquota,grpquo ta,errors9remount -ro 1
5
ext4
Para *ue se carguen "os ca#(ios *ue afectan a" siste#a &e archi$os es necesario reiniciar e" e*uio o e)ecutar mount -o remount 5
Lo siguiente a sera asignar cuotas &e &isco a "os usuarios. Para e""o ha *ue enten&er unos ar'#etros *ue se esta("ecen ara ca&a cuota: B"ocKs: In&ica e" n#ero &e ("o*ues *ue o&r' ocuar e" usuario en &isco. Se #i&e en YB Soft: Es e" "#ite ("an&o. Cuan&o e" usuario "o suera se "e a$isa/ ero &isone &e una se#ana For &efecto/ se ue&e #o&ificar ara ocuar un esacio #enor a" *ue in&ica este ar'#etro. Si asa&a una se#ana no "o ha "i(era&o/ se esta("ecer' co#o un "#ite efecti$o no o&r' ocuar na&a #'s. ?ar&: E" "#ite &uro in&ica "a canti&a& *ue no ue&e suerar &e ninguna #anera. Ino&es: E" n#ero &e no&os or "o tanto ficheros *ue ue&e tener e" usuario. Pri#ero &e(e#os sa(er *uH siste#a &e ficheros esta#os usan&o:
Sergio Cuesta Vicente 27 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
d! -" .!icheros 5de'5sda1 ude' tmp!s none none
"ipo 1=-bloques @sado &isponible @so *ontado en ext4 62237 31(33) 36)(1) 4) 5 de'tmp!s ((3() 4 ((3(2 1 5de' tmp!s 2(() 62 242)4 1 5run tmp!s (12 (12 5run5lock tmp!s (12)4 7 (12)32 1 5run5shm
Ahora a o&e#os esta("ecer una cuota. setquota -u prueba 124 247 5de'5sda1
?e#os esta("eci&o una cuota ("an&a &e 296<9YB F291B una &ura &e F691B sin "#ites &uros ni ("an&os &e ino&os. Si esta("ece#os 9 co#o $a"or &e a"guno &e "os "#ites no ese "#ite no se a"icar'.
Discute en c"ase "as i#"icaciones *ue ue&e tener no esta("ecer "#ites &uros o ("an&os.
La cuota &e un gruo se esta("ecera con "a oci+n ]g en "ugar &e ]u. Este "#ite es ara e" gruo en genera"/ no ara ca&a usuario &e" gruo. -a#(iHn ue&en e&itarse "as *uotas: edquota -u Nombre@suario
Sergio Cuesta Vicente 2+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
edquota -g NombreLrupo
Para $er un "ista&o &e to&os "os usuarios sus cuotas usa#os repquota ?a
ara consu"tar "a &e un usuario en articu"ar quota -u prueba
Esta("ece una cuota ("an&a &e 21B ara un usuario una &ura &e 61B/ rue(a a suerar "a ("an&a ero *ue&'n&ote or &e(a)o &e "a &ura "uego rue(a a suerar "a &u&a. Aunta "o *ue suce&e.
9odos de conei#n del cliente -P es un rotoco"o *ue funciona sie#re so(re -CP a *ue no ha oci+n o $ersi+n con UDP. -ica#ente -P uti"i@a &os uertos/ uno &e contro" Fara +r&enes o co#an&os/ e" 62 un uerto ara &atos F69. Si te has fi)a&o &urante "os untos anteriores/ e" roio ser$i&or &e -P nos e&a *ue as'ra#os a" #o&o asi$o/ eroZ Q*uH esR Pri#ero $ere#os e" acti$o. 9odo activo En e" #o&o acti$o "as cosas funcionan co#o se eonen a continuaci+n:
Sergio Cuesta Vicente 28 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
2. E" c"iente hace una etici+n a" ser$i&or en e" uerto 62 &es&e "o *ue se conoce co#o un uerto a"to F2960 *ue ""a#are#os N/ con co#an&os co#o or e)e#"o "s o get. 6. Si "a etici+n re*uiere "a transferencia &e &atos &e" ser$i&or a" c"iente/ el servidor a(re una conei+n a otro uerto a"to Fgenera"#ente N[2 0. E" ser$i&or transfiere "os &atos. En "os asos anteriores se han o#iti&o "as confir#aciones/ etc in$o"ucra&as. Este #o&o sigue "a "+gica &e "a #aora &e "as coneiones -CP. E" ro("e#a con e" *ue se encuentra este #o&o es *ue si e" c"iente se encuentra tras un fire7a"" o cua"*uier &isositi$o *ue haga NA- "o #'s ro(a("e es *ue e" ser$i&or no ue&a conectarse con H" hacien&o *ue fa""e e" aso 6. 9odo pasivo La so"uci+n a esto es e" #o&o asi$o/ en e" *ue "as cosas suce&en &e #anera un oco &iferente:
2. E" c"iente hace una etici+n a" ser$i&or en e" uerto 62 &es&e "o *ue se conoce co#o un uerto a"to F2960 *ue ""a#are#os N/ con co#an&os co#o or e)e#"o "s o get. Este aso es i&Hntico. 6. E" c"iente ha a$isa&o a" ser$i&or &e *ue H" se encargar' &e co#en@ar "a conei+n/ or "o *ue e" ser$i&or contesta con otro uerto a"to a" *ue e" c"iente &e(e conectarse. 0. Si "a etici+n re*uiere "a transferencia &e &atos &e" ser$i&or a" c"iente/ el cliente a(re una conei+n a ese uerto. <. E" ser$i&or transfiere "os &atos. Co#o ue&es o(ser$ar "a rincia" &iferencia es *uiHn a(re "a conei+n se hace ara e$itar "os ro("e#as co#enta&os en e" aarta&o anterior. Por &efecto e" c"iente se conecta en #o&o acti$o/ ero se ue&e asar a" asi$o #e&iante e" co#an&o a&ecua&o. !tp localhost
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
0onnected to localhost. 22 /'sM"%d 2.3.(A Name /localhostrootA sergio1 331 %lease speci!y the passord. %assord 23 +ogin success!ul. Eemote system type is @NGU. @sing binary mode to trans!er !iles. !tpP ls 2 %
Para acti$ar o &esacti$ar e" #o&o asi$o se uti"i@a en e" archi$o &e configuraci+n Fest' acti$a&o pas'8enable9F
o "o #is#o con F>
Sergio Cuesta Vicente 20 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Protoco"o seguro &e transferencia &e archi$os E" uso &e SSL!-SL en -P tiene senti&o esecia"#ente a "a hora &e co#unicar "as cre&encia"es &e autenticaci+n as *ue si so"o $a#os a usar -P an+ni#o no &e(era#os reocuarnos. Lo ri#ero *ue &e(e#os hacer es generar un certifica&o. $s-P& uti"i@a e" for#ato e# as *ue "o genera#os con "a siguiente or&en openssl req -x( -nodes 5etc5ssl5pri'ate5's!tpd.pem
-days
3)(
-nekey
rsa247 -keyout
?a(r' *ue e&itar e" archi$o &e configuraci+n m' 5etc5's!tpd.con! 5etc5's!tpd.con!.bak sudo gedit 5etc5's!tpd.con!
escri(ir "o siguiente listen9F anonymous8enable9N< local8enable9F rite8enable9F ssl8enable9F listen8port9 "he !olloing line enables implicit mode
Sergio Cuesta Vicente 20% de 338
5etc5ssl5pri'ate5's!tpd.pem
-out
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
implicit8ssl9F allo8anon8ssl9N< "his ill !orce secure data connections, not required, but recommended !orce8local8data8ssl9F "his ill !orce secure logins, not strictly required, but EF#++ recommended !orce8local8logins8ssl9F ssl8tls'19F ssl8ssl'29N< ssl8ssl'39N< +a siguiente lnea es necesaria para que MileSilla acepte la conexin ssl8ciphers9#F127-$# rsa8cert8!ile95etc5ssl5pri'ate5's!tpd.pem
Los ar'#etros anteriores &e(eran ser (astante e$i&entes a estas a"turas. Discute en c"ase *uH hacen.
Posterior#ente ten&re#os *ue reiniciar e" ser$icio. ser'ice 's!tpd restart
n cliente en modo teto para &
Sergio Cuesta Vicente 202 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
sudo apt-get update sudo apt-get install l!tp
ahora a o&e#os ro(ar nuestra conei+n. l!tp !tps55localhost l!tp localhostHP user prueba 0la'e l!tp pruebaWlocalhostHP ls ls Frror !atal 0erti!icate 'eri!ication Not trusted l!tp pruebaWlocalhostHP set ssl'eri!y-certi!icate no l!tp pruebaWlocalhostHP ls -r-r--r-1 11 12 744( #pr 1) 212 examples.desktop l!tp pruebaWlocalhostHP quit
En "a anterior rue(a se uti"i@an unos co#an&os ('sicos/ se ue&en consu"tar to&os con en co#an&o help una $e@ conecta&os a "ft.
Sergio Cuesta Vicente 203 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Uti"i@aci+n &e herra#ientas gr'ficas E" c"iente gr'fico #'s eten&i&o en -P es i"e@i""a. DesuHs &e &escargar"o &esco#ri#ir"o e)ecuta#os e" archi$o (in!fi"e@i""a.
En "a $entana *ue nos aarece "o ri#ero es conectarnos a" ser$i&or/ ara "o *ue tene#os *ue esta("ecer unos ar'#etros: 2. La ur" &e" ser$i&or/ con e" rotoco"o 6tps en caso &e *ue *uera#os una conei+n segura e" ser$i&or "o er#ita. 6. E" no#(re &e usuario. 0. La contrase,a. <. Un uerto en caso &e *ue e" ser$i&or no estH configura&o ara reci(ir coneiones en "os uertos est'n&ar. ;. Pu"sa#os en e" (ot+n ara conectarnos. En e" caso &e esta("ecer una conei+n segura/ si e" certifica&o no es &e confian@a/ nos aarecer' una $entana &e a$iso en "a *ue $ere#os "os &atos &e" certifica&o o&re#os #arcar e" certifica&o ara *ue nos $ue"$a a reguntar si confia#os en H". Una $e@ nos he#os conecrta&o $ere#os *ue en "a arte inferior tene#os una esecie &e e"ora&or &e archi$os en e" *ue en "a arte &e "a i@*uier&a aarece "o *ue tene#os en "oca" en "a &e "a &erecha "as caretas archi$os en e" ser$i&or -P. E" funciona#iento es #u senci""o sien&o "a oeraci+n ('sica "a &e su(ir o (a)ar archi$os ara "a *ue (asta con arrastrar &e un sitio a otro. -en en cuenta *ue "os er#isos en "as caretas en a#(os "a&os tienen *ue er#itir *ue rea"ice#os "a acci+n *ue reten&e#os ""e$ar a ca(o.
Insta"a i"e@i""a rue(a a conectarte #e&iante -PS. Prue(a a su(ir (a)ar archi$os. QPue&es e"i#inar"os o reno#(rar"os en e" ser$i&orR Q5uH (ot+n se uti"i@a ara &esconectarseR
Sergio Cuesta Vicente 20 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Uti"i@aci+n &e" ser$icio &e transferencia &e archi$os &es&e e" na$ega&or Los na$ega&ores We( actua"es soortan coneiones -P sin e#(argo no sue"en soortar -PS o -PES. Por e""o re$ierto "a configuraci+n &e" ser$i&or a -P nor#a". m' 5etc5's!tpd.con! 5etc5's!tpd.con!.!tps m' 5etc5's!tpd.con!.bak 5etc5's!tpd.con! sudo ser'ice 's!tpd restart
Para conectarnos con una conei+n an+ni#a no ha #'s *ue oner ft:!!"oca"host ft:!!"oca"host en en "a (arra &e &irecciones/ &on&e "oca"host ser' "a &irecci+n &e" sitio. Pero ara conectarte con un usuario se escri(e ft:!!no#(reusr%sitio.7e( Por e)e#"o si #e conecto a ft:!!rue(a%"oca"host #e i&e "a contrase,a ara e" usuario "uego #e #uestra su careta/ "o ri#ero *ue $e#os es *ue a no aarece e" no#(re &e" usuario en "a (arra &e &irecci+n ero s en e" ttu"o &e "a $entana!esta,a &e na$egaci+n. Sin e#(argo "os na$ega&ores 7e( no son c"ientes -P so"o er#iten na$egar or "as caretas &escargar archi$os/ ero no su(ir"os. Este "ti#o ro("e#a e" &e "as coneiones -PS "o o&e#os so"ucionar #e&iante co#"e#entos co#o or e)e#"o ire-P ire-P ara ara irefo.
Sergio Cuesta Vicente 200 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Uti"i@aci+n &e" ser$icio &e transferencia &e archi$os en e" roceso &e &es"iegue &e "a a"icaci+n 7e( Este unto &e" te#ario ha *ue&a&o cu(ierto con "o $isto en to&os "os anteriores. E" &es"iegue &e a"icaciones We( #e&iante -P i#"ica insta"ar un ser$i&or -P en "a #is#a #'*uina en "a *ue tenga#os e" ser$i&or We( !o &e A"icaciones ha(i"itar "a careta &e "a a"icaci+n ara *ue se ue&an conectar &eter#ina&os usuarios con ociones ara #o&ificar e" conteni&o. De esta for#a o&re#os &esarro""ar to&a "a a"icaci+n en una #'*uina &e &esarro""o rue(as su(ir "a $ersi+n fina" ro(a&a a" ser$i&or sin necesi&a& &e acceso fsico a H". E$i&ente#ente ara un &esarro""a&or 7e( *ue tra(a)e ara #uchos c"ientes esta oci+n es co#"eta#ente $ita".
Sergio Cuesta Vicente 207 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Desarro""o &e oeraciones re#otas &e gesti+n &e conteni&os: c onteni&os: We(DAV We(DAV We(DAV F#uchas $eces se conoce co#o DAV a secas es una etensi+n &e ?--P *ue faci"ita e" #ane)o &e &ocu#entos en ser$i&ores 7e(. We(DAV F#uchas Per#ite gestionar $ersiones autora &e &ocu#entos &e una for#a &istri(ui&a. Co#o tantos roectos &esarro""a&os or gruos &e tra(a)o en Internet/ est' en constante e$o"uci+n. ?a *ue tener en cuenta *ue We(DAV es un rotoco"o or "o *ue se ue&e $er co#o un siste#a &e ficheros &istri(ui&o con caaci&a&es co#o or e)e#"o ("o*uear recursos ara su actua"i@aci+n e$itan&o *ue otros ue&an estar #o&ific'n&o"os a "a $e@. A" ser un rotoco"o er#ite *ue se creen a"icaciones so(re H" ara "a gesti+n &istri(ui&a &e &ocu#entos en "a 7e(. En e" caso *ue nos i#orta tiene "a gran uti"i&a& &e er#itir *ue gruos &e tra(a)o &e gente en "oca"i@aciones fsicas &iferentes #antengan actua"icen una 7e( o a"icaci+n 7e( #ini#i@an&o "os ro("e#as *ue e""o con""e$a. En e" roio sitio &e" organis#o ue&es consu"tar una "ista &e ro&uctos *ue ro&uctos *ue usan We(DAV/ si "e echas un $ista@o te $as a sorren&er. En e" fon&o We(DAV no es #'s *ue una esecie &e conei+n *ue te er#ite &esarro""ar en #o&o re#oto acce&ien&o a "os recursos &e" ser$i&or ara #o&ificar"os co#o si estu$ieran en "oca". Para &e#ostrar esto se ue&e consu"tar "a siguiente "ista &e en"aces ara *ue se $ea c+#o se configura "a conei+n a" ser$i&or en &iferentes a"icaciones: 2. 1icrosoft Office 6. Drea#7ea$er 0. E"ora&or &e Win&o7s <. GNO1E en Linu ;. 1AC OS J En esta otra 'gina "o e"ican ara $arias situaciones &iferentes.
Sergio Cuesta Vicente 20+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En "a "ista &e ro&uctos ue&es $er *ue ha #uchas a"icaciones &e e&ici+n &e &ocu#entos Fno necesaria#ente &ocu#entos We( *ue usan esta tecno"oga e inc"uso es osi("e *ue "a haa#os usa&o sin sa(er"o. Aache tiene un #+&u"o ara #+&u"o ara o&er ha(i"itar We(DAV.
Insta"ar configurar un sitio en Aache ara *ue uti"ice We(DAV es senci""o. Es un te#a erfecto ara aren&er a aren&er. A*u tienes un e*ue,o tutoria" ero tutoria" ero ha #ucha infor#aci+n en Internet. Prue(a a ha(i"itar We(DAV en un sitio &e Aache a conectarte &e &iferentes #aneras. Pue&es ro(ar a conectarte &e &os for#as &iferentes e intentar e&itar e" #is#o archi$o ara $er si funciona e" ("o*ueo &e recursos.
Sergio Cuesta Vicente 208 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-e#a ;: Ser$icios &e re& i#"ica&os en e" &es"iegue &e una a"icaci+n 7e(
Sergio Cuesta Vicente 20 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
4eso"utores &e no#(res Internet or etensi+n "a gran #aora &e "as re&es &e or&ena&ores en "a actua"i&a& uti"i@an e" con)unto &e rotoco"os -CP!IP. -CP!IP. La caa &e re& &e este con)unto es "a *ue &efine "as &irecciones &e "os &iferentes &isositi$os conecta&os/ conoci&as co#o &irecciones IP. IP. En "a $ersi+n actua" F< &e" rotoco"o IP "as &irecciones se co#onen &e cuatro gruos o n#eros &e = (its sue"en reresentarse co#o cuatro untos &e" 9 a" 6;; seara&os or untos. No es e" ro+sito &e este #+&u"o a(un&ar en este te#a/ (aste &ecir *ue "o *ue nosotros conoce#os co#o &irecciones &e Internet o U4Ls no son #'s *ue asociaciones &e un no#(re #'s f'ci" &e recor&ar o *ue se asocie a a"go con una &e estas &irecciones IP. E" rotoco"o &e este con)unto *ue se encarga &e esta tarea es DNS F Domain Fame S'stem. E" roceso &e (uscar "a &irecci+n IP asocia&a a un no#(re &e &o#inio &eter#ina&o For e)e#"o 777 e)e#"o 777.n(a.co# .n(a.co# se conoce co#o reso"$er una &irecci+n. Co#o to&o "o *ue $eni#os $ien&o en este curso sigue un #o&e"o C"iente!Ser$i&or en e" *ue "os c"ientes F resolutores o resol(ers for#an arte &e "os siste#as oerati$os &e "as #'*uinas se encargan &e contactar con "os ser$i&ores ara *ue "es in&i*uen "a &irecci+n IP asocia&a a una U4L cuan&o sea necesario. ?a *ue tener en cuenta *ue un ser$i&or DNS ue&e ser c"iente &e otro ser$i&or DNS. Los ser$i&ores se conocen co#o Ser$i&ores &e No#(res F Fame Ser(ers funcionan segn e" #o&e"o )er'r*uico &istri(ui&o:
er'r*uico or*ue se organi@a co#o un 'r(o" in$erti&o. En "a ra@ F&o#inio ara *ue reci(e su no#(re &e" roecto ger#en &e Internet estara "a autori&a& rincia" *ue &e"ega "as ter#inaciones rincia"es a organis#os/ enti&a&es o ases. Estas ter#inaciones inc"uen e"e#entos co#o .co#/ .org/ .net/ .go$/ .es/ .us/ .uK/ .fr etc. Los encarga&os &e gestionar ca&a una &e estas ter#inaciones F&o#inios &e ni$e" suerior o to"e$e" to"e$e" ue&en a su $e@ su(&i$i&ir &e"egar e" &o#inio. Por e)e#"o en Gran Breta,a han crea&o uno co#ercia" su ter#inaci+n es .co.uK as .co sera una @ona &e"ega&a &entro &e .uK Un e)e#"o co#"eto &e to&o esto sera or e)e#"o 777 777.ii.ua#.es .ii.ua#.es en e" *ue F&e &erecha a i@*uier&a se in&ica *ue es un &o#inio &e Esa,a/ &e "a Uni$ersi&a& Aut+no#a &e 1a&ri&/ &e "a Escue"a &e Ingeniera Infor#'tica &entro &e eso *ue hace referencia a" ser$i&or 7e(. En este "ti#o aarta&o ue&e ha(er otros co#o or e)e#"o ft. Las &os &irecciones &e e)e#"o $istas arri(a son hostnames a
Sergio Cuesta Vicente 27 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
*ue tienen una o #'s &irecciones IP asocia&as. Las artes &e "a &erecha in&ican &o#inios o su(&o#inios/ ero no se asocian con &irecciones concretas. Distri(ui&o or*ue no es necesario *ue un reso"utor DNS sea caa@ &e conocer to&as "as osi("es asociaciones sino *ue ue&e conocer a"gunos asar"e "as *ue no conoce a otros ser$i&ores as co#o reci(ir a su $e@ eticiones &e otros ares ara reso"$er "as *ue s conoce. Esto "o $ere#os en #'s &eta""e en e" roceso &e reso"uci+n &e no#(res. Co#o nota ara e" futuro/ con$iene &ecir *ue nos encontra#os en un roceso &e transici+n tanto en IP &e "a $< a "a $ co#o en DNS en e" *ue se reten&e f"ei(i"i@ar e" con)unto &e ter#inaciones se est'n estu&ian&o osi("es consi&eraciones ara inc"uir nue$os &o#inios &e ni$e" suerior.
Sergio Cuesta Vicente 27% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Este roceso se conoce co#o DNS est'n&ar saturara Internet "os ser$i&ores &e no#(res or "o *ue en "a r'ctica se uti"i@a co#(ina&o con un roceso &e a"#acena&o en cac" &e &irecciones &e Internet or to&os "os e"e#entos i#"ica&os F&es&e e" reso"utor &e no#(res &e nuestro or&ena&or "o *ue se &eno#ina D7 recursivo. E" a"#acena#iento en cachH se ro&uce ca&a $e@ *ue se rea"i@a una consu"ta. Los &isositi$os or "os *ue asa "a infor#aci+n a"#acenan to&a "a *ue $an reci(ien&o Fno so"o "a re"aciona&a &irecta#ente con "a U4L o IP consu"ta&a. E" DNS recursi$o ('sica#ente er#ite *ue uno &e estos e"e#entos resue"$a "as IPs &e &o#inios &e otra gente. Si or e)e#"o est's en e" or&ena&or &e tu casa *uieres (uscar a"go en goog"e. -ec"eas 777.goog"e.es tu na$ega&or ri#ero intenta $er si H" #is#o sa(e "a IP &e Goog"e Esa,a. Si no "a sa(e se "a regunta a" siste#a oerati$o *ue si ta#oco "o sa(e "a reguntar' a "os ser$i&ores &e tu ISP FInternet Ser$ices Pro$i&er/ or e)e#"o -e"ef+nica o a@@te" *ue si no "o sa(en a recorrer'n e" ca#ino conta&o anterior#ente. La gran &iferencia es *ue en este #o&e"o si e" ser$i&or a *uiHn reguntas no sa(e "a resuesta se encarga H" &e (uscar"a F a"#acenar"a en cachH or si "e hacen "a #is#a consu"ta hacien&o &e c"iente *ue regunta a otro ser$i&or. Este roceso se reite hasta *ue se o(tiene una resuesta concretaM genera"#ente "a IP (usca&a ero ta#(iHn ue&e ser *ue "a U4L consu"ta&a no eiste. Este roceso no funcionara (ien sin un tie#o &e $i&a F--L &e "as &irecciones a"#acena&as en cachH tras e" *ue se #arcar'n co#o no $'"i&as se $o"$er'n a consu"tar con "a ri#era etici+n *ue ""egue. Para to&o este roceso se crean @onas &irectas *ue contienen registros SOA NS ue&en contener cua"*uier otro #enos P-4. Ve#os "os registros un oco #'s a(a)o. 8everse :oo5up -a#(iHn eiste e" roceso in$erso F re(erse DNS or e" *ue se ue&en o(tener "os no#(res &e &o#inio asocia&os a una &irecci+n IP &eter#ina&a. Estas consu"tas siguen e" #is#o roceso/ ero usan un &o#inio esecfico *ue se ""a#a inGaddr.arpa F ip7.arpa ara IP$. Las &irecciones IP se reresentan in$erti&as co#o un no#(re &e &o#inio. Por e)e#"o "a &irecci+n 260.<;.8.=> se reresentara co#o =>.8.<;.260.ina&&r.ara
Pri#ero se consu"tara a *uiHn est' asocia&a 260 as sucesi$a#ente.
Sergio Cuesta Vicente 272 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
La @ona *ue se &e(e crear en este caso se ""a#a @ona in$ersa sue"e contener registros SOA/ NS/ P-4 CNA1E.
E" co#an&o ns"ooKu sir$e ara hacer consu"tas DNS. unciona en Win&o7s/ 1AC o Linu. Usan&o "a roia au&a &e" co#an&o &escu(re c+#o se rea"i@a: una consu"ta &irecta/ una in$ersa/ una consu"ta a un ser$i&or DNS concreto Fno a" or &efecto
Sergio Cuesta Vicente 273 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Par'#etros &e configuraci+n registros &e" ser$i&or &e no#(res afecta&os en e" &es"iegue Co#o nos ha hecho fa"ta en $arias ocasiones a "o "argo &e" curso/ "a insta"aci+n configuraci+n &e un ser$i&or 7e( se inc"u+ en "os aHn&ices. Sin e#(argo fa"ta(a "a arte te+rica *ue nos er#itir' enten&er *uH hace#os or *uH as co#o #e)orar "a configuraci+n si fuera necesario. En e" aarta&o anterior a he#os $isto ara *uH se uti"i@an "as @onas &irecta e in$ersa or *uH son necesarias. A&e#'s/ o&e#os co#ren&er ara *uH se uti"i@an "os 6or$arders co#o #e&io ara reso"$er "as consu"tas *ue no conoce#os/ sien&o estos 6or$arders genera"#ente ser$i&ores &e no#(res FDNS &e un ISP u otras organi@aciones. Por e)e#"o Goog"e tiene ser$i&ores &e no#(res con "as &irecciones =.=.=.= =.=.<.< Sin e#(argo ha una arte *ue no ha *ue&a&o na&a c"ara son "os registros &e "os ser$i&ores DNS. Un esource ecord F44 es e" e"e#ento #'s ('sico &e DNS. Los registros &efinen "as caractersticas &e una @ona o &o#inio se usan en "as consu"tas &e no#(res. Ca&a registro tiene un tie#o &e $i&a F--L ime o =i(e *ue in&ica cu'n&o &e)ar' &e ser $'"i&o. En &efiniti$a "os registros se uti"i@an ara asociar una U4L a una IP. Los registros tienen un for#ato est'n&ar: >$ner = Class 'pe DAA &on&e
*!ner: es e" no#(re &e "a #'*uina o &e" &o#inio DNS a" *ue ertenece este recurso.
++: Fime o =i(e: E" tie#o en segun&os *ue &e(e #antenerse este registro en cachH. Si no aarece se usa e" --L #ni#o &e"
registro SOA. Class: In&ica *ue fa#i"ia &e rotoco"os se usa. En Internet es casi ec"usi$a#ente IN. +3pe: E" tio &e" 44. 8D#+#: Los &atos &e" recurso *ue in&ica e" registro. Por e)e#"o una &irecci+n IP.
Sergio Cuesta Vicente 27 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
?a #uchos tios &iferentes &e registros ero "os #'s i#ortantes son:
7*#: Cua"*uier @ona *ue se cree en un ser$i&or DNS &e(e contener un registro SOA F Start o6 Authorit' a" inicio &e "a &efinici+n. Este
tio &e registro contiene "os ar'#etros: o O7ner / --L / C"ass -e co#o $i#os arri(a. Authoritati$e ser$er FSer$i&or Autori@a&o: E" ser$i&or DNS ri#ario &e "a @ona. o o 4esonsi("e erson Fersona resonsa("e: correo e"ectr+nico &e "a ersona resonsa("e &e "a @ona. Usa un unto en "ugar &e arro(a. Seria" nu#(er Fn#ero &e serie: #uestra cu'ntas $eces ha si&o actua"i@a&a "a @ona. o o 4efresh Frefresco: in&ica co#o &e frecuente#ente tienen "os ser$i&ores DNS secun&arios &e "a @ona *ue consu"tar si Hsta ha ca#(ia&o. o 4etr Freintento: cu'nto eserar' un ser$i&or secun&ario "a resuesta antes &e $o"$er a consu"tar osi("es ca#(ios en "a @ona a" ser$i&or ri#ario. Eire Feiraci+n: cu'nto tie#o &es&e "a "ti#a actua"i@aci+n sigue sien&o $'"i&a "a infor#aci+n &e un ser$i&or secun&ario. o o 1ini#u# --L: E" tie#o &e $i&a *ue se a"ica a to&os "os registros &e "a @ona si no tienen uno esecfico. a he#os $isto antes *ue ca&a registro ue&e ""e$ar uno roio ero *ue es otati$o. En "os aHn&ices se encuentran e)e#"os &e configuraci+n a*u o&e#os $er otro prueba.eCemplo.com. GN <# / ns1.prueba.eCemplo.com. \ ser'idor autoriSado para la Sona sergio.cuesta.prueba.eCemplo.com. \ e-mail del administrador de Sona
( \ serial number 3) \ re!resh /1 horaA
Sergio Cuesta Vicente 270 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
) \ retry /1 minsA 7)4 \ expire /1 daA ) A \ minimum ""+ /1 minA
7: Los registros NS in&ican "os ser$i&ores &e no#(res autori@a&os ara una @ona. Pue&en in&icar ser$i&ores tanto ri#arios co#o
secun&arios una @ona tiene *ue tener a" #enos un registro NS con e" ser$i&or ri#ario. En caso &e ha(er @onas &e"ega&as in&ican "os ser$i&ores &e &ichas @onas ta#(iHn. As "a siguiente "nea ten&ra *ue aarecer en "os ser$i&ores &e no#(res &e e)e#"o.co# rue(a.e)e#"o.co# prueba.eCemplo.com. GN N ns1.prueba.eCemplo.com.
#: Los registros &e &irecci+n F Address asocian un no#(re &e &o#inio co#"eto F &ull' !uali6ied Domain Fame o &!DF con una
&irecci+n IP. ns1 GN # 123.4(.)6.7
P+8: Los registros untero F
7.)6.4(.123.in-addr.arpa. GN %"E ns1.prueba.eCemplo.com.
o
Sergio Cuesta Vicente 277 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
7
GN %"E ns1.prueba.eCemplo.com.
C#9=: Los registros &e no#(res can+nicos crean un a"ias. Sue"en uti"i@arse ara ocu"tar "a estructura &e nuestro sitio. Por e)e#"o si
nosotros tene#os un ser$i&or -P *ue se ""a#a ft2 "uego "o ca#(iare#os a otro no *uere#os *ue "os usuarios se enteren. -a#(iHn sir$e ara *ue $arios 5DN se asocien a "a #is#a #'*uina: $arios host $irtua"es o $arios ser$icios co#o ft 777. !tp.prueba.eCemplo.com. GN 0N#*F !tp1.prueba.eCemplo.com.
9@: Este registro es esecfico ara ser$i&ores &e interca#(io &e correo F 9ail 4change. Un ser$i&or &e interca#(io &e correo se
encarga &e rocesar re&irigir "os correos &e un &o#inio. Procesar e" correo ue&e significar entregar"o a "a &irecci+n a&ecua&a &entro &e nuestro &o#inio o asar"o a un tio &iferente &e trasorte &e correo. 4e&irigir e" correo significa en$i'rse"o a" ser$i&or &e correo &e &estino/ &irecta#ente o a tra$Hs &e otros *ue se encuentren en e" ca#ino #e&iante Simple 9ail rans6er
E" n#ero *ue aarece &esuHs &e 1J es "a riori&a&. En este caso tene#os un ser$i&or rincia" con "a #'i#a riori&a& &os &e"ega&os con igua" riori&a& entre e""os. Si un correo ""ega e" ri#ero no est' acti$o se "e asara a" segun&o o a" tercero in&istinta#ente. Si tene#os un gran tr'fico &e correo se ue&en esta("ecer to&os con #'i#a riori&a& ara e$itar saturaciones.
Sergio Cuesta Vicente 27+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
E" co#an&o &ig nos #uestra infor#aci+n &e este tio &e recursos en una for#a #u si#i"ar a "a *ue usa#os ara configurar e" ser$i&or DNS. In$estiga e" co#an&o co#enta sus ociones #'s ti"es. DesuHs contesta a "as reguntas &e #'s a(a)o. Q5uH asa si escri(es &ig sin #'sR QC+#o ue&es in&icar"e a &ig e" ser$i&or DNS *ue &e(e usarR
Sergio Cuesta Vicente 278 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ser$icio &e &irectorios: caractersticas funciona"i&a& E" tHr#ino Ser$icios &e Directorio ue&e ser a#(iguo ""e$ar a confusi+n. Una estructura &e caretas o $o"#enes o &iferentes (ases &e &atos o&ran consi&erarse &entro &e "a categora/ sin e#(argo un Ser$icio &e Directorio en infor#'tica se consi&era *ue es a"go si#i"ar a una gua te"ef+nica o una "ista &e contactos &on&e "os contactos no tienen or *uH ser ersonas. 1's concreta#ente se refiere a siste#as (asa&os en J.;99 o en a"guna $ariante co#o LDAP. Los ser$icios &e &irectorio son siste#as *ue nos faci"itan e" acceso a recursos &e nuestra re& &e #anera uni$ersa". Son (ases &e &atos &e o()etos *ue reresentan recursos ta"es co#o usuarios/ gruos/ caretas o $o"#enes/ ser$i&ores/ i#resoras o a"icaciones. B'sica#ente sir$en ara asociar e" no#(re &e un recurso a su &irecci+n &e re&/ or "o *ue en este asecto se arecen #ucho a DNS. Un ser$icio &e &irectorio &efine "a estructura &e "os no#(res o esacio &e no#(res F namespace ara "a re&: se esta("ece un con)unto &e nor#as *ue esecifican c+#o se co#on&r'n "os no#(res aseguran *ue no ha(r' &u"ica&os ni reeti&os. Estos no#(res sue"en conocerse co#o Distinguished name FDN *ue en una tra&ucci+n "itera" sera no#(re &istingui&o. Si se ca#(ia "a &irecci+n &e un recurso esto so"o i#"ica ca#(iar "a asociaci+n en e" o()eto correson&iente to&o seguir' funcionan&o igua". Sin e#(argo "os ser$icios &e &irectorio no so"o incororan esa funciona"i&a&. Co#o ca&a recurso est' reresenta&o or un o()eto/ &ichos o()etos ue&en tener atri(utos. Por e)e#"o en e" caso &e usuarios se ue&en inc"uir #uchos otros &atos co#o e" no#(re co#"eto &e "a ersona/ su cargo en "a organi@aci+n/ un te"Hfono &e contacto/ etc. Co#o es natura" se ue&en esta("ecer er#isos so(re estos o()etos ara asegurar *ue no to&os "os recursos o su infor#aci+n estar'n &isoni("es ara to&o e" #un&o. En &efiniti$a un ser$i&o &e &irectorio nos er#ite unificar to&os "os recursos &e "a re& sin i#ortar &e *uH tio son o "os rotoco"os o too"oga esecfica &e "a re& &on&e se encuentran. Basta con autenticarnos en "a re& ara o&er acce&er a "os recursos en "os *ue tenga#os er#isos. Co#o a&e#'s se ue&en organi@ar &e #anera &istri(ui&a re"ica&a ue&e ha(er $arios ser$i&ores roorcionan&o "os #is#os esacios &e no#(res ser$ir co#o sustitutos en caso &e saturaci+n o fa""o.
Sergio Cuesta Vicente 27 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
En rinciio ue&e arecer *ue un siste#a &e &irectorio no es #'s *ue una (ase &e &atos re"aciona" ero en un ser$icio &e &irectorio se consi&era *ue "a infor#aci+n $a a "eerse #uchsi#as #'s $eces *ue escri(irse a *ue "as actua"i@aciones o #o&ificaciones ser'n oco frecuentes. Esto hace *ue &eter#ina&os concetos co#o "as transacciones sean oco i#ortantes or "o tanto no se sue"en inc"uir en e" soft7are &e ser$icios &e &irectorio. Por "o tanto un ser$icio &e &irectorio es una (ase &e &atos ero no en e" senti&o a" *ue esta#os acostu#(ra&os &e B&D re"aciona" est' tota"#ente oti#i@a&a ara "as oeraciones &e "ectura. La esecificaci+n J.;99 &efine "as "neas #aestras &e "os ser$icios &e &irectorio/ sin e#(argo es tan co#"e)a *ue ningn soft7are actua" cu#"e con to&as sus con&iciones. J.;99 est' ensan&o ara funcionar con e" #o&e"o &e i"a &e rotoco"os &e re& OSI &e ISO/ concret+ "os asectos *ue a*u nos interesan en un rotoco"o DAP F Director' Access *ue &e hecho es arte &e "a fa#i"ia &e esecificaciones &e J.;99
Sergio Cuesta Vicente 2+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
LDAP 1ucha gente consi&era *ue J.;99 es tan farragoso *ue nunca ""egar' a usarse co#"eta#ente or "o *ue LDAP se cre+ con "a i&ea &e *ue fuera funciona". LDAP est' (astante eten&i&o se uti"i@a en #uchos casos as *ue ser' e" *ue $ea#os. =ight$eight Director' Access
La estructura *ue uti"i@a es si#i"ar a "as &e DNS o "as caretas $o"#enes en siste#as UNIJ!Linu. Esta estructura &e 'r(o" se &eno#ina Data ,n6ormation ree FDI-. Los o()etos *ue a"#acenan "os &atos en LDAP est'n co#uestos &e un no#(re otros atri(utos *ue contengan infor#aci+n asocia&a a" o()eto. Por e)e#"o una ersona con su no#(re/ te"Hfono/ e#ai"/ etc. Estos o()etos se &eno#inan entra&as F 4ntr' . Estas entra&as tienen un tio o c"ase F Class asocia&o a" igua" *ue asa con "os o()etos en Progra#aci+n Orienta&a a O()etos. Los atri(utos &e una c"ase ue&en ser o("igatorios u otati$os. Es un rotoco"o &e "a caa &e a"icaci+n &e -CP!IP a" igua" *ue ?--P/ -P/ S1-P o DNS or e)e#"o. En "a ra@ &e esta estructura &e &irectorios se encuentra e" DN F Distinguished name (ase. Genera"#ente reresenta "a organi@aci+n cuos recursos se $an a gestionar #e&iante LDAP. Por e)e#"o e" no#(re &e una e#resa u organis#o. Por e)e#"o en una e#resa *ue se ""a#ara E)e#"o S.A. Hste o&ra ser e" DN (ase o ta#(iHn o&ra usarse en no#(re &e &o#inio &e "a e#resa: e)e#"o.co#. -en en cuenta *ue ue&e ser un &earta#ento &e una e#resa/ una facu"ta& &e una uni$ersi&a&/ etc./ no es necesario *ue sea e" organis#o a" co#"eto. De(a)o &e" DN (ase aarecer'n otros e"e#entos &e a"guna #anera organi@a&a. Genera"#ente se uti"i@an agruaciones "+gicas. En e" origen se asigna(an estas agruaciones a &iferentes &earta#entos &e una e#resa F$entas/ #arKeting/ etc. or "o *ue reci(ieron e" no#(re &e Uni&a&es Organi@ati$as F >rgani5ational nits/ OU. En "a actua"i&a&/ estas OU sue"en correson&erse con tios &e recurso: usuarios/ gruos/ ser$i&ores/ i#resoras/ $o"#enes &e re&/ etc.
Sergio Cuesta Vicente 2+% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
QC+#o es un DNR Ca&a DN consta &e &os artes/ su roio i&entifica&or su u(icaci+n en e" 'r(o". Su i&entifica&or se ""a#a elati(e Distinguished Fame F4DN es e" no#(re en e" for#ato *ue *uera#os. Por e)e#"o I#resora a Co"or. La segun&a arte in&ica &+n&e se encuentra en un for#ato si#i"ar a" *ue se uti"i@a en DNSM si #is i#resoras est'n en una categora i#resoras e" no#(re co#"eto ser': I#resora a co"or ] I#resoras ] e)e#"o.co# Co#o se ue&e $er e" DN se construe con e" 4DN &e" e"e#ento segui&o &e" DN &e" a&re *ue a su $e@ ser' su 4DN segui&o &e" DN &e" a&re as sucesi$a#ente. Esto sie#re es #'s co#"e)o con ersonas *ue con o()etos inani#a&os. Por e)e#"o ara a,a&ir a 1ara 4a#re@ o&ra#os &ar"e un 4DN 1ara 4a#re@ o su no#(re &e usuario #ra#ire@. QCu'" es #e)orR Deen&e &e "a situaci+n.
La roia 'gina &e "a WiKie&ia so(re LDAP roorciona un oco #'s &e infor#aci+n so(re "as osi("es oeraciones a rea"i@ar en LDAP *ue nos ue&en au&ar a co#ren&er #e)or e" funciona#iento ('sico. Cons"ta"as co#enta en c"ase *uH hacen.
Un $ista@o a" soft7are &e ser$i&or *ue i#"e#enta LDAP nos ""e$a a $er *ue or e)e#"o Acti(e Director' &e "os ser$i&ores Win&o7s "os uti"i@an. Co#o suce&e con otros rotoco"os *ue he#os $isto en LDAP ha $arias $ersiones. Las re&o#inantes en "a actua"i&a& son "a 6 0. La $ersi+n 0 es co#ati("e con c"ientes *ue soorten "a $ersi+n 6 es un roecto &e #e)ora incre#enta" &e "a $ersi+n $6 a" igua" *ue est' suce&ien&o con e" &esarro""o #o&u"ar &e ?-1L; o CSS0. LDAP es casi co#o "a interfa@ &e una c"ase en a$a/ &efine c+#o se reresentan "os &atos *uH oeraciones con e""os se o&r'n rea"i@ar/ ero no ha("a &e "a #anera en "a *ue se a"#acenar'n "os &atos o &e cua"*uier otro &eta""e interno &e funciona#iento &e" ser$i&or.
Sergio Cuesta Vicente 2+2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Insta"aci+n &e OenLDAP En "a actua"i&a& ha $arios ser$i&ores gratuitos &e LDAP. E" *ue #'s antiguo eten&i&o es OenLDAP. E" ser$i&or coge su configuraci+n inicia" &e "a *ue tenga#os en !etc.!hosts as *ue ha(r' *ue e&itar"o ero antes ca#(iare#os e" no#(re &e" host. gedit 5etc5hostname
"e &o e" no#(re ser$i&or gedit 5etc5hosts
&e)ar 126...1 localhost 126..1.1 ser'idor.eCemplo.com ser'idor
O($ia#ente reinicia#os "a #'*uina. E" aso anterior NO ue&e sustituirse or una asociaci+n en e" ser$i&or DNS or*ue LDAP "o usa ara crear "a ra@ &e" 'r(o". Lo siguiente ser' insta"ar e" ser$i&or sudo apt-get update sudo apt-get install slapd ldap-utils
Sergio Cuesta Vicente 2+3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Durante "a insta"aci+n se nos i&e una contrase,a &e ainistra&or/ co#o sie#re o on&rH sergio. E" a*uete slapd es e" ser$i&or #ientras *ue ldapGutils es un con)unto &e a"icaciones &e c"iente Un co#an&o con e" *ue o&e#os echar un $ista@o genera" a" ser$i&or es slapcat
Archi(os bsicos de con6iguraci#n. ,nterpretaci#n ' uso Po&e#os $er e" archi$o ('sico &e "a configuraci+n &e" ser$i&or sudo gedit 5etc5ldap5ldap.con!
Lo *ue #uestra +% &e!aults ee ldap.con!/(A !or details "his !ile should be orld readable but not orld ritable. I#F dc9example,dc9com @EG ldap55ldap.example.com ldap55ldap-master.example.com))) GTF+G*G" "G*F+G*G" &FEFM
12 1( ne'er
Sergio Cuesta Vicente 2+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
"+ certi!icates /needed !or Lnu"+A "+80#0FE" 5etc5ssl5certs5ca-certi!icates.crt
Si te &as cuenta "a nica "nea no co#enta&a es "a "ti#a *ue in&ica e" certifica&o *ue usa -LS en LDAP. Con "os conoci#ientos a&*uiri&os hasta "a fecha &e(era ser transarente c+#o crear otro certifica&o usar"o con nuestro ser$i&or ero no ahon&are#os en e" te#a. La (ase &e &atos &e LDAP est' configura&a co#o un con)unto &e archi$os LDI F=DA< Data ,nterchange &ormat *ue se encuentran a artir &e !etc.!"&a!s"a&.&! Los archi$os LDI &e(en cu#"ir unas nor#as #u c"aras: Las "neas &e co#entarios e#ie@an or \ se ignoran a" rocesar e" archi$o Las "neas *ue e#ie@an or un nico esacio en ("anco se consi&eran una continuaci+n &e "a anterior inc"uso si Hsta "ti#a es un co#entario Ca&a entra&a se &e(e searar &e "a siguiente or una "nea en ("anco Po&e#os consu"tar esta estructura #e&iante e" rotoco"o LDAP con
sudo ldapsearch - -+++ - FU"FEN#+ -$ ldapi555 -b cn9con!ig dn
E" DN &e" ainistra&or ara e" *ue intro&u)i#os es cnain/&ce)e#"o/&cco#. E" rotoco"o LDAPI usa socKets &e UNIJ ara "a conei+n son #'s r'i&as seguras. Nos "a i&e ara "a consu"ta anterior or ser ainistrati$a. -a#(iHn o&e#os consu"tar e" 'r(o" &e nuestro sitio
Sergio Cuesta Vicente 2+0 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
ldapsearch -x -+++ -$ ldap555 -b dc9eCemplo,dc9com dn
Lo *ue #uestra dn dc9eCemplo,dc9com dn cn9admin,dc9eCemplo,dc9com
Don&e "a ri#era "nea es e" origen &e" DI- "a segun&a e" DN &e" ainistra&or co#o $i#os un oco #'s arri(a. La oci+n ] sir$e ara usar autenticaci+n si#"e/ LLL in&ica *ue no nos #uestre &eta""es a&iciona"es &e LDI/ ? es e" host ]( sir$e ara in&icar a artir &e *uH no&o tiene *ue (uscar. As or e)e#"o ldapsearch -x -+++ -$ ldap55ser'idor.eCemplo.com -b cn9admin,dc9eCemplo,dc9com dn
Nos #ostrara so"o e" ainistra&or or*ue no tiene hi)os. Co#o o&e#os $er esta for#a &e configurar OenLDAP usa un 'r(o" LDAP FDI- se #ane)a igua" *ue e" resto as *ue "as oeraciones *ue $ea#os ara #o&ificar e" conteni&o &e LDAP son co#ati("es con "o *ue aren&a#os a*u. A&e#'s esto er#ite *ue se ue&a #o&ificar "a configuraci+n &e" ser$i&or sin "a necesi&a& &e reiniciar en casi ningn caso. Co#o $ea#os un oco #'s arri(a/ "a ra@ &e" 'r(o" &e configuraci+n se &eno#ina cnKcon6ig *ue contiene "os atri(utos &e "a configuraci+n g"o(a"/ to&o "o &e#'s se encuentra en no&os hi)o *ue ue&en contener infor#aci+n &e:
1+&u"os carga&os &in'#ica#ente
Sergio Cuesta Vicente 2+7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Definiciones &e es*ue#as Configuraci+n &e" (acKen& Configuraci+n esecfica &e "a (ase &e &atos L"ega&os a este unto es i#ortante ac"arar *uH interreta OenLDAP co#o (acKen& *uH co#o fronten&:
ronten&: La arte *ue se encarga &e" acceso a re& &e rocesar "as +r&enes re"aciona&as con e" rotoco"o. BacKen&: La arte *ue se encarga &e" a"#acena#iento &e "os &atos. Sin e#(argo esto ue&e ""e$ar a confusi+n a *ue eiste un e"e#ento *ue se &eno#ina (ase &e &atos fronten& *ue sir$e ara a"icar configuraciones &e for#a g"o(a" a to&o e" resto &e "as (ases &e &atos.
E" asecto genera" &e" LDI &e configuraci+n sera co#o sigue Fe" teto entre "os s#(o"os se &e(era sustituir or configuraci+n rea": 0on!iguracin global dn cn9con!ig obCect0lass olcLlobal cn con!ig Oatributos de con!iguracin globalP &e!iniciones de esquemas dn cn9schema,cn9con !ig obCect0lass olcchema0on!ig cn schema Osystem schemaP dn cn9`Ucore,cn9sc hema,cn9con!ig obCect0lass olcchema0on!ig cn `Ucore Ocore schemaP *^s esquemas de!inidos por el usuario
Sergio Cuesta Vicente 2++ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
... iniciones de backend dn olcIackend9Otype #P,cn9con!ig obCect0lass olcIackend0on!i g olcIackend Otype#P Ocon!iguracin espec!ica de backendP &e!iniciones de la base de datos dn olc&atabase9`UO type#P,cn9con!ig obCect0lass olc&atabase0on! ig olc&atabase `UOtype#P Ocon!iguracin especi!ica de de la base de datosP *^s de!iniciones y con!iguraciones ...
Pue&es $er *ue a"gunos atri(utos ""e$an un n#ero J F&on&e J sera un n#ero entero antes &e" $a"or. Esto es &e(i&o a *ue en un LDAP no se esecifica ningn or&en as *ue se ha teni&o *ue intro&ucir una #anera &e esecificar un or&en &eter#ina&o cuan&o es necesario *ue ta" configuraci+n se a"i*ue sie#re antes *ue ta" otra. ?asta "a $ersi+n 6.6 Factua"#ente se usa "a 6.< OenLDAP usa(a un archi$o &e configuraci+n slapd.con6 *ue se ha sustitui&o or este otro siste#a en e" *ue "as &irecti$as &e configuraci+n con atri(utos &e entra&as en e" DI- &e configuraci+n. Para faci"itar "a transici+n to&as "as &irecti$as *ue se uti"i@a(an en e" archi$o antiguo ahora ""e$an e" refi)o o"c en e" no#(re &e" atri(uto. Para a,a&ir/ #o&ificar o e"i#inar c"'usu"as &e configuraci+n se uti"i@an "as #is#as oeraciones *ue $ere#os ara usar e" 'r(o" esecfico *ue he#os crea&o. Son atri(utos se #o&ifican igua". En e" aarta&o &e contro" &e acceso $ere#os e)e#"os con &irecti$as &e configuraci+n re"aciona&as con "os er#isos. Las c"'usu"as &e configuraci+n se ue&en $er en "a &ocu#entaci+n &e OenLDAP ero a #i enten&er escaan a" conteni&o &e" curso.
Sergio Cuesta Vicente 2+8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
E" ser$i&or ta#(iHn contiene a"gunos es*ue#as reinsta"a&os ls etcldapsc3ema collecti'e.ldi! cosine.schema collecti'e.schem a duacon!.ldi! corba.ldi! duacon!.schema corba.schema dyngroup.ldi! core.ldi! dyngroup.schema core.schema inetorgperson.ldi ! cosine.ldi! inetorgperson.sch ema
Ca'a.ldi! Ca'a.schema ldapns.schema misc.ldi! misc.schema nis.ldi! nis.schema
openldap.ldi! openldap.schema pmi.ldi! pmi.schema ppolicy.ldi! ppolicy.schema EF#&*F
Pue&en consu"tarse estos es*ue#as a(rien&o "os archi$os gedit 5etc5ldap5schema5inetorgperson.ldi!
Pero es #'s f'ci" en&o a "a &ocu#entaci+n &e OenLDAP. A*u $e#os e" #is#o *ue con e" co#an&o anterior ser' uno &e "os *ue usare#os en "os e)e#"os *ue $aa#os hacien&o.
Sergio Cuesta Vicente 2+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Crean&o conteni&o en LDAP Para o&er autenticar usuarios usan&o LDAP ri#ero ten&re#os *ue crear"os. Va#os a crear una estructura co#o se in&ica: Un no&o usuarios Un no&o gruos Un usuario Un gruo Para e""o crea#os un archi$o creaconteni&o."&if
gedit crea8contenido.ldi!
Con e" conteni&o dn ou9@suarios,dc9eCemplo,dc9com obCect0lass organiSational@nit ou @suarios dn ou9Lrupos,dc9eCemplo,dc9com obCect0lass organiSational@nit ou Lrupos dn cn9programadores,ou9Lrupos,dc9eCemplo,dc9com obCect0lass posixLroup cn programadores
Sergio Cuesta Vicente 28 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
gidNumber ( dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com obCect0lass inet
Ahora e)ecuta#os "a or&en ara a,a&ir e" conteni&o crea&o en e" archi$o "o *ue nos i&e "a contrase,a nos infor#a &e *uH se ha crea&o ldapadd -x -! cn'admin4dc'ejemplo4dc'com -5 -f crea6contenido.ldif Fnter +% %assord adding ne entry Dou9@suarios,dc9eCemplo,dc9comD adding ne entry Dou9Lrupos,dc9eCemplo,dc9comD adding ne entry Dcn9programadores,ou9Lrupos,dc9eCemplo,dc9comD
Sergio Cuesta Vicente 28% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
adding ne entry Duid9sergio,ou9@suarios,dc9eCemplo,dc9comD
Ahora *ue a tene#os conteni&o o&e#os (uscar &atos &entro &e LDAP ldapsearc3 -x -LLL - dc'ejemplo4dc'com 7uid'ser#io7 dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com obCect0lass inet
-a#(iHn o&e#os consu"tar atri(utos &eter#ina&os ldapsearc3 -x -LLL - dc'ejemplo4dc'com 7uid'ser#io7 uid displayName mail dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com
Sergio Cuesta Vicente 282 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
uid sergio displayName ergio 0uesta mail sergio.cuestaWeCemplo.com
O (uscar e" atri(uto ui& &e to&as "as entra&as ldapsearc3 -x -LLL - dc'ejemplo4dc'com uid dn dc9eCemplo,dc9com dn cn9admin,dc9eCemplo,dc9com dn ou9@suarios,dc9eCemplo,dc9com dn ou9Lrupos,dc9eCemplo,dc9com dn cn9programadores,ou9Lrupos,dc9eCemplo,dc9com dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com uid sergio
Insta"a OenLDAP en tu ser$i&or a,a&e infor#aci+n so(re ti co#o usuario. Prue(a a rea"i@ar consu"tas &e conteni&o. Q5uH suce&e si e"i#inas e" ar'#etro ]LLL en tus (s*ue&asR QConsi&eras #'s ti"es "as (s*ue&as as o con e" ar'#etro ]LLLR QPor *uHR
Sergio Cuesta Vicente 283 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Una $e@ haas ter#ina&o/ crea otro archi$o ara a,a&ir un segun&o usuario e)ecta"o. Prue(a nue$as (s*ue&as.
Eisten #uchsi#as ociones &e (s*ue&a no es e" o()eti$o &e este curso rofun&i@ar #ucho en LDAP/ ero ara o&er oner un ar &e e)e#"os #'s &e (s*ue&as $o a a,a&ir otro usuario gedit crea8maria.ldi!
Con e" conteni&o dn uid9maria,ou9@suarios,dc9eCemplo,dc9com obCect0lass inet
Sergio Cuesta Vicente 28 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
st *adrid
Lo a,a&i#os ldapadd -x -& cn9admin,dc9eCemplo,dc9com -V -! crea8maria.ldi!
(usca#os "os usuarios &e" esta&o 1a&ri& ldapsearc3 -x -LLL - dc'ejemplo4dc'com 8st'9adrid8 displayName dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com displayName ergio 0uesta dn uid9maria,ou9@suarios,dc9eCemplo,dc9com displayName "VMy)1hGMBhbc
Si te &as cuenta/ no "e han gusta&o "as ti"&es en e" no#(re &e 1ara. Luego #ostrare#os c+#o #o&ificar atri(utos. Po&e#os (uscar to&os "os no&os &entro &e Usuarios ldapsearc3 -x -LLL - ou'%suarios4dc'ejemplo4dc'com uid dn ou9@suarios,dc9eCemplo,dc9com dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com uid sergio dn uid9maria,ou9@suarios,dc9eCemplo,dc9com
Sergio Cuesta Vicente 280 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
uid maria
O (uscar "os no&os con esta&o 1a&ri& ui& #aria ldapsearc3 -x -LLL - dc'ejemplo4dc'com 8;st'9adrid<uid'maria<<8 dn uid9maria,ou9@suarios,dc9eCemplo,dc9com obCect0lass inet
Por "ti#o (uscare#os "os *ue tengan ui& #aria o sergio ldapsearc3 -x -LLL - dc'ejemplo4dc'com 8=uid'ser#io<uid'maria<<8 #ecos dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com gecos ergio 0uesta
Sergio Cuesta Vicente 287 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
dn uid9maria,ou9@suarios,dc9eCemplo,dc9com gecos *aria EamireS
9odi6icando el contenido Va#os a $er c+#o a,a&ir/ (orrar o #o&ificar e" conteni&o &e atri(utos &e enti&a&es LDAP. E#e@are#os crean&o un archi$o con "os ca#(ios. gedit modi!ica8contenido.ldi!
Con "as oeraciones &e #o&ificaci+n dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com add mobile mobile 66666666 dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com delete telephoneNumber dn uid9maria,ou9@suarios,dc9eCemplo,dc9com changetype modi!y replace sn sn EamireS dn uid9maria,ou9@suarios,dc9eCemplo,dc9com changetype modi!y replace gi'enName
Sergio Cuesta Vicente 28+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
gi'enName *aria dn uid9maria,ou9@suarios,dc9eCemplo,dc9com changetype modi!y replace cn cn *aria EamireS dn uid9maria,ou9@suarios,dc9eCemplo,dc9com changetype modi!y replace displayName displayName *aria EamireS
"o usa#os ldapmodi!y -x -& cn9admin,dc9eCemplo,dc9com -V -! modi!ica8contenido.ldi!
Po&e#os $er c+#o se han a"ica&o "os ca#(ios ldapsearc3 -x -LLL - ou'%suarios4dc'ejemplo4dc'com dn ou9@suarios,dc9eCemplo,dc9com obCect0lass organiSational@nit ou @suarios dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com obCect0lass inet
Sergio Cuesta Vicente 288 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
sn 0uesta gi'enName ergio cn ergio 0uesta displayName ergio 0uesta uidNumber 1 gidNumber ( gecos ergio 0uesta loginhell 5bin5bash home&irectory 5home5scuesta mail sergio.cuestaWeCemplo.com st *adrid mobile 66666666 dn uid9maria,ou9@suarios,dc9eCemplo,dc9com obCect0lass inet
Otra osi("e #o&ificaci+n sera a,a&ir "os usuarios a" gruo crea&o. Crea#os otro archi$o
Sergio Cuesta Vicente 28 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
gedit aniade8grupos.ldi!
Con e" conteni&o dn cn9programadores,ou9Lrupos,dc9eCemplo,dc9com changetype modi!y add memberuid memberuid cn9sergio,ou9@suarios,dc9eCemplo,dc9com dn cn9programadores,ou9Lrupos,dc9eCemplo,dc9com changetype modi!y add memberuid memberuid cn9maria,ou9@suarios,dc9eCemplo,dc9com
"o usa#os ldapmodi!y -x -& cn9admin,dc9eCemplo,dc9com -V -! aniade8grupos.ldi!
Po&e#os consu"tar "a entra&a ara $er *ue to&o ha i&o (ien ldapsearc3 -x -LLL - cn'pro#ramadores4ou'>rupos4dc'ejemplo4dc'com dn cn9programadores,ou9Lrupos,dc9eCemplo,dc9com obCect0lass posixLroup cn programadores gidNumber ( member@id cn9sergio,ou9@suarios,dc9eCemplo,dc9com
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
member@id cn9maria,ou9@suarios,dc9eCemplo,dc9com
orrando entidades ?e#os aren&i&o a crear #o&ificar enti&a&es/ so"o nos fa"ta $er c+#o e"i#inar"as. Para e""o $a#os a crear un archi$o *ue nos e"i#ine to&as "as enti&a&es *ue crea#os con e" archi$o creaconteni&o."&if. -en en cuenta *ue "os archi$os siguen eistien&o or "o *ue ue&es $o"$er a e)ecutar"os en cua"*uier #o#ento. De to&as for#as "os usuarios *ue he#os crea&o son co#ati("es con "os &e Linu. Si (uscas c+#o crear usuarios en Internet $er's *ue ha otras c"ases *ue se "e ue&en asignar/ no es necesario *ue to#en "as *ue he#os &eter#ina&o nosotros. Crea#os un archi$o (orraconteni&o."&if con "o siguiente uid9sergio,ou9@suarios,dc9eCemplo,dc9com uid9maria,ou9@suarios,dc9eCemplo,dc9com cn9programadores,ou9Lrupos,dc9eCemplo,dc9com ou9@suarios,dc9eCemplo,dc9com ou9Lrupos,dc9eCemplo,dc9com
"o usa#os ldapdelete -x -& cn9admin,dc9eCemplo,dc9com -V -! borra8contenido.ldi!
Ahora tene#os "a (ase &e &atos LDAP co#o a" rinciio.
Sergio Cuesta Vicente 2% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
C"ientes gr'ficos Eiste un gran n#ero &e c"ientes con interfa@ gr'fica ara LDAP. Los #'s conoci&os son:
J"orer: E" *ue $a#os a usar. Aache Director Stu&io: Un "ugin ara Ec"ise. 1u uti"i@a&o entre "os &esarro""a&ores *ue usan este entorno. hLDAPain: Un c"iente &esarro""a&o en P?P con "a $enta)a &e *ue se e)ecuta en cua"*uier na$ega&or 7e(.
Para insta"ar J"orer "o #'s f'ci" es hacer"o &es&e "nea &e co#an&os sudo apt-get install Cxplorer
se e)ecuta co#o cua"*uier otra a"icaci+n. Una $e@ a(ri#os "a a"icaci+n ha *ue conectarse: 2. Pu"sa#os e" (ot+n &e conectar 6. Escri(i#os "a &irecci+n &e" ser$i&or LDAP 0. Escri(i#os "os &c <. E"egir autenticaci+n &e usuario ;. Escri(ir "os &atos &e" usuario *ue se conectar' . Pone#os "a contrase,a 8. Pu"sa#os OY Una $e@ nos he#os conecta&o a $e#os e" 'r(o" &e nuestro ser$i&or.
Sergio Cuesta Vicente 22 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
1e&iante 4dit GL Fe$ o con e" (ot+n &erecho Fe$ o&e#os crear nue$as enti&a&es. Cuan&o he#os se"ecciona&o "os ar'#etros u"sa#os OY se nos #uestra a "a &erecha "a ta("a con "os atri(utos &e "a enti&a& ero no aarecer' en e" 'r(o" hasta *ue no u"se#os Submit .
Au&'n&ote &e Internet aren&e a crear/ #o&ificar (orrar enti&a&es en nuestro 'r(o" re"ica "a estructura *ue hici#os &es&e "nea &e co#an&os.
Sergio Cuesta Vicente 23 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Autenticaci+n &e usuarios en e" ser$icio &e &irectorios E" acceso a" ser$i&or LDAP e" DI- se contro"a #e&iante &irecti$as *ue se reresentan co#o atri(utos en "os roios no&os &e" 'r(o". Po&e#os $er un caso sudo ldapsearc3 -Q -LLL -? E@AEBNCL -D ldapi: - P cn9con!ig Q/olc&atabase9`con!igAQ olc#ccess dn olc&atabase9`con!ig,cn9con!ig olc#ccess `to : by dn.exact9gidNumber9[uidNumber9,cn9peercred,cn9external ,cn9auth manage by : break
-en en cuenta *ue esta#os ha("an&o &e" acceso a" ser$i&or LDAP no &e" acceso #e&iante usuarios crea&os en LDAP a ser$i&ores 7e( o &e a"icaciones/ &e "o *ue ha("are#os #'s tar&e. Po&e#os $er *ue ara e" contro" &e acceso se uti"i@a e" atri(uto o"cAccess. En "a &ocu#entaci+n &e OenLDAP ue&es $er "as ociones &e" atri(uto Fes (astante co#"e)o. De(es ir a" unto =.0 a *ue "a ri#era arte ha("a &e c+#o se configura(a con e" archi$o &e configuraci+n F#Hto&o antiguo. Nosotros $a#os a centrarnos en a"gunos untos c"a$e. Por &efecto "os ser$i&ores LDAP garanti@an er#isos &e "ectura a to&os "os no&os a cua"*uier usuario. Esto no es tan raro co#o arece: ha *ue tener en cuenta *ue se trata &e un ser$icio &e &irectorio cua funci+n es faci"itar e" acceso a recursos Fa sean ersonas/ i#resoras/ ser$i&ores/ etc.. Para enten&er #e)or *ue no es raro o&e#os ensar en *uH suce&era si ara rea"i@ar oeraciones &e "ectura en DNS fuera necesario tener un usuario contrase,a autori@a&os. Co#o en esta secci+n $a#os a aren&er a #o&ificar "os er#isos ara *ue so"o &eter#ina&os usuarios ue&en acce&er a artes &e "a infor#aci+n/ con$iene ac"arar a*u *ue igua" *ue he#os hecho ara "as oeraciones &e #o&ificaci+n &e" conteni&o se ue&e uti"i@ar un usuario a "a hora &e rea"i@ar (s*ue&as o consu"tas
Sergio Cuesta Vicente 2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
ldapsearch -x -& cn9admin,dc9eCemplo,dc9com -V -+++ -b dc9eCemplo,dc9com
4l atributo olcAccess Para usar e" atri(uto o"cAccess ha *ue fi)arse en: A *uH F7hat: Entra&as FEntries ara "as *ue esta("ecere#os "os er#isos. A *uiHn F7ho: Usuarios a "os *ue se "es a"ican "os er#isos. Per#isos FAccess to grant: *uH tio &e acceso se "e $a a er#itir. Para enten&er #e)or "os e)e#"os con$iene recor&ar *ue "a estructura &e nuestro DI- es co#o se $e en "a i#agen o "o *ue es "o #is#o
dn dc9eCemplo,dc9com dn cn9admin,dc9eCemplo,dc9com dn ou9@suarios,dc9eCemplo,dc9com dn ou9Lrupos,dc9eCemplo,dc9com dn cn9programadores,ou9Lrupos,dc9eCemplo,dc9com dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com dn uid9maria,ou9@suarios,dc9eCemplo,dc9com
# %u Aun*ue eiste una tercera for#a so"o $a#os a consi&erar &os #aneras &e esecificar "as entra&as o()eti$o:
Sergio Cuesta Vicente 20 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
to _ to &n.scoest"eDN La ri#era for#a sir$e ara se"eccionar to&as "as entra&as.
La segun&a for#a nos er#ite se"eccionar a"gunas en articu"ar ero scopeGst'le nos er#ite aro$echar "a estructura ar(+rea &e "a (ase &e &atos LDAP. Pue&e ser (ase *ue se a"ica so"o a "a entra&a *ue coinci&a/ one *ue se a"ica a "os hi)os &e "a entra&a *ue coinci&a/ su(tree *ue se a"ica a to&o e" 'r(o" cua ra@ fuera "a entra&a *ue coinci&a o chi"&ren *ue se a"icara a" #is#o 'r(o" *ue en e" caso anterior ero ecetuan&o "a ra@. Lo $a#os a $er con e)e#"os: 2. &n.(aseouUsuarios/&ce)e#"o/&cco# so"o se a"icara a" no&o UsuariosM 6. &n.oneouUsuarios/&ce)e#"o/&cco# se a"icara a sergio #ariaM 0. &n.su(treeouUsuarios/&ce)e#"o/&cco# se a"icara a Usuarios/ sergio #aria. Si a"guno o a#(os no&os tu$ieran &escen&ientes ta#(iHn se inc"uiran. <. &n.chi"&renouUsuarios/&ce)e#"o/&cco# se a"icara a sergio #aria ero a &iferencia &e" e)e#"o 6 si a"guno tu$iera hi)os ta#(iHn se a"icara a to&os e""os a" igua" *ue suce&era en e" e)e#"o 0M -a#(iHn se ue&en usar fi"tros co#o "os *ue he#os uti"i@a&o en (s*ue&as. As to fi"terFst1a&ri& se a"icara a sergio #aria or*ue a#(os tienen ese $a"or en e" atri(uto st. Por "ti#o con$iene &estacar *ue se ue&en se"eccionar &eter#ina&os atri(utos to attrsatri(uto2/ atri(uto6 # %uin Se ue&en esecificar $arios tios:
_ : Cua"*uier usuario a sea an+ni#o o autentica&o
Sergio Cuesta Vicente 27 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
anon#ous : so"o usuarios an+ni#os users: so"o usuarios autentica&os se"f: e" usuario asocia&o con "a entra&a in&ica&a en a *uH &n.scoest"eDN: Los usuarios *ue cu#"an con "o &efini&o co#o se e"ic+ en e" unto anterior Con "os e)e#"os co#"etos &e" fina" se enten&er' #e)or esto.
Permisos ?a $arios ni$e"es. En "a "ista a continuaci+n "o *ue aarece &esuHs &e" igua" es e" e*ui$a"ente a *ue ca&a ni$e" i#"ica *ue se tienen "os er#isos &e" anterior. Detr's &e "os &os untos $a "a e"icaci+n. Se inc"uen to&as "as osi(i"i&a&es ero a nosotros so"o nos interesan none/ rea&/ 7rite #anage
2. 6. 0. <. ;. . 8. =.
none 9 : sin acceso &isc"ose & : ara o&er o(tener infor#aci+n si se ro&uce un error auth & : necesario ara autenticarse co#are c& : necesario ara co#arar search sc& : necesario ara a"icar fi"tros en "as (s*ue&as rea& rsc& : ara o&er "eer "os resu"ta&os &e "as (s*ue&as 7rite 7rsc& : ara o&er #o&ificar o ca#(iar no#(res #anage #7rsc& : necesario ara ainistrar
*rden Las &irecti$as se a"ican en e" or&en en e" *ue aarecen. Este or&en se ue&e for@ar #e&iante n#eros entre ""a$es J. Es i#ortante tener en cuenta *ue se sigue una o"tica &e a"icar e" ri#ero *ue coinci&a as *ue si or e)e#"o a"ica#os a"go a "os usuarios an+ni#os "uego a"go a to&os esta "ti#a arte no se a"icar' a "os an+ni#os or*ue a han coinci&i&o con "a entra&a anterior. Esto #uchas #'s cosas se $en #'s c"aras en "os e)e#"os.
Sergio Cuesta Vicente 2+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Eisten #uchas #'s ociones &e contro" &e acceso co#o se co#enta en "a &ocu#entaci+n &e OenLDAP. -a#(iHn ha a"gunos e)e#"os interesantes en esta otra 'gina. Por "ti#o a*u ha una e"icaci+n #u &e an&ar or casa con e)e#"os &e a"icaci+n r'ctica &irecta.
Consu"ta &iscute en c"ase ca&a e)e#"o &e "a secci+n =.0.; &e" ri#er en"ace &e" 'rrafo anterior/ "os #'s re"e$antes &e" segun&o en"ace to&os "os &e" tercero.
Contraseas para los usuarios Es necesario sa(er c+#o a,a&ir contrase,as a "os usuarios or*ue hasta ahora "os he#os usa&o co#o si#"es e"e#entos &e una (ase &e &atos ero e$i&ente#ente si se $an a o&er conectar a a"icaciones o a" ser$i&or LDAP necesitar'n &e una contrase,a. La for#a #'s senci""a es a,a&ir"es una contrase,a #e&iante una #o&ificaci+n &e" usuario. En un archi$o 7&."&if dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com changetype modi!y add user%assord user%assord una%d
5ue usa#os ldapmodi!y -x -& cn9admin,dc9eCemplo,dc9com -V -! pd.ldi!
Sergio Cuesta Vicente 28 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Si (usca#os "os &atos &e" usuario no nos #uestra "a contrase,a ldapsearc3 -x -LLL - ou'%suarios4dc'ejemplo4dc'com 8uid'ser#io8 dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com obCect0lass inet
Ahora o&e#os #o&ificar "a contrase,a &es&e "nea &e co#an&os ldappassFd -3 servidor.ejemplo.com 8uid'ser#io4ou'%suarios4dc'ejemplo4dc'com8 Ne passord Ee-enter ne passord Fnter +% %assord
-!
8uid'ser#io4ou'%suarios4dc'ejemplo4dc'com8
Sergio Cuesta Vicente 2 de 338
-5
-S
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
De(i&o a "a configuraci+n *ue tene#os en e" ser$i&or LDAP no es osi("e conectarse sin contrase,a or "o *ue si *uisiHra#os *ue #aria ta#(iHn tu$iera contrase,a ten&ra#os *ue hacer "o #is#o. Lo #e)or sera crear "os usuarios con una contrase,a tonta *ue fuera sie#re "a #is#a auto#'tica#ente hacer *ue "a ca#(iaran.
Aplicando las directi(as ?asta ahora he#os $isto c+#o funciona e" contro" &e acceso en genera" he#os ha("a&o &e *ue aarecen co#o atri(utos en e" 'r(o" LDAP/ ero Qc+#o a *uH e"e#entos se "e a"icanR Eso es "o *ue $a#os a $er en este unto. E" o()eto Fo entra&a a "a *ue se "e a,a&en "os atri(utos o"cAccess es a" *ue reresenta "a configuraci+n &e "a (ase &e &atos. Estos o()etos se guar&an a artir &e" &irectorio /etc./ldap/slapd.d/ co#o a $i#os. 1's concreta#ente "as (ases &e &atos cue"gan &e" su(&irectorio cnKcon6ig. En H" ha $arios archi$os *ue hacen referencia a olcDatabase ero sue"e ser e" siguiente: gedit
5etc5ldap5slapd.d5cnZ9con!ig5olc&atabaseZ9Z`1Zhdb.ldi!
Po&e#os asegurarnos a(rien&o e" archi$o ero SIN ?ACE4 NINGUNA 1ODIICACI3N (uscan&o e" ar'#etro olcSu66i ara co#ro(ar *ue coinci&e con e" DN &e (ase &e nuestro 'r(o". #@"<-LFNFE#"F& MG+F - &< N<" F&G"ff @se ldapmodi!y. 0E032 (32!e(7d dn olc&atabase9`1hdb obCect0lass olc&atabase0on!ig obCect0lass olc$db0on!ig olc&atabase `1hdb olc&b&irectory 5'ar5lib5ldap olcSuffix: dc'ejemplo4dc'com
Sergio Cuesta Vicente 3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
...
Una for#a #'s segura ro(a("e#ente #e)or "oca"i@ar e" no&o #e&iante una (s*ue&a sudo ldapsearch - -+++ - FU"FEN#+ -$ ldapi555 -b cn9con!ig olcu!!ix
Lo *ue nos $a a #ostrar e" resu"ta&o a esera&o dn cn9con!ig dn cn9module`,cn9con!ig dn cn9schema,cn9con!ig dn cn9`core,cn9schema,cn9con!ig dn cn9`1cosine,cn9schema,cn9con!ig dn cn9`2nis,cn9schema,cn9con!ig dn cn9`3inetorgperson,cn9schema,cn9con!ig dn olcIackend9`hdb,cn9con!ig dn olc&atabase9`-1!rontend,cn9con!ig dn olc&atabase9`con!ig,cn9con!ig
Sergio Cuesta Vicente 3% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
dn: olc!ataase'G,H3d4cn'confi# olcSuffix: dc'ejemplo4dc'com
Con este DN a sa(e#os a *uH e"e#ento a"icar "os ca#(ios. Lo ri#ero *ue &e(era#os hacer es consu"tar *uH olcAccess tiene sudo ldapsearc3 -Q -LLL -? E@AEBNCL -D ldapi: - olc!ataase'G,H3d4cn'confi# olcCccess dn olc&atabase9`1hdb,cn9con!ig olc#ccess `to attrs9user%assord,shado+ast0hange by sel! rite by anonymous auth by dn9Dcn9admin,dc9eCemplo,dc9comD rite by : none olc#ccess `1to dn.base9DD by : read olc#ccess `2to : by sel! rite by dn9Dcn9admin,dc9eCemplo,dc9comD rite by : read
?e #o&ifica&o un oco "a sa"i&a ara faci"itar "a "ectura
Co#enta en c"ase *uH er#isos ha configura&os or &efecto
Sergio Cuesta Vicente 32 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Ahora *ue a tene#os to&os "os factores so"o hace fa"ta recor&ar *ue se #o&ifica co#o cua"*uier otra entra&a &e" 'r(o" LDAP or "o *ue "o ri#ero sera crear un archi$o er#isos."&if con "as #o&ificaciones. o $o a a,a&ir un nue$o olcAccess ero se ue&en #o&ificar o e"i#inar co#o a $i#os. dn olc&atabase9`1hdb,cn9con!ig delete olc#ccess dn olc&atabase9`1hdb,cn9con!ig add olc#ccess olc#ccess `to attrs9user%assord,shado+ast0hange dn9Dcn9admin,dc9eCemplo,dc9comD rite by : none
by
sel!
rite
by
anonymous
auth
by
dn olc&atabase9`1hdb,cn9con!ig add olc#ccess olc#ccess `1to dn.base9DD by : read dn olc&atabase9`1hdb,cn9con!ig add olc#ccess olc#ccess `2to dn.children9Dou9@suarios,dc9eCemplo,dc9comD by anonymous auth by sel! rite by : read dn olc&atabase9`1hdb,cn9con!ig add olc#ccess olc#ccess `3to : by sel! rite by dn9Dcn9admin,dc9eCemplo,dc9comD rite by : read
"o a"ica#os/ &e(era er#itir e" acceso an+ni#os a sergio #aria so"o ara autenticarse/ ero no or e)e#"o ara "eer "os &atos. -en en cuenta *ue "a sa"i&a &e "a (s*ue&a un oco #'s arri(a "a for#ateH ara faci"itar "a "ectura. En e" archi$o &e #o&ificaci+n NO intro&u@cas sa"tos &e "nea ni na&a si#i"ar en #e&io &e atri(utos o sus $a"ores. -en en cuenta *ue he teni&o *ue #o&ificar to&os "os er#isos ara o&er ca#(iar e" or&en &e "a c"'usu"a *ue a,a&o F"a 6 or*ue si "a hu(iera uesto a" fina" se a"icara ri#ero "a *ue ahora est' a" fina" nunca se a"icara "a *ue he a,a&i&o.
Sergio Cuesta Vicente 33 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
ldapmodify -? E@AEBNCL -D ldapi: -f .permisos.ldif #+5FU"FEN#+ authentication started #+ username gidNumber9[uidNumber9,cn9peercred,cn9external,cn9auth #+ M modi!ying entry Dolc&atabase9`1hdb,cn9con!igD modi!ying entry Dolc&atabase9`1hdb,cn9con!igD modi!ying entry Dolc&atabase9`1hdb,cn9con!igD modi!ying entry Dolc&atabase9`1hdb,cn9con!igD modi!ying entry Dolc&atabase9`1hdb,cn9con!igD
Si reeti#os "a consu"ta &e "os er#isos sudo ldapsearc3 -Q -LLL -? E@AEBNCL -D ldapi: - olc!ataase'G,H3d4cn'confi# olcCccess dn olc&atabase9`1hdb,cn9con!ig olc#ccess `to attrs9user%assord,shado+ast0hange by sel! rite by anonymou s auth by dn9Dcn9admin,dc9eCemplo,dc9comD rite by : none olc#ccess `1to dn.base9DD by : read olc#ccess `2to dn.children9Dou9@suarios,dc9eCemplo,dc9comD by anonymous auth auth by sel! rite by : read olc#ccess `3to : by sel! rite by dn9Dcn9admin,dc9eCemplo,dc9comD rite by : read
Nos *ue&a co#ro(ar *ue a no ha acceso an+ni#o a sergio ni #aria ero s a otros no&os ldapsearc3 -x -LLL - dc'ejemplo4dc'comdn: dc'ejemplo4dc'com
Sergio Cuesta Vicente 3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
obCect0lass top obCect0lass dc
-en en cuenta *ue "as &os "ti#as "neas son atri(utos &e rogra#a&ores/ una entra&a ara "a *ue no he#os #o&ifica&o e" acceso. La "ti#a rue(a es si se ue&en "eer estos &atos con un usuario. Po&ra hacer"o con ain/ ero es #e)or ro(ar con sergio *ue tiene #enos ri$i"egios. ?ago "a consu"ta &es&e usuarios ara *ue sea un oco #'s corto e" resu"ta&o.
Sergio Cuesta Vicente 30 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
ldapsearc3 -x -! ou'%suarios4dc'ejemplo4dc'com Fnter +% %assord dn ou9@suarios,dc9eCemplo,dc9com obCect0lass organiSational@nit ou @suarios
uid'ser#io4ou'%suarios4dc'ejemplo4dc'com
dn uid9sergio,ou9@suarios,dc9eCemplo,dc9com obCect0lass inet
Sergio Cuesta Vicente 37 de 338
-5
-LLL
-
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
gi'enName *aria cn *aria EamireS displayName *aria EamireS uidNumber 11 gidNumber (1 gecos *aria EamireS loginhell 5bin5bash home&irectory 5home5mramireS mail maria.ramireSWeCemplo.com telephoneNumber )))))))) st *adrid
Ve#os *ue tiene acceso no so"o a H"/ sino ta#(iHn a #aria.
1o&ifica e" contro" &e acceso ara *ue ca&a usuario so"o ue&a "eer sus &atos/ ero no "os &e otro.
Sergio Cuesta Vicente 3+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Control de acceso en redes de ordenadores En e" caso *ue nos ocua no necesita#os esta("ecer un co#"e)o siste#a &e autenticaci+n a *ue co#o he escrito no $a#os a usar LDAP co#o un siste#a &e contro" &e acceso &e usuarios ara to&a una re& sino *ue "o a"icare#os a" acceso a a"icaciones. En e" caso &e *ue &esarro""e#os a"go ara una e#resa *ue uti"ice LDAP ara autenticar a sus usuarios en e*uios ser$icios &e una re&/ "a gesti+n &e "os usuarios "a ""e$ar' un ainistra&or nosotros so"o necesitare#os conectar e" ser$i&or LDAP con nuestro ser$i&or 7e( o &e a"icaciones. Por to&o "o anterior $a#os a rea"i@ar una configuraci+n si#"e *ue i#i&a a cua"*uiera consu"tar nuestro 'r(o" LDAP. Si or e)e#"o he#os configura&o nuestro ser$i&or LDAP en "a #is#a #'*uina *ue e" ser$i&or 7e(!&e a"icaciones o&ra#os configurar "os no#(res &e" ser$i&or LDAP #e&iante e" fichero host as no ha(ra acceso a H" &es&e otra #'*uina/ "o *ue no nos hace fa"ta or*ue ha(ra#os u(ica&o e" resto en "a #is#a. Es osi("e uti"i@ar estos usuarios &e LDAP co#o usuarios &e "as #'*uinas FLinu en este caso. A*u se e"ica c+#o hacer"o/ ero en #i oini+n no tiene na&a *ue $er con e" &es"iegue &e a"icaciones or "o *ue no rofun&i@arH en e""o. Este es un '#(ito &e ainistra&ores &e siste#as no &e &esarro""a&ores 7e(.
Sergio Cuesta Vicente 38 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
A&ataci+n &e "a configuraci+n &e" ser$i&or &e &irectorios ara e" &es"iegue &e "a a"icaci+n. Usuarios centra"i@a&os Uno &e "os rincia"es usos &e LDAP en "as e#resas u organi@aciones es e" tener usuarios centra"i@a&os co#unes a to&os sus contro"es &e acceso: en e*uios/ en a"icaciones/ en ser$icios/ en recursosZ La configuraci+n &e LDAP ara estos casos es (astante co#"e)a ero en e" caso *ue nos toca se refiere a esta("ecer "a autenticaci+n en ser$i&ores 7e( &e a"icaciones contra un ser$i&or LDAP. La configuraci+n &e OenLDAP a "a he#os hecho as *ue nos fa"ta "a integraci+n con Aache -o#cat.
=DA< ' Apache Para rea"i@ar estos e)e#"os $o a co#en@ar con una insta"aci+n "i#ia &e Aache en e" ser$i&or &on&e he insta"a&o OenLDAP/ co#o he#os $isto &urante to&o e" curso/ esto o&ra co#(inarse con cua"*uier oci+n &e configuraci+n $ista hasta e" #o#ento. Lo ri#ero *ue tene#os *ue hacer es ha(i"itar e" #+&u"o #o&authn@"&a. sudo a2enmod authnS8ldap sudo ser'ice apache2 restart
Ahora ten&re#os *ue e&itar "a configuraci+n &e" sitio or &efecto ara ha(i"itar "a autenticaci+n
Sergio Cuesta Vicente 3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
OJirtual$ost :7P er'er#dmin ebmasterWlocalhost &ocumentEoot 5'ar5 O&irectory 5P
-ras reiniciar e" ser$i&or a o&re#os conectarnos con usuarios &e" ser$i&or LDAP.
Busca en "a &ocu#entaci+n &e" #+&u"o "as &irecti$as en negrita co#enta en c"ase ara *uH se uti"i@an. Q-e arece (uena oci+n uti"i@ar e" usuario ainistra&orR
Sergio Cuesta Vicente 3% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-en en cuenta *ue no sera necesario un usuario con contrase,a si er#itiHra#os "as consu"tas an+ni#as. No es (uena i&ea uti"i@ar e" usuario ainistra&or/ sera #ucho #e)or crear uno con er#isos &e "ectura en to&o e" 'r(o" ero sin er#isos &e escritura a *ue "a contrase,a ha *ue escri(ir"a en e" archi$o. Q5uH asa si *uere#os &ar acceso a un gruo &e usuarios ero no a cua"*uier usuarioR E" gruo *ue crea#os no nos faci"ita esta tarea as *ue $a#os a crear un gruo &e otro tio. Creo un archi$o con e" nue$o gruo dn cn9usr#pache,ou9Lrupos,dc9eCemplo,dc9com obCect0lass group
"o roceso ldapadd -x -& cn9admin,dc9eCemplo,dc9com -V -! grupo.ldi!
E&ito e" fichero &e" sitio or &efecto &e aache OJirtual$ost :7P er'er#dmin ebmasterWlocalhost &ocumentEoot 5'ar5 O&irectory 5P
Sergio Cuesta Vicente 3%% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
O5&irectoryP O&irectory 5'ar55P rupos4dc'ejemplo4dc'com O5&irectoryP ...
E$i&ente#ente esta segun&a for#a sera #ucho #'s r'ctica cuan&o tene#os usuarios ara $arios fines. Un tercer #o&o sera &ar er#iso a a"gunos usuarios &eter#ina&os. Para e""o so"o ha(ra *ue ca#(iar "a "nea en negrita or Eequire ldap-user sergio maria
Por "ti#o es osi("e e&ir *ue un &eter#ina&o atri(uto tenga un $a"or esecifica&o. Eequire ldap-attribute gidNumber9(23
Inc"uso se ue&en co#(inar re*uisitos
Sergio Cuesta Vicente 3%2 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Eequire Eequire Eequire atis!y
ldap-group cn9usr#pache,ou9Lrupos,dc9eCemplo,dc9com ldap-user roberto, Cuan ldap-attribute gidNumber9(23 any
Don&e "a "ti#a "nea in&ica *ue con cu#"ir con una &e "as anteriores es suficiente.
?a(i"ita ?--PS en e" ser$i&or Aache crea &os &irectorios. En OenLDAP configura &os gruos con &iferentes usuarios ca&a uno. Configura e" acceso a ca&a uno &e "os &irectorios ara *ue so"o ue&an acce&er "os usuarios &e unos &e "os gruos. Co#rue(a *ue has configura&o to&o correcta#ente.
=DA< ' omcat En e" caso &e -o#cat ta#(iHn $o a hacer una insta"aci+n "i#ia con "a a"icaci+n &e" for#u"ario. E$i&ente#ente es necesario #o&ificar e" &escritor &e &es"iegue &e "a a"icaci+n ara *ue $a"i&e con e" gruo o usuarios esecifica&os en -o#cat. Una $e@ tene#os e" ser$i&or -o#cat funcionan&o he#os &es"ega&o "a a"icaci+n Fen #i caso en "a careta for# o&e#os configurar e" 4ea"#. 4ecuer&a *ue se ue&e configurar en cua"*uier conteto &een&ien&o &e a *uH ni$e" *uere#os *ue se uti"ice. En este caso $o a usar"o so"o ara "a a"icaci+n as *ue e&ito e" conteto roio gedit 5'ar5lib5tomcat65ebapps5!orm5*F"#-GNM5context.xml
"o &e)a#os
Sergio Cuesta Vicente 3%3 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Oxml 'ersion9D1.D encoding9D@"M-7DP O0ontext antiB#E+ocking9DtrueD path9D5!ormDP OEealm className9Dorg.ap ache.catalina.rea lm.BN&GEealmD connectionName9Dcn9admin,dc9eCemplo,dc9comD connection%assord9DsergioD connection@E+9Dldap55ser'idor.eCemplo.com37D user%attern9Duid9`,ou9@suarios,dc9eCemplo,dc9comD roleIase9Dou9Lrupos,dc9eCemplo,dc9comD roleName9DcnD roleearch9D/unique*ember9`AD 5P O50ontextP
Eisten #uchos otros atri(utos ar'#etros &e configuraci+n a" igua" *ue en e" caso &e Aache/ sera #e)or ha(er crea&o un usuario con er#isos &e "ectura so"o.
Consu"ta "os atri(utos configura&os en e" NDI 4ea"# anterior co#enta en c"ase su uso.
Ahora e&ita#os e" &escritor &e &es"iegue gedit 5'ar5lib5tomcat65ebapps5!orm5VFI-GNM5eb.xml
"o &e)o co#o sigue/ so"o he toca&o "as "neas en negrita
Sergio Cuesta Vicente 3% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Oxml 'ersion9D1.D encoding9D@"M-7DP Oeb-app 'ersion9D3.D xmlnsxsi9Dhttp55.3.org5215U*+chema-instanceD xsischema+ocation9Dhttp55Ca'a.sun.com5xml5ns5Ca'aee app838.xsdDP Oser'letP Oser'let-namePMormer'letO5ser'let-nameP Oser'let-classP!orm.Mormer'letO5ser'let-classP O5ser'letP
xmlns9Dhttp55Ca'a.sun.com5xml5ns5Ca'aeeD http55Ca'a.sun.com5xml5ns5Ca'aee5eb-
Oser'let-mappingP Oser'let-namePMormer'letO5ser'let-nameP Ourl-patternP5Mormer'letO5url-patternP O5ser'let-mappingP
Of-- esto es lo que a_adimos para la seguridad M
Sergio Cuesta Vicente 3%0 de 338
pedimos
autenticacin
para
toda
la
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
O5auth-constraintP Ouser-data-constraintP Otransport-guaranteePN
Ologin-con!igP Oauth-methodPM
Osession-con!igP Osession-timeoutP 3 O5session-timeoutP O5session-con!igP
Osecurity-roleP Odescription5P Mrole-nameusrCpac3eMrole-name O5security-roleP O5eb-appP
Ahora a o&e#os conectarnos con "os #is#os usuarios &e" gruo *ue crea#os ara Aache en e" caso anterior.
Sergio Cuesta Vicente 3%7 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Insta"a -o#cat con ?--PS &os a"icaciones. Da acceso a ca&a a"icaci+n a uno &e "os gruos *ue creaste ara Aache. Prue(a *ue to&o es correcto.
Con este "ti#o e)ercicio a he#os $isto *ue es #u ti" tener un ser$i&or LDAP ara "os usuarios a *ue o&ra#os centra"i@ar "os usuarios tanto ara "a 7e( co#o ara "as a"icaciones faci"itan&o as "a ainistraci+n e" funciona#iento a "os usuarios *ue so"o tienen *ue conocer un nico usuario contrase,a.
Sergio Cuesta Vicente 3%+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
-e#a : Docu#entaci+n siste#as &e contro" &e $ersiones
Sergio Cuesta Vicente 3%8 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
?erra#ientas eternas ara "a generaci+n &e &ocu#entaci+n Las herra#ientas &e generaci+n &e &ocu#entaci+n er#iten crear una &ocu#entaci+n ara rogra#a&ores FAPI o ara usuarios fina"es a artir &e co#entarios intro&uci&os en e" c+&igo fuente. Un e)e#"o *ue to&os conoce#os es a$a&oc &e a$a con e" cua" si co#enta#os nuestro c+&igo siguien&o unas autas &eter#ina&as o&e#os o(tener una &ocu#entaci+n si#i"ar a "a &e "a API &e a$a ara nuestras roias c"ases. Eisten #uchsi#as herra#ientas &e este tio or "o *ue es &ifci" e"egir una. Por si fuera oco/ o&e#os $er en "a co#arati$a *ue ninguna est' &isoni("e ara to&os "os rincia"es siste#as oerati$os to&os "os rincia"es "engua)es &e rogra#aci+n. Si $a#os a rogra#ar en a$a rincia"#enete e" uso *ue reten&e#os &ar es rincia"#ente &ocu#entar una API &e nuestras c"ases a$a&oc es "a oci+n o($ia. Para usos #'s esecficos &e(era#os (uscar una *ue se a)uste a nuestras necesi&a&es. Nosotros $a#os a $er Dogen or ser una &e "as #'s eten&i&as/ estar &isoni("e ara to&os "os rincia"es siste#as oerati$os o&er usarse con (astantes "engua)es &e rogra#aci+n. Docu#entar con Dogen si se conoce a$a&oc es (astante &irecto. Las $enta)as *ue tiene Docgen es *ue nos er#ite &ocu#entar #'s "engua)es &e rogra#aci+n *ue a&e#'s ue&e ro&ucir $arios for#atos &e sa"i&a. Esto a"gunos e)e#"os senci""os ue&en $erse en su 'gina &e "a WiKie&ia. En ninguno &e "os untos referentes a "a generaci+n &e &ocu#entaci+n $a#os a entrar en rofun&i&a& a *ue se han $isto en a$a&oc a&e#'s es a"go *ue $a a &een&er &e "as necesi&a&es &e ca&a roecto or "o *ue no o&e#os consi&erar una herra#ienta en concreto co#o re&o#inante o &estaca&a. Si a"guien necesita #'s infor#aci+n so(re Docgen "a &ocu#entaci+n es (astante co#"eta.
Sergio Cuesta Vicente 3% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
,nstalaci#nE con6iguraci#n ' uso Insta"ar Docgen es #u senci""o con "os (inarios. En e" #anua" e"ican ta#(iHn co#o co#i"ar "os fuentes ara insta"ar"os tanto en Linu co#o en Win&o7s. En #i caso $o a usar e" (inario ara 1ac ero a*u se ue&e &escargar cua"*uiera. QPor *uH en este caso no uti"i@o LinuR Dogen &e(e insta"arse en "a #'*uina en "a *ue &esarro""e#os ha(itua"#ente. -ras insta"ar e" rogra#a nos sa"e una anta""a &on&e ha(r' *ue configurar "a careta &on&e estar'n "os fuentes &e" roecto. E" uso &e "a oci+n Wi5ard es #u senci""o. C+#o &e(o &ocu#entar e" c+&igo se e"ica en "a &ocu#entaci+n.
In$estiga &iscute en c"ase "as &iferentes ociones &e ca&a anta""a: Pro)ect/ 1o&e/ Outut Diagra#s Una $e@ tengas c"aras "as ociones/ $a#os a &ocu#entar un e)e#"o ro(are#os a eortar"o en ch#.
Este tio &e herra#ientas son #ucho #'s ti"es si o&e#os integrar"as en e" entorno& e &esarro""o. Dogen tiene "ugins en Net(eans en Ec"ise.
Sergio Cuesta Vicente 32 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Creaci#n ' utili5aci#n de plantillas La &ocu#entaci+n genera&a ue&e #ostrarse en &iferentes for#atos. Por e)e#"o/ en "a careta a$a&oc &e roectos &e a$a ha un CSS con "a configuraci+n &e aariencia or &efecto &e "a API. E&itan&o esta CSS o&e#os conseguir e" asecto *ue *uera#os. En Dogen ta#(iHn eiste esta osi(i"i&a&: En "a oci+n Wi@ar& so"o o&e#os configurar "os co"ores Foutut/ ?-1L/ change co"or/ ero en e" #o&o Eert/ ?-1L o&e#os se"eccionar una CSS roia. Sin e#(argo e" tHr#ino "anti""as se uti"i@a ara #uchos otros concetos co#o o&e#os $er a*u. En "a generaci+n auto#'tica &e c+&igo se uti"i@a ara crear "anti""as &e co#entarios. Por e)e#"o una "anti""a ara "os co#entarios &e un a*uete/ otra ara "os &e c"ase/ otra ara "os &e #Hto&o/ etc. Estas "anti""as nos er#iten inc"uir ca#os o co#entarios or &efecto a&e#'s &e e"e#entos co#o or e)e#"o e" autor/ "a fecha/ etc. Las "anti""as se crean se uti"i@an en e" entorno &e &esarro""o &eter#ina&o *ue este#os uti"i@an&o. Por e)e#"o en Ec"ise/ en "as ociones &e ca&a "engua)e &e rogra#aci+n sue"e ha(er una oci+n &eno#ina&a Code emplates *ue es &on&e se #o&ifica.
Sergio Cuesta Vicente 32% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Insta"aci+n/ configuraci+n uso &e siste#as &e contro" &e $ersiones. htt:!!777.a$a)a$a.co#!tutoria"s!categories!$ersioncontro" Su($ersion htt:!!su($ersion.aache.org! htt:!!en.7iKie&ia.org!7iKi!AacheSu($ersion htt:!!en.7iKie&ia.org!7iKi!Co#arisonofSu($ersionc"ients htt:!!en.7iKie&ia.org!7iKi!4e$isiontag htt:!!en.7iKie&ia.org!7iKi!BranchingFsoft7are htt:!!su($ersion.aache.org!&ocs! htt:!!su($ersion.aache.org!fa*.ht#" htt:!!s$n(ooK.re&(ean.co#!night"!en!s$n.intro.7hatis.ht#"\s$n.intro.architecture
— Oeraciones a$an@a&as.
Sergio Cuesta Vicente 322 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta — Seguri&a& &e "os siste#as &e contro" &e $ersiones. — ?istoria &e un reositorio.
Sergio Cuesta Vicente 323 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
AHn&ices En este aarta&o se inc"uen herra#ientas rogra#as *ue no aarecen en e" te#ario &e" #+&u"o o son necesarias antes &e aarecer ero *ue se consi&eran i#ortantes ara e" correcto &esarro""o &e" #is#o. Por estos #oti$os se cu(ren &e #anera so#era se sue"e resentar "a #anera #'s senci""a &e usar"os.
Sergio Cuesta Vicente 32 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
We(#in: Una interfa@ gr'fica &e ainistraci+n We(#in es un ainistra&or &e interfa@ 7e( ara ser$i&ores en Linu. Para insta"ar"o/ &e(e#os a,a&ir fuentes &e soft7are nue$o a nuestra insta"aci+n. Lo ri#ero es a(rir e" archi$o &e fuentes sudo gedit 5etc5apt5sources.list
a,a&ir "as siguientes "neas deb http55donload.ebmin.com5donload5repository sarge contrib deb http55ebmin.mirror.somersettechsolutions.co.uk5repository sarge contrib
-ras guar&ar sa"ir &e(e#os i#ortar "a c"a$e GPG get http55.ebmin.com5Ccameron-key.asc sudo apt-key add Ccameron-key.asc
actua"i@a#os "a "ista &e fuentes sudo apt-get update
Sergio Cuesta Vicente 320 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
e insta"a#os We(#in sudo apt-get install ebmin
Po&e#os acce&er a "a conso"a &e We(#in &es&e htts:!!ser$eri:29999! ca#(ian&o ser(erip or e" no#(re &e" *ue nos infor#a cuan&o ter#ina "a insta"aci+n. -a#(iHn se ue&e acce&er usan&o "a IP en e" #is#o uerto o si esta#os en "a #is#a #'*uina con "oca"host e" uerto. En to&os "os casos ten en cuenta *ue "a conei+n es ?--PS. E" usuario es root "a contrase,a "a *ue "e haa#os asigna&o en Linu.
Sergio Cuesta Vicente 327 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Un e*ue,o ser$i&or DNS En nuestro caso $a#os a insta"ar un e*ue,o DNS en nuestro ser$i&or ara o&er ro(ar "a oci+n. -en en cuenta *ue antes &e insta"ar a"go es i#ortante tener "a #'*uina actua"i@a&a. sudo apt-get update
En #i caso esto insta"an&o Bin& en "a #is#a #'*uina $irtua" en "a *ue he insta"a&o Aache. Esta #'*uina no es $isi("e &es&e "a re& or "o *ue so"o se o&r' ro(ar &es&e &entro &e esta #'*uina. La &irecci+n IP &e "a #'*uina es 29.9.6.2; Po&ra#os hacer *ue fuera $isi("e &es&e "a #'*uina anfitri+n si he#os acti$a&o esa interfa@ en Virtua" Bo crea#os to&os "os archi$os con "a &irecci+n "a interfa@ &e re& correson&iente/ ero a&e#'s &e(era#os ca#(iar "as &irecciones &e "os DNS &e "a #'*uina anfitri+n ara *ue usen e" nuestro. Co#o no es reco#en&a("e/ "o ro(are#os so"o &es&e "a #'*uina $irtua". sudo apt-get install bind
a(ri#os e" fichero &e configuraci+n sudo gedit 5etc5bind5named.con!.local
escri(i#os "o siguiente
Sergio Cuesta Vicente 32+ de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Fsta es la de!inicin de la Sona. EemplaSa el dominio de eCemplo por otro Sone eCemplo.es ` type master\ !ile 5etc5bind5Sones5eCemplo.es.db\ \ Fsta es la di!inicion de la Sona in'ersa para &N. *odi!ica las direcciones G% para que se aCusten a las tuyas. Sone 2..1.in-addr.arpa ` type master\ !ile 5etc5bind5Sones5re'.2..1.in-addr.arpa\ \
Po&e#os co#ro(ar *ue "a sintais sea correcta con "a siguiente or&en. Si es correcta no aarecer' ningn #ensa)e ero si no "o es nos #ostrar' e" ro("e#a. named-checkcon!
Lo *ue &e(e#os hacer ahora es a(rir e" archi$o &e ociones. sudo gedit 5etc5bind5named.con!.options
en H" &e(e#os *uitar "os co#entarios &e "a arte &e 6or$arders &e)ar"o co#o sigue. -en en cuenta *ue "as &irecciones &e "os ser$i&ores DNS &e tu configuraci+n ue&en ca#(iar. Se &e(e escri(ir esta or&en )usto en e" sitio *ue est' in&ica&o. Escri(ir"o or e)e#"o a" fina" &e" archi$o hara *ue nuestro ser$i&or no funcionara.
Sergio Cuesta Vicente 328 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
!orarders ` 7.(7.)1.2(4\ 7.(7.)1.2(\ \
Crea#os e" &irectorio ara configurar "as @onas sudo mkdir 5etc5bind5Sones
crea#os e" archi$o &e configuraci+n &e nuestra @ona. sudo gedit 5etc5bind5Sones5eCemplo.es.db
escri(i#os "o siguiente \ cambia eCemplo.es por el nombre de tu dominio. No te ol'ides el punto despues del nombre de dominio K""+ 3) eCemplo.es. GN <# ns.eCemplo.es. admin.eCemplo.es. / \ N< modi!iques los siguiente parametros 2)7141 277 3) )47 374 A
Sergio Cuesta Vicente 32 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
\ *odi!ica lo siguiente para que se aCuste a tu nombre de dominio eCemplo.es. GN N ns.eCemplo.es. \ *odi!ica las W GN # ns GN # GN #
direcciones G% con las adecuadas en tu caso 1..2.1( 1..2.1( 1..2.1(
Po&e#os co#ro(ar "a correcta sintais con "a or&en named-checkSone eCemplo.es 5etc5bind5Sones5eCemplo.es.db
Don&e e" ri#er ar'#etro es e" no#(re &e "a @ona e" segun&o "a ruta a" archi$o correson&iente. De(e &ar una sa"i&a co#o Sone eCemplo.es5GN loaded serial 2)7141 <=
E" siguiente aso es crear e" archi$o &e @ona in$ersa. sudo gedit 5etc5bind5Sones5re'.2..1.in-addr.arpa
escri(ir "o siguiente
Sergio Cuesta Vicente 33 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
\ modi!ica los parametros correctamente \ el numero antes de GN %"E eCemplo.es es la direccin de la maquina donde este el ser'idor &N K""+ )47 W GN <# ns.eCemplo.es. admin.eCemplo.es. / 2)7141\ 277\ )47\ )47\ 7)4 A \ 1( es el ultimo numero de la ip de la maquina en la red. W GN N ns.eCemplo.es. 1( GN %"E eCemplo.es.
"o co#ro(a#os named-checkSone 2..1.in-addr.arpa 5etc5bind5Sones5re'.2..1.in-addr.arpa
En este unto nos toca reiniciar e" ser$icio DNS sudo ser'ice bind restart
En caso &e *ue nos &H problemas "o #e)or es a(rir "a interfa@ &e We(#in acce&er a Ser(ers L ,FD DFS Ser(er . La oci+n ChecB ,FD Con6ig es &e #ucha uti"i&a& ara co#ro(ar *ue no nos he#os e*ui$oca&o en "a configuraci+n. E" ro("e#a #'s ha(itua" es *ue haa a"gn fa""o en 4NDC. La oci+n Setup FDC nos ue&e au&ar.
Sergio Cuesta Vicente 33% de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta *tro problema #u #u ha(itua" es *ue si has coia&o ega&o &e este archi$o a "os &e configuraci+n/ "as co#i""as &o("es son &iferentes or "o
*ue no funcionar'. De(es sustituir to&as "as co#i""as &o("es $o"$er a escri(ir"as. *+#: En "as "ti#as "ti#as $ersiones $ersiones &e U(untu U(untu "os ca#(ios *ue rea"ice#os rea"ice#os so(re reso"$.con reso"$.conff no se guar&an er#anente#e er#anente#ente nte ha(ra ha(ra *ue
hacer"o ca&a $e@ *ue reinicia#os "a #'*uina. Si *uere#os una so"uci+n er#anente o&e#os usar Hsta. Hsta. De(e#os ro(ar *ue to&o funcione correcta#ente. Lo ri#ero es infor#ar a nuestro or&ena&or &e *ue &e(e (uscar en e" ser$i&or "a reso"uci+n &e no#(res. gedit 5etc5resol'.con!
sustituir "o *ue onga or "o siguiente nameser'er 1..2.1( domain eCemplo.es
a o&e#os ro(ar e" resu"ta&o dig eCemplo.es
Lo *ue nos &e$o"$er' a"go si#i"ar a "o siguiente: \ OOPP &iL .7.1-%1 OOPP eCemplo.es \\ global options [cmd \\ Lot anser
Sergio Cuesta Vicente 332 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
\\ -PP$F#&FEOO- opcode @FE, status N
GN
#
3) GN
#
1..2.1(
\\ #@"$
N
ns.eCemplo.es.
\\ #&&G"G
#
1..2.1(
\\ #NVFE F0"G
\\ \\ \\ \\
uery time 3 msec FEJFE 1..2.1((3/1..2.1(A V$FN Ved #ug 2 14(3() 212 *L GTF rc'd 66
-a#(iHn o&e#os ro(ar con ing si se encuentra ping -c 4
&e(e#os o(tener a"go co#o %GNL .eCemplo.es /1..2.1(A ()/74A bytes o! data. )4 bytes !rom eCemplo.es /1..2.1(A icmp8req91 ttl9)4 time9.16 ms
Sergio Cuesta Vicente 333 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
)4 bytes !rom eCemplo.es /1..2.1(A icmp8req92 ttl9)4 time9.33 ms )4 bytes !rom eCemplo.es /1..2.1(A icmp8req93 ttl9)4 time9.31 ms )4 bytes !rom eCemplo.es /1..2.1(A icmp8req94 ttl9)4 time9.2 ms --- .eCemplo.es ping statistics --4 packets transmitted, 4 recei'ed, packet loss, time 2ms rtt min5a'g5max5mde' 9 .165.265.335.7 ms
Po&e#os ro(ar a hacer una consu"ta a un sitio eterno ara co#ro(ar *ue segui#os tenien&o acceso a Internet ping -c 4 .google.es %GNL -cctld.l.google.com /163.14.34.23A ()/74A bytes )4 bytes !rom par3s2-in-!23.1e1.net /163.14.34.23A )4 bytes !rom par3s2-in-!23.1e1.net /163.14.34.23A )4 bytes !rom par3s2-in-!23.1e1.net /163.14.34.23A )4 bytes !rom par3s2-in-!23.1e1.net /163.14.34.23A
o! data. icmp8req91 icmp8req92 icmp8req93 icmp8req94
ttl9(1 ttl9(1 ttl9(1 ttl9(1
time974.4 time973.( time964.) time96(.3
ms ms ms ms
--- -cctld.l.google.com ping statistics --4 packets transmitted, 4 recei'ed, packet loss, time 36(ms rtt min5a'g5max5mde' 9 64.))756.47574.4)54.(1) ms
E inc"uso si tene#os insta"a&o Aache o&e#os acce&er a "a 'gina or &efecto escri(ien&o en e" na$ega&or 7e( 777 777.e)e#"o.es .e)e#"o.es.. Si usa#os hosts $irtua"es (asa&os en no#(res/ necesitare#os crear un registro ara e" nue$o &o#inio ero rea"#ente ser' un a"ias a" anterior. Lo ri#ero es a,a&ir e" nue$o &o#inio a "a configuraci+n &e BIND. sudo gedit 5etc5bind5named.con!.local
Sergio Cuesta Vicente 33 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
a,a&i#os "o siguiente. Por coherencia &e(era ir antes &e "a &efinici+n &e "a @ona in$ersa. X Fsta es la de!inicion de la Sona. EeemplaSa el dominio de eCemplo por otro Sone DeCemplo2.esD ` type master\ !ile D5etc5bind5Sones5eCemplo2.es.dbD\ \ X
Ahora crea#os e" archi$o &e "a @ona sudo gedit 5etc5bind5Sones5eCemplo2.es.db
a,a&i#os "os &atos con e" registro CNA1E a&ecua&o \ cambia eCemplo.es por el nombre de tu dominio. No te ol'ides el punto despues del nombre de dominio K""+ 3) eCemplo2.es. GN <# ns.eCemplo2.es. admin.eCemplo2.es. / \ N< modi!iques los siguiente parametros 2)7141 277 3) )47 374 A
Sergio Cuesta Vicente 330 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
\ *odi!ica lo siguiente para que se aCuste a tu nombre de dominio eCemplo2.es. GN N ns.eCemplo.es. \ Eegistro 0N#*F es un alias a otro ya existente. Fs jtil para los hosts 'irtuales basados en nombres. .eCemplo2.es. GN 0N#*F eCemplo.es.
tras hacer"o reinicia#os BIND ser'ice bind restart
o&e#os acce&er a nuestro ser$i&or con e" nue$o no#(re &e &o#inio or e)e#"o &es&e e" na$ega&or We(.
Sergio Cuesta Vicente 337 de 338
DAW – Despliegue de Aplicaciones Web
htts:!!sites.goog"e.co#!site!sergiocuesta
Insta"ar 1S5L Para insta"ar "a (ase &e &atos 1S5L usare#os e" co#an&o: sudo apt-get install mysql-ser'er-(.(
*ue ue&e &een&er &e "a $ersi+n *ue haa sa"i&o en su #o#ento *ue se ue&e consu"tar en htt:!!&e$.#s*".co#!&o7n"oa&s!#s*"! Durante "a insta"aci+n nos e&ir'n *ue intro&u@ca#os una contrase,a &e ainistra&or *ue aun*ue no es o("igatoria/ si #u reco#en&a("e. o o ongo sergio or*ue es una insta"aci+n &e rue(as. 1S5L se arranca a" iniciar "a #'*uina/ ero o&e#os usar "os co#an&os a&ecua&os en ca&a caso 5etc5init.d5mysql 5etc5init.d5mysql 5etc5init.d5mysql 5etc5init.d5mysql
start stop restart status
aun*ue e" roio 1S5L nos reco#ien&a usar "os co#an&os asocia&os a" ser$icio. ser'ice mysql start ser'ice mysql stop ser'ice mysql restart
Sergio Cuesta Vicente 33+ de 338