Este documento presenta una introducción a las aplicaciones web y a la arquitectura web, incluyendo un modelo simple para el despliegue de aplicaciones web y una descripción de los componentes clave como servidores web, bases de datos y contenidos dinámicos. También incluye instrucciones para instalar y configurar un servidor web Apache y la pila LAMP así como módulos relacionados con la administración y configuración del servidor.
Este documento presenta una introducción a las aplicaciones web y a la arquitectura web, incluyendo un modelo simple para el despliegue de aplicaciones web y una descripción de los componentes clave como servidores web, bases de datos y contenidos dinámicos. También incluye instrucciones para instalar y configurar un servidor web Apache y la pila LAMP así como módulos relacionados con la administración y configuración del servidor.
Este documento presenta una introducción a las aplicaciones web y a la arquitectura web, incluyendo un modelo simple para el despliegue de aplicaciones web y una descripción de los componentes clave como servidores web, bases de datos y contenidos dinámicos. También incluye instrucciones para instalar y configurar un servidor web Apache y la pila LAMP así como módulos relacionados con la administración y configuración del servidor.
htts:jjsltes.google.comjsltejserglocuestuj rofesor.scvQgmull.com !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Llcenclu Los contenldos de este documento estn comurtldos bujo unu llcenclu Creutlve Commons sl no se lndlcu lo contrurlo. Puede conocer ms sobre Creutlve Commons ulsundo en el enluce. Ll uso de este documento est sujeto u lus normus que se lndlcun en estu glnu. Sl qulere suber ms sobre Creutlve Commons uede vlsltur su glnu veb o lu verslon en esunol. Puru suber ms sobre el tlo de llcenclu ullcudo u este documento uede vlsltur estu glnu. 1odos los muterlules usudos uru lu confecclon de este documento estn bujo llcenclu de Creutlve Commons y se hur referenclu u su uutor en lu muneru que seu oslble. Sl qulere usur todo o urte de este documento, or fuvor, hugu referenclu ul uutor. Serglo Cuestu vlcente rofesor.scvQgmull.com 3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu LlCLNClA..........................................................................................................................................................................................z 1LMA : lMPLAN1AClCN LL ARQUl1LC1URAS vL8 .................................................................................................................................c Lu urqultecturu web y ulgunos modelos ............................................................................................................................................................... Un modelo slmle uru el desllegue de ullcuclones veb................................................................................................................................., A,B &' ,1/ /()*./.*C1 D&2==================================================================================================================================================================================================== EF G/'&' -& ,1 (80H&.:0 -& ,1/ /()*./.*C1 D&2======================================================================================================================================================================== EF Servldores web.......................................................................................................................................................................................................zc 7&8>*.*0' #&2======================================================================================================================================================================================================================== 3E "):&81/:*>/'=========================================================================================================================================================================================================================== 3E IA,B 1&.&'*:0 (/8/ @01:/8 ,1 '&8>*-08 D&2J======================================================================================================================================================================= 34 lnstuluclon y conflguruclon bslcu de un servldor web: Auche.........................................................................................................................z 90@(802/.*C1 H &)*@*1/.*C1 -& 0:8/' >&8'*01&'================================================================================================================================================================== 3K L1':/)/.*C1============================================================================================================================================================================================================================ 4M L1':/)/.*C1 @/1,/) -& "(/.N& 3============================================================================================================================================================================================ 4E lnstulur un servldor con LAMP............................................................................................................................................................................... Servldores de Allcuclones..................................................................................................................................................................................... 901:&1&-08&'======================================================================================================================================================================================================================= 63 1omcut.................................................................................................................................................................................................................... L1':/)/1-0 O/>/===================================================================================================================================================================================================================== 66 L1':/)/8 "(/.N& P0@./:======================================================================================================================================================================================================== 6F L1':/)/1-0 (/Q,&:&' /-*.*01/)&'=========================================================================================================================================================================================== RE S',/8*0' -& P0@./:============================================================================================================================================================================================================== R3 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj L1*.*/8 H (/8/8 P0@./:=========================================================================================================================================================================================================== R4 L1':/)/1-0 P0@./: -& <08@/ @/1,/)==================================================================================================================================================================================== R6 T/.&8 P0@./: /,:0 /88/1./2)&============================================================================================================================================================================================= RR Allcuclones web....................................................................................................................................................................................................8 U':8,.:,8/============================================================================================================================================================================================================================ KM !&'.8*(:08 -& -&'()*&+,&====================================================================================================================================================================================================== KE 1LMA z: ALMlNlS1RAClCN LL SLRvlLCRLS vL8...................................................................................................................................6 Conflguruclon del servldor web............................................................................................................................................................................6 !*>*-*&1-0 H 08+/1*V/1-0 &) /8.N*>0 -& .01<*+,8/.*C1========================================================================================================================================================= KF !*8&.:*>/' -&) /8.N*>0 -& .01<*+,8/.*C1 =============================================================================================================================================================================== 5M Modulos..................................................................................................................................................................................................................88 WC-,)0' 8&)/.*01/-0' .01 &) &1:0810================================================================================================================================================================================== X4 WC-,)0' -& /,:&1:*./.*C1 H .01:80) -& /..&'0===================================================================================================================================================================== X4 WC-,)0' -& +&1&8/.*C1 -*1Y@*./ -& .01:&1*-0'================================================================================================================================================================= X6 WC-,)0' -& .01<*+,8/.*C1 -&) :*(0 -& .01:&1*-0================================================================================================================================================================= XR WC-,)0' (/8/ &) )*':/-0 -& -*8&.:08*0'================================================================================================================================================================================= XK WC-,)0' (/8/ )/ +&':*C1 -& )/' ./2&.&8/' TPPZ -& )/' 8&'(,&':/'======================================================================================================================================= XK WC-,)0' -& *1<08@/.*C1 -&) '&8>*-08 H -& 8&+*':80 -& )/ /.:*>*-/-====================================================================================================================================== X5 WC-,)0' -& @/(&0 -& S[\'================================================================================================================================================================================================= XF ]:80' @C-,)0'====================================================================================================================================================================================================================== XX lnstuluclon, conflguruclon y uso de los modulos de Auche..............................................................................................................................c \0' /8.N*>0' -& .01<*+,8/.*C1 -& )/ *1':/)/.*C1 (08 (/Q,&:&============================================================================================================================================== EME 6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 90@(802/.*C1 -& )0' @C-,)0' H/ *1':/)/-0'====================================================================================================================================================================== EM3 L1':/)/.*C1=========================================================================================================================================================================================================================== EM6 S'0 H .01<*+,8/.*C1============================================================================================================================================================================================================ EMK @0-^':/:,' H @0-^*1<0====================================================================================================================================================================================================== EMF !*8&.:08*0' (&8'01/)&' -& ,',/8*0'===================================================================================================================================================================================== EMX Eosts vlrtuules........................................................................................................................................................................................................ 7*:*0 (08 -&<&.:0=================================================================================================================================================================================================================== EEE W0-*<*./1-0 )0' @&1'/_&' -& &8808====================================================================================================================================================================================== EEK ")*/' / 0:80' -*8&.:08*0'======================================================================================================================================================================================================= EEK [&-*8&..*01&'======================================================================================================================================================================================================================= EE5 98&/.*C1 -& N0':' >*8:,/)&'================================================================================================================================================================================================== EE5 Control de ucceso..................................................................................................................................................................................................z6 901:80) -& /..&'0 2/'/-0 &1 )/ -*8&..*C1============================================================================================================================================================================ E3K 901:80) -& /..&'0 (08 >/8*/2)& -& &1:0810========================================================================================================================================================================= E3F 901:80) -& /..&'0 .01 &) @C-,)0 8&D8*:&============================================================================================================================================================================ E3F Autentlcuclon y uutorlzuclon................................................................................................................................................................................z U) @C-,)0 @0-^/,:N=========================================================================================================================================================================================================== E3X \0' <*.N&80' =N:/..&''========================================================================================================================================================================================================== E43 "+8,(/1-0 ,',/8*0' (/8/ &) .01:80) -& /..&'0=================================================================================================================================================================== E46 Ll rotocolo E11PS...............................................................................................................................................................................................8 Certlflcudos Llgltules............................................................................................................................................................................................c ]2:&1&8 ,1 .&8:*<*./-0 -*+*:/)============================================================================================================================================================================================= E63 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj SSLj1SL.................................................................................................................................................................................................................. E11PS en Auche..................................................................................................................................................................................................6 98&/1-0 ,1 '*:*0 >*8:,/) .01 TPPZ7===================================================================================================================================================================================== E6X Lesllegue de ullcuclones sobre servldores web y Lmuquetudo de ullcuclones web...............................................................................6 1LMA : ALMlNlS1RAClCN LL SLRvlLCRLS LL APLlCAClCNLS................................................................................................................., Arqultecturu.......................................................................................................................................................................................................... \/ &':8,.:,8/ -& -*8&.:08*0' -& P0@./:============================================================================================================================================================================== ERX S1 >*':/V0 @Y' (80<,1-0 / )/ /8Q,*:&.:,8/ -& P0@./:======================================================================================================================================================== EKE Conflguruclon bslcu del servldor de ullcuclones.............................................................................................................................................6 '&8>&8=`@)=========================================================================================================================================================================================================================== EKR .01:&`:=`@)========================================================================================================================================================================================================================= E5M D&2=`@)=============================================================================================================================================================================================================================== E53 Admlnlstrur ullcuclones web.............................................................................................................................................................................., \/ &':8,.:,8/ -& /8.N*>0' H -*8&.:08*0' -& ,1/ "()*./.*C1 #&2========================================================================================================================================== E55 Lesllegue de ullcuclones en el servldor de ullcuclones ................................................................................................................................,8 !&'()*&+,& @/1,/)============================================================================================================================================================================================================== E5X U':/2)&.*&1-0 1,&':8/ /()*./.*C1 .0@0 )/ (8*1.*(/) (/8/ &) '&8>*-08================================================================================================================================== EFM !&'()*&+,& .01 P0@./: #&2 W/1/+&8================================================================================================================================================================================ EFM Autentlcuclon de usuurlos....................................................................................................................................................................................8z U_&@()0' -& /,:&1:*./.*C1================================================================================================================================================================================================== EFF !0@*1*0' -& '&+,8*-/- (/8/ )/ /,:&1:*./.*C1===================================================================================================================================================================== EXK Admlnlstruclon de seslones. Seslones erslstentes ..........................................................................................................................................zc K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Archlvos de reglstro de ucceso y flltro de sollcltudes.........................................................................................................................................z ;Y)>,)/'=============================================================================================================================================================================================================================== 3EK G*):80'================================================================================================================================================================================================================================== 3E5 Conflgurur el servldor de ullcuclones uru cooerur con servldores web.......................................................................................................z @0-^_a================================================================================================================================================================================================================================ 33M @0-^(80`H========================================================================================================================================================================================================================== 335 Segurldud en el servldor de ullcuclones. Conflgurur el servldor de ullcuclones con soorte SSLj1SL........................................................z Prctlcus flnules.....................................................................................................................................................................................................z, Z8Y.:*./ / &1:8&+/8============================================================================================================================================================================================================= 34F 1LMA : lNS1ALAClCN Y ALMlNlS1RAClCN LL SLRvlLCRLS LL 1RANSlLRLNClA LL ARCElvCS.......................................................................z Conflguruclon del servlclo de trunsferenclu de urchlvos..................................................................................................................................zc L1':/)/1-0 &) '&8>*-08========================================================================================================================================================================================================= 36M 901<*+,8/1-0 &) '&8>*-08===================================================================================================================================================================================================== 363 1los de usuurlos y uccesos ul servlclo................................................................................................................................................................z Z&8@*'0' H .,0:/'=============================================================================================================================================================================================================== 3K6 W0-0' -& .01&`*C1 -&) .)*&1:&=========================================================================================================================================================================================== 3KF Protocolo seguro de trunsferenclu de urchlvos..................................................................................................................................................z, S1 .)*&1:& &1 @0-0 :&`:0 (/8/ GPZ7=================================================================================================================================================================================== 354 Utlllzuclon de herrumlentus grflcus...................................................................................................................................................................z, Utlllzuclon del servlclo de trunsferenclu de urchlvos desde el nuvegudor........................................................................................................z,, Utlllzuclon del servlclo de trunsferenclu de urchlvos en el roceso de desllegue de lu ullcuclon web.......................................................z, Lesurrollo de oeruclones remotus de gestlon de contenldos: vebLAv........................................................................................................z8c , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 1LMA : SLRvlClCS LL RLL lMPLlCALCS LN LL LLSPLlLCUL LL UNA APLlCAClCN vL8................................................................................z8z Resolutores de nombres......................................................................................................................................................................................z8 Z80.&'0 -& 8&'0),.*C1 -& ,1 10@28& -& -0@*1*0=============================================================================================================================================================== 3F6 Purmetros de conflguruclon y reglstros del servldor de nombres ufectudos en el desllegue....................................................................z86 Servlclo de dlrectorlos: curucterlstlcus y funclonulldud.....................................................................................................................................zc LLAP......................................................................................................................................................................................................................zz lnstuluclon de CenLLAP....................................................................................................................................................................................z "8.N*>0' 2Y'*.0' -& .01<*+,8/.*C1= L1:&8(8&:/.*C1 H ,'0==================================================================================================================================================== 3XR Creundo contenldo en LLAP................................................................................................................................................................................cz W0-*<*./1-0 &) .01:&1*-0==================================================================================================================================================================================================== 4E3 b088/1-0 &1:*-/-&'============================================================================================================================================================================================================ 4EX Cllentes grflcos....................................................................................................................................................................................................zc Autentlcuclon de usuurlos en el servlclo de dlrectorlos.....................................................................................................................................zz U) /:8*2,:0 0)."..&''=========================================================================================================================================================================================================== 434 901:8/'&c/' (/8/ )0' ,',/8*0'============================================================================================================================================================================================ 43K "()*./1-0 )/' -*8&.:*>/'====================================================================================================================================================================================================== 43X 901:80) -& /..&'0 &1 8&-&' -& 08-&1/-08&'======================================================================================================================================================================= 46M Adutuclon de lu conflguruclon del servldor de dlrectorlos uru el desllegue de lu ullcuclon. Usuurlos centrullzudos............................z \!"Z H "(/.N&==================================================================================================================================================================================================================== 463 \!"Z H P0@./:==================================================================================================================================================================================================================== 465 1LMA 6: LCCUMLN1AClCN Y SlS1LMAS LL CCN1RCL LL vLRSlCNLS....................................................................................................... Eerrumlentus externus uru lu generuclon de documentuclon......................................................................................................................... F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu L1':/)/.*C1d .01<*+,8/.*C1 H ,'0========================================================================================================================================================================================== 4RR 98&/.*C1 H ,:*)*V/.*C1 -& ()/1:*))/'====================================================================================================================================================================================== 4RK lnstuluclon, conflguruclon y uso de slstemus de control de verslones. ............................................................................................................, APLNLlCLS..................................................................................................................................................................................8 vebmln: Unu lnterfuz grflcu de udmlnlstruclon............................................................................................................................................... Un equeno servldor LNS....................................................................................................................................................................................6 lnstulur MySQL......................................................................................................................................................................................................, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 1emu : lmluntuclon de urqultecturus web EM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lu urqultecturu web y ulgunos modelos Unu ullcuclon web, o web en generul necesltu de unu estructuru que ermltu su ucceso desde dlferentes lugures (mqulnus). Lstu estructuru es lo que se denomlnu Arqultecturu veb (reulmente este nombre se du tumblen ul dlseno de todu lu estructuru). Lu grun muyorlu de lus urqultecturus web en lu uctuulldud se busun en un modelo !"#$%&$'($)*#+,): unu comunlcuclon uslmetrlcu en lu que uno de los extremos ofrece uno o ms servlclos y el otro huce uso de el. Lste es el modelo sobre el que centruremos el curso, ero no huy que olvldur otros modelos como -.- 01$$)2&,2 1$$)34 5.5 067((#%$(( &, 67((#%$((34 $&!8 Ll termlno ($)*#!#, es muy umllo y muchus veces confuso. Por ejemlo se uede conslderur unu web u lu que ucudlmos u comrur roductos un servlclo en sl mlsmu, ero u lu vez dlcho servlclo est comuesto de servlclos de segurldud, de seslon, de trunsucclones, etceteru. Lu estructuru de unu Arqultecturu veb uctuul slgue el slgulente 9,+$",: -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj . Unu !:1: !"#$%&$: es generulmente el nuvegudor veb ejecutndose en el ordenudor del usuurlo flnul. Lxlsten otrus oclones ms bslcus ero en lu uctuulldud lu otenclu y dlversldud de los nuvegudores exlstentes (usl como su grutuldud) hun relegudo lus dems oclones u lu rctlcu desuurlclon. z. Un servldor veb (!:1: +$ %$;,!#,): Lu cuu cllente uede ucceder u dlferente loglcu y rocedlmlentos que exlsten en lu cuu de negoclo. Aqul lu loglcu uede ser mucho ms comleju que en lu cuu unterlor. Los comonentes de estu cuu ueden ser desde slmles urchlvos E1ML hustu Servlets de 'uvu. Lxlsten muchus tecnologlus que ueden usurse en este nlvel: or ejemlo scrltlng web como PEP, ASP o 'SP u lenguujes de rogrumuclon como 1CL, CCR8A y PLRL. . Unu !:1: +$ +:&,(: Se comone de un slstemu de ulmucenumlento ucceso u dutos que se utlllzun uru confecclonur lu glnu veb. Cenerulmente es un gestor de buses de dutos reluclonules (SCL8) ero ueden ser flcheros de texto luno, flcheros ML, etc. Unu oclon cudu vez ms usudu es lu creuclon de flcheros ML u urtlr de dutos ulmucenudos en unu buse de dutos y su resentuclon medlunte ulgunu de lus oclones vlstus el curso usudo como or ejemlo SL1. Lu cuu de negoclo uede estur u su vez dlvldldu en dos urtes sl el slstemu es suflclentemente grunde o comlejo. Puede dlvldlrse en unu cuu de resentuclon y unu cuu de loglcu de negoclo. ! Lu !:1: +$ 1)$($%&:!#<% se encurgu de comoner lus glnus lntegrundo lu urte dlnmlcu en lu esttlcu. Adems tumblen rocesu lus glnus que envlu el cllente (or ejemlo dutos en formulurlos). Algunus soluclones uru estu subcuu son los ASP de Mlcrosoft o los 'SP de 'uvu. Lstu urte lu reullzu generulmente un servldor web. E3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ! Lu !:1: +$ "<;#!: +$ %$;,!#, llevu u cubo oeruclones ms comlejus. Se corresonde con lu lmluntuclon de un servldor de ullcuclones. Reullzu muchos tlos de oeruclones entre los que destucun: o Reullzur todus lus oeruclones y vullduclones. o Cestlonur el flujo de trubujo (workflow) lncluyendo el control y gestlon de lus seslones y los dutos que se necesltun. o Cestlonur todus lus oeruclones de uccesos u dutos desde lu cuu de resentuclon. Ln el cuso de estur usundo glnus web esttlcus (no cumblun en funclon de dlversus vurlubles) no exlstlrlu lu cuu de dutos yu que estos vun lncororudos en los rolos urchlvos de murcus que sern lus conformun lus glnus web. Lste suuesto es cudu vez menos comun. Lebldo u lu lntroducclon de dlnumlsmo en lus glnus, lu estructuru vlstu unterlormente se hu vlsto ulterudu senslblemente: ! Los nuvegudores veb son cuuces de lnterretur dlferentes elementos dlnmlcos uutonomumente o medlunte luglns (juvuscrlt, flush, etc.) ! Los servldores veb tumblen ueden lnterretur codlgo uru generur lus glnus web. Asl se ueden lntroduclr equenos rogrumus que ulteren el contenldo o usecto flnul de unu glnu web deendlendo de dlferentes elementos como el usuurlo que uccede o lu lnformuclon sollcltudu en cudu momento. Ll servldor web necesltu de ulgun modulo udlclonul uru oder lnterretur este codlgo. Cenerulmente se emotru en el rolo servldor web uru lenguujes de scrlt o se lncororu en un servldor u urte (de ullcuclones) uru los lenguujes ms otentes. Algunos lenguujes que tllcumente se usun en lus glnus dlnmlcus en el servldor son PEP, Python, Ruby o 'uvu. Lstos lenguujes tumblen ermlten el ucceso u lu cuu de dutos y lu lnterculuclon de estos dutos entre los elementos de lu glnu flnul. Un ejemlo del modelo comleto esturlu comuesto or un servldor Auche y un 1omcut que se conecte u unu buse de dutos. Un ejemlo del slmllflcudo serlu un servldor LAMP. Londe se ejecute el codlgo de dlnumlzuclon de lu glnu determlnur sl el lenguuje de rogrumuclon es de entorno cllente o de entorno servldor como se estudlur en los otros dos modulos de contenldo lnformtlco de este curso del clclo. A esur de que el modelo CllentejServldor es el ms extendldo, el vC descrlbe cuutro modelos de urqultecturu de servlclos web: . Ll Modelo Crlentudo u Mensujes: Se centru en deflnlr los mensujes, su estructuru, lu formu de trunsorturlos, etc. sln referenclus ul or que de cudu mensuje nl u su slgnlflcudo. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj z. Ll Modelo Crlentudo u Servlclos: Ls el ms extendldo y el ms comlejo de todos. Aunque usu mensujes, su deflnlclon no se busu en ellos sl no en que se roorclonu u los recetores de dlcho servlclo. Ll servlclo lo llevu u cubo un ugente y lo usu otro ugente, utlllzundo mensujes uru comunlcurse. Ln este modelo se usun metudutos uru formur de y ucordur muchos usectos de lu comunlcuclon en sl mlsmu. E6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu . Ll Modelo Crlentudo u Recursos: Lste modelo se busu en lu creuclon de recursos y su ucceslbllldud medlunte redes.
-& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj . Ll Modelo de Polltlcus: se busu en deflnlr los comortumlentos de los ugentes que utlllzun los servlclos deflnlendo como uccedern u los recursos Lstos modelos son en muchos cusos comlementurlos y lu deflnlclon de unu urqultecturu web uede hucerse desde dlferentes enfoques. Ln un cuso rctlco lo ms hubltuul es que nuestru urqultecturu se buse en unu deflnlclon estndur. EK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Un modelo slmle uru el desllegue de ullcuclones veb Ln lu uctuulldud lu muyor urte de lu lnformuclon y loglcu de un negoclo debe ser ucceslble desde dlferentes lugures. Aqul entrun en juego lus ullcuclones web. 1odos ensumos en tlendus onllne como modelo de unu ullcuclon web, ero huy otros muchos como or ejemlo unu ullcuclon de comru ventu de uctlvos entre dos buncos en el sector entre negoclos (8z8). Se uede lmuglnur lnmedlutumente que lu ($;7)#+:+ es un usecto cluve en este tlo de ullcuclones, ero no el unlco. Muchus veces lu *$",!#+:+ y $(&:6#"#+:+ de lu comunlcuclon y del servlclo en sl ueden ser tunto o ms crltlcus. Cuundo uno vu u desurrollur e lmluntur unu ullcuclon web debe tener en cuentu vurlos fuctores. Lo rlmero debe ser hucerse unu #+$: ;$%$):" +$ ": :1"#!:!#<% y de lus dlferentes (,"7!#,%$( que odemos utlllzur. Se deben tener en cuentu lus tres cuus. Un error muy comun es el uso de un unlco conjunto de tecnologlus constuntemente. Por suuesto conocer unu tecnologlu es un unto u fuvor de su uso, ero muchus veces vumos u llevur u cubo unu soluclon munlflestumente mejor unlcumente or no huber conslderudo usur otrus y ufrontur su urendlzuje. Ll slgulente usecto u conslderur serlu el !,(&$. Cunto nos vu u costur y que resuuesto tenemos. Lstos fuctores huy que conslderurlos :%&$( +$ =#)9:) nlngun contruto e lncluso untes de dur un resuuesto uunque seu orlentutlvo. Por ejemlo unu comunlu de ventu de vehlculos lndustrlules qulere unu ullcuclon web uru ubllcur sus dutos de ventus y que los comerclules uedun ucceder u ellu remotumente. Neceslturemos unu buse de dutos en lu que se ulmucenen los dlferentes vehlculos y sus ventus. 1umblen hur fultu unu loglcu que muntengu todo el slstemu uctuullzudo y ermltu modlflcuclones. Adems neceslturemos unu cuu de cllente con uutentlcuclon uru que los dlferentes vendedores uedun ucceder ul slstemu, consultur y uctuullzur los dutos. Lesues de lu evuluuclon se uede decldlr no ufrontur el royecto or muchos motlvos. Adems de los costes yu menclonudos odrlu durse el cuso de que no tengumos los conoclmlentos o lu lnfruestructuru uru llevur u cubo el royecto. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Unu vez vuyumos u reullzur el royecto deberemos oner en rctlcu los conoclmlentos udqulrldos durunte el estudlo de este clclo, ero muchus veces es dlflcll hucerse unu ldeu de como hucerlo, uqul nos orlentun con un ejemlo y estu equenu gulu nos uede ser muy utll uru orgunlzur el frontend. !"# %& "'( ()*+,(,+-' .%/ Ls unu ullcuclon que se vu u ejecutur u truves de lnternet. Constur de dos urtes (ul menos) unu en el ludo servldor y otru que se ejecutur en lu mqulnu del cllente en un nuvegudor web. Lus ullcuclones web se englobun en el conceto suerlor de ullcuclones dlstrlbuldus. Ll servldor one u dlsoslclon del cllente dlferentes recursos. Ljemlos de ullcuclones web son el correo electronlco web, lus tlendus onllne, lus redes soclules, etc. 0(&%& 1% "' )234%,53 1% "'( ()*+,(,+-' .%/ Se ueden conslderur cuutro fuses en el royecto: . >,%!$1&,: Lurunte estu fuse se debe obtener unu ldeu cluru y concretu de que qulere el cllente. Adems huy que obtener unu ldeu generul de como se llevur u cubo y de sl es vluble o no. Euy que determlnur lus llmltuclones reules con que nos odemos encontrur. Por ejemlo lu conexlon u lnternet exlstente en lu zonu uede no ser suflclente uru obtener los resultudos revlstos. Ctro ejemlo de roblemu uedu ser que lu tecnologlu necesurlu seu demusludo curu. Ls vltul que ul termlnur estu fuse se tengu unu documentuclon que deflnu clurumente los llmltes y objetlvos del royecto. z. ?#($@,: Lstu fuse se centru en resonder u como huremos lu ullcuclon. Euy que concretur lus tecnologlus (tunto softwure como hurdwure) que usuremos y como se vun u comunlcur entre ellus. 1umblen huy que determlnur los dlstlntos modulos que usuremos y sus lnterfuces. Ls muy lmortunte reullzur un lun de royecto reullstu en el que se dlvldun lus tureus y resonsubllldudes y se culculen los tlemos uru cudu elemento usl como su secuenclu y deendenclus. 1umblen huy que obtener unu eseclflcuclon funclonul en lu que se detullen tunto el funclonumlento como el flujo de lu ullcuclon. . ?$(:)),"",: Ln estu fuse se debe desurrollur el royecto en sl. Ls muy lmortunte llevur u cubo ruebus tunto unlturlus como de lntegruclon usl como gestlonur unu documentuclon del desurrollo y un control de verslones. EF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu . -)7$6:( $ #91":%&:!#<%: Cuundo el royecto est totulmente termlnudo es necesurlo roburlo lntenslvumente untes de onerlo en roducclon. Ls necesurlo tener en cuentu tunto nuestru ullcuclon como su comunlcuclon con otros slstemus lnformtlcos. Cuunto ms se urezcu el slstemu de ruebus ul reul mejor. Ll ultlmo uso es lu lnstuluclon y uestu en curchu del slstemu. Ls un momento crltlco. Lste modelo es unu slmllflcuclon de los que se utlllzun hubltuulmente en lngenlerlu de softwure. lnvestlgu en lnternet lus fuses hubltuules en un royecto de desurrollo de softwure y cules son los dlferentes clclos de vldu que se usun. Llscute en cluse los descubrlmlentos con uyudu del rofesor. Unu fuse comun u todos los royectos lnformtlcos y que no se lncluye uqul es el 9:%&$%#9#$%&,. Lste conceto lncluye dos urtes. Ll muntenlmlento del servlclo y correcclon de errores y lus mejorus. Lu rlmeru conslste en usegururse de que todo slgue funclonundo y soluclonur los oslbles errores y "culdus' del servlclo. Lu segundu conslste en umllur el royecto. Ambos cusos suelen conslderurse contrutos u urte y or ello no se lncluyen en el clclo. Ll orden correcto uru el desurrollo es emezur de ubujo u urrlbu. Ls declr, rlmero lu cuu de dutos, luego lu de negoclo y or ultlmo lu resentuclon ul cllente. Muchus veces se tlene lu tentuclon de hucerlo ul reves. Lsto es debldo u que no se hun ldentlflcudo blen lus necesldudes y objetlvos de royecto o no se hu reullzudo un dlseno concreto. Ls un error que nos conduclr u muchus ms modlflcuclones y errores en nuestru ullcuclon. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Servldores web Un ($)*#+,) A$6 es un rogrumu o conjunto de ellos que roorclonu un servlclo u truves de unu red. Lu comunlcuclon con un servldor web suele hucerse medlunte el rotocolo htt (hyertext trunsfer rotocol) que est englobudo en lu cuu de ullcuclon del modelo CSl. Muchus veces servldor web se usu como referenclu tumblen ul B:)+A:)$ que lo uloju, ero esto es lnexucto orque el mlsmo hurdwure uede ulbergur muchus otrus funclonulldudes o uede durse el cuso de que un mlsmo hurdwure contengu vurlos servldores web (u veces slmuludos). Ll objetlvo de un servldor web es roorclonur los medlos uru ermltlr lu comunlcuclon entre dos o ms rogrumus o gruos de softwure sln lmortur lu tecnologlu usudu uru creur y oerur cudu uno de ellos. Ln lu uctuulldud el servldor web ms extendldo con muchu dlferenclu es C1:!B$. Por ello ser en el que centruremos este curso. Lxlsten muchos otros servldores web. Unu formu fcll de consultur lu llstu y ver unu comurutlvu muy generul es vlsltundo lu vlkledlu. Ln estu otru se ueden leer lus rlnclules curucterlstlcus de cudu uno. Los servldores web se englobun en un conjunto de slstemus ms generul que se denomlnu 9,+$", +#(&)#67#+, orque el slstemu no es unlturlo, est reurtldo entre dlferentes mqulnus o conjuntos de hurdwure. Lste modelo tlene que ufrontur ulgunos roblemus que huy que tener slemre en cuentu: . Lu lutenclu y ocu flubllldud del trunsorte (or ejemlo lu red). z. Lu fultu de memorlu comurtldu entre lus urtes. . Los roblemus derlvudos de fullos urclules. . Lu gestlon del ucceso concurrente u recursos remotos. . Problemus derlvudos de uctuullzuclones de ulgunujs de lus urtes. Le que se encurgu cudu nlvel de lu llu del modelo CSl? Que rotocolos se lncluyen en cudu cuu? ldentlflculos y exllcu muy brevemente que huce cudu uno. 3M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 6%27+,+3& 8%/ Un ($)*#!#, A$6 es un conceto ubstructo que debe lmlementurse medlunte un :;$%&$: un eduzo de softwure que envlu, reclbe y rocesu mensujes mlentrus que el servlclo es el conceto de que huce. Ll ugente solo debe ujusturse u lu deflnlclon de unu lnterfuz (dos reulmente, unu huclu dentro (llu CSl) y otru huclu fueru) y uede modlflcurse o lncluso rehucerse en otro lenguuje de rogrumuclon sln nlngun roblemu. Ll dlseno se reullzu slgulendo normus de modulurldud uru ermltlr estus modlflcuclones. Ls de vltul lmortunclu que el servlclo web este blen deflnldo uru oslbllltur lu comunlcuclon entre umbos extremos. Por ello huy muchos estndures sobre servlclos web que ermlten lu comunlcuclon de un cllente generlco (or ejemlo un nuvegudor web) con dlversos servlclos. Cenerulmente lu deflnlclon de un servlclo se reullzu en unu APl que eseclflcu como comunlcurse con el servlclo. Ll roceso uru usur el servlclo es como slgue: . Ll cllente y el servldor deben ser consclentes de lu exlstenclu del otro. Ln el cuso ms hubltuul es el cllente el que lnformu ul servldor de su lntenclon de usur el servlclo ero tumblen uede ser el servldor el que lnlcle el contucto. Sl es el cllente el que comlenzu, uede hucerlo o blen conoclendo revlumente como locullzur el servldor o usundo el servlclo uru descubrlr servlclos (veb Servlce Llscovery). z. Ambus urtes deben onerse de ucuerdo sobre los urmetros que reglrn lu comunlcuclon. Lsto no slgnlflcu que dlscutun, solo que lus normus y rotocolos deben ser lus mlsmus en umbus urtes. . Los ugentes de umbos ludos emlezun u lntercumblur mensujes. Ll servldor web necesltu comoner lus glnus en cuso de que lleven elementos multlmedlu e lncluso necesltur reullzur otrus ucclones sl lu glnu se creu dlnmlcumente. 9*5%2'(5+7(& Antes de decldlrse u lnstulur nuestro rolo servldor web, debemos tener en cuentu que no slemre es lu mejor oclon. Lo rlmero que debemos suber es que qulere el cllente. Leendlendo del tumuno del servlclo que vuyumos u roorclonur y de lu lmortunclu de oder controlur todos los usectos del servldor, odemos decldlr usur otrus oslbllldudes. Por otro ludo lu mqulnu que necesltumos tendr que tener muchu RAM y cuucldud de ulmucenumlento u urte de soortur grundes curgus de trubujo. Lu conexlon u lnternet tumblen deber ser otente y neceslturemos contrutur unu dlrecclon lP esttlcu. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Lo rlmero que se debe tener en cuentu es sl nos lnteresu tener nuestro rolo servldor web o contrutur un servlclo de ulmucenumlento web (web B,(&#%;). Reulmente el termlno veb Eostlng lncluye el tener un servldor rolo, ero en lu uctuulldud se utlllzu uru denomlnur el ulqullur esuclo en un servldor de otru comunlu. Cenerulmente estu comunlu est dedlcudu u ello eseclflcumente. Lus ventujus de este cuso son lus obvlus: no tenemos que reocuurnos de udqulrlr nl muntener nl el hurdwure nl el softwure necesurlo. Adems lu flubllldud del servlclo de unu emresu eseclullzudu suele ser muy ultu. Lxlsten cusos en los que lncluso huy tecnologlus ms eseclflcus uru nuestrus necesldudes. Cudu vez es ms hubltuul lu exlstenclu de sltlos web en los que lu uurlenclu no cumblu ero el contenldo es uctuullzudo constuntemente. Puru estos cusos se uede usur un ;$(&,) +$ !,%&$%#+,(. Con ellos se ermlte ul usuurlo uctuullzur lu lnformuclon del sltlo sln necesldud de que tengu conoclmlentos web concretos. Lxlsten muchos gestores web, ulgunos comerclules y curos ero muy onentes. 1umblen huy dos ulternutlvus grutultus muy extendldus: 'oomlu y Lruul. Ultlmumente se conslderu lncluso unu ulternutlvu ms senclllu sl se qulere unu web lnformutlvu y bustunte senclllu. vordress emezo slendo unu lutuformu uru ulojur blogs ero cudu vez lncluye ms oclones y oslbllldudes de conflguruclon ermltlendo llevur u cubo glnus bustunte utructlvus. htt:jjwww.frumeworx.co.zuj htt:jjwww.webdeslgnerdeot.comj htt:jjdeslgnshuck.netj Son ulgunos ejemlos de glnus hechus en vordress. 8uscu comurutlvus entre montur tu rolo servldor, contrutur un hostlng externo o usur wordress. Que funclonulldudes crees que son ms lmortuntes? Por cul te decunturlus uru creur lu web de unu unuderlu? y de un centro deortlvo munlclul? lu de lu consejerlu de deortes de lu Comunldud de Mudrld lu reullzurlus con el mlsmo slstemu? Los gestores de contenldo como 'oomlu, Lruul o vordress estn generundo bustuntes ofertus de trubujo en lu uctuulldud. 8uscu en lnternet lus rlnclules curucterlstlcus de cudu uno y los motlvos que te ueden llevur u decldlrte or uno u otro. 33 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu :!"# '%,%&+53 )(2( ;3'5(2 "' &%27+132 .%/< Lo rlmero que necesltus es unu 9DE7#%: con unu otenclu cuuz de utender lus etlclones que vuyu u rocesur. Lste unto es crltlco y dlflcll de gestlonur orque no subemos cul ser lu demundu y muchus veces es comlejo estlmur lu curgu de trubujo que soortur. Ls muy recomenduble que seu unu mqulnu dedlcudu o que cumlu otrus funclones reluclonudus con lntercumblo de lnformuclon en lnternet como gestlonur correo electronlco o l1P. 1umblen es vltul que el (#(&$9: ,1$):&#*, que elljumos seu estuble. No tlene nlngun sentldo eleglr un slstemu oerutlvo que deje de estur funclonul con fucllldud. Ls convenlente que lleve clertu segurldud y control de ermlsos lntegrudo. Los slstemus ms hubltuules son dlferentes verslones de UNl (or ejemlo Solurls) ero lus dlferentes dlstrlbuclones de Llnux estn tomundo unu oslclon fuerte or su bujo (o lnexlstente) coste. vlndows tumblen es unu buenu oclon (sobre todo sus verslones servldor) ero es ms curo que Llnux y es ms dlflcll de gestlonur debldo u lu dlversldud de conflguruclones, oclones y funclonulldud que lleven lntegrudos. Lo slgulente que tendrs que consegulr es unu +#)$!!#<% F- $(&D&#!:. Por suuesto debe ser unu dlrecclon de lnternet u no ser que tu objetlvo seu montur unu lntrunet. Nuestru mqulnu debe ser ucceslble desde redes remotus. Consultu como se uede contrutur unu dlrecclon lP esttlcu y cunto cuestu. Los nombres y dlrecclones de lnternet que conocemos se busun en un slstemu llumudo LNS que lo que huce es convertlr esus dlrecclones leglbles uru nosotros en dlrecclones lP y vlceversu. Sl nuestru dlrecclon lP cumblu frecuentemente cuundo ulgulen fueru u ucceder u nuestru glnu estu le uurecerlu como no dlsonlble u esur de que todo el resto del slstemu estuvleru trubujundo. Que es LNS? Qulen lo gestlonu? Como se conslgue un nombre de domlnlo? Puru ulternutlvus como vordress o un hostlng externo, es necesurlo un nombre de domlnlo? z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Lxlste lu oslbllldud de funclonur con unu dlrecclon lP dlnmlcu medlunte slstemus como htt:jjdyn.comjdnsj que muntlenen slemre uctuullzudu nuestru dlrecclon ero solo es recomendudo (lncluso en lu rolu glnu) uru servldores con muy ocu curgu de conexlones y trubujo. Lu !,%$G#<% : #%&$)%$& .H B,):( se du or guruntlzudu ero tumblen lmllcu clertos roblemus como lu udqulslclon de dlsosltlvos de red que uguunten ese horurlo sln sobreculenturse o sutururse. Ll (,=&A:)$ del servldor del que yu hemos hubludo y sln el que no odrlumos trubujur. >,%=#;7):) nuestru mqulnu uru que seu ucceslble ero lmldlendo lu conexlon de desconocldos u urtes del slstemu crltlcus o que no queremos ubllcur. Ln deflnltlvu, huy que mejorur lu segurldud. 36 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu lnstuluclon y conflguruclon bslcu de un servldor web: Auche Munos u lu obru! Nosotros vumos u otur or lnstulur un servldor web Auche en un slstemu oerutlvo Llnux. Ls unu de lus oclones ms extendldus y lu oslbllldud de obtener este softwure de muneru grutultu dlsmlnuye mucho los costes ero no es lu unlcu ruzon. Auche destucu sobre otros servldores or: ! 1lene un dlseno modulur y ultumente conflguruble. ! Ls de codlgo ublerto or lo que exlsten muchus extenslones y herrumlentus de terceros. ! lunclonu muy blen con Perl, PEP y otros lenguujes de scrlt. ! Lxlsten verslones uru muchos slstemus oerutlvos lncluyendo vlndows, Llnux y Muc CS . Lu fumlllu Auche z trujo muchus mejorus con resecto u lu rlmeru verslon sobre todo en el luno de lu flexlbllldud, esculubllldud y ortubllldud. Lo ms loglco serlu lnstulur Auche en un slstemu oerutlvo de tlo servldor (Ubuntu Server) ero or motlvos dldctlcos, vumos u lnstulurlo en unu verslon estndur con lnterfuz grflcu. Ls menos seguro or lo que en un slstemu en roducclon deberlumos otur or lu otru oclon. A esur de usur un Llnux con lnterfuz grflcu vumos u lnstulur todo desde lu ventunu de termlnul, or lo que los usos se odrn ullcur u un servldor. Nosotros vumos u reullzur unu lnstuluclon munuul uru tener muyor control sobre el roceso y lu conflguruclon. Auche uede funclonur de formu uutonomu, ero en lu uctuulldud (ms uun hublundo de ullcuclones web) suele necesltur unu buse de dutos y cudu vez son ms los slstemus que usun PEP. Por ello hun rollferudo los lnstuludores AMP (Auche, MySQL y PEP) que lnstulun y conflgurun los tres slstemus uru que funclonen de muneru conjuntu. Lsto requlere unu grun conflguruclon de los tres elementos uru oder tener un servldor seguro. Puru segurldud sobre PEP y MySQL hubr que referlrse u los modulos rolos. AMPP es lu verslon ms usudu uru vlndows y Llnux. Leendlendo del slstemu uru el que vuyun orlentudos, estos uquetes se llumun vAMP y LAMP generlcumente. Lu lnstuluclon de estos uquetes es tremendumente senclllu. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj =3;)23/(,+-' 4 %*+;+'(,+-' 1% 352(& 7%2&+3'%& Ln lu muyorlu de lus gulus y tutorlules de lnternet vers que lnstulun rlmero MySQL. Lsto es orque fucllltu lu lnstuluclon, ero y sl tenemos que montur unu buse de dutos en un servldor web que yu est funclonundo? Nosotros lnstuluremos rlmero lu oclon ms bslcu de nuestro servldor web. Antes de nudu, ms uun en un servldor que vuyu u ubllcur en lu web, debemos usegururnos de tener el control ubsoluto. Muchus verslones de Llnux vlenen con uquetes de Auche 1)$#%(&:":+,( usl que lo rlmero ser $"#9#%:)",( sl exlsten. Lsto mejoru lu segurldud orque nos usegurumos de estur lnstulundo lu ultlmu verslon. vumos u comrobur de muneru conjuntu sl exlsten lnstuluclones de Auche, MySQL y PEP uru oder dejur unu mqulnu llmlu. dpkg --list|grep -e httpd -e apache -e mysql -e php Que huce lu llneu unterlor? Ln Ubuntu or defecto no vlene lnstuludo. Sl est relnstuludo el comundo unterlor devolver ulgo. Sl es usl debemos comrobur lus deendenclus uru ellmlnur todo. Sl vlerumos que uurece ** ul ludo del uquete esturlu lnstuludo y hubrlu que ellmlnurlo. Suongumos que nos devuelve lo slgulente ii apache2 2.2.4-3build1 Next generation, scalable, extendable web se ii apache2-mpm-prefork 2.2.4-3build1 Traditional model for Apache HTTPD ii apache2-utils 2.2.4-3build1 utility programs for webservers ii apache2.2-common 2.2.4-3build1 Next generation, scalable, extendable web se 3K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ii libapache2-mod-php5 5.2.3-1ubuntu6 server-side, HTML-embedded scripting languag ii libdbd-mysql-perl 4.004-2 A Perl5 database interface to the MySQL data ii libmysqlclient15off 5.0.45-1ubuntu3 MySQL database client library ii mysql-client-5.0 5.0.45-1ubuntu3 MySQL database client binaries ii mysql-common 5.0.45-1ubuntu3 MySQL database common files ii mysql-server 5.0.45-1ubuntu3 MySQL database server (meta package dependin ii mysql-server-5.0 5.0.45-1ubuntu3 MySQL database server binaries ii php5-common 5.2.3-1ubuntu6 Common files for packages built from the php ii php5-mysql 5.2.3-1ubuntu6 MySQL module for php5 8uscumos los rocesos de uuche. # ps -wef|grep apache2 Suonemos que nos muestru root 4006 1 0 09:41 ? 00:00:00 /usr/sbin/apache2 -k start z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj www-data 4025 4006 0 09:41 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4026 4006 0 09:41 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4027 4006 0 09:41 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4028 4006 0 09:41 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4029 4006 0 09:41 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4140 4006 0 14:24 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4141 4006 0 14:24 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4142 4006 0 14:24 ? 00:00:00 /usr/sbin/apache2 -k start root 4157 4125 0 14:36 pts/0 00:00:00 grep apache2 Purumos uuche # apache2ctl stop volvemos u buscurlo uru usegururnos de que yu no se est ejecutundo. # ps -wef|grep apache2 root 4162 4125 0 14:36 pts/0 00:00:00 grep apache2 Ahoru buscumos MySQL 3F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu # ps -wef|grep mysql Nos muestru root 3857 1 0 09:41 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe mysql 3897 3857 0 09:41 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock root 3898 3857 0 09:41 ? 00:00:00 logger -p daemon.err -t mysqld_safe -i -t mysqld root 4355 4310 0 18:54 pts/1 00:00:00 grep mysql Purumos MySQL # /etc/init.d/mysql stop * Stopping MySQL database server mysqld [ OK ] Y comrobumos que yu no est. # ps -wef|grep mysql root 4395 4310 0 18:55 pts/1 00:00:00 grep mysql PEP no huy que ururlo. Lllmlnumos todos los uquetes que uureclun. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj # 3 remove php5-mysql libapache2-mod-php5 php5-common # apt-get remove libdbd-mysql-perl mysql-server mysql-server-5.0 mysql-client-5.0 # apt-get remove libmysqlclient15off mysql-common # apt-get remove apache2 apache2-mpm-prefork apache2.2-common apache2-utils Ahoru que yu hemos vlsto como hucer unu lnstuluclon y conflguruclon de Auche z de formu munuul, vumos u reullzur otru lnstuluclon ms estndur uru contlnuur. Adems estu lnstuluclon nos ermltlr tener unu verslon llmlu. >'&5(*(,+-' Antes de lnstulur ulgo es lmortunte tener uctuullzudu lu llstu de uquetes sudo apt-get update uru luego uctuullzur lu mqulnu enteru sudo apt-get upgrade y luego yu lnstulumos apt-get install apache2 Lo rlmero que debemos hucer es ver que uhoru Auche est lnstuludo en cd /etc/apache2/ 4M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lxlsten dlferentes verslones de Auche z or lo que es lnteresunte comrobur cul es lu que estumos usundo. apache2 -v lo que nos mostrur ulgo como esto Server version: Apache/2.2.22 (Ubuntu) Server built: Feb 13 2012 01:37:45 Conflguru e lnstulu Auche en tu mqulnu vlrtuul slgulendo los usos lndlcudos y comruebu el ucceso desde lu mqulnu vlrtuul y desde lu mqulnu unfltrlon. Comentu en cluse los resultudos. Podemos ver que yu exlste un urchlvo uuchez en jetcjlnlt.dj que huce que se lnlcle Auche cudu vez que encendumos lu mqulnu. sudo gedit /etc/init.d/apache2 Nos muestru un contenldo muy comlejo ero ul que odemos echur un vlstuzo sublendo que se busu en estublecer que hucer unte dlversus ordenes (lus ms lmortuntes son sturt, sto, resturt y gruceful). Lchu un vlstuzo ul scrlt sln entrur en detulles. Que es gruceful? uru que se usu uqul? >'&5(*(,+-' ;('"(* 1% 9)(,?% @ I,+, $(&$ :1:)&:+, ($ 9:%&#$%$ 1,) (# $( +$ #%&$)J( 1:): :";7#$% 1$), &$%#$%+, $% !7$%&: E7$ $" !#!", $( +$ +$(:)),"", K ": $(!:($L +$ &#$91, !,% ": E7$ !,%&:9,( B$ +$!#+#+, 1:(:) : ": #%(&:":!#<% :7&,9D&#!: K :(M :B,)):) &#$91,8 -:): (:"&:)&$ $(&: 1:)&$ +$ ": +,!79$%&:!#<% B:L !"#!N :E7M8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Puru descurgur Auche lo rlmero es lr u su glnu web uru comrobur cul es lu ultlmu verslon estuble ubllcudu. No debes descurgur lus verslones en fuse betu. Ln el momento de creur este documento, lu ultlmu verslon estuble es lu z.z.zz Ln estu dlrecclon se encuentru lu documentuclon oflclul de Auche z.z Lu formu ms fcll de lnstulur Auche ero que te llmltu mucho u lu horu de eleglr oclones y conflgururlo es sudo apt-get install apache2 O,(,&),( %, 7(:)$9,( $(&: ,1!#<% orque queremos urender u comllur el servldor. Ms udelunte, cuundo vuyumos u conflgurur el servldor utlllzuremos unu verslon lnstuludu de estu formu. Unu vez subemos que verslon es, yu odemos descurgur los uquetes. vumos u lnstulur Auche desde el codlgo fuente yu que es lo recomendudo or lu rolu orgunlzuclon. Como uso revlo vumos u creur un dlrectorlo uru descomrlmlr el codlgo fuente desues de descurgurlo. mkdir -p /usr/local/src/webserver Unu vez hemos hecho esto deberlumos comrobur que el dlrectorlo este vuclo yu que con lu oclon - creu los udres sl no exlsten ero no du error sl el dlrectorlo yu exlstlu. cd /usr/local/src/webserver ls -la Ahoru odemos roceder u descurgur los urchlvos wget http://apache.rediris.es/httpd/httpd-2.4.6.tar.gz 43 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Puru luego comrobur que se hu descurgudo correctumente debemos obtener unu sulldu urecldu u estu, obvlumente con los dutos de lu verslon que usemos. --2012-07-17 13:02:46-- http://apache.rediris.es/httpd/httpd-2.2.22.tar.gz Resolviendo apache.rediris.es (apache.rediris.es)... 130.206.1.5 Conectando con apache.rediris.es (apache.rediris.es)[130.206.1.5]:80... conectado. Peticin HTTP enviada, esperando respuesta... 200 OK Longitud: 7200529 (6,9M) [application/x-gzip] Grabando a: httpd-2.2.22.tar.gz 100%[======================================>] 7.200.529 363K/s en 14s 2012-07-17 13:03:01 (492 KB/s) - httpd-2.2.22.tar.gz guardado [7200529/7200529] Ls muy lmortunte comrobur que hemos hecho todo en el dlrectorlo creudo uru ello. Ahoru debemos descomrlmlr el codlgo tar zxpf httpd-2.4.6.tar.gz Y comrobumos que exlste el dlrectorlo. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj F%(&:":) C1:!B$ Euy muchus munerus de lnstulur Auche. Se ueden eleglr modulos, conflguruclon y rutus. Nosotros vumos u usur unu que utlllzu LSC (Lynumlc Shured Cbjects). Lsto es unu conflguruclon de Auche que ermlte unudlr luego modulos sln necesldud de recomllur todo el servldor. Puru nuestro curso es vltul. Ll unlco ero es un descenso cusl lmercetlble del rendlmlento or lo que consldero muy recomenduble usur este metodo. Adems vumos u uctlvur un ur de modulos. Ms udelunte estudluremos uru que slrven. Lo rlmero es movernos ul dlrectorlo donde estn los urchlvos con el codlgo fuente cd /usr/local/src/webserver/httpd-2.2.22 Ahoru vumos u borrur revlus comlluclones de Auche que hublerumos hecho. Como en nuestro cuso es lu rlmeru nos dur un error make distclean Ahoru yu odemos conflgurur lu lnstuluclon como querumos nosotros ./configure --prefix=/www --enable-shared=max --enable-wmodule=rewrite --enable-module=so Ll refljo es el dlrectorlo donde se lnstulur. Se uede conflgurur cuulquleru, ero nosotros usuremos uno llumudo www en lu rulz. Lo dems son uctlvuclones de modulos uru oder usur LSC. Ahoru comllumos los y construlmos el lnstuludor de nuestro servldor make y desues lo lnstulumos make install Ahoru vumos u creur dos enluces uru oder usur los comundos de Auche desde cuulquler lugur 46 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ln -s /www/bin/apachectl /usr/bin/apachectl ln -s /www/bin/apachectl /usr/sbin/apachectl Yu odemos urruncur Auche apachectl start Ahoru ubrlmos el nuvegudor web y curgumos lu glnu uru ver que todo hu ldo blen. Lscrlblmos htt:jjloculhost y debemos encontrur lu glnu que one "lt vorks!' Podemos udems colocur ulgun urchlvo E1ML y comrobur que se muestru. Puru ello lremos u htt:jjloculhostjnombre_urchlvo.html Conflguru e lnstulu Auche en tu mqulnu vlrtuul slgulendo los usos lndlcudos y comruebu el ucceso desde lu mqulnu vlrtuul y desde lu mqulnu unfltrlon. P:!$) C1:!B$ :7&, :)):%!:6"$ Lo rlmero que huremos ser creur un urchlvo en lu curetu de scrlts de lnlclo. sudo gedit /etc/init.d/apache2 en el urchlvo, eseclflcumos que hubr que hucer en los cusos de urrunque, urudu y relnlclo del slstemu. #!/bin/sh case "$1" in start) -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj echo "Arrancando Apache ..." # Si has instalado Apache en otra ruta, pon la correcta /www/bin/apachectl start ;; stop) echo "Deteniendo Apache ..." # Si has instalado Apache en otra ruta, pon la correcta /www/bin/apachectl stop ;; graceful) echo "Reiniciando Apache suavemente" # Si has instalado Apache en otra ruta, pon la correcta /www/bin/apachectl graceful ;; restart) 4K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu echo "Reiniciando Apache ..." # Si has instalado Apache en otra ruta, pon la correcta /www/bin/apachectl restart ;; esac exit 0 Lchu un vlstuzo ul scrlt y sl no entlendes ulgo consultulo en lnternet rlmero y luego ul rofesor. Que es gruceful? uru que se usu uqul? Ahoru es necesurlo que cumblemos los ermlsos del urchlvo uru oder ejecuturlo sudo chmod u+x /etc/init.d/apache2 Ll ultlmo uso es unudlr Auche u lus tureus de urrunque del slstemu. sudo update-rc.d apache2 defaults Ln cuso de que qulslerumos hucer que dejuru de urruncur uutomtlcumente ul lnlclur el slstemu sudo update-rc.d -f apache2 remove 1en en cuentu que esto no ellmlnu el scrlt, solo el hucerlo uuto urruncuble. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj uhoru urruncumos uuche (slgue funclonundo el comundo de untes. apachectl start y odemos relnlclur lu mqulnu. 1umblen funclonurlu uhoru lnvocur ul scrlt uru lnlclur, urur, relnlclur, etc. lu mqulnu. Pongo todus lus ordenes juntus orque creo que es cluro. sudo /etc/init.d/apache2 start sudo /etc/init.d/apache2 stop sudo /etc/init.d/apache2 restart sudo /etc/init.d/apache2 graceful Euz que tu servldor con Auche urrunque uutomtlcumente ul lnlclur lu mqulnu. 4F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu lnstulur un servldor con LAMP Ahoru vumos u emezur con unu %7$*: 9DE7#%: *#)&7:" u lnstulur un servldor con Auche, MySQL y PEP yu que como hemos comentudo es lu oclon ms hubltuul. Nl MySQL nl PEP son necesurlos uru montur un servldor de ullcuclones web. Lstu vez vumos u hucerlo con lu oclon ms fcll uru ver dlferentes lnstuluclones. Ln el cultulo slgulente veremos lus conflguruclones necesurlus uru usegurur nuestro servldor. Puru usectos de muyor segurldud en MySQL y PEP consultu los modulos del clclo ul resecto. Lo rlmero es descurgur e lnstulur tusksel. sudo apt-get install tasksel Luego lnstulumos dlrectumente todo el uquete y segulmos lus lnstrucclones. sudo tasksel install lamp-server Puru robur Auche slmlemente ubrlmos el nuvegudor y consultumos loculhost. Puru robur PEP, creumos un urchlvo ruebu.h que solo contengu "<?h hlnfo(), ?>' Puru robur MySQL odemos usur cuulquler metodo: conecturnos, lnstulur PEPMyAdmln, etc. Sl queremos lnstulur PEPMyAdmln escrlblmos apt-get install phpmyadmin -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj y luego curgumos htt:jjloculhostjhmyudmln Ll dlrectorlo en el que se hu lnstuludo Auche es /etc/apache2 Colu unu nuevu mqulnu vlrtuul e lnstulu el servldor LAMP. Pruebu el correcto funclonumlento de todo. 6M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Servldores de Allcuclones Un servldor de ullcuclones es un uquete softwure que roorclonu servlclos u lus ullcuclones como ueden ser segurldud, servlclos de dutos, soorte uru trunsucclones, bulunceo de curgu y gestlon de slstemus dlstrlbuldos. Ll termlno se ucuno uru servldores de lu lutuformu 'uvu en su verslon Lnterrlse Ldltlon, ero en lu uctuulldud se extlende u muchus otrus tecnologlus. Nosotros nos centruremos en 1omcut, un servldor de ullcuclones 'uvu creudo or Auche. Lxlsten muchos otros como lu lntegruclon de .NL1 en servldores de Mlcrosoft, lntegruclon de PEP en un servldor uru tener servldores de ullcuclones PEP, 2end Server, tumblen uru PEP, 8urrucudu, vebLoglc de l8M, etc. Auche 1omcut es un servldor de ullcuclones creudo uru ulojur Servlets y 'uvu Server Puges ('SP). 1omcut es grutulto y de codlgo ublerto ero no tlene nudu que envldlur u otrus soluclones comerclules. Lu verslon que usuremos nosotros es lu ,. Ll funclonumlento de un servldor de ullcuclones necesltu de un servldor web. Muchus veces vlenen en el mlsmo uquete, ero reulmente son dos urtes dlferencludus. Cuundo un cllente huce unu etlclon ul servldor web, este trutu de gestlonurlo, ero huy muchos elementos con los que no sube que hucer. Aqul entru en juego el servldor de ullcuclones, que descurgu ul servldor web de lu gestlon de determlnudos tlos de urchlvo, en nuestro cuso servlets y 'SP. Sl un cllente huce unu etlclon ul servldor ldlendo un 'SP, estu llegu ul servldor veb que lee un urchlvo ML que le roorclonu el servldor de ullcuclones y determlnu que el urchlvo lo gestlonur el servldor de ullcuclones. Ln el urchlvo ML tumblen se lncluye lu dlrecclon del servldor de ullcuclones y el servldor web le envlu lu etlclon medlunte E11P. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj =3'5%'%132%& Ll termlno .01:&1&-08 es otro bustunte umblguo como yu nos sucedlo con '&8>*-08. Ln muchos cusos se usu uru referlrse ul rolo servldor de ullcuclones e lncluso ul servldor web. Sln emburgo, lu uceclon ms extendldu es otru. Euy que tener en cuentu que los concetos de los que estumos hublundo surgleron rlnclulmente de 'zLL. Los contenedores en los servldores de ullcuclones son unu formu de ulslur lu ejecuclon de cudu ullcuclon o de cudu #%(&:%!#: de unu ullcuclon del resto de lnstunclus y de otrus ullcuclones. Puru cudu ejecuclon roorclonun segurldud, soorte uru trunsucclones, conexlon remotu y lu gestlon de los recursos reclsos uru lu ejecuclon de lu ullcuclon. Ln referenclu u lu lmugen unterlor, convlene concretur ulgunos concetos: ! Ll servldor 'zLL es el rogrumu que roorclonu contenedores L'8 y veb. ! Ll contenedor Lnterrlse 'uvu8euns (L'8) se encurgu de lu ejecuclon de los L'8s. ! Ll contenedor web se encurgu de lu ejecuclon de servlets y 'SPs. 63 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ! Ll contenedor del cllente de lu ullcuclon encurgu de lu ejecuclon de los comonentes de lus ullcuclones en lu mqulnu del cllente. ! Ll contendor de ulets se encurgu de ejecutur los ulets en el cllentes. Lst comuesto or un nuvegudor web y un lugln 'uvu. Los contenedores de 1omcut se denomlnun Cutullnu. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 1omcut 1omcut es un servldor de ullcuclones que uede funclonur or sl mlsmo. Le hecho es cuuz de rocesur etlclones en E11P y servlr urchlvos E1ML con bustunte eflclenclu, ero no tun blen como lo huce Auche. Cenerulmente sl lo que queremos es un servldor web con funclonulldud udlclonul lo mejor es dlsoner de umbos servldores trubujundo conjuntumente, ero uru cusos donde cusl todo vu u ser loglcu en juvu con 1omcut funclonundo uutonomumente es suflclente. Ln este rlmer ucercumlento u 1omcut lo lnstuluremos en unu mqulnu vlrtuul nuevu. Ms udelunte veremos como lntegrurlo con Auche uru que cudu cuul se encurgue de hucer lo que gestlonu mejor. Ln ese cuso, Auche reclblr todus lus etlclones y envlur u 1omcut lo que le corresondu u el. Ln unu mqulnu vlrtuul de 'uvu solo uede ejecuturse unu lnstunclu de 1omcut. Que huce lu mqulnu vlrtuul de 'uvu? Ln que se dlferenclu de lus mqulnus vlrtuules que se creun con rogrumus como Crucle vlrtuul 8ox o vMwure? >'&5(*('13 A(7( Lxlsten dos verslones de 'uvu muy extendldus en entornos Llnux. Unu es lu oflclul de Crucle y lu otru se denomlnu Cen'Ll y es un verslon de codlgo ublerto. Q1$%R?S Lstu verslon es muy recomenduble cuundo se vu u utlllzur con otros slstemus de codlgo ublerto o de softwure llbre or lo que nosotros 7(:)$9,( $(&: #%(&:":!#<%. Actuullzumos los reosltorlos e lnstulumos 'uvu 66 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu sudo apt-get update sudo apt-get install openjdk-7-jdk comrobumos lu verslon de 'uvu java -version lo que deberlu mostrur ulgo como java version "1.7.0_09" OpenJDK Runtime Environment (IcedTea7 2.3.3) (7u9-2.3.3-0ubuntu1~12.04.1) OpenJDK Client VM (build 23.2-b09, mixed mode, sharing) Euy que estublecer lus vurlubles de entorno de 'uvu sudo gedit /etc/environment Y unudlmos ul rlncllo lus rutus de lnstuluclon de 'uvu: el rlmero es el dlrectorlo donde estn juvu y juvuc y el segundo el de jre. JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 JRE_HOME=/usr/lib/jvm/java-7-openjdk-i386/jre Y en el mlsmo urchlvo unudlmos ul flnul del uth :$JAVA_HOME:$JRE_HOME -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Ll urchlvo entero deberlu quedur urecldo u esto: JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 JRE_HOME=/usr/lib/jvm/java-7-openjdk-i386/jre PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME:$JRE_HOME" Aunque no es estrlctumente necesurlo, relnlclumos lu mqulnu vlrtuul. R:*: +$ Q):!"$ 1omcut es un servldor de ullcuclones rogrumudus en 'uvu or lo que untes de lnstulur 1omcut, debemos tener 'uvu lnstuludo y funclonundo. Lo rlmero es unudlr unos reosltorlos que contlenen el lnstuludor de 'uvu sudo add-apt-repository ppa:webupd8team/java Actuullzumos el softwure de los reosltorlos con sudo apt-get update Puru luego lnstulur 'uvu sudo apt-get install oracle-java7-installer Podemos comrobur que tengumos funclonundo lu verslon correctu java -version 6K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lebe uurecer en untullu ulgo slmllur u esto: java version "1.7.0_05" Java(TM) SE Runtime Environment (build 1.7.0_05-b05) Java HotSpot(TM) Client VM (build 23.1-b03, mixed mode) Por ultlmo, odemos comrobur el correcto funclonumlento yendo u htt:jjwww.juvu.comjesjdownloudjlnstulled.js en el nuvegudor web. Ahoru huy que estublecer lus vurlubles de entorno uru que 1omcut uedu encontrur 'uvu. Puru ello edltumos el urchlvo &1>*801@&1: sudo gedit /etc/environment Y unudlmos ul rlncllo lus rutus de lnstuluclon de 'uvu: el rlmero es el dlrectorlo donde estn juvu y juvuc y el segundo el de jre. JAVA_HOME=/usr/lib/jvm/java-7-oracle/ JRE_HOME=/usr/lib/jvm/java-7-oracle/jre/ Y en el mlsmo urchlvo unudlmos ul flnul del uth :$JAVA_HOME:$JRE_HOME Ll urchlvo entero deberlu quedur urecldo u esto: JAVA_HOME=/usr/lib/jvm/java-7-oracle/ JRE_HOME=/usr/lib/jvm/java-7-oracle/jre/ , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME:$JRE_HOME" Aunque no es estrlctumente necesurlo, relnlclumos lu mqulnu vlrtuul. >'&5(*(2 9)(,?% B3;,(5 Como comentumos en lu lnstuluclon munuul, es necesurlo tener 'uvu lnstuludo y conflgurudo uru el correcto funclonumlento de 1omcut. Los usos son los mlsmos que yu vlmos. Ahoru lnstulumos 1omcut sudo apt-get install tomcat7 OQIC: Ln ulgunos cusos, 1omcut no vu u funclonur hustu que no conflguremos lus vurlubles de entorno como se exllcu u contlnuuclon. Ahoru odemos ubrlr un nuvegudor web y ucceder u htt:jjloculhost:8c8c Nos muestru lu slgulente untullu en lu que es muy lmortunte el slgulente rrufo: P0@./:5 >&:&8/1' @*+N: 2& ()&/'&- :0 )&/81 :N/: :N*' 'H':&@ *1':/1.& 0< 6F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu P0@./: *' *1':/))&- D*:N 9"P"\Le"^T]WU *1 f,'8f'N/8&f:0@./:5 /1- 9"P"\Le"^b"7U *1 f>/8f)*2f:0@./:5d <0))0D*1+ :N& 8,)&' <80@ f,'8f'N/8&f-0.f:0@./:5g .0@@01f[SeeLeh=:`:=+V= Ln el que nos lndlcun lu ublcuclon de dos vurlubles de entorno muy necesurlus en lu conflguruclon y uso de 1omcut. Ln lu lnstuluclon munuul, umbus uunturlun ul dlrectorlo en el que descomrlmlmos 1omcut. vumos u estublecerlus como vurlubles de entorno: sudo gedit /etc/environment en el unudlmos (u contlnuuclon de lus de 'uvu) CATALINA_HOME=/usr/share/tomcat7 CATALINA_BASE=/var/lib/tomcat7 Y lus unudlmos ul uth, quedurlu como slgue: JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 JRE_HOME=/usr/lib/jvm/java-7-openjdk-i386/jre CATALINA_HOME=/usr/share/tomcat7 CATALINA_BASE=/var/lib/tomcat7 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME:$JRE_HOME: $CATALINA_HOME:$CATALINA_BASE" LANGUAGE="es:en" LANG="es_ES.UTF-8" -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj LC_NUMERIC="es_ES.UTF-8" LC_TIME="es_ES.UTF-8" LC_MONETARY="es_ES.UTF-8" LC_PAPER="es_ES.UTF-8" LC_IDENTIFICATION="es_ES.UTF-8" LC_NAME="es_ES.UTF-8" LC_ADDRESS="es_ES.UTF-8" LC_TELEPHONE="es_ES.UTF-8" LC_MEASUREMENT="es_ES.UTF-8" CA1ALlNA_ECML lndlcu el dlrectorlo de lnstuluclon de 1omcut. CA1ALlNA_8ASL lndlcu el dlrectorlo de unu lnstunclu de 1omcut. Sl tenemos ms de unu lnstunclu, CA1ALlNA_8ASL ser dlferente uru cudu unu. Ln ulgunus lnstuluclones (uunque no en estu) umbus vurlubles de entorno uuntun ul mlsmo dlrectorlo. Relnlclumos lu mqulnu uru que lus vurlubles se curguen. Ll urchlvo que curgu 1omcut or defecto es f>/8f)*2f:0@./:5fD&2/(('f[]]Pf*1-&`=N:@) 1omcut est lnstuludo en f&:.f:0@./:5 Como odemos ver estu verslon de 1omcut yu lo lnstulu como servlclo y huce que se lnlclu uutomtlcumente ul encender lu mqulnu. Ll urchlvo donde est conflgurudo esto es mucho ms comlejo que el que hlclmos nosotros en lu lnstuluclon munuul, uedes consulturlo en RM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu gedit /etc/init.d/tomcat7 >'&5(*('13 )(C"%5%& (1+,+3'(*%& Yu tenemos 1omcut lnstuludo y funclonundo, ero como udlmos leer en lu glnu de lnlclo or defecto de 1omcut, no se hun lnstuludo nl lu documentuclon, nl los ejemlos nl lu ullcuclon de udmlnlstruclon. Ln un servldor de roducclon estu uede ser lu conflguruclon correctu, ero uru nuestro rooslto dldctlco es muy recomenduble lnstulur los uquetes. sudo apt-get install tomcat7-docs sudo apt-get install tomcat7-examples sudo apt-get install tomcat7-admin Ahoru odemos ucceder u cudu uno de ellos medlunte el corresondlente enluce de lu glnu de lnlclo. lnstulu 1omcut y los uquetes udlclonules en un mqulnu vlrtuul nuevu. Yu he comentudo untes como vlene uureclendo en lus notlclus tecnologlcus que 'uvu en lnseguro en lu red y que se debe desuctlvur en los nuvegudores. Lsto uede urecer el fln de 'uvu, ero. desuctlvu 'uvu en tu nuvegudor y ruebu u ejecutur los ejemlos que ucubumos de lnstulur y uhoru que? Sl lnchus en el enluce que uurece uru ver el codlgo de un ejemlo vers que contlene codlgo ero sl muestrus el codlgo de lu glnu resultunte de ejecutur el ejemlo en el nuvegudor odrs observur que no, que lndlcu esto? -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj D&"(2+3& 1% B3;,(5 Lo rlmero es conflgurur los usuurlos de 1omcut. Puru ello debemos edltur el urchlvo :0@./:g,'&8'=`@) que est en el dlrectorlo .01< sudo gedit /etc/tomcat7/tomcat-users.xml Lo que estumos huclendo es unudlr un usuurlo udmlnlstrudor usl que el flchero, en lu urte flnul deberlu quedur urecldo u lo slgulente, con el nombre de usuurlo y contrusenu que querumos, or suuesto. <tomcat-users> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="admin"/> <user username="sergio" password="sergio" roles="manager-gui,admin-gui,manager,admin,manager- script,admin-script"/> </tomcat-users> R3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Con este usuurlo y contrusenu que yu hemos creudo odemos curgur el munuger, desde lu glnu de lnlclo de 1omcut o dlrectumente desde htt:jjloculhost:8c8cjmunugerjhtml Se recomlendu robur ejemlos de 1omcut uru ver que todo vuyu blen slgulendo el enluce en lu glnu rlnclul o en htt:jjloculhost:8c8cjexumlesj >'+,+(2 4 )(2(2 B3;,(5 Puru lnlclur 1omcut usuremos sudo /etc/init.d/tomcat7 start sudo /etc/init.d/tomcat7 stop sudo /etc/init.d/tomcat7 restart segun lo que querumos hucer. Sl qulslerumos que funclonuru como servlclo, serlu: sudo service tomcat7 start y uru ururlo sudo service tomcat7 stop -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj >'&5(*('13 B3;,(5 1% E32;( ;('"(* C" #;7:" E7$ !,% ": #%(&:":!#<% +$ C1:!B$4 ($ ,9#&$ $(&: ,1!#<% 1,) $" 1,!, &#$91, +#(1,%#6"$4 ($ 9:%&#$%$ :E7M 1,) (# :";7#$% E7#$)$ !,%(7"&:)", 1$), %, ($ #91:)&#)D8 Ahoru yu estumos llstos uru lnstulur 1omcut. Creumos el dlrectorlo y nos movemos u el. mkdir -p /opt/tomcat cd /opt/tomcat/ Ahoru descurgumos 1omcut. 1en en cuentu que lu dlrecclon slgulente vu cumblundo u medldu que sulen nuevus verslones de 1omcut. Sl no se encuentru lo mejor es en un nuvegudor web lr u htt:jjuuche.redlrls.esjtomcutjtomcut,j y buscur el urchlvo equlvulente con lus nuevus verslones. wget http://apache.rediris.es/tomcat/tomcat-7/v7.0.34/bin/apache-tomcat-7.0.34.tar.gz y lo descomrlmlmos tar zxpf apache-tomcat-7.0.34.tar.gz -C /opt A veces 1omcut no reconoce lus vurlubles de entorno de 'uvu que unudlmos en el unto unterlor. Unu formu de usegururnos de que lus encuentru es unudlrlos en el urchlvo ./:/)*1/='N que est en el dlrectorlo de 1omcut en lu curetu bln. sudo gedit /opt/apache-tomcat-7.0.34/bin/catalina.sh Yu unudlmos lus dos vurlubles detrs de lu rlmeru llneu. Ll urchlvo quedur urecldo u esto. LS1C NC LS NLCLSARlC, SCLC LN CASC LL QUL NC LAS LLA LL C1RA lCRMA: #!/bin/sh R6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu JAVA_HOME=/usr/lib/jvm/java-7-oracle/ JRE_HOME=/usr/lib/jvm/java-7-oracle/jre/ #... #... #... vumos u creur los enluces uru oder urruncur y urur 1omcut con ms fucllldud ln -s /opt/apache-tomcat-7.0.34/bin/startup.sh /usr/bin/tstartup ln -s /opt/apache-tomcat-7.0.34/bin/shutdown.sh /usr/bin/tshutdown Ln este unto y &):( :)):%!:) I,9!:& odemos robur sl funclonu yendo u htt:jjloculhost:8c8cj en el nuvegudor veb. Yu tendrlumos lnstuludo 1omcut, ero huy un ur de cosus que debemos hucer untes de termlnur todo. F(,%2 B3;,(5 ("53 (22(',(/*% Lo rlmero que huremos ser creur un urchlvo en lu curetu de scrlts de lnlclo. sudo gedit /etc/init.d/tomcat7 en el urchlvo, eseclflcumos que hubr que hucer en los cusos de urrunque, urudu y relnlclo del slstemu. # autoarranque de Tomcat -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj case $1 in start) sh /opt/apache-tomcat-7.0.34/bin/startup.sh ;; stop) sh /opt/apache-tomcat-7.0.34/bin/shutdown.sh ;; restart) sh /opt/apache-tomcat-7.0.34/bin/shutdown.sh sh /opt/apache-tomcat-7.0.34/bin/startup.sh ;; esac exit 0 Ahoru es necesurlo que cumblemos los ermlsos del urchlvo uru oder ejecuturlo RK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu sudo chmod 755 /etc/init.d/tomcat7 Ll ultlmo uso es creur dos enluces slmbollcos uru enluzur reulmente el urchlvo con lus curetus de lnlclo. sudo ln -s /etc/init.d/tomcat7 /etc/rc1.d/K99tomcat sudo ln -s /etc/init.d/tomcat7 /etc/rc2.d/S99tomcat Cuundo hlclmos Auche uuto urruncuble este ultlmo uso lo hlclmos de muneru dlferente. Lsu muneru es ms uctuul y comodu, ero he lncluldo lu unterlor como unu muestru yu que no todos los slstemus UNl y derlvudos lncluyen lu otru. Le cuulquler formu tumblen odrlumos usurlu en este cuso: sudo update-rc.d tomcat7 defaults Puru qultur el servlclo sudo update-rc.d -f tomcat7 remove lnstulu 1omcut en unu mqulnu vlrtuul nuevu ero en lu curetu jvurjtomcut. Euz que urrunque uutomtlcumente cudu vez que se lnlclu lu mqulnu y ruebu el ucceso desde dentro y desde fueru de lu mqulnu vlrtuul. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Allcuclones web Unu ullcuclon web se dlferenclu de unu estndur en que se uccede u ellu u truves de unu red como lnternet o unu lntrunet or ejemlo. Ln muchos cusos es unu ullcuclon que se escrlbe en lenguujes soortudos or los nuvegudores web (or ejemlo 'uvuscrlt E1ML) y que necesltu de un nuvegudor web uru ejecuturse. Ll ejemlo ms senclllo que se nos ocurre de unu ullcuclon web es un rogrumu que ermltu ucceder u dutos de unu emresu desde el exterlor de estu. Aqul yu quedu utente el rlnclul roblemu que tlenen lus ullcuclones web: lu ($;7)#+:+. Muchus veces el roblemu es lu necesldud de encontrur un comromlso entre lu segurldud y lu eflclenclu en lu ullcuclon, demusludu segurldud uede rulentlzur el uso, uumentur el trflco, etc. Lus rlnclules +$(*$%&:T:( de este tlo de ullcuclones son lus que se derlvun del uso de unu red y del ucceso slmultneo de vurlos (u veces muchos) usuurlos. Lus rlnclules *$%&:T:( son el oder usur un nuvegudor web como cllente (ulgo de lo que dlsonen todos los ordenudores en lu uctuulldud) y lu slmllflcuclon de lus uctuullzuclones or no tener que uctuullzur los ordenudores uno u uno. vumos u concretur un oco ms: U$%&:T:(: ! No es necesurlo nlngun tlo de dlstrlbuclon, lnstuluclon o uctuullzuclon comlejo de lu ullcuclon. Slmlemente el uso de un nuvegudor comutlble nos ermltlr usur lu ullcuclon. Muchus veces se creu lu ullcuclon uru un unlco nuvegudor web lo que en ml olnlon es un error. No es necesurlo cubrlr todo el esectro ero dur ul menos dos o tres oclones serlu recomenduble. ! No se necesltun mqulnus cllentes eseclulmente otentes. Prctlcumente cuulquler ordenudor en lu uctuulldud es cuuz de ejecutur un nuvegudor web. Sl lu ullcuclon es ms esudu en el cllente se ueden necesltur recursos un oco ms ultos. ! Son fclles de lntegrur con otrus funclonulldudes de servldor como el correo electronlco. ! Cenerulmente ermlten ellmlnur los roblemus derlvudos del uso de dlferentes lutuformus lnformtlcus (urqultecturus, slstemus oerutlvos, etc.). ! Ll uso de E1ML uumentu mucho lu funclonulldud que uede ejecuturse nutlvumente en un nuvegudor web. ?$(*$%&:T:(: ! Cenerulmente lus lnterfuces de usuurlo de lus ullcuclones web son menos lntultlvus y tlenen un comortumlento eor que lus clslcus. RF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ! Lus tecnologlus web son muy dlnmlcus y cumbluntes or lo que odemos usur ulgunu funclonulldud que desuurezcu o se modlflque drstlcumente obllgndonos u rehucer lu lnterfuz (llush en un futuro no muy lejuno?) ! Lu uusenclu de estndures en urchlvos "de oflclnu' uede dlflcultur el comurtlr dutos e lnformuclon. ! Leenden totulmente del correcto funclonumlento de lu red (lnternet yjo lntrunet). ! Lesde el unto de vlstu de un usuurlo es reocuunte lu rlvucldud y segurldud de sus dutos. Uno de los rlmeros ejemlos de esto es el correo web, ero en lu uctuulldud todus lus ullcuclones de Coogle y muchus otrus como lucebook controlun ubsolutumente todo lo que huces or lo que lu uusenclu de rlvucldud es notuble. Lu llstu de ventujus y desventujus vlstu es un oco umblguu. Puru cudu cuso lensu en lo que lmllcu lu uflrmuclon e lntentu buscur un ejemlo que suongu unu exceclon. Como yu hemos comentudo untes unu de lus rlnclules reocuuclones u lu horu de desurrollur unu ullcuclon web debe ser lu segurldud. Ln muchos cusos se deben roteger tunto #%=,)9:!#<% !)M&#!: +$ ": $91)$(: como los +:&,( 1)#*:+,( +$ ",( 7(7:)#,(. A lu horu de lmlementur lu segurldud de unu ullcuclon web debemos tener en cuentu clnco reus: ! Lu :7&$%&#=#!:!#<% de los usuurlos: el uso de un metodo efectlvo uru usegurur que se conecten los usuurlos uutorlzudos y dlflcultur lu suluntuclon de ldentldudes es ulgo rlmordlul. Ls unu ullcuclon ublertu u todo el mundo? se ueden reglstrur los usuurlos or sl mlsmos? ! Lu :7&,)#L:!#<% de cudu usuurlo: muchus veces deben exlstlr dlferentes tlos de usuurlos y no todos los usuurlos deben oder ucceder u todos los dutos o reullzur todus lus oeruclones (consultu, lnserclon, modlflcuclon o ellmlnuclon) sobre los dutos. Lu ldentlflcuclon y creuclon de dlferentes roles es un usecto u tener en cuentu desde lus rlmerus etuus de dlseno de lu ullcuclon. ! Lu ;$(&#<% +$ ",( )$!7)(,(: es necesurlo roteger los dutos tunto cuundo se encuentrun en lu buse de dutos como cuundo se encuentrun en trnslto entre lu mqulnu cllente y el servldor. Cenerulmente se evltun lus conexlones dlrectus de formu remotu (en unu red ublertu) u lu buse de dutos. Adems es muy lmortunte lu encrltuclon de los dutos tunto en lu buse de dutos como en lus comunlcuclones. Los dutos se utlllzun como ejemlo de recurso, ero es ullcuble u otros tlos. ! Lu $%&):+: +$ +:&,(: otro usecto u tener en cuentu es que uede escrlblr el usuurlo en cudu unto de entrudu de dutos. Cuunto ms llmltemos los curucteres y tlo de entrudu que uedun reullzur los usuurlos ms fcll ser lmedlr que lu gente uccedu u untos no deseudos de nuestru ullcuclon e lncluso u otrus ullcuclones de lu mlsmu red. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj ! C7+#&,)M:( K )$;#(&),(: Puru oder controlur y correglr lus brechus en lu segurldud es muy lmortunte oder suber que hu usudo. Por ello debemos tener metodos de reglstro (or ejemlo urchlvos )0+) de todo lo que sucedu en nuestru ullcuclon. Ll tumuno de los urchlvos debe ermltlrnos revlsur sltuuclones de huce bustunte tlemo yu que muchus veces un ugujero en lu segurldud turdu en detecturse. Aunque no conocemos como ufrontur cudu roblemu en detulle, yu deberlumos tener conoclmlentos como uru lunteur soluclones uru lus reus dellcudus que ucubumos de ver. Comentu un escenurlo que controle los roblemus generudos en cudu reu. Puru controlur todos estos roblemus huy dos )$!,9$%+:!#,%$( bslcus: ! -)7$6:(: cuunto ms robemos unu ullcuclon menos fullos tendr. Sl lu ullcuclon no es muy equenu, es rctlcumente lmoslble evltur todos los ugujeros de segurldud ero huy que lntentur mlnlmlzurlos. Lo ldeul es tener unu ersonu o un equlo que seun lo que hucen lntentundo utucur lu ullcuclon. Lste es el motlvo or el que muchos huckers hun termlnudo trubujundo uru comunlus muy otentes. ! Usu un murco de trubujo (V):9$A,)N): Sl tenemos un equlo de trubujo no queremos que cudu mlembro "hugu lu guerru or su ludo'. 1odos los lntegruntes deben usur uno o vurlos metodos comunes uru gestlonur lu segurldud de lu ullcuclon. Un murco comun mejorur enormemente lu segurldud de lu ullcuclon. Un murco de trubujo uru ullcuclones web debe tener en cuentu los slgulentes usectos: erslstenclu de dutos, gestlon de seslones y uutentlcuclon de usuurlos, segurldud, uso de cuches, uso de luntlllus (con tlos de dutos, etc.) e lnclulr unu lnterfuz de udmlnlstruclon. Aunque escuu ul contenldo del curso, en estu glnu uedes consultur estos usectos sobre los frumeworks de ullcuclones web y ver unu llstu con muchos de ellos. G&52",5"2( Lu estructuru de unu ullcuclon web es $E7#*:"$%&$ : ": +$ 7% ($)*#+,) A$6 como vlmos ul rlncllo del temu. Lu ullcuclon debe funclonur en todos los nlveles or lo que tendremos unu estructuru en cuus. Lu ms comun es en tres cuus (uunque lu del medlo uede estur subdlvldldu como yu comentumos): resentuclon, ullcuclon y dutos. KM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Ctru formu de ver unu ullcuclon web es en dos cuus: el cllente y el servldor. Leendlendo de donde se reullzu lu muyor urte del trubujo lu ullcuclon ser de cllente o de servldor esudo. Ln lu uctuulldud, con lu rollferuclon de dlsosltlvos con ocu cuucldud y otenclu (movlles, tubletus, netbooks, etc.) exlsten muchus ullcuclones esudus en el servldor, ero cuundo lu ullcuclon requlere muchu loglcu se tlende u dlstrlbulr el trubujo en los cllentes uru mejorur el rendlmlento. Lu estructuru de unu ullcuclon web tumblen se usu uru referlrse u lu +#(&)#67!#<% $% +#)$!&,)#,( de todos los elementos que comonen dlchu ullcuclon. Aunque ms udelunte volveremos sobre este unto es lmortunte enfutlzur que lu estructuru de dlrectorlos que usemos debe estur contenldu dentro de un unto de lnlclo y que no debe revelur usectos sobre lu dlstrlbuclon del resto de lu mqulnu. H%&,2+)532 1% 1%&)*+%I"% Ll descrltor de desllegue de unu ullcuclon web es un urchlvo de conflguruclon en el contenedor o servldor de ullcuclones. Ln 'zLL este urchlvo se escrlbe usundo slntuxls ML. Lescrlbe como un comonente, modulo o ullcuclon debe deslegurse eseclflcundo usectos como lu segurldud, lus oclones del contenedor y usectos de lu conflguruclon. Lxlste udems un descrltor de desllegue rolo de cudu servldor web. Por ejemlo en 1omcut, este otro descrltor se encuentru en <1CMCA1_ECML>jconfjweb.xml. Ln el cuso de lu lnstuluclon vlstu unterlormente est en jotjtomcutjuuchetomcut,.c.zj confjweb.xml. Sl estumos usundo un entorno de desurrollo (or ejemlo Lcllse) el descrltor de desllegue lo creu el rolo entorno, ero slemre es convenlente revlsurlo uru usegururnos de que utlllzu lus oclones que querumos. Puru lus ullcuclones web 'zLL debe llumurse web.xml y ublcurse en el dlrectorlo vL8_lNl en el dlrectorlo rulz de lu ullcuclon. Ll esquemu ul que debe ujusturse el descrltor de desllegue se uede consultur en lu glnu corresondlente de juvu. Podemos ver un buen ejemlo de desllegue de ullcuclon web uqul. 1en en cuentu que sl lnchus sobre unu etlquetu te mostrur unu breve exllcuclon de su uso. Se ueden consultur ejemlos ms comletos desues de lnstulur 1omcut en lus slgulentes rutus: ! <1CMCA1_ECML>jwebusjjsexumlesjvL8lNljweb.xml ! <1CMCA1_ECML>jserverjwebusjmunugerjvL8lNljweb.xml 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj vumos u royectur lu glnu vlstu untes y u dlscutlr sobre lu estructuru y dlferentes elementos del descrltor de desllegue que nos onen como ejemlo. Puru ello determlnu revlumente que lndlcu cudu unu de lus etlquetus de segundo nlvel (los hljos de <webu>) K3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 1emu z: Admlnlstruclon de servldores web 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Conflguruclon del servldor web Ln Auche, lu conflguruclon or defecto est en un urchlvo que se llumu N::(-=.01<. Al lnstulur Auche se creu un dlrectorlo conf donde tenemos ms urchlvos de ejemlo de conflguruclon. Eustu el nombre y lu rutu del urchlvo de conflguruclon en Auche se ueden cumblur. Ln lu lnstuluclon que hlclmos se encuentru en /etc/apache2/httpd.conf Antes de hucer nlngunu modlflcuclon sobre este urchlvo debemos hucer unu colu de segurldud del mlsmo (uqul vemos el del ejemlo ero es ullcuble u cuulquler urchlvo de conflguruclon). cd /etc/apache2/conf cp httpd.conf httpd.conf.old Ln el urchlvo de conflguruclon se lncluyen dlrectlvus uru el servldor y comenturlos. Los comenturlos son lus llneus que comlenzun or #. Ll servldor lgnoru todos los comenturlos y lus llneus en blunco usl que odemos usur umbos uru mejorur lu leglbllldud del urchlvo uru el udmlnlstrudor. Lo mejor es echur un vlstuzo ul urchlvo de conflguruclon gedit httpd.conf Lste urchlvo est vuclo orque nuestru lnstuluclon no lo utlllzu dlrectumente. Ls lmortunte conocerlo orque en unu lnstuluclon munuul o en ulgunu dlstrlbuclon en lu que no se huyu modlflcudo lu conflguruclon ser el urchlvo u revlsur. Sl ruebus u buscur el urchlvo N::(-=.01< del servldor LAMP que lnstulumos vers que tumblen est vuclo. Sln emburgo en nuestru dlstrlbuclon, el urchlvo rlnclul de conflguruclon es /(/.N&3=.01< K6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu gedit apache2.conf Ll urchlvo contlene dlrectlvus uru el servldor en sl mlsmo: donde estur el dlrectorlo que contendr los documentos web (or ejemlo urchlvos E1ML), que modulos se curgurn, etc. 1umblen uede contener lnformuclon sobre hosts vlrtuules, ero eso lo veremos un oco ms udelunte. Lo lmortunte uhoru es ver que hu usudo con lu conflguruclon. Sl vumos ul flnul del urchlvo veremos unus dlrectlvus L1.),-& que uuntun u otros flcheros o dlrectorlos. Lstu dlstrlbuclon de Auche z utlllzu unu dlvlslon de lu conflguruclon en dlferentes urchlvos uru mejorur lu orgunlzuclon. lnvestlgu y exllcu el uso redeturmlnudo de cudu uno de los urchlvos de conflguruclon que uurecen en /(/.N&3=.01<, lncluyendo este mlsmo. No huce fultu que urendus el uso de cudu uno, solo que uedus deflnlr en unu llneu o dos el rooslto de cudu urchlvo. Un grun cumblo que se rodujo en Auche z es lu lntroducclon de los 9<+7",( 97"),!$(, (Multlrocesslng modules o MPMs). Eustu lu verslon . Auche funclonubu con un slstemu "refork' en el que un roceso creubu rocesos hljo uru utender lus etlclones y el slmlemente se encurgubu de monltorlzurlos uru creurlos o destrulrlos segun fueru necesurlo en cudu momento. Lste slstemu no funclonubu blen en determlnudos slstemus oerutlvos (or ejemlo vlndows) usl que u urtlr de lu verslon z se uso otru soluclon: Cudu modulo MPM creu hllos (threuds) o rocesos hljo (medlunte refork) uru utender lus etlclones. Reulmente huy cuutro modulos refork MPM, threuded MPM, erchlld MPM y wlnnt MPM. Leendlendo de cul usemos se usurn unus conflguruclones u otrus. Unu formu de suber que modulo est usundo Auche es usur lu oclon -v Ln el servldor con Auche unlcumente apachectl -V o apache2 -V 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj nos muestru Server version: Apache/2.2.22 (Unix) Server built: Jul 17 2012 13:50:13 Server's Module Magic Number: 20051115:30 Server loaded: APR 1.4.5, APR-Util 1.4.1 Compiled using: APR 1.4.5, APR-Util 1.4.1 Architecture: 32-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) KK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/www" -D SUEXEC_BIN="/www/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" Sl lo robumos en el servldor LAMP nos mostrurlu lo mlsmo. vumos u echur un vlstuzo ul urchlvo /(/.N&3=.01< e lntentur ver uru que servlr cudu dlrectlvu que uurece. 6, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj H+7+1+%'13 4 32I('+J('13 %* (2,?+73 1% ,3'E+I"2(,+-' Lo rlmero que odemos observur es que N::(-=.01< est vuclo. sudo gedit /etc/apache2/httpd.conf Como yu he comentudo en unu lnstuluclon munuul, lu conflguruclon or defecto lr todu en ese urchlvo, ero vlendo lo que sucede en lu lnstuluclon que estumos utlllzundo, odemos urender u orgunlzur lu conflguruclon uru hucerlu ms munejuble. Lsto es orque el urchlvo rlnclul de conflguruclon uede cumblurse cuundo comllumos Auche. Por defecto es N::(-=.01< ero en lu lnstuluclon LAMP que usumos lo hun cumbludo u /(/.N&3=.01< y hun dejudo el otro or sl queremos hucer modlflcuclones. Le cuulquler formu odemos edltur el urchlvo rlnclul. sudo gedit /etc/apache2/apache2.conf Al flnul del urchlvo uurece unu secclon de lncluslones que ermlten subdlvldlr lu conflguruclon del servldor Auche como mejor nos urezcu. Ln este cuso se muestrun: # Include module configuration: Include mods-enabled/*.load Include mods-enabled/*.conf # Include all the user configurations: Include httpd.conf KF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu # Include ports listing Include ports.conf # Include of directories ignores editors' and dpkg's backup files, # see README.Debian for details. # Include generic snippets of statements Include conf.d/ # Include the virtual host configurations: Include sites-enabled/ Lu muyorlu de ellos lremos vlendo uru que slrven en suceslvus secclones. 8uste uclurur que or ejemlo en (08:'=.01< vu lnformuclon que yu conocemos y que esto uede hucerse con todo. Sl nuestro servldor es equeno qulz nos buste con usur un unlco flchero de conflguruclon con todus lus dlrectlvus ero en cuunto vuyu u ser un oco comlejo nos lr mejor sl lo dlvldlmos slgulendo ulgun crlterlo loglco. 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Unu curlosldud es que en el enultlmo *1.),-& se unude un dlrectorlo. Suele usurse uru creur en el urchlvos de conflguruclon de elementos que no tlenen otru secclon loglcu o uru ruebus en lu conflguruclon y que usl seu fcll revertlr lu sltuuclon ul estudo unterlor en cuso de fullo. Cuundo lnstulemos Auche uru el uso de modulos hubluremos de todos los urchlvos de conflguruclon en ms detulle. H+2%,5+7(& 1%* (2,?+73 1% ,3'E+I"2(,+-' Como yu hemos comentudo untes, el urchlvo de conflguruclon est comuesto or dlrectlvus que le lndlcun ul servldor como uctuur. 1en en cuentu que cudu vez que huces un cumblo en el urchlvo de conflguruclon es necesurlo relnlclur el servldor uru que surtu efecto. No todus lus dlrectrlces que vumos u ver estn en nuestro urchlvo de conflguruclon. 1umblen exlsten otrus y sobre ulgunus hubluremos ms udelunte. Ln estu dlrecclon odemos ver un ejemlo de un urchlvo httd.conf ms comleto y con enluces u lu documentuclon oflclul de cudu dlrectlvu. Ls estu otru est lu referenclu de lus dlrectlvus de uuche. Por ultlmo uqul odemos obtener unu equenu exllcuclon y formu de uso de ellus con unu lndlcuclon de uru que slrven. Ln estu ultlmu glnu en lu terceru columnu se lndlcun los contextos en los que uede ullcurse cudu dlrectlvu. Aqul se concretu un oco ms u que huce referenclu cudu contexto. apachectl restart Ls lmortunte destucur que lus llneus que comlenzun or W (,% !,9$%&:)#,( , $(&D% !,9$%&:+:(. X$)*$)Y,,& Lo que vlene u contlnuuclon es lu conflguruclon munuul, no lo voy u cumblur or lu que usumos orque es ms comleto usl. Ahoru vumos u comentur formulmente lus dlrectlvus que uurecen en el urchlvo de conflguruclon. ServerRoot "/www" Que lndlcu el dlrectorlo rulz de lu lnstuluclon de Auche. No se reflere ul dlrectorlo donde colocuremos lus glnus web. Convlene recordur que ul reullzur lu lnstuluclon munuul, untes de comllur el servldor lo conflgurumos con lu slgulente llneu ./configure --prefix=/www --enable-shared=max --enable-wmodule=rewrite --enable-module=so 5M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Sl nos fljumos, el dlrectorlo colnclde con el vulor de gg(8&<*`. Lstu dlrectlvu solo se modlflcurlu en cuso de mover el servldor Auche u otru ublcuclon en lu estructuru de dlrectorlos y como lremos vlendo hubrlu que cumblur ms. Lo mejor es eleglr blen desde el rlncllo donde lnstuluremos Auche. Ln el cuso que estumos vlendo, no uurece nlngunu otru rutu, ero uru conflgurur rutus relutlvus ul dlrectorlo de lnstuluclon de Auche, unu vez eseclflcudo con lu dlrectlvu unterlor, odrlumos usur i7&8>&8[00:i en lugur de lu rutu comletu. -#+V#"$ Pldllle estublece lu rutu ul urchlvo en el que el servldor grubu su lL de roceso (ld). Por defecto, el PlL se colocu en i7&8>&8[00:if)0+' PidFile logs/httpd.pid No se recomlendu cumblur lu rutu sl no se sube muy blen lo que se est huclendo. I#9$,7& Son los segundos que se eserun lus resuestus durunte lu comunlcuclon. Por defecto es cc segundos y se recomlendu no cumblurlo. Timeout 300 S$$1C"#*$4 Z:GS$$1C"#*$Y$E7$(&( K S$$1C"#*$I#9$,7& Letermlnu sl el servldor vu u ermltlr que cudu conexlon hugu ms de unu etlclon. Ll roblemu de uctlvurlo es que un unlco cllente uede consumlr demusludos recursos y suturur el servldor or lo que en cuso de estublecerlo u 01 se recomlendu conflgurur culdudosumente j&&(")*>&P*@&0,:, generulmente u un nlvel bujo. KeepAlive Off W/`j&&(")*>&[&Q,&':' determlnu el numero de etlclones que odr reullzur cudu conexlon. Lvldentemente solo tlene sentldo sl j&&(")*>& est uctlvudu. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj MaxKeepAliveRequests 100 j&&(")*>&P*@&0,: determlnu el tlemo que el servldor eserur untes de utender unu nuevu etlclon del mlsmo cllente en lu mlsmu conexlon. KeepAliveTimeout 15 Lstus dlrectlvus son un buen ejemlo de elementos que ueden hucer que nuestro servldor no funclone como eserumos unu vez en roducclon. Sl no robumos con un numero de etlclones suerlor ul mxlmo no odremos comrobur sl el funclonumlento es el eserudo. F=Z,+7"$ Ls un contenedor que ermlte estublecer determlnudus oclones solo sl se hu curgudo un modulo determlnudo. Sl se escrlbe ! (clerre de exclumuclon) untes del nombre del modulo se ejecutun lus oclones sl no se hu curgudo el modulo. <IfModule mod_mime_magic.c> MIMEMagicFile conf/magic </IfModule> X&:)&X$)*$)( 4 Z:G>"#$%&( K Z:GY$E7$(&(-$)>B#"+ Auche creu y destruye servldores uutomtlcumente segun el trflco que tengu que utender en cudu momento. Auche es muy eflclente en esto or lo que no deberlumos reocuurnos demusludo de este y de los slgulentes urmetros. Adems deberlun lr dentro de un L<W0-,)& segun ul que querumos ullcurlo. Lstu dlrectrlz estublece cuuntos servldores se creurn ul urruncur. StartServers 5 MuxCllents estublece el numero mxlmo de cllente que odr utender Auche u lu vez. 53 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu MaxClients 150 MuxRequestsPerChlld lndlcu cuuntus etlclones odr utender cudu cllente untes de ser mutudo. MaxRequestsPerChild 30 Leendlendo de sl usumos hllos o refork tendremos que conflgurur otros elementos: ! MlnSure1hreuds, MuxSure1hreuds, 1hreudsPerChlld ! MlnSureServers, MuxSureServers -,)& Nos ermlte cumblur el uerto en el que el servldor eseru lu ertlclones estndur. Port 7000 [#(&$% Lste elemento lndlcu ul servldor en que dlrecclon y uerto debe escuchur lus etlclones htt que lleguen :+$9D( +$ ",( +$ 1,) +$=$!&,. Ll uerto or estndur que un servldor web reclbu etlclones htt es el 8c or lo que lu llneu que nos encontrumos es Listen 80 Ln nuestro cuso hemos lnstuludo Auche en unu mqulnu vlrtuul usl que est conflgurudo uru escuchur en lu lnterfuz de loobuck (z,.c.c.). Sl queremos que el servldor seu vlsto desde lu mqulnu host debemos conflgururlo sltuundo lu dlrecclon lP que conflgurumos uru lu turjetu de red que unudlmos como solounfltrlon. Lu dlrecclon lP y el uerto se seurun or dos untos. Listen 192.168.56.101:80 Sl conflgurumos Auche uru escuchur en otro uerto solo odremos ucceder u lus glnus web unudlendo dlcho uerto detrs de lu dlrecclon. Como vlmos ul lnstulur 1omcut, este escuchu or defecto en el uerto 8c8c y or ello uccedlumos u el con htt:jjloculhost:8c8c , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj [,:+Z,+7"$ Cuundo lnstulumos Auche, hubllltumos lu oclon de Lynumlc Shured Cbject (LSC) que ermlte unudlr modulos dlnmlcumente sln necesldud de recomllur el servldor. Lu dlrectlvu LoudModule lndlcu que modulos dlnmlcos curgur. No es necesurlo lnclulr los modulos que se comlluron con el servldor. Ln el urchlvo uurece comentudu orque no unudlmos nlngun modulo. Ms udelunte hubluremos de los modulos. \($) K ]),71 Lstus dos dlrectlvus lndlcun con que usuurlo y gruo se lunzurn los rocesos hljos que genere Auche. Lstos rocesos hljo no deben lunzurse con el usuurlo 800: or ruzones de segurldud yu que creurlun unu brechu erfectu uru los huckers. Sl no urruncumos el servldor con el usuurlo 800:, los rocesos hljo que se lunzurn con ese mlsmo usuurlo yu que solo 800: uede cumblur el usuurlo y el gruo de un roceso or lo que estus dlrectlvus se lgnorurn. Ln Llnux or defecto el usuurlo 1020-H y el gruo 10+80,( tlenen muy ocos rlvlleglos or lo que son buenos cundldutos uru lunzur los rocesos hljo. Sl queremos usur el numero del gruo o del usuurlo en lugur del nombre debemos unudlr # justo untes del numero. User nobody Group #-1 Ln nuestro urchlvo uurecen estus dos dlrectlvus dentro de dos ll unldudos que lndlcun que se curgurn los rocesos con ese usuurlo y gruo sl se cumlen lus condlclones. Sl lo onemos fueru de los ll se usurn uru todos los rocesos hljo. Lus condlclones en este cuso son los modulos que se esten usundo. X$)*$)C+9#% Lstu oclon ermlte conflgurur lu dlrecclon del udmlnlstrudor del servldor web que se mostrur sl el servldor generu unu glnu de error. Lvldentemente debe ser unu dlrecclon reul y generulmente es del mlsmo domlno que el rolo servldor web. Nosotros no dlsonemos de un nombre de domlnlo, ero odemos conflgurur unu dlrecclon de correo reul. 56 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ServerAdmin [email protected] X$)*$)O:9$ lndlcu el nombre del servldor. Lebe cumllr con lus eseclflcuclones LNS y estur en nuestro oder. ServerName www.ejemplo.es:80 ?,!79$%&Y,,& Con estu oclon lndlcumos el dlrectorlo rulz donde colocuremos lus glnus web. Podemos creur subdlrectorlos dentro de este y uccederemos u los documentos que ongumos en el subdlrectorlo con unu rutu relutlvu. DocumentRoot "/www/docweb" Ll roblemu es que no bustu con cumblur estu rutu, es necesurlo cumblur tumblen otru de lu dlrectlvu Llrectory que veremos luego. <Directory "/www/docweb"> . Sl queremos comrobur que funclonu lo mejor es modlflcur el urchlvo lndex.html del nuevo dlrectorlo o unudlr un urchlvo nuevo y curgur ese. ^% $" !:(, E7$ %,( ,!71: uhoru, estu dlrectlvu uurece en el urchlvo -&</,): del dlrectorlo f&:.f/(/.N&3f'*:&'g/>/*)/2)&. Lsto es usl orque lu lnstuluclon que usumos nosotros vlene reeurudu or defecto uru funclonur con sltlos vlrtuules. ?#)$!&,)K Lstu dlrectlvu tumblen hu sldo derlvudu ul urchlvo de conflguruclon del sltlo or defecto, uru que no se ullque u todos los sltlos del servldor yu que no ermlte sobrescrlturu de lus dlrectlvus de segurldud. Sl se usleru en el servldor ufecturlu u todos los sltlo que utlllzurun el dlrectorlo eseclflcudo. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Lstu oclon se usu uru conflgurur como se comortur y que se ermltlr en cudu dlrectorlo ul que tlene ucceso el servldor Auche. Lstu conflguruclon se ullcu u un dlrectorlo y los subdlrectorlos que contlene sl no se sobreescrlbe en otru deflnlclon sobre un dlrectorlo ms concreto. Nos encontrumos dos veces estu etlquetu. Lu rlmeru huce referenclu ul dlrectorlo rulz y se conflguru slemre con oclones muy restrlctlvus. <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory> Ll contenldo lo vemos u contlnuuclon. Prlmero vumos u mostrur tumblen lu otru vez que uurece, huclendo referenclu ul dlrectorlo !0.,@&1:[00: <Directory "/www/docweb"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> 5K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Aunque umbos cusos esten conflgurudos lguul, esto no es necesurlo. Pueden unudlrse dlrectlvus uru otros dlrectorlos segun lo vuyumos necesltundo. Lu rlmeru llneu ermlte u Auche segulr enluces slmbollcos y lu segundu que lus oclones de ucceso de cudu dlrectorlo (urchlvo .N:/..&'' del que hubluremos en lu dlrectlvu "..&''G*)&e/@&) no rlmun sobre estus. Lu terceru llneu lndlcu sl lus ordenes uru ermltlr o uru denegur lrn rlmero, en este cuso se ejecutun rlmero lus ermlslvus y luego lus restrlctlvus. "))0D (y su untonlmo !&1H) eseclflcun qulen uede ucceder y qulen no u un dlrectorlo determlnudo. Ll sollcltunte uede ser /)), unu dlrecclon lP, un ur Redjmscuru de red, etc. Puedes ver ms ejemlos uqul. \($)?#) lndlcu sl se debe ermltlr que cudu usuurlo de nuestro slstemu tengu su rolu curetu ersonul en el servldor web y estublece cul ser lu rutu desde el servldor uru ucceder u dlchu curetu. Lsto tlene sentldo or ejemlo sl se montu un servldor Auche en un lnstltuto y cudu rofesor tlene su rolo usuurlo. Puru que cudu uno tengu su rolu web ersonul se uede uctlvur estu oclon. UserDir public_html Ls lu oclon ms frecuente yu que creurlu en nuestro servldor rutus uru cudu usuurlo. Sl or ejemlo huy un usuurlo Serglo y otro Murlu tendrlumos lus rutus: ,, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj www.servidordeprueba.es/~Sergio www.servidordeprueba.es/~Maria Y cudu usuurlo tendrlu en su curetu ersonul un subdlrectorlo ubllc_html uru ubllcur lo que qulsleru. Como se uede ver el urgumento detrs de S'&8!*8 lndlcu como se llumur ese subdlrectorlo. UserDir disable Ls lu oclon or defecto y huce que los usuurlos no tengun su rolo esuclo. Ln cuso de uctlvur los dlrectorlos de usuurlos se recomlendu deshubllltur el de 800: Userdir disabled root Lste tlo de conflguruclon se hu utlllzudo mucho or ejemlo en unlversldudes donde cudu rofesor tenlu unu glnu web dlsonlble solo con tener un usuurlo. 1oduvlu no uedes robur lu conflguruclon de estu dlrectlvu en tu servldor, ero sl leer lu documentuclon de lu dlrectlvu Que usuurlos tlenen uhoru curetu ersonul? Lu rutu or defecto u lu curetu ersonul no es muy fcll de escrlblr con un tecludo en muchos ulses, como lu cumblurlus? 1enlendo en cuentu un servldor remoto, que lnconvenlente ves u estu formu de funclonur? Sl tuvlerus que lunteur ulgunu funclonulldud slmllur en lu uctuulldud, como lo hurlus? ?#)$!&,)KF%+$G Lseclflcu lu glnu or defecto que se buscur ul ucceder u un dlrectorlo de lu jerurqulu de nuestro sltlo. Acceder u un dlrectorlo es usur unu dlrecclon web que ucubu con unu burru "j'. Ll dlrectorlo rulz est lncluldo en esu jerurqulu or lo que cuundo uccedemos u nuestro sltlo web (en nuestros cusos htt:jjloculhost) curgu el urchlvo lndex.html que es el vulor or defecto de !*8&.:08HL1-&`. DirectoryIndex index.html Puede estublecerse unu suceslon de urchlvos y el servldor mostrur lu rlmeru que encuentre del orden estublecldo en lu dlrectlvu. 5F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu DirectoryIndex index.html, index.htm, inicio.html, inicio.htm Sl uccedemos u un dlrectorlo que no contlene nlnguno de los urchlvos eseclflcudos, Auche creu dlnmlcumente un urchlvo que llstu los contenldos. C!!$((V#"$O:9$ lndlcu el nombre del urchlvo en el que se deben buscur lus dlrectlvus de ucceso determlnudus en cudu dlrectorlo. Por defecto es . N:/..&'' y no se recomlendu cumblurlo en ubsoluto. AccessFileName .htaccess V#"$( Ls un contenedor que slrve uru estublecer dlrectlvus uru tlos de urchlvo. Por lo menos es necesurlo unudlr un gruo que lmldu el ucceso u los urchlvos que emlezun or .ht or motlvos de segurldud. <FilesMatch "^.ht"> Order allow,deny Deny from all Satisfy All </FilesMatch> Ctro ejemlo ms senclllo es <Files .htaccess> Order allow,deny , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Deny from all </Files> Se uede usur uru otros tlos de urchlvo segun creumos convenlente. \($>:%,%#!:"O:9$ lndlcu u Auche que cudu vez que tengu que construlr dlrecclones que hugun referenclu u sl mlsmo lo hugu con el nombre cunonlco (el lndlcudo en lu dlrectrlz ServerNume) y el uerto en lugur del nombre de lu mqulnu (hostnume) y el uerto. UseCanonicalName On IK1$(>,%=#; lndlcu donde estur el urchlve que descrlbe los tlos MlML (mlme.tyes) o su equlvulente sl lo hemos cumbludo. No huy muchus ruzones uru ello, or lo que deberlumos dejur el vulor or defecto. TypesConfig conf/mime.types ?$=:7"&IK1$ Lstublece el tlo MlML uru todos uquellos urchlvos u los que no se les uedu uslgnur uno medlunte su extenslon, etc. Sl tenemos un servldor donde lu muyorlu del contenldo son glnus E1ML, ML, etc es buenu ldeu usur el vulor or defecto, ero sl lu muyorlu del contenldo son urchlvos blnurlos (fotogruflus, rogrumus, etc) serlu convenlente estublecer /(()*./:*01f0.:&:g':8&/@. DefaultType text/plain Se uede eseclflcur ms: DefaultType text/html FM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu lnvestlgu en lnternet que son los tlos MlML y cules huy. Que orgunlsmo se encurgu de gestlonurlos? Le que otrus cosus se encurgu? P,(&%:9$[,,N71( lndlcu ul servldor sl debe hucer unu consultu LNS uru cudu etlclon. Lsto consume mucho tlemo or lo que or defecto est deshubllltudu. HostnameLookups off ^)),)[,; Lstu dlrectlvu es muy lmortunte yu que lndlcu donde ublcur el urchlvo de reglstro de los errores que se roduzcun en el servldor. Ll lugur or defecto es i7&8>&8[00:if)0+'f&8808^)0+. Muchos udmlnlstrudores creun unu urtlclon excluslvumente uru sltuur este tlo de urchlvos y usl tener ms robubllldudes de oder consulturlos en cuso de un error futul. ErrorLog logs/error_log [,;[$*$" Lstublece cuntu lnformuclon se guurdur en el urchlvo de reglstro de errores. Ll nlvel or defecto es suflclente uru emezur ero cuunto muyor seu el servldor y ms lmortunte su funclon ms lnformuclon neceslturemos. Los vulores oslbles lncluyen: debug, lnfo, notlce, wurn, error, crlt, ulert, emerg. LogLevel warn [,;V,)9:& Lstublece que y en que formuto se reglstrur. No vumos u entrur en ms detulles en este curso. >7(&,9[,; Lstublece lu rutu ul urchlvo de que reglstru lus vlsltus u nuestro sltlo web. #CustomLog logs/access_log combined 8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Comblned lndlcu el uso de un unlco urchlvo uru guurdur todu lu lnformuclon yu que es oslble dlvldlr este reglstro en vurlos. X$)*$)X#;%:&7)$ lndlcu sl ul mostrurse unu glnu generudu uutomtlcumente or el servldor (no lus generudus medlunte lenguujes u urtlr de ulgo estublecldo or el usuurlo slno lus glnus de error, llstudo de dlrectorlos l1P, etc) debe mostrurse el nombre y lu verslon del servldor. Lsto uede ser usudo mullclosumente usl que sl no ests conforme estublecelo u off. ServerSignature On Euy otru oclon (LMull) que unude lu dlrecclon del udmlnlstrudor de lu web u lu lnformuclon mostrudu. C"#:( Permlte creur ullus uru urchlvos o dlrectorlos. Se ueden unudlr los que querumos ero el ms hubltuul es el de lu curetu de lconos que usu Auche. Alias /icons/ "/var/www/icons/" <Directory "/var/www/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> F3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lu dlrectlvu es solo lu rlmeru llneu. Lo dems es lu dlrectlvu de conflguruclon del dlrectorlo. ScrltAllus lndlcu donde se ublcur lu curetu de scrlts CCl. Ll funclonumlento es slmllur ul unterlor ero solo debemos lnclulrlos sl vumos u usur scrlts CCl. ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> F%+$GQ1&#,%(4 C++F!,%5K^%!,+#%;4 C++F!,%5KIK1$4 C++F!,%4 ?$=:7"&F!,%4 Y$:+9$O:9$4 P$:+$)O:9$ $ F%+$GF;%,)$ Son dlrectlvus usocludus u lu creuclon de lndlces de muneru uutomtlcu or el servldor. No vumos u rofundlzur en ellus. C++^%!,+#%; Lseclflcu un tlo urtlculur de codlflcuclon uru determlnudus extenslones de urchlvos. 1umblen se uede usur "--U1.0-*1+ uru lndlcur u los nuvegudores que descomrlmun clertos urchlvos mlentrus los descurgun: AddEncoding x-compress Z 8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj AddEncoding x-gzip gz C++[:%;7:;$ Slrve uru usoclur extenslones u ldlomus determlnudos uru el contenldo. Lstu dlrectrlz es utll uru lu negocluclon de contenldos entre el servldor y el nuvegudor web del cllente yu que Auche uede devolver contenldos en dlferentes ldlomus deendlendo de lu conflguruclon del ldlomu del nuvegudor veb. Ls utll sobre todo en los cusos en los que tenemos el sltlo escrlto en vurlos ldlomus yu que ermltlr que Auche slrvu lu udecuudu en cudu cuso en funclon de lu conflguruclon del nuvegudor del cllente. Lsto se reullzu de formu trunsurente uru el usuurlo flnul. Los codlgos de ldlomus se deflnen en lu eseclflcuclon lSC 6. Ms concretumente en lu lSC 6 los codlgos de dos letrus y en lu lSC 6z los de tres letrus que lncluyen ms ldlomus. # Dans (da) - Holands (nl) - Ingls (en) - Estonio (et) # Francs (fr) - Alemn (de) - Griego Moderno (el) # Italiano (it) - Noruego (no) - Koreano (kr) # Portugus (pt) - Luxemburgus(ltz) # Espaol (es) - Sueco (sv) - Checo(cz) # Polaco (pl) - Portugus de Brasil (pt-br) - Japons (ja) # Ruso (ru) - Croata (hr) # AddLanguage es .es AddLanguage da .dk F6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu AddLanguage nl .nl AddLanguage en .en AddLanguage et .et AddLanguage fr .fr AddLanguage de .de AddLanguage el .el AddLanguage it .it AddLanguage ja .ja AddLanguage pl .po AddLanguage kr .kr AddLanguage pt .pt AddLanguage no .no AddLanguage pt-br .pt-br AddLanguage ltz .ltz AddLanguage sv .se 8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj AddLanguage cz .cz AddLanguage ru .ru AddLanguage tw .tw AddLanguage hr .hr 1en en cuentu que el lndlcudor del ldlomu no tlene or que ser ldentlco ul sufljo como se ve en vurlos de los ejemlos. [:%;7:;$-)#,)#&K Permlte estublecer unu rlorldud de los ldlomus en cuso de que no se eseclflque uno o huyu un emute en lu negocluclon or dlferentes motlvos. Por defecto vlene en lngles, ero en lu muyorlu de los cusos nosotros querremos estublecerlo en esunol. LanguagePriority es en fr de Puru oder robur este tlo de conflguruclon es necesurlo tener vurlos urchlvos en dlferentes ldlomus con el mlsmo nombre. Ln estu glnu odemos ver como hucerlo, ero uunque es bustunte comletu es untlguu. Ln el vc nos roorclonun unu lnformuclon ms reclente y en lu documentuclon oflclul de Auche uurece todo eseclflcudo. C++>B:)($& Ls lguul que "--\/1+,/+& ero uru unudlr nuevos juegos de curucteres. AddCharset ISO-8859-1 .iso8859-1 .latin1 AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen FK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu C++?$=:7"&>B:)($& Leberlu estublecerse ul juego de curucteres que mejor se ujuste u lu zonu en lu que se sltuu el servldor y ul ldlomu del contenldo. Ln cuso de no estur seguros es mejor dejurlo como est. AddDefaultCharset ISO-8859-1 5),A($)Z:&!B Slrve uru modlflcur lu resuestu deendlendo de lu conflguruclon del cllente en cuunto u nuvegudor y luglns. Lsto suele usurse uru evltur roblemus con nuvegudores que no slguen ulgun estndur o evltur ugujeros de segurldud. Lus slgulentes llneus son muy comunes orque lncluyen conflguruclones con roblemus de sobru conocldos. BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4.0" force-response-1.0 BrowserMatch "Java/1.0" force-response-1.0 BrowserMatch "JDK/1.0" force-response-1.0 Conflguru tu servldor Auche uru que lu curetu rulz seu jugweb y ruebu u consulturlo desde lu mqulnu host. Solo udmltlr consultur or el uerto cc. Adems lu glnu or defecto que curgur en cudu dlrectorlo debe ser lnlclo.html. Por ultlmo unude el ldlomu esunol, cutuln, gullego y vusco en este orden. Ll juego de curucteres or defecto debe ser el euroeo occldentul. Pruebu el correcto funclonumlento de todo. Consultu los urchlvos de reglstro de errores y de ucceso de tu servldor Auche. 8, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Modulos Ll dlseno de Auche es modulur, ulgo que yu hemos dejudo entrever cuundo hemos hubludo de Lynumlc Shured Cbject (LSC). Ll nucleo de Auche lncluye lu funclonulldud necesurlu uru estublecer un servldor web ero exlsten muchos modulos udlclonules que ermlten unudlr funclones extru. Ll uso de LSC tlene unus ventujus evldentes y lu unlcu desventuju es unu equenu dlsmlnuclon del rendlmlento del servldor or lo que se recomlendu su utlllzuclon exceto en cusos en los que el rendlmlento seu crltlco. Cudu modulo tlene un conjunto de dlrectlvus eseclflcus que ermlten su gestlon. Nosotros uhoru nos centruremos en ver que modulos huy y ms udelunte estudluremos ulgunos cusos en rofundldud. Puedes consultur los modulos que estn lnstuludos en cudu servldor medlunte el comundo apachectl -l que en el cuso de lu lnstuluclon munuul nos devuelve lo slgulente. Compiled in modules: core.c mod_authn_file.c mod_authn_default.c mod_authz_host.c mod_authz_groupfile.c FF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu mod_authz_user.c mod_authz_default.c mod_auth_basic.c mod_include.c mod_filter.c mod_log_config.c mod_env.c mod_setenvif.c mod_version.c prefork.c http_core.c mod_mime.c mod_status.c mod_autoindex.c mod_asis.c 8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj mod_cgi.c mod_negotiation.c mod_dir.c mod_actions.c mod_userdir.c mod_alias.c mod_so.c Ctru formu de consulturlo es apachectl -M Que nos muestru los modulos or nombre y determlnundo sl se unudleron de formu esttlcu (cuundo se comllo Auche) o de muneru dlnmlcu. Loaded Modules: core_module (static) authn_file_module (static) authn_default_module (static) authz_host_module (static) XM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu authz_groupfile_module (static) authz_user_module (static) authz_default_module (static) auth_basic_module (static) include_module (static) filter_module (static) log_config_module (static) env_module (static) setenvif_module (static) version_module (static) mpm_prefork_module (static) http_module (static) mime_module (static) status_module (static) autoindex_module (static) -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj asis_module (static) cgi_module (static) negotiation_module (static) dir_module (static) actions_module (static) userdir_module (static) alias_module (static) so_module (static) Syntax OK Ls fcll reconocer el mlsmo modulo en lu termlnologlu del rlmer llstudo y en lu del segundo. Puedes consultur todos los modulos uqul. Sl lnchus en el nombre de ulguno te llevur u unu exllcuclon ms comletu y con ejemlos. vumos u resentur ulgunos de los dlferentes modulos en gruos con funclones slmllures. Puru los slgulentes modulos debes leer lu equenu exllcuclon que vlene uqul, reururte uru exllcur que huce y ensur uno o dos ejemlos de utllldud que tengu el modulo. vumos u lrlo huclendo gruo u gruo. X3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu K-1"*3& 2%*(,+3'(13& ,3' %* %'532'3 Lstos modulos nos ermlten controlur que urte del entorno del servldor estur dlsonlble uru otros modulos o rogrumus. Al declr entorno nos referlmos ul conjunto de vurlubles dlnmlcus de entorno de Auche que modlflcun el comortumlento del servldor. 9,+_$%* Lste modulo se comllu or defecto con Auche usl que est dlsonlble en nuestrus lnstuluclones. Permlte usur el vulor de vurlubles de entorno u rogrumus de scrlt CCl, erl, PEP, etc. 9,+_($&$%*#= 1umblen se comllu or defecto or lo que est dlsonlble en nuestrus lnstuluclones. Lste modulo nos oslbllltu lu creuclon de vurlubles de entorno u urtlr de dutos que nos envlu en cllente con el rotocolo E11P. Lu dlrectlvu b80D'&8W/:.N vlstu unterlormente ertenece u este modulo. 9,+_7%#E7$_#+ Lste modulo sln dlrectlvus se encurgu de estublecer un ldentlflcudor unlco uru cudu etlclon que llegu u lu mqulnu con el servldor Auche en cuso de que lo necesltemos. Reulmente uede creur un ldentlflcudor unlco uru cudu etlclon que llegue u un conjunto de mqulnus conflgurudus correctumente uru funclonur como un cluster. K-1"*3& 1% ("5%'5+,(,+-' 4 ,3'523* 1% (,,%&3 Auche lmlementu vurlos modulos uru reullzur uutentlcuclon y control de ucceso lo que se suele ullcur ul flltrudo de usuurlos que ueden vlsltur un dlrectorlo de nuestro web busndose en lu dlrecclon lP o el nombre de usuurlo. Ll muyor roblemu que resentun estos modulos es que utlllzun el rotocolo E11P que trunsmlte texto luno or lo que lus contrusenus se envlun sln clfrur creundo un ugujero de segurldud muy reocuunte. Eubluremos ms de vurlos de estos modulos cuundo veumos -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 9,+_:7&B4 9,+_:7&B_+69 K 9,+_:7&B_+6 Ls el modulo bslco de uutentlcuclon de Auche. Usu el rotocolo E11P uru ello. mod_uuth_dbm y mod_uuth_db son slmllures ero utlllzun urchlvos L8M y 8erkley L8 en lugur de urchlvos de texto uru mejorur lu eflclenclu del servldor. 9,+_:7&B_:%,% Lste modulo ermlte u los usuurlos conecturse de muneru unonlmu. Puru ello deben usur /101H@0,' como nombre de usuurlo y es oslble edlrles unu dlrecclon de correo como contrusenu. Lstu dlrecclon uede usurse uru controlur que usuurlos se conectun o uru creur llstus de correo de oslbles cllentes de nuestro servldor. 9,+_:7&B_+#;$(& Lste modulo gestlonu lu uutentlcuclon medlunte Messuge Llgest (ML) 9,+_:!!$(( Permlte uctlvur lu uutentlcuclon medlunte dlrecclon lP o nombre de lu mqulnu cllente. K-1"*3& 1% I%'%2(,+-' 1+'L;+,( 1% ,3'5%'+13& Lstos modulos ermlten delegur lu utenclon de determlnudus etlclones u dlferentes scrlts o rogrumus externos. 9,+_!;# Slrve uru ejecutur scrlts de tlo CCl (Common Cutewuy lnterfuce) 9,+_#%!"7+$ Permlte usur flltros SSl (ServerSlde lncludes) X6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 9,+_:!&#,%( Leendlendo del tlo MlML o en el metodo de lu etlclon E11P, ermlte usur dlferentes scrlts uru rocesur dlchus etlclones. 9,+_$G&_=#"&$) Permlte flltrur unu resuestu medlunte un rogrumu externo untes de envlrselu ul cllente. K-1"*3& 1% ,3'E+I"2(,+-' 1%* 5+)3 1% ,3'5%'+13 Lste conjunto de modulos ermlten ul servldor detectur o negoclur el tlo de contenldo ms udecuudo uru el cllente, entendlendo como cllente lu mqulnu y el nuvegudor que reclblrn lu resuestu E11P. 9,+_9#9$ Permlte que Auche determlne el tlo MlML u urtlr de lu extenslon del urchlvo. Se comllu or defecto y nos ermlte uctlvur un T/1-)&8 uru gestlonur tlos de urchlvo. vurlus de lus dlrectlvus que vlmos de tlos de codlflcuclon y de ldlomus del contenldo estn reluclonudus con este modulo. 9,+_9#9$_9:;#! Lste modulo ermlte u Auche determlnur el tlo MlML u urtlr de un utron de bytes que se ulmucenu en un urchlvo y se comuru con lu etlclon. Solo se uctlvu sl el modulo unterlor no es cuuz de determlnur el tlo MlML. 9,+_%$;,&#:&#,% Lu negocluclon de contenldo entre cllente y servldor tllcu conslste en que el cllente le envlu ul servldor que tlos de contenldo (ldlomu, codlflcuclon, etc) uede munejur y el servldor buscu el ms udecuudo uru resonderle. Lste modulo se comllu or defecto. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj K-1"*3& )(2( %* *+&5(13 1% 1+2%,532+3& Cuundo un cllente huce unu etlclon u nuestro servldor con unu dlrecclon web que lndlcu un dlrectorlo el servldor lntentu servlr rlmero el urchlvo o urchlvos estublecldos uru ello (con lu dlrectlvu !*8&.:08HL1-&`). Ln cuso de no encontrur nlnguno en ese dlrectorlo muestru unu llstu de los urchlvos contenldos. Lstos modulos nos ermlten conflgurur como sern esos llstudos. 9,+_+#) Modulo bslco de munejo de dlrectorlos que se lncluye en lu comlluclon estndur de Auche. Por defecto reullzu dos funclones bslcus: unude unu burru "j' ul flnul de cudu dlrecclon que no termlnu en un nombre de urchlvo (redlrlge www.mlsltlo.esjundlrectorlo u www.mlsltlo.esjundlrectorloj ) y buscu un urchlvo or defecto uru curgur en los cusos en los que se lntentu ucceder u un dlrectorlo. Sl no deflnlmos nudu con lu dlrectlvu !*8&.:08HL1-&` se buscu *1-&`=N:@) or defecto. 9,+_:7&,#%+$G Lste modulo tumblen se lncluye en lu conflguruclon de Auche or defecto. Ln cuso de que ul ucceder u un dlrectorlo no se encuentre nlnguno de los urchlvos eseclflcudos @0-^/,:0*1-&` se encurgu de generur el llstudo. Adems odemos conflgurur como se generur dlcho llstudo. Conflgurur este modulo es utll en cuso de que tengumos un servldor de urchlvos (or ejemlo en unu lntrunet) ul que uccedun muchos usuurlos. No huy que confundlr este tlo de ucceso con el que roorclonu un servldor l1P como veremos en el temu . K-1"*3& )(2( *( I%&5+-' 1% *(& ,(/%,%2(& FBBM 1% *(& 2%&)"%&5(& Lus cubecerus en el rotocolo E11P lncluyen muchu lnformuclon lmortunte uru lu comunlcuclon. Lste conjunto de modulos nos ermlte modlflcur dlchus cubecerus. Ll uso de estos modulos requlere conoclmlentos uvunzudos del funclonumlento del rotocolo E11P or lo que solo los llsturemos: @0-^/'*'d @0-^N&/-&8'd @0-^&`(*8&' y @0-^.&81^@&:/ son los modulos que se lncluyen en este gruo. Solo el rlmero se lncluye en lu comlluclon or defecto. XK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu K-1"*3& 1% +'E32;(,+-' 1%* &%27+132 4 1% 2%I+&523 1% *( (,5+7+1(1 Lstos modulos roorclonun lnformuclon sobre el estudo del servldor y ermlten conflgurur el reglstro de lu uctlvldud. 9,+_",;_!,%=#; Permlte conflgurur el reglstro del ucceso de usuurlos ul servldor. 9,+_(&:&7( Muestru lnformuclon sobre el estudo del servldor. 9,+_#%=, Muestru lnformuclon de conflguruclon del servldor. 9,+_7($)&):!N Permlte ldentlflcur usuurlos y reglstrurlos de muneru lndlvlduul usundo E11P Cookles. Ll ldentlflcur usuurlos de formu lndlvlduul nos ermlte trutur u cudu usuurlo de formu unlcu o servlrle lnformuclon ersonullzudu or ejemlo. Que son lus cookles? lnvestlgu en lnternet y exllcu de formu bslcu como funclonun. Reclentemente Coogle y Mlcrosoft hun munlfestudo su lntenclon de dejur de usur cookles, slgnlflcu esto que estn dlsuestos u renunclur u lu funclonulldud que roorclonun? Lnterute en lnternet de que lunteun. Londe se ulmucenun lus cookles en tu ordenudor? Accede u ulgunu uru ver su contenldo. Lu extenslon Ldlt thls Cookle the Coogle Chrome uede uyudurte sl exortus ulgunu y lu egus en un documento de texto. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj K-1"*3& 1% ;()%3 1% DNO& Con este conjunto de modulos odemos munejur y modlflcur lus URLs de nuestro sltlo: u urtlr del nombre de domlno huclu udelunte. Nos ermltlr creur ullus, nos uyudur u tener vurlos sltlos web en el mlsmo servldor y odremos rescrlblr lus dlrecclones uru que lleven u dlferentes lugures de lu estructuru de urchlvos y dlrectorlos de nuestro servldor. 9,+_7($)+#) Yu comentumos ul revlsur el urchlve de conflguruclon de Auche como odlumos creur sltlos ersonules uru cudu usuurlo usundo lu dlrectlvu S'&8-*8. Lste modulo es el que nos ermlte hucerlo. 9,+_:"#:( Sl queremos estublecer "ullus' o enluces slmbollcos entre dos rutus de lu estructuru de urchlvos. lncluso ermlte creur redlrecclones de un urchlvo o dlrectorlo u otro. Lste modulo se comllu or defecto con Auche. 9,+_)$A)#&$ Con este modulo odemos modlflcur lu URL de lu etlclon que huce el cllente uru que seu unu que conflguremos nosotros. Puru ello, se estublece un utron con el que se comuru lu URL y sl colnclde se cumblu or otru segun otro utron que se estublece. Lsto ermlte entre otrus muchus cosus modlflcur lu estructuru de urchlvos y dlrectorlos de nuestro nuvegudor web y que lus URLs de lu estructuru untlguu slgun funclonundo. Ls ms otente que los ullus creudos en el modulo unterlor orque un utron uede englobur muchus URLs (todus lus que cumlun con el utron estublecldo). 9,+_(1$"#%; Lste modulo corrlge oslbles equenos errores en lus URLs de etlclones or urte de los cllentes. 1lene dos tlos de correcclon: en lu rlmeru ermlte un error como lu lntroducclon de un curcter de ms, lu omlslon de un curcter o el cublo de un curcter or otro (solo uno) mlentrus que lu segundu funclonulldud buscu errores rovocudos or el lncorrecto uso de muyusculus y mlnusculus. Ll modulo comuru lu etlclon con los dlrectorlos y urchlvos que encuentru en lu estructuru. Sl huy unu colncldenclu se reullzu unu etlclon de redlrecclon ul cllente y sl huy vurlus se le envlu ul cllente lu llstu de colncldenclus. XF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Ll grun roblemu que tlene lu uctlvuclon de este modulo es el tremendo lmucto negutlvo que uede llegur u tener en el rendlmlento del servldor or lo que huy que estur muy seguros de lu necesldud de uctlvurlo. 9,+_*B,(&_:"#:( Lste modulo est reluclonudo con el uso de hosts vlrtuules que veremos ms udelunte. 8slcumente slrven uru tener vurlos sltlos web en el mlsmo servldor Auche. Sln emburgo este modulo no se usu muy hubltuulmente orque lo que ermlte es lu creuclon de hosts vlrtuules de formu dlnmlcu y solo se recomlendu cuundo se vun u creur muchlslmos y lu conflguruclon munuul vuyu u ser demusludo lentu. Por ejemlo sl un roveedor de servlclos de lnternet (lSP) declde creur sltlos web uru todos los cllentes que lo sollclten. P523& ;-1"*3& Ln este gruo vumos u hublur de vurlos modulos que no encujun en nlnguno de los gruos unterlores ero que merece lu enu tener en cuentu. 9,+_(, Lste es el modulo que nos ermlte unudlr otros sln lu necesldud de recomllurlos. Ls el modulo que nos ermlte el uso de LSC (Lynumlc Shured Cbject) y todos los dems modulos de Auche se ueden usur de estu muneru menos este. Recuerdo que cuundo comllumos Auche unudlmos este modulo uru oder usur otros sln necesldud de recomllur el servldor cudu vez que qulslerumos unudlr o ellmlnur ulgun modulo de nuestro servldor web. 9,+_#9:1 Con este modulo que se comllu or defecto con Auche, se lncluye el soorte uru muus de lmgenes el urchlvos E1ML. 9,+_1),GK Lste modulo nos ermlte convertlr Auche en un servldor roxy. Un servldor roxy se sltuu entre el cllente y el servldor y bslcumente uctuu como el servldor uru el cllente y como un cllente uru el servldor. Los motlvos uru usur un servldor roxy ueden ser muy vurludos, ero lncluyen dur ucceso u determlnudos recursos de lnternet u ordenudores sln dlrecclones vlubles, hucer lu funclon de cuche uru los usuurlos de unu red o control, reglstrur yjo restrlnglr el uso de determlnudos recursos de lnternet. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 9,+_=#"$_!:!B$ Sl usumos este modulo ermltlmos que Auche ongu en cuche determlnudos urchlvos esttlcos y no cumblen frecuentemente. Ll roblemu con el uso de estu tecnlcu es que sl el urchlvo cumblu uede turdur bustunte en envlurse el urchlvo modlflcudo u los cllentes debldo u lu colu que tenemos en cuche. 9,+_+:* Sl queremos usur vebLAv tendremos que uctlvur este modulo. Eubluremos de vebLAv en el temu . 9,+_$G:91"$ Ls un modulo de vltul lmortunclu uru todo uquel que quleru o necesltu urender u rogrumur un modulo de Auche, ero uru nudle ms. Euy que tener conoclmlentos del lenguuje de rogrumuclon C uru oder comrenderlo. EMM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu lnstuluclon, conflguruclon y uso de los modulos de Auche Lesues de lu lntroducclon u lus funclones de ulgunos modulos de Auche, vumos u urender u usur ulgunos de ellos. Aunque cudu uno tlene sus rolus ecullurldudes lu rctlcu con ulgunos nos llevur u comrender el funclonumlento y oder usur cuulquleru consultundo lu documentuclon ertlnente. O3& (2,?+73& 1% ,3'E+I"2(,+-' 1% *( +'&5(*(,+-' )32 )(C"%5% Lste tlo de lnstuluclon llevu usocludu unu dlstrlbuclon de lus dlrectlvus de conflguruclon en vurlos urchlvos. Ls mucho ms ruclonul y slmllflcu lu udmlnlstruclon del servldor Auche con resecto u lu lnstuluclon munuul que utlllzu un unlco flchero de conflguruclon uunque medlunte lu dlrectlvu L1.),-& se ude conflgurur ul gusto de cudu uno. :1:!B$.8!,%= Ll flchero de conflguruclon rlnclul en este tlo de lnstuluclon es uuchez.conf y se encuentru en f&:.f/(/.N&3f/(/.N&3=.01< e lncluye lus dlrectlvus rlnclules del servldor. Al flnul del urchlvo y medlunte ordenes *1.),-& se le lndlcu u Auche que debe curgur otros urchlvos donde se encuentru lu conflguruclon de otros comonentes. Lebemos echur un vlstuzo ul urchlvo de conflguruclon de Auche sudo gedit /etc/apache2/apache2.conf Ls muy urecldo ul de lu lnstuluclon de un servldor LAMP. 1,)&(8!,%= Ln este flchero se estublecen lus dlrecclones lP y los uertos que vu u usur el servldor. Ln lu lnstuluclon que hemos llevudo u cubo se estublece que se escuche en el uerto 8c (htt or defecto) y en cuso de que uctlvemos el rotocolo SSL se usurlu el uerto . c -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj $%**:)( Se utlllzu uru conflgurur lus vurlubles de entorno del servldor. B&&1+8!,%= Lebemos recordur que este es el flchero de conflguruclon rlnclul en lus lnstuluclones de uuche munuules. Aqul se muntlene or comutlbllldud y se recomlendu que el udmlnlstrudor del servldor lntroduzcu en el lus conflguruclones udlclonules en lugur de lnclulrlus en uuchez.conf. '$&!':1:!B$.'!,%=8+' Ln este dlrectorlo se lncluyen conflguruclones udlclonules y ulgunus ullcuclones web ublcun uqul sus urchlvos de conflguruclon. 1umblen lncluye ulgunos urchlvos de conflguruclon en nuestru lnstuluclon or defecto usl que vumos u $!B:) 7% *#(&:L, : ",( $G#(&$%&$(. =3;)23/(,+-' 1% *3& ;-1"*3& 4( +'&5(*(13& Puru comrobur que modulos estn lnstuludos or defecto apachectl -M vemos lo slgulente Loaded Modules: core_module (static) log_config_module (static) logio_module (static) mpm_worker_module (static) EM3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu http_module (static) so_module (static) alias_module (shared) auth_basic_module (shared) authn_file_module (shared) authz_default_module (shared) authz_groupfile_module (shared) authz_host_module (shared) authz_user_module (shared) autoindex_module (shared) cgid_module (shared) deflate_module (shared) dir_module (shared) env_module (shared) mime_module (shared) c -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj negotiation_module (shared) reqtimeout_module (shared) setenvif_module (shared) status_module (shared) Syntax OK Por lo que ul llevur uctlvo el '0^@0-,)& qulere declr que soortu LSC usl que se ueden uctlvur los modulos de muneru dlnmlcu. Nosotros odemos encontrur los modulos en lu curetu jusrjllbjuuchezjmodules cd /usr/lib/apache2/modules ls -la Lxlsten muchos modulos udlclonules que no se lncluyen en lu lnstuluclon estndur de Auche. Puru consultur estos modulos debemos ejecutur lu orden sudo apt-cache search libapache2-mod >'&5(*(,+-' Puru lnstulur un modulo de Auche huy que usur lu dlrectlvu \0/-W0-,)& del modulo mod_so. Cuyu slntuxls vlene deflnldu como LoadModule module filename Londe @0-,)& es el nombre del modulo y <*)&1/@& lu rutu y nombre del urchlvo ='0 donde se encuentru. EM6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Por ejemlo uru uctlvur el modulo @0-^'(&)*1+ LoadModule speling_module /usr/lib/apache2/modules/mod_speling.so Slendo necesurlo desues relnlclur Auche apachectl restart C"&$)%:&#*: Ln ulgunus dlstrlbuclones de Llnux huy otru formu de uctlvur los modulos. Sl nos dumos cuentu tenemos dos dlrectorlos jetcjuuchezjmodsuvulluble y jetcjuuchezjmodsenubled. Ln el rlmero estn todos los modulos que vlenen lncluldos en estu verslon de Auche mlentrus que en el segundo estn los que tenemos uctlvos en nuestro servldor medlunte enluces slmbollcos u los modulos en el dlrectorlo unterlor. Puru uctlvur un modulo usumos el comundo uzenmod con el nombre del modulo. sudo a2enmod speling que nos lnformu de lo que est sucedlendo y de que es necesurlo relnlclur el servldor Enabling module speling. To activate the new configuration, you need to run: service apache2 restart y uru desuctlvurlo se huce lguul ero con el comundo uzdlsmod. sudo a2dismod speling uru lo que obtenemos unu lnformuclon equlvulente. c -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Module speling disabled. To activate the new configuration, you need to run: service apache2 restart desues de cudu uctlvuclon o desuctlvuclon es necesurlo relnlclur el servldor. apachectl restart ten en cuentu que lu llneu unterlor es equlvulente u apache2 restart D&3 4 ,3'E+I"2(,+-' Cudu modulo en Auche z tlene un uso y conflguruclon dlferentes. Puru suber como usur cudu modulo lo mejor es consultur lu documentuclon de lu glnu oflclul. Lesde lu llstu de modulos se uede hucer cllck en cudu uno uru ver sus dlrectlvus y uso. Nosotros vumos u segulr con el ejemlo del modulo @0-^'(&)*1+= Podemos ver que solo tlene dos dlrectlvus que odemos usur: 9N&.a7(&))*1+ y 9N&.a9/'&]1)H. Lu rlmeru uctlvu o desuctlvu el modulo y lu segundu huce que solo se corrljun los errores de muyusculusjmlnusculus. Puru uctlvurlo lu correcclon comletu debemos unudlr ul urchlvo de conflguruclon lu slgulente llneu: CheckSpelling on Lesues de cudu cumblo en lu conflguruclon es necesurlo relnlclur lu mqulnu uru que lu modlflcuclon surtu efecto. apache2 restart EMK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Puru robur sl todo funclonu correctumente odemos lntentur curgur lu glnu web htt:jjloculhostjlnsdex.html untes de los cumblos en el servldor. Nos devuelve unu glnu de error generudu uutomtlcumente con Auche con el slgulente texto: Not Found The requested URL /insdex.html was not found on this server. Apache/2.2.22 (Ubuntu) Server at localhost Port 80 Sl desues de los cumblos lntentumos ucceder u lu mlsmu glnu web veremos que corrlge lu dlrecclon u htt:jjloculhostjlndex.html y curgu lu glnu de lnlclo de Auche. Pruebu u uctlvur el modulo que corrlge lu slntuxls modlflcundo el urchlvo httd.conf (no el uuchez.conf yu que usl es ms fcll comrobur lo que hemos hecho). Pruebu que todo funclonu correctumente y borru lus modlflcuclones en lu conflguruclon. 1en en cuentu lu dlrectlvu lfModule Levuelve lu conflguruclon ul estudo unterlor u este ejerclclo. C)!B#*,( +$ !,%=#;7):!#<% :(,!#:+,( : !:+: 9<+7", Ln el dlrectorlo f&:.f/(/.N&3f@0-'g&1/2)&- odemos ver que huy dos urchlvos usocludos u cudu modulo uctlvo. Los urchlvos .loud lncluyen lu dlrectlvu uru que se curgue el modulo en cuestlon mlentrus que los urchlvos .conf lncluyen dlrectlvus de conflguruclon que unlcumente se ullcurn sl se curgu un modulo determlnudo. Lsto se conslgue con lu dlrectlvu L<W0-,)& que funclonu como un lf de rogrumuclon. Reulmente lo que encontrumos en el dlrectorlo son enluces slmbollcos u los urchlvos en f&:.f/(/.N&3f@0-'g/>/*)/2)& c, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj ;31Q&5(5"& 4 ;31Q+'E3 Lstos dos modulos nos ermlten obtener lnformuclon muy utll sobre nuestro servldor. @0-^':/:,' est uctlvudo or defecto en nuestru dlstrlbuclon de Auche, ero se uctlvu y desuctlvu como cuulquler otro modulo. Podemos ver y modlflcur su conflguruclon en f&:.f/(/.N&3f@0-'g/>/*)/2)&f gedit status.conf vumos u urovechur uru ver otru dlrectlvu de conflguruclon. Sl nos fljumos uhoru solo nos ermlte consultur el estudo desde nuestru mqulnu. Allow from 127.0.0.1 ::1 Podemos unudlr unu llneu debujo con lu dlrecclon lP de otru mqulnu uru que nos de ucceso desde ellu. Se consultu dlchu lnformuclon en lu dlrecclon o nombre de nuestro servldor con: htt:jjz.68.6.cjserverstutus sl nuestru dlrecclon fueru esu. mod_lnfo no vlene uctlvudo or defecto sudo a2enmod info odemos consultur o modlflcur su conflguruclon gedit /etc/apache2/mods-enabled/info.conf Lstu lnformuclon se uede consultur en htt:jjz.68.6.cjserverlnfo modlflcundo lu dlrecclon lP or lu tuyu o el nombre de tu servldor. Recuerdu que uru oder usur los cumblos en lu conflguruclon huy que relnlclur el servldor. EMF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Consultu los dos urchlvos de conflguruclon usocludos ul modulo stutus. Lstudlu uru que se utlllzun lus dlrectlvus que se ejecutun en cuso de que se curgue el modulo y comentulo en cluse. Eubllltu umbos modulos y ermlte que se consulten desde lu mqulnu unfltrlon. Pruebu el modulo mod_stutus. Comruebu que funclonu y uctlvu lu oclon que muestru el estudo extendldo. Actlvu el modulo mod_lnfo y comruebu que funclonu. Anude u lu lnformuclon estndur lnformuclon sobre el modulo mod_stutus. Pruebu u consultur umbus glnus de lnformuclon y echu un vlstuzo u que lnformuclon se uede obtener. H+2%,532+3& )%2&3'(*%& 1% "&"(2+3& Ln determlnudus clrcunstunclus (or ejemlo unu lnstltuclon educutlvu como un lnstltuto o unu unlversldud) es utll que cudu usuurlo tengu un dlrectorlo en el que uedu creur su rolo conjunto de glnus web. Sl el numero de usuurlos es grunde, esto uede curgur lnnecesurlumente de trubujo ul udmlnlstrudor del servldor. Auche ofrece unu ulternutlvu uutomutlzudu uru estu sltuuclon medlunte el modulo @0-^,'&8-*8. Sl uctlvumos el modulo (or defecto no vlene uctlvo) cudu usuurlo tendr un esuclo ul que se ucceder medlunte lu URL htt:jjsltloejemlo.comjnombreusuurlo donde nombreusuurlo ser el nombre que tlene en el servldor Llnux. Cudu usuurlo uede creur uhoru en su curetu ersonul un dlrectorlo (,2)*.^N:@) donde ublcur sus glnus. Aqul se exllcu en ms detulle como se utlllzu lu curetu ersonul. No se uctlvu estu oclon uru el usuurlo 800:. Ln lu documentuclon del modulo uedes observur que el dlrectorlo en el que cudu usuurlo odr creur sus glnus es ultumente conflguruble. c -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Actlvu el modulo mod_userdlr y creu unu curetu uru el usuurlo con el que lnstuluste Llnux. Lentro de lu curetu creu un urchlvo ruebu.html y conflguru el modulo uru que ul ucceder u lu curetu ersonul del usuurlo desde un nuvegudor web se muestre dlcho urchlvo or defecto. Por ultlmo desuctlvu el modulo. EEM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Eosts vlrtuules Auche uede servlr vurlos sltlos web desde un unlco servldor web. Ll cllente nuncu dlferenclur sl son sltlos en servldores dlferentes o en lu mlsmu mqulnu. Auche es un servldor muy otente uru lu utlllzuclon de estu oclon. Sl or ejemlo somos los gestores de dos domlnlos LNS (www.luemresu.es y www.mluglnu.es) odemos ulojur umbos sltlos en el mlsmo servldor Auche. Uno de estos domlnlos se conslderur el sltlo rlnclul y todos los dems sern los hosts vlrtuules. ventujus: . Arovechur el hurdwure exlstente. z. Arovechur lus dlrecclones lP ubllcus dlsonlbles. Unu grun ventuju en el uso de hosts vlrtuules en Auche es que 1$)9#&$ B$)$+:) lu conflguruclon del sltlo rlnclul or lo que no hubr que reconflgurur todus lus dlrectlvus, solo lus que cumblen. Al lguul que usubu con los modulos, exlsten dos dlrectorlos uru contener los sltlos vlrtuules, uno uru los dlsonlbles y otro uru los uctlvos: f&:.f/(/.N&3f'*:&'g/>/*)/2)& y f&:.f/(/.N&3f'*:&'g&1/2)&- resectlvumente. Ll segundo contlene enluces slmbollcos u los sltlos del rlmero que esten uctlvos. 6+5+3 )32 1%E%,53 Lu conflguruclon del servldor vlrtuul or defecto se uede consultur gedit /etc/apache2/sites-available/default lo que nos mostrur -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> EE3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog $APACHE_LOG_DIR/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog $APACHE_LOG_DIR/access.log combined -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> Podemos comrobur que en el dlrectorlo de sltlos uctlvos se encuentru un urchlvo MMMg-&</,): que es el enluce slmbollco ul sltlo or defecto. Lstudlu y comentu en cluse lus dlrectlvus lncluldus en lu conflguruclon del sltlo vlrtuul or defecto. Ln el urchlvo odemos observur que el dlrectorlo rulz es f>/8fDDDf y lu conflguruclon que tlene el dlrectorlo. 1en en cuentu que es necesurlo relnlclur Auche uru que los cumblos en lu conflguruclon surtun efecto. EE6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Un dlrectorlo heredu lus dlrectlvus del suerlor sl no se sobrescrlben. Por ello, todos los dlrectorlos que creemos dentro de f>/8fDDDf tendrn lu mlsmu conflguruclon que el rulz exceto en uquellus dlrectlvus que eseclflquemos en lu conflguruclon rolu del dlrectorlo. vumos u modlflcur lu conflguruclon del sltlo or defecto. Creu un urchlvo !"#=N:@) en el dlrectorlo rulz con tu nombre y tus dutos. Ahoru queremos que el lndlce o glnu rlnclul del dlrectorlo seu lu que ucubus de creur. Que dlrectlvu debes unudlr? Ls oslble estublecer ms de unu glnu rlnclul? Ln cuso uflrmutlvo, cul se curgur sl uccedemos ul sltlo sln eseclflcur glnu? Que sucede sl no huy nlngunu de lus glnus estublecldus como glnu rlnclul? 8uscu unu dlrectlvu que deshublllte el llstudo de urchlvos lncluso sl no encuentru nlngunu de lus glnus or defecto. Creu un nuevo dlrectorlo dentro del dlrectorlo rulz. Ll nombre del dlrectorlo ser tu uellldo. Creu vurlos urchlvos html ero no estublezcus nlnguno como el rlnclul. Accede ul dlrectorlo desde un nuvegudor. Ahoru modlflcu lu conflguruclon del dlrectorlo uru que llste el contenldo. Que sucede? Lstublece uno de los urchlvos como el rlnclul uru el dlrectorlo y vuelve u robur. Recuerdu que desues de cudu cumblo en lu conflguruclon es necesurlo relnlclur Auche. Como yu debes huber vlsto en lu rctlcu, uru deshubllltur el llstudo de los contenldos de un servldor, host vlrtuul o dlrectorlo se usu Options -Indexes Sl quleres uctlvurlo uru un servldor, dlrectorlo o host vlrtuul se utlllzu Options Indexes FollowSymLinks Lu oclon de segulr los enluces no es obllgutorlu ero se suele unudlr. 1en en cuentu que huy que mlrur que lu conflguruclon no este sobrescrltu en lu conflguruclon del host vlrtuul or defecto o de ulgun dlrectorlo en urtlculur. Lo que debe hucerse en estos cusos es unu comrobuclon de lu dlrectlvu de lo urtlculur u lo generul: dlrectorlos, host vlrtuul y servldor. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj K31+E+,('13 *3& ;%'&(R%& 1% %2232 Lu dlrectlvu U8808!0.,@&1: slrve uru estublecer mensujes de error ersonullzudos uru dlferentes sltuuclones. Los codlgos de error que ueden utlllzurse son los deflnldos or lu orgunlzuclon w uru el rotocolo htt en este cuso lu verslon . y se ueden consultur uqul. Ln estu otru glnu se exllcun de unu muneru ms comrenslble. 1en en cuentu que el codlgo es solo el ultlmo numero de cudu uurtudo y tlene tres clfrus. Lstu dlrectlvu se usur tuntus veces como se creu necesurlo. Se estublece de muneru lndeendlente 1:): !:+: (#&#, *#)&7:" y se suele escrlblr debujo de 9,':0@\0+. Ln el uurtudo unterlor hemos vlsto que se usu unu vurluble de entorno llumudu "Z"9TU^\]h^!L[ uru determlnur el dlrectorlo donde se ublcurn los urchlvos de log. Ln estu lnstuluclon es f>/8f)0+f/(/.N&3f ero sl no odemos buscur los urchlvos en lu estructuru de dlrectorlos o consultur el vulor de lu vurluble de entorno. Lstublece ucclones ersonullzudus uru el error c. Prlmero redlrlge lus consultus u glnus no encontrudus u lu glnu rlnclul del sltlo. Luego ruebu u redlrlglr estos errores u lu glnu rlnclul del lnstltuto. Ln lu terceru ruebu debes mostrur un mensuje dlrectumente que dlgu "glnu no encontrudu, consulte u Nombre Aellldo' con tu nombre y uellldo. Por ultlmo creu un urchlvo html que exllque el error y huz que se muestre sl se du el cuso. Consultu lu llstu de errores deflnldos y uuntu los que creus ms utlles. Comentulos en cluse. 9*+(& ( 3523& 1+2%,532+3& Por defecto lu estructuru de un sltlo web ser lu que demos u los dlrectorlos desde el unto de montuje del dlrectorlo rulz del sltlo, sln emburgo es oslble lnclulr otros dlrectorlos del rbol de nuestro servldor y hucer que urezcun urte del sltlo como cuulquler otru curetu que este contenldu flslcumente dentro. Ls ulgo slmllur u tener un enluce slmbollco u urchlvos o curetus en otro dlrectorlo. Ln el urchlvo de conflguruclon del sltlo rlnclul vlsto untes yu exlste un ullus u un dlrectorlo que se encuentru fueru de lu curetu deflnldu uru el sltlo. EEK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Puru reullzur estu oeruclon se utlllzu lu dlrectlvu ")*/' y justo debujo (no es obllgutorlo ero sl unu buenu rctlcu) se conflguru con lu dlrectlvu !*8&.:08H como cuulquler otro dlrectorlo. Ln lu gulu rldu de dlrectlvus, se ueden ullcur u dlrectorlos todus lus que llevun "d' en lu terceru columnu. Creu un dlrectorlo jvurjextrus y colocu dentro unu glnu E1ML que te ermltu dlferenclurlu de lus dems. Conflguru el dlrectorlo uru que uurezcu como jextrus en nuestro sltlo web y ullcu lus dlrectlvus de dlrectorlo que conslderes lmortuntes. N%1+2%,,+3'%& Algunus veces es utll oder redlrlglr lus llumudus u unu dlrecclon web uru que se rocesen en otro unto. Por ejemlo sl hemos cumbludo lu estructuru de nuestro sltlo y hemos reublcudo lu glnu de contucto odemos querer que los usuurlos que uccedun medlunte lu untlguu dlrecclon seun redlrlgldos uutomtlcumente u lu nuevu. 1umblen uede ser utll sl hemos dlvldldo nuestro sltlo uru fucllltur lu gestlon o el muntenlmlento. Puru ello se usu lu dlrectlvu [&-*8&.: que nos ermlte usoclur unu dlrecclon ubsolutu o relutlvu u otru. Creu unu redlrecclon en el sltlo rlnclul del servldor uru que en cuso de que ulgulen quleru ucceder u juflclones se redlrlju u unu glnu que vlsltes muy u menudo. Creu uhoru unu redlrecclon que en el cuso de ulgulen quleru ucceder u jext se le muestre el contenldo de jextrus que creuste en el unto unterlor. =2%(,+-' 1% ?3&5& 7+25"(*%& Lxlsten tres formus dlferentes de creur hosts vlrtuules en Auche: , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj . 8usudos en %,96)$(: Lste tlo es lu oclon ms comun. Se conflguru todo uru que multlles domlnlos LNS uunten u unu unlcu mqulnu con Auche. Requlere conflguruclon del servldor LNS uru que funclone. Lste metodo huce muy fcll mlgrur nuestro servldor u otru dlrecclon lP. Ls el `%#!, 9J&,+, E7$ *:9,( : $(&7+#:). z. 8usudos en F-: Ln este metodo se necesltu conflgurur lus dlrecclones lP de cudu sltlo en Auche. Ll servldor flslco tendr vurlus dlrecclones lP, unu uru cudu sltlo. . 8usudos en 17$)&,(. Cudu sltlo se utender en lu mlsmu lP o nombre ero en dlstlntos uertos. Ls unu extenslon de cuulquleru de lus ulternutlvus unterlores. . vurlos ($)*#+,)$( 1)#%!#1:"$(: Ln estu oclon se muntlenen vurlus conflguruclones rlnclules en el servldor. Solo se recomlendu su uso sl es necesurlo tener un urchlvo de conflguruclon dlferente uru cudu sltlo. Aenus se usu y es lu oclon menos recomendudu uru conflgurur nuestro servldor. Ll uso de estus ulternutlvus no es excluyente. Pueden comblnurse vurlus o todus en el mlsmo servldor Auche. Ln estu dlrecclon est lu documentuclon sobre hosts vlrtuules de uuche. Ln estu otru se ueden ver ejemlos de conflguruclon. Lstudlu y comentu en cluse los rlmeros ejemlos del enluce unterlor. Centrute solo en los rlmeros, que trutun de los tlos llstudos unterlormente. Con cuulquleru de lus tres ulternutlvus es necesurlo uctlvur rlmero el modulo de hosts vlrtuules. sudo a2enmod vhost_alias lo que uctlvu el modulo Enabling module vhost_alias. To activate the new configuration, you need to run: service apache2 restart EEF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu y nos lnformu de que es necesurlo relnlclur el servldor. apachectl restart Comrobumos que el modulo se encuentre uctlvo. apachectl -M vemos que uurece ul flnul de lu llstu. Loaded Modules: core_module (static) log_config_module (static) logio_module (static) mpm_worker_module (static) http_module (static) so_module (static) alias_module (shared) auth_basic_module (shared) authn_file_module (shared) -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj authz_default_module (shared) authz_groupfile_module (shared) authz_host_module (shared) authz_user_module (shared) autoindex_module (shared) cgid_module (shared) deflate_module (shared) dir_module (shared) env_module (shared) mime_module (shared) negotiation_module (shared) reqtimeout_module (shared) setenvif_module (shared) status_module (shared) vhost_alias_module (shared) E3M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Syntax OK Puru usur estos metodos es necesurlo oder hucer que todos los nombres de domlnlo usocludos u los hosts vlrtuules que vumos u creur uunten u lu dlrecclon lP o lus dlrecclones lP de nuestro servldor web. Sl hemos contrutudo un nombre de domlnlo con un roveedor este nos roorclonur lu muneru de hucerlo. Ln cuso de que tengumos o querumos ubllcur nuestros rolos sltlos debemos conflgurur un servldor LNS. Ln los uendlces encontrurs unu muneru muy slmle de conflgurur LNS en nuestro servldor. Ctru oclon uru roburlo es edltundo el urchlvo N0':' sudo gedit /etc/hosts y en el unudlr los ullus necesurlos. Los sltlos vlrtuules utlllzun unu estructuru de dlrectorlos slmllur u lu que hemos vlsto uru los modulos. Ln /etc/apache2/sites-available/ Lncontrumos los sltlos dlsonlbles, que ul ser uctlvudos creun un ullus en /etc/apache2/sites-enabled/ P,(&( *#)&7:"$( 6:(:+,( $% %,96)$( Lste metodo es el ms recomendudo yu que requlere unu unlcu dlrecclon lP uru oder ulojur multlles sltlos. Podemos comrobur que en el urchlvo f&:.f/(/.N&3f(08:'=.01< se encuentru lu dlrectlvu NameVirtualHost *:80 Lstu dlrectlvu es lu necesurlu uru oder usur los hosts vlrtuules vusudos en nombres. Al uctlvurse deshubllltu el servldor rlnclul (el que hublumos usudo en lu lnstuluclon munuul) y or ello en este tlo de lnstuluclon el servldor vlrtuul es reulmente un sltlo vlrtuul or defecto. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Ll rlmer uso es creur los reglstros LNS uru que el nombre de domlnlo uunte u nuestru mqulnu o unudlrlos en el flchero N0':'. Lebemos creur un dlrectorlo uru cudu sltlo y usl tener los documentos seurudos. Adems hubrlu que creur un urchlvo *1-&`=N:@) en el dlrectorlo uru que lo curgue ul consultur el sltlo. mkdir /var/www/ejemplo2.es Ln este unto odemos ucceder u los dutos de ejemloz medlunte lu dlrecclon htt:jjloculhostjejemloz.esj ero nuestro objetlvo es oder hucerlo escrlblendo htt:jjejemloz.esj Lo tercero que deberlumos hucer es escrlblr los dutos del nuevo host vlrtuul en lu conflguruclon de Auche. Recuerdo que hemos vlsto dos cusos dlferentes de donde se encontrubu lu conflguruclon de Auche, ero con lu oclon que estumos usundo uctuulmente lu conflguruclon rlnclul estubu en el urchlvo f&:.f/(/.N&3f/(/.N&3=.01< y desde el se lmortubun otros muchos. Podemos ver que se lmortu unu curetu comletu de lu que coge lu conflguruclon de los hosts vlrtuules. . # Include the virtual host configurations: Include sites-enabled/ . Sln emburgo, untes de hucer esto debemos creur el host vlrtuul en lu curetu de hosts dlsonlbles y lo uctlvuremos cuundo este termlnudo. Lu curetu en lu que odemos unudlr los dutos de nuestros hosts vlrtuules es f&:.f/(/.N&3f'*:&'g/>/*)/2)& Sl vumos u lu curetu que nos lndlcun odemos consultur el urchlvo de lu conflguruclon de un host vlrtuul, el sltlo or defecto. Lsto uede servlrnos ejemlo y gulu uru creur otros. Creumos el urchlvo de conflguruclon E33 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu sudo gedit /etc/apache2/sites-available/ejemplo2.es y escrlblmos lo slgulente NameVirtualHost 10.0.2.15:80 <VirtualHost 10.0.2.15:80> ServerName ejemplo2.es ServerAlias www.ejemplo2.es ServerAdmin [email protected] DocumentRoot /var/www/ejemplo2.es # # Aqui pueden ir otras directivas. # Por defecto hereda las del archivo principal. # </VirtualHost> Lntre todus lus dlrectlvus que se ueden lnclulr son eseclulmente utlles lus referentes u +#)$!&,)#,( yu que sl el sltlo constu de vurlos (lo ms hubltuul) uede lnteresurnos tener conflguruclones dlferentes uru cudu uno. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 1umblen es hubltuul conflgurur reglstros de error lndeendlentes uru cudu sltlo medlunte lu dlrectlvu udecuudu. Lsto se huce dentro de lu conflguruclon de cudu sltlo vlrtuul dejundo el rlnclul uru el servldor en sl. Yu vlmos que en el sltlo or defecto se lnclulun. ErrorLog $APACHE_LOG_DIR/error.log CustomLog $APACHE_LOG_DIR/access.log combined Pero or suuesto debemos +:) ,&),( %,96)$( : %7$(&),( )$;#(&),( uru que no se usen los mlsmos. Ls buenu ldeu )$*#(:) ": !,%=#;7):!#<% +$" (#&#, 1)#%!#1:" uru hucernos unu ldeu de que conflgurur yu que en el ejemlo unterlor he reducldo lus dlrectlvus ul mlnlmo. Sl en lugur de lu dlrecclon lP escrlblmos se reullzur uru todus lus lP que tengu lu mqulnu. Ln los dos cusos en los que hemos escrlto lu dlrecclon lP y el uerto odrlumos huber uesto un usterlsco () en lugur de lu dlrecclon ero se esturlumos lndlcundo u Auche que escuche todus lus etlclones lo que odrlu generur confllctos. Slemre es referlble concretur los dutos. Ahoru yu hemos conflgurudo el nuevo host usl que odemos uctlvurlo. sudo a2ensite ejemplo2.es y recurgur los sltlos de Auche service apache2 reload sl ul hucerlo nos du el error * Reloading web server config apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName Lebemos ubrlr el urchlvo N::(-=.01< y unudlr E36 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ServerName LocalHost C el nombre comleto de nuestro servldor. Yu odemos ucceder u nuestro documento medlunte www.ejemloz.es Puru desuctlvur un sltlo vlrtuul se huce con (or ejemlo uru desuctlvur el sltlo or defecto). sudo a2dissite default Ln cuso de reclblr un $)),) a9)(,?%@ S(;%T+25"(*F3&5 UVWX ?(& '3 T+25"(*F3&5&b suele ser orque hus uesto lu dlrectlvu NumevlrtuulEost en umbos urchlvos de conflguruclon de los sltlos. Al oder ser unu dlrectlvu de servldor, con onerlu en el N::(-=.01< vule. Creu un nuevo host vlrtuul busudo en nombre y ruebu que todo seu correcto. Creu otro y vers que uhoru tlenes lu oslbllldud de ucceder u tres sltlos en lu mlsmu mqulnu. Euz lu usocluclon medlunte el urchlvo N0':' de Llnux. Posterlormente ellmlnuremos lu entrudu del urchlvo hosts y reullzu lu usocluclon medlunte un servldor LNS. Por ultlmo desuctlvu el sltlo vlrtuul. Puru estu rctlcu vus u necesltur conflgurur tu servldor LNS. Ln los uendlces exllco como. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Control de ucceso Ln este unto comenzumos con vurlos usectos reluclonudos con lu segurldud de nuestro servldor web. Con este rlmer uurtudo vumos u conslderur los usectos que nos vun u ermltlr flltrur el ucceso u determlnudos recursos. Ll control de ucceso se reflere u cuulquler metodo que nos ermltu flltrur el ucceso u ulgun recurso determlnudo. Euy tres modulos lmllcudos en el control de ucceso en Auche: mod_uuthz_host, mod_setenvlf y mod_rewrlte. 1umblen exlsten tres metodos uru gestlonur el control de ucceso reluclonudos con estos modulos. =3'523* 1% (,,%&3 /(&(13 %' *( 1+2%,,+-' Lste tlo de control se busu en el uso del modulo mod_uuthz_host y en lus dlrecclones lP de lus mqulnus que qulerun ucceder u nuestro servldor. Podemos comrobur que este modulo yu est uctlvo en nuestru lnstuluclon y de hecho yu hemos usudo unterlormente este tlo de control de ucceso uru ermltlr ucceder u urtes de nuestro servldor desde lu mqulnu unfltrlon en lus rctlcus. Lus dlrectlvus que se utlllzun uru este cuso son "))0D y !&1H. Cenerulmente vun usocludus con otru, ]8-&8. Ll uso de estus dlrectlvus es Allow from direccin Ln lugur de unu dlrecclon lP se uede utlllzur el nombre de lu mqulnu u lu que queremos ermltlr o denegur el ucceso. Sl queremos evltur que desde unu dlrecclon lP determlnudu se uccedu u nuestru mqulnu (o u un recurso determlnudo, recuerdu que nosotros yu lo hemos usudo dentro de conflguruclon de dlrectorlos eseclflcos) escrlblrlumos Deny from 23.43.234.22 E3K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 1umblen odemos flltrur or un nombre de domlnlo (LNS) Allow from maq_ejemplo.instituto.es lnvestlgu como se uede flltrur un domlnlo entero y un rungo de dlrecclones lP en lugur de mqulnus sueltus. es oslble flltrur dlrecclones con unu mscuru que no seu multllo de 8? como? Lu dlrectlvu ]8-&8 es cusl ms lmortunte que estus que hemos vlsto. lndlcu sl se ullcurn rlmero lus cluusulus !&1H o lus "))0D, ero udems lndlcu que se hur uru lo que no este eseclflcudo. Sl usumos Order Allow, Deny Prlmero se rocesun todus lus dlrectlvus Allow y sl no nlngunu encuju, lu etlclon se rechuzu. Luego se rocesun todus lus dlrectlvus Leny, sl encuju con ulgunu se rechuzu lu etlclon. Sl encuju con unu dlrectlvu Allow y unu Leny se ullcu lu ultlmu or lo tunto se rechuzu. 1odus lus etlclones que no colncldun con nlngunu dlrectlvu se rechuzun. Sl usumos Order Deny, Allow Prlmero se lntentu que encujur lu etlclon con todus lus dlrectlvus Leny y sl colnclde se rechuzu lu etlclon. Luego se rocesun lus dlrectlvus Allow y sl encuju con ulgunu se ermlte el ucceso. Sl ulgunu etlclon encuju con unu dlrectlvu Leny ero tumblen con unu Allow, se ermlte. 1odus lus etlclones que no colncldun con nlngunu dlrectlvu se ermlten. z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Creu un dlrectorlo con tu nombre en el sltlo or defecto. Permlte el ucceso desde lu mqulnu unfltrlon ero denlegulo desde lu mqulnu en lu que se encuentru el servldor. 1en en cuentu que estus dlrectlvus no son excluslvus de los dlrectorlos. Pueden ullcurse ul sltlo web comleto or ejemlo. Puru ello lrn el lu conflguruclon generul del sltlo y no dentro de unus etlquetus !*8&:08H. =3'523* 1% (,,%&3 )32 7(2+(/*% 1% %'532'3 Lste tlo de control de ucceso se reullzu medlunte el uso de los modulos mod_uuthz_host y mod_setenvlf. Se busu en ermltlr el ucceso segun lu conflguruclon de ulgunu vurluble de entorno de lu mqulnu del usuurlo y or ello no es muy recomenduble. =3'523* 1% (,,%&3 ,3' %* ;-1"*3 2%.2+5% Medlunte el uso del modulo mod_rewrlte odemos controlur el ucceso segun crlterlos urbltrurlos. Por ejemlo sl queremos denegur el ucceso durunte el erlodo de lus ocho de lu turde u lus 6 de lu mununu, escrlblremos RewriteEngine On RewriteCond %TIME_HOUR >20 [OR] RewriteCond %TIME_HOUR <07 RewriteRule ^/fridge - [F] Ll uso de este metodo se busu en lus dlrectlvus RewrlteCond y RewrlteRule ero quedu fueru del ulcunce de este curso y se lndlcu solo como lntroducclon u lus oslbllldudes que ermlte. E3F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Autentlcuclon y uutorlzuclon Lstos dos termlnos vun llgudos ero no son lo mlsmo u esur de que muchu gente los confunde. Lu uutentlcuclon conslste en comrobur que ulgulen es qulen dlce ser mlentrus que lu uutorlzuclon es comrobur que ulgulen tlene ermlso uru ucceder u un lugur o recurso determlnudo. Por ejemlo, sl quleres vlujur ul extrunjero (fueru de los ulses que hu flrmudo el Acuerdo de Schengen) necesltus un usuorte y un vlsudo. Ll usuorte es un documento generul que slrve uru demostrur que eres qulen dlces ser mlentrus que el vlsudo te uutorlzu u vlsltur un uls determlnudo. Ln lnformtlcu, lu uutentlcuclon uede durnos ucceso u dlferentes recursos uru los que estemos uutorlzudos, e lncluso estus uutorlzuclones ueden vurlur deendlendo de dlferentes clrcunstunclus. Por ejemlo, odemos tener ermlso uru ucceder u determlnudo recurso en unu frunju horurlu determlnudu o desde lu oflclnu de trubujo ero no desde cusu. Ll roceso de uutorlzuclon suele lmllcur lu uutentlcuclon. Por ejemlo sl un cllente qulere ucceder u determlnudo recurso el servldor le lde que se uutentlque (medlunte un mensuje de estudo c: Authorltutlon Requlred) or ejemlo con unu sollcltud de usuurlo y contrusenu. Sl estu uutentlcuclon es osltlvu se ermltlr el ucceso y sl no se resonder con otro mensuje c. Un roblemu de estu formu de uutentlcuclon es que lu contrusenu nl se encrltu nl se ocultu, or lo que ms udelunte hubluremos del rotocolo htts. Cuulquleru con un snlffer odrlu lntercetur los nombres de usuurlo y contrusenus. G* ;-1"*3 ;31Q("5? Lste modulo nos ermlte reullzur uutorlzuclon de unu muneru bustunte bslcu. Nos vu u ermltlr estublecer ucceso medlunte usuurlo y contrusenu u secclones de nuestro sltlo. Por ejemlo odemos estublecer un dlrectorlo ul que huyu que ucceder con contrusenu. Podemos eleglr cuulquler dlrectorlo slemre que el 7(7:)#, que lunzu uuche (dlrectlvu S'&8) tengu ucceso u el. No es necesurlo que el dlrectorlo este en lu estructuru bslcu de nuestro sltlo, ero sl no est tendremos que estublecer un ")*/'. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj mkdir /var/www/privado mkdir /var/secreto Ahoru unudlmos ul sltlo en el que querumos gestlonur lu uutentlcuclon gedit /etc/apache2/sites-available/default lu conflguruclon uru el dlrectorlo <Directory "/var/www/privado"> AuthName Acceso privado: Introduzca su usuario y contrasea AuthType Basic AuthUserFile /var/secreto/.miembros Require valid-user </Directory> ! ",:Ne/@& le lndlcu ul usuurlo que hucer. Ls un mensuje uru el usuurlo. ! ",:NPH(& es el tlo de uutentlcuclon que usuremos, htt solo udmlte Y(&+,. Lu otru oclon que exlste es H+I%&5 que u dlferenclu de lu oclon b/'*. no trunsmlte los nombres de usuurlo y contrusenu como texto luno (y or lo tunto es unu oclon de segurldud mejor) ero que no est dlsonlble uru todos los nuvegudores veb como oclon "outofthebox'. Ll clfrudo que usu lu oclon !*+&': es bustunte debll or y uunque su uso no es ldentlco ul de lu oclon b/'*. es bustunte slmllur, or lo que no lo veremos. ! ",:NS'&8G*)& es el urchlvo que se utlllzur uru guurdur lus contrusenus. lndlcu lu rutu y se llumur .mlembros. ! [&Q,*8& eseclflcu que ser necesurlo ucceder con un usuurlo vlldo. Ahoru necesltumos creur el urchlvo de contrusenus. E4M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu /usr/bin/htpasswd -c /var/secreto/.miembros srsergio Londe debers eseclflcur lu rutu u los ejecutubles de uuche sl no es lu mlsmu, c es lu oclon uru creur el urchlvo usl que sl vus u unudlr otro mlembro debes qulturlu. Lu rutu ul urchlvo de contrusenus debe ser lu mlsmu eseclflcudu uru lu conflguruclon del sltlo y '8'&8+*0 ser el nombre de usuurlo que queremos creur. Nos edlr que creemos unu contrusenu. Podemos usegururnos de que se hu creudo el usuurlo ubrlendo el urchlvo. Lute cuentu de que lu contrusenu est codlflcudu. gedit /var/secreto/.miembros Relnlclu uuche apachectl restart Ahoru yu tlenes unu secclon uru ucceso solo con usuurlo y contrusenu. 1en en cuentu que lu debllldud de B&&1 en lu trunsmlslon de lu lnformuclon huce que este metodo %, ($: ($;7), ero se uede soluclonur usundo B&&1( como veremos ms udelunte. Creu unu secclon rlvudu en tu sltlo e lntroduce ulgunos urchlvos html. Creu ul menos dos usuurlos que tengun ucceso y ruebu u ucceder tunto con ellos como con dutos no vlldos. Slemre se hublu de que lu lnformuclon que se trunsmlte or lnternet como texto luno es muy fcll de lntercetur. Como se hurlu esto es nuestru red lnternu? Que rogrumus necesltus? Serlus cuuz de lntercetur un usuurlo y contrusenu envludos or un usuurlo uru ucceder u lu secclon rlvudu creudu en el unto unterlor? Amlluclon: lnvestlgu como se hurlu lo mlsmo con lu oclon !*+&':. Purece ser que Auche true Llgest desuctlvudo or defecto y lo unlco que huce es codlflcur ero no encrltur los dutos or lo que no merece lu enu nl uctlvurlo. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj O3& E+,?%23& Z?5(,,%&& Lus soluclones vlstu hustu uhoru no son muy udecuudus sl queremos oder delegur lu creuclon y control de zonus rlvudus uru mlembros determlnudos. Lsto uede ser muy utll sl or ejemlo hemos montudo unu web uru unu emresu que tlene su rolo udmlnlstrudor de slstemus yu que evltur que tengumos que gestlonur todo nosotros. 1umblen nos fucllltur el trubujo sl huy muchos cumblos en lus zonus rlvudus o mlembros que se conecten u ellus. Podemos conocer ms sobre htuccess en este urtlculo. Ctru web nos lntroduce u ulgunos de los usos ms comunes de estos urchlvos con unu segundu urte. Puru ermltlr el uso de flcheros =N:/..&'' en nuestro servldor o sltlo vlrtuul (lu dlrectlvu se uede usur en umbos entornos) lo rlmero que debemos hucer es modlflcur el urchlvo de conflguruclon. Ln ml cuso voy u hucerlo en el sltlo vlrtuul or defecto. Lebemos modlflcur lu dlrectlvu AllowOverride None Y cumblurlu u AllowOverride AuthConfig Ll lugur en el que modlflcur lu dlrectlvu deende de lo que necesltemos. 1en en cuentu que lus dlrectlvus se heredun sl no se encuentru otru ms eseclflcu, or ello, en nuestro urchlvo de conflguruclon del sltlo vlrtuul or defecto deberlu lr en el dlrectorlo jvurjwww or lo menos yu que sl lo onemos en el rulz ero no en el rlmero, se muntendrlu lu conflguruclon unterlor. <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride AuthConfig E43 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Order allow,deny allow from all </Directory> Lo que ermlte que modlflquemos lus dlrectlvus de uutorlzuclon medlunte un flchero . N:/..&''. Ln muchos sltlos lndlcun que huy que ermltlr lu sobre escrlturu de todus lus dlrectlvus medlunte "))0D]>&88*-& ")) ero es evldente que es eor oclon. Luego relnlclumos el servldor Auche apachectl restart Ahoru odrlumos creur flcheros dlrectorlos y conflgurur su control de ucceso en cudu uno de ellos. mkdir /var/www/ficheros/ cd /var/www/ficheros/ Ln cudu dlrectorlo que queremos gestlonur usl debemos creur un flchero .N:/..&'' y durle un contenldo slmllur ul slgulente. AuthName Seccin Privada: Prueba de .htaccess AuthType Basic AuthUserFile /var/secreto/.miembros Require valid-user 1en en cuentu que: -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj ! Lo que hemos hecho hu sldo sucur lu conflguruclon del control de ucceso del urchlvo de conflguruclon del servldorjsltlo vlrtuul u un urchlvo lndeendlente. ! Ee usudo el mlsmo urchlvo de usuurlos y contrusenus que en el unto unterlor uru durle coherenclu u los ejemlos, ero esto no es necesurlo. ! Los usuurlos y sus contrusenus se creurlun lguul que en el uurtudo unterlor. ! Lu creuclon o modlflcuclon de un flchero de este tlo no lmllcu relnlclur el servldor. ! Se debe mejorur lu segurldud cumblundo los ermlsos de ucceso ul flchero .N:/..&''. Por lo menos el usuurlo de Auche debe tener ucceso. Creu dos dlrectorlos en tu sltlo or defecto y conflgurulos uru que en el rlmero uedun ucceder dos usuurlos y en el segundo solo uno de ellos. Puru ello en Requlre debe lr su nombre de usuurlo. 9I2")('13 "&"(2+3& )(2( %* ,3'523* 1% (,,%&3 Sl queremos reflnur ms el control de ucceso tenemos vurlus ulternutlvus. Por ejemlo odemos ermltlr el ucceso u solo ulgunos usuurlos eseclflcundo sus nombres en lu clusulu [&Q,*8& en cuulquler sltlo que lu usemos. require user sergio maria Ctru ulternutlvu es creur urchlvos de usuurlos dlferentes uru dlstlntos dlrectorlos de nuestro sltlo. <Directory "/var/www/ventas"> AuthName Acceso privado: Introduzca su usuario y contrasea AuthType Basic AuthUserFile /var/secreto/.miembros-ventas E46 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Require valid-user </Directory> <Directory "/var/www/finanzas"> AuthName Acceso privado: Introduzca su usuario y contrasea AuthType Basic AuthUserFile /var/secreto/.miembros-finanzas Require valid-user </Directory> Lu ultlmu oclon usur or usur lu dlrectlvu ",:Nh80,(G*)&. Asl odremos tener todos los usuurlos en el mlsmo flchero y luego uslgnurles gruos en otro urchlvo. <Directory "/var/www/ventas"> AuthName Acceso privado: Introduzca su usuario y contrasea AuthType Basic AuthUserFile /var/secreto/.miembros AuthGroupFile /var/secreto/.grupos -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Require group ventas </Directory> <Directory "/var/www/finanzas"> AuthName Acceso privado: Introduzca su usuario y contrasea AuthType Basic AuthUserFile /var/secreto/.miembros AuthGroupFile /var/secreto/.grupos Require group finanzas </Directory> 1en en cuentu que: ! Se usu el mlsmo urchlvo de mlembros uru todos los dlrectorlos. ! Euy que unudlr lu dlrectlvu y el flchero de gruos. ! Ln lu clusulu Requlere se lndlcu el gruo que uede ucceder. Ll urchlvo .gruos ser un flchero de texto con ulgo como ventas: sergio maria finanzas: carlos roberto E4K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Modlflcu lu conflguruclon del ejerclclo unterlor uru que uedun ucceder dos gruos de usuurlos dlferentes u cudu dlrectorlo con el ultlmo metodo. Puede un usuurlo estur en ms de un gruo? Anude un tercer dlrectorlo y otro gruo. Lu ucceso ul tercer dlrectorlo u dos de los tres gruos. Como se huce esto? , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Ll rotocolo E11PS Yu hemos vlsto que el rotocolo E11P es muy lnseguro uru trunsmltlr lnformuclon senslble. Ls muy fcll cuturur estu lnformuclon y leer dutos como nombres de usuurlos o cluves. Cuulquler lnformuclon que se envlu vu sln clfrur or lo que se trunsmlte como un texto que cuulquleru que cuture nuestru comunlcuclon uede leer. Ll rotocolo E11PS se utlllzu uru evltur este roblemu. Sus slglus se corresonden con TH(&8:&`: P8/1'<&8 Z80:0.0) 6%,"2% lo que yu lndlcu que unude segurldud u E11P. Reulmente no es un rotocolo slno que se vusu en lntroduclr unu cuu con el rotocolo SSL (o derlvudos, ms udelunte se hublu de todo esto) entre lu cuu de trunsorte y lu cuu de ullcuclon en el conjunto de rotocolos 1CPjlP. Ll rotocolo E11PS roorclonu :7&$%&#!:!#<% de los usuurlos con el servldor con el que se conectu. Por ejemlo cuundo nos conectumos u nuestro correo web (or ejemlo Cmull) suele hucerse medlunte unu conexlon E11PS. Con el uso de este rotocolo tumblen se conslgue $%!)#1&:!#<% de lu lnformuclon que envlumos y reclblmos. Por ello cuundo nos conectumos u un servldor que solo utlllzu E11PS uru lu uutentlcuclon el nuvegudor nos uvlsu (unu vez nos hemos conectudo) de que el resto de lu comunlcuclon no usu E11PS y or lo tunto lu trusferenclu de lnformuclon uede ser lnseguru. Lsto nos rotege contru los utuques de tlo W/1gL1gPN&gW*--)&. 1odo lo que se envlun en un mensuje E11PS est encrltudo, lncluyendo lus cubecerus. Por suuesto lu encrltuclon tumblen est sujetu u utuques que lntenten desclfrur lu cluve y el ulgorltmo usudos uru clfrur el contenldo. lnvestlgu que ulgorltmos y que tlo de cluves se utlllzun en lnternet uctuulmente. E4F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Que son los ulgorltmos de cluve slmetrlcu y los ulgorltmos de cluve uslmetrlcu? Que con lus cluves rlvudus y cluves ubllcus? Como se utlllzun? Lstu glnu de lu vlkledlu te uede uyudur u comrender estos concetos y los que veremos u contlnuuclon. Neceslturs tener unu ldeu de los untos unterlores de este ejerclclo uru entenderlu. Un sltlo que use E11PS deberlu tener todos sus contenldos rotegldos or este rotocolo uru evltur oslbles utuques o robos de lnformuclon u truves de lus urtes lnsegurus. E11PS es un oco menos eflclente que E11P or lo que sl se utlllzu en sltlos donde lu trunsferenclu de lnformuclon es muy grunde uede noturse en el rendlmlento. Por suuesto en el cuso de que lu lnformuclon trusferldu seu senslble, lus ventujus comensun con creces u los lnconvenlentes. Ll rotocolo E11PS usu el 17$)&, HHc or defecto. Al lguul que sucedlu con E11P y el uerto 8c, en cuso de que se utlllce este uerto no es necesurlo que el cllente lo lndlque en lu burru de dlrecclones del nuvegudor. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Certlflcudos Llgltules Ll rotocolo E11PS encrltu lu comunlcuclon uru que qulen cuture trumus de ellu no uedu ver los contenldos. Los nuvegudores web uctuules busun el uso de E11PS en el conoclmlento de Autorldudes Certlflcudorus que emlten Certlflcudos Llgltules uru usegurur que el servldor ul que nos conectumos es qulen dlce ser. Lstus Autorldudes Certlflcudorus son o ugentes dedlcudos u ello eseclflcumente o emresus como Mlcrosoft. Ll uso de E11PS se busu en lu conflunzu que nos roorclonen lus entldudes que emlten los certlflcudos. Cuundo usumos un nuvegudor web determlnudo, lu emresu que lo hu desurrolludo yu hu lntroducldo en el determlnudus Autorldudes Certlflcudorus que conslderu de conflunzu. Lstus entldudes se ueden consultur en el rolo nuvegudor y odemos modlflcurlus. Ln lu lmugen uedes ver urte de lu llstu lncluldu en llrefox. lnvestlgu en los dlferentes nuvegudores que tengus lnstuludos como se consultu lu llstu de Autorldudes Certlflcudorus en lus que se conflu. Ln lu cuturu de lmugen se ueden ver otrus estunus uru el udmlnlstrudor de certlflcudos. Puru que slrve cudu unu de ellus? E6M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lxlsten muchos servldores que usun certlflcudos no emltldos or estus uutorldudes. Ln esos cusos deende del usuurlo el uceturlos o no. Ll nuvegudor muestru unu udvertenclu cuundo vumos u conecturnos y tendremos que decldlr sl queremos segulr o referlmos no conecturnos con el destlno. Ln lu lmugen odemos ver un ejemlo con vurlus urtes: . Sl no conflumos en el destlno debemos ulsur el boton uru sullr. z. Podemos obtener ms lnformuclon. Ln este cuso vemos que lu entldud es gob.es or lo que odemos decldlr conflur en el. . Sl queremos conflur debemos leer los rlesgos que conllevu. . Podemos unudlr unu exceclon de segurldud uru conflur en este sltlo u urtlr de uhoru. Que es lu flrmu dlgltul y cul es su reluclon con los certlflcudos dlgltules? Un >$)&#=#!:+, ?#;#&:" es un documento electronlco que enluzu unu cluve ubllcu con unu llrmu Llgltul e lnformuclon ersonul sobre lu ersonu u orgunlzuclon que qulere usur lu cluve ubllcu. Slrve uru usegurur que esu cluve ertenece u dlchu ersonu u orgunlzuclon. Lu lnformuclon ersonul que se udjuntu suele ser el nombre, lu dlrecclon, el correo electronlco, etc. Lu llrmu Llgltul suele ser lu de unu Lntldud Certlflcudoru reconocldu uru que los cllentes uedun conflur en que lu Cluve Publlcu y lu lnformuclon ersonul corresonden u lu mlsmu ersonujorgunlzuclon. Lste tlo de certlflcudos se conocen como >$)&#=#!:+,( Y:ML yu que -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj se encuentrun en el nlvel ms ulto de un rbol de certlflcudos. Ll usuurlo debe flurse de lu entldud emlsoru del Certlflcudo Rulz yu que es el que useguru lu uutentlcldud de todos los certlflcudos emltldos or ellu. Lu llstu de certlflcudos que se lncluyen or defecto en un nuvegudor web corresonden u estu cutegorlu y el usuurlo conflu en los desurrolludores del nuvegudor uru que se useguren de que esos certlflcudos son de conflunzu. Como se uede ver lu segurldud en lnternet se busu en muchos nlveles de conflunzu! Nudle debe ususturse. Lus uutorldudes que lncluyen los rlnclules nuvegudores estn verlflcudus y con revlsudus con regulurldud. Ln estu glnu de lu vlkledlu se uede obtener muchu ms lnformuclon sobre los Certlflcudos Llgltules. Ln estu lmugen se uede ver el uso de certlflcudos dlgltules. Los X$)*#+,)$( +$ >$)&#=#!:+,( son los que se encurgun de vulldur o certlflcur lus cluves. Ln lu uctuulldud se utlllzun vurlos formutos de Certlflcudos Llgltules en lnternet. Ll ms extendldo es el .c Lee estu glnu y comentu en cluse los untos que conslderes ms lnteresuntes sobre lu lnformuclon obtenldu. Ln nuestro nuvegudor odemos consultur los detulles de un certlflcudo. Sl nos onemos sobre el certlflcudo determlnudo y ulsumos "ver' suele uurecer unu oclon "Letulles' en lu que odemos consultur dutos como el ulgorltmo y el vulor de lu flrmu. P/5%'%2 "' ,%25+E+,(13 1+I+5(* Puru oder utlllzur E11PS en nuestro servldor es necesurlo dlsoner de un Certlflcudo Llgltul. Podemos obtener un Certlflcudo Llgltul de unu Autorldud Certlflcudoru (.&8:*<*./:& /,:N08*:Hd 9") o creur nuestru rolu Autorldud Certlflcudoru y generur nuestros Certlflcudos Llgltules. Ln Lsunu, odemos obtener Certlflcudos Llgltules u truves de lu lbrlcu Nuclonul de Monedu y 1lmbre o medlunte emresus como verlslgn. E63 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Puru obtener un Certlflcudo de unu Autorldud Certlflcudoru generulmente huy que demostrur que somos qulenes declmos ser (como lo estublece cudu uutorldud) y generur unu etlclon uru nuestro servldor (.&8:*<*./:& '*+1*1+ 8&Q,&':d 97[) que se debe envlur u lu uutorldud. Cuundo nuestru etlclon huyu sldo ucetudu, yu odemos lnstulur el certlflcudo en nuestro servldor. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj SSLj1SL 7&.,8& 70.a&: \/H&8 (SSL) fue desurrolludo or Netscue en los unos c. Eun exlstldo tres verslones de SSL ero uctuulmente se utlllzu lu .c. Eu derlvudo en otro rotocolo P8/1'(08: \/H&8 7&.,8*:H (1LS) que tumblen tlene tres verslones, lu .c, lu . y lu .z. Lu muyorlu de los nuvegudores uctuules usun lu verslon .c Como lu hemos comentudo con unteluclon, E11PS es unu lmlementuclon de E11P sobre SSL o 1SL en el servldor. Lste rotocolo se colocu sobre lu cuu de trunsorte donde los dos rotocolos ms tllcos son 1CP y ULP. Ls un rotocolo que se utlllzu uru usegurur !,%=#+$%!#:"#+:+, :7&$%&#!#+:+, #%&$;)#+:+ y %, )$17+#, entre el cllente y el servldor. lnvestlgu y comentu los cuutro concetos del rrufo unterlor. Lxlsten dos modos: Uno en el que solo el servldor demuestru su ldentldud y otro en el que tunto el cllente como el servldor usun Certlflcudos Llgltules. E66 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lus ullcuclones del uso de SSLj1SL son multlles e lncluyen lu creuclon de redes rlvudus vlrtuules (vPN), el uso en comerclo electronlco y en el correo electronlco, etc. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj E11PS en Auche Auche utlllzu un modulo eseclflco busudo en un royecto que se llumu CenSSL. Puru utlllzur E11PS en Auche es necesurlo que el modulo @0-^'') este uctlvo. sudo a2enmod ssl service apache2 restart Ahoru el servldor deberlu estur escuchundo tunto el uerto 8c (htt) como en el (htts). Sl mlrumos el urchlvo de conflguruclon de uertos gedit /etc/apache2/ports.conf veremos que sl el modulo @0-^'') est uctlvo se unude lu orden NameVirtualHost *:80 Listen 80 <IfModule mod_ssl.c> # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl E6K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu # to <VirtualHost *:443> # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on indows XP. Listen 443 </IfModule> Eemos vlsto que estu dlstrlbuclon de Auche vlene con dos sltlos or defecto. Ll que no hemos usudo se llumu !&</,):g77\ reclsumente. Sl lo uctlvumos tendrlumos yu un sltlo con dlchu conflguruclon que escuchurlu or conexlon seguru. sudo a2ensite default-ssl service apache2 reload Ahoru tendrlumos dlsonlble lu oslbllldud de conecturnos de formu seguru u umbos servldores. Sl no eseclflcumos el rotocolo o usumos htt se conectur de lu formu estndur. Sln emburgo, sl nos conectumos medlunte htts nos muestru unu exceclon de segurldud como lu que vlmos untes. Lsto es debldo u que ul lnstulur Auche se creu un certlflcudo uutoflrmudo uru el sltlo or defecto. Sl ubrlmos el urchlvo de conflguruclon del sltlo con ssl odemos ver como est conflgurudo. # A self-signed (snakeoil) certificate can be created by installing # the ssl-cert package. See # /usr/share/doc/apache2.2-common/README.Debian.gz for more info. # If both key and certificate are stored in the same file, only the , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj # SSLCertificateFile directive is needed. SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key 1rus reullzur los usos unterlores, ruebu u lntercetur trumus de conexlones htt y htts. Que dlferenclus ves? Cuurdu en un urchlvo unu trumu de cudu tlo uru su dlscuslon en cluse. Sl te fljus, los dos sltlos or defecto tlenen conflgurudo el mlsmo dlrectorlo como rulz uru los documentos. Que usurlu sl cumblus el dlrectorlo rulz de uno de los dos. Pruebulo. Ls unu mulu oclon dejur ublertu lu oslbllldud de ucceder ul mlsmo sltlo medlunte unu conexlon seguru y unu lnseguru. Por ello sl hubllltumos un sltlo con E11PS no deberlumos tener uctlvo el equlvulente con E11P como sucede con los dos or defecto. [, !,))$!&, ($)M: +$(B:6#"#&:) $" +$=:7"&8 Sl deshubllltumos el sltlo or defecto odemos ver que uhoru, sl no eseclflcumos el rotocolo, utlllzu E11PS or defecto. sudo a2dissite default service apache2 reload Lstudlu el resto del urchlvo de conflguruclon del sltlo or defecto con ssl y exllcu que hucen el resto de dlrectlvus. Los enluces u contlnuuclon contlenen todu lu lnformuclon necesurlu. htts:jjhttd.uuche.orgjdocsjz.zjmodjmod_ssl.html E6F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu htts:jjhttd.uuche.orgjdocsjz.zjsslj =2%('13 "' &+5+3 7+25"(* ,3' FBBM6 Ahoru que hemos robudo el sltlo seguro or defecto, vumos u creur uno desde cero. voy u dejur hubllltudo el sltlo or defecto uru hucer un ejemlo con un sltlo con E11P y otro con E11PS. sudo a2dissite default-ssl sudo a2ensite default service apache2 reload Como yu hemos vlsto untes, uru oder usur SSL en Auche es necesurlo tener un certlflcudo. Ll que se lnstulu uru el sltlo de ejemlo yu no es vlldo y tenemos que consegulr uno. Podemos udqulrlr uno de unu CA o creur uno uutoflrmudo. Por motlvos evldentes nosotros usuremos estu ultlmu oclon. Puru obtener un certlflcudo es necesurlo generur unu cluve rlvudu y uru ello necesltumos un nombre de domlnlo usl que lo rlmero ser !,%=#;7):) $" ?OX correctumente. Ln ml cuso voy u llumurlo www.conssl.es y hubr que conflgururlo como un host vlrtuul or nombre. Puru generur lu cluve se utlllzu el comundo genrsu openssl genrsa -out clavepru.key 2048 Se uede generur unu contrusenu uru lu cluve, ero sl se vu u utlllzur uru creur un certlflcudo no es buenu ldeu orque cudu vez que el servldor web neceslte ucceder u lu cluve hubr que lntroduclr lu contrusenu. Sl no nos lmortu lntroduclr lu cluve cudu vez que se relnlcle el servldor, usurlumos lu oclon openssl genrsa -des3 -out clavepru.key 2048 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Actuulmente se recomlendun longltudes mlnlmus de cluve de zc8 blts. Lo slgulente ser generur unu etlclon uru nuestro certlflcudo. Lstu etlclon es lu que deberlumos envlur u lu CA uru obtener un certlflcudo flrmudo or ellos. Luego eserurlumos u que lo flrmurun y nos envlurun el certlflcudo uru lnstulurlo. Nosotros usuremos uno uutoflrmudo. openssl req -new -key clavepru.key -out peticionpru.csr Cuundo ejecutumos este comundo nos vu ldlendo lnformuclon de lu emresu uru lu que seu el certlflcudo. Lu vumos rellenundo hustu termlnur. Los cumos que termlnun en no son obllgutorlos. Sl hublerumos generudo lu cluve con contrusenu nos lu edlrlu untes de rellenur lu lnformuclon. You are about to be asked to enter information that will be incorporated into your certificate request. hat you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:ES State or Province Name (full name) [Some-State]:Madrid Locality Name (eg, city) []:Madrid ERM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Organization Name (eg, company) [Internet idgits Pty Ltd]:SergioCuesta Organizational Unit Name (eg, section) []:SC Common Name (e.g. server FQDN or YOUR name) []:Sergio Cuesta Email Address []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Puru obtener un certlflcudo uutoflrmudo usuremos el comundo openssl x509 -req -days 365 -in peticionpru.csr -signkey clavepru.key -out certificadopru.crt Lo que lndlcu que usur el formuto .c y tendr unu vulldez de un uno. Sl todo hu ldo blen deberlumos ver ulgo como lo slgulente Signature ok subject=/C=ES/ST=Madrid/L=Madrid/O=SergioCuesta/OU=SC/CN=Sergio Cuesta/[email protected] Getting Private key -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Ln muchos sltlos vers que en lugur de .8: se creun urchlvos con lu extenslon (&@. Ln teorlu lu dlferenclu es que .8: solo contlene el certlflcudo mlentrus que (&@ contlene tunto el certlflcudo como lu cluve ero en lu rctlcu esto se lgnoru y du lguul usur unu que otru. 1en en cuentu que todos los urchlvos que se hun creudo en los usos unterlores se hun generudo en el dlrectorlo en el que nos encontrrumos or lo que huy que moverlos u los sltlos udecuudos. Lu etlclon no es necesurlu. sudo mv clavepru.key /etc/ssl/private/ sudo mv certificadopru.crt /etc/ssl/certs/ Creuremos un dlrectorlo uru el contenldo del sltlo seguro mkdir /var/www/con-ssl/ Procedemos u creur el sltlo vlrtuul or nombre <IfModule mod_ssl.c> NameVirtualHost 192.168.1.36:443 <VirtualHost 192.168.1.36:443> ServerName con-ssl.es ServerAlias www.con-ssl.es ER3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ServerAdmin [email protected] DocumentRoot /var/www/con-ssl <Directory /var/www/con-ssl> DirectoryIndex index.html Options -Indexes AllowOverride None Order allow,deny allow from all </Directory> ErrorLog $APACHE_LOG_DIR/error_con_ssl.log LogLevel warn CustomLog $APACHE_LOG_DIR/con_ssl_access.log combined -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj # Esta es la parte de SSL SSLEngine on SSLCertificateFile /etc/ssl/certs/certificadopru.crt SSLCertificateKeyFile /etc/ssl/private/clavepru.key # Recuerda que lo siguiente es para mantener la compatibilidad con ciertas # versiones de Microsoft Internet Explorer BrowserMatch "MSIE [2-6]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> ER6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu </IfModule> Eubllltumos el sltlo y recurgumos Auche sudo a2ensite con-ssl.es service apache2 reload Recuerdu que el nombre que tenemos usocludo en el LNS vu u lu dlrecclon lP de lu mqulnu usl que &$%+)$9,( E7$ 7(:) htts:jjwww.con.ssl.es uru ucceder ul sltlo seguro. Sl usumos E11P vu ul sltlo or defecto. Puru evltur esto deberlumos unudlr otru entrudu ul LNS uru que vuyu ul sltlo sln SSL (uerto 8c) y modlflcur lu conflguruclon del host vlrtuul uru que resondu u lus etlclones u ese otro nombre de domlnlo en lugur de u todo () Sl los hemos udqulrldo los certlflcudos u truves de unu CA de conflunzu dejurlu de uurecer el uvlso cuundo un cllente se conectu. Lvldentemente uru un sltlo rofeslonul es ms que recomenduble. Puru cusos en los que estemos lnvolucrudos en el desllegue en unu emresu muy grunde o or ejemlo unu unlversldud, uede lnteresurnos creur %7$(&): 1),1#: >C uru uso rolo. 1umblen es oslble creur un sltlo en el que ",( !"#$%&$( &$%;:% E7$ :!!$+$) 9$+#:%&$ 7% !$)&#=#!:+, 1),1#, como or ejemlo en lu Agenclu 1rlbuturlu. Ambus cosus se ueden hucer usundo ](&177\ ero escuu totulmente ul contenldo del curso. Creu dos sltlos dlferentes, uno con E11PS y el otro sln el. Conflguru todo correctumente uru que ul lr u un sltlo o u otro use el rotocolo udecuudo sln necesldud de que el usuurlo lo eseclflque en lu burru de dlrecclones del nuvegudor web. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Lesllegue de ullcuclones sobre servldores web y Lmuquetudo de ullcuclones web. Lstos dos concetos no los vumos u estudlur uqul. Lus ullcuclones en servldores web suelen utlllzur ul menos unu buse de dutos y lus que se desllegun en Auche se estn utlllzundo constuntemente en el modulo de "Lesurrollo veb en Lntorno Servldor'. Ll emuquetudo de ullcuclones es un conceto que est ms reluclonudo con 1omcut or lo que lo veremos en el temu slgulente. Ln los cusos en los que no lnstulemos nuestro rolo servldor slno que contrutemos un hostlng, debemos conslderur que tengu lus curucterlstlcus que necesltemos (or ejemlo que ermltu o roorclone el uso de MySQL y PEP). Cenerulmente uccedemos u nuestru estructuru de curetus medlunte l1P y u lu buse de dutos medlunte ulgun cllente. ERK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 1emu : Admlnlstruclon de servldores de ullcuclones Unu ullcuclon web es uquellu que funclonu u truves de unu red. Amuzon, Coogle, lucebook o 1wltter son ejemlos de ullcuclones web. Unu ullcuclon web funclonu en E11P sobre 1CPjlP y los cllentes ucceden u ellu medlunte un nuvegudor web. Cenerulmente es unu ullcuclon que se ujustu ul modelo cllente servldor y constu de tres cuus yu que huce uso de unu buse de dutos. Ll termlno Servldor de Allcuclones est usocludo hlstorlcumente u lu lutuformu 'uvu Lnterrlse Ldltlon uunque en lu uctuulldud englobu un conjunto de lenguujes y curucterlstlcus mucho ms umllo. Un servldor de ullcuclones es unu lutuformu que rovee ullcuclones softwure roorclonundo servlclos como segurldud, trunsucclones, ucceso u dutos, etc. Lxlsten muchos servldores de ullcuclones, slendo los ms frecuentes #&2\0+*. "(()*./:*01 7&8>&8 de ]8/.)&, #&27(N&8& "(()*./:*01 7&8>&8 de LbW, P0@./: de "(/.N&. Muy reluclonudo con este ultlmo est h)/''G*'N, que fue desurrolludo or 7,1 W*.80'H':&@' y uctuulmente ertenece u ]8/.)&. Nosotros veremos P0@./: uunque h)/''G*'N es ms comleto. Por que exlsten dos busudos en lo mlsmo? P0@./: solo soortu los !,%&$%$+,)$( A$6 de lu lutuformu 'zLL mlentrus que h)/''G*'N soortu todos los tlos or lo es reulmente un servldor de ullcuclones en un sentldo ms comleto. vumos u ver 1omcut or su slmllcldud, fucllldud de uso y conflguruclon, bujo consumo de recursos y ulto rendlmlento y or que es muy utlllzudo, ero en este cuso no exlste un urulellsmo con lo que velumos con Auche y el mercudo est mucho ms frugmento. Ls muy robuble que P0@./: vuyu dejundo uso u h)/''G*'N. Puru equenus ullcuclones se slgue recomendundo P0@./:, ero sl necesltumos 'zLL ul comleto tendremos que buscur otru oclon. Con el tlemo 'uvu hu ldo erdlendo ujunzu como lenguuje de rogrumuclon uru lu web. Ultlmumente se hu ldo quedundo uru ullcuclones grundes or curucterlstlcus como el bulunceo de curgu, fcll esculubllldud o lus oslbllldudes de comunlcuclon entre slstemus de buckend. Sln emburgo se conslderu muy esudu uru lus ullcuclones ms equenus y est slendo rldumente sustltuldo or lenguujes como PEP, Ruby o Python. Un ejemlo de esto es 1wltter que fue desurrolludo con Ruby on Rulls ero cuundo vleron lus dlflcultudes que tenlun uru esculur lu ullcuclon lu mlgruron u 'uvu. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Por sl fueru oco los ultlmos roblemus de segurldud de 'uvu hun llevudo u lus grundes comunlus de Slstemus Cerutlvos y de desurrollo de nuvegudores web u recomendur deshubllltur 'uvu de los nuvegudores. lncluso "Eomelund Securlty' un orgunlsmo gubernumentul umerlcuno hu hecho estu recomenduclon suglrlendo que se deshublllte 'uvu de todos los nuvegudores web exceto donde seu necesurlo. (Llclembre zcz Lnero zc). Crucle est lntentundo reucclonur sucundo urches, ero or ejemlo el ultlmo (jcjzc) lo unlco que huce es uumentur el nlvel de segurldud or defecto y dejur en munos del usuurlo lu declslon de ejecutur o no codlgo no flrmudo. Puede ser esto el fln de 'uvu en lu web? Llflcllmente. Antes o desues Crucle reucclonur y huy demusludus ullcuclones enormes reullzudus en 'uvu uru que desuurezcu del muu en los roxlmos unos. Lo que sl es oslble es que deje de usurse como lenguuje de desurrollo de ullcuclones web de tumuno equeno o medlo. Ln ml olnlon 'uvu quedur ms uru el 2/.a&1- de lus ullcuclones mlentrus que el <801:&1- ser desurrolludo en lenguujes ms llgeros. Lu lntegruclon de 1omcut con Auche vu en estu llneu. ERF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Arqultecturu Lxlsten vurlus verslones de Auche 1omcut. Lu dlferenclu entre unus verslones y otrus es lu verslon de 7&8>)&:' y O7Z' que ueden munejur. Ln este enluce se ueden consultur lus dlferentes verslones, uru que eseclflcuclones slrven y que verslon de O/>/ es necesurlu uru su uso. Auche 1omcut utlllzu unu estructuru en lu que vurlos comonentes se orgunlzun me muneru jerrqulcu. Lstos comonentes son 7&8>&8d 7&8>*.&d U1+*1&d T0':d 9011&.:08 H 901:&`:. Lee lu glnu de lu documentuclon de 1omcut que exllcu estos concetos. Lntlende muy somerumente que huce cudu uno (yu que luego los veremos en ms rofundldud) y cul es lu reluclon entre unos y otros. Cules tendremos que modlflcur durunte nuestro trubujo? Reullzur un dlbujo uede uyudurte en lu tureu. Posterlormente dlscute en cluse los concetos urendldos. Cuundo huyumos lnstuludo 1omcut odremos ver ejemlos de todos estos elementos. Lxceto Context, ueden consulturse todos en sudo gedit /etc/tomcat7/server.xml Lchu un vlstuzo ul urchlvo jetcjtomcut,jserver.xml O( %&52",5"2( 1% 1+2%,532+3& 1% B3;,(5 Los dlrectorlos que se lncluyen en unu lnstuluclon de 1omcut se ublcun generulmente en el dlrectorlo donde hemos descomrlmldo 1omcut. Sln emburgo, en estu lnstuluclon estn deflnldos en dos ublcuclones: f,'8f'N/8&f:0@./:5 y f>/8f)*2f:0@./:5= Sln emburgo huy otro dlrectorlo ufectudo en lu lnstuluclon f&:.f:0@./:5 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Los dlrectorlos comunes son: ! 6#%: contlene los blnurlos y scrlts de lnlclo de 1omcut. ! !,%=: lu conflguruclon globul de 1omcut. Ln estu lnstuluclon es un enluce slmbollco u f&:.f:0@./:5. 1lene ulgunos urchlvos que merece lu enu destucur. " !:&:"#%:81,"#!K: Lste urchlvo contlene lu olltlcu de segurldud reluclonudu con 'uvu e lmlde que los Servlets o 'SPs lu sobrescrlbun or motlvos de segurldud. Ln estu lnstuluclon se encuentru en ollcy.djccutullnu.ollcy " !:&:"#%:81),1$)&#$(: Contlene los urchlvos .'AR que no ueden sobrescrlblrse or motlvos de segurldud y otros de uso comun. " !,%&$G&8G9": Ll urchlvo de contexto comun u todus lus ullcuclones. Se utlllzu rlnclulmente uru lnformur de donde se uede encontrur el urchlvo web.xml de lus rolus ullcuclones. Contlene lu conflguruclon que ser comun u todos los elementos Context. " ",;;#%;81),1$)&#$(: Lstublece lus olltlcus generules uru el reglstro de uctlvldud del servldor, ullcuclones o uquetes. " ($)*$)8G9": yu hemos vlsto que es el flchero rlnclul de conflguruclon de 1omcut y que tlene mucho que ver con su urqultecturu. " &,9!:&27($)(8G9": Contlene los usuurlos, contrusenus y roles usudos uru el control de ucceso. Ls el urchlvo donde se encuentru lu lnformuclon de segurldud uru lus ullcuclones de udmlnlstruclon de 1omcut. 1odos los vulores son or defecto usl que deben cumblurse en cuso de "descomentur' lus llneus. " A$68G9": Un descrltor de desllegue or defecto con lu conflguruclon comurtldu or todus lus ullcuclones. Ls un urchlvo con dlrectlvus de funclonumlento de lus ullcuclones. " Adems de todos estos urchlvos, exlste un subdlrectorlo uru cudu motor con un subdlrectorlo loculhost donde lr otro urchlvo de contexto eseclflco uru cudu ullcuclon. Lste urchlvo tlene lu formu nombredeullcuclon.xml. Ln este cuso el motor es Cutullnu usl que estn en 9/:/)*1/f)0./)N0':. Puedes ver que huy uno or cudu uquete udlclonul que lnstulumos, documentuclon, ejemlos y ullcuclones de udmlnlstruclon. ! "#6: contlnen todos los .'AR comunes u todus lus ullcuclones. Aqul vun urchlvos de 1omcut, APls de 'SPs, etc y en el odemos ublcur urchlvos comunes u lus dlferentes ullcuclones como MySQL 'L8C. ! ",;(: uqul vun los urchlvos de reglstro. Ln estu lnstuluclon es un enluce slmbollco u f>/8f)0+f:0@./:5 ! &$91: este dlrectorlo es oclonul. Ln estu lnstuluclon no est creudo nl uctlvudo or defecto. Se usu uru los urchlvos temorules que necesltu 1omcut durunte su ejecuclon. ! A$6:11(: uqul se ublcun lus ullcuclones rolumente dlchus. Ahoru solo huy unu que se denomlnu RCC1. Podrlu huber ms ero como hemos lnstuludo lu documentuclon, ejemlos y udmlnlstrudores uurte se encuentrun en su rolo dlrectorlo en jusrjshurejtomcut, udmln, tomcut,docs y tomcut,exumles. EKM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ! A,)N: es un dlrectorlo uru los urchlvos en uso, cuundo se comllun los 'SPs, etc. 8uscu estos dlrectorlos en lu lnstuluclon de 1omcut que reullzumos en el temu . D' 7+&5(J3 ;L& )23E"'13 ( *( (2C"+5%,5"2( 1% B3;,(5 Ll termlno urqultecturu de 1omcut tumblen se reflere u lu estructuru ML que slgue su orgunlzuclon. Se comone de un conjunto de elementos reresentudos or etlquetus. Ln lu lmugen uede verse como se reluclonun unos con otros. Son los elementos que vlstels untes, y vumos u reusurlos. X$)*$) Ls el rlmer elemento suerlor y reresentu unu lnstunclu de 1omcut. Ls equlvulente ul servldor en sl con un uerto usocludo. Pueden exlstlr vurlos en dlferentes uertos y u veces se huce uru que sl unu ullcuclon fullu urrustrundo ul servldor esto no ufecte u otrus ullcuclones. Contlene vurlos \*':&1&8' que escuchun y resonden u eventos. 1umblen usu ClobulNumlngResources que slrven uru ermltlr u cllentes softwure hechos en 'uvu encontrur objetos y dutos medlunte su nombre. Por ejemlo uqul se odrlu lndlcur un recurso globul como unu buse de dutos MySQL. X$)*#!$ Ll servlclo ugruu un contenedor de tlo U1+*1& con un conjunto de conectores. Ll motor suele ser Cutullnu y los conectores or defecto E11P y A'P. >,%%$!&,) Los conectores slrven uru comunlcur lus ullcuclones con cllentes (or ejemlo un nuvegudor web u otros servldores). Reresentun el unto donde se reclben lus etlclones y se les uslgnu un uerto lP en el servldor. 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj >,%&:#%$)( 1omcut se reflere u Lnglne, Eost, Context, y Cluster como contenedores. Ll de nlvel ms ulto es Lnglne y el ms bujo Context. Algunos comonentes como Reulm o vulve ueden ublcurse dentro de un contenedor. ^%;#%$ Ll motor rocesu lus etlclones y es un comonente que reresentu el motor de Servlets Cutullnu. Lxumlnu lus cubecerus (or ejemlo de lus trumus E11P) uru determlnur u host (o vlrtuul host) o context se le debe usur cudu etlclon. Cuundo 1omcut se utlllzu como servldor uutonomo se usu el motor or defecto. Cuundo 1omcut se usu dundo soorte u un servldor web se sobrescrlbe orque el servldor web yu hu determlnudo el destlno correcto uru lus etlclones. Un motor uede contener Eosts que reresentun un gruo de ullcuclones web o Context que reresentu u unu unlcu ullcuclon. 1omcut se uede conflgurur con un unlco host o multlles hosts vlrtuules como Auche. P,(& Leflne un host or defecto o multlles hosts vlrtuules en 1omcut. Ln 1omcut los hosts vlrtuules se dlferenclun or nombres de domlnlo dlstlntos, or ejemlo www.ullcuclon.es y www.ullcuclonz.es. Cudu uno soortu vurlos Context. >,%&$G& Lste elemento es equlvulente u unu ullcuclon web. Euy que lnformur ul motor y ul host de lu locullzuclon de lu curetu rulz de ullcuclon. 1umblen se uede hubllltur lu recurgu dlnmlcu (dynumlc reloud) uru que ul modlflcur ulgunu cluse de lu ullcuclon se modlflque en lu ejecuclon. Lstu oclon curgu mucho el servldor or lo que se recomlendu uru ruebus ero no en roducclon. Ln un contexto tumblen se ueden estublecer glnus de error eseclflcus uru urmonlzurlus con lu uurlenclu de lu ullcuclon. Puede contener urmetros de lnlclo uru estublecer control de ucceso en lu ullcuclon. EK3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu >"7(&$) Ln cuso de que tengumos ms de un servldor 1omcut utendlendo lus etlclones, este elemento nos ermlte conflgururlo. Ls cuuz de rellcur lus seslones y los urmetros de cudu Context. Quedu muy or enclmu del contenldo del curso. Y$:"9 Se uede ullcur ul nlvel de Lnglne, Eost o Context. Se utlllzu uru uutentlcuclon y uutorlzuclon de usuurlos o gruos. Pueden usurse con urchlvos de texto, servldores LLAP o buses de dutos or ejemlo. Que es un servldor LLAP? Sl lo ullcumos u nlvel de motor, los usuurlo o gruos tendrn ldentlcos ermlsos en todus lus ullcuclones u lu horu de ucceder u objetos o recursos. Sl lo ullcumos en un Eost todus lus ullcuclones los ermlsos sern uru todus lus ullcuclones de dlcho entorno mlentrus que sl lo ullcumos en un Context se estublecern or cudu ullcuclon. Sln emburgo, uunque un usuurlo tengu los mlsmos ermlsos uru todus lus ullcuclones debe segulr uutentlcndose en cudu unu de ellus or seurudo. Los ermlsos se heredun y or eso se du lu sltuuclon descrltu en el rrufo unterlor, ero sl los ermlsos de un usuurlo o gruo se sobrescrlben en un entorno de rungo lnferlor los ultlmos sern los que se ullquen. Ls slmllur u lo que velumos con clertus dlrectlvus (or ejemlo de dlrectorlos) en Auche. U:"*$ Se usu uru lntercetur etlclones untes de usrselus u lus ullcuclones. Lsto nos ermlte rerocesur lus etlclones uru bloqueur ulgunus, reglstrur uccesos, reglstrur detulles de lu conexlon (en urchlvos log), o estublecer un unlco unto de ucceso uru todus lus ullcuclones de un host o uru todos los hosts de un servldor. Afectun ul tlemo de resuestu u lu etlclon. Puede estublecerse uru cuulquler contenedor Lnglne, Eost, und Context, yjo Cluster. Euy un conceto slmllur en los servlets que se denomlnu llltros (lllters). 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Aunque en lu secclon slgulente veremos los urchlvos de conflguruclon en detulle, echu un vlstuzo ul urchlvo en jetcjtomcutjserver.xml uru uflunzur estos concetos. Comuru este urchlvo con el de lu lnstuluclon de 1omcut que hlclmos en el temu . EK6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Conflguruclon bslcu del servldor de ullcuclones Lu conflguruclon de 1omcut se reullzu u truves de uno o ms flcheros ML. Eemos vlsto or enclmu los flcheros de conflguruclon en los uurtudos unterlores. Puru este rooslto, los rlnclules son: server.xml, context.xml y web.xml. 1omcut buscu estos urchlvos en el dlrectorlo eseclflcudo or CA1ALlNA_8ASL, en un subdlrectorlo jconf. Ln nuestro cuso estubleclmos CATALINA_BASE=/var/lib/tomcat7 Pero sl vlsltumos este dlrectorlo veremos que el subdlrectorlo jconf es un enluce slmbollco u jetcjtomcutj que es donde reulmente se encuentrun los urchlvos de conflguruclon. Ln el cuso de que no se eseclflque CA1ALlNA_8ASL se usu CA1ALlNA_ECML que es obllgutorlu uru el urrunque de 1omcut. Lu conflguruclon de 1omcut lncluye lnflnldud de urmetros y no es el objetlvo de este curso ser un exerto udmlnlstrudor de el. vumos u ver or enclmu los urchlvos de conflguruclon rlnclules y luego estudluremos lus conflguruclones urtlculures ms lmortuntes. Lu documentuclon de 1omcut lncluye muchlslmu ms lnformuclon de todos estos elementos y sus oslbles conflguruclones. &%27%2Z[;* Ln el urchlvo de conflguruclon or defecto odemos ver que se estublece un unlco servlclo y unu unlcu lnstunclu del servldor. Ll elemento <Server> tlene lu slgulente formu: <Server port="8005" shutdown="SHUTDON"> 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Puede sorrendernos que el uerto de 1omcut seu 8c8c y sln emburgo este conflgurudo en el uerto 8cc. Lste uerto es en el que el que se lnlclu unu lnstunclu del servldor ('vM) y en el que escuchu or sl llegun senules de uugudo (shutdown). Lstu senul no se uede mundur desde otru mqulnu or motlvos de segurldud, ero evldentemente se uede ejecutur el comundo de uugudo desde otru mqulnu y lu senul yu llegur desde lu mlsmu en lu que este el servldor. dX$)*$)e Ll elemento <Server> uede contener otros tres: ! <Servlce>: Un gruo de conectores usocludos con un motor. Ls necesurlo ul menos uno. ! <Llstener>: Cluses que tlenen que escuchun y munejun eventos que tlenen que ver con el clclo de vldu del servldor, or ejemlo desues de urruncur, etc. ! <ClobulNumlngResources>: Recursos globules que ueden ser usudos en estu lnstunclu del servldor or los comonentes que los neceslten, or ejemlo unu buse de dutos. <GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" EKK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> dX$)*#!$e Ll rooslto de un servlclo es ugruur un motor que rocese lus etlclones con uno o ms conectores que gestlonen los rotocolos de comunlcuclon. Ll servlclo or defecto es el motor Cutullnu. <Service name="Catalina"> Aqul se le hu dudo ul servlclo el nombre del motor, ero no es necesurlo. Un <Servlce> contlene ul menos un <Connector> y solo un <Lnglne> que es obllgutorlo. d>,%%$!&,)e Lste elemento tlene mucho que ver con los dos modos de funclonumlento de 1omcut: ! Como servldor unlco: Ln el que 1omcut reullzu lus funclones de servldor de ullcuclones y de servldor web. ! Como servldor de ullcuclones: Ln el que 1omcut coluboru con un servldor web que huce de <801:&1-. Ll servldor web dlrlge todus etlclones de 'SPs y Servlets u 1omcut. Ln un entorno con ucceso ubllco se suele usur lu segundu conflguruclon yu que el servldor web est mucho ms reurudo en termlnos de segurldud y rlvucldud. Los dos conectores ms comunes son E11P y A'P. Ll segundo es usudo uru conectur con los servldores en el como coluborutlvo (Auche u otros). Ambos ueden funclonur con SSL uru mejorur lu segurldud. Ll uerto or defecto uru E11P es 8c8c. Se uede cumblur y sl or ejemlo 1omcut vu u estur en roducclon como un servldor en sollturlo odrlumos modlflcurlo ul uerto estndur de E11P, 8c. Ll conector E11P est hubllltudo: 6, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" /> mlentrus que el A'P no: <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> Nlnguno de los dos usu SSL or defecto. d^%;#%$e Ll motor es qulen rocesu lus etlclones reulmente. Ll nombre es el que le demos u lu lnstunclu y defuultEost lndlcu u que host vlrtuul se le usur unu etlclon en cuso de que no se eseclflque nlnguno yu que el mlsmo motor uede rocesur etlclones dlrlgldus u multlles hosts vlrtuules de los eseclflcudos en este urchlvo. <Engine name="Catalina" defaultHost="localhost"> Un motor contlene uno o ms <Eost>, uno o nlngun <Context>, uno o nlngun <Reulm>, multlles <vulve> y <Llstener> uunque uede no tener nlnguno. dY$:"9e Ls un mecunlsmo de segurldud que slrve uru uutentlcur usuurlos y estublecer segurldud u nlvel de contenedor (recuerdu que elementos conslderubu 1omcut contenedores segun vlmos en el uurtudo urqultecturu). Lu conflguruclon or defecto huce que 1omcut leu los usuurlos del urchlvo tomcut users.xml ero obvlumente serlu mejor conflgururlo uru que se usuru unu buse de dutos o servldor LLAP. <!-- Use the LockOutRealm to prevent attempts to guess user passwords EKF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu via a brute-force attack --> <Realm className="org.apache.catalina.realm.LockOutRealm"> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> dP,(&e Lste elemento reresentu un host vlrtuul en 1omcut. Lu conflguruclon or defecto solo deflne )0./)N0':. Sl tenemos conflgurudo el servldor LNS con un nombre uru nuestro servldor usuremos este. Ll utrlbuto /((b/'& estublece el dlrectorlo rulz de lus ullcuclones. Se estublece u urtlr de <CA1ALlNA_8ASL> sl no se lndlcu lo contrurlo. Por defecto lu URL de cudu ullcuclon es lu resultunte de unudlr su dlrectorlo rulz u lu del servldor. Ln nuestro ejemlo hemos lnstuludo cuutro ullcuclones docs, exumles, hostmunuger y munuger. 1umblen se estublece RCC1 que lndlcu lu ullcuclon or defecto sl no unudlmos otrus cudu unu en su dlrectorlo. Ll utrlbuto ,1(/.a#"[' lndlcu sl este tlo de urchlvos debe ser descomrlmldo o no. Ln cuso de no descomrlmlrlos, lu ejecuclon ser un oco ms lentu. /,:0!&()0H lndlcu sl el desllegue de unu ullcuclon que sltuemos en el dlrectorlo debe ser uutomtlco o no. 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj <Host name="localhost" appBase="webapps" unpackARs="true" autoDeploy="true"> Adems contlene un <vulve> uru reglstrur los uccesos. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t quot;%rquot; %s %b" /> lnvestlgu y dlscute en cluse que son los urchlvos vAR y su reluclon con los urchlvos 'AR. Conflguru un nombre en el LNS uru tu servldor y cumblu el nombre en <Eost>. Pruebu que uedes ucceder con el nombre u todo. ,3'5%[5Z[;* Ll contexto en 1omcut se uede estublecer u mucho nlveles y se ullcur el ms eseclflco en cudu ullcuclon. Los descrltores de contexto de udmlnlstruclon de cudu ullcuclon se encuentrun en CA1ALlNA_8ASLjconfjnombre_motorjnombre_host Ln nuestro cuso estn en jetcjtomcutjCutullnujloculhost Por ejemlo el de hostmunuger <Context path="/host-manager" docBase="/usr/share/tomcat7-admin/host-manager" E5M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu antiResourceLocking="false" privileged="true" /> Ll (/:N lndlcu como se ucceder u lu ullcuclon en nuestro servldor. Ll roblemu uru cumblurlo es que hubrlu que modlflcur todos los urchlvos xml reluclonudos uru que 1omcut slgu encontrundo lu ullcuclon. doc8use es el dlrectorlo de desllegue de lu ullcuclon. Los descrltores de contexto eseclflcos de cudu ullcuclon web estn en el dlrectorlo de cudu ullcuclon en jML1A_lNl Ll de lu mlsmu ullcuclon est en jusrjshurejtomcut,udmlnjhostmunugerjML1AlNl <Context antiResourceLocking="false" privileged="true" > <!-- Remove the comment markers from around the Valve below to limit access to the host-manager application to clients connecting from localhost --> <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" /> --> </Context> , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Lntonces uru que slrve context.xml? contlene los urmetros que vuyun u ser comunes u todus lus ullcuclones. Sl no se sobrescrlben en ulgun contexto ms concreto se ullcurn estos. <Context> <atchedResource>EB-INF/web.xml</atchedResource> </Context> Ln este cuso se eseclflcu que elemento de cudu ullcuclon debe ser vlglludo or sl cumblu. Ln ese cuso se vuelve u deslegur lu ullcuclon uutomtlcumente. .%/Z[;* Cuulquler ullcuclon web en 'uvu debe tener un descrltor de desllegue. Como sucedlu con el contexto, uede estublecerse vurlos y se ullcurn lus dlrectlvus ms concretus. Cudu ullcuclon tlene su rolo descrltor y vu en jvL8lNl Por ejemlo jusrjshurejtomcut,udmlnjhostmunugerjvL8lNl Lxlste uno comun u todus lus ullcuclones en jetcjtomcutjweb.xml Como el uno usudo vlmos xml es muy fcll entender un descrltor de desllegue. Abre el rlmero y estudlu su contenldo. Ll segundo urchlvo es muchlslmo ms extenso ero no or eso vumos u dejur de echurle un vlstuzo. Que tlo de urmetros se lncluyen en este urchlvo? Crees que es udecuudu estu dlvlslon? E53 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Ln umbos cusos, sl no entlendes uru que slrve un urmetro, lnternet uede uyudurte. Ln el unto de desllegue de ullcuclones veremos ulgo ms de este temu. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Admlnlstrur ullcuclones web vumos u udmlnlstrur lus ullcuclones de 1omcut u truves del #&2 W/1/+&8. Ln lus dos lnstuluclones que hemos hecho lnclulmos este uquete. Ln este cuso cuundo lnstulumos los uquetes udlclonules. Podemos ucceder ul udmlnlstrudor u truves del enluce de lu glnu de lnlclo o en lu dlrecclon htt:jjloculhost:8c8cjmunugerjhtml Ls en sl mlsmu unu ullcuclon (con todus lus curucterlstlcus que estumos vlendo) y de hecho uede udmlnlstrurse desde lu rolu ullcuclon. Ll ucceso or defecto est deshubllltudo, ero yu vlmos como modlflcur el urchlvo tomcutusers.xml uru oder entrur. Lxlsten vurlos roles en cuso de que querumos dlstrlbulr el trubujo, ero nos uslgnumos todos los ermlsos. Nudu ms entrur en el munuger vemos unu llstu de lus ullcuclones deslegudus en este servldor. E56 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu vemos que uurece un enluce u lu ullcuclon en sl, sl se hu eseclflcudo unu verslon, el nombre que se mostrur uru lu ullcuclon, sl est en ejecuclon, el numero de seslones que se hun estublecldo (sl lu ullcuclon usu seslones) y unos botones uru urruncur, urur, recurgur (lu ullcuclon en cuso de modlflcuclones) o relegur que lo que huce es ellmlnurlu del servldor (no estur deslegudu). Ll uurtudo de lus seslones se ver ms udelunte. Accede ul web munuger y ruebu u urur los ejemlos y lu documentuclon. Puedes conecturte u ellos? Lu urte de deslegur lus ullcuclones lu veremos en el uurtudo corresondlente. Lo slgulente que nos encontrumos es , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Los dlugnostlcos slrven uru ver sl unu ullcuclon est fullundo, or uhoru solo en el temus de uso de memorlu. Sl lnchumos se recurgu lu glnu y en lu urte suerlor nos lndlcu el resultudo de lu ruebu. 1umblen odemos ver un cuudro resumen con lnformuclon del servldor. Lstu lnformuclon uede umllurse ul lnchur en "Lstudo Comleto del Servldor' en lu urte suerlor de lu glnu. Por suuesto estu udmlnlstruclon uede ser mucho ms rofundu u truves de los urchlvos de conflguruclon vlstos en este temu. E5K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lxlsten otros dos metodos de udmlnlstruclon de 1omcut que dejumos como temus de umlluclon or urte del rolo ulumno en cuso de que lo creu convenlente: Ant y udmlnlstruclon medlunte etlclones E11P. O( %&52",5"2( 1% (2,?+73& 4 1+2%,532+3& 1% "'( 9)*+,(,+-' 8%/ Unu ullcuclon web tllcumente vu dentro de un dlrectorlo (uede ser un vAR como veremos ms udelunte) y tlene usocludu unu estructuru de dlrectorlos comun u todus: ! Rulz del dlrectorlo de lu ullcuclon y dlrectorlos no eseclflcudos en lu slgulente llstu: 1odo lo que no este en los dlrectorlos vL8lNl Y ML1AlNl son recursos ubllcos u los que se uede ucceder u urtlr de lu URL udecuudu. ! f^52FOV: u urte del descrltor de desllegue (web.xml) contlene: ! clusses: donde se ublcun los urchlvos .cluss y otros recursos. ! llb: donde se colocun lus llbrerlus .jur eseclflcus de estu ullcuclon. ! Z^IC2FOV: contlene el urchlvo de contexto context.xml. 1umblen uede hucer uqul un urchlvo MANllLS1.Ml que llstu lus blbllotecus 'AR que deben estur dlsonlbles uru el funclonumlento de lu ullcuclon. ,, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Lesllegue de ullcuclones en el servldor de ullcuclones Aunque en este modulo no se lncluye como desurrollur un Servlet o un 'SP, voy u dur unus equenus lndlcuclones. Ln este cuso usure Netbeuns uunque Lcllse lncluye lus mlsmus funclonulldudes y nos ermlte lntegrur desurrollo en muchos lenguujes. Lo rlmero ser lnstulur Netbeuns desde lu glnu oflclul. vemos que tenemos unu oclon en lu que lncluso estn lncluldos 1omcut y Clussllsh. Lstu es lu recomendudu uru oder lr huclendo lus ruebus. 1en en cuentu que 1omcut no se lnstulu or defecto usl que hubr que ulsur en ersonullzur durunte lu lnstuluclon (como lndlcu lu lmugen) y selecclonurlo. lncluso uunque lo hugumos de ruebu (or suuesto en un cuso reul lu mqulnu de desurrollo y el servldor nuncu deben ser el mlsmo) es referlble lnstulur Netbeuns en lu mqulnu unfltrlon o en otru vlrtuul yu que estumos uctlvundo otro servldor 1omcut. Sl yu tenemos Netbeuns lnstuludo (y un servldor de ullcuclones) y no queremos lu verslon de urrlbu, segulmos estus lnstrucclones uru unudlr y conflgurur el frumework de red. Ll tlo de royecto que se debe creur es del gruo 'uvu veb. Por defecto yu nos creu un 'SP de tlo "Eolu Mundo'. Un Servlet es unu cluse de juvu reurudu uru funclonur en lu web. Ln este enluce exllcun brevemente como rogrumur Servlets. Adems recuerdu que hemos lnstuludo ejemlos en los que uedes consultur el codlgo uru ver que hucen y como lo hucen. E5F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lesues de ejecutur o llmlur y contrulr (Cleun 8ulld) odremos lr u lu curetu del royecto y en un subdlrectorlo "dlst' hubr un urchlvo vAR que nos servlr uru el desllegue. Ln el slte huy un $T$91", gchg_RX-\%,8A:) que uso uru estos ejemlos y uedes usur uru tus rctlcus. Cuundo lo descurgues recuerdu que un vAR es un urchlvo emuquetudo y que se uede descomrlmlr uru obtener los urchlvos y curetus orlglnules. Aunque no es el objetlvo del curso vumos u ver el ejemlo del slte y ulgunos de los lnstuludos revlumente. Los lremos estudlundo 7%, : 7%, segun dlgu el rofesor y comentundo en cluse. Solo veremos los ms senclllos. Se deju como umlluclon uru el ulumno que lo desee ver el resto. H%&)*+%I"% ;('"(* Lxlten dos formus de llevur u cubo el desllegue munuul de unu ullcuclon en nuestro servldor de ullcuclones, ero son bustunte slmllures. Lu rlmeru es usundo lu curetu con todos los elementos del royecto y lu segundu es con el urchlvo vAR. Puru +$(1"$;:) ": !:)1$&: solo huy que colurlu en el dlrectorlo webus de lu ublcuclon CA1ALlNA_8ASLjwebus que en nuestro cuso es jvurjllbjtomcut,jwebus Ln el ejemlo he descomrlmldo los contenldos del vAR en unu curetu "Pruebu' que es lu que colo u webus. Recuerdu que en nuestro flchero server.xml uureclu <Host name="localhost" appBase="webapps" unpackARs="true" autoDeploy="true"> Sl lu oclon uutoLeloy estuvleru u fulse hubrlu que relnlclur el servldor, ero en nuestro cuso no huce fultu usl que odemos lr ul nuvegudor web y ucceder u nuestru ullcuclon en lu dlrecclon htt:jjloculhost:8c8cjPruebuj ?$(1"$;:) $" :)!B#*, fCY es lguul ero onemos el urchlvo dlrectumente en lu curetu webus. 1en en cuentu que uhoru lu rutu de lu ullcuclon lu determlnu el nombre del urchlvo vAR usl que ser htt:jjloculhost:8c8cjcc_'SPUnoj , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj G&5(/*%,+%'13 '"%&52( ()*+,(,+-' ,3;3 *( )2+',+)(* )(2( %* &%27+132 Lu soluclon unterlor est blen uru ullcuclones secundurlus, ero uhoru queremos que seu lu rlnclul en lugur de lu glnu de lnlclo de 1omcut. Lsto tumblen se uede hucer de vurlus formus uunque lo rlmero serlu ellmlnur el contenldo de lu curetu RCC1 de webus. Sl vus u hucerlo, ten en cuentu que en nuestro cuso es mejor cumblur el nombre o mover el contenldo u otro sltlo or sl luego queremos recuerur el estudo orlglnul. Luego lus oclones serlun: . Colur el contenldo de lu curetu del royecto (no el royecto en sl) u RCC1. z. Cumblur el nombre ul urchlvo vAR or RCC1.wur y colocurlo en webus uru que lo desllegue 1omcut uutomtlcumente en lu curetu RCC1 . Creur un descrltor de contexto de lu ullcuclon en lu curetu CA1ALlNA_8ASLjconfjCutullnujloculhost. Recuerdu que estu rutu uede vurlur deendlendo de tu conflguruclon, motor y host. Lste descrltor se llumur RCC1.xml y en el hubr que escrlblr <?xml version="1.0" encoding="UTF-8"?> <Context docBase="/usr/share/Prueba" /> Suonlendo que hublerumos ublcudo nuestru ullcuclon en el dlrectorlo jusrjshurejPruebu 1en en cuentu que no huy que eseclflcur uth orque queremos que seu el que se curgue ul ucceder dlrectumente u lu dlrecclon del servldor. Sl usumos estu oclon relnlclumos 1omcut uru que vuelvu u curgur los urchlvos de conflguruclon. H%&)*+%I"% ,3' B3;,(5 8%/ K('(I%2 Recuerdu que cuundo vlmos el veb Munuger nos sultumos unu urte que ermltlu deslegur ullcuclones. EFM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lu rlmeru oclon es uru deslegur unu ullcuclon que est en otro servldor. Solo vumos u ver lu oclon de ubujo. Lstu oclon es equlvulente colocur un vAR en webus. Al lnchur el boton exumlnur tendremos que ublcur el vAR deseudo y ulsumos sobre deslegur uru que uctlve lu ullcuclon. Nos uurecer en lu llstu de ullcuclones y odremos gestlonurlu como u cuulquler otru. Sl ulsumos en "Relegur' se ellmlnur. 8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Autentlcuclon de usuurlos Los metodos uru uutentlcur usuurlos en 1omcut son los mlsmos que en Auche: 8uslc, Llgest, lormulurlos E1ML y Certlflcudos Llgltules. Los dos rlmeros yu vlmos que tenlun un roblemu sl se ullcubun sobre conexlones no segurus. Ln el cuso de formulurlos se estublece unu glnu (or ejemlo un 'SP) que slrvu de elemento donde se reullzur lu uutentlcuclon. Ln los ejemlos que hemos lnstuludo se utlllzu usl que +$(17J( +$ *$) $(&$ :1:)&:+, esturs reurudo uru entender como funclonu. Por ejemlo el descrltor de desllegue del web munuger utlllzu uutentlcuclon 8uslc y se le uslgnu un nombre ul domlnlo. <!-- Define the Login Configuration for this Application --> <login-config> <auth-method>BASIC</auth-method> <realm-name>Tomcat Manager Application</realm-name> </login-config> Ln 1omcut cudu usuurlo tlene usocludo uno o ms roles. Son estos roles los que se comruebun uru conecturse y no el usuurlo en sl. Ln el mlsmo urchlvo odemos ver lu conflguruclon de uutentlcuclon comletu con todos los roles deflnldos. Ee ellmlnudo grun urte del codlgo dejundo solo un ejemlo de cudu tlo. Ln el slgulente ejemlo es lmortunte destucur que estumos declurundo: ! <Securltyconstrulnt> unu restrlcclon de segurldud en lu que se eseclflcu un recurso o colecclon de recursos. Ln este cuso todo lo que huyu en el dlrectorlo N:@)f y se le uslgnu un nombre. Adems llevu unu restrlcclon de uutorlzuclon donde se estublecen uno o ms roles que odrn ucceder. EF3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ! <loglnconflg> donde se eseclflcu que metodo se utlllzur uru llevur u cubo el control de ucceso. Ls el trozo que vlmos untes. ! <securltyrole> or ultlmo se eseclflcun los roles que se nombrun en lu segurldud de estu ullcuclon. Lute cuentu de que deben estur deflnldos con el mlsmo nombre en el urchlvo, buse de dutos, etc que utlllcemos uru lu uutentlcuclon. <!-- Define a Security Constraint on this Application --> <!-- NOTE: None of these roles are present in the default users file --> <security-constraint> <web-resource-collection> <web-resource-name>HTML Manager interface (for humans)</web-resource-name> <url-pattern>/html/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>manager-gui</role-name> </auth-constraint> </security-constraint> <!-- Define the Login Configuration for this Application --> 8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj <login-config> <auth-method>BASIC</auth-method> <realm-name>Tomcat Manager Application</realm-name> </login-config> <!-- Security roles referenced by this web application --> <security-role> <description> The role that is required to access the HTML Manager pages </description> <role-name>manager-gui</role-name> </security-role> Sln emburgo sl nos vumos u ver lu estructuru de curetus de lu ullcuclon "munuger' vemos que no huy un subdlrectorlo N:@)f or nlngun ludo. Puru entender esto huy que tener en cuentu otrus dos urtes del urchlvo. Nuevumente me centro en un ejemlo orque huy vurlos como este. <servlet-mapping> <servlet-name>HTMLManager</servlet-name> EF6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu <url-pattern>/html/*</url-pattern> </servlet-mapping> Aqul yu vemos el mlsmo utron que estumos buscundo. Un mueudo yu suenu u unu usocluclon. Se usoclu un nombre con un utron URL. Sl nos conectumos ul munuger con el nuvegudor web veremos que se unude este N:@)f u lus dlrecclones. Sl te dus cuentu, ul lnchur en el enluce "Lstudo del Servldor' se cumblu html or stutus. 1umblen encontrumos un mueo u este unudldo u lus URL y sl nos dumos cuentu tlene su rolu conflguruclon de segurldud y roles usocludos. <servlet-mapping> <servlet-name>Status</servlet-name> <url-pattern>/status/*</url-pattern> </servlet-mapping> Que roles de segurldud tlenen ucceso u los recursos de stutus? Pero toduvlu nos fultu ver que es ese nombre que se usoclu u un utron URL. Sl mlrumos ms urrlbu en el urchlvo <servlet> <servlet-name>HTMLManager</servlet-name> <servlet-class>org.apache.catalina.manager.HTMLManagerServlet</servlet-class> <init-param> 8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj <param-name>debug</param-name> <param-value>2</param-value> </init-param> <!-- Uncomment this to show proxy sessions from the Backup manager in the sessions list for an application <init-param> <param-name>showProxySessions</param-name> <param-value>true</param-value> </init-param> --> <multipart-config> <!-- 50MB max --> <max-file-size>52428800</max-file-size> <max-request-size>52428800</max-request-size> <file-size-threshold>0</file-size-threshold> EFK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu </multipart-config> </servlet> Londe lo ms lmortunte or uhoru son lus rlmerus llneus que usoclun un nombre u unu cluse de 'uvu. Podemos ver otros dos fuctores (sln entrur mucho ms en detulle orque no es el objetlvo de este unto) que nos uyudurn u comrender esto. Ln f,'8f'N/8&f:0@./:5g/-@*1f@/1/+&8f*1-&`=_'( odemos ver lo slgulente: <% response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + "/html")); %> Que lncluso con los conoclmlentos que tenemos vemos que redlrecclonu lus etlclones ul mlsmo uth ero con jhtml ul flnul. Lu ultlmu dudu es donde est el servlet ul que se usoclu el nombre E1MLMunuger? No uurece or lu estructuru de curetus de lu ullcuclon. Lebemos recordur que huy un dlrectorlo de blbllotecus comurtldus: f,'8f'N/8&f:0@./:5f)*2 y en el huy un urchlvo que se llumu cutullnu.jur (como urte del nombre comleto de lu cluse). Reulmente es un enluce slmbollco ul urchlvo ==f==f_/>/f:0@./:g./:/)*1/g5=M=3K=_/8 o lo que es lo mlsmo f,'8f'N/8&f==f==f_/>/f:0@./:g./:/)*1/g5=M=3K=_/8 Sl exumlnumos este urchlvo encontruremos el dlchoso servlet. 1odo este funclonumlento se busu en el elemento <Reulm> del que yu hemos hubludo. Recuerdu que odlu lr dentro de los elementos <Lnglne>, <Eost>, <Context> o <Cluster> y como en otros cusos esto lndlcur u que se ullcu. Posterlormente veremos como conflgurur dlferentes [&/)@' , ero or uhoru nos vule con suber que en el cuso or defecto se busu en el urchlvo :0@./:g,'&8'=`@) 8, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj GR%;)*3& 1% ("5%'5+,(,+-' vumos u ver ulgunos ejemlos de uutentlcuclon de los metodos menclonudos. Ll cuso de certlflcudos dlgltules evldentemente no tendr sentldo hustu que veumos lu lntegruclon con SSL. Yu conocemos los roblemus de segurldud de E11P. Yu hemos vlsto como deslegur ullcuclones hechus con Netbeuns (con Lcllse es muy slmllur), or lo que voy u reullzur y robur los ejemlos dlrectumente en Netbeuns. Puru modlflcur el urchlvo tomcutusers.xml huy que buscurlo rlmero: . Selecclonu lu estunu "Servlces' z. Ln "Servers' huc cllc con el boton derecho sobre "Proertles'. . Comruebu que es 1omcut y no Clussllsh es que est selecclonudo. . Colu lu rutu de CA1ALlNA_8ASL . Clerru lu ventunu. 6. Euz cllc en los menus en llle > Cen llle y vete u lu rutu de CA1ALlNA_8ASL y ul dlrectorlo "conf' que huy dentro. Selecclonu el urchlvo tomcutusers.xml ,. Ahoru uedes modlflcur el urchlvo que se usur. Recuerdu que esto tlenes que volver u hucerlo en el urchlvo tomcutusers.xml en el servldor donde desllegues lus ullcuclones osterlormente. Lste servldor es solo uru ruebus. 8. Ln ml cuso voy u dejurlo como se ve u contlnuuclon. EFF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu <user username="ide" password="AyO2ybUt" roles="manager-script,admin"/> <role rolename="pruebas"/> <role rolename="otro"/> <user username="sergio" password="sergio" roles="pruebas"/> <user username="cuesta" password="cuesta" roles="pruebas,otro"/> <user username="vicente" password="vicente" roles="pruebas"/> </tomcat-users> 1en en cuentu que sl el servldor yu est lnlcludo debes relnlclurlo uru que curgue lu conflguruclon. Puru esto huz cllc con el boton derecho sobre el servldor 1omcut y ulsu "Resturt' o lu oclon que necesltes en cudu cuso. 5CXF> Prlmero vumos u creur el servlet, se huce como cuulquler otru cluse de 'uvu ero selecclonundo Servlet como tlo y luego tlenes que murcur lu cuslllu que unude lnformuclon ul web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web- app_3_0.xsd"> 8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj <servlet> <servlet-name>BasicServlet</servlet-name> <servlet-class>basic.BasicServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>BasicServlet</servlet-name> <url-pattern>/BasicServlet</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app> Lebemos modlflcur esto uru que se corresondu con lo que one u contlnuuclon: EXM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web- app_3_0.xsd"> <servlet> <servlet-name>BasicServlet</servlet-name> <servlet-class>basic.BasicServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>BasicServlet</servlet-name> <url-pattern>/BasicServlet</url-pattern> </servlet-mapping>
<!-- esto es lo que aadimos para la seguridad bsica --> <!-- Primero una restriccin de seguridad --> -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj <security-constraint> <web-resource-collection> <web-resource-name>El * significa que pedimos sutenticacin para toda la aplicacin</web-resource-name> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>pruebas</role-name> </auth-constraint> <user-data-constraint> <!-- hay tres tipos CONFIDENTIAL, INTEGRAL y NONE --> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> EX3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config> <!-- hasta aqu -->
<session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app> -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Con esto (ten en cuentu que nos hu creudo un servlet) yu tendrlumos lu uutentlcuclon bslcu funclonundo, ero odemos modlflcur el servlet uru que nos roorclone clertu lnformuclon. <trunsortguuruntee> tlene que ser NCNL, ero cuundo hubllltemos SSL deberlumos cumblurlo u CCNLllLN1lAL uru que nos redlrlgu lus etlclones E11P u E11PS y se trunsmltu lu lnformuclon de esu muneru. Sl queremos ejecutur este servlet or defecto en Netbeuns debemos hucer: . Cllc con el boton derecho sobre el royecto y selecclonur "Proertles' z. Selecclonur "Run' . Lscrlblr el nombre del Servlet (sln extenslon) en "Relutlve URL' 1en en cuentu que sl lo deslegumos en nuestro servldor 1omcut de roducclon lu URL serlu lu corresondlente u lu ullcuclon ms el nombre del servlet. .ej: htt:jjloculhost:8c8cjnomullcuclonjnomservlet Puedes ver todo esto y el Servlet modlflcudo que roorclonu lnformuclon sobre lu conexlon en el $T$91", gc.g_6:(#!8A:) del slte. ?F]^XI Lu unlcu dlferenclu entre el uso de 8ASlC y LlCLS1 conslste en cumblur esu ulubru en web.xml. Lu unlcu dlferenclu en el funclonumlento es que lu contrusenu se codlflcu, ero no encrltu or lo que sl ulgulen lu lntercetu es rctlcumente lguul de vulneruble. Modlflcu el ejemlo czc_buslc.wur uru que use LlCLS1 y comruebu lu dlferenclu en el resultudo. VQYZ Lste metodo se busu en formulurlos E1ML. Lo rlmero que cumblu es en el urchlvo web.xml el elemento <loglnconflg> EX6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu <login-config> <auth-method>FORM</auth-method> <!-- CUIDADO, los archivos siguientes deben ir en un subdirectorio para que funcione--> <form-login-config> <form-login-page>/protegido/login.jsp</form-login-page> <form-error-page>/protegido/login-failed.html</form-error-page> </form-login-config> </login-config> Los dos urchlvos E1ML lndlcun en que glnu se hur el logln y u cul nos redlrlglr sl fullu el lntento. 1odo esto tumblen se uede conflgurur en Netbeuns lnchundo en lu estunu "Securlty' cuundo estumos vlendo el urchlvo web.xml Lste metodo se busu en el uso de tres elementos: . j_securlty_check: que rocesu el formulurlo. z. j_usernume: como elemento donde se envlur el nombre de usuurlo. . j_ussword: uru envlur lu contrusenu. Puedes estudlur el $T$91", gccg_=,)9 del slte uru ver todos estos elementos. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Puru robur debes lntentur ucceder ul elemento lormServlet, u truves de lu rutu sl lo tlenes en un 1omcut o conflgurundo Netbeuns sl lo ests robundo con el servldor lntegrudo. Ll ejemlo usu seslones udems or lo que uedes ver un uso totulmente bslco de ello. H3;+'+3& 1% &%I"2+1(1 )(2( *( ("5%'5+,(,+-' Un domlnlo (Reulm) es ulgun tlo de usocluclon entre usuurlos, contrusenus y los roles usocludos. Los roles son ulgo slmllur u los gruos de Llnux y en 1omcut el ucceso no se roorclonu u nlvel de usuurlo sl no de rol. Un usuurlo uede tener usocludo un numero lllmltudo de roles. Lxlsten sels tlos bslcos en 1omcut uunque huy otros extendldos y cuulquleru uede rogrumur uno que extlendu de estos: . R?5>Y$:"9: Lu lnformuclon de usuurlos, contrusenus y roles se ulmucenu en unu buse de dutos reluclonul y se uccede medlunte un drlver 'L8C. z. ?:&:X,7)!$Y$:"9: Lu lnformuclon tumblen se guurdu en unu buse de dutos reluclonul, ero se uccede u ellu medlunte unu fuente con nombre de tlo 'NLl 'L8C LutuSource. 'NLl ('uvu Numlng und Llrectory lnterfuce) es un servlclo de 'uvu que ermlte buscur objetos y dutos or nombre. . RO?FY$:"9: Lu lnformuclon se ulmucenu en un servldor LLAP y se uccede con 'NLl. . \($)?:&:6:($Y$:"9: Lu lnformuclon se ulmucenu en lo que se conoce como unu fuente 'NLl de 8use de Lutos de Usuurlos. Lo ms hubltuul es que se uoye en un urchlvo xml. Por ejemlo de .01<f:0@./:g,'&8'=`@) uunque no es estu lu oclon que se usu or defecto slno lu slgulente. Lu lnformuclon uede uctuullzurse dlnmlcumente, ero no se recomlendu uru grundes slstemus. . Z$9,)KY$:"9: Lu lnformuclon est ulmucenudu en un urchlvo ML que se curgu en memorlu ul lnlclur 1omcut. Sl se modlflcu el urchlvo lu lnformuclon no se usu hustu que se relnlcle 1omcut. Ls el cuso que venlmos usundo con confjtomcutusers.xml. Por suuesto no se recomlendu en roducclon. 6. RCCXY$:"9: Se utlllzu el frumework 'uvu Authentlcutlon Authorlzutlon Servlce ('AAS). Ls el ms soflstlcudo de todos. Nosotros solo veremos ulgunos. Yu he comentudo que huy otros que extlenden de estos. 1odu estu lnformuclon y muchu ms se uede consultur en lu glnu de lu documentuclon de 1omcut. X,", 17$+$ B:6$) 7% Y$:"9 =7%!#,%:%+, : ": *$L, y or lo tunto sl ruebus los ejemlos unterlores trus conflgurur Reulms dlferentes vers que usu uru conecturse el Reulm uctlvo. EXK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Z$9,)KY$:"9 Ls el cuso que hemos estudo usundo or defecto ul conecturnos or ejemlo ul munuger de ullcuclones web. Yu hemos vlsto que lu lnformuclon se ulmucenu en un flchero ML y que or defecto es :0@./:g,'&8'=`@) Al lnlclur el servldor se curgu lu lnformuclon de usuurlos del urchlvo en memorlu y no se vuelve u uctuullzur hustu que se relnlcle el servldor. Por este motlvo y or lu buju segurldud que suone tener los usuurlos y contrusenus en un flchero de texto luno. Ls el cuso que vlmos como ejemlo en el unto unterlor. Lsto se concretu en los untos: . Cestlonur los usuurlos en el urchlvo ML corresondlente. z. Creur el domlnlo. Puru ello en el urchlvo de contexto que determlnemos (or ejemlo en el que se encuentre en el dlrectorlo ML1AlNl eseclflco de cudu ullcuclon) escrlblremos lo slgulente: <Context> <Realm className="org.apache.catalina.realm.MemoryRealm" /> </Context> Ee dejudo lus etlquetus del contexto uru evldenclur que vu dentro. . Creur lus restrlcclones de segurldud del recurso en el descrltor de desllegue corresondlente. Lsto se huce con el elemento <securlty construlnt> . Letermlnur el tlo de ucceso ul recurso. <loglnconflg> . Lstublecer uno o ms roles que uedun ucceder ul elemento. <securltyrole> \($)?:&:6:($Y$:"9 Lste tlo es unu equenu modlflcuclon del unterlor que nos ermlte slmulur que estumos reullzundo lu uutentlcuclon con unu buse de dutos. Lu unlcu dlferenclu con el unterlor es que se reullzu u truves de un recurso 'NLl. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj FZ-QYICOI^i Reulmente "mentl' en el unto unterlor orque el cuso que se utlllzu en el servldor de 1omcut segun lo hemos lnstuludo es este. Pero ul ser unu extenslon del unterlor he referldo seurur lu exllcuclon en dos urtes. Puru verlo tenemos que lr ul urchlvo server.xml <!-- Global JNDI resources Documentation at /docs/jndi-resources-howto.html --> <GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> EXF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Sl nos dumos cuentu se deflne un recurso globul de tlo S'&8!/:/2/'& que se usoclu ul urchlvo :0@./:g,'&8'=`@) Adems un oco ms ubujo <!-- Use the LockOutRealm to prevent attempts to guess user passwords via a brute-force attack --> <Realm className="org.apache.catalina.realm.LockOutRealm"> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> vemos que se deflne el [&/)@ (mlru el lnterno rlmero) que es justo del tlo que estumos comentundo en este unto. Ll [&/)@ exterlor \0.a],:[&/)@ urece lnteresunte segun lo que exllcun los comenturlos no? Ls un contenedor uru usegurur el [&/)@ que utlllcemos y se uede ver en lu glnu de lu documentuclon de 1omcut. Por lo tunto u los untos de MemoryReulm hubrlu que unudlr (el rlmero se unude y el segundo es unu modlflcuclon): -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj . Conflgurur el recurso 'LNl z. Creur el <Reulm> uru que seu de tlo UserLutubuseReulm en lugur de MemoryReulm Utlllzundo MemoryReulm, estublece un tlo de control de ucceso bslco u unu ullcuclon que desllegues en tu servldor uedes usur el ejemlo del slte. Lstublece un rol cuyo ldentlflcudor seu tu uellldo y ul menos un usuurlo con tu nombre. Pruebu el ucceso. Reulmente solo uede huber un <Reulm> uctuundo en unu ullcuclon en un momento dudo. Lstu uflrmuclon lmllcu (debes eleglr unu de lus dos resuestus desues de robur): . Se utlllzu el Reulm ms concreto como con lus dlrectlvus de Auche. z .Euy que ellmlnur el Reulm de server.xml orque sl no. Lllmlnu el control de ucceso unterlor y reullzu lo mlsmo con UserLutubuseReulm Puedes estublecer el control de ucceso solo uru ulgunu urte de lu documentuclon? y uru un urchlvo en urtlculur? Al ver lu estructuru de curetus de unu Allcuclon veb declumos que todo lo que no se ublcuru en vL8lNl o en ML1AlNl eru ubllco. Afectu u esto? Creu otro rol en el urchlvo de usuurlos ero no le des ucceso u lu ullcuclon de documentuclon. Comruebu que no tlene ucceso ero el otro rol sl. Recuerdu que debes relnlclur el servldor (1omcut) trus cudu cumblo. 3MM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu R?5>Y$:"9 Lste cuso necesltu unu buse de dutos uru funclonur or lo que emezuremos lnstulundo MySQL. Los usuurlos uhoru se ublcurn en unu buse de dutos con tublus de usuurlos, roles y lu reluclon entre ellos. Los nombres de estos elementos se ueden eleglr y conflgurur ero huy unos rctlcumente estndur que sern los que usemos. 1omcut se conectu u buses de dutos medlunte unu tecnologlu llumudu O/>/ !/:/2/'& 9011&.:*>*:H ('L8C). 'L8C funclonu como unu cuu de ubstrucclon entre lus buses de dutos y los elementos que lu vuyun u usur. Le estu formu 1omcut se comunlcu con lu APl de 'L8C en lugur de con lu buse de dutos dlrectumente. Asl se conslgue no deender de lus ecullurldudes de cudu buse de dutos. 'L8C se comunlcu con lu buse de dutos u truves de un drlver que convlerte lus ordenes dlrectumente ul formuto eseclflco de cudu buse de dutos. Yu tenemos lnstuludo MySQL y 'L8C que se lncluye en 'uvu or lo que el slgulente uso ser lnstulur el drlver. Puru ello odemos descurgur el drlver desde su web y colocurlo en CA1ALlNA_ECMLjllb que en nuestro cuso est en f,'8f'N/8&f:0@./:5f)*2 lo que lo hur dlsonlble uru todus lus ullcuclones de 1omcut o colocurlo en el dlrectorlo vL8lNljllb de unu ullcuclon eseclflcu uru que este dlsonlble en ellu. Como ulternutlvu odemos lnstulurlo uru que este dlsonlble uru cuulquler ullcuclon que use lu 'vM de 'uvu: sudo apt-get install libmysql-java y estublecemos el CLASSPA1E CLASSPATH=".:/usr/share/java/mysql.jar" ^(&$ `"	, 9J&,+, +: 1),6"$9:( 1,)E7$ $" 7(, +$ !":((1:&B K: %, $(&D )$!,9$%+:+,8 O,(,&),( 7(:)$9,( $" 9J&,+, +$ !,",!:)", $% ":( "#6)$)M:( !,97%$( +$ I,9!:&8 1rus lo que hubr que relnlclur uru que se curgue. Ahoru, tendremos que creur lu conflguruclon correctu en MySQL uru lu gestlon de usuurlos y roles. Puru ello usuremos el slgulente scrlt de ejemlo DROP DATABASE IF EXISTS tomcat_realm; zc -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj CREATE DATABASE tomcat_realm; USE tomcat_realm; CREATE TABLE tomcat_users ( user_name varchar(20) NOT NULL PRIMARY KEY, password varchar(32) NOT NULL ); CREATE TABLE tomcat_roles ( role_name varchar(20) NOT NULL PRIMARY KEY ); CREATE TABLE tomcat_users_roles ( user_name varchar(20) NOT NULL, role_name varchar(20) NOT NULL, PRIMARY KEY (user_name, role_name), CONSTRAINT tomcat_users_roles_foreign_key_1 FOREIGN KEY (user_name) REFERENCES tomcat_users (user_name), 3M3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu CONSTRAINT tomcat_users_roles_foreign_key_2 FOREIGN KEY (role_name) REFERENCES tomcat_roles (role_name) ); INSERT INTO tomcat_users (user_name, password) VALUES ('sergio', 'sergio'); INSERT INTO tomcat_users (user_name, password) VALUES ('maria', 'maria'); INSERT INTO tomcat_roles (role_name) VALUES ('pruebas'); INSERT INTO tomcat_roles (role_name) VALUES ('otro'); INSERT INTO tomcat_users_roles (user_name, role_name) VALUES ('sergio', 'pruebas'); INSERT INTO tomcat_users_roles (user_name, role_name) VALUES ('sergio', 'otro'); INSERT INTO tomcat_users_roles (user_name, role_name) VALUES ('maria', 'pruebas'); COMMIT; Lu tublu que llstu los roles no es necesurlu y lus cluves ujenus tumoco, ero lus hemos creudo or muntener lu correcclon. Ln ml cuso voy u creur este scrlt en un dlrectorlo uru tenerlo ucceslble en todo momento. Llumo ul scrlt :0@./:,'&8'='Q) mkdir /usr/db-scripts cd /usr/db-scripts/ gedit tomcatusers.sql zc -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Accedemos u MySQL mysql -u root -p dentro de MySQL ejecutumos el scrlt mysql> source /usr/db-scripts/tomcatusers.sql y comrobumos que todo huyu ldo blen. mysql> select * from tomcat_users; mysql> select * from tomcat_users_roles; quit Ahoru creumos un usuurlo uru que se conecte el Reulm que creemos en 1omcut. Creo un scrlt que se llume ,',/8*0[&/)@='Q) USE mysql; CREATE USER 'accesoRealm'@'localhost' IDENTIFIED BY 'pwdRealm'; GRANT SELECT ON tomcat_realm.* TO accesoRealm@localhost; Y lo ejecuto mysql> source /usr/db-scripts/usuarioRealm.sql Ln el urchlvo server.xml modlflco lu secclon del Reulm comentundo el que huy e lntroduclendo el de lu buse de dutos. 3M6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu <!-- Use the LockOutRealm to prevent attempts to guess user passwords via a brute-force attack --> <Realm className="org.apache.catalina.realm.LockOutRealm"> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <!-- <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> --> <Realm className="org.apache.catalina.realm.JDBCRealm" driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/tomcat_realm" connectionName="accesoRealm" connectionPassword="pwdRealm" zc -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj userTable="tomcat_users" userNameCol="user_name" userCredCol="password" userRoleTable="tomcat_users_roles" roleNameCol="role_name" /> </Realm> Lstudlu los urmetros de conflguruclon del Reulm y dlscutelos en cluse. 1rus esto relnlclumos 1omcut y sl no reclblmos nlngun error hemos conflgurudo el Reulm blen. /etc/init.d/tomcat7 restart 1en en cuentu que el error uede estur en los flcheros de log de 1omcut. Aunque luego veremos ms sobre esto, tlenes que mlrur en el dlrectorlo f>/8f)*2f:0@./:5f)0+' y buscur el urchlvo con lu fechu de hoy de los que tengun un nombre como ./:/)*1/=3ME4gMEg3K=)0+ ten en cuentu que uedes borrur el contenldo del log uru encontrur ms fcllmente los nuevos errores. Ll error ms hubltuul es que no encuentre el drlver 'L8C ene 26, 2013 8:47:38 AM org.apache.catalina.realm.JDBCRealm authenticate SEVERE: Excepcin al realizar la autentificacin java.sql.SQLException: com.mysql.jdbc.Driver at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:701) at org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:352) at org.apache.catalina.realm.CombinedRealm.authenticate(CombinedRealm.java:146) at org.apache.catalina.realm.LockOutRealm.authenticate(LockOutRealm.java:180) at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:295) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:450) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at 3MK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) at java.util.concurrent.ThreadPoolExecutor.runorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$orker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:697) ... 16 more Que se roduce orque no hus colocudo blen el urchlvo 'AR con el drlver o no est funclonundo blen el CLASSPA1E. Pruebu u ucceder ul webmunuger. No uedes orque en lu buse de dutos no hemos uslgnudo el rol correcto ul usuurlo. Puru ello he creudo otro scrlt @/1/+&8='Q) USE tomcat_realm; INSERT INTO tomcat_roles (role_name) VALUES ('manager-gui'); INSERT INTO tomcat_users_roles (user_name, role_name) VALUES ('sergio', 'manager-gui'); zc, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj COMMIT; Pruebu u deslegur ullcuclones con control de ucceso en el servldor (te ueden servlr ulgunos de los ejemlos del slte) y ruebu u conecturte con UserLutubuseReulm. Lesues conflguru 'L8CReulm y vuelve u robur. 3MF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Admlnlstruclon de seslones. Seslones erslstentes 1omcut utlllzu un Perslstent Sesslon Munuger uru reullzur colus de lus seslones de los usuurlos en el dlsco. Lstu gestlon de seslones es bslcu uru el funclonumlento de lus ullcuclones. Permlte reullzur vurlus mejorus sobre lus seslones slendo lus rlnclules, el estubleclmlento de un tlemo mxlmo de vldu uru lus seslones lnuctlvus y guurdundo lus seslones en dlsco cuundo se uugu 1omcut, lo que ermlte que lus seslones se muntengun durunte vurlus ejecuclones del servldor. Euy deflnldu un lntefuz org.uuche.cutullnu.Munuger uru gestlonur lus seslones. Se conflguru medlunte el elemento <Munuger> en ulguno de los urchlvos de contexto (el globul context.xml o el mlsmo en el dlrectorlo ML1AlNl de ulgunu ullcuclon). 1omcut lncororu dos lmlementuclones de estu lnterfuz: ! org.uuche.cutullnu.sesslon.StundurdMunuger: que es lu lmlementuclon que se usu or defecto sl no se eseclflcu otru. ! org.uuche.cutullnu.sesslon.PerslstenMunuger: que ermlte guurdur lus seslones en unu buse de dutos uurte de en un dlsco. No vumos u entrur en muchos detulles sobre estus cluses ero se ueden consultur en lu documentuclon de 1omcut. Sl vumos ul urchlvo de contexto gedit /etc/tomcat7/context.xml odemos ver que or defecto vlene uctlvudo <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> zc -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj vemos que sl lo descomentumos NC tendrlumos seslones erslstentes uunque relnlclrumos 1omcut. Podemos conecturnos ul web munuger de 1omcut htt:jjloculhost:8c8cjmunugerjhtml y robur u ucceder ul htt:jjloculhost:8c8cjcc_formjlormServlet Podemos ver que sl ubrlmos y cerrumos el nuvegudor vurlus veces se relnlclu lu seslon ero sl tenemos ublerto el nuvegudor se muntlene uru cuundo volvumos. Cudu vez que cerrumos el nuvegudor se sumu unu seslon ul numero de seslones de lu llstu. Sl hucemos cllc sobre el numero de seslones odremos lr u lu untullu de gestlon 3EM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Londe tenemos vurlus oclones: ! Plnchur en el nombre de unu columnu uru que ser ordenen lus seslones or ese crlterlo. ! Refrescur lu llstu. Mlentrus estumos gestlonundo esto ueden estur cumblundo lus seslones or muchos motlvos, or ejemlo un usuurlo se conectu o desconectu. ! Selecclonur unu o ms seslones uru lnvulldurlus osterlormente con el boton corresondlente. Lstu termlnur lu seslon y el usuurlo tendr que volver u creurlu (or ejemlo uutentlcndose en lu ullcuclon). ! Plnchur en el ldentlflcudor de lu seslon uru ver sus detulles. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Podemos comrobur que uunque relnlclemos 1omcut o lncluso lu mqulnu vlrtuul lus seslones se muntlenen. Sl mlrumos el descrltor de desllegue de unu ullcuclon odemos ver que es oslble conflgurur el tlemo que se muntendrn lus seslones lnuctlvus. Sl tuvlerumos ullcuclones que requleren muchu segurldud convlene bujurlo uru que cuundo el usuurlo se uusente se termlne lu conexlon. <session-config> <session-timeout> 30 </session-timeout> 3E3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu </session-config> Sl mlrumos lu llstu de ullcuclones del munuger vemos que odemos cerrur lus seslones que lleven lnuctlvus ms de un tlemo que ongumos. Puru ello se escrlbe el tlemo y se ulsu el boton. Por suuesto solo tlene sentldo en cuso de que el tlemo que escrlbumos seu menor que el estublecldo or defecto uru lu ullcuclon. Por defecto se utlllzu el 7:/1-/8-W/1/+&8 que guurdu lus seslones en un urchlvo 7U77L]e7='&8 que se ublcu en el dlrectorlo D08a de cudu ullcuclon. Lstos urchlvos se creun ul detener 1omcut y se destruyen cuundo se relnlclu or lo que sl quleres verlos tlenes que urur 1omcut. 1en en cuentu que sl 1omcut no se uugu correctumente (or ejemlo or un fullo en lu corrlente) no se guurdun lus seslones. Puru conflgurur ms usectos de lus seslones usurlumos el elemento <Munuger> de los urchlvos de contexto >\F?C?Q: en el slgulente ejemlo, lu cluse lndlcudu en reulldud es lu lnterfuz que tlenen que lmlementur lus cluses uru oder usurse en el elemento munuger. Leberlu ser unu cluse concretu, or ejemlo unu de lus dos que one ul rlncllo del unto. 1en en cuentu que el uquete de lu cluse tumoco es el mlsmo uru lu lnterfuz y lus cluses concretus. <?xml version="1.0" encoding="UTF-8"?> <Context antiJARLocking="true" path="/0330_form"> <Manager className = "org.apache.catalina.Manager" distributable = "true" maxActiveSessions = "25" maxInactiveInterval = "1200" z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj sessionIdLength = "16" /> </Context> Lstudlu los utrlbutos comunes u todus lus lmlementuclones de Munuger en lu documentuclon. Comentulos en cluse. Que huce el utrlbuto uth de 7:/1-/8-W/1/+&8? Que vulor le durlus uru deshubllltur lus seslones erslstentes? 3E6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Archlvos de reglstro de ucceso y flltro de sollcltudes Como cuulquler servldor, en 1omcut es muy lmortunte reglstrur ulgunos tlos de uctlvldud. Ln el dlrectorlo f&:.f:0@./:5 odemos ver dos urchlvos que hucen referenclu u estos reglstros. Ll rlmero es )0++*1+=(80(&8:*&' y el segundo '&8>&8=`@). Ambos hucen referenclu ul dlrectorlo CA1ALlNA_8ASLjlogs que en nuestru lnstuluclon se encuentru como enluce slmbollco en jvur(llbjtomcut,jlogs Ls unu buenu rctlcu revlsur y borrur los urchlvos de reglstro erlodlcumente yu que ueden crecer mucho y ucubur ufectundo ul rendlmlento del servldor. Ln ese dlrectorlo odemos ver cuutro tlos de urchlvos de reglstro: . cutullnu.fechu.log: Lstos urchlvos guurdun lu uctlvldud del motor durunte un dlu determlnudo. z. cutullnu.out: es un comendlo de los unterlores. . loculhost.fechu.log: guurdun lu uctlvldud del sltlo. . loculhost_uccess_log.fechu.txt: son reglstros de ucceso u lus ullcuclones del servldor durunte un dlu. Son los que truturemos uqul. Lste ultlmo tlo se uurece conflgurudo en el urchlvo server.xml dentro del elemento <Eost> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj pattern="%h %l %u %t quot;%rquot; %s %b" /> y como odemos ver nos reflere u unu glnu de lu documentuclon que hemos lnstuludo ero que tumblen odemos ver en lu glnu de Auche. 1enemos que durnos cuentu de que reulmente vu usocludo u un elemento <vulve> y muy reluclonudo con el huy otro que se llumu <lllter> Lstus dos tecnologlus slrven uru lntercetur lus etlclones y resuestus de E11P y re rocesurlus uru reullzur ulgun tlo de ucclon untes de que slgun su cumlno. Unu grun ventuju es que no deenden de cudu ullcuclon slno que ueden lmlementurse uru todo el sltlo. Unu grun dlferenclu entre ellus es que <vulve> es un desurrollo usocludo u 1omcut mlentrus que <lllter> ertenece u lu APl de Servlets. Como yu vlmos se ueden colocur en <Lnglne>, <Eost> o <Context> ufectundo ul entorno concreto segun corresondu. TL*7"*(& Se uede consultur su uso en lu glnu corresondlente de lu conflguruclon, ero se uede ureclur que es muy extensu. Uno uede rogrumur su rolu vlvulu o flltro urtlendo de lu lnterfuz vulve o de ulgunu de lus cluses del uquete vulves. ;/)>&b/'& est esuclulmente lndlcudu uru ello. Le hecho muchus de lus otrus cluses del uquete son <*1/) or lo que no odremos heredur de ellus. Lsto quedu totulmente fueru del contenldo del curso or lo que nos centruremos en ver ulgunus de lus vlvulus lncluldus con 1omcut. vumos u emezur volvlendo u lu que est hubllltudu en server.xml <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t quot;%rquot; %s %b" /> Podemos ver que usu "..&''\0+;/)>& que como su nombre lndlcu reglstru el ucceso. Como est lncluldu en el elemento <Eost> reglstru todos los uccesos u loculhost. 3EK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Consultu lu documentuclon uru hustu entender que huce estu conflguruclon de lu vlvulu. Lstudlu el resto de vlvulus (lus que no ucubun en lllter) solo uru oder tener unu ldeu de que hucen. No es necesurlo que consultes los utrlbutos nl lu conflguruclon. 1rus ver lus vlvulus lncluldus, lu utllldud de ellus es evldente. Unu de ellus es eseclulmente curlosu y utll en determlnudos entornos. Sl or ejemlo estumos en unu lntrunet de unu emresu donde huy vurlus ullcuclones web dlsonlbles uru los emleudos, SlngleSlgnCn nos ermlte que solo tengun que uutentlcurse en lu rlmeru que se conecten y se muntendrn esus credenclules u truves de todus lus ullcuclones. Pruebu lu vlvulu SlngleSlgnCn en tu sltlo. Creu un usuurlo con un rol que tengu ucceso u unus ullcuclones ero no u otrus. Conectute con dlcho usuurlo u unu ullcuclon uru lu que sl tengu ucceso. Luego ve u unu en lu que no tengu ucceso. Que sucede? 0+*523& Los flltros son unu lnterfuz de los Servlets. Por lo tunto no son excluslvos de 1omcut. 1lenen un comortumlento muy slmllur u lus vlvulus ero se conflgurun en el descrltor de desllegue de cudu ullcuclon. Aunque odemos lmlementur nuestros rolos flltros que lmlementen lu lnterfuz, 1omcut lncluye ulgunos que ueden consulturse en lu glnu de lu documentuclon corresondlente. Remote Address lllter, Remote Eost lllter y Remote lP lllterjvulve ueden usurse tunto como vlvulus como flltros. Comruebu que lu documentuclon en umbos uurtudos es rctlcumente lguul. Lchu un vlstuzo uru entender que huce cudu uno. z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Sl mlrus (or enclmu) lu documentuclon de los dems flltros vers que tlenen usos mucho ms concretos que lus vlvulus, muchos de ellos reluclonudos con utuques o sltuuclones muy eseclflcus. 3EF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Conflgurur el servldor de ullcuclones uru cooerur con servldores web Aunque 1omcut uede gestlonur etlclones E11P y servlr urchlvos E1ML esto lo huce mejor Auche (u otro servldor web). Adems Auche lncluye muchus ms oclones de conflguruclon y dlsone de muchlslmos modulos uru reullzur dlferentes tureus. Ctros motlvos ueden ser el rendlmlento, lu dlstrlbuclon en vurlus mqulnus, etc. Ln este unto vumos u urender u conflgurur un servldor web que reclbu lus etlclones y se lus reenvle u 1omcut sl es necesurlo. Ll contenldo esttlco (o derlvudo de otros lenguujes como PEP sl tenemos Auche conflgurudo uru ello) lo servlr Auche y lus etlclones reluclonudus con 'SPs o Servlets se lus redlrlglr u 1omcut. Como yu hemos comentudo lu conexlon con el exterlor se reullzu u truves de conectores. Los dos rlnclules son el E11P y el A'P, umbos soortun SSL. Ll conector E11P vlene uctlvudo or defecto y es el que ermlte u 1omcut rocesur etlclones E11P y funclonur como un servldor web lndeendlente. Sl consultumos el urchlvo '&8>&8=`@) veremos. <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" /> Podemos ver que lus oclones de conflguruclon son muchus ms en lu uyudu de conflguruclon de 1omcut. No vumos u entrur en detulles ero es lmortunte ver que huy un uurtudo donde lndlcu como usurlo con SSL. Le hecho, uunque no este uctlvo orque uurece comentudo, se uede observur que vlene reurudo uru usurlo. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> Sln emburgo uhoru queremos conflgurur 1omcut uru funclonur como uoyo u un servldor web (en nuestro cuso Auche). Puru ello necesltumos el conector "(/.N& O7&8> Z80:0.0) (A'P). Lsto es desde el ludo de 1omcut, ero que sucede con Auche? Ln su ludo odemos usur dos modulos uru reullzur estu conexlon: @0-^_a o @0-^(80`H. lncluso de este ultlmo exlsten dos verslones: @0-^(80`H^/_( y @0-^(80`H^N::(. Aunque no es fcll y nl slquleru huy ununlmldud sobre estus cuestlones, vumos u lntentur uclurur un oco cuul usur: ! 9,+_TN: Ls el ms muduro y robudo de todos. Reulmente es el ms otente y se desurrollu or lu comunldud 1omcut y no como modulo de Auche. Por ello no vlene lncluldo en lu dlstrlbuclon y Auche y huy que unudlrlo u muno. Ln generul sl no se necesltu ulgunu de sus funclonulldudes eseclflcus no urece recomenduble ufrontur el resto de lnconvenlentes. ! 9,+_1),GK_:T1: se dlstrlbuye con Auche desde lus verslones z.z y usu el rotocolo A'P que tlene mejor rendlmlento que E11P comunlcundo servldores. ! 9,+_1),GK_B&&1: Ls slmllur ero usundo E11P en lugur de A'P. Ls unu muneru fcll y rldu de conflgururlo y onerlo en funclonumlento ero que en generul tlene vurlos lnconvenlentes que desuconsejun su uso en entornos de roducclon sl no es necesurlo. Le cuulquler formu el rlmer uso que debemos dur en lnstulur Auche y 1omcut. Nosotros yu tenemos el segundo or lo que unudlremos Auche. Aunque nosotros lo vumos u conflgurur en lu mlsmu mqulnu, uede estur en dos dlferentes y de hecho esto mejorur el rendlmlento reduclendo lu curgu. 1en en cuentu que vumos u reullzur dos conflguruclones dlferentes or lo que es buenu ldeu clonur lu mqulnu vlrtuul en este unto. ;31QR\ Lste modulo no vlene con lu dlstrlbuclon estndur de uuche, or lo que hubr que descurgurlo uunque deberlumos comrobur que no este yu descurgudo en f&:.f/(/.N&3f@0-'g/>/*)/2)& sudo apt-get update sudo apt-get install libapache2-mod-jk 33M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lo que roduce unu sulldu que es lnteresunte leer orque nos lndlcu que yu se uctlvu el modulo ul lnstulurlo (sln necesldud que uctlvurlos munuulmente) y de que tenemos que relnlclur uuche uru que los cumblos tengun efecto. Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho Paquetes sugeridos: tomcat6 libapache-mod-jk-doc Se instalarn los siguientes paquetes NUEVOS: libapache2-mod-jk 0 actualizados, 1 se instalarn, 0 para eliminar y 282 no actualizados. Necesito descargar 144 kB de archivos. Se utilizarn 532 kB de espacio de disco adicional despus de esta operacin. Des:1 http://es.archive.ubuntu.com/ubuntu/ precise/universe libapache2-mod-jk i386 1:1.2.32-1 [144 kB] Descargados 144 kB en 0seg. (179 kB/s) Seleccionando paquete libapache2-mod-jk previamente no seleccionado zz -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj (Leyendo la base de datos ... 174672 ficheros o directorios instalados actualmente.) Desempaquetando libapache2-mod-jk (de .../libapache2-mod-jk_1%3a1.2.32-1_i386.deb) ... Configurando libapache2-mod-jk (1:1.2.32-1) ... Enabling module jk. To activate the new configuration, you need to run: service apache2 restart Podemos relnlclur Auche de cuulquler formu. /etc/init.d/apache2 restart Leberlumos comrobur que este uctlvudo consultundo mods_enubled o apachectl -M Sl mlrumos lu conflguruclon del modulo gedit /etc/apache2/mods-available/jk.conf Podemos observur un monton de urmetros de conflguruclon, ero nos bustu or uhoru con fljurnos en lu conflguruclon de trubujudores. # e need a workers file exactly once # and in the global server 333 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu JkorkersFile /etc/libapache2-mod-jk/workers.properties Un trubujudor (D08a&8) en 1omcut es unu lnstunclu que rocesu lus etlclones. Ln nuestru conflguruclon nos bustur con uno solo ero multlles trubujudores ueden conflgururse sl es necesurlo reurtlr lu curgu. Lu dlrectlvu que hemos vlsto untes lndlcu en que urchlvo se conflgururn los D08a&8'. Podemos edltur el urchlvo uru conflgurur estos trubujudores: sudo gedit /etc/libapache2-mod-jk/workers.properties vemos que vlene conflgurudo uru 1omcut 6 ero cumblurlo es senclllo # # workers.tomcat_home should point to the location where you # installed tomcat. This is where you have your conf, webapps and lib # directories. # workers.tomcat_home=/usr/share/tomcat7 Lo slgulente u conflgurur es lu llstu de trubujudores que esturn dlsonlbles. Solo vumos u tener uno ero se ueden unudlr ms seurundo los nombres con comus (,) # #------ worker list ------------------------------------------ zz -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj #--------------------------------------------------------------------- # # # The workers that your plugins should create and work with # worker.list=ajp13_worker Por ejemlo sl tuvlerumos dos worker.list = workerprueba1, workerprueba2 Por ultlmo huy que conflgurur cudu worker # #------ ajp13_worker ORKER DEFINITION ------------------------------ #--------------------------------------------------------------------- # # 336 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu # Defining a worker named ajp13_worker and of type ajp13 # Note that the name and the type do not have to match. # worker.ajp13_worker.port=8009 worker.ajp13_worker.host=localhost worker.ajp13_worker.type=ajp13 Lsto se odrlu reetlr uru dlferentes workers. Mucho ms sobre estus conflguruclones se uede consultur en lu uyudu. Como hemos cumbludo lu conflguruclon del modulo huy que relnlclur Auche. /etc/init.d/apache2 restart Cuundo hemos vlsto el urchlvo '&8>&8=`@) de 1omcut observumos que el conector A'P vlene conflgurudo ero comentudo. Sl lo descomentumos est reurudo uru funclonur. <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> Relnlclu 1omcut uru que los cumblos surtun efecto /etc/init.d/tomcat7 restart zz -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 1oduvlu nos fultu lndlcur u Auche que etlclones debe redlrlglr u 1omcut. Lsto se uede hucer en vurlos untos deendlendo de como tengumos conflgurudo el servldor web, ero en nuestro cuso lo vumos u reullzur en el sltlo web or defecto. gedit /etc/apache2/sites-available/default Londe montumos los dlrectorlos e lndlcumos el trubujudor que utender lus etlclones <VirtualHost *:80> ServerAdmin webmaster@localhost
DocumentRoot /var/www
JkMount /0330_form/ ajp13_worker JkMount /0330_form/* ajp13_worker 1rus relnlclur Auche /etc/init.d/apache2 restart odemos ucceder u lu ullcuclon u truves de Auche, observu que no lndlcumos el uerto: htt:jjloculhostjcc_formj Conflguru Auche y 1omcut uru que coluboren y que Auche redlrlju lus etlclones de los ejemlos de 1omcut. 33K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ;31Q)23[4 O, ($ +$6$ 7(:) $(&$ 9<+7", !,% $" :%&$)#,), or lo que emezure con otru mqulnu vlrtuul. Lste modulo es lu soluclon uru usur A'P que vlene lntegrudu con Auche desde lus verslones z.z. Como se uede observur en lu lntroducclon de lu documentuclon del modulo exlsten vurlos derlvudos del modulo que ermlten unudlr funclonulldud. Lstos derlvudos requleren que el modulo rlnclul este resente uru oder funclonur. Lo rlmero que huy que hucer es uctlvur el modulo de roxy y el que hubllltu el rotocolo E11P. sudo a2enmod proxy sudo a2enmod proxy_http Ldltumos lu conflguruclon del modulo gedit /etc/apache2/mods-available/proxy.conf 1en en cuentu que uru nuestro objetlvo no es necesurlo descomentur lu rlmeru llneu como exllcun en los comenturlos que estn justo enclmu. Lu dlrectlvu Z80`HZ8&'&8>&T0': lndlcu que se le debe usur el nombre del host que vlene en lu etlclon ul servldor de ullcuclones en lugur de otro que lndlquemos nosotros. Lsto es lmortunte uru el vlrtuul hostlng en el servldor de ullcuclones. # If you only want to use apache2 as a reverse proxy/gateway in # front of some web application server, you DON'T need # 'ProxyRequests On'. ProxyRequests Off zz, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj ProxyPreserveHost On <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> Posterlormente edltumos el urchlvo del host vlrtuul que estemos conflgurundo gedit /etc/apache2/sites-available/default Y conflgurumos lus redlrecclones. 1en en cuentu que el urchlvo est cortudo y que lus tres rlmerus llneus yu estubun usl. <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www ProxyPass /0330_form http://localhost:8080/0330_form 33F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ProxyPassReverse /0330_form http://localhost:8080/0330_form <Location /0330_form > Order allow,deny Allow from all </Location> y relnlclumos Auche untes de onernos u conflgurur 1omcut. /etc/init.d/apache2 restart Solo tenemos que reullzur un equeno ujuste en el conector de server.xml gedit /etc/tomcat7/server.xml unudlmos unu llneu con el uerto del que reclblremos lus redlrecclones. <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" zz -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj proxyPort ="80" /> y relnlclumos 1omcut /etc/init.d/tomcat7 restart Ahoru, ul lguul que en el cuso unterlor odemos ucceder u lu ullcuclon u truves del servldor web htt:jjloculhostjcc_form 9,+_1),GK_:T1 Pero, y el rotocolo A'P? Se conflguru rctlcumente lguul. Adems ueden coexlstlr E11P (y E11PS) y A'P. Ln este uurtudo solo voy u destucur los untos donde lu conflguruclon es dlferente or lo que sl quleres conflgurur solo A'P deberlus leer untes el unto unterlor. Lo rlmero serlu uctlvur el modulo sudo a2enmod proxy_ajp Posterlormente edltumos el urchlvo del host vlrtuul que estemos conflgurundo gedit /etc/apache2/sites-available/default Y conflgurumos lus redlrecclones. Muntengo lu conflguruclon del cuso unterlor uru que se veu que son comutlbles. <VirtualHost *:80> ServerAdmin webmaster@localhost 34M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu DocumentRoot /var/www ProxyPass /0330_form http://localhost:8080/0330_form ProxyPassReverse /0330_form http://localhost:8080/0330_form <Location /0330_form > Order allow,deny Allow from all </Location> ProxyPass /examples/jsp ajp://localhost:8009/examples/jsp ProxyPassReverse /examples/jsp ajp://localhost:8009/examples/jsp <Location /examples/jsp > Order allow,deny z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Allow from all </Location> y relnlclumos Auche untes de onernos u conflgurur 1omcut. /etc/init.d/apache2 restart Solo tenemos que reullzur un equeno ujuste en el conector de server.xml gedit /etc/tomcat7/server.xml descomentumos el conector A'P <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> y relnlclumos 1omcut /etc/init.d/tomcat7 restart Ahoru, ul lguul que en el cuso unterlor odemos ucceder u lu ullcuclon u truves del servldor web htt:jjloculhostjcc_form (con E11P) y u htt:jjloculhostjexumlesjjsj (con A'P) Conflguru Auche y 1omcut uru que todo que coluboren mostrundo lu documentuclon de 1omcut en htt:jjloculhostjtomdocj Pruebulo con E11P y luego con A'P. 343 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Segurldud en el servldor de ullcuclones. Conflgurur el servldor de ullcuclones con soorte SSLj1SL. Yu vlmos que E11PS no eru ms que E11P con unu cuu lntermedlu. Los mlsmos rlncllos se ullcun en 1omcut. Ln este cuso tumblen usuremos certlflcudos dlgltules. Ls lmortunte destucur que uunque en 1omcut se uede usur un conector que usu CenSSL nosotros vumos u ver los que se busun en 'uvu SSL. Lesde 'Ll . se lncluse 'SSL en lus dlstrlbuclones, or lo que tenemos u nuestru dlsoslclon todo lo necesurlo. Nosotros solo vumos u generur un certlflcudo uutoflrmudo uru 1omcut, ero en estu glnu se ueden ver los usos uru creur uno y edlr que nos flrme el certlflcudo unu CA. vumos u creur un ulmucen de certlflcudos. Lu oclon -genkey eseclflcu que se cree un ur cluve ubllcujrlvudu que se ulmucenun en un certlflcudo uutoflrmudo. "ulmucen' es el nombre del urchlvo que se vu u creur. sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /var/lib/tomcat7/almacen Lo que nos vu ldlendo los dutos necesurlos. Introduzca la contrasea del almacn de claves: Volver a escribir la contrasea nueva: Cules son su nombre y su apellido? [Unknown]: Sergio Cuesta Cul es el nombre de su unidad de organizacin? z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj [Unknown]: Consejera de Educacin Cul es el nombre de su organizacin? [Unknown]: Comunidad de Madrid Cul es el nombre de su ciudad o localidad? [Unknown]: Madrid Cul es el nombre de su estado o provincia? [Unknown]: Madrid Cul es el cdigo de pas de dos letras de la unidad? [Unknown]: ES Es correcto CN=Sergio Cuesta, OU=Consejera de Educacin, O=Comunidad de Madrid, L=Madrid, ST=Madrid, C=ES? [no]: si Introduzca la contrasea de clave para <tomcat> (INTRO si es la misma contrasea que la del almacn de claves): 346 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lurunte estu conflguruclon nos lde que deflnumos lus contrusenus tunto del ulmucen como del urchlvo de cluves. Ln ml cuso umbus son "serglo. Lo slgulente serlu hubllltur el conector E11PS en server.xml <!-- Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the JSSE configuration, when using APR, the connector should be using the OpenSSL style configuration described in the APR documentation --> <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/var/lib/tomcat7/almacen" keystorePass="sergio" keyAlias="tomcat" keyPass="sergio" /> Puedes ver que he unudldo lus dos ultlmus llneus uru lndlcur lu conflguruclon de segurldud. 1rus relnlclur 1omcut odemos conecturnos ul servldor de ullcuclones con conexlones segurus htts:jjloculhost:8j Ll roblemu es que uunque uhoru uedo conecturme u lus ullcuclones medlunte E11PS slgo tenlendo lu oclon de hucerlo medlunte E11P htt:jjloculhost:8c8cjcc_formj Puru obllgur u que u unu ullcuclon huyu que conecturse medlunte E11PS huy que modlflcur su descrltor de desllegue. Puru hucer lu ruebu modlflco el descrltor de desllegue de czc_buslc z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj gedit /var/lib/tomcat7/webapps/0320_basic/EB-INF/web.xml Euy que cumblur el tlo de trunsorte que se obllgu de NCNL u CCNllLLN1lAL <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> Podemos ver que uhoru sl robumos u conecturnos u htt:jjloculhost:8c8cjczc_buslcj nos redlrlge uutomtlcumente u htts:jjloculhost:8jczc_buslcj Yu subemos conflgurur Auche y 1omcut con SSL ero jE7J (7!$+$ !,% ": !,%$G#<% $%&)$ $"",(k Ls muy ruro que estu conexlon se reullce u truves de unu red en lu que no conflemos. lncluso en el cuso de que se encuentren en mqulnus dlferentes suele usurse ulgun tlo de conexlon rlvudu entre ellos uru que los mensujes que se envlun no se dlstrlbuyun or redes ms o menos ubllcus. Sl necesltrumos conflgururlo de todus formus deberlumos restur utenclon u lus dlrectlvus que comlenzun or SSLProxy del modulo mod_ssl de Auche. Le todus formus uru usegurur lu conexlon Auche - 1omcut (con E11PS) tendrlumos que usur un conector E11PS, lo que hugo un oco ms urrlbu y cumblur lus cudenus de redlrecclon en lu conflguruclon del host vlrtuul uru que utlllcen E11PS y el uerto 8. 34K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Prctlcus flnules Ln este unto y con los conoclmlentos de hosts vlrtuules que urendlmos en Auche, estumos reurudos uru urender u creur hosts vlrtuules en 1omcut or nosotros mlsmos. Por ello debes urender u conflgurur un host vlrtuul. 1e uyudurn mucho, lu ullcuclon de host munuger que lnstulumos con los uquetes udlclonules y reusur todo este temu uru ver donde se conflgurubu un elemento <Eost> y que lmllcuclones tenlu. 1en en cuentu que ul lntenturte conectur ul host munuger, sl no uedes te dlce el rol que tlenes que tener uru oder conecturte. 1umblen huy un equeno tutorlul en lu documentuclon de 1omcut. 1umblen es lmortunte recordur que el host munuger no conflguru el elemento <Eost> de server.xml, ero lnternet est lleno de tutorlules uru reullzur esto. 1u objetlvo flnul debe ser oder conflgurur un nuevo host vlrtuul en 1omcut u muno y ser cuuz de deslegur unu de lus ullcuclones de ejemlo (mejor con uutentlcuclon) sobre el. Lus slgulentes llneus te ueden dur unu ldeu de como hucerlo. <Eost numewww.serglo.es u8usewebus_serglo.es unuckvARstrue uutoLeloytrue > <Allus>serglo.es<jAllus> <vulve clussNumeorg.uuche.cutullnu.vulves.AccessLogvulve dlrectorylogs reflxserglo.es_uccess_log. sufflx.log utternh l u t quot,rquot, s b resolveEostsfulse j> <jEost> z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj M2L,5+,( ( %'52%I(2 Ll ultlmo ejerclclo que vumos u reullzur lmllcu usur cusl todo lo que hemos vlsto en Auche y 1omcut. Lebes conflgurur un slstemu que gestlonu etlclones E11PS excluslvumente (no E11P) or lo que tunto 1omcut como Auche deben usur SSL. Ll sltlo debe tener tu nombre como nombre de domlnlo y 1endr urchlvos E1ML que servlr Auche y urte con Servlets y 'SPs que servlr 1omcut u truves de Auche. Ll control de ucceso se reullzur con un 'L8CReulm. Puedes usur los ejemlos del slte uru lu urte de ullcuclones en el servldor. Sl decldes desurrollur lus tuyus rolus se tendr en cuentu uru lu notu, ero no es necesurlo uru que lu rctlcu este blen. Eubr enluces en lu urte E1ML u los Servletsj'SPs. Un usuurlo lntroduclr unlcumente sus credenclules unu vez uru todus lus ullcuclones. Pon tu nombre en comenturlos tunto ul rlncllo como ul flnul de cudu urchlvo de conflguruclon o de contenldo que edltes. Lvltu que se uedu ucceder u lus ullcuclones de 1omcut sln usur or Auche. 34F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 1emu : lnstuluclon y udmlnlstruclon de servldores de trunsferenclu de urchlvos z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Conflguruclon del servlclo de trunsferenclu de urchlvos Ll rotocolo clslco uru lu trunsferenclu de urchlvos en lnternet se demonlnu l1P (G*)& P8/1'<&8 Z80:0.0)). Con el estudo uctuul de lnternet y lus multlles oclones de trusferenclu de urchlvos en lu web uede urecer ulgo lnnecesurlo ero slgue slendo unu oclon senclllu y eseclflcu or lo que en mbltos rofeslonules contlnuu gozundo de buenlslmu sulud. Por ejemlo slgue slendo el metodo ms hubltuul uru sublr urchlvos, uctuullzuclones o mldlflcuclones de contenldo u un servldor web, eseclulmente en el modo de hostlng. l1P se ujustu u unu urqultecturu cllentejservldor como todo lo que hemos vlsto hustu uhoru. Prlmero lnstuluremos el servldor, uru luego ver dlferentes cllentes, en este ultlmo uurtudo exlsten ulternutlvus muy cercunus u nosotros, ero u dlferenclu de los servldores web o de ullcuclones en los que el cllente lo usumos u dlurlo, en este cuso lo mejor ser ulgo ms eseclflco. Ln Llnux exlsten muchos servldores l1P dlferentes, no huy ms que echur un vlstuzo ul uquete vlrtuul de Ubuntu. Los dos ms oulures uctuulmente son -),VI-+ y *(VI-+. Ll rlmero es ms senclllo de utlllzur y sus urchlvos de conflguruclon y estructuru slmllur hucen que se urezcu mucho u Auche. Sln emburgo el segundo es el servldor l1P or defecto en lus rlnclules dlstrlbuclones de Llnux lo que huce que seu ms senclllo de lnstulur y udems se conslderu ms seguro. Al flnul es cuestlon de referenclus ersonules ero nosotros trubujuremos con vsl1Pd (;&8H 7&.,8& GPZ !/&@01). Sl necesltus oclones uru otros slstemus uedes consultur ulgunus ulternutlvus en lu comurutlvu de lu vlkledlu. Ln Llnux, un usuurlo l1P tlene su rolu curetu de usuurlo usocludu (en jhomejnombreusuurloftj) or lo que lu lntegruclon es muy ultu y l1P se beneflclu de lu comletu y otente gestlon de usuurlos de Llnux. >'&5(*('13 %* &%27+132 Lesde Llnux lo rlmero es uctuullzur los reosltorlos uru luego lnstulur el servldor. sudo apt-get update 36M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu sudo apt-get install vsftpd Podemos ver que se hu unudldo un scrlt de uutourrunque sudo gedit /etc/init.d/vsftpd or lo que los metodos hubltuules de gestlon, medlunte el scrlt o como servlclo estn dlsonlbles sudo /etc/init.d/vsftpd start sudo service vsftpd start con los comundos sturt, sto, resturt y reloud. Podemos robur que todo huyu ldo blen medlunte el cllente en modo texto ftp localhost lo que nos edlr unus credenclules uru ucceder. Por defecto nos conectumos como el usuurlo /101H@0,' y sln contrusenu. Connected to localhost. 220 (vsFTPd 2.3.5) Name (localhost:root): anonymous 331 Please specify the password. Password: z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit 221 Goodbye. Cbservu que usumos Q,*: uru desconecturnos. =3'E+I"2('13 %* &%27+132 Ll urchlvo de conflguruclon de vsl1Pd se uede consultur como vlene slendo hubltuul. sudo gedit /etc/vsftpd.conf lnstulu el servldor vsl1Pd Como el urchlvo est muy comentudo y yu conocemos lu muyorlu de los concetos lmllcudos odemos dlscutlr en cluse lus dlrectlvus que uurecen. Ln cuso de no conocer ulgo utlllzu lnternet. Lebemos durnos cuentu de que lu comblnuclon del uso de los dlrectorlos de usuurlos locules (en el servldor Llnux) con su gestlon en Auche uru que su dlrectorlo ersonul lncluyu unu curetu uru su sltlo web, lus oslbllldudes de LNS y lus oclones que ucubumos de comentur en l1P ermlten conflgururse un servlclo de N0':*1+ rolo. 363 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 1rus cudu cumblo en lu conflguruclon es necesurlo relnlclur el servldor. Puru lu muyorlu de los cusos es suflclente con recurgur lu conflguruclon (reloud). service vsftpd reload 1odus lus oclones de conflguruclon se ueden consultur en estu glnu de Ubuntu. 1umblen est blen exllcudus uqul. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 1los de usuurlos y uccesos ul servlclo Ln l1P exlsten dos tlos bslcos de usuurlo, los corrlentes y los unonlmos. Reulmente deflnen el tlo de ucceso orque lndlcun sl te ests uutentlcundo con un usuurlo concreto o ests utlllzundo unu cuentu unonlmu que generulmente no requlere uutentlcuclon. Un servldor l1P uede servlr umbos tlos slmultnemente. ! VI- :%<%#9,: Lste modo se utlllzu generulmente cuundo el servldor l1P se usu uru dlstrlbulr cuulquler tlo de urchlvo o urchlvos u un numero muy elevudo de usuurlos en unu sltuuclon en lu que lu ldentlflcuclon no es muy lmortunte. Sl or ejemlo hemos reullzudo unu ullcuclon de softwure llbre y queremos dlstrlbulrlu es unu buenu oclon. Ln este tlo de conexlon solo se le lde ul cllente un nombre de usuurlo unonlmo (generulemente y or defecto es /101H@0,') y sl ucuso (no slemre) unu contrusenu que se reflere u cuulquler dlrecclon de correo electronlco vlldu. Unu vez nos hemos conectudo ul servldor tendremos ucceso ul dlrectorlo unonlmo y sus subdlrectorlos. ! VI- !,))#$%&$: Ln este cuso los usuurlos de l1P son los que exlsten en lu mqulnu en lu que lnstulumos el servldor. Lstos usuurlos odrn leer de y colur u su dlrectlo ersonul urchlvos remotumente. Lus mlsmus credenclules que tlenen en lu mqulnu sern lus que neceslten uru conecturse u medlunte l1P. vsl1Pd ermlte que este tlo de conexlon se restrlnju u los usuurlos de un gruo determlnudo. Ll uso de este tlo de conexlon es muy hubltuul en los hostlngs web, uunque no es rctlco cuundo tenemos muchlsmos usuurlos como uede ser el cuso. Puru ello se utlllzun los denomlnudos 7(7:)#,( *#)&7:"$( que tendrn credenclules l1P ero no cuentu en el servldor Llnux. Se ueden conflgurur estus oclones en el urchlvo sudo gedit /etc/vsftpd.conf Por defecto nuestru lnstuluclon solo ermlte conexlon unonlmu. # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=YES # 366 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu # Uncomment this to allow local users to log in. #local_enable=YES Pero vemos que uctlvur o desuctlvur otros tlos de usuurlos es cuestlon de comentur o descomentur unu llneu. Pruebu u ermltlr que los usuurlos con cuentu en el servldor se conecten con sus rolus credenclules. Lebes tener en cuentu que esto no uctlvu lu conexlon de root or lo que ser necesurlo que utlllces otro usuurlo uru conecturte. Leshubllltu lu conexlon unonlmu y ruebu umbos cusos. vuelve u hubllltur lu conexlon unonlmu. Ll dlrectorlo or defecto uru el usuurlo unonlmo es f'8>f<:(f y uru los usuurlos regulures su curetu ersonul. #ftp localhost Connected to localhost. 220 (vsFTPd 2.3.5) Name (localhost:root): sergio 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Using binary mode to transfer files. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. drwxr-xr-x 2 1000 1000 4096 Sep 26 10:42 Descargas drwxr-xr-x 2 1000 1000 4096 Sep 26 10:42 Documentos drwxr-xr-x 2 1000 1000 4096 Sep 26 10:42 Escritorio drwxr-xr-x 2 1000 1000 4096 Sep 26 10:42 Im??genes drwxr-xr-x 2 1000 1000 4096 Sep 26 10:42 M??sica drwxr-xr-x 2 1000 1000 4096 Sep 26 10:42 Plantillas drwxr-xr-x 2 1000 1000 4096 Sep 26 10:42 P??blico drwxr-xr-x 2 1000 1000 4096 Sep 26 10:42 V??deos -rw-r--r-- 1 1000 1000 8445 Sep 26 10:15 examples.desktop 226 Directory send OK. ftp> quit 36K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 221 Goodbye. Pruebu u sltuur ulgun urchlvo en lu curetu del usuurlo unonlmo. Conectute medlunte ft uru comrobur que exlste el urchlvo. Podemos modlflcur este dlrectorlo mkdir /var/ftpcomp/pub sudo gedit /etc/vsftpd.conf y escrlblmos lu dlrectlvu correctu anon_root=/var/ftpcomp/pub trus relnlclur el servldor odemos ver que lu curetu rulz de los usuurlos unonlmos hu cumbludo. Puedes creur un urchlvo dentro uru comroburlo. Aunque generulmente no es nudu recomenduble (uede suoner un grun ugujero de segurldud or el que se cuelen muchlmos utuques u nuestro servldor), u veces es necesurlo que los usuurlos unonlmos uedun sublr urchlvos ul servldor. Los usuurlos ft no tlenen ermlso uru escrlblr en su dlrectorlo rulz or lo que debemos creur otro dlrectorlo dentro en el que ermltumos sublr urchlvos. Creumos lu curetu y nos usegurumos de que tengu el roleturlo y los ermlsos udecuudos. mkdir /var/ftpcomp/pub/upload chown root.root /var/ftpcomp/pub/upload/ chmod 757 /var/ftpcomp/pub/upload/ Puedes consultur lu llstu de comundos de l1P desde consolu en muchus glnus de lnternet, or ejemlo uqul. z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Cuundo lntentumos conecturnos uede durnos un error cc # ftp localhost Connected to localhost. 220 (vsFTPd 2.3.5) Name (localhost:root): anonymous 331 Please specify the password. Password: 500 OOPS: vsftpd: refusing to run with writable root inside chroot() Login failed. ftp> quit 421 Service not available, remote server has closed connection Lsto se debe u que el usuurlo no debe tener remlsos de escrlturu en su curetu rulz usl que odemos qultrselos y yu est. Por ello uhoru tendr que escrlblr dentro de uloud. chmod 555 /var/ftpcomp/pub 1umblen huy que modlflcur unu dlrectlvu uru que se ermltun sublr urchlvos ul servldor y recurgur lu conflguruclon # Uncomment this to enable any form of FTP write command. 36F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu write_enable=YES y un oco ms ubujo conflgurumos el que el usuurlo unonlmos uedu sublr urchlvos y el que uedu creur dlrectorlos. # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. anon_upload_enable=YES # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. anon_mkdir_write_enable=YES recurgumos lu conflguruclon service vsftpd reload y robumos. Cbservu que en el ejemlo se lntentu en el dlrectorlo que hemos conflgurudo uru ello y en el que no. 1en encuentu que el urchlvo u sublr est en el dlrectorlo desde el que he ejecutudo el cllente l1P. # ftp localhost Connected to localhost. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 220 (vsFTPd 2.3.5) Name (localhost:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd upload 250 Directory successfully changed. ftp> put aSubir.txt local: aSubir.txt remote: aSubir.txt 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. ftp> cd .. 3RM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 250 Directory successfully changed. ftp> put aSubir.txt local: aSubir.txt remote: aSubir.txt 200 PORT command successful. Consider using PASV. 553 Could not create file. ftp> quit 221 Goodbye. volvemos u desuctlvur lu oclon de que los usuurlos unonlmos uedun usur sublr urchlvos slmlemente volvlendo u comentur lus dos ultlmus dlrectlvus ero muntenemos lu oclon de que los usuurlos corrlentes uedun sublr urchlvos. useradd -m prueba passwd prueba Un gruve roblemu de segurldud en l1P y Llnux (no solo con vsl1Pd) es que un usuurlo tlene ucceso u todu lu estructuru de urchlvos del servldor. Aunque no tengu ermlsos uru escrlblr uede leer y llstur. ftp localhost Connected to localhost. 220 (vsFTPd 2.3.5) z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Name (localhost:root): prueba 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 1002 1003 8445 Apr 16 2012 examples.desktop 226 Directory send OK. ftp> cd / 250 Directory successfully changed. ftp> ls 200 PORT command successful. Consider using PASV. 3R3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Sep 27 07:58 bin drwxr-xr-x 3 0 0 4096 Sep 27 08:02 boot drwxr-xr-x 2 0 0 4096 Sep 26 08:28 cdrom drwxr-xr-x 15 0 0 4080 Feb 09 06:28 dev drwxr-xr-x 128 0 0 12288 Feb 09 10:42 etc drwxr-xr-x 4 0 0 4096 Feb 09 10:41 home lrwxrwxrwx 1 0 0 37 Sep 27 08:01 initrd.img -> /boot/initrd.img-3.2.0-31- generic-pae lrwxrwxrwx 1 0 0 36 Sep 26 10:18 initrd.img.old -> boot/initrd.img-3.2.0-29- generic-pae drwxr-xr-x 21 0 0 4096 Sep 26 10:19 lib drwx------ 2 0 0 16384 Sep 26 08:24 lost+found drwxr-xr-x 2 0 0 4096 Sep 27 08:27 media drwxr-xr-x 2 0 0 4096 Apr 19 2012 mnt drwxr-xr-x 3 0 0 4096 Sep 27 07:14 opt z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj dr-xr-xr-x 153 0 0 0 Feb 09 06:27 proc drwx------ 20 0 0 4096 Feb 09 10:07 root drwxr-xr-x 22 0 0 780 Feb 09 09:29 run drwxr-xr-x 2 0 0 4096 Sep 27 08:20 sbin drwxr-xr-x 2 0 0 4096 Mar 05 2012 selinux drwxr-xr-x 3 0 0 4096 Feb 09 07:04 srv drwxr-xr-x 13 0 0 0 Feb 09 06:27 sys drwxrwxrwt 9 0 0 4096 Feb 09 10:17 tmp drwxr-xr-x 10 0 0 4096 Feb 09 10:07 usr drwxr-xr-x 14 0 0 4096 Feb 09 09:33 var lrwxrwxrwx 1 0 0 33 Sep 27 08:01 vmlinuz -> boot/vmlinuz-3.2.0-31-generic-pae lrwxrwxrwx 1 0 0 33 Sep 26 10:18 vmlinuz.old -> boot/vmlinuz-3.2.0-29-generic- pae 226 Directory send OK. ftp> quit 221 Goodbye. 3R6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lu formu fcll de soluclonurlo es chroot_local_user=YES Puru lu grun muyorlu de los cusos, u no ser que necesltemos un control exceslvo sobre lo que hucen los usuurlos estu oclon serlu ms que suflclente. >,%=#;7):!#<% :*:%L:+: +$" !B),,& Reulmente lu oclon unterlor tlene un equeno ugujero de segurldud como se lndlcu en lus lAQ de svl1Pd Q) Help! hat are the security implications referred to in the "chroot_local_user" option? A) Firstly note that other ftp daemons have the same implications. It is a generic problem. The problem isn't too severe, but it is this: Some people have FTP user accounts which are not trusted to have full shell access. If these accounts can also upload files, there is a small risk. A bad user now has control of the filesystem root, which is their home directory. The ftp daemon might cause some config file to be read - e.g. /etc/some_file. ith chroot(), this file is now under the control of the user. vsftpd is careful in this area. But, the system's libc might want to open locale config files or other settings... Puru evltur esto huy que cumblur lus oclones de conflguruclon. # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). # (arning! chroot'ing can be very dangerous. If using chroot, make sure that # the user does not have write access to the top level directory within the z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj # chroot) chroot_local_user=NO chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd.chroot_list Ln el que he dejudo el urchlvo de usuurlos or defecto. Lo slgulente serlu cumblur los ermlsos ul dlrectorlo del usuurlo ruebu uru que no tengu ermlsos de escrlturu en su curetu ersonul (y usl nos deje conecturnos) chmod 555 /home/prueba Ll roblemu es que cuulquler otro usuurlo que se conecte toduvlu uede ucceder u todo # useradd -m pru # passwd pru # ftp localhost Connected to localhost. 220 (vsFTPd 2.3.5) Name (localhost:root): pru 331 Please specify the password. 3RK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 1003 1004 8445 Apr 16 2012 examples.desktop 226 Directory send OK. ftp> cd .. 250 Directory successfully changed. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. drwxr-xr-x 2 1003 1004 4096 Feb 09 11:02 pru z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj dr-xr-xr-x 2 1002 1003 4096 Feb 09 10:56 prueba drwxr-xr-x 21 1000 1000 4096 Feb 09 10:15 sergio 226 Directory send OK. ftp> cd .. 250 Directory successfully changed. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Sep 27 07:58 bin drwxr-xr-x 3 0 0 4096 Sep 27 08:02 boot drwxr-xr-x 2 0 0 4096 Sep 26 08:28 cdrom drwxr-xr-x 15 0 0 4080 Feb 09 06:28 dev drwxr-xr-x 128 0 0 12288 Feb 09 11:02 etc drwxr-xr-x 5 0 0 4096 Feb 09 11:02 home lrwxrwxrwx 1 0 0 37 Sep 27 08:01 initrd.img -> /boot/initrd.img-3.2.0-31- generic-pae 3RF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu lrwxrwxrwx 1 0 0 36 Sep 26 10:18 initrd.img.old -> boot/initrd.img-3.2.0-29- generic-pae drwxr-xr-x 21 0 0 4096 Sep 26 10:19 lib drwx------ 2 0 0 16384 Sep 26 08:24 lost+found drwxr-xr-x 2 0 0 4096 Sep 27 08:27 media drwxr-xr-x 2 0 0 4096 Apr 19 2012 mnt drwxr-xr-x 3 0 0 4096 Sep 27 07:14 opt dr-xr-xr-x 152 0 0 0 Feb 09 06:27 proc drwx------ 20 0 0 4096 Feb 09 10:07 root drwxr-xr-x 22 0 0 780 Feb 09 09:29 run drwxr-xr-x 2 0 0 4096 Sep 27 08:20 sbin drwxr-xr-x 2 0 0 4096 Mar 05 2012 selinux drwxr-xr-x 3 0 0 4096 Feb 09 07:04 srv drwxr-xr-x 13 0 0 0 Feb 09 06:27 sys drwxrwxrwt 9 0 0 4096 Feb 09 10:17 tmp drwxr-xr-x 10 0 0 4096 Feb 09 10:07 usr z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj drwxr-xr-x 14 0 0 4096 Feb 09 09:33 var lrwxrwxrwx 1 0 0 33 Sep 27 08:01 vmlinuz -> boot/vmlinuz-3.2.0-31-generic-pae lrwxrwxrwx 1 0 0 33 Sep 26 10:18 vmlinuz.old -> boot/vmlinuz-3.2.0-29-generic- pae 226 Directory send OK. ftp> quit 221 Goodbye. Puru soluclonurlo slemre odemos lnclulr u los usuurlos en el urchlvo de llstu. gedit /etc/vsftpd.chroot_list y escrlblr el nombre de usuurlo uno debujo de otro prueba sergio pru Ln ml cuso Serglo no uede conecturse ul servldor l1P orque slgue tenlendo ermlsos de escrlturu en su dlrectorlo. Comblnundo estos elementos se uede conceder ucceso u los usurlos que querumos. Puru lu grun muyorlu de los cusos, u no ser que necesltemos un control exceslvo sobre lo que hucen los usuurlos, lu oclon de 3KM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu \(7:)#,( U#)&7:"$( 1odo este uurtudo lo huremos con unu colu de lu mqulnu vlrtuul uru no lnflulr en el resto del temu. 1umblen se ueden utlllzur usuurlos vlrtuules. Puru ello huy que estur usundo PAM (Plugguble Authentlcutlon Modules) de Llnux. Ln el urchlvo de conflguruclon # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd vumos u reullzur un ejemlo muy utll uru ulojur sltlos de dlferentes ersonus que uedun uctuullzur sus rolos urchlvos medlunte l1P. lnstulumos el modulo sudo apt-get install vsftpd libpam-pwdfile vumos u creur un nuevo urchlvo de conflguruclon usl que renombrumos el orlglnul y creumos uno nuevo sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak sudo gedit /etc/vsftpd.conf con lus slgulentes dlrectlvus listen=YES anonymous_enable=NO local_enable=YES z6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj write_enable=YES local_umask=022 nopriv_user=vsftpd virtual_use_local_privs=YES guest_enable=YES user_sub_token=$USER local_root=/var/www/$USER chroot_local_user=YES hide_ids=YES guest_username=vsftpd lnvestlgu y comentu en cluse que hucen lus dlrectlvus que desconoces. Ln el slgulente uso huy que usur N:(/''D- or lo que necesltumos tener lnstuludo Auche lo que en el ejemlo que vemos es ms que necesurlo. Creumos un dlrectorlo uru colocur los urchlvos de conflguruclon sudo mkdir /etc/vsftpd 3K3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu y creumos sudo htpasswd -cd /etc/vsftpd/ftpd.passwd sergio1 donde -c lndlcu que se cree el urchlvo y -d que se utlllce ML. Puru los slgulentes usuurlos omltlremos lu oclon -c sudo -d htpasswd /etc/vsftpd/ftpd.passwd maria Columos el urchlvo de conflguruclon de PAM sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak y creumos otro sudo gedit /etc/pam.d/vsftpd con el contenldo auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd account required pam_permit.so Y creumos un usuurlo locul sln ucceso en locul! Cuundo el usuurlo se conecte u truves de un cllente l1P ul servldor, este usuurlo que creumos es el que determlnur los ermlsos y roledudes de urchlvos. A el se usoclurn los usuurlos vlrtuules que se conecten u truves de l1P sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd Yu solo quedu conflgurur los dlrectorlos mkdir /var/www/sergio1 z6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj chmod -w /var/www/sergio1 mkdir /var/www/sergio1/www chmod -R 755 /var/www/sergio1/www chown -R vsftpd:nogroup /var/www/sergio1 Ahoru odemos coecturnos y sublr urchlvos u f>/8fDDDf'&8+*0EfDDDf ero no ul rulz del usuurlo. M%2;+&3& 4 ,"35(& Eemos vlsto en los untos unterlores como se conflgurun los 1$)9#(,( generules de usuurlos unonlmos y corrlentes. Los ermlsos eseclflcos en el cuso que estumos trutundo se concretun con los ermlsos del usuurlo o gruo ul que ertenece en Llnux uru lus curetus corresondlentes. Ls lmortunte recordur que sl ul lr u conecturnos con un usuurlo ul servldor vsl1Pd nos uurece el error cc, es orque no se le ueden dur ermlsos de escrlturu ul usuurlo en su curetu rulz. Lstublecer llmltes u los usuurlos es de vltul lmortunclu en un slstemu l1P uru evltur que unos ocos consumun demusludos recursos. Aunque no es urte de este modulo, qulero destucur que es oslble llmltur el uncho de bundu y numero de conexlones slmultneus que uede usur el mlsmo usuurlo. Ll temu que uqul vumos u dlscutlr es el ms lmortunte orque un solo usuurlo uede ocuur demusludo esuclo de dlsco y no dejur nudu uru otros. Puru evltur esto se estublece unu !7,&: +$ $(1:!#, $% +#(!,. vsl1Pd ermlte estublecer cuotus uru cudu usuurlo medlunte un uquete udlclonul. Lste uquete de hecho estublece cuotus uru los usuurlos en Llnux, no solo en vsl1Pd. sudo apt-get install quota Lo slgulente que huy que hucer es hubllltur el uso de cuotus en nuestro slstemu de urchlvos. Puru ello se edltu un flchero sudo gedit /etc/fstab 3K6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu y locullzumos lu llneu del unto de montuje del slstemu de urchlvos donde estubleceremos lu cuotu # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc nodev,noexec,nosuid 0 0 # / was on /dev/sda1 during installation UUID=5636501c-a7be-44e1-a7d9-0c78fce32598 / ext4 errors=remount-ro 0 1 # swap was on /dev/sda5 during installation UUID=70f12e1a-101a-4ef7-9501-3cebfeef9408 none swap sw 0 0 Ln este cuso vlene con el ldentlflcudor del dlsco ero uede uurecer como jdevjhduj ero lo que yo he buscudo es que el unto de montuje fueru j (lu rulz). Letrs del tlo de extenslon unudlmos 7()E7,&: y ;)1E7,&: uru cuotus de usuurlos y de gruos resectlvumente. Puede unudlrse solo unu de lus dos sl lu otru no nos vu u hucer fultu. z6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj # / was on /dev/sda1 during installation UUID=5636501c-a7be-44e1-a7d9-0c78fce32598 / ext4 usrquota,grpquota,errors=remount-ro 0 1 Puru que se curguen los cumblos que ufectun ul slstemu de urchlvos es necesurlo relnlclur el equlo o ejecutur mount -o remount / Lo slgulente yu serlu uslgnur cuotus de dlsco u los usuurlos. Puru ello huy que entender unos urmetros que se estublecen uru cudu cuotu: ! 8locks: lndlcu el numero de bloques que odr ocuur el usuurlo en dlsco. Se mlde en l8 ! Soft: Ls el llmlte blundo. Cuundo el usuurlo lo sueru se le uvlsu, ero dlsone de unu semunu (or defecto, se uede modlflcur) uru ocuur un esuclo menor ul que lndlcu este urmetro. Sl usudu unu semunu no lo hu llberudo, se estublecer como un llmlte efectlvo y no odr ocuur nudu ms. ! Eurd: Ll llmlte duro lndlcu lu cuntldud que no uede suerur de nlngunu muneru. ! lnodes: Ll numero de nodos y or lo tunto flcheros que uede tener el usuurlo. Prlmero debemos suber que slstemu de flcheros estumos usundo: # df -T S.ficheros Tipo 1K-bloques Usado Disponible Uso% Montado en /dev/sda1 ext4 7223800 3150336 3706516 46% / udev devtmpfs 505356 4 505352 1% /dev tmpfs tmpfs 205056 792 204264 1% /run none tmpfs 5120 0 5120 0% /run/lock 3KK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu none tmpfs 512640 8 512632 1% /run/shm Ahoru yu odemos estublecer unu cuotu. setquota -u prueba 10240 20480 0 0 /dev/sda1 Eemos estublecldo unu cuotu blundu de czcl8 (cM8) y unu duru de (zcM8) y sln llmltes duros nl blundos de lnodos. Sl estublecemos c como vulor de ulguno de los llmltes no ese llmlte no se ullcur. Llscute en cluse lus lmllcuclones que uede tener no estublecer llmltes duros o blundos. Lu cuotu de un gruo se estublecerlu con lu oclon -g en lugur de -u. Lste llmlte es uru el gruo en generul, no uru cudu usuurlo del gruo. 1umblen ueden edlturse lus quotus: edquota -u NombreUsuario edquota -g NombreGrupo Puru ver un llstudo de todos los usuurlos y sus cuotus usumos repquota -a y uru consultur lu de un usuurlo en urtlculur quota -u prueba z6, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Lstublece unu cuotu blundu de M8 uru un usuurlo y unu duru de zM8, ruebu u suerur lu blundu ero quedndote or debujo de lu duru y luego ruebu u suerur lu dudu. Auntu lo que sucede. K313& 1% ,3'%[+-' 1%* ,*+%'5% l1P es un rotocolo que funclonu slemre sobre 1CP yu que no huy oclon o verslon con ULP. 1llcumente l1P utlllzu dos uertos, uno de control (uru ordenes o comundos, el z) y un uerto uru dutos (zc). Sl te hus fljudo durunte los untos unterlores, el rolo servldor de l1P nos edlu que usrumos ul modo uslvo, ero. que es? Prlmero veremos el uctlvo. Z,+, :!&#*, Ln el modo uctlvo lus cosus funclonun como se exonen u contlnuuclon: . Ll cllente huce unu etlclon ul servldor en el uerto z desde lo que se conoce como un uerto ulto (>cz que llumuremos N), con comundos como or ejemlo "ls' o "get'. z. Sl lu etlclon requlere lu trunsferenclu de dutos del servldor ul cllente, $" ($)*#+,) ubre unu conexlon u otro uerto ulto (generulmente N) . Ll servldor trunsflere los dutos. Ln los usos unterlores se hun omltldo lus conflrmuclones, etc lnvolucrudus. Lste modo slgue lu loglcu de lu muyorlu de lus conexlones 1CP. Ll roblemu con el que se encuentru este modo es que sl el cllente se encuentru trus un flrewull o cuulquler dlsosltlvo que hugu NA1 lo ms robuble es que el servldor no uedu conecturse con el huclendo que fulle el uso z. Z,+, 1:(#*, Lu soluclon u esto es el modo uslvo, en el que lus cosus suceden de muneru un oco dlferente: . Ll cllente huce unu etlclon ul servldor en el uerto z desde lo que se conoce como un uerto ulto (>cz que llumuremos N), con comundos como or ejemlo "ls' o "get'. Lste uso es ldentlco. 3KF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu z. Ll cllente hu uvlsudo ul servldor de que el se encurgur de comenzur lu conexlon, or lo que el servldor contestu con otro uerto ulto ul que el cllente debe conecturse. . Sl lu etlclon requlere lu trunsferenclu de dutos del servldor ul cllente, $" !"#$%&$ ubre unu conexlon u ese uerto. . Ll servldor trunsflere los dutos. Como uedes observur lu rlnclul dlferenclu es qulen ubre lu conexlon y se huce uru evltur los roblemus comentudos en el uurtudo unterlor. Por defecto el cllente se conectu en modo uctlvo, ero se uede usur ul uslvo medlunte el comundo udecuudo. #ftp localhost Connected to localhost. 220 (vsFTPd 2.3.5) Name (localhost:root): sergio1 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful. Consider using PASV. z6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 150 Here comes the directory listing. drwxr-xr-x 2 ftp ftp 4096 Feb 09 11:19 www 226 Directory send OK. ftp> passive Passive mode on. ftp> ls 227 Entering Passive Mode (127,0,0,1,74,3). 150 Here comes the directory listing. drwxr-xr-x 2 ftp ftp 4096 Feb 09 11:19 www 226 Directory send OK. ftp> quit 221 Goodbye. Puru uctlvur o desuctlvur el modo uslvo se utlllzu en el urchlvo de conflguruclon (est uctlvudo) pasv_enable=YES o lo mlsmo con e] 35M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Protocolo seguro de trunsferenclu de urchlvos Ll uso de SSLj1SL en l1P tlene sentldo eseclulmente u lu horu de comunlcur lus credenclules de uutentlcuclon usl que sl solo vumos u usur l1P unonlmo no deberlumos reocuurnos. Lo rlmero que debemos hucer es generur un certlflcudo. vsl1Pd utlllzu el formuto em usl que lo generumos con lu slgulente orden openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem Eubr que edltur el urchlvo de conflguruclon mv /etc/vsftpd.conf /etc/vsftpd.conf.bak sudo gedit /etc/vsftpd.conf y escrlblr lo slgulente listen=YES anonymous_enable=NO local_enable=YES write_enable=YES ssl_enable=YES z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj listen_port=990 #The following line enables implicit mode implicit_ssl=YES allow_anon_ssl=NO #This will force secure data connections, not required, but recommended force_local_data_ssl=YES #This will force secure logins, not strictly required, but REALLY recommended force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO #La siguiente lnea es necesaria para que Filezilla acepte la conexin ssl_ciphers=AES128-SHA rsa_cert_file=/etc/ssl/private/vsftpd.pem Los urmetros unterlores deberlun ser bustunte evldentes u estus ulturus. Llscute en cluse que hucen. 353 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Posterlormente tendremos que relnlclur el servlclo. service vsftpd restart D' ,*+%'5% %' ;313 5%[53 )(2( 0BM6 Ahoru necesltumos un cllente que soorte este tlo de conexlones, uru ello lnstulumos )<:(, el ms extendldo en modo texto uru Llnux. sudo apt-get update sudo apt-get install lftp uhoru yu odemos robur nuestru conexlon. lftp ftps://localhost lftp localhost:~> user prueba Clave: lftp prueba@localhost:~> ls ls: Error fatal: Certificate verification: Not trusted lftp prueba@localhost:~> set ssl:verify-certificate no lftp prueba@localhost:~> ls -rw-r--r-- 1 1001 1002 8445 Apr 16 2012 examples.desktop z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj lftp prueba@localhost:~> quit Ln lu unterlor ruebu se utlllzun unos comundos bslcos, se ueden consultur todos con en comundo N&)( unu vez conectudos u lft. 356 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Utlllzuclon de herrumlentus grflcus Ll cllente grflco ms extendldo en l1P es lllezlllu. Lesues de descurgurlo y descomrlmlrlo ejecutumos el urchlvo blnjfllezlllu. Ln lu ventunu que nos uurece lo rlmero es conecturnos ul servldor, uru lo que tenemos que estublecer unos urmetros: . Lu url del servldor, con el rotocolo <:(' en cuso de que querumos unu conexlon seguru y el servldor lo ermltu. z. Ll nombre de usuurlo. . Lu contrusenu. . Un uerto en cuso de que el servldor no este conflgurudo uru reclblr conexlones en los uertos estndur. . Pulsumos en el boton uru conecturnos. Ln el cuso de estublecer unu conexlon seguru, sl el certlflcudo no es de conflunzu, nos uurecer unu ventunu de uvlso en lu que veremos los dutos del certlflcudo y odremos murcur el certlflcudo uru que nos vuelvu u reguntur sl conflumos en el. Unu vez nos hemos conecrtudo veremos que en lu urte lnferlor tenemos unu esecle de exlorudor de urchlvos en el que en lu urte de lu lzqulerdu uurece lo que tenemos en locul y en lu de lu derechu lus curetus y z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj urchlvos en el servldor l1P. Ll funclonumlento es muy senclllo slendo lu oeruclon bslcu lu de sublr o bujur urchlvos uru lu que bustu con urrustrur de un sltlo u otro. 1en en cuentu que los ermlsos en lus curetus en umbos ludos tlenen que ermltlr que reullcemos lu ucclon que retendemos llevur u cubo. lnstulu lllezlllu y ruebu u conecturte medlunte l1PS. Pruebu u sublr y bujur urchlvos. Puedes ellmlnurlos o renombrurlos en el servldor? Que boton se utlllzu uru desconecturse? 35K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Utlllzuclon del servlclo de trunsferenclu de urchlvos desde el nuvegudor Los nuvegudores veb uctuules soortun conexlones l1P sln emburgo no suelen soortur l1PS o l1PLS. Por ello revlerto lu conflguruclon del servldor u l1P normul. mv /etc/vsftpd.conf /etc/vsftpd.conf.ftps mv /etc/vsftpd.conf.bak /etc/vsftpd.conf sudo service vsftpd restart Puru conecturnos con unu conexlon unonlmu no huy ms que oner ft:jjloculhost en lu burru de dlrecclones, donde loculhost ser lu dlrecclon del sltlo. Pero uru conecturte con un usuurlo se escrlbe ft:jjnombreusrQsltlo.web Por ejemlo sl me conecto u ft:jjruebuQloculhost me lde lu contrusenu uru el usuurlo y luego me muestru su curetu, lo rlmero que vemos es que yu no uurece el z,, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj nombre del usuurlo en lu burru de dlrecclon ero sl en el tltulo de lu ventunujestunu de nuveguclon. Sln emburgo los nuvegudores web no son cllentes l1P y solo ermlten nuvegur or lus curetus y descurgur urchlvos, ero no sublrlos. Lste ultlmo roblemu y el de lus conexlones l1PS lo odemos soluclonur medlunte comlementos como or ejemlo llrel1P uru llrefox. 35F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Utlllzuclon del servlclo de trunsferenclu de urchlvos en el roceso de desllegue de lu ullcuclon web Lste unto del temurlo hu quedudo cublerto con lo vlsto en todos los unterlores. Ll desllegue de ullcuclones veb medlunte l1P lmllcu lnstulur un servldor l1P en lu mlsmu mqulnu en lu que tengumos el servldor veb yjo de Allcuclones y hubllltur lu curetu de lu ullcuclon uru que se uedun conectur determlnudos usuurlos con oclones uru modlflcur el contenldo. Le estu formu odremos desurrollur todu lu ullcuclon en unu mqulnu de desurrollo y ruebus y sublr lu verslon flnul y robudu ul servldor sln necesldud de ucceso flslco u el. Lvldentemente uru un desurrolludor web que trubuje uru muchos cllentes estu oclon es comletumente vltul. z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Lesurrollo de oeruclones remotus de gestlon de contenldos: vebLAv vebLAv (muchus veces se conoce como LAv u secus) es unu extenslon de E11P que fucllltu el munejo de documentos en servldores web. Permlte gestlonur verslones y uutorlu de documentos de unu formu dlstrlbuldu. Como tuntos royectos desurrolludos or gruos de trubujo en lnternet, est en constunte evoluclon. Euy que tener en cuentu que vebLAv es un rotocolo or lo que se uede ver como un slstemu de flcheros dlstrlbuldo con cuucldudes como or ejemlo bloqueur recursos uru su uctuullzuclon evltundo que otros uedun estur modlflcndolos u lu vez. Al ser un rotocolo ermlte que se creen ullcuclones sobre el uru lu gestlon dlstrlbuldu de documentos en lu web. Ln el cuso que nos lmortu tlene lu grun utllldud de ermltlr que gruos de trubujo de gente en locullzuclones flslcus dlferentes muntengun y uctuullcen unu web o ullcuclon web mlnlmlzundo los roblemus que ello conllevu. Ln el rolo sltlo del orgunlsmo uedes consultur unu llstu de roductos que usun vebLAv, sl le echus un vlstuzo te vus u sorrender. Ln el fondo vebLAv no es ms que unu esecle de conexlon que te ermlte desurrollur en modo remoto uccedlendo u los recursos del servldor uru modlflcurlos como sl estuvlerun en locul. Puru demostrur esto se uede consultur lu slgulente llstu de enluces uru que se veu como se conflguru lu conexlon ul servldor en dlferentes ullcuclones: . Mlcrosoft Cfflce z. Lreumweuver . Lxlorudor de vlndows . CNCML en Llnux . MAC CS Ln estu otru glnu lo exllcun uru vurlus sltuuclones dlferentes. Ln lu llstu de roductos uedes ver que huy muchus ullcuclones de edlclon de documentos (no necesurlumente documentos veb) que usun estu tecnologlu e lncluso es oslble que lu huyumos usudo sln suberlo. Auche tlene un modulo uru oder hubllltur vebLAv. 3FM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu lnstulur y conflgurur un sltlo en Auche uru que utlllce vebLAv es senclllo. Ls un temu erfecto uru "urender u urender'. Aqul tlenes un equeno tutorlul ero huy muchu lnformuclon en lnternet. Pruebu u hubllltur vebLAv en un sltlo de Auche y u conecturte de dlferentes munerus. Puedes robur u conecturte de dos formus dlferentes e lntentur edltur el mlsmo urchlvo uru ver sl funclonu el bloqueo de recursos. z8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 1emu : Servlclos de red lmllcudos en el desllegue de unu ullcuclon web 3F3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Resolutores de nombres lnternet y or extenslon lu grun muyorlu de lus redes de ordenudores en lu uctuulldud utlllzun el conjunto de rotocolos 1CPjlP. Lu cuu de red de este conjunto es lu que deflne lus dlrecclones de los dlferentes dlsosltlvos conectudos, conocldus como dlrecclones lP. Ln lu verslon uctuul () del rotocolo lP lus dlrecclones se comonen de cuutro gruos o numeros de 8 blts y suelen reresenturse como cuutro untos del c ul z seurudos or untos. No es el rooslto de este modulo ubundur en este temu, buste declr que lo que nosotros conocemos como "dlrecclones de lnternet' o URLs no son ms que usocluclones de un nombre ms fcll de recordur o que se usocle u ulgo con unu de estus dlrecclones lP. Ll rotocolo de este conjunto que se encurgu de estu tureu es LNS (!0@/*1 e/@& 7H':&@). Ll roceso de buscur lu dlrecclon lP usocludu u un nombre de domlnlo determlnudo (or ejemlo www.nbu.com) se conoce como resolver unu dlrecclon. Como todo lo que venlmos vlendo en este curso slgue un modelo CllentejServldor en el que los cllentes ()$(,"7&,)$( o 8&'0)>&8') formun urte de los slstemus oerutlvos de lus mqulnus y se encurgun de contuctur con los servldores uru que les lndlquen lu dlrecclon lP usocludu u unu URL cuundo seu necesurlo. Euy que tener en cuentu que un servldor LNS uede ser cllente de otro servldor LNS. Los servldores se conocen como Servldores de Nombres (e/@& 7&8>&8') y funclonun segun el modelo jerrqulco y dlstrlbuldo: ! 'errqulco orque se orgunlzu como un rbol lnvertldo. Ln lu rulz (domlnlo uru que reclbe su nombre del royecto germen de lnternet) esturlu lu uutorldud rlnclul que delegu lus termlnuclones rlnclules u orgunlsmos, entldudes o ulses. Lstus termlnuclones lncluyen elementos como .com, .org, .net, .gov, .es, .us, .uk, .fr etc. Los encurgudos de gestlonur cudu unu de estus termlnuclones (domlnlos de nlvel suerlor o to level) ueden u su vez subdlvldlr y delegur el domlnlo. Por ejemlo en Crun 8retunu hun creudo uno comerclul y su termlnuclon es .co.uk y usl .co serlu unu zonu delegudu dentro de .uk Un ejemlo comleto de todo esto serlu or ejemlo www.ll.uum.es en el que (de derechu u lzqulerdu) se lndlcu que es un domlnlo de Lsunu, de lu Unlversldud Autonomu de Mudrld, de lu Lscuelu de lngenlerlu lnformtlcu y dentro de eso que huce referenclu ul servldor web. Ln este ultlmo uurtudo uede huber otros como or ejemlo ft. Lus dos dlrecclones de ejemlo vlstus urrlbu son N0':1/@&' yu que tlenen unu o ms dlrecclones lP usocludus. Lus urtes de lu derechu lndlcun domlnlos o subdomlnlos, ero no se usoclun con dlrecclones concretus. ! Llstrlbuldo orque no es necesurlo que un resolutor LNS seu cuuz de conocer todus lus oslbles usocluclones slno que uede conocer ulgunos y usurle lus que no conoce u otros servldores usl como reclblr u su vez etlclones de otros ures uru resolver lus que sl conoce. Lsto lo veremos en ms detulle en el roceso de resoluclon de nombres. z8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Como notu uru el futuro, convlene declr que nos encontrumos en un roceso de trunslclon tunto en lP de lu v u lu v6 como en LNS en el que se retende flexlblllzur el conjunto de termlnuclones y se estn estudlundo oslbles conslderuclones uru lnclulr nuevos domlnlos de nlvel suerlor. M23,%&3 1% 2%&3*",+-' 1% "' '3;/2% 1% 13;+'+3 vumos u ver el ejemlo con www.ll.uum.es Un resolutor de nombres reullzu su funclon medlunte consultus u dlferentes servldores. Slemre emlezu or el nlvel suerlor (el que est ms u lu derechu en lu URL). . Ll )$(,"7&,) +$" !"#$%&$ le envlu unu etlclon u un servldor de nombres de lu zonu rulz (800: V01&) reguntundo or ese subdomlnlo de nlvel suerlor (es). Lu dlrecclon lP de ul menos ulgunos servldores de lu zonu rulz est dlsonlble medlunte unos urchlvos que uctuullzu erlodlcumente unu uutorldud. Reulmente el ordenudor de nuestru cusu necesltu lus dlrecclones lP de servldores LNS de un lSP (u otros orgunlsmos) como veremos ms ubujo. Ll servldor rulz le contestu con lu dlrecclon lP de qulen gestlonu el domlnlo de nlvel suerlor .es (o con lu lnformuclon ms comletu que tengu que generulmente es u qulen reguntur) z. Ll cllente envlu otru consultu u uno de los servldores de nlvel suerlor que gestlonun el subdomlnlo .es reguntundo or lu dlrecclon lP del servldor que gestlonu .uum.es . Ll cllente redlrlge lu consultu u dlcho servldor reguntudo or .ll.uum.es y contestu con su lP . Por ultlmo, se reullzu unu consultu de www u ll.uum.es que yu es un servlclo determlnudo. . Con lu lP de estu mqulnu lu ullcuclon que sollclto lu consultu (or ejemlo un nuvegudor web) uede conecturse u su destlno. Lste roceso se conoce como LNS estndur y sutururlu lnternet y los servldores de nombres or lo que en lu rctlcu se utlllzu comblnudo con un roceso de ulmucenudo en !:!BJ de dlrecclones de lnternet or todos los elementos lmllcudos (desde el resolutor de nombres de nuestro ordenudor) y lo que se denomlnu ?OX )$!7)(#*,. Ll ulmucenumlento en cuche se roduce cudu vez que se reullzu unu consultu. Los dlsosltlvos or los que usu lu lnformuclon ulmucenun todu lu que vun reclblendo (no solo lu reluclonudu dlrectumente con lu URL o lP consultudu). Ll LNS recurslvo bslcumente ermlte que uno de estos elementos resuelvu lus lPs de domlnlos de otru gente. Sl or ejemlo ests en el ordenudor de tu cusu y quleres buscur ulgo en google. 1ecleus www.google.es y tu nuvegudor rlmero lntentu ver sl el mlsmo sube lu lP de Coogle Lsunu. Sl no lu sube se lu reguntu ul slstemu oerutlvo que sl tumoco lo sube lu reguntur u los servldores de tu lSP (lnternet Servlces Provlder, or ejemlo 3F6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 1elefonlcu o 'uzztel) que sl no lo suben yu recorrern el cumlno contudo unterlormente. Lu grun dlferenclu es que en este modelo sl el servldor u qulen reguntus no sube lu resuestu se encurgu el de buscurlu (y ulmucenurlu en cuche or sl le hucen lu mlsmu consultu) huclendo de cllente que reguntu u otro servldor. Lste roceso se relte hustu que se obtlene unu resuestu concretu, generulmente lu lP buscudu ero tumblen uede ser que lu URL consultudu no exlste. Lste roceso no funclonurlu blen sln un tlemo de vldu (11L) de lus dlrecclones ulmucenudus en cuche trus el que se murcurn como no vlldus y se volvern u consultur con lu rlmeru etlclon que llegue. Puru todo este roceso se creun zonus dlrectus que contlenen reglstros SCA y NS y ueden contener cuulquler otro menos P1R. vemos los reglstros un oco ms ubujo. Y$*$)($ [,,N71 1umblen exlste el roceso lnverso (8&>&8'& LNS) or el que se ueden obtener los nombres de domlnlo usocludos u unu dlrecclon lP determlnudu. Lstus consultus slguen el mlsmo roceso, ero usun un domlnlo eseclflco que se llumu *1g/--8=/8(/ (*(K=/8(/ uru lPv6). Lus dlrecclones lP se reresentun lnvertldus como un nombre de domlnlo. Por ejemlo lu dlrecclon z..6,.8 se reresenturlu como 8.6,..z.lnuddr.uru Prlmero se consulturlu u qulen est usocludu z y usl suceslvumente. Lu zonu que se debe creur en este cuso se llumu zonu lnversu y suele contener reglstros SCA, NS, P1R y CNAML. Ll comundo nslooku slrve uru hucer consultus LNS. lunclonu en vlndows, MAC o Llnux. Usundo lu rolu uyudu del comundo descubre como se reullzu: unu consultu dlrectu, unu lnversu, unu consultu u un servldor LNS concreto (no ul or defecto) z8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Purmetros de conflguruclon y reglstros del servldor de nombres ufectudos en el desllegue Como nos hu hecho fultu en vurlus ocuslones u lo lurgo del curso, lu lnstuluclon y conflguruclon de un servldor web se lncluyo en los uendlces. Sln emburgo fultubu lu urte teorlcu que nos ermltlr entender que hucemos y or que usl como mejorur lu conflguruclon sl fueru necesurlo. Ln el uurtudo unterlor yu hemos vlsto uru que se utlllzun lus zonus dlrectu e lnversu y or que son necesurlus. Adems, odemos comrender uru que se utlllzun los <08D/8-&8' como medlo uru resolver lus consultus que no conocemos, slendo estos <08D/8-&8' generulmente servldores de nombres (LNS) de un lSP u otrus orgunlzuclones. Por ejemlo Coogle tlene servldores de nombres con lus dlrecclones 8.8.8.8 y 8.8.. Sln emburgo huy unu urte que no hu quedudo nudu cluru y son los reglstros de los servldores LNS. Un [&'0,8.& [&.08- (RR) es el elemento ms bslco de LNS. Los reglstros deflnen lus curucterlstlcus de unu zonu o domlnlo y se usun en lus consultus de nombres. Cudu reglstro tlene un tlemo de vldu (11L P*@& P0 \*>&) que lndlcu cundo dejur de ser vlldo. Ln deflnltlvu los reglstros se utlllzun uru usoclur unu URL u unu lP. Los reglstros tlenen un formuto estndur: ]D1&8 PP\ 9)/'' PH(& [!"P" donde ! QA%$): es el nombre de lu mqulnu o del domlnlo LNS ul que ertenece este recurso. ! II[ (P*@& P0 \*>&): Ll tlemo en segundos que debe muntenerse este reglstro en cuche. Sl no uurece se usu el 11L mlnlmo del reglstro SCA. ! >":((: lndlcu que fumlllu de rotocolos se usu. Ln lnternet es cusl excluslvumente lN. ! IK1$: Ll tlo del RR. ! Y?CIC: Los dutos del recurso que lndlcu el reglstro. Por ejemlo unu dlrecclon lP. Euy muchos tlos dlferentes de reglstros ero los ms lmortuntes son: ! XQC: Cuulquler zonu que se cree en un servldor LNS debe contener un reglstro SCA (7:/8: 0< ",:N08*:H) ul lnlclo de lu deflnlclon. Lste tlo de reglstro contlene los urmetros: o Cwner , 11L , Cluss y 1ye como vlmos urrlbu. o Authorltutlve server (Servldor Autorlzudo): Ll servldor LNS rlmurlo de lu zonu. o Resonslble erson (ersonu resonsuble): correo electronlco de lu ersonu resonsuble de lu zonu. Usu un unto en lugur de urrobu. o Serlul number (numero de serle): muestru cuntus veces hu sldo uctuullzudu lu zonu. 3FK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu o Refresh (refresco): lndlcu como de frecuentemente tlenen los servldores LNS secundurlos de lu zonu que consultur sl estu hu cumbludo. o Retry (relntento): cunto eserur un servldor secundurlo lu resuestu untes de volver u consultur oslbles cumblos en lu zonu ul servldor rlmurlo. o Lxlre (exlruclon): cunto tlemo desde lu ultlmu uctuullzuclon slgue slendo vlldu lu lnformuclon de un servldor secundurlo. o Mlnlmum 11L: Ll tlemo de vldu que se ullcu u todos los reglstros de lu zonu sl no tlenen uno eseclflco. Yu hemos vlsto untes que cudu reglstro uede llevur uno rolo ero que es otutlvo. Ln los uendlces se encuentrun ejemlos de conflguruclon y uqul odemos ver otro prueba.ejemplo.com. IN SOA ( ns1.prueba.ejemplo.com. ; servidor autorizado para la zona sergio.cuesta.prueba.ejemplo.com. ; e-mail del administrador de zona 5099 ; serial number 3600 ; refresh (1 hora) 600 ; retry (10 mins) z8, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 86400 ; expire (1 da) 60 ) ; minimum TTL (1 min) ! OX: Los reglstros NS lndlcun los servldores de nombres uutorlzudos uru unu zonu. Pueden lndlcur servldores tunto rlmurlos como secundurlos y unu zonu tlene que tener ul menos un reglstro NS con el servldor rlmurlo. Ln cuso de huber zonus delegudus lndlcun los servldores de dlchus zonus tumblen. Asl lu slgulente llneu tendrlu que uurecer en los servldores de nombres de ejemlo.com y ruebu.ejemlo.com prueba.ejemplo.com. IN NS ns1.prueba.ejemplo.com. ! C: Los reglstros de dlrecclon ("--8&'') usoclun un nombre de domlnlo comleto (G,))H A,/)*<*&- !0@/*1 e/@& 0 GA!e) con unu dlrecclon lP. ns1 IN A 123.45.67.89 ! -IY: Los reglstros untero (Z0*1P&[) hucen lo contrurlo u los reglstros A. Asoclun unu dlrecclon lP con el lQLN. 89.67.45.123.in-addr.arpa. IN PTR ns1.prueba.ejemplo.com. o 89 IN PTR ns1.prueba.ejemplo.com. ! >OCZ^: Los reglstros de nombres cunonlcos creun un ullus. Suelen utlllzurse uru ocultur lu estructuru de nuestro sltlo. Por ejemlo sl nosotros tenemos un servldor l1P que se llumu ft y luego lo cumbluremos u otro no queremos que los usuurlos se enteren. 1umblen slrve uru que vurlos lQLN se usoclen u lu mlsmu mqulnu: vurlos host vlrtuules o vurlos servlclos como ft y www. 3FF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ftp.prueba.ejemplo.com. IN CNAME ftp1.prueba.ejemplo.com. ! Zl: Lste reglstro es eseclflco uru servldores de lntercumblo de correo (W/*) U`.N/1+&). Un servldor de lntercumblo de correo se encurgu de rocesur y redlrlglr los correos de un domlnlo. Procesur el correo uede slgnlflcur entregurlo u lu dlrecclon udecuudu dentro de nuestro domlnlo o usurlo u un tlo dlferente de trusorte de correo. Redlrlglr el correo slgnlflcu envlrselo ul servldor de correo de destlno, dlrectumente o u truves de otros que se encuentren en el cumlno medlunte 7*@()& W/*) P8/1'<&8 Z80:0.0) (SM1P). Puedes tener vurlos servldores de correo en el mlsmo domlnlo or lo que es oslble tener muchos reglstros M. *.prueba.ejemplo.com. IN MX 0 mailserver1.prueba.ejemplo.com. *.prueba.ejemplo.com. IN MX 10 mailserver2.prueba.ejemplo.com. *.prueba.ejemplo.com. IN MX 10 mailserver3.prueba.ejemplo.com. Ll numero que uurece desues de M es lu rlorldud. Ln este cuso tenemos un servldor rlnclul con lu mxlmu rlorldud y dos delegudos con lguul rlorldud entre ellos. Sl un correo llegu y el rlmero no est uctlvo se le usurlu ul segundo o ul tercero lndlstlntumente. Sl tenemos un grun trflco de correo se ueden estublecer todos con mxlmu rlorldud uru evltur suturuclones. Ll comundo dlg nos muestru lnformuclon de este tlo de recursos en unu formu muy slmllur u lu que usumos uru conflgurur el servldor LNS. lnvestlgu el comundo y comentu sus oclones ms utlles. Lesues contestu u lus reguntus de ms ubujo. Que usu sl escrlbes dlg sln ms? Como uedes lndlcurle u dlg el servldor LNS que debe usur? z8 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Servlclo de dlrectorlos: curucterlstlcus y funclonulldud Ll termlno "Servlclos de Llrectorlo' uede ser umblguo y llevur u confuslon. Unu estructuru de curetus o volumenes o dlferentes buses de dutos odrlun conslderurse dentro de lu cutegorlu, sln emburgo un "Servlclo de Llrectorlo' en lnformtlcu se conslderu que es ulgo slmllur u unu gulu telefonlcu o unu llstu de contuctos donde los contuctos no tlenen or que ser ersonus. Ms concretumente se reflere u slstemus busudos en .cc o en ulgunu vurlunte como LLAP. Los servlclos de dlrectorlo son slstemus que nos fucllltun el ucceso u recursos de nuestru red de muneru unlversul. Son buses de dutos de objetos que reresentun recursos tules como usuurlos, gruos, curetus o volumenes, servldores, lmresorus o ullcuclones. 8slcumente slrven uru usoclur el nombre de un recurso u su dlrecclon de red, or lo que en este usecto se urecen mucho u LNS. Un servlclo de dlrectorlo deflne lu estructuru de los nombres o esuclo de nombres (1/@&'(/.&) uru lu red: se estublece un conjunto de normus que eseclflcun como se comondrn los nombres y usegurun que no hubr dullcudos nl reetldos. Lstos nombres suelen conocerse como !*':*1+,*'N&- 1/@& (LN) que en unu truducclon llterul serlu nombre dlstlnguldo. Sl se cumblu lu dlrecclon de un recurso esto solo lmllcu cumblur lu usocluclon en el objeto corresondlente y todo segulr funclonundo lguul. Sln emburgo los servlclos de dlrectorlo no solo lncororun esu funclonulldud. Como cudu recurso est reresentudo or un objeto, dlchos objetos ueden tener utrlbutos. Por ejemlo en el cuso de usuurlos se ueden lnclulr muchos otros dutos como el nombre comleto de lu ersonu, su curgo en lu orgunlzuclon, un telefono de contucto, etc. Como es nuturul se ueden estublecer ermlsos sobre estos objetos uru usegurur que no todos los recursos o su lnformuclon esturn dlsonlbles uru todo el mundo. Ln deflnltlvu un servldo de dlrectorlo nos ermlte unlflcur todos los recursos de lu red sln lmortur de que tlo son o los rotocolos o toologlu eseclflcu de lu red donde se encuentrun. 8ustu con uutentlcurnos en lu red uru oder ucceder u los recursos en los que tengumos ermlsos. Como udems se ueden orgunlzur de muneru dlstrlbuldu y rellcudu uede huber vurlos servldores roorclonundo los mlsmos esuclos de nombres y servlr como sustltutos en cuso de suturuclon o fullo. Ln rlncllo uede urecer que un slstemu de dlrectorlo no es ms que unu buse de dutos reluclonul ero en un servlclo de dlrectorlo se conslderu que lu lnformuclon vu u leerse muchlslmus ms veces que escrlblrse yu que lus uctuullzuclones o modlflcuclones sern oco frecuentes. Lsto huce que determlnudos concetos como lus trunsucclones seun oco lmortuntes y or lo tunto no se suelen lnclulr en el softwure de servlclos de dlrectorlo. Por 3XM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu lo tunto un servlclo de dlrectorlo es unu buse de dutos ero no en el sentldo ul que estumos ucostumbrudos de 8dL reluclonul y est totulmente otlmlzudu uru lus oeruclones de lecturu. Lu eseclflcuclon .cc deflne lus llneus muestrus de los servlclos de dlrectorlo, sln emburgo es tun comleju que nlngun softwure uctuul cumle con todus sus condlclones. .cc est ensundo uru funclonur con el modelo de llu de rotocolos de red CSl de lSC, y concreto los usectos que uqul nos lnteresun en un rotocolo LAP (!*8&.:08H "..&'' Z80:0.0)). Sln emburgo, uunque son relutlvumente slmllures yu subemos que en lu uctuulldud el conjunto de rotocolos redomlnunte en redes es 1CPjlP y usocludo u el se estubleclo un rotocolo LLAP (\*+N:D&*+N: !*8&.:08H "..&'' Z80:0.0)) que como su nombre lndlcu es ms llgero y senclllo. Cuundo vlmos certlflcudos hublumos de .c que de hecho es urte de lu fumlllu de eseclflcuclones de .cc z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj LLAP Muchu gente conslderu que .cc es tun furrugoso que nuncu llegur u usurse comletumente or lo que LLAP se creo con lu ldeu de que fueru funclonul. LLAP est bustunte extendldo y se utlllzu en muchos cusos usl que ser el que veumos. \*+N:D&*+N: !*8&.:08H "..&'' Z80:0.0) lmlementu un servlclo de nombres ulmucenundo los objetos segun unu estructuru jerrqulcu de rbol. Lu estructuru que utlllzu es slmllur u lus de LNS o lus curetus y volumenes en slstemus UNljLlnux. Lstu estructuru de rbol se denomlnu !/:/ L1<08@/:*01 P8&& (Ll1). Los objetos que ulmucenun los dutos en LLAP estn comuestos de un nombre y otros utrlbutos que contengun lnformuclon usocludu ul objeto. Por ejemlo unu ersonu con su nombre, telefono, emull, etc. Lstos objetos se denomlnun entrudus (U1:8H). Lstus entrudus tlenen un tlo o cluse (9)/'') usocludo ul lguul que usu con los objetos en Progrumuclon Crlentudu u Cbjetos. Los utrlbutos de unu cluse ueden ser obllgutorlos u otutlvos. Ls un rotocolo de lu cuu de ullcuclon de 1CPjlP ul lguul que E11P, l1P, SM1P o LNS or ejemlo. Ln lu rulz de estu estructuru de dlrectorlos se encuentru el LN (!*':*1+,*'N&- 1/@&) buse. Cenerulmente reresentu lu orgunlzuclon cuyos recursos se vun u gestlonur medlunte LLAP. Por ejemlo el nombre de unu emresu u orgunlsmo. Por ejemlo en unu emresu que se llumuru "Ljemlo S.A.' este odrlu ser el LN buse o tumblen odrlu usurse en nombre de domlnlo de lu emresu: "ejemlo.com'. 1en en cuentu que uede ser un deurtumento de unu emresu, unu fucultud de unu unlversldud, etc., no es necesurlo que seu el orgunlsmo ul comleto. Lebujo del LN buse uurecern otros elementos de ulgunu muneru orgunlzudu. Cenerulmente se utlllzun ugruuclones loglcus. Ln el orlgen se uslgnubun estus ugruuclones u dlferentes deurtumentos de unu emresu (ventus, murketlng, etc.) or lo que reclbleron el nombre de Unldudes Crgunlzutlvus (]8+/1*V/:*01/) S1*:', CU). Ln lu uctuulldud, estus CU suelen corresonderse con tlos de recurso: usuurlos, gruos, servldores, lmresorus, volumenes de red, etc. Como es un LN? Cudu LN constu de dos urtes, su rolo ldentlflcudor y su ublcuclon en el rbol. Su ldentlflcudor se llumu [&)/:*>& !*':*1+,*'N&- e/@& (RLN) y es el nombre en el formuto que querumos. Por ejemlo "lmresoru u Color'. Lu segundu urte lndlcu donde se encuentru en un formuto slmllur ul que se utlllzu en LNS, sl mls lmresorus estn en unu cutegorlu "lmresorus' el nombre comleto ser: lmresoru u color - lmresorus - ejemlo.com 3X3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Como se uede ver el LN se construye con el RLN del elemento seguldo del LN del udre que u su vez ser su RLN seguldo del LN del udre y usl suceslvumente. Lsto slemre es ms comlejo con ersonus que con objetos lnunlmudos. Por ejemlo uru unudlr u Murlu Rumlrez odrlumos durle un RLN "Murlu Rumlrez' o su nombre de usuurlo "mrumlrez'. Cul es mejor? Leende de lu sltuuclon. Lu rolu glnu de lu vlkledlu sobre LLAP roorclonu un oco ms de lnformuclon sobre lus oslbles oeruclones u reullzur en LLAP que nos ueden uyudur u comrender mejor el funclonumlento bslco. Consultulus y comentu en cluse que hucen. Un vlstuzo ul softwure de servldor que lmlementu LLAP nos llevu u ver que or ejemlo ".:*>& !*8&.:08H de los servldores vlndows los utlllzun. Como sucede con otros rotocolos que hemos vlsto en LLAP huy vurlus verslones. Lus redomlnuntes en lu uctuulldud son lu z y . Lu verslon es comutlble con cllentes que soorten lu verslon z y es un royecto de mejoru lncrementul de lu verslon vz ul lguul que est sucedlendo con el desurrollo modulur de E1ML o CSS. LLAP es cusl como lu lnterfuz de unu cluse en 'uvu, deflne como se reresentun los dutos y que oeruclones con ellos se odrn reullzur, ero no hublu de lu muneru en lu que se ulmucenurn los dutos o de cuulquler otro detulle lnterno de funclonumlento del servldor. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj lnstuluclon de CenLLAP Ln lu uctuulldud huy vurlos servldores grutultos de LLAP. Ll que ms untlguo y extendldo es CenLLAP. Ll servldor coge su conflguruclon lnlclul de lu que tengumos en jetc.jhosts usl que hubr que edlturlo ero untes cumbluremos el nombre del host. gedit /etc/hostname Y le doy el nombre "servldor' gedit /etc/hosts Y dejur 127.0.0.1 localhost 127.0.1.1 servidor.ejemplo.com servidor Lo slgulente ser lnstulur el servldor sudo apt-get update sudo apt-get install slapd ldap-utils Lurunte lu lnstuluclon se nos lde unu contrusenu de udmlnlstrudor, como slemre yo ondre "serglo'. Ll uquete ')/(- es el servldor mlentrus que )-/(g,:*)' es un conjunto de ullcuclones de cllente Un comundo con el que odemos echur un vlstuzo generul ul servldor es (":1!:& 3X6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 92,?+73& /L&+,3& 1% ,3'E+I"2(,+-'Z >'5%2)2%5(,+-' 4 "&3 Podemos ver el urchlvo bslco de lu conflguruclon del servldor sudo gedit /etc/ldap/ldap.conf Lo que muestru # # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE dc=example,dc=com #URI ldap://ldap.example.com ldap://ldap-master.example.com:666 #SIZELIMIT 12 z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj #TIMELIMIT 15 #DEREF never # TLS certificates (needed for GnuTLS) TLS_CACERT /etc/ssl/certs/ca-certificates.crt Sl te dus cuentu lu unlcu llneu no comentudu es lu ultlmu que lndlcu el certlflcudo que usu 1LS en LLAP. Con los conoclmlentos udqulrldos hustu lu fechu deberlu ser trunsurente como creur otro certlflcudo y usurlo con nuestro servldor ero no uhonduremos en el temu. Lu buse de dutos de LLAP est conflgurudu como un conjunto de urchlvos LLll (\!"Z !/:/ L1:&8.N/1+& G08@/:) que se encuentrun u urtlr de jetc.jldujslud.dj Los urchlvos LLll deben cumllr unus normus muy clurus: ! Lus llneus de comenturlos emlezun or # y se lgnorun ul rocesur el urchlvo ! Lus llneus que emlezun or un unlco esuclo en blunco se conslderun unu contlnuuclon de lu unterlor lncluso sl estu ultlmu es un comenturlo ! Cudu entrudu se debe seurur de lu slgulente or unu llneu en blunco Podemos consultur estu estructuru medlunte el rotocolo LLAP con sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn Ll LN del udmlnlstrudor uru el que lntrodujlmos es cnudmln,dcejemlo,dccom. 1umblen odemos consultur el rbol de nuestro sltlo ldapsearch -x -LLL -H ldap:/// -b dc=ejemplo,dc=com dn 3XK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lo que muestru dn: dc=ejemplo,dc=com dn: cn=admin,dc=ejemplo,dc=com Londe lu rlmeru llneu es el orlgen del Ll1 y lu segundu el LN del udmlnlstrudor como vlmos un oco ms urrlbu. Lu oclon -x slrve uru usur uutentlcuclon slmle, LLL lndlcu que no nos muestre detulles udlclonules de LLll, E es el host y -b slrve uru lndlcur u urtlr de que nodo tlene que buscur. Asl or ejemlo ldapsearch -x -LLL -H ldap://servidor.ejemplo.com -b cn=admin,dc=ejemplo,dc=com dn Nos mostrurlu solo el udmlnlstrudor orque no tlene hljos. Como odemos ver estu formu de conflgurur CenLLAP usu un rbol LLAP (Ll1) y se muneju lguul que el resto usl que lus oeruclones que veumos uru modlflcur el contenldo de LLAP son comutlbles con lo que urendumos uqul. Adems esto ermlte que se uedu modlflcur lu conflguruclon del servldor sln lu necesldud de relnlclur en cusl nlngun cuso. Como velumos un oco ms urrlbu, lu rulz del rbol de conflguruclon se denomlnu .1k.01<*+ que contlene los utrlbutos de lu conflguruclon globul, todo lo dems se encuentru en nodos hljo que ueden contener lnformuclon de: ! Modulos curgudos dlnmlcumente ! Leflnlclones de esquemus ! Conflguruclon del buckend ! Conflguruclon eseclflcu de lu buse de dutos Llegudos u este unto es lmortunte uclurur que lnterretu CenLLAP como buckend y que como frontend: ! lrontend: Lu urte que se encurgu del ucceso u red y de rocesur lus ordenes reluclonudus con el rotocolo. z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj ! 8uckend: Lu urte que se encurgu del ulmucenumlento de los dutos. Sln emburgo esto uede llevur u confuslon yu que exlste un elemento que se denomlnu buse de dutos "frontend' que slrve uru ullcur conflguruclones de formu globul u todo el resto de lus buses de dutos. Ll usecto generul del LLll de conflguruclon serlu como slgue (el texto entre los slmbolos <> se deberlu sustltulr or conflguruclon reul): # Configuracin global dn: cn=config objectClass: olcGlobal cn: config <atributos de configuracin global> # sDefiniciones de esquemas dn: cn=schema,cn=config objectClass: olcSchemaConfig cn: schema <system schema> 3XF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu dn: cn=Xcore,cn=schema,cn=config objectClass: olcSchemaConfig cn: Xcore <core schema> # Ms esquemas definidos por el usuario ... # iniciones de backend dn: olcBackend=<typeA>,cn=config objectClass: olcBackendConfig olcBackend: <typeA> <configuracin especfica de backend> # Definiciones de la base de datos z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj dn: olcDatabase=X<typeA>,cn=config objectClass: olcDatabaseConfig olcDatabase: X<typeA> <onfiguracin especifica de de la base de datos> # Ms definiciones y configuraciones ... Puedes ver que ulgunos utrlbutos llevun un numero (donde serlu un numero entero) untes del vulor. Lsto es debldo u que en un LLAP no se eseclflcu nlngun orden usl que se hu tenldo que lntroduclr unu muneru de eseclflcur un orden determlnudo cuundo es necesurlo que tul conflguruclon se ullque slemre untes que tul otru. Eustu lu verslon z.z (uctuulmente se usu lu z.) CenLLAP usubu un urchlvo de conflguruclon ')/(-=.01< que se hu sustltuldo or este otro slstemu en el que lus dlrectlvus de conflguruclon con utrlbutos de entrudus en el Ll1 de conflguruclon. Puru fucllltur lu trunslclon todus lus dlrectlvus que se utlllzubun en el urchlvo untlguo uhoru llevun el refljo "olc' en el nombre del utrlbuto. Puru unudlr, modlflcur o ellmlnur clusulus de conflguruclon se utlllzun lus mlsmus oeruclones que veremos uru usur el rbol eseclflco que hemos creudo. Son utrlbutos y se modlflcun lguul. Ln el uurtudo de control de ucceso veremos ejemlos con dlrectlvus de conflguruclon reluclonudus con los ermlsos. Lus clusulus de conflguruclon se ueden ver en lu documentuclon de CenLLAP ero u ml entender escuun ul contenldo del curso. Ll servldor tumblen contlene ulgunos esquemus relnstuludos # ls /etc/ldap/schema/ collective.ldif cosine.schema java.ldif openldap.ldif 4MM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu collective.schema duaconf.ldif java.schema openldap.schema corba.ldif duaconf.schema ldapns.schema pmi.ldif corba.schema dyngroup.ldif misc.ldif pmi.schema core.ldif dyngroup.schema misc.schema ppolicy.ldif core.schema inetorgperson.ldif nis.ldif ppolicy.schema cosine.ldif inetorgperson.schema nis.schema README Pueden consulturse estos esquemus ubrlendo los urchlvos gedit /etc/ldap/schema/inetorgperson.ldif Pero es ms fcll yendo u lu documentuclon de CenLLAP. Aqul vemos el mlsmo que con el comundo unterlor y ser uno de los que usuremos en los ejemlos que vuyumos huclendo. c -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Creundo contenldo en LLAP Puru oder uutentlcur usuurlos usundo LLAP rlmero tendremos que creurlos. vumos u creur unu estructuru como se lndlcu: ! Un nodo usuurlos ! Un nodo gruos ! Un usuurlo ! Un gruo Puru ello creumos un urchlvo creu_contenldo.ldlf gedit crea_contenido.ldif Con el contenldo dn: ou=Usuarios,dc=ejemplo,dc=com objectClass: organizationalUnit ou: Usuarios
dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: sergio sn: Cuesta givenName: Sergio cn: Sergio Cuesta displayName: Sergio Cuesta c -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj uidNumber: 10000 gidNumber: 5000 userPassword: sergio gecos: Sergio Cuesta loginShell: /bin/bash homeDirectory: /home/scuesta mail: [email protected] telephoneNumber: 55555555 st: Madrid Ahoru ejecutumos lu orden uru unudlr el contenldo creudo en el urchlvo lo que nos lde lu contrusenu y nos lnformu de que se hu creudo # ldapadd -x -D cn=admin,dc=ejemplo,dc=com -W -f crea_contenido.ldif Enter LDAP Password: adding new entry "ou=Usuarios,dc=ejemplo,dc=com" adding new entry "ou=Grupos,dc=ejemplo,dc=com" 4M6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu adding new entry "cn=programadores,ou=Grupos,dc=ejemplo,dc=com" adding new entry "uid=sergio,ou=Usuarios,dc=ejemplo,dc=com" Ahoru que yu tenemos contenldo odemos buscur dutos dentro de LLAP # ldapsearch -x -LLL -b dc=ejemplo,dc=com 'uid=sergio' dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: sergio sn: Cuesta givenName: Sergio cn: Sergio Cuesta displayName: Sergio Cuesta c -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj uidNumber: 10000 gidNumber: 5000 gecos: Sergio Cuesta loginShell: /bin/bash homeDirectory: /home/scuesta mail: [email protected] telephoneNumber: 55555555 st: Madrid 1umblen odemos consultur utrlbutos determlnudos # ldapsearch -x -LLL -b dc=ejemplo,dc=com 'uid=sergio' uid displayName mail dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com uid: sergio displayName: Sergio Cuesta mail: [email protected] C buscur el utrlbuto "uld' de todus lus entrudus 4MK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu # ldapsearch -x -LLL -b dc=ejemplo,dc=com uid dn: dc=ejemplo,dc=com dn: cn=admin,dc=ejemplo,dc=com dn: ou=Usuarios,dc=ejemplo,dc=com dn: ou=Grupos,dc=ejemplo,dc=com dn: cn=programadores,ou=Grupos,dc=ejemplo,dc=com dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com uid: sergio lnstulu CenLLAP en tu servldor y unude lnformuclon sobre tl como usuurlo. Pruebu u reullzur consultus de contenldo. Que sucede sl ellmlnus el urmetro -LLL en tus busquedus? Conslderus ms utlles lus busquedus usl o con el urmetro -LLL? Por que? c, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Unu vez huyus termlnudo, creu otro urchlvo uru unudlr un segundo usuurlo y ejecutulo. Pruebu nuevus busquedus. Lxlsten muchlslmus oclones de busquedu y no es el objetlvo de este curso rofundlzur mucho en LLAP, ero uru oder oner un ur de ejemlos ms de busquedus voy u unudlr otro usuurlo gedit crea_maria.ldif Con el contenldo dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: maria sn: Ramrez givenName: Mara cn: Mara Ramrez displayName: Mara Ramrez uidNumber: 10001 4MF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu gidNumber: 5001 userPassword: maria gecos: Maria Ramirez loginShell: /bin/bash homeDirectory: /home/mramirez mail: [email protected] telephoneNumber: 66666666 st: Madrid Lo unudlmos ldapadd -x -D cn=admin,dc=ejemplo,dc=com - -f crea_maria.ldif Y buscumos los usuurlos del estudo Mudrld # ldapsearch -x -LLL -b dc=ejemplo,dc=com "st=Madrid" displayName dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com displayName: Sergio Cuesta c -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com displayName:: TFyw61hIFJhbcOtcmV6 Sl te dus cuentu, no le hun gustudo lus tlldes en el nombre de Murlu. Luego mostruremos como modlflcur utrlbutos. Podemos buscur todos los nodos dentro de Usuurlos # ldapsearch -x -LLL -b ou=Usuarios,dc=ejemplo,dc=com uid dn: ou=Usuarios,dc=ejemplo,dc=com dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com uid: sergio dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com uid: maria C buscur los nodos con estudo Mudrld y uld murlu # ldapsearch -x -LLL -b dc=ejemplo,dc=com "(&(st=Madrid)(uid=maria))" dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com 4EM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: maria sn:: UmFtw61yZXo= givenName:: TFyw61h cn:: U2VyZ2lvIFJhbcOtcmV6 displayName:: TFyw61hIFJhbcOtcmV6 uidNumber: 10001 gidNumber: 5001 gecos: Maria Ramirez loginShell: /bin/bash homeDirectory: /home/mramirez mail: [email protected] telephoneNumber: 66666666 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj st: Madrid Por ultlmo buscuremos los que tengun uld murlu o serglo # ldapsearch -x -LLL -b dc=ejemplo,dc=com "(|(uid=sergio)(uid=maria))" gecos dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com gecos: Sergio Cuesta dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com gecos: Maria Ramirez K31+E+,('13 %* ,3'5%'+13 vumos u ver como unudlr, borrur o modlflcur el contenldo de utrlbutos de entldudes LLAP. Lmezuremos creundo un urchlvo con los cumblos. gedit modifica_contenido.ldif Con lus oeruclones de modlflcuclon dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com add: mobile mobile: 77777777 4E3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com delete: telephoneNumber dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com changetype: modify replace: sn sn: Ramirez dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com changetype: modify replace: givenName givenName: Maria dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj changetype: modify replace: cn cn: Maria Ramirez dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com changetype: modify replace: displayName displayName: Maria Ramirez Y lo usumos ldapmodify -x -D cn=admin,dc=ejemplo,dc=com - -f modifica_contenido.ldif Podemos ver como se hun ullcudo los cumblos # ldapsearch -x -LLL -b ou=Usuarios,dc=ejemplo,dc=com dn: ou=Usuarios,dc=ejemplo,dc=com objectClass: organizationalUnit ou: Usuarios 4E6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: sergio sn: Cuesta givenName: Sergio cn: Sergio Cuesta displayName: Sergio Cuesta uidNumber: 10000 gidNumber: 5000 gecos: Sergio Cuesta loginShell: /bin/bash homeDirectory: /home/scuesta -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj mail: [email protected] st: Madrid mobile: 77777777 dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: maria uidNumber: 10001 gidNumber: 5001 gecos: Maria Ramirez loginShell: /bin/bash homeDirectory: /home/mramirez mail: [email protected] 4EK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu telephoneNumber: 66666666 st: Madrid sn: Ramirez givenName: Maria cn: Maria Ramirez displayName: Maria Ramirez Ctru oslble modlflcuclon serlu unudlr los usuurlos ul gruo creudo. Creumos otro urchlvo gedit aniade_grupos.ldif Con el contenldo dn: cn=programadores,ou=Grupos,dc=ejemplo,dc=com changetype: modify add: memberuid memberuid: cn=sergio,ou=Usuarios,dc=ejemplo,dc=com dn: cn=programadores,ou=Grupos,dc=ejemplo,dc=com , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj changetype: modify add: memberuid memberuid: cn=maria,ou=Usuarios,dc=ejemplo,dc=com Y lo usumos ldapmodify -x -D cn=admin,dc=ejemplo,dc=com - -f aniade_grupos.ldif Podemos consultur lu entrudu uru ver que todo hu ldo blen # ldapsearch -x -LLL -b cn=programadores,ou=Grupos,dc=ejemplo,dc=com dn: cn=programadores,ou=Grupos,dc=ejemplo,dc=com objectClass: posixGroup cn: programadores gidNumber: 5000 memberUid: cn=sergio,ou=Usuarios,dc=ejemplo,dc=com memberUid: cn=maria,ou=Usuarios,dc=ejemplo,dc=com 4EF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Y322('13 %'5+1(1%& Eemos urendldo u creur y modlflcur entldudes, solo nos fultu ver como ellmlnurlus. Puru ello vumos u creur un urchlvo que nos ellmlne todus lus entldudes que creumos con el urchlvo creu_contenldo.ldlf. 1en en cuentu que los urchlvos slguen exlstlendo or lo que uedes volver u ejecuturlos en cuulquler momento. Le todus formus los usuurlos que hemos creudo son comutlbles con los de Llnux. Sl buscus como creur usuurlos en lnternet vers que huy otrus cluses que se le ueden uslgnur, no es necesurlo que tomen lus que hemos determlnudo nosotros. Creumos un urchlvo borru_contenldo.ldlf con lo slgulente uid=sergio,ou=Usuarios,dc=ejemplo,dc=com uid=maria,ou=Usuarios,dc=ejemplo,dc=com cn=programadores,ou=Grupos,dc=ejemplo,dc=com ou=Usuarios,dc=ejemplo,dc=com ou=Grupos,dc=ejemplo,dc=com Y lo usumos ldapdelete -x -D cn=admin,dc=ejemplo,dc=com - -f borra_contenido.ldif Ahoru tenemos lu buse de dutos LLAP como ul rlncllo. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Cllentes grflcos Lxlste un grun numero de cllentes con lnterfuz grflcu uru LLAP. Los ms conocldos son: ! 'lorer: Ll que vumos u usur. ! Auche Llrectory Studlo: Un lugln uru Lcllse. Muy utlllzudo entre los desurrolludores que usun este entorno. ! hLLAPudmln: Un cllente desurrolludo en PEP con lu ventuju de que se ejecutu en cuulquler nuvegudor web. Puru lnstulur 'lorer lo ms fcll es hucerlo desde llneu de comundos sudo apt-get install jxplorer Y se ejecutu como cuulquler otru ullcuclon. Unu vez ubrlmos lu ullcuclon huy que conecturse: . Pulsumos el boton de conectur z. Lscrlblmos lu dlrecclon del servldor LLAP . Lscrlblmos los "dc' . Lleglr uutentlcuclon de usuurlo . Lscrlblr los dutos del usuurlo que se conectur 6. Ponemos lu contrusenu ,. Pulsumos Cl Unu vez nos hemos conectudo yu vemos el rbol de nuestro servldor. 43M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Medlunte U-*: gl e&D o con el boton derecho e&D odemos creur nuevus entldudes. Cuundo hemos selecclonudo los urmetros y ulsumos Cl se nos muestru u lu derechu lu tublu con los utrlbutos de lu entldud ero no uurecer en el rbol hustu que no ulsemos 7,2@*:. Ayudndote de lnternet urende u creur, modlflcur y borrur entldudes en nuestro rbol y rellcu lu estructuru que hlclmos desde llneu de comundos. z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Autentlcuclon de usuurlos en el servlclo de dlrectorlos Ll ucceso ul servldor LLAP y el Ll1 se controlu medlunte dlrectlvus que se reresentun como utrlbutos en los rolos nodos del rbol. Podemos ver un cuso # sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ > cn=config '(olcDatabase=0config)' olcAccess dn: olcDatabase=0config,cn=config olcAccess: 0to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external ,cn=auth manage by * break 1en en cuentu que estumos hublundo del ucceso ul servldor LLAP no del ucceso medlunte usuurlos creudos en LLAP u servldores web o de ullcuclones, de lo que hubluremos ms turde. Podemos ver que uru el control de ucceso se utlllzu el utrlbuto olcAccess. Ln lu documentuclon de CenLLAP uedes ver lus oclones del utrlbuto (es bustunte comlejo). Lebes lr ul unto 8. yu que lu rlmeru urte hublu de como se conflgurubu con el urchlvo de conflguruclon (metodo untlguo). Nosotros vumos u centrurnos en ulgunos untos cluve. Por defecto los servldores LLAP guruntlzun ermlsos de lecturu u todos los nodos u cuulquler usuurlo. Lsto no es tun ruro como urece: huy que tener en cuentu que se trutu de un servlclo de dlrectorlo cuyu funclon es fucllltur el ucceso u recursos (yu seun ersonus, lmresorus, servldores, etc.). Puru entender mejor que no es ruro odemos ensur en que sucederlu sl uru reullzur oeruclones de lecturu en LNS fueru necesurlo tener un usuurlo y contrusenu uutorlzudos. 433 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Como en estu secclon vumos u urender u modlflcur los ermlsos uru que solo determlnudos usuurlos ueden ucceder u urtes de lu lnformuclon, convlene uclurur uqul que lguul que hemos hecho uru lus oeruclones de modlflcuclon del contenldo se uede utlllzur un usuurlo u lu horu de reullzur busquedus o consultus ldapsearch -x -D cn=admin,dc=ejemplo,dc=com - -LLL -b dc=ejemplo,dc=com G* (52+/"53 3*,9,,%&& Puru usur el utrlbuto olcAccess huy que fljurse en: ! A que (whut): Lntrudus (Lntrles) uru lus que estubleceremos los ermlsos. ! A qulen (who): Usuurlos u los que se les ullcun los ermlsos. ! Permlsos (Access to grunt): que tlo de ucceso se le vu u ermltlr. Puru entender mejor los ejemlos convlene recordur que lu estructuru de nuestro Ll1 es como se ve en lu lmugen o lo que es lo mlsmo dn: dc=ejemplo,dc=com dn: cn=admin,dc=ejemplo,dc=com dn: ou=Usuarios,dc=ejemplo,dc=com dn: ou=Grupos,dc=ejemplo,dc=com z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj dn: cn=programadores,ou=Grupos,dc=ejemplo,dc=com dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com C E7J Aunque exlste unu terceru formu solo vumos u conslderur dos munerus de eseclflcur lus entrudus objetlvo: ! to ! to dn.<scoestyle><LN> Lu rlmeru formu slrve uru selecclonur todus lus entrudus. Lu segundu formu nos ermlte selecclonur ulgunus en urtlculur ero '.0(&g':H)& nos ermlte urovechur lu estructuru urboreu de lu buse de dutos LLAP. Puede ser "buse' que se ullcu solo u lu entrudu que colncldu, "one' que se ullcu u los hljos de lu entrudu que colncldu, "subtree' que se ullcu u todo el rbol cuyu rulz fueru lu entrudu que colncldu o "chlldren' que se ullcurlu ul mlsmo rbol que en el cuso unterlor ero excetuundo lu rulz. Lo vumos u ver con ejemlos: . dn.buseouUsuurlos,dcejemlo,dccom solo se ullcurlu ul nodo "Usuurlos', z. dn.oneouUsuurlos,dcejemlo,dccom' se ullcurlu u "serglo' y "murlu', . dn.subtreeouUsuurlos,dcejemlo,dccom se ullcurlu u "Usuurlos', "serglo' y "murlu' . dn.chlldrenouUsuurlos,dcejemlo,dccom se ullcurlu u "serglo' y "murlu' ero u dlferenclu del ejemlo z sl ulguno tuvleru hljos tumblen se ullcurlu u todos ellos ul lguul que sucederlu en el ejemlo , 436 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 1umblen se ueden usur flltros como los que hemos utlllzudo en busquedus. Asl to fllter(stMudrld) se ullcurlu u "serglo' y "murlu' orque umbos tlenen ese vulor en el utrlbuto st. Por ultlmo convlene destucur que se ueden selecclonur determlnudos utrlbutos to uttrsutrlbuto, utrlbutoz C E7#J% Se ueden eseclflcur vurlos tlos: ! : Cuulquler usuurlo yu seu unonlmo o uutentlcudo ! unonymous : solo usuurlos unonlmos ! users: solo usuurlos uutentlcudos ! self: el usuurlo usocludo con lu entrudu lndlcudu en "u que' ! dn.<scoestyle><LN>: Los usuurlos que cumlun con lo deflnldo como se exllco en el unto unterlor Con los ejemlos comletos del flnul se entender mejor esto. -$)9#(,( Euy vurlos nlveles. Ln lu llstu u contlnuuclon lo que uurece desues del lguul es el equlvulente yu que cudu nlvel lmllcu que se tlenen los ermlsos del unterlor. Letrs de los dos untos vu lu exllcuclon. Se lncluyen todus lus oslbllldudes ero u nosotros solo nos lnteresun "none', "reud', "wrlte' y "munuge' . none c : sln ucceso z. dlsclose d : uru oder obtener lnformuclon sl se roduce un error . uuth dx : necesurlo uru uutentlcurse . comure cdx : necesurlo uru comurur . seurch scdx : necesurlo uru ullcur flltros en lus busquedus 6. reud rscdx : uru oder leer los resultudos de lus busquedus ,. wrlte wrscdx : uru oder modlflcur o cumblur nombres 8. munuge mwrscdx : necesurlo uru udmlnlstrur z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Q)+$% Lus dlrectlvus se ullcun en el orden en el que uurecen. Lste orden se uede forzur medlunte numeros entre lluves . Ls lmortunte tener en cuentu que se slgue unu olltlcu de ullcur el rlmero que colncldu usl que sl or ejemlo ullcumos ulgo u los usuurlos unonlmos y luego ulgo u todos estu ultlmu urte no se ullcur u los unonlmos orque yu hun colncldldo con lu entrudu unterlor. Lsto y muchus ms cosus se ven ms clurus en los ejemlos. Lxlsten muchus ms oclones de control de ucceso como se comentu en lu documentuclon de CenLLAP. 1umblen huy ulgunos ejemlos lnteresuntes en estu otru glnu. Por ultlmo uqul huy unu exllcuclon muy de "undur or cusu' con ejemlos de ullcuclon rctlcu dlrectu. Consultu y dlscute en cluse cudu ejemlo de lu secclon 8.. del rlmer enluce del rrufo unterlor, los ms relevuntes del segundo enluce y todos los del tercero. =3'52(&%](& )(2( *3& "&"(2+3& Ls necesurlo suber como unudlr contrusenus u los usuurlos orque hustu uhoru los hemos usudo como slmles elementos de unu buse de dutos ero evldentemente sl se vun u oder conectur u ullcuclones o ul servldor LLAP neceslturn de unu contrusenu. Lu formu ms senclllu es unudlrles unu contrusenu medlunte unu modlflcuclon del usuurlo. Ln un urchlvo wd.ldlf dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com changetype: modify add: userPassword userPassword: unaPwd 43K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Que usumos ldapmodify -x -D cn=admin,dc=ejemplo,dc=com - -f pwd.ldif Sl buscumos los dutos del usuurlo no nos muestru lu contrusenu # ldapsearch -x -LLL -b ou=Usuarios,dc=ejemplo,dc=com "uid=sergio" dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: sergio sn: Cuesta givenName: Sergio cn: Sergio Cuesta displayName: Sergio Cuesta uidNumber: 10000 gidNumber: 5000 z, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj gecos: Sergio Cuesta loginShell: /bin/bash homeDirectory: /home/scuesta mail: [email protected] telephoneNumber: 55555555 st: Madrid Ahoru odemos modlflcur lu contrusenu desde llneu de comundos # ldappasswd -h servidor.ejemplo.com -D "uid=sergio,ou=Usuarios,dc=ejemplo,dc=com" -W -S "uid=sergio,ou=Usuarios,dc=ejemplo,dc=com" New password: Re-enter new password: Enter LDAP Password: Lebldo u lu conflguruclon que tenemos en el servldor LLAP no es oslble conecturse sln contrusenu or lo que sl qulslerumos que murlu tumblen tuvleru contrusenu tendrlumos que hucer lo mlsmo. Lo mejor serlu creur los usuurlos con unu contrusenu tontu y que fueru slemre lu mlsmu y uutomtlcumente hucer que lu cumblurun. 43F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu 9)*+,('13 *(& 1+2%,5+7(& Eustu uhoru hemos vlsto como funclonu el control de ucceso en generul y hemos hubludo de que uurecen como utrlbutos en el rbol LLAP, ero como y u que elementos se le ullcun? Lso es lo que vumos u ver en este unto. Ll objeto (o entrudu) u lu que se le unuden los utrlbutos olcAccess es ul que reresentu lu conflguruclon de lu buse de dutos. Lstos objetos se guurdun u urtlr del dlrectorlo f&:.=f)-/(f')/(-=-f como yu vlmos. Ms concretumente lus buses de dutos cuelgun del subdlrectorlo .1k.01<*+. Ln el huy vurlos urchlvos que hucen referenclu u 0).!/:/2/'& ero suele ser el slgulente: gedit /etc/ldap/slapd.d/cn=config/olcDatabase=1hdb.ldif Podemos usegururnos ubrlendo el urchlvo ero SlN EACLR NlNCUNA MCLlllCAClCN y buscundo el urmetro 0).7,<<*` uru comrobur que colnclde con el LN de buse de nuestro rbol. # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. # CRC32 532fe58d dn: olcDatabase=1hdb objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: 1hdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=ejemplo,dc=com z -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj ... Unu formu ms seguru y robublemente mejor locullzur el nodo medlunte unu busquedu sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcSuffix Lo que nos vu u mostrur el resultudo yu eserudo dn: cn=config dn: cn=module0,cn=config dn: cn=schema,cn=config dn: cn=0core,cn=schema,cn=config dn: cn=1cosine,cn=schema,cn=config dn: cn=2nis,cn=schema,cn=config 44M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu dn: cn=3inetorgperson,cn=schema,cn=config dn: olcBackend=0hdb,cn=config dn: olcDatabase=-1frontend,cn=config dn: olcDatabase=0config,cn=config dn: olcDatabase={1}hdb,cn=config olcSuffix: dc=ejemplo,dc=com Con este LN yu subemos u que elemento ullcur los cumblos. Lo rlmero que deberlumos hucer es consultur que 0)."..&'' tlene # sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b olcDatabase={1}hdb,cn=config olcAccess dn: olcDatabase=1hdb,cn=config olcAccess: 0to attrs=userPassword,shadowLastChange -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj by self write by anonymous auth by dn="cn=admin,dc=ejemplo,dc=com" write by * none olcAccess: 1to dn.base="" by * read olcAccess: 2to * by self write by dn="cn=admin,dc=ejemplo,dc=com" write by * read Ee modlflcudo un oco lu sulldu uru fucllltur lu lecturu Comentu en cluse que ermlsos huy conflgurudos or defecto Ahoru que yu tenemos todos los fuctores solo huce fultu recordur que se modlflcu como cuulquler otru entrudu del rbol LLAP or lo que lo rlmero serlu creur un urchlvo "ermlsos.ldlf' con lus modlflcuclones. Yo voy u unudlr un nuevo 0)."..&'' ero se ueden modlflcur o ellmlnur como yu vlmos. dn: olcDatabase=1hdb,cn=config 443 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu delete: olcAccess dn: olcDatabase=1hdb,cn=config add: olcAccess olcAccess: 0to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=ejemplo,dc=com" write by * none dn: olcDatabase=1hdb,cn=config add: olcAccess olcAccess: 1to dn.base="" by * read dn: olcDatabase=1hdb,cn=config add: olcAccess olcAccess: 2to dn.children="ou=Usuarios,dc=ejemplo,dc=com" by anonymous auth by self write by * read -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj dn: olcDatabase=1hdb,cn=config add: olcAccess olcAccess: 3to * by self write by dn="cn=admin,dc=ejemplo,dc=com" write by * read Y lo ullcumos, deberlu ermltlr el ucceso unonlmos u "serglo' y "murlu' solo uru uutentlcurse, ero no or ejemlo uru leer los dutos. 1en en cuentu que lu sulldu de lu busquedu un oco ms urrlbu lu formutee uru fucllltur lu lecturu. Ln el urchlvo de modlflcuclon NC lntroduzcus sultos de llneu nl nudu slmllur en medlo de utrlbutos o sus vulores. 1en en cuentu que he tenldo que modlflcur todos los ermlsos uru oder cumblur el orden de lu clusulu que unudo (lu z) orque sl lu hubleru uesto ul flnul se ullcurlu rlmero lu que uhoru est ul flnul y nuncu se ullcurlu lu que he unudldo. # ldapmodify -Y EXTERNAL -H ldapi:/// -f ./permisos.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase=1hdb,cn=config" modifying entry "olcDatabase=1hdb,cn=config" modifying entry "olcDatabase=1hdb,cn=config" 446 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu modifying entry "olcDatabase=1hdb,cn=config" modifying entry "olcDatabase=1hdb,cn=config" Sl reetlmos lu consultu de los ermlsos # sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b olcDatabase={1}hdb,cn=config olcAccess dn: olcDatabase=1hdb,cn=config olcAccess: 0to attrs=userPassword,shadowLastChange by self write by anonymou s auth by dn="cn=admin,dc=ejemplo,dc=com" write by * none olcAccess: 1to dn.base="" by * read olcAccess: 2to dn.children="ou=Usuarios,dc=ejemplo,dc=com" by anonymous auth auth by self write by * read olcAccess: 3to * by self write by dn="cn=admin,dc=ejemplo,dc=com" write by * read Nos quedu comrobur que yu no huy ucceso unonlmo u "serglo' nl "murlu' ero sl u otros nodos # ldapsearch -x -LLL -b dc=ejemplo,dc=comdn: dc=ejemplo,dc=com objectClass: top objectClass: dcObject -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj objectClass: organization o: ejemplo.com dc: ejemplo dn: cn=admin,dc=ejemplo,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator dn: ou=Usuarios,dc=ejemplo,dc=com objectClass: organizationalUnit ou: Usuarios dn: ou=Grupos,dc=ejemplo,dc=com 44K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu objectClass: organizationalUnit ou: Grupos dn: cn=programadores,ou=Grupos,dc=ejemplo,dc=com objectClass: posixGroup cn: programadores gidNumber: 5000 memberUid: cn=sergio,ou=Usuarios,dc=ejemplo,dc=com memberUid: cn=maria,ou=Usuarios,dc=ejemplo,dc=com 1en en cuentu que lus dos ultlmus llneus son utrlbutos de "rogrumudores', unu entrudu uru lu que no hemos modlflcudo el ucceso. Lu ultlmu ruebu es sl se ueden leer estos dutos con un usuurlo. Podrlu hucerlo con "udmln', ero es mejor robur con "serglo' que tlene menos rlvlleglos. Eugo lu consultu desde usuurlos uru que seu un oco ms corto el resultudo. # ldapsearch -x -D uid=sergio,ou=Usuarios,dc=ejemplo,dc=com -W -LLL -b ou=Usuarios,dc=ejemplo,dc=com Enter LDAP Password: dn: ou=Usuarios,dc=ejemplo,dc=com objectClass: organizationalUnit , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj ou: Usuarios dn: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: sergio sn: Cuesta givenName: Sergio cn: Sergio Cuesta displayName: Sergio Cuesta uidNumber: 10000 gidNumber: 5000 gecos: Sergio Cuesta loginShell: /bin/bash 44F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu homeDirectory: /home/scuesta mail: [email protected] telephoneNumber: 55555555 st: Madrid userPassword:: e1NTSEF9TdKdGNS1KM15MzBlbkwxVFFGQi8vYXVLZ3h3V0o= dn: uid=maria,ou=Usuarios,dc=ejemplo,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: maria sn: Ramirez givenName: Maria cn: Maria Ramirez displayName: Maria Ramirez -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj uidNumber: 10001 gidNumber: 5001 gecos: Maria Ramirez loginShell: /bin/bash homeDirectory: /home/mramirez mail: [email protected] telephoneNumber: 66666666 st: Madrid vemos que tlene ucceso no solo u el, slno tumblen u "murlu'. Modlflcu el control de ucceso uru que cudu usuurlo solo uedu leer sus dutos, ero no los de otro. =3'523* 1% (,,%&3 %' 2%1%& 1% 321%'(132%& Ln el cuso que nos ocuu no necesltumos estublecer un comlejo slstemu de uutentlcuclon yu que como he escrlto no vumos u usur LLAP como un slstemu de control de ucceso de usuurlos uru todu unu red slno que lo ullcuremos ul ucceso u ullcuclones. Ln el cuso de que desurrollemos ulgo uru unu emresu que utlllce LLAP uru uutentlcur u sus usuurlos en equlos y servlclos de unu red, lu gestlon de los usuurlos lu llevur un udmlnlstrudor y nosotros solo neceslturemos conectur el servldor LLAP con nuestro servldor web o de ullcuclones. Por todo lo unterlor vumos u reullzur unu conflguruclon slmle que lmldu u cuulquleru consultur nuestro rbol LLAP. Sl or ejemlo hemos conflgurudo nuestro servldor LLAP en lu mlsmu 46M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu mqulnu que el servldor webjde ullcuclones odrlumos conflgurur los nombres del servldor LLAP medlunte el flchero host y usl no hubrlu ucceso u el desde otru mqulnu, lo que no nos huce fultu orque hubrlumos ublcudo el resto en lu mlsmu. Ls oslble utlllzur estos usuurlos de LLAP como usuurlos de lus mqulnus (Llnux en este cuso). Aqul se exllcu como hucerlo, ero en ml olnlon no tlene nudu que ver con el desllegue de ullcuclones or lo que no rofundlzure en ello. Lste es un mblto de udmlnlstrudores de slstemus y no de desurrolludores web. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Adutuclon de lu conflguruclon del servldor de dlrectorlos uru el desllegue de lu ullcuclon. Usuurlos centrullzudos Uno de los rlnclules usos de LLAP en lus emresus u orgunlzuclones es el tener usuurlos centrullzudos y comunes u todos sus controles de ucceso: en equlos, en ullcuclones, en servlclos, en recursos. Lu conflguruclon de LLAP uru estos cusos es bustunte comleju ero en el cuso que nos tocu se reflere u estublecer lu uutentlcuclon en servldores web y de ullcuclones contru un servldor LLAP. Lu conflguruclon de CenLLAP yu lu hemos hecho usl que nos fultu lu lntegruclon con Auche y 1omcut. OH9M 4 9)(,?% Puru reullzur estos ejemlos voy u comenzur con unu lnstuluclon llmlu de Auche en el servldor donde he lnstuludo CenLLAP, como hemos vlsto durunte todo el curso, esto odrlu comblnurse con cuulquler oclon de conflguruclon vlstu hustu el momento. Lo rlmero que tenemos que hucer es hubllltur el modulo mod_uuthnz_ldu. sudo a2enmod authnz_ldap sudo service apache2 restart Ahoru tendremos que edltur lu conflguruclon del sltlo or defecto uru hubllltur lu uutentlcuclon <VirtualHost *:80> ServerAdmin webmaster@localhost 463 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AuthName "Acceso a www.servidor.ejemplo.com" AuthType Basic AuthBasicProvider ldap AuthzLDAPAuthoritative on -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj AuthLDAPUrl "ldap://servidor.ejemplo.com/dc=ejemplo,dc=com?uid?sub?(objectClass=*)" AuthLDAPBindDN "cn=admin,dc=ejemplo,dc=com" AuthLDAPBindPassword sergio Require valid-user </Directory> ... 1rus relnlclur el servldor yu odremos conecturnos con usuurlos del servldor LLAP. 8uscu en lu documentuclon del modulo lus dlrectlvus en negrltu y comentu en cluse uru que se utlllzun. 1e urece buenu oclon utlllzur el usuurlo udmlnlstrudor? 1en en cuentu que no serlu necesurlo un usuurlo con contrusenu sl ermltlerumos lus consultus unonlmus. No es buenu ldeu utlllzur el usuurlo udmlnlstrudor, serlu mucho mejor creur uno con ermlsos de lecturu en todo el rbol ero sln ermlsos de escrlturu yu que lu contrusenu huy que escrlblrlu en el urchlvo. Que usu sl queremos dur ucceso u un gruo de usuurlos ero no u cuulquler usuurlo? Ll gruo que creumos no nos fucllltu estu tureu usl que vumos u creur un gruo de otro tlo. Creo un urchlvo con el nuevo gruo dn: cn=usrApache,ou=Grupos,dc=ejemplo,dc=com objectClass: groupOfUniqueNames objectClass: top 466 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu cn: usrApache uniqueMember: uid=sergio,ou=Usuarios,dc=ejemplo,dc=com uniqueMember: uid=maria,ou=Usuarios,dc=ejemplo,dc=com Y lo roceso ldapadd -x -D cn=admin,dc=ejemplo,dc=com - -f grupo.ldif Ldlto el flchero del sltlo or defecto de uuche <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AuthName "Acceso a www.servidor.ejemplo.com" AuthType Basic AuthBasicProvider ldap AuthzLDAPAuthoritative on AuthLDAPUrl "ldap://servidor.ejemplo.com/dc=ejemplo,dc=com?uid?sub?(objectClass=*)" AuthLDAPBindDN "cn=admin,dc=ejemplo,dc=com" AuthLDAPBindPassword sergio Require ldap-group cn=usrApache,ou=Grupos,dc=ejemplo,dc=com </Directory> ... Lvldentemente estu segundu formu serlu mucho ms rctlcu cuundo tenemos usuurlos uru vurlos flnes. 46K -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Un tercer modo serlu dur ermlso u ulgunos usuurlos determlnudos. Puru ello solo hubrlu que cumblur lu llneu en negrltu or Require ldap-user sergio maria Por ultlmo es oslble edlr que un determlnudo utrlbuto tengu un vulor eseclflcudo. Require ldap-attribute gidNumber=5023 lncluso se ueden comblnur requlsltos Require ldap-group cn=usrApache,ou=Grupos,dc=ejemplo,dc=com Require ldap-user roberto, juan Require ldap-attribute gidNumber=5023 Satisfy any Londe lu ultlmu llneu lndlcu que con cumllr con unu de lus unterlores es suflclente. Eubllltu E11PS en el servldor Auche y creu dos dlrectorlos. Ln CenLLAP conflguru dos gruos con dlferentes usuurlos cudu uno. Conflguru el ucceso u cudu uno de los dlrectorlos uru que solo uedun ucceder los usuurlos de unos de los gruos. Comruebu que hus conflgurudo todo correctumente. OH9M 4 B3;,(5 Ln el cuso de 1omcut tumblen voy u hucer unu lnstuluclon llmlu con lu ullcuclon del formulurlo. Lvldentemente es necesurlo modlflcur el descrltor de desllegue de lu ullcuclon uru que vullde con el gruo o usuurlos eseclflcudos en 1omcut. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Unu vez tenemos el servldor 1omcut funclonundo y hemos deslegudo lu ullcuclon (en ml cuso en lu curetu "form') odemos conflgurur el Reulm. Recuerdu que se uede conflgurur en cuulquler contexto deendlendo de u que nlvel queremos que se utlllce. Ln este cuso voy u usurlo solo uru lu ullcuclon usl que edlto el contexto rolo gedit /var/lib/tomcat7/webapps/form/META-INF/context.xml Y lo dejumos <?xml version="1.0" encoding="UTF-8"?> <Context antiJARLocking="true" path="/form"> <Realm className="org.apache.catalina.realm.JNDIRealm" connectionName="cn=admin,dc=ejemplo,dc=com" connectionPassword="sergio" connectionURL="ldap://servidor.ejemplo.com:389" userPattern="uid=0,ou=Usuarios,dc=ejemplo,dc=com" roleBase="ou=Grupos,dc=ejemplo,dc=com" roleName="cn" roleSearch="(uniqueMember=0)" /> 46F -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu </Context> Lxlsten muchos otros utrlbutos y urmetros de conflguruclon y ul lguul que en el cuso de Auche, serlu mejor huber creudo un usuurlo con ermlsos de lecturu solo. Consultu los utrlbutos conflgurudos en el 'NLl Reulm unterlor y comentu en cluse su uso. Ahoru edltumos el descrltor de desllegue gedit /var/lib/tomcat7/webapps/form/EB-INF/web.xml Y lo dejo como slgue, solo he tocudo lus llneus en negrltu <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>FormServlet</servlet-name> <servlet-class>form.FormServlet</servlet-class> </servlet>
<!-- esto es lo que aadimos para la seguridad FORM --> <!-- Primero una restriccin de seguridad --> <security-constraint> <web-resource-collection> <web-resource-name>El * significa que pedimos autenticacin para toda la aplicacin</web- resource-name> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>PUT</http-method> <http-method>HEAD</http-method> <http-method>POST</http-method> 4RM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> <http-method>DELETE</http-method> </web-resource-collection> <auth-constraint> <role-name>usrApache</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <!-- CUIDADO, los archivos siguientes deben ir en un subdirectorio para que funcione--> -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj <form-login-config> <form-login-page>/protegido/login.jsp</form-login-page> <form-error-page>/protegido/login-failed.html</form-error-page> </form-login-config> </login-config>
<security-role> <description/> <role-name>usrApache</role-name> 4R3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu </security-role> </web-app> Ahoru yu odemos conecturnos con los mlsmos usuurlos del gruo que creumos uru Auche en el cuso unterlor. lnstulu 1omcut con E11PS y dos ullcuclones. Lu ucceso u cudu ullcuclon u uno de los gruos que creuste uru Auche. Pruebu que todo es correcto. Con este ultlmo ejerclclo yu hemos vlsto que es muy utll tener un servldor LLAP uru los usuurlos yu que odrlumos centrullzur los usuurlos tunto uru lu web como uru lus ullcuclones fucllltundo usl lu udmlnlstruclon y el funclonumlento u los usuurlos que solo tlenen que conocer un unlco usuurlo y contrusenu. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 1emu 6: Locumentuclon y slstemus de control de verslones 4R6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Eerrumlentus externus uru lu generuclon de documentuclon Lus herrumlentus de generuclon de documentuclon ermlten creur unu documentuclon uru rogrumudores (APl) o uru usuurlos flnules u urtlr de comenturlos lntroducldos en el codlgo fuente. Un ejemlo que todos conocemos es 'uvudoc de 'uvu con el cuul sl comentumos nuestro codlgo slgulendo unus uutus determlnudus odemos obtener unu documentuclon slmllur u lu de lu APl de 'uvu uru nuestrus rolus cluses. Lxlsten muchlslmus herrumlentus de este tlo or lo que es dlflcll eleglr unu. Por sl fueru oco, odemos ver en lu comurutlvu que nlngunu est dlsonlble uru todos los rlnclules slstemus oerutlvos y todos los rlnclules lenguujes de rogrumuclon. Sl vumos u rogrumur en 'uvu rlnclulmenete y el uso que retendemos dur es rlnclulmente documentur unu APl de nuestrus cluses 'uvudoc es lu oclon obvlu. Puru usos ms eseclflcos deberlumos buscur unu que se ujuste u nuestrus necesldudes. Nosotros vumos u ver Loxygen or ser unu de lus ms extendldus, estur dlsonlble uru todos los rlnclules slstemus oerutlvos y oder usurse con bustuntes lenguujes de rogrumuclon. Locumentur con Loxygen sl se conoce 'uvudoc es bustunte dlrecto. Lus ventujus que tlene Locxygen es que nos ermlte documentur ms lenguujes de rogrumuclon y que udems uede roduclr vurlos formutos de sulldu. Lsto y ulgunos ejemlos senclllos ueden verse en su glnu de lu vlkledlu. Ln nlnguno de los untos referentes u lu generuclon de documentuclon vumos u entrur en rofundldud yu que se hun vlsto en 'uvudoc y udems es ulgo que vu u deender de lus necesldudes de cudu royecto or lo que no odemos conslderur unu herrumlentu en concreto como redomlnunte o destucudu. Sl ulgulen necesltu ms lnformuclon sobre Locxygen lu documentuclon es bustunte comletu. >'&5(*(,+-'^ ,3'E+I"2(,+-' 4 "&3 lnstulur Locxygen es muy senclllo con los blnurlos. Ln el munuul exllcun tumblen como comllur los fuentes uru lnstulurlos tunto en Llnux como en vlndows. Ln ml cuso voy u usur el blnurlo uru Muc ero uqul se uede descurgur cuulquleru. Por que en este cuso no utlllzo Llnux? Loxygen debe lnstulurse en lu mqulnu en lu que desurrollemos hubltuulmente. -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 1rus lnstulur el rogrumu nos sule unu untullu donde hubr que conflgurur lu curetu donde esturn los fuentes del royecto. Ll uso de lu oclon #*V/8- es muy senclllo. Como debo documentur el codlgo se exllcu en lu documentuclon. lnvestlgu y dlscute en cluse lus dlferentes oclones de cudu untullu: Project, Mode, Cutut y Llugrums Unu vez tengus clurus lus oclones, vumos u documentur un ejemlo y roburemos u exorturlo en chm. Lste tlo de herrumlentus son mucho ms utlles sl odemos lntegrurlus en el entornod e desurrollo. Loxygen tlene luglns en Netbeuns y en Lcllse. =2%(,+-' 4 "5+*+J(,+-' 1% )*('5+**(& Lu documentuclon generudu uede mostrurse en dlferentes formutos. Por ejemlo, en lu curetu 'uvudoc de royectos de 'uvu huy un CSS con lu conflguruclon de uurlenclu or defecto de lu APl. Ldltundo estu CSS odemos consegulr el usecto que querumos. Ln Loxygen tumblen exlste estu oslbllldud: Ln lu oclon vlzurd solo odemos conflgurur los colores (outut, E1ML, chunge color), ero en el modo Lxert, E1ML odemos selecclonur unu CSS rolu. Sln emburgo el termlno luntlllus se utlllzu uru muchos otros concetos como odemos ver uqul. Ln lu generuclon uutomtlcu de codlgo se utlllzu uru creur luntlllus de comenturlos. Por ejemlo unu luntlllu uru los comenturlos de un uquete, otru uru los de cluse, otru uru los de metodo, etc. Lstus luntlllus nos ermlten lnclulr cumos o comenturlos or defecto udems de elementos como or ejemlo el uutor, lu fechu, etc. Lus luntlllus se creun y se utlllzun en el entorno de desurrollo determlnudo que estemos utlllzundo. Por ejemlo en Lcllse, en lus oclones de cudu lenguuje de rogrumuclon suele huber unu oclon denomlnudu 90-& P&@()/:&' que es donde se modlflcu. 4RK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu lnstuluclon, conflguruclon y uso de slstemus de control de verslones. htt:jjwww.uvujuvu.comjtutorlulsjcutegorlesjversloncontrol Subverslon ! Ceruclones uvunzudus. ! Segurldud de los slstemus de control de verslones. ! Elstorlu de un reosltorlo. , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Aendlces Ln este uurtudo se lncluyen herrumlentus y rogrumus que no uurecen en el temurlo del modulo o son necesurlus untes de uurecer ero que se conslderun lmortuntes uru el correcto desurrollo del mlsmo. Por estos motlvos se cubren de muneru someru y se suele resentur lu muneru ms senclllu de usurlos. 4RF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu vebmln: Unu lnterfuz grflcu de udmlnlstruclon vebmln es un udmlnlstrudor de lnterfuz web uru servldores en Llnux. Puru lnstulurlo, debemos unudlr fuentes de softwure nuevo u nuestru lnstuluclon. Lo rlmero es ubrlr el urchlvo de fuentes sudo gedit /etc/apt/sources.list y unudlr lus slgulentes llneus deb http://download.webmin.com/download/repository sarge contrib deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib 1rus guurdur y sullr debemos lmortur lu cluve CPC wget http://www.webmin.com/jcameron-key.asc sudo apt-key add jcameron-key.asc uctuullzumos lu llstu de fuentes sudo apt-get update e lnstulumos vebmln sudo apt-get install webmin -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj Podemos ucceder u lu consolu de vebmln desde htts:jjserverl:ccccj cumblundo '&8>&8*( or el nombre del que nos lnformu cuundo termlnu lu lnstuluclon. 1umblen se uede ucceder usundo lu lP en el mlsmo uerto o sl estumos en lu mlsmu mqulnu con loculhost y el uerto. Ln todos los cusos ten en cuentu que lu conexlon es E11PS. Ll usuurlo es 800: y lu contrusenu lu que le huyumos uslgnudo en Llnux. 4KM -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Un equeno servldor LNS Ln nuestro cuso vumos u lnstulur un equeno LNS en nuestro servldor uru oder robur lu oclon. 1en en cuentu que untes de lnstulur ulgo es lmortunte tener lu mqulnu uctuullzudu. sudo apt-get update Ln ml cuso estoy lnstulundo 8lnd en lu mlsmu mqulnu vlrtuul en lu que he lnstuludo Auche. Lstu mqulnu no es vlslble desde lu red or lo que solo se odr robur desde dentro de estu mqulnu. Lu dlrecclon lP de lu mqulnu es c.c.z. Podrlumos hucer que fueru vlslble desde lu mqulnu unfltrlon sl hemos uctlvudo esu lnterfuz en vlrtuul 8ox y creumos todos los urchlvos con lu dlrecclon lu lnterfuz de red corresondlente, ero udems deberlumos cumblur lus dlrecclones de los LNS de lu mqulnu unfltrlon uru que usen el nuestro. Como no es recomenduble, lo roburemos solo desde lu mqulnu vlrtuul. sudo apt-get install bind9 ubrlmos el flchero de conflguruclon sudo gedit /etc/bind/named.conf.local y escrlblmos lo slgulente # Esta es la definicin de la zona. Remplaza el dominio de ejemplo por otro zone ejemplo.es type master; 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj file /etc/bind/zones/ejemplo.es.db; ; # Esta es la difinicion de la zona inversa para DNS. Modifica las direcciones IP para que se ajusten a las tuyas. zone 2.0.10.in-addr.arpa type master; file /etc/bind/zones/rev.2.0.10.in-addr.arpa; ; Podemos comrobur que lu slntuxls seu correctu con lu slgulente orden. Sl es correctu no uurecer nlngun mensuje ero sl no lo es nos mostrur el roblemu. named-checkconf Lo que debemos hucer uhoru es ubrlr el urchlvo de oclones. sudo gedit /etc/bind/named.conf.options en el debemos qultur los comenturlos de lu urte de <08D/8-&8' y dejurlo como slgue. 1en en cuentu que lus dlrecclones de los servldores LNS de tu conflguruclon ueden cumblur. Se debe escrlblr estu orden justo en el sltlo que est lndlcudo. Lscrlblrlo or ejemlo ul flnul del urchlvo hurlu que nuestro servldor no funclonuru. 4K3 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu forwarders 80.58.61.254; 80.58.61.250; ; Creumos el dlrectorlo uru conflgurur lus zonus sudo mkdir /etc/bind/zones y creumos el urchlvo de conflguruclon de nuestru zonu. sudo gedit /etc/bind/zones/ejemplo.es.db y escrlblmos lo slgulente ; cambia ejemplo.es por el nombre de tu dominio. No te olvides el punto despues del nombre de dominio $TTL 3600 ejemplo.es. IN SOA ns.ejemplo.es. admin.ejemplo.es. ( ; NO modifiques los siguiente parametros 2006081401 28800 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 3600 604800 38400 ) ; Modifica lo siguiente para que se ajuste a tu nombre de dominio ejemplo.es. IN NS ns.ejemplo.es. ; Modifica las direcciones IP con las adecuadas en tu caso @ IN A 10.0.2.15 ns IN A 10.0.2.15 www IN A 10.0.2.15 Podemos comrobur lu correctu slntuxls con lu orden named-checkzone ejemplo.es /etc/bind/zones/ejemplo.es.db Londe el rlmer urmetro es el nombre de lu zonu y el segundo lu rutu ul urchlvo corresondlente. 4K6 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu Lebe dur unu sulldu como zone ejemplo.es/IN: loaded serial 2006081401 OK Ll slgulente uso es creur el urchlvo de zonu lnversu. sudo gedit /etc/bind/zones/rev.2.0.10.in-addr.arpa y escrlblr lo slgulente ; modifica los parametros correctamente ; el numero antes de IN PTR ejemplo.es es la direccin de la maquina donde este el servidor DNS $TTL 604800 @ IN SOA ns.ejemplo.es. admin.ejemplo.es. ( 2006081401; 28800; 604800; 604800; 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 86400 ) ; 15 es el ultimo numero de la ip de la maquina en la red. @ IN NS ns.ejemplo.es. 15 IN PTR ejemplo.es. Y lo comrobumos named-checkzone 2.0.10.in-addr.arpa /etc/bind/zones/rev.2.0.10.in-addr.arpa Ln este unto nos tocu relnlclur el servlclo LNS sudo service bind9 restart Ln cuso de que nos de 1),6"$9:( lo mejor es ubrlr lu lnterfuz de vebmln y ucceder u 7&8>&8' l bLe! !e7 7&8>&8. Lu oclon 9N&.a bLe! 901<*+ es de muchu utllldud uru comrobur que no nos hemos equlvocudo en lu conflguruclon. Ll roblemu ms hubltuul es que huyu ulgun fullo en RNLC. Lu oclon 7&:,( [e!9 nos uede uyudur. Q&), 1),6"$9: muy hubltuul es que sl hus coludo y egudo de este urchlvo u los de conflguruclon, lus comlllus dobles son dlferentes or lo que no funclonur. Lebes sustltulr todus lus comlllus dobles y volver u escrlblrlus. Lebemos robur que todo funclone correctumente. Lo rlmero es lnformur u nuestro ordenudor de que debe buscur en el servldor lu resoluclon de nombres. 4KK -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu gedit /etc/resolv.conf y sustltulr lo que ongu or lo slgulente nameserver 10.0.2.15 domain ejemplo.es Yu odemos robur el resultudo dig ejemplo.es Lo que nos devolver ulgo slmllur u lo slgulente: ; <<>> DiG 9.8.1-P1 <<>> ejemplo.es ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22708 ;; flags: qr aa rd ra; QUERY: 1, ANSER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;ejemplo.es. IN A 6, -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj ;; ANSER SECTION: ejemplo.es. 3600 IN A 10.0.2.15 ;; AUTHORITY SECTION: ejemplo.es. 3600 IN NS ns.ejemplo.es. ;; ADDITIONAL SECTION: ns.ejemplo.es. 3600 IN A 10.0.2.15 ;; Query time: 3 msec ;; SERVER: 10.0.2.15#53(10.0.2.15) ;; HEN: ed Aug 29 14:53:56 2012 ;; MSG SIZE rcvd: 77 1umblen odemos robur con lng sl se encuentru 4KF -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu ping -c 4 www y debemos obtener ulgo como PING www.ejemplo.es (10.0.2.15) 56(84) bytes of data. 64 bytes from ejemplo.es (10.0.2.15): icmp_req=1 ttl=64 time=0.017 ms 64 bytes from ejemplo.es (10.0.2.15): icmp_req=2 ttl=64 time=0.033 ms 64 bytes from ejemplo.es (10.0.2.15): icmp_req=3 ttl=64 time=0.031 ms 64 bytes from ejemplo.es (10.0.2.15): icmp_req=4 ttl=64 time=0.029 ms --- www.ejemplo.es ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.017/0.027/0.033/0.008 ms Podemos robur u hucer unu consultu u un sltlo externo uru comrobur que segulmos tenlendo ucceso u lnternet ping -c 4 www.google.es PING www-cctld.l.google.com (173.194.34.23) 56(84) bytes of data. 6 -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 64 bytes from par03s02-in-f23.1e100.net (173.194.34.23): icmp_req=1 ttl=51 time=84.4 ms 64 bytes from par03s02-in-f23.1e100.net (173.194.34.23): icmp_req=2 ttl=51 time=83.5 ms 64 bytes from par03s02-in-f23.1e100.net (173.194.34.23): icmp_req=3 ttl=51 time=74.6 ms 64 bytes from par03s02-in-f23.1e100.net (173.194.34.23): icmp_req=4 ttl=51 time=75.3 ms --- www-cctld.l.google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3759ms rtt min/avg/max/mdev = 74.668/79.480/84.406/4.516 ms L lncluso sl tenemos lnstuludo Auche odemos ucceder u lu glnu or defecto escrlblendo en el nuvegudor web www.ejemlo.es. Sl usumos hosts vlrtuules busudos en nombres, neceslturemos creur un reglstro uru el nuevo domlnlo ero reulmente ser un ullus ul unterlor. Lo rlmero es unudlr el nuevo domlnlo u lu conflguruclon de 8lNL. sudo gedit /etc/bind/named.conf.local y unudlmos lo slgulente. Por coherenclu deberlu lr untes de lu deflnlclon de lu zonu lnversu. . # Esta es la definicion de la zona. Reemplaza el dominio de ejemplo por otro zone "ejemplo2.es" 45M -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu type master; file "/etc/bind/zones/ejemplo2.es.db"; ; . Ahoru creumos el urchlvo de lu zonu sudo gedit /etc/bind/zones/ejemplo2.es.db y unudlmos los dutos con el reglstro CNAML udecuudo ; cambia ejemplo.es por el nombre de tu dominio. No te olvides el punto despues del nombre de dominio $TTL 3600 ejemplo2.es. IN SOA ns.ejemplo2.es. admin.ejemplo2.es. ( ; NO modifiques los siguiente parametros 2006081401 28800 3600 604800 , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj 38400 ) ; Modifica lo siguiente para que se ajuste a tu nombre de dominio ejemplo2.es. IN NS ns.ejemplo.es. ; Registro CNAME es un alias a otro ya existente. Es til para los hosts virtuales basados en nombres. www.ejemplo2.es. IN CNAME ejemplo.es. trus hucerlo relnlclumos 8lNL service bind9 restart y odemos ucceder u nuestro servldor con el nuevo nombre de domlnlo or ejemlo desde el nuvegudor veb. 453 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestu lnstulur MySQL Puru lnstulur lu buse de dutos MySQL usuremos el comundo: sudo apt-get install mysql-server-5.5 que uede deender de lu verslon que huyu sulldo en su momento y que se uede consultur en htt:jjdev.mysql.comjdownloudsjmysqlj Lurunte lu lnstuluclon nos edlrn que lntroduzcumos unu contrusenu de udmlnlstrudor que uunque no es obllgutorlu, sl muy recomenduble. Yo ongo "serglo orque es unu lnstuluclon de ruebus. MySQL se urruncu ul lnlclur lu mqulnu, ero odemos usur los comundos udecuudos en cudu cuso /etc/init.d/mysql start /etc/init.d/mysql stop /etc/init.d/mysql restart /etc/init.d/mysql status uunque el rolo MySQL nos recomlendu usur los comundos usocludos ul servlclo. service mysql start service mysql stop service mysql restart , -& , 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@ !"# % !&'()*&+,& -& "()*./.*01&' #&2 htts:jjsltes.google.comjsltejserglocuestuj service mysql status el urchlvo de conflguruclon se uede ver en sudo gedit /etc/mysql/my.cnf uru conecturnos u MySQL con el usuurlo root mysql -u root -p lo que hur que nos ldu lu contrusenu que hemos estublecldo. Puru sullr usuremos Q,*: o &`*:. 456 -& 456 7&8+*0 9,&':/ ;*.&1:& (80<&'08='.>?+@/*)=.0@