Vous êtes sur la page 1sur 169
O'REILLY“ Administraci6n de sistemas Linux De todos fos sistemas Unix, Linux es una plataforma servidora excelente, un buen sistema de eseritrio y el centro en torno al cual gita una gran pane de la | omovaciin del mundo infsmatco actual. Lime es probable el que mis imbitos abarca de todos los sistemas operativos, desde si un movil hasta chisteres de computadores mis grandes qué n los campos de las telecomunicaciones, sistemas embebidos, satélites, equipamiente sistemas militares y grificos por computador e informatica de escritono. NAT ADMINISTRACION DE SISTEMAS Administracion de sistemas Linu oftece mamerosos consejos para gestionae un ampio tango de sistemas y servidores, Este libro resume los pasos para implantar desde hulbs SOHO, servidores web y seevidores LAN, hasta clisteres de carga balanceada y serves virtates También le ayudars a conocer las hesramientas necesaris para administrar y mantener de bao, forma eflcaz estos entomos de Con este ibro aprenderd a ‘+ Instalar,configurar, mantener y resolver problemas en un servidor usando BIND, + Configurar un servidor de correo Postfix con autentificacisn SASt, un servidor POP y ua Servidor IMAP, = Gestionar usuarios y cl para pasarclas en redes de ‘elementos de red comunes, tales como DCHO y software 12a local (LAN), * Definir Xen, VMware en un equipo Linux y luego afd sist ‘operativos invitados, ‘+ Instalar y configurar Apache, PHP y MySQL en ua servidor web desde + Hacer copias de seguridad y restaurar datos com syne, tay decor, Amanda y heeramientas MySQL ‘Tom Adelstein comenzs su sn el mundo de las inv lideres de su sector. Ahomi es adminis 126 desarvollando ra Unix en la décadls de 1970, incerfaces ce la déeada de 1980 y para WX), Actualmente le visualizacién Web para una compania de energia e6lica Bill Lubanovie sgrifieas de Web en la década de 2027258 seem OPRRILE YY Dhue 2 Pi tabimonde R160. 315 Administracion de sistemas Linux Tom Adelstein Bill’ Lubanovic ANNAN ‘orl los nombres propios de programas, sistemas operativs, equlpos harchare, etc, que aparecen en ese lio saa marcas reyisradas de sus respectvas ‘compaias u organizaciones Resenados tors lon derechos. E contenido de eva len ets protepida po ay, ce ‘etublnce pened prom yous, aes tetas comespondentesindermieciones por tafosy peices paraqulenesrepodueren, Hagen, dtibyeren comrieases publ ‘amen, esto oenpare,unaobraliesars Sitistiea © cunliea, os Warsormacion, inverpretseign eecucin atsics Hada en usin pn de soporte © comunieada 3 tuves de cualquier edi in a precept Copyright © 2007 by OReilly Metin [thorized translation from the Engish language edition published by O'Relly Mea, le All eghtscoserved © EDICIONES ANAYA MULTIMEDIA (GRUPO ANAYA, S.A, 2007, Juan Ignacio Luca de Tena, 15. 28027 Madi Depésito legal: M-31.807-2007 ISBN: 978.84.415.2254-3 Printed in Spain, Iimprime: Artes Grificas Guemo, $1. Febrero, 32, 28022 Madd Agradecimientos Este libro no existiria sin la contribucién de muchas personas, Aunque es im- posible incluirlas aquta todas. En primer lugar, queremos dar las gracias a Andy Oram cuyos esfuerzos de edicion, redaccidn y gestion son destacables. Aparte de su trahajo como editor, Andy ha contribuido materialmente al contenido de este libro. Andy ha gjercido como gestor del proyecto y ha demostrada paciencia y dliseiplina. Tampoco podemos olvidar las contribuiciones de Falko Timme, Phil Howard y Herschel Cohen. Falki nos ha prestado su tiempo y experiencia en los capitulos 2 y 4. Phil ha escrito gran parte del capitulo 11 y nos ha proporcionado el framework Uel capitulo 10 y el apéndice de los seripts. Herschel ha escrito varias secciones de ‘capitulo, entre los que estén el capitulo 8 y 10, y ha contribuido con su expe- riencia en el capitulo 6. Los tres, ademas, han revisado otras partes del libro. Muchas gracias también a les expertos téenicos, que han pasaclo innumera- bles horas revisando, probando y haciendo sugerencias sobre el trabajo: Markus Amersdorfer, Keith Burgess, Robert Day, Ammar Ibrahim, and Yaman Saqqa. ‘Yum agradedimiento especial a Yvonne Adelstein y Mary Lubanovic, nuestras esposas, que han demostrado una gran paciencia. No habriamos podido realizar este trabajo sin su apoyo, Sobre los autores ‘Tom Adelstein comenz6 su carrera en el mundo de as inversiones bancarias, donde sus conocimientos técnicos avudaron a algunas empresas de servicios f hancieros a convertirse en lideres de su sector. Ahora es administrador de siste- mas y eseritor Léenico. Bill Lubanovie comenz6 desarrollando software para Unix en la década de 1970, interfaces gréficas de usuario en la década de 1980 y para la Web en la década de 1990. Ahora lrabaja en el évea de visualizacién Web para una compa- fia de energia edlica Contenido Agradecimientos Sobre los autores IntroduccbM wcsnnsnns Como se organiza et libro. 16 Convenciones usadas en este libro " Capitulo 1. Requisitos para un administrador de sistemas Linux 9 Sobre este libro 20 2Cémo podemos ayudarle? a4 Wor dénde empezar? 24 eNecesita un libro? a Quin le necesita? 2 Ayuda demandada 23 Analizando Jos conjuntos de habilidades er ‘Qué deberfan saber los gestores de sistemas sobre Linux a5 {Qué es lo préximo? 26 Contenido Capitulo 2. Configurando un servidor Linux multifuncién Requisitos del servidor. nstalando Debian Aulentificdndose remotamente Configurando la red Cambiando los paquetes por defecto de Debian COfrecienlo servicios de nombre de dominio Affadiendo una hase de datos relacional: MySQL Configurando el correo de manera segura con Postfix, POPS ¢ IMAP Haciendo funcionar Apache Afiadiendo servicios FTP con ProFTPD. Recopilanda las cstadisticas Web con Webslizer Sincronizando el reloj del sistema. Instalanda los diferentes méxhulos Perl requerides por SpamAssassin Qué es lo proximo Capitulo 3. El sistema de nombres de dominio “Aspectos basicos de DNS. ‘Ventajas de la administracién localizada de DNS Introduccion a BIND Componentes de BIND Configurando un servidor DNS. Usando un entorno chroot seguro Configurando un servidor DNS autoritativo Su responsabilidad en DNS El método distribusido para resolver nombres de dominio Encontrando un dominio. Responsliendo consultas. Servidores DNS primarios y secundarios Servilores de solo caché Faditando los archivos de configuracion. amed.cont B] archivo de zona primaria. Majoras y caracteristieas avanzadas El archivo de zona inversa Basquedas de prueba Configurando el servidor de nombres secundaria Herramientas BIND. rslookup, made Resolucidn de problemas en BIND [No se puede coneetar usando rd shamed se inieia pero no resuelve nombres [No se reconocen los equips Que es lo proxime Capitulo 4. Un entorno inicial listo para Internet Instalando ISPConfig Requisitos Comenzendo Estructura de directorios de {SPConfig Configurando un servidor y usuarios con ISPConfig Afuadienda clientes y sitios Web Gestionando usuarios y correo electronico Directorios publicos, de usuario y de inicio Configuraci6n del cliente de correo electronic Salvaguardando um servidor Web Linux. El papel de demonio monitorizador de demonios + Instalando y configurando monit Qué ¢s lo préximo itulo 5. Correo Aspectos claves del servi io de correo Postfix, Sendmail y otros MTA. El servidor SMTP de correo Postfix en Debian Paquetes de Debian relacionados con Postfix, Instalando Postfix en Debian Configuracién bsica de Postfix Probando el correo a4 86 88 89 89 1 92 92 94 95 98 101 102 103 104 an 412, 11, 19 133 123 14 15 126 130 131 132 132 134 135 136 138 at 10 Contenido Aftadiendo autentifieacién y encripiacion, Autentificacién SASL. Configurando Postfix con SASL para autentificar ‘usuaring con cuentas El demonio sastauthd Configurando Postfix con SASL. para autentifiear usuarios sin cuentas Encriptacién TLS Configurando los agentes de entrega de correo POPS e IMAP Configuracion del cliente de correo. Qué ¢¢ o proximo, Capitulo 6. Administrando Apache Archivos estéticos y dinamicos Instalacin baisca de LAMP Instalaciée. Apache PHP MysaL. Archivos de configuracion de Ap: Ditectivas Directivas de usuarios y grupos Directiva Listen. Directiva DocumentRoot Autentificacién y autorizacion Archivos de usuario Archivos de grupo Contenedores y alias Rutas absolutas: Directorio. Rutas relativas: Ubicacion, Reconacimiento de patrones: Archivos y Comparacién de archivos Alias Limites ‘Tecnologia de servidor he de archivos de configuracion 142. 14, 143. 145 46 “7 150 152. 153 135 136 157 157 138 159 160) 162 164 164 16 164 165 167 167 167 168 168 168 169 169 Contenido u car im Location a2 Sulijo del archivo 1m Direetivas espetficas del modulo PHP rey Hosts Virtuales 1a Hosts virtuates hasados en IP va Tostsvietuales hasades en nombres va mod vhost alias 175 Archivos tog 176 Divisiin y rotacién de logs 176 Dividiendo los logs con viogger 7 ‘Analizandho logs con Webalizer 178 Enoriptaciin SSL/TLS 178 Soporte para suEXEC: 180 Rendimiento 180 Instalando y administrando Drupal 182 Instalando Drupal eon apt-get 182 Instalando Drupal desde ls fuentes 184 Configurande Drupal 135 Resolucidn de problemas 186 La pagina Web no aparece en el navegador 186 Los Hosts Virtuales no funcionan 189 851 no funciona 189 {Un programa CGt no se gecuta 190 © Sino funciona 190 Capitulo 7. Clusters de carga balancead usin 194 Balanceo de earga y alta disponibiisiad 192 Software para balanceo de carga 192 1PVS en el halanceador de eanga 193, laivectord 194 Configurando los servidores reales (Noss Apache) 195 Configurando el balanceador de carga 196 Probandbo el sistema. 197 ‘Afiadiendo HA a LB - 199 Contenido 13 Afhadiendo otros servicios LB 200 Instalando VMware 246 Escalabidad sin LB y HA 200 Instalando sistemas operativos invitados en VMware 250 ‘Otras lecturas 201 Virtualizacién, {una moda pasajera? 252 Capitulo 10. Scripting Comenzando con bash Rutas y permisos La rata por defecto Redireccion de E/S Capitulo 8. Servicios de red de area local . Sistemas de archivos distribuides Introdueeidn a Samba Configurando la rea DHCP Variables lnstalando DHCP Blementos tities para bash Sexipts Iniciando el servicio DHCP Expresiones COfreciendo dicecciones IP estticas Aritmtica Asignando direeciones IPvé con radvd * Servicios de pasarcla Depuranda un script sencilla El papel de una DMZ Bucles Ora aproximacién alos servicios de pasarela Tareas cton Servicios de impresin Problemas con los lenguajes de script 272 Impresin en plataforma eruzada ersiones de seript 274 __Controando as clas de impresion dese a iene omaraos H bash script 275 Gestién de usuarios HL script Per 276 liminando a un usuario Bl script PHD 279 Sella ct dsstori personal EL script Python 280 Gestores grficos de usuarios Escogiendo un lenguaje de script 281 ‘otras letras: 282 Capitulo 9. Virlualizacion en la empresa Moderna wnnmnnsnnnn Capitulo 11. Haciendo copia de seguridad de fos datos Por qué la vietuatizacion ¢s tan popular Computacién de alto rendimiente Salvaguardando los datos de usuario en un servider con rsyne 284 Continuidad comercial y gestion de la carga de trabajo Aspectos basieos de rsync 204 Abastecimiento rapido Haciendo un script para copias de seguridad de usuario 286 Cémo ayuda la virtualizacién Listando archivos en el servidor de copias de seguridad 287 Instalando Xen en Fedora 5 Restaurando archivos perdidos o dahados 288 Instalando sistemas operatives invitados en Xen Copias de seguridad automatizadas 289 Fedora Core 5 Archivos tar 289 (tres invitades. Creando un nuevo archive 2vt “u Contenido Extrayendo datos de un archivo Un gjemplo completo de compresiéin y descompresign con tar Resumen Guardando archivos en medios épticos. ‘Aceediende a su unisdad CD-R ‘Opciones por defecto. Preparando los archivos para grabar un CD-R Grabando el CD-R Verificando el grabado Copias de seguridad en DVD. Haciendo copias de seguridad y guardandolas en una cinta con Amanda’ lnstalando Amanda Configurando Amanda Restatirando archivos replicadas con Amanda Replicando datos MySQL. Apéndice. Bash scripts de ejemplo sean Afiadiendo usuarios Generador de contrasefias aleatorias. Basqueda del DNS autoritativo Enviando archivos entre sesiones shell Integrande ssh y sereee indice alfabético 291 292 294 294 295 296 297 298 299 300 300 301 302 304 304 309 310 31a 313 520 327 Introduccién Cuando Bill Lobanovie y yo estabamos dando Tos retoques finales a este libro, ceseuché, sin quererlo, uma conversacion entre dos compaiieros de trabajo en nues- tro laboratorio Cisco acerca de Limux. Uno de los das era experto en redes y hacia tuna puntualizacién muy interesante, Decfa que a pesar de todos sus conoci- iientos, se sentia un profesional incompetente porque nunca habia aprendido Linux. Un poco después, el otro hombre se giré y me miré, Sonref y continué trabajando. Por la noche, nuestro director de Teenologias de la Informacién me hizo un, comentario improvisado y nada usual durante una conferencia. Me dijo que queria, aprender Apache, y cuando le pregunté por qué, me respondio: "Simplemente quiero aprender", y la cosa qued abt Después en la conferencia, nuestro director pidié al grupo una solucion para la ggstion de parches, explicando y haciendo uso de xsyne como ejemplo. Dijo {que queria algo similar, mientras entraba en detalles acerca de una herramienta para la gestion de parches de manera incremental y acumulativa En ambos casos, y en muchos otros, deseé tener este libro acabado para reco- mendarselo a toda esa gente que aunque poseia experiencia y habilidades, queria, aprender a administrar Linux. Quizas usted tenga experiencias similares y Ie hhubiese gustado tener un libro coma este a mano en aquellos momentos, Sospe- cho que conversaciones parecidas a las que acabo de contar ocurren muy @.me~ rnudo en muchos lugares, incluso diariamente, Cuando Andy Oram y yo comenzamos a debatir acerea de un libro para la administraci6n de sistemas Linux, tenfamos una idea ligeramente diferente de 10 ‘que queriamos hacer. Andy hablaba de un libro en el que cada capitulo mostrar a los usuarios los pasos para construir y desplegar servidores sin entrar en deta- tes, £1 proponia debatir primero accrca de los capitulos y luego acerca de Tos pasos técnicos. Después, yo propuse que hiciéramos de cada capitulo un médulo y asi permi- tiral lector completar los modulos que quisiera o que necesitase. A medida que el libro evolucionaba, sentiamos que se estaba cumpliendo este objetivo. No es nece- sario que lea este Iibro de principio a fin para convertirse en un administrador de sistemas Linux, Simplemente, comience por donde le interes. Cuando yo empecé a manejar Linux, la comunidad estaba compuesta en su ‘mayor parte por programaclores y aficionados. No creo recordar ninguna lista de discusion que se centraré en aplicaciones comerciales 0 de escritorio. Accediamos a Internet mediante un demonio de inicio. No teniamos conexiones ni navegadores ‘Web como los que estan disponibles hoy en dia, La gran mayoria de la gente que yo conocia o eran administradores de su propio sistema o estaban aprendiendo. Me estoy refiriendo a una época en Ia que Jos usuarios de Linux eran unos 30.000 en todlo el planeta, todavia me sorpreado con la cantidad de gente que usa Linux a dia de hoy sin tener la menor idea de ccémo escribir un archivo de configuracién. Los foros de Linnx se Henan de perso- nas que preguntan qué tienen que hacer para conseguir que CUPS o Samba fun- En las listas de correo, la gente mantiene debates acerca de detalles técnicos de proyectos como Fostfix, JBoss y Monit. Muchas personas atin sienten curiosidad Por aprender las grandes posibilidades de Linux como plataforma de aplicaciones. Si usted ya usa Linux a nivel de usuario, y quiere ir un paso mas alld, es decir, quiere convertirse en administrador, este libro le ayudaré en la transicién, puesto que hemos escrito este libro pensando en usted, ‘Cémo se organiza el libro + Capitulo 1. Requisitos para un administrador de sistemas Linux: Repasa los objetivos del libro y qué se conseguira al leer, + Capitulo 2. Configurando un servidor Linux multifuncién: Le inicia «en et mangjo de servidores sencillos para Internet. + Capitulo 3. EI sistema de nombres de dominio: Muestra los aspectos baisicos para configurar servidores DNS primarios y secundarios. + Capitulo 4. Un entorno inicial listo para Internet: Usa el software de configuracion ISPConfig para introducirle en un conjunto de servicios con los que posta practicar mientras lee el resto de libro. + Capitulo 5. Correo: Configura un servidor de correo Postfix con autenti- ficacién SASL, um servidor POP y un servidor IMAP. Introducci6n v7 + Capitulo 6. Administrando Apache: Proporciona una vision répida de la popular combinacién Apache, MySQl. y PHP (a la que junto con Linux se le llama servidor LAMP), incluyendo autentificacion SSL. + Capitulos 7. Clusters de carga balanceada: Extiende el capitulo previo dle configuracin de Apache con el servidor de IP Virtual v Wirectord para bfrecer gran eapacidad. + Capitulo 8, Servicios de red de drea local: Muestra como gestionar usuatios y configurar elementos de red comunes, tales como DCHO y sof- ‘ware para pasarelas en redes de érea local (LAN). + Capitulo 9, Virtualizacion de la empresa moderna: Muestra como de~ finir Xen, VMware en un equipo Linux y luego afiadir sistemas operativos, invitados, + Capitulo 10. Scripting: Mucstra algunas téenicas bésicas para eseribir script potentes y robustos que pueden aborrar mucho tiempo de adminis- tracién, + Capitulo 11, Haciendo copia de seguridad de los datos: Presenta un amplio rango de técnicas para realizar esta funcidn crucial, desde el rsync basico y el tar hasta el potente sistema Amanda. + Apendice. Bash scripts de ejemplo: Contiene unos cuantos shell seripts {que nos han sido tiles para administrar sistemas y también proporciona, consejos a tener en cuenta a Ja hora de escribir tus propios scripts. Convenciones usadas en este libro Para ayudarle a sacar el mayor partido al texto y saber dénde se encuentra en. cada momento, alo largo del libro utilizamos distintas convenciones: +" Las combinaciones de teclas se muestran en negrita, por ejemplo Con~ trol-A. Los botones de las distintas aplicaciones tambien se muestran cn, negrita + Los nombres de archivo, URL y cédigo incluido en texto se muestran en tun tipo de letra nonoespacial. + Los mentis, subments, opciones, cuadros de didlogo y demas elementos de la interfaz de las aplicaciones se muestran en un tipo de letra Arial ‘Nota: En estos cuadros se inclye informacion importante directamente relaeonada con el texto adjunto. Los trucos, sugerencias y comentarios afines relacionados cone] tema analizado se eproduen em este formato. Capitulo 1 Requisitos para un administrador de sistemas Linux [Nos gusta Linux. De todos los sistemas Unix y parecidos a Unix que hemos ‘usado, muchos abora olvidados, Linux ¢s nuestro Iavorito. Es una plataforma servidora excelente, un buen sistema de escritorio y el centro en torno al cual gira mucho de la innovacion de] mundo informético actual, Linux es probablemente el que mas aspeotos abarea de todos los sistemas ‘operatives, desde sistemas pequeos como un telefono mévil hasta chisteres de computadores més grandes que un edificio. Esta presente en los campos de las. telecomunicaciones, sistemas embebidos, satélites, equipamiento médico, siste- ‘mas militares y graficos por computador, y por ultimo, pero no por ello menos importante, informatica de escritorio. En un petiodo de tiempo relativamente corto, Linux ha pasado de ser el pasa~ tiempo de un hacker finlandés a:un sistema avanzado de nivel empresarial res paldado por gigantes como IBM y Oracle. La base de usuarios ha erecido Considerablemente desde las 30,000 personas que habia en 1995 hasta los cien= tos de millones que hay a dia de hoy. Durante el boom de Internet en la década de 1990, muchos administradores de Unix se sorprendieron gratamente al descu- brit que un Linux sobre un PC podia hacer las mismas tareas que carisimas esta~ cones y servidores UNIN. Muchos administradores de Windows y de Novell vieron, ‘que Linux podia mangjar DNS, correo electronico y servicios de archivos mas clicientemente y con menos soporte humano que sus diferentes plataformas. El ‘crecimiento de Internet, y especialmente la Web, sirvié de combustible para la rripida expansién del uso de los servidores Linux y la necesidad de personal para sgestionarlos. Este libro es para aciministradores de sistemas Linux. No obstante, puede que sea un veterano de Unix, ua bravo MCSE 0 un estoico administrador de 20 Requisitos para un administrador de sistemas Linux mainframes. Pero esté explorando un nuevo territorio y necesita mapa y com- ps. Algunos aspectos le sonaran familiares, pero otros serdin una tierra sin ex- plorar. Este libro cubre muchos temas que se acaban de afiadir a la tendencia ‘actual, por ejemplo los elisteres de carga balanceacla y la virtualizacion, El éxito de Internet y del software de eédigo abierto esta cambiando los nego- ios. Google, Amazon, eBay y otros han levantado granjas de servidores con hardware mangjable y relativamente pocos administradorcs en comparacién con las instalaciones de PC y mainframes tradicionales, Los conocimientos necesarios para desarrollar y mantener tales sistemas dis- tribuidos y las aplicaciones no se ensefian en los colegios, sino que se aprenden de la experiencia, unas veces mas amarga y otras mas dulce, Nota; Mientras escribiamos este libro hemos estado de forma constante probando las tltimas distripuciones y herramientas, y mantendremos nuestros experimtentos hasta después de quie el libro esté lerminado, Invitamos a los leclores a que visite el sitio We que heraos levantado por el libro, neep://uwe-cenezalsoft. org, donde publicaremos acttte- lizaciones de los elemples, enlaces a nuevas y iiles herramientas que vayamos descubrienda y otros consejos. Sobre este libro Los libros de administracion de sistemas sueten ser facilmente predecibles. Ensefian como gestionar usuarios, sistemas de archivos, dispositivos, procesos, impresoras, redes, etc. Pero no indican qué tine que hacer cuando surge tn pro- blema, Sisu sitio Web se convierte en popular, tendré que aprender rapidamente a usar servidores proxy, diferentes niveles de caché, balanceado de carga, auten- tificacién distribuida y otros detalles complejos. Si ahade tna base de datos, ne~ cesitard saber como ampliarla y aprender a evitar los ataques de inyeccisn SQL, Dela noche a la maiiana, el sitio se ha convertido en una mision critica, y deberd ser capaz de hacer copias calientes en sistemas 24 x 7. Siya ha realizado muchos simulacros de incendios, estara cansado de hacerlo todo de la manera més dificil, pero tendra que hacer frente a nticvos retos téeni- cos pricticamente a diario y con la ayuda de muy pocas fuentes de ayuda La documentacién técnica, ya sea de software comercial o software libre, rara vez tiene que ver con fa tecnologia, y sucle pecar de sex demasiado abstracta, Por sjemplo, los servidores de directorios de e6digo abierto se han convertido en alge importante para gestionar ondenadores, usuarios y recursos. Los productos co- merciales suelen cumplir los protocolos del RFC original, pero la buena docu :mentacidn para proyectos abiertos es sorprendentemente escasa Requisitos para un administrador de sistemas Linu a 4Cémo podemos ayudarle? tas personas que trabajan en Linux resusven problemas Un usuario meio de Linus puede evantar un peguet servo, obtener un eonexon con una TP sté- tia en su case registrar unnhombre de domino poner en marcha el servior en Internet Stes eos que estan en esta calgon, puede er fos ots temas dl iro } amp sus posilates profesional A aligns, tod eto es peer como eal una mentafia de 10.000 metres, Sino es in de ellos, eomtence po cua quer parte Como deel refran, comme al lta de una Vey Ineo sara ‘is tenga cetifeaciones de otros stems operatives dstntes@ Linx ‘una ya sabe apicar paves eorregirfallos, aga aprenders a desplegar el Servidor Apache &tmanear su propio DNS ow cambiar Exchange por Zimbra. 5i solo quiere aprender o tiene la obligacion de aprender, necesita ayuda seal Ta curva de uprendizae de Linux, Para eso es exactamente pata 10 poral sistema Lina sn ene Ge Pst POF pa que estamos: para ayudarle a cexperiencias traumaticas. sPor dénde empezar? Este libro resume los pasos que tiene que seguir para desplegar srvidores autonome si nei evant un svi de gone cea un ze Gon capacidad para bogs oeonfigurarunapasaela pata su LAN, pul drigiese fad live, No ene que ler "Administra de ssernas anu” dese el Princip hast fina ‘Comenzaremos explicanto, paso por paso, Ia manera levantar un servidor mux en el capitulo siguiente, Puede clgir el camino que Ie convenga, desde {rear un huster para servicios Web o reforzar los servidores geatias @ la Virtealizaion, hasta configurar un seridor para una red de dea local acer funcionar n sistema operativo modern es muy barato. Poede confi juror un sofistcado centro de aprendzale sobre hardware queen mchos sitios Eonsideranubsoletoy To regan, Nosotros comenzamos com una caja que conte tna una CPU de tel ds generaciones ms antigua que los modelos actuals le prsimos una version antiguadedacos duro y memoria, una version sin extras praia de Linu iNecesita un libro? Los libros téenicos han adquirido popularidad a medida que Internet ha ma- durado. Para conseguir un libre de éxito hoy en dia, el autor tiene que proporcio- 2 Requisitos para un administrador de sistemas Linux. nar im valor afiadido al lector. Una historia interesante sobre uno de los prime= 10s sitios de comercio electronico ayuda a explicar qué deberia ofeecer un libro. Una compania que fabricaba tartas de queso puso un anuncio en los primeros dias de la Web. Segxin la historia, pasaron varios meses sin que la compania reabiera un pedio. En un movimiento nada comin, el presidente de la compa- ‘ia publicé la receta secreta de la tarta de queso. Al cabo de unas horas, st linea de telétono estaba colapsada. La gente empez6 a pedir muchos pasteles de queso, Se dicron cuenta de que se necesitaba un esfuerzo considerable para hacer sus propios pasteles y por tanto vieron el valor de compratselos a la compatta, Muchos de los ingredientes de este libro han sido reeopilados de Internet, de listas de correos, foros, grupos de discusién, mientras quie otros han side extrai- dos de libros, revistas y la experiencia de amigos. Nosotros solucionamos mu- chos problemas cuyas soluciones estaban completamente indocumentadas antes de aparecer este libro, y abora se las ofrecemos. Muchos proyectos excelentes tienen una documentacién inadecuada, Los dcsarrolladores han (rabajado mucho para ofrecer un excelente software libre, perono una documentacion adecuada para el cligo por varias razones: falta de tiempo, falta de recursos, falta de interés, la barrera del lenguiaje, etc. Junto con nuestros lectores, editores y revisores, esperamos que esta tenden- cia disminuya, al menos en.esta pequefia parcela del mundo de la informatica, iQuién le necesita? Hace unos cuantos aftos, la mayoria de los aclministradores de sistemas Linux. decian que ellos no habta escogido esta carrera, sino que Linux les habia escogido aeellos. En aquellos tiempos, Linux era como un Unix adolescente. La mayoria de Jos administradores de sistemas Linux aprendian el funcionamiento en una esta- cin de trabajo y en pequefias redes. Linux hered6 algunos servidores de Unix (BIND, Sendmail, Apache}, pero también software de oficina y algunas aplicacio- nies, Hoy en dia, la administraci6n de sistemas Linux involuera a miles de paquue- tes ¥ la interoperabilidad con otros sistemas operatives. ZQuién necesita administradores Linux? El eentro para ciencias de la compu tacidn de la NASA (NCSS) y el Centro para vuelos espaciales Goddard. Los clisteres para computacion de alto rendimiento hasados en Linux se disefian para mejorar el tiempo de respuesta de aplicaciones, que van desde el estudio del tiempo y del cambio climatico hasta la simulacion de fenomenos astrofisicos, Linus permite a laarquitectura de la NCSS soportar hasta 4 billones de operaciones en coma flo {ante por segundo (TFLOPS) en su configuracién de alto rendimiento, Linux es el sistema operative que mas supercomputadores hace funcionar en el mundo. De hecho, a dia de hoy da soporte a un 73 por 100 de los 500 supercomputadores 23 Recqisitos para un administrador de sistem: tue hay en el planeta, Seguin el Lawrence Livermore National Laboratory de tivermore (California, Linux se gjecuta tn 10 de as sistemas ms robusto, todos inuidos entre la ist dos 300 tre eaos sistemas ence el BlueGene” er aupercomputador ms potente, yl Thunder, que actalmente ecupa el puesto diecineve fattps/ am. cops0d -org/1iet/2006/12/300) Ayuda demandada trenarytutorizat as adiinistrdores novels Centros de Ordenes. 24 Requisitos para un administrador de sistemas Linux Linux es ahora una plataforma esténdar y ef talento ne abunda. Si quieres aprender Linux podras mejorar tu salario, como ast lo evidencia la creciente de- ‘manda de trabajadores con conocimientos de administracién Lint. Analizando los conjuntos de habi lidades Pregunte a distintos gestores de sistemas de informacin sobre el papel que debe jugar el administrador del sistema y obtendlea una gran variedad de res~ puestas. El mercado se ha visto sorprendide por el hecho de que la mayorta de estos gestores carecen de conocimientos acerca de Linux. Ellas no saben qué es 10 ue deberian saber los profesionates de Linux, y los profesionales de Linux, rara ver entiendden a estos gestores. Muchos gestores de sistemas de informacién que entienden Unix quieren adap- tar alos administradores de Linux a los estandares de Unix. Esto no stele Funcio~ nar. Aunque los administradores Unix crean que la migracion a Linux es tail, siempre sucten descubrir que no es asf. Los administradores Linux tienen menos problemas para adaptarse a Unix que al contrario. Una explicacion es que los administradores Linux tiene un conocimiento mucho mas amplio de sus siste- zmias, dehido a la naturaleza del software del e&digo abierto, las tareas de los administradores de sistemas muy a menudo involucran a Internet. La mayoria de las transacciones estén relacionadas con el correo y la gestion de sitios Web, ademas de las telecomunicaciones y la movilidad. El correo electrénico represenita el 70 por 100 de todo el trafico de Internet. Hoy en dia, las aplicaciones de banda ancha como la Voz sobre IP (VoIP) y otras formas de comt- nicacién, incluyendo la mensajeria instanténea, han incrementado el trafico en detrimento del corree electronico. Pero a pesar de los protocotos y las aplicacio- ‘hes multimedia, Internet sigue siendo el dominio principal de Linus Continuemos analizande las responsabilidades laborales descritas en la see- cién previa. La tiltima tarea ("Administrar servicios de infraestractura’) puede darle una idea det conjunto de habilidades necesarias en Linux. Las empresas quieren administradores de sistemas que puedan mancjar ‘infraestructuras de servicios’. Fijese en las tecnologias de Internet involucradas. De la lista de com- Ponentes Linux que es necesatrio saber, la mayorfa de las tareas involkieran DNS, LDAP, FTR SMTP y Postfix/Sendmail. Cubriremos la mayor parte de estos com ponentes en préximos capitulo Las otras descripciones de trabajos se ajustan mas ala categoria de necesida- des internas de la empresa. Entre ellas se incluyen el soporte para el discfio de servicios escalables, soporte téenico y consultor para el entomo del hardware y del sistema operativo. La mayoria de los administradores de sistemas Linux de- berian poscer habilidades para ofrecer estos servicios, pero éstos estan Fucran del alcanee de! libro porque no son de naturaleza téeniva, Requisitos para un adiministrador de sistemas Linux 25 El resto de las responsabilidades se encuadran dentro de la eategorfa de "habi~ lidades ligeras”. En el pasado, nadie esperaba que un administrador de sistemas aprendiera a funcionar come enlace con otros grupos internos de soporte come el de Desarrollo de Aplicaciones, Ingenieria, Administradores de Bases de datos © Servicios Web. Sin embargo, un administrador de sistemas no ¢s slo un teenico ‘con conacimientos de algunos sistemas mistcriosos, sino el miembro de un gru- po capaz de tomar decisiones. Uno normalmente consigue unas habilidades basicas y especializaciones des pués de estudiar los aspectos basicos. Quizas cubramos algunas de esas habilida~ des en este libro, pero creemas que ese no es el abjetivo. Otros libros de O'Reilly y cl tiempo le ayudaran a adguirit esas habilidades. For ahora, le introduciremos cen el area de la administracién de sistema, puesto que es la que mayor creci~ miento experimenta y donde no parecer exist uma adecuiada documentacién, AL contrario que en otras disciplinas de informatica y de ingenieria, pocos eentros ofrecen cursos de Administracién Linux, dejando incompletos ciertos programas dle grado, Por lo que si usted quiere aprender administracion de sistemas Linux, tiene que buscar materiales y cursos fuera de la universidad. Pero una gran parte /ete/nostnaas 4 Moin/hostnane -P /ote/hostoame 34 Configurando un servidor Linux multfuncién [Necesitaré usar los mismos comandos independientemente de como configu- rara la red durante la instalacidn, sustituyendo su nombre de dominio por berverl.centraleoft .org, Luego, verifique que ha configurado su nombre de host correctamente ejecutando el comando hostname: op hostname -£ Slobtiene este resultado, esta listo para ira la siguiente seccién, De no ser asi, revise el archivo /etc/nostname, Deberla ser parecido a esto: ‘Oops. Deberia leer atentamente server? .centralsoft .org, Puede modifi- carlo ahora. Cambiando los paquetes por defecto de Debian Comenzamos con tos paquetes Debian que los desarrolladores colocan en su Aistribucion por defecto. Como indicamos anteriormente, necesitamos hacer al- sgunos cambios, sobre todo para hacer uso de Posftix. Aunque podria pensar que estamos relegando a un segundo plano el trabajo hecho por el equipo de Debian, este no es el eas, Et equipo Debian ha clegido instalar, por defecto, servicios apropiados para una LAN como el Networklile System (NFS). Pero nosotros estamos poniendo servidor en Internet, por lo que eliminaremos NES y otros servicios, mientras que abadiremos otros como Openssl, Para obtener todos los archivos necesarios para este capitulo, ejecute el si- _guiente comando: Verd a Debian descargar archivos en su consola. Luego, la descarga finalizaré ¥y vera un mensaje que le preguntara si desea eontinuar: © upgraded, 42 newly installed, 4 to renove and 0 not upgraded Yieod to gat 12.20 of arentves After unpacking 35.3MB of agaicional disk space vill be used Do you want t9 continue? (Ws) nu mulifuncidn 35 Pulsando Y completaré la instalacidn de los archivos adicionales. Luego, ha- ‘bra que eliminar los servicios que no vaya a usar. Ejecute el siguiente comando y vverd una salida como la siguiente: 4 ape Pepes pppcecont pep cppcontsc Reading Package ‘iscs--. bone Building Bopensency ‘ree... Bone Package poncin-en ie not eealled, go not renoved ‘Nie following packages Will be REMOVED) lpr nfa-comnon pidonta portnap PEP PRESORTIG pppDe ppoECont > wpytaded, 0 nevly installed, @ co remove and 0 not vparaded After wopaeking sash aiak epsce will be froed Do you vane to continue? (Yim (Roading datoiace -.. 22025 flea and dlvsctovies curvently inazalled.) Stopping printer epootar: Ipa enoving, portnap Scoping poremap dasnon: portnap. Renewing pepeontig We renore pe nte-comon portmap pident poncia-c \ Nota: Asegurese de revisar los comandes que introduzca, Sicomete un error, Debian le indicara que no puede encontrar el archivo en cuestin. En este ‘caso, simplemente reintroduzca ap ~gee, especificando solo el nombre del ppaquete, Desle que haga cambios en el paquete dela hase de datos, necesita, Eambiar los seripts que se ejecutam cudndo se arranca, Use los siguientes ‘comanidos para modifier los scripts de inicio on stareup links for /ese/intt a/exta Ahora necesita reiniciar insta, que es el proceso servidor para los servicios cestandares de Internet, inetd normalmente se lanza al arranear, pero como ha 36. ando un servidor Linux multifluncién cambiado los servicios del sistema, necesita reiniciarlo para que pueda descubrir los nuevos servicios del archivo de configuracion, Et comando inetd acepta un pardimetro que apunta al archivo de configuraci6n listando los servicios que ofrece. Pero si no se proporciona un parametso por linea de comandos, inet lee la informacion de configuracién del archivo /etc/ inetd .cong, que sirve para nues- tros propositos. EI comando de actualizacion de inetd almacené nuestros cam bios en este archivo. Para reiniciar inetd usando el archivo de configuracién por defecto, introduzca: # fetc/snita/ineta vetoad ‘Vera cl siguiente mensaje en su consola: Reloading internet eupe> Configurando cuotas El servidor Web Apache offece a Linux la posiblidad de ofrecer alojamiento, virtual, ¢s decir, su servidor puede alojar varios sitios Web con nombres de domi- rio que difieren det nombre del servidor fisico. En el archivo de eonfiguracisn det servidor Web, puede definir diferentes dominios usando ckéusulas de alojamiento Virtual. Por ejemplo, incluso aunque el dominio usado en este libro es central - soft .arg, podrlamos tener notheranagic. con, wildbilis. info uotre do- rminio que registremos y usemos con la misma direcciOn IP. Cubriremos este concepto con detalle mis adelante. Por ahora, s6lo piense en la direccién IP como cl namero de telefono de una casa donde viven diferentes personas. Cuando el navegador accede al puerto 80, llega hasta el dominio que usted ha configurado, Linux ofrece medios para gestionar el uso del disco para multiples dominios gra- cas a una facilidad lamada cuotas, Originalmente, Unix ofrecia cuotas para las cuentas de usuario para que no ocuparan demasiado espacio en el servidor. Por cjemplo, si tuvicra 50 usuarios compartiendo espacio en disco en un servidor de archivos, sin un sistema de cuotas, un usuario podria llenar el disco, provocando {que las aplicaciones de todos los usuarios no pudieran guardar mas datos. 1a facilidad para las cuotas obliga a los usuarios a mantenerse dentro de los mites de consumo marcados, evitando la posibilidad de que consuman espacio ilimitado en disco, El sistema leva en cuenta la cuota por usuario y por sistema de archivos. Si tiene ms de un sistema de archivos donde Jos usuarios pueden crear archivos, configure la faciidad para cada sistema de archivos de manera separada, Puede usar el mismo sistema de cuota para limitar el espacio reservado para ‘un dominio de su host. Varias herramientas le permiten administrar y automa- tizar la politica de cuotas de su sistema. En esta parte de la configuracion del Contigurando un servidor Linux muhifuncién 37 servidor, aBadiré una facilidad para cuotas que podra usarse después. Primero, instala los paquetes de cuotas usando apt-get # apt-get inatart gusta quotatool Le aparecerd una pregunta como esta: Boapie this option if you want the wernquots utility fe be ran daily, Send daily seainders to users over quote? Aqui debe escoger «tio» Debian instalara y configuraré los dos paquetes, pero usted tendra que editar /ete/ fstab para activar las cuotas en los sistemas de archivos que desee, Debi- do a que nuestro sistema tiene una tinica particion para todos los archivos de usuario, puede afadir las opciones usrquota y grpquota a la particion con el punto de montaje / 4 ctitesysten ‘Teclee /q o quit para salir. ‘Ya que el servidor MySQL. se esta elecutando, puede ejecutar netstat tap y veralgo como esto. ep 0 6 Locathoot.tecatdocuyoqi *:* LISTEN 2449/uyegia MySQL es accesible desde Focahost (127.0.0.1) en el puerto 3306. Sino ve esta linea, edite /etc/nyeql/my -cng (el archivo de configuracién que el cliente y el servidor comprucban para ebtener los parametros) y afiada un simbolo # para comentar la linea skip-networking: fekip-netnerking Si quiere que MySQJ. eseuche en todas las direcciones IP disponibles, edite / eto/mysal/my ent y comente ta Linea bind-adldress = 127.0.0.1 Configurando un servidor Linux multifuncion 43 Siha editado /etc/mysgi /ny. ens, reinicie MySQL usando este eomando: # Jete/inte.a/aysal restare Esta seccién no ha cubierto todas las funciones de las bases de datos que los desarrolladores esperan de usted, MySQ1.esté ahora configurado para gjecutarse fn su servidor, no obstante, esto ¢s suficiente para que pueda dar los siguientes pasos, Haremos més cosas con MySQJ, en proximos capitutos. Configurando el correo de manera segura con Postfix, POP3 e IMAP in esta secidn,afadiremos agentes de transporte y de entregade correo clee~ tronice c implemeataremos un ligero control sobre cl entorne de lon sistemas Demostraremos como autentificar a los wstarins de un sistema de correo elec tronico y prevenir el ceso fraudulent aspects del correo, Durante mas de 25 afiosSeraimail ha servido como el MTA primario de Internet. Macha aplca siomesescritas para Linux esperan gui Sendmail sc estécjecutand en e servidor [A pesar de que fe escrito antes de que Internet seabriera al pailico, Sendmail tiene muchos problemas de seguridad que se listan en la Hista Common Vulnerabilities and Exposures (CVE) alojada en atcp:/ ove mitre ors, -Afortunalamiente, otvos MA han emengido para ocupar ef garde Sendmail I principal problema de estos MTA es que Tas aplicaciones esperan qu sea Senidmail el que estd presente ene servidor Linux. Para solucionar esto, algunos MIA como Postfix o Exim deben ser capaces de hacer eecr alas aplicaciones que tlfos som Sendmail, Som sustituciones de andar por casa y pucden hacer que el sistema seejcute en modo Sendmail Postfix es nuestro sustituto preferido para Sendmail. Rostfix es mas rapido aque Sendmail tiene wna arquitectura mas segura y modular y ofrece michas fuanciones requeridas por un proveedor de grandes volimenes de correo. Postfix hho porta protocolos obsoltos, sino que usa et Protocolo Simple de Transporte de Correo (SMTP), y es cl que Hene ef menor niimero de incidencta en la lista (CVE. Por todas estas razomes, usaremtos Postfix en lugar de Sendmail como MTA correo electronico seguro involuera mantencefacra del servidor a todos los usuarios sin atorizackim (por fo que no pueden usario para enviar correo and him) asegusindose de que nadie puede suplantar a los ustarioslegitimos y protegiendo el contenido de cada correo reeibido o despachado Una seguridad débil hace mas facil que los impostores suplanten ustarios Para proteger la autentifiacion, instalaremos con Postfix la Transport Layer Security (1), un protocolo mejor que el conocido Secure Sockets Layer (SSL). Est0 “4 Configurando un servidor Linux multifuneién evita enviar contrasefas en texto claro desde un cliente de correo electronica a tun servidor. ‘También queremos que los usuarios se autentifiquen y accedan al servidor de correo. Para conseguirlo, emplearemos el Simple Authentication Security Layer {SASL}. Esto crea una extension (ESMTP) que permite a un cliente SMTP autenti- fear el servi Instalar los paquctes es necesario para Postfix y los otros componentes de correo, introduzca: 4 aptigat dnetall pooteix pasttix-tte Lib Libsacl2-aodulee ipopd-es2 uw inapa-ee) 212 sarl2-bia \ A medida que Debian instale los paquetes, presentard algunas pantallas que le preguntaran algunas cuestiones. Cuando vea la pantalla de configuracion de ipopd mostrada en la figura 2.1, seleecione pop3 y pop3s. Figura 2.1, Pantalla de configuracién de correo de Debian. Luego, vera una pantalla parecida a la de figura 2.2, donde deberia seleccio- nar para conseguir flexibilidad a la hora de enrutar los puertos en caso de Jo que necesite despues. Los puertos por defecto trabajan aqui porque usan TIS y el demonto SASL. La figura 2.3 ¢s informativa; el instalador Debian esta indicando qué opcio- ‘nes tiene para la configuravién de correo. Haga clic en OK para pasar ala panta~ Ila de la figura 2.4, que le permite escoyer una opcién. Para nuestro propésito, ‘escogeremos Internet Site, porque usaremos SMTP para todo el trafico, tanto para, la LAN comp para Internet. Debian ofrecerd el tipo de archivo de configuracion Configurando un servidor Linux multifuncion 45 {que mejor se ajuste a nuestras necesidads. Mas tarde podremos aftadir esto a la configuiracién por defceta, Figura 2.2. Dejando los puertos por defecto para el correo. Figuea 2.5. Opciones de configuracion Postfi: Cuanclo configure Postfix para ejecutar el correo, funncionaré como un agente de transferencia de correo estandar. No escoja la opcién de la figura 2.4 para usar tro servidor de correo como smarthost. En otras palabras, su sistema sera la autoridad de correo de su dominio. Si ha usado otro servidor (un portal popular 0 un ISP) para enviar y recibir correo en el pasado, su servidor realizard estas tareas ahora, Lugo, en la pantalla mostrada en la figura 2.5, respondanono, Postfix crearé Su propio archivo de alias. 46. Configurando un servcor Linux multtuncion Figura 2.4, Selecionando el sitio de internet desde el ment de configuracion. Figura 2.5, Open para usar una cuenta alia existent, Enllas figuras 2.6 y 2.7, el configurador Postfix quiere saber para quign acepta, ¥y despacha el correo. El nombre de dominio ¢s también el "nombre de correo" Postfix usard este nombre para verificar ef correo ditigido al servidor. Cuando al- cance las pantallas mostradas en las figuras 2.6 y 2.7, tendrén valores por defecto cen las cajas azules de texto, Puede aceptar la figura 2.6 tal y como le mostramos. "Nota: cantralsoft org e el nombre de dominio que usamos en este bro, asegtirese de sustiturle por su nombre de dominto Ene figura 2.7, notard que hay dos comas después del nombre localhost . centralsoft .org. Elimine la segunda coma. Ena figura 2.8, el configurador de Postfix necesita informacion sobre la actua- Jizacién sinerona. Cubriremos la administracion de servidores de correo con gran detalle mis adelante. Por ahora, responda ala pregunta y siga avanzando. ‘Configurando un servidor Linux mulifuncin___ AZ Figura 2.6, Comprobando el nombre de dominio para Pastis. Figura 2.7. Lista interna de dominios usnda en Post. Después de que Debian acabe la instalacién y vea que la consola vuelve a estar disponible, necesitass poner a trabajar juntos varios componentes de correo, Esto significa que deberd escribir entradas en el archivo de configuracién Postfix y ‘generar certificados y claves de encriptacion, Le advertimos sobre esta parte al principio del capitulo. Algunos de estos co- mandlos no tend sentido para usted, Pero no se preocupe, le verd ol sentido cuan- do uelva la vista atras despues de haber completado las tareas de esta seccién. Figura 2.8, Rechazando actualizaciones sincronas. 48 Configurando un servcor Linux multifuncién El comando postconf reside en el directorio /uez/abin. Se usaré para escribir 1 valor de un parametro Postfix en el archivo de configuracién main. Una vez que Posftix se ha instalado y se ha configurado como un servicio Debian, necesitara indicarle a Postfix qué hacer con respeto a la autentificacién segura, Usa los siguientes comandos: # postcont -e ‘smtpd sasi_tocal_domain =! # postesnt fh anable = yee! oanonynous” pontoon ve ‘broke uth elienes = yes" # posteont isnt Festrictions = \ pereit rent, uthent srait mrnatworks, reject _unauth destination’ W pocteone -e vinee ta Estos comandos escriben texto en el archivo savpa..cont: ¥ ceno spwchsck method: agalautna’ 2s /ate/poat fix/uael/amtpa. cont # sono shoch Iiats plais login’ >> /ete/posttix/asel/emtps, cont Ahora cree un directorio para sus certificados SSI. y genere tanto los certifiea- ddos como las elaves de encriptacién: 4 meats /ate/ponttix/eet 4 ca /eve/poattsx/aal/ 4 Sponsal genres “dex! -rand /ete/nosta -out emtpd.key 2024 353 somi-randon bytes Loaded Generating ROA private key, 2024 bit long wodulue ola 65837" (exidoaa) stew pasa phrase Lor antpd. key Verifying ~ siter pass parage for ontps.key: Lugo, ejecute este comando para cambiar los permisos del archivo que von- tiene la clave OpenSSL. RSA: # crmod 600 antpa. oy Posteriormente, genere otra clave y un certificado y cambie las claves existen- tes por las recién generadas: f openssl req -new key amtpa.key cout satpd.cor You are bout to bo aoved to aiter ineommattcn That will be Sacceporated oat you are about to enter is what 19 called a Diatingutched rans There are quite 2 few folds but you can Leave some blank Por one colds there will be a dufaute Value, Tr you enter °.', the field will be eft Blas Configurando un servic counery awe (2 Letter code) [NC) State ce Province Name (Cuil ene). [seme-Statel Toceitty wane fog, city) 0 Gegasisstson Name’ leg, company) (Taternct Widgits Pty Lea) Srgantantionel Unit tame leg, section! (1+ web oamon name” (eg, YOUR name? tobe sont aith your certitieate Toqlest A challenge passeora U1 do opeional company nase (1 c80 Voponesl 1809 "reg —deye 3650 cin antpa.cer -eignkay antpd.tey -out \ setpancrt unjects/C-06/6t-Texas/L-Dallag/Owentralactt.otg/Daweo/Cistom Adeiotetn/ Seat ladrecston-adeleveinecenteslaott-oFg Gevelng Private key Rater bass phrase for sepa. Rey: al rae -in enepécbay out satpd.key unencrypted 1s phrase for seep. wilting Ron ey Nav -f entpdtey.unenerypted sated. key f opensel req cate 2x50 vertenstons ¥3_c8 -BeyOut cekey.pem -out \ acert-pen -daye 3650 Generating 2 2984 it REA private kay citing neu’ private key to” “eakey pen’ Enter Pen pace phease: Werltying © Enter PEN pass phrase You ore about to be asked to enter information shat will be incorporat into your certificate request What you are aboue to ener is whist ig called 9 Diotingutehod Kame There ase quite a fey tselda bur you can leave some blank Por sone tlelde there vill be a defaule value Country Meee (2 letter code) [Ab] State cr Frovinge Hane (full navel [Sone-statel Locality Kame (es, esty) Oroandention wane’ (eg, cospany) [Inverset Widyits Pty Leal Organizational Onit ane (eg, rection) (Conran Kamo (oq, YOUR mame) {) Bret addons tb ‘Nota: Existe un debate acerca desi al generar wn certificado se deberia pedir ‘Ono informacidn, Nosotros le recomendaras que intreduzea la informacion apropiada a sus circunstancias. 50 n servidor Linux maltiuncion Ahora necesita indicarle a Postfix sus claves y certficados, para ello use los jentes comandes posteont: » vm + postcone 4B posteont f ostcont -s “autp tis sete, etartels ofter = yee! f fostcont ) ey/nut 2061 + ven Sf stavtoatop-duemon --ceot {stat} =/aev/mull 342 then eeno vifaieal® mit Seto (DAME) alceady sunning. = sop) Coniigurando un sesvidor Linux multifuncion 33 cho -n Stopping #{oesc) + * SPunareetoplananas estoy ~oauiet —-pidtite se(PI0e008}* Stavean 9[anton) -reery 10" --aoxe 4(Q0ME) \ Sidewioa teat Oa coho "5 (te) -" wf start-etop-daonon --test S{START) +/dev/mula Zot; then eno "inst sunning) © eho “ieatted) restart |foree-reload! 20 stop Shee 30 atare » echo "sage: fate/init./(anHe} (eeare}mtep | reatazt] force. Feteaa)}" 262 Ahora inicie saslauthd: # fana/snit.s/eesiautne otart farting Gach mithensication Daevon+ changed ownership of ‘fwat/apooh pout ix/ver/sun/easlautha’ ro root sas saelavtha. Para ver si SMTP-AUTH y TLS funcionan correctamente, ejecute el siguiente comand: 4 seiner 1ocethoet 25 connected to localhost Jocaldomain, ecape character t=. ""1 220 corvert.contcalsctt org USMT Postfix |Debtan/CIv} Esto establece una conexion con Postfix, Ahora introduzca: 4 ante tocanbost: Si puede ver estas lineas: serveri:/ate/postfint telnst localhost 25 Trying 127.0.0.1 34 Configurando un servidor Linux multifuncion Connected to locallioet Lecaldonsin, 250 sever! contralce? org EOMI PoutSix (Bebian/Stt) su configuracién deberia funcionar y ya habré completado esta parte de la configuracion del correo, Puede teclear quit y pasar a la siguiente seccion, Haciendo funcionar Apache Como mencionamos anteriormente en este mismo capitulo, vamos a incluir lun servidor Web en nuestra configuraci6n inicial porque es importante aprender algunos aspectos biisicos de administracion de scrvidores, y porque el servicor puede servir de alojamiento para otras herramientas. Al final del capitulo, lo usaremos para ofrecer estadistieas Web generadas con Webalizer. En noviembre de 2006, Netcraft publieé un informe en el que se decia que el 60 por 100 de los sitios Web en internet usaban Apache. Esto lo convierte en el servidor mas usado de todos los otros servidores juntos. Apache esta bien integrado con la mayoria de las distribuciones Linux. En esta seccidn, seguiremos un patron familiar ¢ instalaremos y configuraremos Apache ejecutando el siguiente comando: 4 aptoget instal apache? apache2-dec Setting up ael-eecr td-0-10) Setting up apacne2-utlia |2.0.54-5) Setting up apacho2-comon (2.0.54-8) Setcing apache? to Listen ex port 80. 1 this is not desired, please edit Jetc/apachex/ports cont a9 desires. tote that the Fost dlssctive no longer Noduie ucerair ingtatledy zun fete/inte a/apache2 tores-relead to enable Starcing web server” Apache? Setting wp apaghe 12.0.84-5) Una vez que Debian acabe de instalar adecuadamente el seevidor apache httpd, ejecute lo siguiente: Configurando un servidor Linu multifuncion 55 4 apteget sneta12 2ibepachea-nod-phpt 1sbapache2-nod-peri2 \ pupt phpi-el! php4-comon papa-curl phps-dov phpé-demm=) \ 2api-ae phet-tmap shpt-Adap phpl-aosl papasahesh pRpa-nysqh \ Papt_odbe Bhpt-pear shpé-nelt cur! Litanne-perl samgeaagick Este comando captura y configura 48 archivos, por lo que tardara un rato. Una vez hecho, puede saltar al siguiente paso. Cambie la directive Directoryindex del archivo /etc/apache2 /apache2 .cont bésectoryThdex index.henl index. cgi index. pl index.php Lndex.xheal por bizectoeyindex index.eml Andovt htm ddex.ghtm) insex.ogt ind Sesex.phps tndex.p1 index xhemt php Lego, aftada stmbolos # tal y como se muestra, para comentar las siguientes lineas en e archivo /erc/mine. types SatpulcstLon snteoa- pe: fabplleation/-hespeplp> SSbplication/<-ntepd-pips-rrepeocecuea Stppuicorion/s-heepa pape ‘También necesitara comentar dos lineas més en /ete/apache2 /mode- enabled/php4 . con pndatype appiicstson/e-ntepe-pip php sphemt pps Ekdatype appiiestson/eatepa-pip-ource. pls Syisnoasie Después, asegirese de que las siguientes dos lineas estan presentes en el ar- chivo /ete/apache2/ports.. conf, ahddalas si es necesatio. _Ahora, tiene que activar algunos méxlulos Apache (SSL, rewrite y suexeei para fo que tendra que crear los siguientes enlaces simbdlicos en el sublirectorio mods- enabled: dan # in ca /ete/apachoz/mods # tn “a /ete/apachat /node: fan oa /ete/apeche? fod 36. Configurando un servidor Linux multfuncién Como vio al instalar otros provesos en secciones previas de este capitulo, ins- talar los modulos apropiados con apt-get inicia antomaticamente Apache en el sistema. Sin embargo, y debido a que ha hecho varios en la configuracion, nece- sitard reiniciar Apache para que los cambios surtan efecto sin tener que reiniciar el servidor. Introduzea este comando: 4 /etc/init.a/apachaz restart EI servidlor Web se reiniciaré y activard los nuevos médules, junto con los cambios de contigaracién, Aijadiendo servicios FTP con ProFTPD. Junto con el servidor httpd que muestra paginas Web en un navegador, nece- sitard implantar un servidor de trasferencia de archivos (FTP). Usaremos tuna herramienta de c6digo abierto llamada ProPTPD para este propésito porque es popular, segura y configurable El servidor FTP usa un archivo de configuracién principal, con dircctivas y grupos de directivas que cualquier administrador que haya usado alguna vez el servidor Apache comprender4. ProFTPD tiene archivos . £tpaccess de configh- racién por directorios, de manera andloga a los archivos . htaccess de Apache, que obligan a los usuarios a introducir sus ID de usuarios y sus contrasefias para acceder a los directorios individuales. ProFTPD le permite configurar multiples servidores FTP virtuales y servicios de FTP andnimos. No invoca ningun programa externo y se ejecuta como ustia- rio sin privilegios. Instale ProFTPD ejecutando este comando: 4 apt-get dnetati prottpd La figura 2.9 muestra la pantalla gue vers wna vez que Debian haya descar- gado y comience a instalar FroFTPD. Este puede ejecutatse bien como aplicaciin ‘tutsnoma o bien como un servicio desde inetd. Ror razones de segura, eject taremos ProF PD en modo auténomo, Posteriormente, afiada las siguientes lineas al archivo /ete/proftpa .cont: Servectdeat on *F5" Server ready. Ahora, al igual que hemos hecho con los ottos procesos, reinicie ProTPD. usando este comando: # /etc/init.a/prottpd rentart Configurando un servidor Linux multifuncién 87 Figura 2.9. Pantalla de configuracion Debian para ProF¥?D. Recopilando las estadisticas Web con Webalizer ‘Webalizer crea informes estadisticos a partir de los archivos del servidor Web. Puede usarlo con un navegador Web estandar y produce informes detallados y ficilmente configurables en formato HTML. El proyecto Debian incluye Webalizer en suis repositorios estables, por lo que puede instalarlo con este comand 4 apt-get snotall webattzer Durante la instalacién, necesitard verificar e1 directorio de instalacion (/var/ ‘was/ebalizer}, clnombre que se usaré para los titulos de los informes estadis— ticos (podiria especificar un nombre de dominio, por ejemplo) y la localizacion del archivo log del servidor Web (que ¢n su sistema esta en /var/log/apache/ accass. 109.1): vinich dixectory enould sebaliger put the output in? (Peas /wne/webeliver eeu . Osage Starsatice for agrvert-centraisore.cra hot in the flename of the iotated webserver Loy? y/apache/access.109.% Sincronizando el reloj del sistema Los relojes de los ordenadores tienden a desviarse. Por tanto, existe una tarea basica de configuracién que conecta su sistema con un servidor Network Time Protocol (NTP) que mantendrd la hora correcta, 58 Configurando un servidor Linux multifuncién 7 Para sincronizar su sistema con un servidor NTP, aflada las siguientes lineas a {var/epool /cron/crontabs/ root: 03)8,35,21 + + /use/abin/sdace 129.2.236.91 | logaer -t oF Si el archivo ne existe, puede crearlo con el comando: 4 touch /ver/apoei/eren/erontabe/z00t La direccion IP 128.2.136.71 pertenece al servidor de tiempo de la Universi dad de Carnegie Mellon. Puede usar un tiempo diferente silo desea. ‘Modifique los permisos en el archivo crontab ejecutando: 4 ctmod 600 /var/spool/cren/eventaba/#oot y reinicie l servicio cron mediante: # ferc/ante ajoxon vantant Instalando los diferentes médulos Perl requeridos por SpamAssassin Muchas herramientas dependen del lenguajc de programacién Perl w ofrecen una interfaz Perl que permite personalizarlas (aunque otros lenguajes estan ga~ nando adictos en tos mundos del software libre y de Unix), SpamAssassin es una herramienta critica para aciministradores de correo (¢ incluso usuarios de co- reo), es un programa que usaremos en este libro y esta implementande en Pet ‘Como administrador del sistema, incluso aunque no quiera programar en Perl, ‘deberia ser capaz de descargar médulos Mes] del repositorio mas popular y seg ro, el Comprehensive Perl Archive Network (CPAN), Para dacle una ligera idea de cémo instalar médulos Perl, afiadiremos algunos ‘usando la consola CPAN de Perl. Que es un entorne para buscar archivos ¢ mnsta- lar médulos Entre en la Iinea de comandos como root y ejecute el siguiente comando para ‘entrar en la consola CPAN de Petl: servert:/none/adnin# pee] -MCPAN -e ohel2 (ete/peri /cPaNy Cantigrps instal seed Responda a todas las preguntas presionando la tecla Intro para aceptar los valores por defecto. Luego ejecute los siguientes comandos para instalar los mé- dutos que usaremos en el proximo capitulo’ Configurando un servidor Linux multfuncion 39 > tasted se 3 install met Y con respeto a activar los test, responda no Si un médulo ya existiera en f sistema, verd un mensaje como HTML: Parse se ha actual izado. Cuando un médulo se instale con Exito, verd algo como / uar/bin/make install ~ OK. Una vez. que esté hecho, simplemente pulse g para abandonar Perl y volver a Ja consola del sistema, Qué es fo préximo Ahora que ya ha completado las tareas asociadas a la configuracidn det ser dor, ahora podra empezar a usarlo en modo de produccion, Necesitaré configu~ rar los servicios de DNS y notificar al registrador donde ha configurado su dominio (esto sera objeto de estudio en el siguiente capitulo). Una vez que la configura cién DNS esté acabada, puede instalar una aplicacion basada en Web {nosotros "usaremios ISPConfig) y comenzar a explorar cémo funcionan las aplicaciones Web. Capitulo 3 El sistema de nombres de dominio. Este capitulo le muestra como construir un Sistema de Nombres de Dominio. (DNS) usando BIND. Cuando acabe este capitulo, deberfa saber instalar, configu rar, mantener y resolver las incidencias de cualquier dominio que registee. Em- pezaremos con una introducei6n a DNS, la cual se podra saltar para ira la seccion de instalacion y eonfiguracién paso por paso. Si le surgen problemas, siempre puede volver atras y lero revisar ef material iniial Aspectos basicos de DNS Si busca un poco acerca de DNS en Internet, podra comprobar que DNS es la base de datos mas grande de! mundo, Aunque comparéndola con otros sistemas gestores de bases de datos como Oracle o MySQL. es un poco diferente. De hecho, DNS ¢s el directorio digital distribuido mas grande del mundo. Al igual que un directorio telefénico que se usa para asociar nombres con niimeros, DNS asocia la direecion IP con el nombre de los servidores conectados a Internet, que abarcan, desde pequefios sitios Web hasta granjas de servidores como Google 0 Amazon. ‘Al igual que las bibliotecas publicas tienen una coleccion de guias telefonicas clasifieadas por estados, DNS separa los dominios en categorfas. La coleecién de categorias reside en lo que se lama el directorio raiz. Esta coleccion esta divida en. dominios de alto nivel (TLD), de manera similar a como la colecciin de gatas telefénicas esta dividida en estado. En lugar de buscar un ndimero de telefono con, cl cédigo de area de Nueva York, DNS husea los nombres segiin el sufijo edu, ‘org, .com, -net, mil, .de, ff, ete. Los dominios de cada TLD apuntan a la direc” ion que puede usar para comunicarse con el servidor, 62 H sistema de nombres de dominio ELDNS (que originalmente se defini6 en el RFC 882 en 1983 y luego se reviso ‘como RFC 1034 y 1035) introdujo varias ideas para gestionar el mapeo de los ‘nombres comunes de Internet a direcciones IPS. El sistema distribuye los datos y los nombres de los equipos de manera jerarquica en un espacio de nombres de dominio. Cada dominio se parece a una rama de un drbol y cada rama contiene a ‘su vez, sub-ramas. Los programas llamados servidores de nombres ofrecen infor macion sobre las partes del drbol y otros programas llamados resolvers piden informacion a los servidores de nombres de parte de los programas clientes. Los esquemas de nombres jerairquicos como DNS evitan la duplicae datos. Cada dominio es tinieo, y puede tener tantos servideres como quiera para su dominio, simplemente debe aNadir un prefjo a los equipos del dominio. Un sitio que controle centralsoft .ors, por cjemplo, puede tener equipos que se lamen serverl.centralsoft.org, 1dap.centralsoft .org y mail.centralsoft: org. inde los Ventajas de la administracién localizada de DNS Las organizaciones pequefias a menudo permiten a sus ISP administrar el DNS por ellos. Aunque configurar sus propios servidores tiene ventajas. Le da el con- trol total sobre qué sistemas alojan los servicios publics (por ejemplo, servicios Web o correo electrdnico), y poner DNS en su infraestructura permite mayor cescalabilidad: puede aftadir servidores segtin se vaya necesitando ¢ incluso ba- lancear la carga entre ellos, Esto se convierte en importante si posee y opera en. varios dominios activos o en servicios internos de autentificacin. Tambien tiene mas control a la bora de mantener los nombres actualizados. Resumtiendo, ¢s valioso controlar su propios DNS en cl panorama actual, en lugar de tener a alguien que lo haga, ‘Muchas empresas han migrado a la Web sus principales procesos de negocio, En lugar de reemplazar los sistemas existentes, prefleren oftecer sus aplicaciones & través de interfaces Web novedosas. Lo consiguen usando sistema basados en Web capaces de conectar sistemas heterogéncos, Los departamentos de teenologlas de Ja informacion usan servidores de aplicaciones como JBoss (propiedad de Red Hat) Webshpere de IBM o BEA WebLogic en segundo plano y ottos productos para la presentacion, En cada caso, DNS es una parte integrante de los sistemas hasados en Web, porque dichos sistemas usan servidores de ditectorios para comunicarse DNS también ocupa un lugar importante en dreas emergentes como Ia de los servicios Web y la Internet eecutable, donde Ia gente puede usar aplicaciones ofrecidas por Google, Yahoo y otras. Resolver las diecciones IP de forma répida y ‘segura es importante para ef éxito de estos productos en Internet y en empresas, Por tanto, considere la configuracién y la gestion de DNS como uno de los cono- cimientos més importantes de la administracion de sistemas que puede poseer. 63 Por qué podria necesitar un administrador de sistema gestionar sus propios: servidores DNS? Usted debe oftecer las direcciones de dos o mas servidores de su dominio al registrador (por lo menos dos, para garantizar que alguno de los dos funcione cuando alguien solicite un nombre). Debe gestionar los nombres de do- zinio de los sistemas que van a ser pablicos: los servidores Web, los servicores de correo, ee. A medida que aprenda DNS, se ira dando cuenta de que es muy intui- tivo, Muchas veces la jerga parece un idioma extranjero. No le encontrara el sen- tido hasta que no haya trabajado con ella durante un Uempo. Le ensefiaremos como Ievantar un servider DNS en un momento, Luego, revisaremos algunos aspectos y términos clave antes de sumergirnos en los archivos de configuracién, Introduccién a BIND La mayoria de los servidores DNS dle] mundo se ejecutan gracias al Sistema de Nombres de Dominio de Berkeley 0 BIND. BIND es un estandar en todas las ver- siones de Unix y de Linux. Puesto que los administradores necesitan usarlo, este capitulo cubrira BIND en detalle, ‘Nota: La alternativa mas popular para BIND ela suite djbdns. Funcion bien, la usan muchos servidores de nombres y es facil de configurar. Vease http: //c.yp.to/ajbang, neal para mas detalles, [No vamos a ofrecer una clase de historia sobre BIND, porque el lector proba- hlemente se dormiria, Solo sefialaremos una angedota historica y es que hay gente que todavia usa la antigua y obsoleta versién 4 de BIND. En este capitulo, tsaremos la nueva version 9, Si usa tin sistema con la sintaxis de los archivos de configuracion DNS distin- ta de fa que se muestra en este capitulo, probablemente cl sistema esté usando BIND 4. Como dijimos antes, las empresas odian reemplazar los sistemas que uncionan, deberfa ocurrir una catastrofe para que un departamento de tecnolo~ fas de la informacidn pudieen actualizar a BIND 8 0 9. Debido a que hay graves riesgos de seguridad para BIND 4, le recamendamos que se actualice (y ya de paso, salte a la version 8 coma minimo, no a la version 5, 6 6 7). Componentes de BIND BIND viene con tres componentes. EI primero es el servicio o demonio que jecula la parte servidora de DNS. Este componente se llama names. Es el encar- _gado de responder al eléfono cuando suena. se sistema de nombres de dominio EL segundo elemento de BIND ¢s la libreria resolutora. Este componente es el {que los navegadores Web, el software de correo y otras aplicaciones consultan cuando intentan encontrar un servidor por su. nombre DNS en la jungla de Internet Algunas personas piensan que un resolutor es un cliente dentro de BIND. Pero al contrario que el servidor, el cliente no ¢s un programa simple, sino que es una librerfa que enlaza con cada navegador Web, cliente de correo, etc. H eédigo del resolutor lanza consultas sobre los servidores DNS para intentar traducir nom bees en direcciones I ste elemento de BIND usa su propio directorio llamado resolv.conf que cst presente en cada ordenador. Es su tarea configurar ree0lv. conf. He aquut come se veria el archivo resolv. cons en los equipos del dominio centralacft ors search centralsoft-org ‘Como puede ver, el archivo de configuracién del resolutor BIND es simple. La primera linea busca un servidor en ef dominio local. Las otras Iineas indiean irecciones de servidores de nombres que ¢l administrador conoce, si una consul- ta falla, se procede con la siguiente linea. La tercera parte de BIND oftece herramientas tales como el comando dig para probar DNS, Vaya a la consola, teclee dig yahoo .com (u otro dominio conocido) y vea lo que ocurre. Analizaremos la herramienta dig y otras utilidades del kit mds tarde, Configurando un servidor DNS Para levantar nuestro servidor, vamos a hacer una instalacién de la dltima vversi6n estable de Debian y configurarla con el ntimevo minim de paquetes. Si todavia no tiene el disco de instalacin basada en red usado en el capitulo ante Flor, descérguelo de http: //ww.us.debian .org/CB/netinet. Realice una instalacion de red y asegtirese de indicar un nombre de dominio adecuade. Lucgo configure debian como se sugiere aqut. Cuando tenga la version actual de Debian GNU/Linux, encontrara diferencias entre ésta y la version que usamos para escribir las siguientes instruceiones. Los desarrolladores de Linux actuatizan sus distribuciones frecucntemente,y los pro- «esos de instalacién cambian debido a las actualizaciones, los parehes y las nic ‘vas versiones del kernel de Linux. Si encuentra diferencias en los procesos de instalacion que describimos, busque la esencia del asunto que explicamos y no tended problemas para instalar la tiltima version. Asistema de nombres de dominios Después de las etapas iniciales de la instalacion de Debian, vers una pantalla agrafica indicandole que escoge el tipo de instalacion que desea. La pantalla sera mnis 0 menos asf: Servidor de tmpreaton Base de datos SOL c No seleccione ninguna opcién, solo pulse Ta tecla Tab. Haga clic en el botén OK y cl instalador Debian comenzars a descargar y a instalar paquetes. Durante Ja descarga, vera una pantalla grafica. Esta pantalla le preguntard si quiere con figurar Exim (Exim-config), Elja Sin configuracién, Le preguntard "Seguro que desea dejar el sistema de correo sin configurar?™ Responda St Una ver que se haya completado la instalacion minima de Debian, deberfaelimi- nar algunos programas innecesarios que tiene alguna utiidad en una LAN pero 10 «en un servidor de correo de Internet: puede eliminarlos usando la utilidad apt-get: 4 apt-get renove pr nfa-conmon portmap pideatd poncia-cs pppoe \ Si ha decididdo usar SUSE 0 Fedora en lugar de Debian, puede eliminar estos paquetes con su método preferide, ‘Ahora, desactivemos algunos servicios y reiniclemos inetd Para instalar BIND en su servidor Debian, ejecute el comando: Debian descargara el archivo y lo configurard como un servicio de Internet. Podrd ver los siguientes mensajes en ta consola: setting up binge 19.2.4-2 ading group “bind” (loa) 66. El sistema de nombres dle dominio Basing new goer sbind’ (204) with eroup “bina” Hing domain mane service: named Usando un entomo chroot seguro Muchos administradores de seguridad recomiendan ejecutar BIND como sun usuario no root en un directorio aislado llamado entorno chroot. Esto protege contra oportunidades de explotar fallos que se detecten en Ia version de BIND, «que podrian desembocar en que un extraio atacard el demonio named y consi- guiera acceso al sistema, Incuso si se ataca named, un entorno chroot limita cualquier dafio que pueda hacerse a los servicios de nombres. Para poner BIND en un entorno chroot, necesita ercar un nuevo directorio donde el servicio puede ejecutarse sin estar expuesto a los otros procesos. Tam~ bien se ejecutaré como usuario sin privilegios y s6lo el root podré acceder al Uirectorio. El directorio contendra todos los archivos que BIND necesita, y pa- recerd ser un sistema de archivos totalmente completo después de ejecutar el comando chroot Primero pare el servicio ejecutando este comando: 4 Jete/inie.a/bings step Luego, edite el archive /etc/default /binas y ast el demonio se ejecutara ‘como un usuario sin privilegios,defina el entorno chroot como /vax:/1ib/aaned. ‘Cambie la linea: para que ponga: a bind -t /var/1ib/naned® Para ofrecer un entorno completo para la cjecucién de BIND, crce los directo- ios necesarios en /var /1i: exate

>NEADERc<- opcode: QUERY, status: NOBRROR, id: 4096 +1) Elages qe ed fa) QUERY: 1, ANGWER: 2, AUTHORITY: 0, ADDITIONAL: © ty SERVER: 61.169.263.706H53 La biisqueda directa y la inversa se complementan. Nuestro servidor primario std completo, gee sistera de nombres de dominio. Configurando el servidor de nombres secundario Ahora, levantaremos nuestro servidor de nombres secundario, server2. centralsoft .org, Actuara como copia de seguridad en caso. de que el servidor primario (server .centralsoft .oxg) falle, por lo que las personas todavia podran buscar centralactt.org y sus subdominios. Elarchivonamed. conf para server? .centraisoft .org es parecido al del servidor de nombres primario con algunas diferencias: options { DidcEiLe */var/run/bina/un/nemed. pias 11 query-soizce addres * port 53: sone "of ype inc Eile ab: root i pone "8.9, 127-in-adde.axpa* { ype acter Hie "db: local, h zone reentratecte.org* { file "eec.centratactt.org*, (sorge3,asacagr he 1a diferencia mas importante es Ia que se coment6 antes en este mismo cap tulo. El tipo esclavo, que se indica en Ia sentencia final indica que es una zona esclava. En la linea del archivo especificamos el nombre del archivo donde se debe guardar la zona esclava, y en la linea maestra especificamos la direccion IP del servidor de nombres primario, Esto es todo lo que tenemos que hacer para configurar el servidor de nombres secundario, Reinicie named en server2.centralaoft. org y liego deberfa encontrar el archivo /ete/bind/sec. central soft .org en su servider de nombres secun- dario. ‘Qué ha ocurrido? El servider de nombres secundario ha contactado con et servidor de nombres primario que Ie ha transferido la zona, Ahora, eada vez que actualice una zona en el servidor de nombres primario, asegcirese de que el niimero de serie se incrementa. En caso contrario, la zona actualizada no se transferira al servidor de nombres secundario. sistema de nombres de dominio 89 Herramientas BIND ‘Como hemos mencionado anteriormente en este capstulo, BIND se divide en. tres partes: el demonio named, la ibreria resoluta y algunas herramientas. Una herramienta que ya ha usado es dig, que los administradores usan para consultar los servidores de nombres DNS. dig hace busquedas DNS y muestra las respuestas devueltas por los servidores de nombres y las estadisticas sobre la consulta. La mayorfa de Jos administradores DNS usan dig para solucionar los proble- mas de DNS debido a su flexibilidad, facilidad de uso y claridad. Otras herra- imientas de biisqueda suclen fener menos funcionalidad. Otra alternativa podria, ser, no obstante, nslookup. Tambien echaremos un vistazo a rnde, una herr? mienta de administracion ttil que se ineluye con BIND, nslookup: nslookup trabaja de manera similar a dig pero estd obsoleto en Linux. Usarlo, requiere mas trabajo, pero deberia serle familiar porque Microsoft Windows atin Jo usa como herramienta primaria de busqueda, nslookup consulta servidores de nombre de dominio de Internet en dos mo- dos: interactivo y no interactivo. EL modo interactivo permite consultar los ser~ vidores de nombres para obtener informacién sobre varios equipos y dominios, 0 para imprimir una lista de equipos en un dominio. EI modo no interactive sim- plemente imprime el nombre y la informacion solicitada para un equipo o domi- no. Por ejemplo, podria ejecutar la siguiente béisqueda para encontrar informacion sobre el servidor Google Radeens: 306.299-02-30 En cl modo interactivo, nslookup ofrece una interfaz. donde se pueden gjecu- tar comandos. Por ejemplo: Desde la interfaz se pueden hacer varias basquedas simples, como la de una siveceion IP 0. E sistema de nombres de dominio. 42,156,285, 70.ip-addr orga mane = a4s1-79-269-158-42. 81 x08, Authoritative aneware can be found from 155,253, 70. n-acdy arpa nameoerver = net_swelt net. 250,255.70 {n-aade espe namese=ver © na? supe nee Puede ejecutar varios comandos, incluyendo Iserver (que usa su servidor local para hacer una btisqueda), server (que usa otro servidor para hacer una busque~ dda) y host. El comando Iserver produce una salida como la siguiente: Default servers google.com Baarooa: 4.233.167, 29859 Default server: google.com Auazeva: 6¢.233.189-95439 Elsubcomando host ofrece una utilidad simple para realizar bitsquedas. Cuando no se dan argumentos u opciones, host imprime un pequefio resumen en la linea ‘de comando de fos argumentos y las opciones. La gente lo usa principalmente para convertir nombres a direcciones IP y viceversa. He aqui un ¢jemplo: contralactt org has sddcees 29.26,256.42 Cuando pone host en modo completo con la opcién ~v, ofrece informacion similar al comando dig: > host -v centralsott.org Trying ‘eontraloott.org" SoHEADERC<- opcode: QUERY, statue: ROERROR, 4a. «3756 fy lager ge sd far QUERY! 1, NEWER. L) AUTVORIEY. 2, appoTzoMAR 0 24 goeerI0N secrzow. Joontralaote org mos fenteetestt org 29437 INNS servert.contraleott.o¢g. ELsistema de nombres de do a” Esta informacion viene de la direcci6n IP 68.94.156.1, puerto 53, qué es el servidor de nombres especiticado en el archivo asolv .coné del equipo que realizé la busqueda, Puede usar host de nuevo para averiquar el nombre de este servidor > nowt 6¢.94.356.1 Ziteeco4ccein-adde arpa doeasn name pointer dass1.ebegiobat net Introduzca exit para cerrar la sesi6n de bitsqueda interactiva. ‘También puede usar named para arreglar fallos en algunas situaciones. Por jemplo, para averiguar el naimero de version de su implementacién BIND, gje- cute el siguiente comando: ‘but lddaroelehopper: /bui14/buli4d/bind-8.4.6/ere/bin/mamed mdc BIND ofrece un comando ride como parte de la instalacién. rnde permite administrar named usando la linea de comandos. La ulilidad envia los comandos introducidos mediante linea de comandos al servidor que ¢jecuta server, que los pprocesa, El script de inicializacion de BIND 9 también usa mde. Para evitar que los usuarios no autorizados accedan a su servidor de nombres, ‘deberia usar una clave secreta para autentificar el acceso, Para que made ejecute Jos comandas en un servidor de nombres, incluso en un equipo local, ambos deben compartir la misma clave. Psta clave est almacenada en el archivo /ete/ bind/rndc.key, y tanto named como rndc leeran la clave desde esta localiza ion, Elarchivorndc. key deberia haberse creado durante la instalacion de BIND. EL comando rnde tiene la siguiente forma "endo rade-optione comand comand-option Ahora veremos algunas opciones de rnde comunes que podria necesitar (lea las paginas-manual de mde para ver la lista completa) + Kc key-file: Usa cl archivo con la clave especificado en lugar del archivo por defecto /ete/bind/rndc. key. +s server: Envia el comando al servidor espevificado en lugar de al servi- dor local + -V: Activa el modo de informacién completo, Aqai se muestran algunos de los comandos que rndc suele enviar a named (para ‘una lista completa de los comandos, simplemente introxhzea el comande rndc): a El sistema de nombres de dominio + halt: Para el servidor de nombres inmediatamente, + querylog: Activa o desactiva el log de todas las consultas hechas por los clientes a este servidor de nombres. Es un comanido de conmuttacion: con muta al estado activo si estaba desactivado y viceversa. + reload {zone}: Recarga los archivos de zona, pero mantiene todas las res- puestas que se almacenaron previamente en caché. Esto permite hacer ‘cambios en los archivos de zona y que tengan efectos en sus servidores maestros ¥ esclavos sin perder todos los nombres ya resueltos, Silos cam- bios afectan a una Gniea zona, puede indicar que solo se recargue esa + retransfer zone: Obliga a volver a transferit la zona especificada sin te- ner que comprobar cl rtimero de serie + stats: Vuetea las estadisticas actuales de named al archivonamed. etate. + status: Muestra el estado actual del servidor de nombres, + stop: Detiene el servidor, guardando y actualizando dinamicamente los datos antes de salir. Resolucién de problemas en BIND En este punto del capitulo, deberia tener un conocimiento funcional acerca de DNS. También deberia saber Como configurar sus archivos y cémo corregir pro- Dlemas de sintaxis, como errores tipograticos, En sta secci6n, cubriremos algunos aspectos basicos, problemas comunes que puede encontrar cuando BIND y DNS estan funcionando. No es un tratado ex haustivo, pero deberia ayudarle a ejecutar DNS en su servidor Lintx si tiene problemas para que su dominio resuelva nombres de equipos o haga transferen- cias de zona, ‘Nota: El disci de sistema de nombres de dominio cs robust, peroen ocd sones puerden aparecererrores. Siguendo estrctamente los patrones par «ear archivos de zona descrfos anteriormente en este capitulo, pede evitar problemas que estan fuera del aleance de est libro. No se puede conectar usando mde Para empezat, veamos un consejo sobre resolucién DNS, Anteriormente, vi- ‘mos cémo el comando status de rnde muestra el estado actual de ejectcion de ElLsistema de nombres de dominio 93 nuestro servidor DNS. Probemos a entrar en el sistema como root y ejecutar el comand: Sebug Levels © query logging 3 OFF Leomando rnde depende de una clave compartida en el archivo /ete/bind/ nde. key para que named acepte sus comandos, Problemas con este archivo pueden evitar que mdc envie los comandos. ‘Agus un ejemplo de que deberiamos ver si el archivo de la clave no existiera ‘pind/endc.cont nor /ate/bind/rnde,koy was found Podemos comprobar gue el archivo no existe con este comand: event P14 <1 /ate/bind/enda key Ser fete/bina/ende. key: No uch fle or aivectory Podemos solucionar el problema regenerando el archivo de la misma forma que lo hace la instalacion de BIND: servers ende-contgan -2 Bervesiiog Ia 1 /eca/sina/ rads. Key Thee ---- 1 toot bind 97 sl 19 23/38 /ete/bind/ende key Debido a que named no tiene esta nueva clave, debemos matar el proceso, named y reiniciarlo. Para ello, haremos uso del comando del sistema killall, que coge la ruta completa del nombre del programa named. Para detener named de manera correcta, ejecutaremos el comando killa dos veces en un intervalo de unos cuantos segundos, luego reiniciamos named: eerverti-f RiMlal2 -THRM /uer/sbin/aaned Secverlof killa] “KILL /uer/obin/aaned jaax/ediaysaneds no proceaa kttlee pecverl--4 /aee/inie-a/bing® stare ssvasisnf rade status 94 EL sistema de nombres de dominio debug Levens 0 fon querien in progress: 0 Server ie up ana running named se inicia pero no resuelve nombres Ahora, veamos algunas situaciones donde named no funciona correctamente. 1a localizacién incorrecta de los archivos BIND a menudo causa problemas, ¢5- pecialmente en entornos chroot donde los archivos BIND estan en un directorio islado, Si named se inicia bien pero no carga ningan archivo de zona, puede que no estén en el directorio aislado, Necesitara mirar el archivo /var/1og/aysloa para ver sieste es el caso, He aqut un ejemplo de log: pescting BIND 9.2.4 -u Bind -t /var/ltb/named Maing 2 CPU, Loading contiguration fron '/ete/bind/naned. cont’ Listening on #v4 interince Lo, 227°0.0. 1859 Listening on TPv4 snteeface eth, 70.253.258. 42452 command hanne? Listening oa 127"0.0. 1893, command chanced Listening on :14953 EL oy muestra que BIND se ha iniciado, pero no incluye lmeas indicando que los archivos de zona se han eargado. Ya que named se ¢jecuta en un entorne chroot en /var/1ib/named, buscaré todos los archivos relativos del directorio, Por lo que realmente esta leyendo el archivo /var/1ib/namea/ete/bind/ named. cont para la lista de zonas que debe cargar. Cada uno de estos archivos de zona debe colocarse en la ruta relativa del directorio /var/1ib/named, Otro error comin ¢s el fallo de una conexion que involucra a rnde al recargar o reiniciar el servidor de nombres: byete/init.d/ binds retoee Stopping naned: de! connect failed: conection refuoed tor) Starcing ameds 08) . Este tipo de error también puede suceder como resultado de ejecutar BIND en un entorno chroot, cuando uno 0 mas archivos no esta en el directorio aislado, Puede comprobar si los archivos estdn en las localizaciones correctas as: te -2 /ver/1sb/naned/ate/bind/aamed.cont Tevtele!"Y’voat pind 1611 2006-08-07 12523. /vat/Lib/naned/ate/bsna/ H sistema de nombres de dominio 95 4 As /vas/2in/naned/eve/bina/ Grd Ndbslocal~ nanedconf Local pri.contraisofe.org 5.127 detect” nawed.conf eptione Prk cpensourcetodsy. b.255 naned.conf pei.256.18,67 Sn-aade_arpatnde.key Seveopty aagad.cont pri, 19¢.10 67 Anaade expe gones.rfc2918 Si estos archivos no existen, el entorno chroot no est configurado adecuada ‘0 completamente. Vuelva al comienzo del capitulo y siga las instrucciones con cuidaclo para asegurarse de que cada archivo esta en su lugar. Una vez arreglado el problema, necesitars parar y reit iciar named para que ‘nde pueda conectar con el servidor. Use la secuencia le commandos killa deserita en la seccion previa yee so R61a21 THRO /aes/ebLe/naned 0h Rildall “RELL /eer/abie/named fat/ehin/nened: no. process Killed server. fh sabe/tnieca/oina® start Scareing donin some service: nemod, Ahora, compruebe el archivo /var/1o3/sysiog para ver silos archivos de zona se han cargado. Deberia ver algo como esto: carting sii 9.2.4 -u ind -¢ /var/itb/named "onding configuration tron «/ete/eing/aaned cont Listening on dbv4 interface 10, 227-0-0.2053, Hetening on dvd Lntertace etho, 74.254 .150.42053 Saad channel Taseenseg on 14989 fone a,gsi7-in-adde-arpa/sm Loaded serial 1 tone centealgott.org/MKs loaded xeriel 2005070502, iene supporteallorg/1: lasded serial 2006052708 running No se reconocen los equipos Et siguiente paso es comprobar el correct funcionamiento de DNS para ase- _gurarse de que las consultas acezea de sus equuipos se responden de manera adle- ‘cuada, Primero, necesita asegurarse de que el archivo /ete/resolv. cont lista sus servidores de nombres con las direcciones correctas. La mayorfa de los pro- _gramas usan las direcciones de este archivo para determinar qué servidorcs de nombres deben consultar y en qué orden: 86 H sistema de nombres de dominio servertsp cat /ete/reselv.cont E] comando host hace una simple busqueda DNS usando los servidores lista- dos en el archivo /etc/resolv.cont, Necesita el equipo a buscar como parimetro, y un segundo pardmetro optional hace que el eomando consulte a lun servidor de nombres especifico. He aqui dos ejemplos del comando hest y sus resultados: Giver -# heat wn cantealaott org server! centralsott org Una alternativa a host es el comando dig, que es més complejo pero ofrece respuestas mas detalladas. También tiene mas opciones que le posibilitan realizar consultas mas especificas. La sala de dig esta formateada segtin la sintaxis del archivo de zona. Esto es una ventaja, puesto que una vez que haya aprendido {qué formato tienen los registros en un archivo de zona, puede comprender faeil- ‘mente los detalles de estos registros en la salida de dig. dig también ofrece infor- ‘maci6n adicional sobre los resultados de la consulta en los comentarios que cempiezan por el cardcter " Echemos un vistazo al resultado del comandlo dig. Muchas lincas de la salida de dig son muy largas y no caben en el disefio de pagina de este libro. Ln el siguiente Histado, las hemos divide en lineas, Pod ver un resultado similar cuando Jo ejecute en su linea de comandos: servaris# dig wncentraiaofe.org & Fy global options? printom ° 3 epcode: QUERY, atarus: NOBRROR, 4: 1699 | El sistema de nombres de dominio 97 Sentaieote or actoo OS sexverd.centralsott.org Centaleote ora) Seo Tf SG gervesz ceneenlacte ong 2 query eter 1 eee 2) SuRvER: 70.299. 158.42453,70.259.256.42), La primera parte de la salida indica varios e6digos de estado y banderas, Pres~ te atencidn particular al valor del estado de la cuarta linea. Es este ejemplo, el valor es NOERROR, Cualquier otro valor india algan tipo de problema Los datos para la zona actual se dividen en cuatro secciones; + QUESTION: Esta seccién actualmente detalla una consulta, Se muestra como un comentario porque no es la informacion que deberfa estar en un archivo de zona, ‘+ ANSWER: Esta seccién contiene los resultados actuales solicitados por la consulta. Mostrar los registros espectficos solicitadas, si estan dispon bles, 0 todos los registros si se esta usando el tipo de consulta especial. + AUTHORITY: Esta sevcign identifica los servidores de nombres oficiales para Ja zona de la que viene la transferencia, + ADDITIONAL: Esta seecién ofrece las direcciones de algunos 0 de todos los nombres de las secciones anteriores, para evitar ef problema de hacer mas consultas para obtener esa informacion. Ahora, veamos lo que deberta hacer si se produjera un eror. El ejemplo anterior usaba un nombre de equipo valido para cl servidor Web. Esta vez lanzaremos una consulta para el nombre de un servidor FTP que no hayamos configurado en nues- tro archivo de zona: 2 eos DIG 9.2.4 cess Eep.cenbralaott.org a ScHGAdSRC-~ opcode. QUERY, etarus: NADONAEN, Sa 6592 Hy lage: qe aa £0 ay QOHRY: 1, ANSWER: 0, AUTBORITY: 1, ADDITIONAL: 0 28. sistema de nombres de dominio Seeteaisots.ora,S640o N08 gervert.cenratenttorg. ain ‘SERVER: 70,253. 156.42453 70.259. 288,421 serrecaid Poese en que el estado para la consulta es NADOMAIN, que en esencia significa “no existe tal nombre de dominio”. Si usted no tiene o introduce mal el nombre de ‘equipo en el archivo de zona, obtendira este error, Otro tipo de error que podria ver con dig es cuando un nombre de dominio: hha sido delegado a su servidor de nombres, pero el dominio no esta configurado en el servidor o falla al cargarse. Este error devuelve un estado dle SERVEAIL. Si ve este error para alguno de sus dominios, necesita afiadir el dominio a su ar~ chivo named..conf y asegurar que existe un archivo dle zona valido, Si el error ‘ocurre después de haber dado estos pasos, compruebe el archivo /var/103/ sysLog para ver los mensajes que indican por qué no se ha eargado la zona. Demostraremos el problema con un nombre de dominio que esta registrado, pero que no esti en uso: servoris-# dig Umbelp.org © e298 DIG 9.2.4 cess Lamelp org 5 ygispal options. printond ) ISPContig-2.2.1.tar ge" og muperh- west ai sourceforge net... 209.150.59.253 Saanaceing to superd-vee.souroeTorge. | 209.160.5, 253) 98, bength: 26,633,490 (25M) [app: jon/x-gzip} 2a Te,oub,cu9252-00K/e BTA 01432 Des omprima cl archivo con el comando: 4 ear avs encontige.tar.gt que crea un directorio llamado instat1_ispconfig. Muévase del directorio froot/ al install_ispconfig. Compruche el archivo dist .txt y_vea silos ‘valores son apropiades para su servidor Linux, Para Debian 3.1, los vatores de dist.txt serfan: spee-feve/snit.a 48 # debian. El archivo contiene 19 valores adicionales para Debian que no estan listados. aque menos que tenga cierta experiencia en administracion Linux y esté fami- Tiarizado con ISPConfig, respete los valores por defecto, Deberia funcionar siem- pre y cuando esté usando una de las dstribuciones que se listaban con anterioridad, Los administradores con conocimientos pueden cambiar los valores, aunque res- petanda el formato del archivo. Ahora inicie la instalacion. Ejecute el comando de instalacion . /satup desde Ja linea de comandos. El script de instalacion empezaré a compilar Apache con, PHP 5 que escucharé en el puerto 81, Primero, tendré que decidir qué idioma quiere: gerverdin/ingtali sepeontig # ./eetup Noy tnetattation eineo T6Pcontig-systomp. / Tnatatlation of a new Isreontig system. / 106, Un entosno inital Histo para Internet Installation a’ rsPconfig sur un nowveau syerene. olen Ste Inre Sprache (deutech/engi seen spanigch/Ezanaziuch/iealteniach/ Blederindisch/painiseh! Sehwediech) / Please chcose your Language (Gexman/Bnglich/spanish/ Prench/Teatian/ Duteh/Poliab/ewedish) + / Mecci de cholels votes langue (AlLemand/ Angiase/Bepagno/ Poanceie/italien/Mexiandale/Polonaie/Sudeis) ade at Sse 1 pL re abl: / Your Choice: / Yotxe Choss: Vera una pantalla de advertencia: wih tho systen inetallation, won aysten filer are replaced vhere fajuatnenea were Gade, This con lead co loge of encriea Sn nttpd.cont, maneé.cont aa Sendvail configuration bo you went £0 continue with che snataliarion? Gyfnl x El sistema mostrara una licencia, deberia leerla y aceptarla: bo you accapt: the Livenoa? y/nl y El programa de instalacion procedera a preguntarle cucstiones acerca de la configuracién del sistema (p. fj, por et MTA, servidor FTP, servidor Web, logs, cle...) debido a que tiene que tener instalados todos los paquetes en su sistema, deberia ser capaz de responder a todas las preguntas, Durante la primera parte de la instalacign, e seript le preguntara en qué modo quiere ¢jecutar la instalacién, Seleccione el modo experto: 2) expere En modo experto, tendra que elegir algunas opciones que ISPConfig asigna por defecto en el modo estandar. ‘en prompted for a detault airactory, you can chooks any directory you" like, pit make gure it ia of a partition with enough disk apace for the veo cites you plan to host. Purtieraore, if you watlt to configure quotan vith TsPconfig, make gure you enabled quotas for that. partition fis deocribed Sn Chopeer 2. 1 you want to enable suBKec for veb sites (Un entorng iniia isto para Internet 107 hat are allowed to sun Ferl/our scripts, the dfrectory should be within focunent root sa /vse/awe, wblle on SURE it's /erv/wew. If you're Snabling subse, the dacuaent soot ie a good choice for the aizectory in Wwotea eo por TePcont ia necking for program netpa fsse/abin/eeDs ‘The ayatax Je okt ep-foat. /howe/inne Yo this correct? (y/n} a en-Roots /wae/wew syntan of tho nepd-cont "Nota: subse es una mejora de seguridad en un servidor Web que necesita scripts CGI para poder sjecutarse por parte de cers usarios. En este punto fa instalaciin comienza compilando el servidor Apache que se ‘usard para presentar la interfaz Web ISPConfig en el puerto 81. Cuando el Apa- che para ISPConfig esté completo, vera un certificado SSL compilado. Fl progra~ ‘ma de instalaci6n le preguntard varios valores. Puede aceptar los valores por efecto o introducir los suyos propios. La pantalla seré similar a esta: sel, Cestificate Ganeration DEsLity (okcert shi Gopyeishe (el 1998-2000 Ralf S. sagelechell, ALI Sigh Genssating sxston certiéicate signed By oun Ch (CHSTOH She systen wll aveplay # License, which you should rena and then accept: Bo you accept the License? fy/el 7 he generated ¥.5e8 ceztificates can eantain cithor Sh oF Gh fazed ingredients, Select tke one you vant To Use: Signature Rigorithm (iR)sk oF (D)SA) “ating FEA private Fey For GR OEE BIC) Teaney] 2698765 somi-randon byres londes Generating Sa private key, 1024 bit long medulue ciap fy Gavstating ¥ 50) certificate signing aquest for G& [Ga.cer) You are about to be aaked to antar information that will be incorporated neo your sorsificate request seat you are anait to eicer ie Wiat i= called a Diatinguished Hane oF @ DW. There axe quite a fow Eleide but you cum deere some Blak Fos some fislds there will be 3 default va 108, [Un entarno inicial sto para Internet Af you enter *.7, ene field will be 1efe blank. 2 Eeamesy. ane (2 tetcer code) oh 2. State or grovince Hans (full nome) (enske Dovert) 3. Locansey Nase gj. city! (enake Town! 4. Gegansznesen wane (6g, company) (aneke O11, ita) 5. crganizationai Unit Mage (0.9: section) [Certificate authority) 2 common ane (eg, ck'nane} | (oneke O81 Ch) 30 fet Adaroee (2-9, nemeuPQOK) (casenaxeo!} dom) a cercitheare vanssity faye) Get ‘Hap T: Goveratlog W509 certificate for Ca signed by Teacl? fea.crtl Gertiticate versson (ar 2) Gl Zijeats en /60-Sonke Desext /Losuake Tow/ echorsey/ Ginsnake 0:1 Ch/emalladdvesaceatenakeot dow Getting Private key oust /eel cst /en.ctts /G-t/t-mvak Cenest/LnSrake Teen/O-Gnake O81, Led Guscertiticate authority/cNsGaake 011 Ch/omallnddrees-casenaeeni1 dea error 18 at 0 depth lockupraelt migned certificate ke of1, 199/o0-ceresesate BEEP, Goueiating Ren private bey for GHWVER (9020 BIE] TeeFver ney! 2600765 semi random bycee Loaded Generating RSA private key, 1024 bit long modulus SUEY (onteaeay ol "You aro about be sakes ro onter information chat will ue incorporates into your cevtstioare vaquert tiene you eve about fo enter io vit Se called a Distinguished Rime oF & DW. 2 Eounesy Rose @ letter code} 00) 2) Stave oe province tame (full mene) [Snake Deseret] 31 Lncalsey None (5, Services /arebrsebr> Normalmente, el equipo Web al que le dé soporte creard la estructura de dix reetorios y paginas Web. Probablemente necesite ofrecerles una base de datos tambien, pero esto se fratard en otro capitulo. For ahora, solo necesita saber como establecer un sitio Web y un dominio de Internet. Gestionando usuarios y correo electrénico Una de las tareas mas importantes a la hora de administrar sistemas Linux es Ja gestién de usuarios y sus cuentas. Puede usar el panel grafico ISPConfig. Una Bo. Un entomne inital listo para Internet vez que haya configurado los dominios, al seleccionar uno de ellos en la seccidn de gestion de ISP dela barra de tareas traera al primer plano la pantalla del sitio ‘que se mostr6 en la figura 4.9. Volvamos atréis para verla, Figura 4.13, Estructura de un sitio web simple El formulario tiene scis solapas. La segunda solapa de la izquierda se Hama Usuario y Correo. Desie esta solapa podra afiadir nuevos usuarios y gestionar los cexistentes. Cuando selecciona Nuevo, podré ver otro formulario como el de la figura 4.14. En este formulario, puede introducir los detalles de nucvos usuatios y esta- blecer los limites de almacenamiento, Un valor de -1 ofrece espacio ilimitado, pero puede gestionar las cuotas de la manera que prefiera, Bn la solapa Opciones Avanzadas (figura 4.15), puede usar una opeidn para permitir que el correo enviado a un usuario sea redirigido a otra direecién. En otras palabras, siel usuario tiene una direccion de correo altemativa que desea ‘usar, puede usar dicha opeién para enviarle el correo a esa cuenta, : Un entom inicial listo para internet 21 ise) cases cane Figure 4.14. Formularo de usuario. Figura 4.15. Opciones avanzadas de correo. ‘Oras opciones de esta solapa son’ ‘+ Mantener una copia: Al seleccionar esta opcién, sc mantendra una copia dle cualquier correo electrdnico que se reciba en el buz6n local del ustia~ rio. Esto ¢s muy util para el caso en que los mensajes que se reciban no hayan legado a la dircecidn de correo (debido al filtrado de spam u otro. problema} 122 Un entorng inital Isto para Internet + Aiasde cone: Sine quiere exponersu buon de core pbcamente os ‘tons onde ctr come nombre ene ta cer esto ofreciendo un de correo. & Puede he + Gogor ode ol corto: sts opin ree a xin especial tos os corres queschayan eviado cuentas usuarios nein La gente normale crib a inecone saa ecuenenent come eases sts recone son valdas, Pde feoger estou hase enna Senta Se uaroceada alee. + Escanear correo: Si gulereescanear el correo en busca de virus © céigo Javascript para servi, use sta opeion, + Autorsponder: ata opin fe pete va una eset atomtin a jos mensajes enviados aun usuario expeific, esto es il, por emp cuando el usuario va estar facta dela oficna por in peiodo de tempo, Con respecto a la solapa Fillo de Spar & Antivirus, mostrada en la Figura 4.16, puede consderar que estratega de spam usa Acivande e filtro de spam Para tna cuenta, puede espeiicar el comportamiento el ito Spanier: sewite sabect: ‘ee Figura Si selecciona la estrategia de aceptar spam, permite que el | permite que el spam entre en el >buz6n del usuario, siendo el agente de correo del usuario (MUA) el encargado de Un entorna inicial sto para Internet 123 filtrar el spam. Muchos administradores prefieren esta estrategia inicialmente, hasta que el usuario fenga una hase de datos de correo identificado como spam. Después, el usuario puede cambiarse al modo de descarte, donde el correo iden tificado como spam se horra del servidor. "Ahora echemos un vistazo a las opciones para el spam: + Acietlos de spam: El filtro de spam ejecuta un determinado nimero de pruebas sobre correos entrantes y asigna puntos a cada prueba. Sila suma, Ge los para estas prueba alcanza o supera el valor especificade por los “Aciertos de spam, el correo se elasifica como spam y se maneja de acuerdo con la estrategia definida por el usuario. + Reeser asunto: En cl modo aceptar, escoger esta opcidn significa que la Tinea que identifiea ef asunto de cada correo se identificara como spam aadienddo un prefijo identificativo (por defecto “*"SPAM"*). Esto perm te al ustiario ordenar el correo clectrénico segiin el asunto. Para permitiy que 1m usuario haga cambios en su cuenta de correo electréni- co por si mismo {incluso la contrasefa, el filtrado de spam y las opciones de spam), debe seleccionar la apcién Usuario de correo para dicho usuario en la s0~ Tapa Base del formulario del sitio (Véase la figura 4.10). Para hacer cambios, et ‘usuario de correo puede autentificarse en el sistema a través de la dieccion: http: //centralaoft .org:81/mailuser. sci Directorios publics, de usuario y de inicio Cada usuario de un dominio gestionado por ISPConfig tiene su propio direc torio de inicio en el directorio de usuarios, $i el acceso FTP est permitido, los usuarios aparecerdn en su ditectorio de inicio al autentiticarse via FIP. Cada di rectorio de inicio también contiene una carpeta Hamada Web a la que los usa rios pueden acceder visitando una URL del tipo: http: //www.centralsoft .org/ Maser http://www ,contralacft .org/users/user. 1a figura 4.17 muestra Ia estructura de un directorio de inicio para el usuario creado en central soft .o7g. Configuracién del cliente de correo electrénico En este punto, deberfa comprender los aspectos basicos a la hora de configu~ rar un sitio Web, crear un usuario y manejar el correo. Pero ademas, tendra que ser capaz de ayudar a sus usuarios a configurar sus clientes de correo electré1 Co, especificando los servidores de correo entrante y saliente. En nuestro sistema, ISPConfig usa server? .central soft .org tanto como servidor SMTP como servidor POP3/IMAP. a Un entomo iniciat listo para Internet a Figura 4.17. Vista de tipo navegador para et directorio de asuaria, En Jos clientes modernos dle correo electrnico, existe la opeién de clegir la capa de transporte seguro (TIS). Seleccione TLS cuando sea posible para contigu- rar el servidor de correo saliente. Debido a que la mayoria de Jos clientes de co rreo usan su ISP como servider SMTY, puede seleecionar TLS si su ISP To usa. Em Ja gran mayoria de casos, su ID de usuario y contrasefia viajan sobre las Kneas de su ISP en forma de texto plano. Para recibir correo, configure el servidor de entrada (nosotros usamos serverl, centralaoft.crg) y seleccione 0 POP3 o IMAB Use su nombre de sistema (por ejemplo: web1_adel stein) y especifique la dircccion de correo como elalias (por ejemplo: tomaentral soft .ar3) Saparece un mensaje de error como "-ERR Unknown AUTHORIZATION state ‘command! al intentar obtener el correo via POP3, probablemente se haya olvida~ do de activar la encriptacion SSL/TLS. Reconfigure su cliente de correo, active POP3-sobre-SSLe inténtelo de nuevo. Salvaguardando un servidor Web Linux Enel entorno actual de los negocios a veces ocurren cosas inesperadas. Algunas personas escanean direcciones IP en busca de fallos. Osan sofisticados diccionarios ‘de contrasefias para intentar conseguir acceso como root alos servidores, de mane- a que puedan usarlos como plataformas de spam, virus 0 gusanos. Las situaciones ‘que tos administradores de sistemas tienen que afrontar ticnen su raiz.en una com- Dinacién de factores con precision o certeza, Por lo tanto, losadministradores tienen ‘que aprender a adaptarse rpidamente alas nuevas {y hostles)situaciones, Hay dos formas de adaptarse, Primero, siesta Jo suficientemente concienciado, puede tomar precauciones. Nosotros llamamos a esto anticipacisn. Un entorno inci listo para internet 125 Otras veces, no obstante, tend que adaptarse a la situacién en funcion del ‘momento, sin tiempo para la preparacion, Esto requiere improvisacién. Para ser completamente adaptable, hay que ser capaz tanto de antieiparse como de im- provisar. jitorizador de demonios Ei papel de demonio m: No importa lo riguroso que sea a la hora de salvaguardar su servidor de Internet, por alguna extrafta combinacién de razones, su sistema podria fallar. En un mundo perfecto, podria monitorizar cada servicio y el sistema Je alertaria inmediatamente de! fallo, Pero, no vivimos en un mundo donde todas nuestras expectativas puedan verse curplidas. Imagine que aloja su servidor en un ISP a muchos kilémetros de su base de operaciones, Si este servidor se viene abajo, alguien podria Hamar al ISP y conse- _guir que el personal de servieio vuelva a dejarlo funcionando. La persona encar gada del soporte téenivo puede que no este disponible inmediatamente, por lo tanto tendra que esperar un tiempo con una aplicacién critica caida En una empresa grande, podria sentirse aislado si su servidor esta situado a. muchos kilémetros, Los operadores de los centros de datos no suelen conceder acceso a [a sala de ordenadores, ni siquiera a los administradores de sistemas Independientemente de su ubieacién, por lo que es muy importante que un ad= ministrador sepa gestionar sus sistemas remotamente, Un demonio monitorizador de cemonios (DMD) es uma utilidad que observa sus servicios y autométicamente intenta reiniciarlos cuando fallan. Si un servi- io falla, normalmente tiene que autentificarse en cl servidor y abrir una consola para ejecutar un comando como /ets/init.4/myaql restart. Un DMD puede, sin embargo, gjecutar este comando sin intervencién por su parte, Sil servicio se reinicia, fin det problema. Si no se reinicia satisfactoriamente, el DMD hara un determinado ntimero de intentos (por ejemplo 5) y luego contactara con usted via mensaje de texto, correo electrénico wt otra forma de comunicacién que pueda alertarle del problema, En este punto, tendra que inter venir para averiguar por queé el servicio ha fallado. EI DMD se ejecuta como otro servicio de su servidor: Tiene un archivo de configuracisn para elegir la opeidn, {que mejor se ajusta a sus necesidades. Puede hacer que se inicie manual 6 auto- éticamente. En la siguiente secci6n, configuraremos un DMD llamado monit, que tiene ‘una interfaz Web sencilla como se muestra en la figura 4.18. ijese bien en que hay cinco servicios bajo Vigilancia. En la figura 4.19, se puede ver claramente como el sistema gestiona cada proceso. En este €as0, esta mos mostrando sshd. 126 Un entorne inital isto para Internet QO0.000 osiim Monit Service Manager Figura 4.18. interfaz Web para moni clecutandose en centralsoft org Fijese que en la figura 4.19 el estado de sshd muestra que se est gjecutando y ue el sistema lo esta monitorizando. Em las tres lineas de la parte de debajo dela pantalla, puede ver las instrueciones que se harén si sshd fala 3E felled localhost :22 [SSH] with timeout 5 seconds then restart else Chen alere Esta politica simplemente reinicia un servicio que ha fallado y envia un men saje cuando se reiniia satisfactoriamente, Finalmente, monit ofrece cuatro botones en la parte de debajo de la pagina para la intervencién manual. Ahora, veamos c6mo funciona el sistema. Instalando y configurando monit Para poder instalar monit tiene dos opciones igual de validas. Puede utilizar tanto el gestor de paquetes del sistema como también descargar la distribucion {Un entorno incial listo para Internet 7 destle http://www. t4ldesiash .com/nonit. Si esta usando Debian, simple mente introduzea: cote es on a Rg Figura 4.19. nspeecionando sshe. Después de que haya instalado monit, edite /ete/moait /aonitre. archi vo creado durante la instalacion contiene montones de ejemplos y puede encon~ trar més ejemplos de configuracién en http://www. tildeslash.com/monit/ doc /exanpies..php. En nuestro caso, nosotros queremos: + Activar la interfaz. Web de monit en el Puerto 2812, + Monitorizar los servicios proftpd, sshd, mysql, apache y postfix. + Crear una interfaz Web basada en Secure Sockets Layer (https) donde po- der autentificarnos como admin, + Indicarle a monit que manda alertas de correo a root @lecalhest. ve Un entorno inicial Isto para Internet Nuestro archive de configuracién /ete/monit /monitre es! Set log file ayslog tacitity 1oq_daenon Set mulsorverloeathos® fet uail-formac( fron: moniteservert ,cencealaoft.org } Sat alert rostelocaihont fet htepa port 2612 ana cheek process protepa with pSafile /var/run/proftpa.pid store peagran = v/ena/anie.d/peotepa etare Step program = */ete/init.a/protepa atop’ Ge fatted port 21 protocol fep then 56 stop program */ete/inle.a/aan otop* it tailed pore 22 protocol sch then restart Start progran = "/ete/inte.a/nyeq. stat Stop program = "/ore/ssie-a/meq) sep! check proceed apache with plafile /ver/zun/epached pid "ete/snie.d/apache? stax) Failed host wiw,centralsoft org port, 80 protocol http ques! "/manit torent thea restart Af totalnen » 500 MB ror 5 cycles then restart EE children > 250 thon restart 2 loadavg(snin} greater than 10 for 8 cycles then stop process postiix with pidtile /var/spool/posttin/pid/naster.pid ‘group mail Start progran = "/ete/inic d/poectix stare Stop program = "/ate/iait.d/postiix seep" Ef failed poxt 25 protocol anup then restart EE 5 restarts within 5 cycles then timeout Las sentencias y las opciones se describen en la documentacién de monit en http: //wew. tildes! anh .con/monit /doc/manal -pkp. En la seccion de apache de la configuravidn de monit, verd la sentencia: Af fasted host wer centralaott.oxg port s@ protocol Rep sha Fequeat "/monit/eoeen* thes) restart [Un entorno inicial sto para tnternet 29 Esto significa que monit intenta conectarse con www.centralaoft-org en 1 Puerto 80 ¢ intenta acceder al archivo /nonit /toxen. Debido a que el doct~ mento raiz del sitio Web esta cn /vax/www/was. centralsoft .org/web, el nombre del archivo se extiende a /var/www/www.centralsoft .org/web/ onit /token. Si monit no se ejecuta, significa que Apache no se esta ejecutar do, por lo que monit intentara reiniciarlo, Ahora debemos erear el archivo var/www /waw.centralsoft .org/web/ monit/token y escribir una cadena de texto arbitraria: 4 akair /ver/inne/wne.centralsofe.org/eb/montt tone Mhatlor > /vet/aneu/wmr.centeaiaofe.cog/web/montt/token Puede seguir un procedimiento similar en su sistema. Luego, cree un directorio para albergar el archivo de certificado (/vax:/certs/ nonit.. pem) necesario para interfaz Web SSI. de monit: 4 mksts /ver/oerte ca /var/eeres Necesitard un archivo de configuraciin OpenSSL. para erear el certificado, EL resultado /var/certs/nonit, pem deberfa ser como este: ERDSICE © /opensel end Ureg } (req. an I ° counteyiiane = country same letter code) care of Province None (S011 ame) ocenteytane = tocaiity wore (es, ofty) orasnizationiane = Organization Rane (es, company? Orgesizetionel Unit Nae (ag, wctiou Commontane omon tare (FODE of your aoe) ‘comontane default + server onit.0 snalinddress 2 Shall address Tcert_ype | neCortiype » server Ahora cree el certificado: 4 openaea xaq -new -1509 -daya 265 -nodes -contig ./montt.onf -out \ Pvaz/oarea/aoait pen “bayou /var/oeree/nosit-pem 130 Un entomo inicial isto para Internet Wohmod 700 /var/certe/montt. pew Luego edite /ete/default/monit para activar et demonio mont, Cambie Martup a 1 y configure CHECK_INTERVALS con elintervalo en segundos que quicre que se compruebe el sistema, Nosotros hemos elegido 60, El archivo deberia que~ dar ast 4 Defauite for woait inivecript ¥ sourced by /ove/init.a/moutt 4 installed at /ete/dedault/menit by maintainer eeripte 4 Predeix Steen cateneedebian.org> 4 You most get this variable co for aonit co start startups to change the intervala which monit showld run uncomment f and change this variable Finalmente, inicie monit: # fere/inie.a/sonte start Ahora haga que su navegador apunte a https : //your_donain:2812/ (ase- girese de que el puerto 2812 no esta bloqueado por su cortafuegos) y autentifiquese con et usuario admin y la contrasena test. Deberfa ver la interfaz ‘Web de monit, tal y como se mostr6 anteriormente en la figura 4.18. Qué es lo proximo Empezamos levantando el servidor y configurdndolo de manera que pueda usarse como una plataforma para Internet. Hemos instalado un servidor basado en texto sin el sistema de X Windows (por razones de seguridad y de rendimmien- to) y luego hemos configurado interfaces basadas en Web que le permitan ges- tionar de manera segura y monitorizar sus servicios. En los restantes capitulos, vamos a profundizar nuestra exploraci6n del siste- ‘ma de administracion de Linux. En el capitulo siguiente, aprenderd a instalar software administrativo que no se instala automaticamente. Configuraremos la ‘mayoria de las aplicaciones Linux gue la gente usa cada dia en la empresa y en negocios de pequeiio y medio tamafo, Capitulo 5 Correo ste capitulo muestra cOmo levantar un servicio de correo electrénico para tun sitio de pequetio o medio tamano, Los elementos del servicio son: + El servidor Postfix como agente de transferencia de correo SMTP (MTA), ‘que acepta correo de otros usuarios e interactia con otros sitios a través de Internet para enviar el correo, + Servidores Post Office Protocol (POP) y el Protocolo interactive de aeceso al correo (IMAP) para entregar el corteo a sus usuarios. + La capa Simple Authentication anu! Security Layer (SASL) sieve para auten- tificar el corrco y evitar el spoofing, Configuraremos Postfix para usar el tradicional sistema de autentificacton basado en archivos, que pusde soportar miles de usuarios. Las grandes instala- ciones de correo pueden almacenar nombres de cuentas de correo y contraseias fen bases de datos relacionales o en dizectorios LDAP. Para ver un gemplo de un servidor de correo muy escalable basado en Postfix con autentifieacion LDAP vease Zimbra (nee: //wew. 2imbra con). Las soluciones de este capitulo intentan juntar diversos componentes para ha~ «cer un sistema de gestidn de correo eficiente, robusto y seguro, Hoy en dia, perso~ ‘nas como Wietse Verma (el inventor de Postfix} han conseguido reducir mucho 1a complejidad de configuracion de los sistemas de correo electronico. En lugar de ‘vérselas con complejas configuraciones de servidores de correo, los administrado- res de sistemas Linux tienen otros problemas mas importantes que resolver: + Como asegurar el correo, una forma de comunicacién que no fue disefia~ dla teniendo en cuenta la seguridad, ni siquiera contra los ataques de su- plantacion de identidad w otros ataques maliciosos. 132 Correo + Como proteger datos sensibles para la compania. + Como dar acceso a usuarios que estan Fuera de la red de la compa Aspectos claves del servicio de correo Los agentes de transferencia hacen la parte mas dura de la comunicacion en Internet, moviendo el correo de un sitio para otro en Internet. Para enviar un correo electrOnico, el remitente liga su sistema a un MTA, que luego usa SMTP para transferir el correo al MTA responsable de entregar dicho correo a su desti- natario, El destinatario tiene distintas formas de recuperar el correo descle un MTA, rninguna de ellas usa SMTO: puede autentificarse como usuario del sistema y cjecutar el MTA, indicarle al MTA una conexién directa (al igual que se le indica al ISP una linea telefonica) o a través de un tel en Internet desde un MTA rremoto. (Estamos ignorando otros métoxios como hacerlo desde una interfaz Web como Gmail o usando un teléfono mévil.) Independientemente del método que et receptor use, este recupera su correo a través de un agente de entrega de correo (MDA) como Courier IMAP EI MDA habia con el MTA para obtener el correo y fofrece un buzén para almacenar ef correo, El correo puede mostrarse al usuario a través de un agente de usuario de correo (MUA), como Outlook, Evolution © ‘Thunderbird. Los usuarios normalmente recuperan su correo usando 0 POPS 0 IMAP4 so- bre TCP/IP Casi todos los MUA moderns soportan tanto POP3 como IMAP4. Los MUA envian el correo pasiindoselo a una MTA y transfiriéndolo sobre SMT2 La mayoria de la gente mantiene listados de las diecciones de sus contactos cen su MUA, de modo que puedan buscar la direccién de correo de la gente. En ‘entornos empresariales, os contactos se suelen almacenar en servidores de direc torio LDAP Un montén de usuarios ignoran que pueden encontrar sus contactos en los sistemas LDAP Postfix, Sendmail y otros MTA Quiz se pregunte por qué hemos escogido Postfix como MTA en lugar de Sendmail, el servidor de correo para Internet original y que fue desarrollado a Principios de la década 1980 por Erie Allman en la Universidad de California Berkeley, Sendmail estuvo presente en Ja mayoria de las instalaciones de MTA en Internet, pero no estamos seguros de que esto siga siendo asf. Muchos sondeos indican que ta popularidad de Sendmail ha caide répidamente, hasta legar al 40 Cowen. 133, por 100 ate los servidores de Internet. Aunque los defensores de Sendmail defien- dlen que es flexible y escalable, muchos administradores de sistemas lo conside- ran extremadamente complejo y dificil de configurar y mantener. Sendmail se desarroll6 antes que aparecieran el spam y el software daiino, por lo tanto tiene algunas debilidades en cuanto a seguridad. Uno de los proble- mas mas serios de Sendmail es que, por defecto, permite que la pasarela quede abierta, es decis, que procesa cualquier correo originado por un extraito. Este problema de seguridad esta ilustrado en la figura 5.1. Figura 5.1. Aspectos de seguridad en um entorno bosti para el corre. Romitentes de correo no solicitado (UBE), también conocide como spammers. oremitentes de correo no deseado (ICE) son los responsables de ms del 50 por 100 del trafico de correo de Internet. Esto provoca que las colas de correo, los servidores DNS, la capacidad de procesamiento y de almacenamiento y las infraestructuras se resientan. Los UBE tienen una variedad dc técnicas que les permite esconder su identidad real, incluyendo la suplantacion de direcciones 1, la creavi6n de correo basura y su dispersion a través delos servidores SMTP. abiertos, Los MTA bien configurados aceptan correo saliente sélo para las direcciones que pertenecen a sus usuarios legitimos, esto esta normalmente limitado a una subred determinada, Pero, por defecto, Sendmail procesa el correo de cualquiera. $i usa Sendmail y no deshabilita esta opcion, los UBE pueden usar su MTA para ‘ocultar su origen, Su servidor de correo podria estar en listas negras para pasare- 134 Correo, las abiertas, lo que podria provocar que correo legitimo fuera tratado como spam. En teorla, puede tener problemas legates si failita la distribucion de correo basura La base de usuarios de Sendmail a menudo opera con versiones obsoletas, sin parchear y sin documentar, por lo que facilitan las cosas a los UBE. Los desa- rrolladores de Sendmail son conscientes del problema y trabajan duro para ha cerlo mas seguro, pero los mejores avances de seguridad se consiguen con cada version de pago del producto. Aaron Weiss aclara algunas dudas entre la version. gratuita y la version de pago de Sendmail en el articulo "The Fee vs. Free Divide" (heep://wws.serverwateh.com/tutorials/article. php/3580006): Para comercializar Sendmail y ofrecer productos de valor aiiadido que mejor ol desarrollo, se creé Sendmail Inc. Su producto estrella, Sendmail Switch esta basa do en Ja version libre de Sendmail. Se asienta en su nticeo ¢ incluye una consola ‘grafica de gestion, facilidades para la seguridad, soporte técnico, fillros de gestion ‘le contenidos fincluyendo defensas anti-spam y antivirus), soporte para SSL, SASL ¥y directorios LDAP y capacidades de auditoria, clustering y gestidn remota. Todo ello acompariado de un instalador grafico y asistentes para tareas. ‘Adem, el Sendmail Consortium (responsable de la -versién libre del MTA. Sendmail) esta patrocinado por Sendmail Inc, Ofrece médulos anti-spam, antivirus ¥ para la gestion remota del MTA. Lo siguiente es una descripeion del modelo de negocio de Sendmail inc (obtenida en http://www. sendmail .com/company): Sendmail ofrece diferentes soluciones empresariales para mensajeria segura entre las que se incluye correo electrénico, voz y mensajerta instantanea. Las soluciones Sendmail controlan el correo entrante, saliente interno. Sendmail es ‘una implementacién portable, que puede desplegarse sobre gran variedad de soft= ‘ware y aplicaciones. Los productos de Sendmail funcionan en las infraestructuras de correo heterogéneas como Exchange, Notes, Groupwise y otras soluciones de Posttix se diseio desde el principio como sustituto robusto y seguro para Sendmail. EI MTA por defecto para Debian es Exim 4, pero preferimos Postfix porque Exim tiene algunos problemas de escalabilidad. Carece de una cola cen- tral de gestién y capacidad de carga balanceada. Ademas, existen indicios de que los desarrolladores de la distribucion Debian van a convertir a Postfix en el MTA por defecto en un futuro cereano. Al mismo tiempo, ¢s facil migrar de Exim a Postfix, como veremos en la siguiente seccidn. El servidor SMTP de correo Postfix en Debian Para levantar nuestro servidor, vamos a hacer uso de una instalacion reciente ae Debian. Si elige otra distribucién, puede hacer lo mismo que lo que indicamos Yy conseguird los mismos resultados. Correo, tas, Paquetes de Debian relacionados con Postfix Use la tltima version estable de Debian y configdrela con el ndmero minimo de paquetes. Si todavia no tiene un disco de instalacién en red para Debian, des- cérguelo dehtep: / wew-us debian .org/Cb/net int. Después haga una ins- talacign de red y asegtirese de que proporciona un nombre de dominio correcto, LLuego, configure Debian como se sugiere en esta seccion. linstalador de Debian Ie conduce por un script estdndar antes de la configu- racion, siga la rutina de instalacion estandar hasta que tenga que elegir el tipo de Instalacion que desea. La pantalla que podré ver sera ast 1 Servidor do Inprosia ) Servidor Bes ) Servidor de correo ) Dave de datos al ) Selecesén manual de paqueces [No seleccione ninguna opci6n, no va a usar el servidor de correo por defector (Exim) puesto que en st lugar va a instalar Postfix, Solo presione el tabulador y haga clic en el boln OK. El instalador de Debian procederd a descargar y a insta~ Jar los paguetes. Durante las descargas, mostrara una o mas pantallas geaficas donde preguntaré si quiere configurar Exim (Exim-config). Elfja Sin configura- ‘i6n. Luego responda Si cuando le pregunte ZDe verdad que desea dejar el siste- ma de correo sin configurar?. El instalador de Debian continuaré descargando y configurando paquetes, ‘cuando Debian acabe su trabajo, vera una pantalla agrakeciendo el uso de Debian, En este punto deberia eliminar algunos programas innecesarios usando la utili- dad apt-get. Si decide usar otra distribucién, puede eliminar los paquetes usando ‘otros procedimientos, Bajo Debian, ejecute: 4 specget remove Ipr nts-comon portap pidentd pencia-ca pppoe \ Popeecont ppp Popcostig, Ahora, deshabilite algunos scripts de servicio: # wpaate-tnstd aytine 4H apance-snoea telnet W upasee-sace tine 4 upaace-snoes tanger 4 spantecinera peak 136 Correo y ahora reinicie el superservidor inetd # Jotc/ints.a/sneed relosd Instalando Postfix en Det EI siguiente comando instala los paquetes necesarios para ejecutar Postfix, Junto con la seguridad TLS y SASL que permite autentificar a los usuarios 4 apt-get inetait posttix posttix-dos posttix-tis Libsasi2 \ Cuando instala estos paguetes, Debian debe elegir entre instalar libldap2 al mismo tiempo, Libsasl2 ya deberia estar instalado en el sistema En este punto, la utilidad de instalacién de Debian empezaré a descargar y configurar varios archivos. Fijese en que le apareceré un didlogo durante el pro: ‘e¢s0 que empezars con las siguientes lincas: Luego, verd una pantalla con mensajes que empieza ast: En la parte de abajo de la pantalla encontrar una pregunta que nos interesa’ Incernet with snarthost Fija "Internet Site" incluso si planea sar Postfix para correo Toeal Luego, un didlogo de informacion le indicaré que el proceso de instalacion «std escribiendo el archive de configuracién de Postfix. Si ya tiene un servidor en produccidn usando Sendmail, ya tendra un archivo de alias. En este capitulo supondremos que ests empezando desde cero, por lo que introduciremos NONE en la siguiente pantalla, ‘tee user root (and any other wsore with a uid of 9) must have mail vedieected vie au aliae, or their sail may be delivered to /vat/nai/oobey Comreo 137 Mhle Le by dasign: mail is not delivered to extemut delivery agente as root Ie you altendy fave a /etc/aliases Elle, then yoo possibly need 2 aa Chie ancey, (F vill only add it At 1 am eceatiog a new /etc/eliazes:| Woot addrece should 1 ad3 to /etc/alianse, if T'czeate the file? ie stance La préxima pregunta durante la instalaci6n esta relacionada con FODN. Postfix necesita que el comando hostname devuelva un FODN comomait .centralsoft org. Pero por defecto, hostname en Debian s6lo devuelve mail. Para permitirle configurar el FODN, el script de instalacion ofrece el siguiente dialogo: ‘Your ‘wall nane’ Se tho homtnane portion of the address to be shown on Sutgoing neve and mail negeages IColloving the ugernane and @ 0190). ‘Pola name will be used by other prograne benidaa Postfix, it ahold be the Hingie, fuli dooain nave (Pole) from watch mail will appear to originate, mail. centralrott.org Responda

    para aceptar el valor por defecto que aparece en el cuadro de texto azul. I siguiente didlogo muestra los valores por defecto de los dominios de su servidir: Give a coma-separated List of domaine that thie machine shoud consider iteel! the final destination for. Tf this se 2 nai) domain Seher deetination to accept mai for? (blank for none) serverd.centralzost.org, locelbost -centralsoft.org, Localhose Ls dominios istados aparecerdin en su archivo de configuracién main .of La pregunta Final esté relacionada com los sistemas que tienen sistemas de archivos que no son un estandar: If eyscnvonous updates are forced, then mail 1s proceseed move siowly. aysten ceeshes at an inopportune tine, and you are not using a journaled Eliesyaten (euch ae ext) Debido a que casi todas las distribuciones usan el sistema de archivos ext3 por efecto, puede responder aqut. 138 Correo En este punto, la instalacién finaliza y eseribe el archivo de configuracién de Postfix. Los parémetros y los valores imprimidos no tendran sentido para usted por el momento, pero tendra que ser eapaz de encontrarlos en el archive de con- Figuracion y cambiarlos si fuera necesario, Configuracién basica de Postfix El siguiente archivo es un archivo con la configuracién minima de Postfix, / ete /postfix/nain.cf: pant. eerie TEE T ogconan SaeGblon = brim, town. tdomn, ecto Si estuviera configurando Postfix a mano, tendrfa que rellenar muchos de «estos valores manualmente. Por ello ¢s de apreciar el trabajo que ahorra el proce- so de instalacign de Debian, Postfix usa una sintaxis simple en la que cada linea consiste en un pardmetro {de configuracién segutido por un signo igual y un valor. Una vez. que el parametro est definido, las lineas posteriores cel archivo pueden referise al parsimetro siem- pre que tengan como prefijo el simbolo de! dolar: myerigia = $aydomain Este ejemplo asigna el valor entra eof .org tanto al pardmetro mydomain como a myorigi Un archivo basic de configuracion realiza reparto local Gnicamente. Fspera que haya receptores de correo que tengan cuentas y directorios locales en el ser~ vidor de correo. No necesita que el sistema afiada e} sufijo @ (que deberia cespecificarse cow el parsmetzo append, dot_mydomain). Esto es por lo que el pro- eso de instalacion dle Debian también pregunta por dominios, nombres de equi poy direccion de destino, El gestor de paquetes de Debian configura muchos pardimettos /etc/post#ix/ main.cf por usted. La tabla 5.1 muestra las lineas maestras. Una lista completa de parsmetros puede encontrarse en el sistema archivo de ejemplo /usy/shaze/ postfix/main.cf.dist. Coneo. 139 ‘tt 5.1. Pardmetros claves para fa configuracion de Postfix Parametro Explicacin emtpd_banner = Especifiea el texto que identifica este servidor Smyhostnane BSMIP cuando se est comunicando mediante SMTP Snail name (Debian/GNU) con otro servidor. El uso de texto como estan- arte es obligatorio segiin todas las especifica ciones SMTP, biff = no Diff es un pequefio proceso Postfix que puede notificar a los usuarios locales que tienen correo Nuevo, Sino tiene usuarios locales, doberia desactivarlo. Por defecto en Debian esta desactivado. append _dot_mydonain = no En unentorno como el nuestro, afiadir el nombre de dominio a una direccién de correo es tarea del MUA. Este valor significa que Postfix no afiade el sufijo @centralsoft.org fdelay_warning time = 4h Quite el comentario de esta linea para generar ‘mensajes del lipo "correo retrasaclo”. Nosotros rio activaremos esta opelin porque empezare- ‘mos con un olumen bajo de usuarios v no se cesperan retrasos. myhostnane = Especifique el nombre de equipo de internet server2 centralsoft org deste sistema de correo. Por defecto se sucle usar el nombre de dominio cualificado, Smyhostname se usa como valor por defect para otros muchos parametros de configuraci6n, Especifica el alias de la base de datos usada por cl agente local de entrega. Un alias es simplemente un nombre alternative que alguien usa en lugar del original. Por ejemplo, deberia especificar el alias admin. para root. Los papeles de estos dos pardmetros xo son importantes para comprender este capitulo, sélo tenga en cuenta que Postiix :mantiene una lista con todos los alias en un archivo simple y que estos parametros le indican al sistema dnde esta situado y cual es cl formato del archivo de datos usado. alias_naps = hash: /ete/aliases alias_databace hash: /etc/aliases 140. Conco Parametro jcacion ‘el dominio que aparecerd en los myorigin = mydonain mydest ination server? .centralsoft .org, localhost .centralsoft .org, Lovalnost relayhost = uynetworke = 127.0.0.0/6 mailbox_command = procnail -a "EXTENSION" albox size links = 0 recipient_delimiter = + inet_interfacea ~ all Especifi correos enviados. Especifica una lista de equipos y nombres de dominio, separados por comas o espacios en blanco, para los cuales este servidor aceptara specifica un equipo por defecto que este servidor usaré para devolver correo cuando no sepa localizar al receptor. Nosotros lo hemos digjados en blanco, confiando sélo en el parametro mynetworks, Especifica los equipos que este servidor no ‘considera spammers, Aqui, hemos espevifiea- do solamente nuestro equipo local. Eh su lugar, también puede especificar el parametro mynctworks style = clase donde Postfix deberia confiar en todos los clientes SMTP pertenecientes a la misma clase de red (A/B/C) ‘que la maquina local, No conte la clase entera ‘en un servidor de acceso telefénico, ya que ‘esto provocara que Postfix esté abierto para todas los proveedores de la red. Especifica el comanclo externo que se usa para entregar el correo en el buzén del usuario. Este comand se ejecuta cuando el receptor tenga definidas las variables de entorno HOME, SHELL y LOGNAME, Define una cuota para el correo almacenado por cada usuario. 0 desactiva la cuota, Especifica el separador usado entre los nom- bres de usuario y las extensiones de direccis ‘en una tabla de busqueda Especifica la interfaz de red (tarjeta de red) a través de la cual el sistema recibe el correo. Esto es muy til sélo sitiene mas de una tarjeta de Goro. at Puede que necesite algunas personalizaciones sencillas pero tiles, he aqut algunas de elas: + Normalmente, mydestination lista los dominios que aparecen en las di- reeciones de correo de los usuarios locales, es decir, los dominios para los cuales Postfix acepla y procesa el correo. Por defecto, Postfix acepta correo destinado a Smyhostname y a localhost. Smydomain, e] equipo en el que Postfix se esta ejecutando. Puede especificar que el sistema acepte sti do- minio entero aftadiendo Smydomain a la lista nydestinasion = gayhostnama, Localhoet.Smydomain, saydonain + Puede indicarle a Postfix que equipos quiere que procesen el correo confi _gurando el parametro mynetworks. (Si establece mynetworks, Postfix ig- nora ¢l parémetro mynetivorks, style.) Puede ofrecer una o mas direcciones IP y/o usar su notacion de Fed o de mascara de red (por cjemplo 151,164.28.0/28). Este pardmetro es itil cuando desea dirigit correos a equipos que estén fuera de su red, por ejemplo, para ejecutives que trabajan desde casa, viajantes, etc Haremos algunos otros cambios en /etc/postfix/main.cf mils tarde en este capitulo para afladir autentificacion y encriptacion de contrasefias Probando el correo Con la configuraciéa apropiada, puede recibir y enviar correo desde su cuenta. EL siguiente es un cjemplo de dos mensajes de prueba enviado por uno de los autores de este Hbro, Primero, usamos una cuenta de Gmail para enviar un mensaje de correo a una cuenta de usuario en ol sistema server? centralacft .org. Leimos el mensaje desde la linea de comandos usando el comando esténdar de Linux mail: os matt Date: Tue, 11 dul 2096 17:38:22 -0500 From: "Tom Adaletein” Subgacr: Pruobs des Estancs anvianda sete correo para probar 1s funcionabidad del servider fie correo a ia hora de eqvias y tecibir cocees SMIP simple. -go contestamos al correo original y lo recibimos en la cuenta de Gmail: Dppivergautos sedetatetnagnacon ‘hee, 13 Jul 2006 16-1os4a -0700 42DT) ‘Tortadesteinegnail ce 1a Correo Cderstessecver2ceontrslactt og (Tom Adelstein) mos envinodo sete corse para prober 1a funcionatidad del Servidor a sar el comando maif es una manera primitiva de gestionar grandes voltime- nes de correo, incluso desde una cuenta local. Una alternativa es mutt, que tiene luna interlaz robusta y bastantes mas funcionalidades. Como administrador, po- ria usar algunos de estos agentes de linea de comando cuando reeiba correo en su cuenta de servicio, Afiadiendo autentificacién y encriptacién Ahora que va hemos configurado un servidor SMTP por defecto, Zqué pode- ‘mos hacer con Postfix? En esta seccién aBadiremtos autentificacién (usando SASL) ¥y encriptacidn (usando TLS) a nuestro archivo de configuracion, /ete/postEix/ ain. cf. Con autentificacién, nos aseguraremos que s6lo usuarios con las cre denciales acecuadas puedan usar nuestro servider SMTR Con eneriptacién, nos asequraremos que no envi 1D de usuario ni contrascfias através dared Autentificacién SASL La figura 9.1 representa un grupo de usuarios méviles que necesitan obtener elcorreo a través de un servidor de correo faere de la red local del servidor: Este es lun escenario comtin. Para distinguir a estos usuarios legitimos de los spammers, necesita un mecanismo de seguridad, La capa SASL desarrollada como parte del proyecto Cyrus de la Universidad de Carnegie Mellon, ofrece Postfix con un me- dio para identificar las fuentes de correo enviadas al servidor y control del correo procesado. Nota: Los administradores del sistema pusden usar SASL pava aliadir Autentiicacion en muchas de las operaciones cliente/servidor, pero cada servicio que use SASL en un sistema operativo Linux necesita un arebivo de onligacn diferente No puede instal SASL yconfiguaro pra to sistema, 4Cémo se convirtid SASL en parte de la soluci6n Postfix? Para encontrar una respuesta, hemos de remontarngs hasta 1999, cuando Ja IETF eseribic un estandar 143, amado Extensién del servicio SMTP para autentiicacién. Vera este trabajo con et ‘acrénimo de ESMTP, por gemplo, esta en la primera linea de archivo /etc/ post ix/nain cf (véase Tabla 5.1), ESTMP evita que una gran cantidad de re— iifentes y/o atacantes usen MTA desconocidos come pasarelas. También ofrece seguridad autentificando a los usuarios y sus actividades. La TETF basé la exte sion ESMTP en SASL, Como parte del protocolo SMIP, ESMTP simplemente aftade ‘un comande llamado AUTH a los comands del servidor usados para intercam- biar datos. El framework de autentificacion SASL permite wna variedad de for~ mas para almacenar ¢ intercambiar credenciales de usuario. Puede usar contrasefias Linux Yete/passwa, /ete/shadow 0 Méduilos de Autentifica~ cidn independientes), archivos independientes, 0 servicios externos como LDAP, Kerberos 0 sasldb (un directorio creado por el proyecto Cyrus ¢ incluido con SASL) En este capitulo, mostraremos dos formas de usar Postfix con SASL. Primero, configuraremos un método simple que funciona bien en sitios pequenos donde puede dar a cada usuario de correo una cuenta de usuario en el servidor Linux, teste método usa PAM, la autentificacion por defecto usada en estos casos. Luego, configuraremos un sistema mds complejo que le permite autentificar usuarios {que no tienen cuentas en el servidor, Nota: La autentificacion puede considcrarse un proceso de dos ctapas. Primero, hay que asegurarse de que el usuario es quien dice ser Luego, hay ‘que ofrecer et servicio pede, que puede ser una interfaz. de comandos bash, tesh, zsh, ee) una sess X Window ejecutdndose bajo su Wentidad, Configurando Postfix con SASL para autentificar usuarios con cuentas _Afortunadamente, Debian ineluye SASL con Postfix. Puede usar las librerias SASL de Debian para permitir a los usuarios moviles autentificarse desde fuera de la red. En el siguiente ejemplo, usaremos SASL para verlficar que las personas {que estén intentando conectarse tienen cuentas validas en el servidor Linux, es decir, nuestro sistema permitira conectarse y enviar correo sélo a las personas ‘con cuentas en el servidor, Usaremos PAM, el mecanismo por defecto para la autentificacion en Linux para hacer esto. Cuando instalé los paquctes anteriormente, incluyé las extensiones y la tibre- ras SASL necesarias (postfixtl, libsasl2, sas!2-bin y ibsas12-modules). Ahora ne~ cesita configurar /eto/postfix/main..cf. Primero, le mostraremos como afiadir pardmetros al archivo usando comandos postconf; luego, le mostraremos tina al= ternativa consistente en editar /etc/post fix/main, ct directamente, Active la “autentificacion en el servidor SMTP Postfix aftadiendo los parametros smtpd (ser~ vvidor) a su archivo de configuracién main. cf con este comande postcont: # postcont - ‘emtpd easl_suth enable = yes! 144 Correo Luego, ailada un parametro para ajustar los clientes no esténndar que no pro- cesan la autentificacion SMTP correctamente: # postcont - ‘beck aeel_auth cliente = yee! Bl pardmeteo saod_eaat_sacurity_optione le permite controlar todos los mecanismnos de sutetificaion cand los divers cents se conetan au seridor SMTP El siguiente biogue de Configureion bloquea completamente lt autentificaci6n andnima: * - " 4 postcont -6 ‘entoa Postfix no permite el envio de correo sin autorizar por efecto, Por lo que, para petmitir a sus usuarios de correo trabajar en Internet, necesita afiadir otro pariimetro (nota: esto deberfa aparecer en una sola linea): peente mynetworh Finalmente el parametro emtpd_sael_loca_domatn establece el nombre del ominio local de autentificacion. Por defgeto, Postiix considera el nombre de la ‘méquina como el nombre de dominio local de autentificaciéin. Para usar el com= portamiento por defecto, especifique una cadena nul 4 postcant <2 ‘antpd_a4al local domaia =* Esto completa la configuracién SASL. para Postfix. De manera alternativa, en lugar de ejecutar los diferentes comandos postconf anteriores, tiene la opcién de ditar el archivo /etc/post ¢ix/main.cf, afadir las siguientes entradas y fi- nalmente recargar Postfix. Broken teal such clients - yee srepa urity.spticna = nomonymous smepaLrecspiont. restriction ~ Defnit_gacl suchonticated,parmit_mymetworke,zeject nase destination ‘mepaeas]_lodal_donaia = - a terminado de configurar SASL, y ahora ya puede empezar a usarlo. Antes ‘vamos a ver fos diltimos pases, ejecute este comando para crear un archivo de coufiguracion SASL en el directorio donde Postfix buscard (la -p evita un error si el directorio ya existe) 4 mate -p Jete/poattix/s 4 ca /ete/postsss/eael Correo. Cree el archive smtpa.cone con estas dos linea peek sats plain logis “Ahora puede reiniciar Posttix: 4 posttix reload El demonio saslauthd En el archivo smtpd .cone, hemos especificado saslauthd como nuestro me todo para verificar las credenciales del usuario. Por que? ‘Nuestro sistema de contrasehias usa PAM, y los procesos sin privilegios no tienen ‘acceso a los archivos de contrasefia. Debido a que fa cuenta de servicio de Postfix se tjecuta con privilegios limitados, no puede autentiicar directamente a los usuarios. Jas librerias SASL que se distribuyen con Debian solventan esta situacién aila~ ddiendo un demonio dle autentificacion Hamade saslauthd, que maneja las pet ciones por Postfix. EI demonio se ¢jecuta con privilegios de supertsuario en un proceso separado de Postfix, por lo que alguien que comprometa la seguridad del servidor de correo no podra disfrutar de los privilegios de sastautid saslauthd no se comunica fuera dle nuestra red, el impacto de seguridad del demonio es minimo incluso si se usaran contraseitas en texto claro. saslauthd necesita las contrasefias actuales porque usa el mismo servicio de autemtificacign ‘que el que usted usar para abrir una sesién de consola en Linux, ‘Ahora, vamos a configurar saslauthd para ejecutar el servidor de correo. Las siguientes direcciones corresponden a Debian, pero puede hacer més 0 menos las rmismas cosas con los directorios y los eomandos de otros sistemas Linux, El puerto de Postfix en Debian se gjecuta en entorno chroot en /vaz/spool/ post fix. Por consiguiente, necesita poner el demonio saslauthd en el mismo espacio de nombres. Siga los siguientes pasos: 1. Cree el directorio necesario para el demonio: 4 akdts op /var/epool/postttx/var/eun/aneiauthé 2. Edite /eto/default/saslautha para activar saslautha imine la marca dle comentarios de la linea START=yes y luego aftada la linea: PaRangem /vae/apoo! {post fix/vae/eua/eastauthd -r" 3. Su archivo debe quedar ast: fhe needs to be uncomentad before sselauthed will be run astomeically 146. Correo PAGANS ."-m /vax/ 9poot /poetfix/var/runfeastauthd 4 thie derauits to tpan™ for PAM eupport, bat my 2180 include 4. Lo siguiente que tiene que hacer ¢s editar /ete/init .d/aasLautha para unbiar la ubicacién del archivo con el ID del proceso de saslauthd, Carm- bie el valor de PIDFILE por Io siguiente: PIDPILR-/vae/apoo1/poat Eix/vat/un/#{N0ME) Jeneleutid pidt Luego ejecute saslauth: # Jote/inkt a/oastautna ot ‘Si usa una distribucion Linux distinta de Debian, trabajaré con comandos, irectorios y archivos diferentes. For cjemplo, en muchos sistemas la forma estandar de iniciar saslauthd por primera vez es el comando: 4 eaetauthd -2 pom De no hacerlo asf, Debian especificara el uso de PAM a través del archivo de configuracisn, Configurando Postfix con SASL para autent Usar el archivo de contrasefas para la autentificacién en un sistema Linux equiere que cada persona que recibe el correo a través del servidor tenga una ‘cuenta de usuario. Obviamente, esta solucién carece de esealabilidad y requiere mucho tiempo administrativo. Para soportar usuaries que no tienen cuentas en el servidor SMTP, SASL le permite usar otras opciones de almacenamiento; las ‘opciones mis populares son saskib, LDAP Kerberos y MySQL. El demonio saslauthd no se giecuta cuando Postfix usa uno de estos métodos: no se necesita un progra- ima distinto con privilegios de superusuario porque SASL no necesita acceder al archivo de contraseiias det sistema operative. Cuando usa sastauthd, esta limita 80 la transmision de contrasefas en texto plano y a la autentificacion via login, Por tanto, Postfix también ofrece un método auxprop alternative, que soporta los métodos de autentificacion de texto plano, login, CramMD5, DigestMD5, OPT y NTLM. De todos los mecanismos de autentificacién discutidos en este capitulo, LDAP ¢s el més robusto y escalable, pero tiene Ia limitacign de que usa contrase- as en texto claro, Para solucionar este problema, los administradores normal ‘mente usan la capa TLS para encriptar las contrasefias y transmitirlas desde el «liente al servidor (como se discutird en la siguiente seecion). La combinacion de LDAP y TLS actualmente es la mejor opcidn de seguridad, icar usuarios sin cuentas Correo 147 En una red de ordenadores pequeita, saskdb puede ofrecer una solucion simple valida para unos cuantos usuarios. Para sitios mas grandes, con mas usuarios, probablemente MySQL. sea la solucion més escalable y mus féell de gestionar [El método sasldb y el MySQL necesitan que instale un tipo especial de plugin Hamado ausiliary property. Si configura sasidb 0 MySQL, tiene que editar el ar~ chive swtpa.conf y cambiar la imea: wench method: sapleutha por la siguiente, que ofrece un Framework para el citado plugin: Gwoheck_methed: suxprop Encriptacién TLS El inconvenient de usar el método auxprop paral validaién de usuarios es que, sin protecionesadcionales, usa vlidaion de texto plano, Cuando e usted i gue entenen su propia estacion de trabajo, no hay amgin problema, pero Cuno ov un 1 de usr una conrncba tan de i ree teat ano para accede al ear, ya sea a se local 0 Intern, cualquiera puede Uhtener de manera fl sus redenale, Anteriormente ya dseutimiosactea de tar TEs, un version actalizada dela eneriptaion SL, para enviar cotraschas Genes estan de abajo as wevidor de correo de manera sg. Au, ¥ fon extender esa soluci para enerpta informacion de Mentieacton creado Ci eid a faves de Open SSL ‘Nota: La secion previa de SASL y la seceida actual tratan de la seguridad, ‘aunque con diferentes objetivos. Mientras que la vecion de SASL mangja la fautentificacion, que determina quien tiene el derecho de enviar correo & tenes ds sev Est See trata a poten de onan ae ‘segura que los intrusos potenciales no pueden ler la eredenciaes secretes Alelos usuarios. Necestar ambos serviios para un correo electnico seguro Empieee por crear un directorio para los certificados SSL. Cree un subdirectorio justo debajo de la ubicacién de Postfix en Debian: # muses /atc/post sisi) 4 a /eto/posttin/asl/ Laego, geniere dos certificads y dos claves de eneriptacion. Necesita una clave primaria que nadie conoce y una elave publica que le permite a los otros enviarle credenciales seguras, Comience eon la clave del servidor: W opensex gonrea ~dex2 -rand /ate/noste -out entpd. ney 1028 299 som -rendon Bytes Loaded 148 Cone Generating RSA private ey, 102 Rie Leng moautue Enter pase phrase for sntpd. key Verifying - Ester pros phrase for emtpd. key Cambie tos permisos det archivo resultante que contiene Ja Clave OpenSSL. del servidor: 4 ctmod 600 antpa. key Luego, genere otra clave y otro eertifieadlo # openssd ser ey sntpd.key -out mtpd.cer into your certitieate request Mine you ave soit to enter Le what ie called a Distioguishod Nase of a BY. ‘hers are quite « few fields but you oan leave sone Diath Tz you eater \-', the field will be lett Blau. Gounsey Same [2 lettes cede) [ASI State sr orovince jaw ‘fuii tae) [Some-atatol pecsisey Same tes, ctty! 1D Organisation tm iog, coopany) {Uncerset widaite pry Utdl> cameeslacte. org Grganizationad Usie Mane toq, section! {): we ‘Conmon tana feg, SOUR same) id Bent Aadeest 1) Please ester the following ‘extra' attribucee A chattenge peeevers U Ao options Seupaay name (I+ e80 ‘Nota: Existe un debate para disimir silos certificados que se autogencran Adeberian pedir informacion » no, Nosotros recomendamios que inteodtzca Ia informacion apropiada para st prodhecion, Los siguientes comandos generan un clave de firma y cambian las claves exis- tentes por las nuevas: # openas 509 -req -days 3650 -In satpd.car -algakey antpd.key -ovt \ omepavert subjects /0-05/ot-texas/L-Dal ias/O-coutralsoft .0rg/O=veh /eton del aesn/ alladdrena-tos.sdelevesnegaail com Enter pase phrsee for ancpd. Key 4 openssl ves vin antpd.tey -out antpd. hey unenceypred Enter pase phrace for amepd. ke Correo 149 aw “€ ontpd.tey unencrypted smtpd. key f chnod 600" aatpd. Key openssl req -aew -309 -extonotor ipem days 3650 . ‘ca -hayout sakey.pen -out \ + HeLLLLg' At’ prlvate fay’ C0" loakey.pem inter Pett pase pihrace: Yerizying " uncer FEN pace phrase: ou dro about Es he asked to enter information that witl be incorporated rar you are about to enter te what a called a Déntinguished Wamp or # Di Tete ar quite a fev fields bot you cant ieave sone Dank Por tone tlolar thees iit be a doeauie Valse, Tivo eater uy the Field will be lett blank yen (2 ietter cote!” 120) Tr province woe (Salt ane) (Soae-stated ecaiity name fea, ett) 1D Gngantestion ene (gq, company! {Intornae Widgite Pty Uta) Grgantsstional Unit Mane (eg, section) Tl mmr ane” teq, YOU nave) toast noareoe i ‘Ahora necesita indicarle @ Postfix las claves y los certificados de los siguientes ‘comandos postcont: 4 postaant -© seh only = 20" + : la kay file = /ete/poeetix/s6}/eatpa. key” + ere file = Jete/poat#ive/eel/entpa.crt + ‘Extiie ~ /ato/posttiz/eei/oacert-pen' 4 porteont 4 posteont 4 postcont Elarchive /ete/peet Lx/main.cf deberia quedar ast meee See ee atin 150, Correo alae nape = mash: /ete/aitasee Gatabace = haan /ece/siinese syeeetlnation = servertexayple.con, Joeaihos exmple.cos, socazhect ‘nel Ibo command ~ proanatl -s +4ENTENSrCa! bor size Limit Fecipient delinices fmepd_gael_lacs! domain fanepdeael_aven auepd_eas) security options ~ asanonynoue hepa vecipient Zeatriceions permit mynetwarls, resect fnepd ase. tle = yoo onep_tle Aste stsettle_otfer = yen Sncpd tie key fale = /ate/poattiny snepd_ tle fsmepa tls Gntile ~ /ete/pastflx/est/eacert pow Entpa tie leglevel = 2 ‘Sntbd_tie received header = yee Ca random, s9crce = devi /der/urarion| efile = /atc/poattin/sel/ancpa. crt Ahora ya puede re lear el demonio Postfix # Jote/inke.a/posttin restart Starting mil transport agent. pesttix Configurando los agentes de entrega de correo POP3 e IMAP En esta seccién aftadiremos agentes de entrega de correo para complementar a Postfix. Use el siguiente comando en Debian para afiadir un servidor IMAP y ‘uno POPS, 4 apt-get tnatatt tpopd-se1 uy-imapd-eet Hemos escogio ipopd-sl para ofeecer agentes de entreg de correo POP2 POPS y ursimapd-sl para IMA No se preaupe por s su state Tos Pas guetes que ofeeeen servicios in encrptar como os su los oftee eneriptatos IMa® estandar use et puerto 143 y POPS tsa el puerto 110. Los protoelos incriptaos los puertos son POP3S (pero. 999) cIMIAPS (puerto 999), Originalmente creado en la Universidad de Washington, el paquete ipopd-ssl esta mantenido por Debian. S6lo necesita instalarlo, basicamente configura el uso del directorio de correo que existe en el servidor de correo al igual que el que configuramos en el capitulo anterior. Los ISP atin contingian usando POPS, pero las empresas no sueten usarlo, ‘uw-imapd-ssl ofrece un servidor IMAB Aunque requiere mas espacio en dis co, IMAP es superior a POP porque deja el correo en el servidor y permite a los usuarios ver mensajes desde cualquier ubicacion con acceso a Internet y un cliente de correo. No conocemos ningtin cliente de correo actual que no pueda procesar IMAP, por lo que la mayoria de los usuarios pueden usarlo, ‘Tambien puede ofrecer correo Web en su servidor de correo usando SSI. (https), ppermitiendo as{ que los usuarios accedan a su correo desde un navegador Web. ‘Nota! fu nuestra configuracin, Ios usuarios necesitan cuentas de Linux ‘estanular en su servidor de correo, incluso aunque Fean sus correo desde un ‘lente en otra sistema, Postfix normalmente permite entrega local en un dominio, pero requiere una pasarela (como se scat en la seecion previa} silos usuarios estan fuera del dominio ‘uvv-imapd tiene ventajas y desventajas, Por una parte, usa el estilo Unix para et huzén de correo, Jo que mantiene c] correo de todos los usuarios en un archivo tinico en su directorio de inivio. Este servicio es facil de administrar. Por la otra parte, wwv-imapd no permite @ los usuarios virtuales o a aquellos que no tenga cuenta y directorio de inicio acceder al correo. Ademas, a muchos fadministradores no les gusta el formato de almacenamiento de mbox, y prefi ren el formato jerdrquico de maildir. Al ser un formato de archivo tinico mbox. permite acceder a la vez a una sola aplicacion, 1o que implica bloqueos y hace ‘que el sistema vaya mas lento, ‘Nota: H bloquen de archivos es un mecanismo que obliga a que silo un | usuario @ proceso pueda acceder all archive en un momento dado. El propésito del Bloque es evitar actualizaciones confitivas Muchas personas consideran que el bloqueo de archivos es un problema en el caso del correo. Muchos sistemas de archivos distribuidos carecen ce mecanis- ros de bloguteo, Algunas personas creen que incluso el bloqueo de archivos es insutficiente para evitar fallos ocasionales en mbox. Con Linux, el fallo es posible sin proceso de correo falla en medio de la actualizacion de un buz6n. El formato maildir, sin embargo, permite acceso concurrente a mmiltiples apli- caciones y no necesita bloquco de archivos. Otros servidores IMAP, como Cyrus, Courier y Dovecot, usan el formato maildir para permitira los usuarios virtuales 152, Correo ¥y 2 los usuarios sin cuenta ni directorio de inicio acceder al correo. Configurado junto con Postfix, las cuentas de usuario slo tienen buzones de correo. Esto permite a los administradores mantener el MTA y el MDA si tener que gestionar ‘cuentas de usuario estandar en el servidor, Otros servidores IMAP distintos de usv-imapd son dificiles de configurar y necesitan una buena dosis de experiencia, por lo que decida por tsted mismo si el tamaio de su organizacion justifica su uso. De ser ast, necesitaré buscar otros recursos para informarse, como el libro "The Book of Postfix’ por Ralf Hildebrandt yy Patrick Katter. Configuracién del cliente de correo En nuestra introduecidn previa al archivo de configuracién de Postfix /etc/ post fix/main. cf, dejamos en manos del cliente de correo del usuario la deci sion de aftadir el nombre de dominio cuando wn usuario escribia un correo desde su cuenta de correo: Este es el comportamiento de la mayoria de los clientes, que pueden afladir wn dominio como acentral.soft.org cuando el usuario introduce un nombre de cuenta en el campo Para de un mensaje de correo electrSnico. Si configura Postfix para tsar encriptacién, como se mostré anteriormente en este capitulo, el usuario de corro también tiene que configarar su MUA para usar encriptacidn TLS a la hora de enviar correo, Los clientes mis modernos soportan esto y ofrecen una interfaz grafica para activar 1S y usarlo con el servidor de correo salente, Cuando no esta en una red definida por Postfix y es cliente estitica (al con- trario que el cliente movil), use el servidor SMFP de correo saliente de su ISP. En este caso, leberia seleccionar TLS si su servidor ofrece st uso. En la gran mayo- ria de los casos, su 1S y su contrasefia viajardn en texto claro a través de las lineas de su 15P, Para el servicio de receptidn de correo, necesitara configurar tn servidor entrante con DNS, como se vio anteriormente, Como breve recordato- rio, deberd usar registros MX para hacer esto. Un registro MX normal seria Este registro indica claramente que el correo enviado al dominio centraisoft .org deberia ser entregado al server .centralsoft .org (que es el servidor de correo del dominio) Conteo, 153 Qué es lo préximo zn este punto, ha insaladoy configurado Postfix yun servicio IMAP y otro ora tiene los components eens de un sistema de eoreeo que puede {arse enh enforno corporative Siete ss rina oma decontst son one, dora pd onder jor ut ts empresas gastangraneseantiaes de dinero ex comprar eenias Ee sntemas, También pod comprender por ue pagan a ane docena 0 mas de suimanistradores de sistemas par ie gestionen Is inraestuctras de com tacion por correo eiectronico, Esta area requiere tha experiencia espe. Des prs de qu haya asimilado a informa de este Hb, por estudiar los demas Componentes detos sistemas de corre avnzads. Debra saber come instal y Contigura un servidor de correo estaabley seguro cuanto esfuerZ0 es neces Fo para adquiis experiencia en ete campo. Tambign neestoré aprender a ges Tionar servicios de directorio, como OpenLDAP o Fedora Directory Serve, para Valid una gran eantda de ustaroey ofrecer un listado de Tos usuarios de Correo desu empresa, Ti prosimo capt revisa el servicio que muha gente considera como el mas erttigp de una organizacins un servidor Web, Despics,iteodctremos la con guracon de unode ls servidores Web mis populares, Apa, y prorederemes a Shstfar un amplio eango de funcionalidages importantes, como soporte para Sitios ie dinaiosy coecion de estan ademas e proporconarernox nlgunosconssjos par resolver problemas Capitulo6 Administrando Apache Bn este capitulo, levantaremos un servidor Web Linux desde cero. Aprenderd a: + Instalar y configurar Apache, PHP y MySQL. + Gestionar mvltiples sitios Web con hosts virtuales, + Eneriptar paginas sensibles con SSL. + Activar temologias de servidor y scripts CG, + Hacer pruchas de rendimiento y de seguridad. + Instalar-vlogger y Webalizer para ver las estadisticas de sitio. ‘+ Instalar Drupal, un sistema gestor de contenidos que sera muy stil en iuichos entornos y que usa muchos de estos elementos. Este capitulo describe un entorno con un servidor Web, en el capitulo siguien- te, veremos eémo configurar tn par de servidores Web para balancear el trabajo. Los servidores Web son grandes y complejo, y al configurarlos no esta elaro ‘como o por qué se hacen determinadas cosas. To largo del camino, le mostraremos por qué hemos elegide algunas alternativas en detrimento de otras. Para que las explicaciones sean breves¥ claras, usaremos los procedimientos estandar de Debian, [Dotaremos de seguridad al entorno a medida que avancemos, para resaltar que la seguridad es un aspecto que debe tenerse en cuenta desde el principio. Al final del capttulo, podra encontrar una seccién para la solucién de ertores comunes, Archivos estaticos y dindmicos Ln sitio Web bisico est compuesto por archivos: HTML, graficos, JavaScript, hojas de estilos y otros tipos. El contenido de estos archivos es estaitico, no cam= bian en el servidor, y el Gnico trabajo del servidor Web es devolverlos cuando el 156, Administrando Apache havegador lo solicite. Un servidor Web necesita slo una pequefia configuracion para servir archivos estaticos. ‘Muchos sitios también tienen contenido dinémico, incluso generacién auto- ‘iitica de contenido, control de acceso y almaeenamiento en bases le datos. 1a imanera mas facil para hacer archivos HTML dinamicos es usar la teenologga de servidor (SSI), que equivale « afladir comentarios formateados mediante TM {que Apache interpreta para mostrar su valor o incluir contenidos de otros archi- vos HTML. La inclusion de archivos SSt es una forma facil para definir una cabe- cera y un pie de pagina comin a todo el sitio, por ejemplo. SSI tiene limites, aunque una gran mayoria de sitios dindmnieos usan progra- mas Common Gateway Interface (CGN). Estos programas ejecutables pueden escri- birse en cualquier Ienguaje que Linux soporte, aunque las opciones mas populares ‘son los Ienguajes de script come Perl, PH Python y Ruby, seguidos de Java. CGL es tun protocolo que especifica cémo deben intercambiar las peticiones y las respues tas el cliente y el servidor, Cuando los primeros CGI aparecieron en la Web, eran totalmente independientes de los servidores Web, Cada peticién provocaba que el servidor Web iniciara un nuevo proceso CGI. EI coste de arrangue incrementaba el tiempo de respuesta del sistema, por lo que se desarrollaron alternatives. La gente a menudo confunde el protocolo Gi con este método de implementacion anticun- do y por ello piensan que CCi es lento. Sin embargo, el estandar CGI no define la implementacion. Existen métodos mas rpidos que siguen el mismo protocole CGI Un método mas rapido ¢s FastCGI, que inicia el programa CGI como un proceso parte y gestiona dos vias de comunicacion entre dicho proceso y el servidor Web, Evitando as el coste de recarga, ademiés la separacidn del proceso asegura que en el «aso de que el CGI fle, no evar asociada la caida del servidor. No obstante, FastCGI tiene un inconveniente: al igual que otros programas CGI, no puede acceder a los entresijos del servidor Web, algo que es necesario en aplicaciones compljas. Algunos programas CGI han evolucionado en forma de médulos Apache que se cargan como parte del propio servidor Web: el intérprete de Perl se convirtié en mod_perl o PHP se ha convirtié en 24_php. El rendimiento de los programas FastCGl y de los modulos Apache es similar, y los modules tienen tanto ventajas como desventajas. Tienen acceso a todas las estructuras de datos y funciones internas del servidor, por lo que pueden usarse en varias etapas de la transaccién, Web, pero no para generar contenido HTML. sin emhargo, los modulos inerementan el tamafo y el uso de la memoria del servidor Web, y tun fallo en el médulo puede provocar la caida del servidor Web. Instalacién basica de LAMP. {a instalacion estandar de LAMP (Linux, Apache, MySQL, PHP/Perl/Python) ‘usa moduilos Apache para ejecutar las funciones CGI. Esta aproximacisn fi ‘Administrando: Apache 457 Instalacién En esta seccién, instalaremos Apache, PHP y MySQL. Usaremos la instalacion por defecto para cada uno de ellos para asegurarnos que se ejecutan correcta~ mente, En la seccién sigitiente, exploraremas los archivos de configuracién de Apache y eémo personalizar nuestra instalacién, Apache Necesita ser usuario root para instalar paquetes. Primero consige el servidor. Apache: 4 apteget in ait apache? Esto deberia instalar Apache ¢iniciarlo, cast newt Lego introduce la URL (por ejemplo, http: //s2rvert .centralseét .cra/ test html) en su navegador. Podrd ver la palabra probands en la pantalla, St servidor Apache se esta ejecutando sin restricciones de acceso, es deci, sirviendo ‘cualquier archivo y directorio que exista en /vaz /vo. PHP. PHP es ef médulo CGI de Apache mas popular. En este capitulo, usaremos PAP 4, que todavia es mas popular que su sucesor, PHP 5. Usar PHP es una buena forma de crear paginas dindmicas, y la gran libreria de medulos PHP ofrece mu chas Tunciones tities. Comience obteniendo el programa PHP y las librerias 4 ape-got {nota pape Ahora consiga el médulo PHP para Apache, nod_php. Este comando instalaré mnod_pip y le indicaré a Apache que le permite gjecitar archives eon sufijo php: # apt-get natal iibapsche2-od-phpt Cree este script PHP de prueba y gudrdelo en /var/wew/ info.php: pepiagol | LLuego introduzca la URL del script (nttp: //eervert .centralaott.ors/ info. pnp) en su navegador. Deberia ver una pagina con tablas de informacion sobre la configuraci6n de PHP. Esta informacion ofrece mucha informacion acer- cea de su equipo y que no tiene que compartir con el resto del mundo, por lo que puede borrarlo después de probarlo, Sino es eapaz de ver nada, échele un vistazo al final de este capitulo. ‘Adrinistrando Apache 159 Entre tanto, si usted es novato, acaba de escribir su primer script CGI. (En la seecidn de CGO, ofreceremos mais detalles acerca de cémo los servidores Web eje- ‘eutan programas externos y scripts.) MySQL Si no necesita una base de datos, tendra una plataforma LAP y podra saltarse cesta secciém, Para obtener Ia plataforma LAMP, obtenga el servidor de base de datos MySQL. y el médulo PHP para MySQL: 4 Sptoget inatell php-myaat Esto es todo lo que necesita para crear scripts PHP que accedan a un servidor de bases de datos MySQL. pero también instalaremos el cliente esténdar de linea ‘de comandos para MySQ1 (mysql) para que nos ayude a probar la base de datos sin tener que usar PHP o Apache. ‘Nota: Si decata dl cliente mysql pero no especifica un nombre de cuenta de [MySOJ. con la opcién ~u, intentara usar el nombre de su cuenta Linus. En nuestros ejemplos, hemos accedido come root, por lo que el nombre seria, oot, Sueede que la cuenta de administrador de MySQ). también se Hara ‘oot, y Hene el contrel completo de la hase de datos. Sin embargo, las cuentas root de MySQL y de Linus: no tienen mada que ver la una con la otra. MySQL. flnacena fos nonabres de cuenta y las contrasetas ena propia base de dates, Use este comando para ver siel servidor de la base de datos se esta ejecutando: 4 nysct -v x00t Aetlone to the MySoh monitors, Commands end with ; oF a Sour Mach connection id ia to eerver version? 4.0.26 Debian-iosasge2-1o ‘Type ‘holp:' or "\h* for balp. Type “\c! tp clear che butter 2 tows in e0t (9.08 20) 160 Administrando Apache Si esto ficiona, su servidor MySQJ. se est8 gjecutando, La mala noticia es «que el usuario root ha inicado ses sin contrasefia, Asignele una (ponga una Contrascia dif de averiguar donde nosotzos hemos puesto newmysqlpasswor 4 nyagiodatn -u root peweword newnyegipaseword Ahora inténtelo de muevo con la contrasefia: ss donied for user: “soetalocalhost” (Oeing password: Wo) Por una vez, estamos contentos de que algo falle, porque lo esperabamos, Inténtelo de nuevo: § mpeqt -u zoot -p ord: newmysqipassyord the mod moniter” comands end with ; oF ‘9 {Your Myeql conmectson £4 dz # to server verbinnr 4.0.24 Deblan-idearged-og Type *hetpr’ or “Var for help. Type “\c" co clear the buster, vmyagis gute Anote su contrasefia de root, porque necesitara proporcionarla rads tarde, ‘cuando instalemos la aplicacién Drupal, y tambien cada vez que queramos acce- der a MySAL como adeninistrador principal For razones de seguridad, 1a instalacién por defecto de MySQI. que hemos realizado restringe el servidor MySQJ. a clientes locales como scripts PHP 0 el cliente mysql para linea de comandos. En caso contrario, la gente podria conec~ tarse a su base de datos a través de Internet, Io que no es apropiado para wna base de datos de estas caracteristicas. Puede comprobar que la direecion IP del serviddor MySQJ. es 127.0.0-1 (el buele local} usando este comando: # netatat tine Proto Recv-0 Send-@ Looal Address Foreign Addcess staterro/rroqran te © 0 327.0,0.1:2306 0.0.0.0:" EigTinas548/nysqia Archivos de configuracion de Apache Apache usa archivos de configuracion en texto ASCH. Su ubicacién varia se- iin la distribucion Linux. La tabla 6.1 muestra dénde los coloca Debian. Administando Apache 161 “Tabla 6.1. Archivos de contiguracién de Apache Archivo/Directorio en/ Uso ete/apache? apache .cont Archivo principal de configuracién. Incluye otros archivos a través de las siguientes directivas: # Imelude oaute configuration Inetude /eto/apache2/mode-enabied/*, Lod include a2] veer configura nctude /ers/apacte2/netpa. cont # include ports Listing Ineluée /etc/apache2/parte.cont W molude generic anippets of statements Include /ere/apacha2/ Options Indexes FolloNSyabinks Muleiviews Wrornide snescesss flee Hvaze / 20 /apsche2-defssit, che initial weleome 4H page thar gape "ie you can’ eoe thie Reaizscenateh */$ /apache2 dofauit/ Options Execea: “HuleiViews symLénkarfowmernaech Options indexee multiViews PolLowsyabinks Grace deny. aston Deny tom 311 ‘Rilew fron 127.0-0-0/298.0.0.0 + 3/228 cpuseusivont™ 164 Administrando Apache La mayor parte de los cambios que haremos en los archivos de configuracion dde Apache en esta seccidn se hardin sobre este archivo. #) archivo de configura: cid /ete/apache2 /apache2 . conf contiene muchas opciones de la parte ser- vidora que no necesitan cambiarse, con algunas excepciones notables que sera las que veamos aqui, Directivas de usuarios y grupos Estas importantes opciones le indian a Apache que se ejecute para un 1D de ‘usuario y un TD de grupo particular. El archivo /ecc/apache2/apackea .cont por defecto contiene: Cualquier archivo y directorio servido por Apache necesita ser leo por este usuario y este grupo, Los permisos de archivo y de directorio incorrectos som tuna de las causas mas comunes de errores en Apache, come la incapacidad de ver ‘una pagina (0 la posibilidad de ver algo que no deberia verse, Directiva Listen Apache normalmente responde a las peticiones en Puerto TCP 80, pero puede ‘escuchar en otros puertos, ademas del 80. Es muy comdin usar otro puerto para pruebas, muchas personas usan e181 porque es facil de recordar y porque no se usa para otra cosa, para especificar uno o mas puertos, use una o mas directivas Listen: Si va a usar encriptaci6n SSL para algunas paginas, necesitard ineluir esta directiva para usa el puerto seguro estandar: Directiva DocumentRoot Cada sitio Web tiene su rafz, que es el directorio que tienen los archivos de contenido y los scripts. Esté especificado por la divectiva DocumentRoot, En la configuracién por defecto de Debian, esta especificado en /ete/apacie2/sitec— enabled/000-default: Documentoat /vas/ivem/ Autentificacién y autorizacién Algunas partes de su sitio Web estardn abiertas a todos, pero quizis quiera restringir el acceso a ciertos visitantes, La auitentificacion determina quiién es un Adminiswando Apache visitante, La autorizaciOn determina lo que el visitante puede hacer, como por jemplo: + Leer un archivo, + Usar tecnologia de servidor. + Bjecutar un programa CGI + Generar un indice para un directorio que carezca de ‘En Apache, el lugar habitual para almacenar la informacién de autentifica~ ion es un archivo de usuario en texto plano (a menudo llamado archivo Intpasswvd, después de que el programa lo modifique). EL archivo de usuario con tiene tos 1D de usuario y las contrasctias ciftadas, El archivo de grupo opcional contiene los 1D de grupo y los ID de usuario en texto plano. Es til para sitios grandes debido a que permite especificar permisos para un grupo entero, en I~ fgar de especificarlos para cada uno de los usuarios individuales. Archivos de usuario Como eemplo, ree un directorio protegido por contrasefia y coloque tn pe- {queno archivo de texto dentro: ca fvas/ione 4 kate {sche sposdee verma® > #420 bemt Puesto que no lo ha protegido todavia, el archivo deberta ser visible desde et navegador (htep://aerverl .centralsoft .org/secret /file.ntml) “Ahora haga un archivo de usuarios: os sep Ut bvonaama ) azeation /secrat> saueiype asus AschuserFils. /enp/ueors Order deny anew require valid-usar eyoeaeions -uthNane es obligatorio y debe ir seguido por una cadena de texto. Nosotros hemos usaclo “test”, puede usar " si quiere, pero por alguna razin no puede omitir la directiva. Authtype Basic quiere decir que estamos usando un archi- vo de ustario de tipo htpasswd. AuthUser 1e especifica la ubicacion de dicho archivo. La directiva Order indiea que Apache deberia denegar el acceso por de- fecto, y permitir el acceso s6lo si el usuario esta especificado en el archivo de usuarios. Por altimo, la directiva require indica que cualquier usuario del ar- chivo de usuarios tiene permitido el acceso. Para permitir que sélo el usuario Jack pueda ver el archivo que hemos creado, deberfa poner: senses sack Y si quiere permitir mas de un usuario, deberia poner algo parecido a esto: Apache debe volver @ leer su archivo de configuracién para que los cambios tengan efectr 4 fere/inte d/apacne? reload Ahora intente acceder al archivo (http://www. example .com/secret/ fie. hem) desde alguna de las cuentas listadas en el archivo de usuario. Pode ver un cuadro de dilogo donde pone algo parecido a esto: Admrinistrande Apache 167 [Boter uornane and password for "test at serverl.centraleott oxy Introduzea el nombre y la contraseiia (verd los asteriscos cuando introduzca Ja contrasefia) y haga clic en OK. Deberia ver: Archivos de grupo (tra forma de mangjar muchos usuarios ¢s usar ¢ archivo de grupo. Cree un archivo /tmp/groups que contenga un nombre de grupo, dos puntos y uno _mis nombres de usuario separados por espacios: ‘Tambien se puede poner el grupo y cada usuario individualmente: Luego altada una divective AuthGrouptile a 000-efault: aurmype aasic ocnUeesetie. emp/ase AuthGroupFile /tmp/aroupe Fequire group pirate Reinicie Apache como de costumbre para que los cambios surtan efecto: # fete/intt.d/apache2 reload Contenedores y alias ‘Apache aplica restricelones de autorizacion a los contenedores,@ a archives y lirectorios det servidor. Un ejemplo de contenedor se discuti6 en secciones ante- riores. Ahora revisaremos varias directivas de contenedores. Rutas absolutas: Directorio Esta directiva especifica un directorio del servidor. Aqui mostramos un ciem= plo de las contenidos originales del archivo de configuracién de Apache: 168 Dpesone Followtiatinks Rutas relativas: Ubicacién Esta directiva especifica los archivos y’ los divectorios relatives al directorio rafz. Por ejemplo: Options Bxeccst ‘ser the smvkvonent variable decal to 4 Hae onlled tronl_ ts on thie site. 4 Set local to @ 1f the UR uae on another aice 4 thst vance to steal cut Levey smew Setineisiocane Referer "http: //erveri centraieoft.org/* Locals Order Allow, Deny Aulow trom enve2ocel ° “erriloatatch> La directiva Alias asigna un nombre a un directorio: Aisa fesse /exp/test Adminisrando Apache 169 En ta directiva, primero va e alias (nombre alternativoy, seguido de la ubicacién actual del directorio, El ditectorio puede estar fuera de la raiz. En este caso, el ar- chivo tap/test/button.qif estaria accesible desde la URL http: // wwe example. con/teat /button gif, incluso aunque no estuviera en /vaz/ wwn/teet. Limites En un servidor ocupado, Apache pucde crear muchos procesos hijos simult- nneos ¥ usar mucha memoria, Esto puede incrementar la carga media y hacer que el sistema se vuelva mas lento, incluso que no respond, La tabla 6.2 muestra como puede limilar algunos valores de ejecucion de Apache en el archivo de con figuracion de! sitio, ‘Tabla 6.2, Directivas de recursos Apache, Direciva” Valor por defecto Uso 256 ‘Maximo de peticiones simultane ‘Sillegan mas peticiones, se rechazan. 0 finfinitoy Maximo de peticiones servidas antes ‘de que un proceso hijo se reinicie. Para evitar pérdidas de memos KeepAlive on Reaprovecha las conexiones TCP entre ef cliente Web y Apache. Inerementa la velocidad de descarga, de la pagina, puesto que devuelve todos los contenidos de la pagina a través de la misma conexion, KeepAliveTimeout 15 ‘Segundos que se deben esperar antes de que otra peticion use la misma conexi6t Tecnologia de servidor Last puede usarse para incluir archivos de contenido, salida de programas, © contenidos de variables de entorno como parte de un archivo HTML. La sintaxis para especificar SSI en los archivos de configuracion de Apache puede ser confu- sa. Por ejemplo, para permitir teenologfa de servidor en /var/waw/233, pero no otras opciones, cree un directorio: 4 mkdse /vax/ine/aes 170 Ade : i | | cindique a Apache que permita esta tecnologia: Opsions Enelusen Para afar SSI a las opciones existentes, use! etacation feet ‘Options sinctudee | ssuseat tone Sie permite incluir archivos de contenido, pero también puede ejecutar cual- quier programa incluir su salida, Esto puede no ser muy seguro, por to que para restringir la inclusion de archivos de contenido solamente, use ‘Options. IncludeswoRxec eyaeations| Si quisiera tener archivos SSI en varios lugares en lugar de tenerlos todos confinados en este directorio, puede indicarle a Apache que asocie a tipo de archi~ ‘vo el sulljo SSI Para que SSI fumcione, el médulo de Apache correspondiente tiene que estar ceargado, puesto que no se carga con la instalacién por defecto de Apache o de PHP, tendremos que teclear Io siguiente: 4 atennod snetuae Wun vez instalado 02 nsdulo include; ojecute /ate/init.d/spachor force-relosd para activario, Wfatc/inse-d/apacke? tox Los comandos $51 parecen comentarios HTML. Tienen la forma: l--fecmiand arguant-tvaluet > Los posibles valores del comando son include (incluye archivos), echo (mues- {va variables de entorno), exec (incluye la salida de un comando) y config (da formato a las variables de echo. Primero vamos a probar la inclusion de archivos. Cree dos archivos: 4 08 (var/ne/aat 4 ono sbcteon seutee > bottom. nea ‘Administrando Apache wt Ahora erce el archivo middle etm con este contenido: “clo -finelude vireual="eop.Bel Fijese en que el archivo que est haciendo la inclusion (middie . shit) neces ta la extension sto, pero los archivos que se estén incluyendo (top .bewl y bottom. heii) no. Ahora ponga en la barya de direcciones del navegador ht ep: / /sexveri, centralsoft .org/niddie. shtml y podrd ver: fen el wedio sods Sila opci6n Includes esta definida como contenedor, SSI también puede ejecu- tar comandos, pero el usuario (normalmente un navegador Web) no puede pa~ sarle ninguna directiva. La ejecucidn de comandos SSI se suele usar para hacer faeiles algunas cosas como el listado de directorios: cciocHenee emdette “1 feng ‘tro funcionalidad de S51 ¢s la de mostrar variables de entorno CGi y otro tipo de variables. Una forma rapida de imprimir todas estas variables es: Para una variable determinada, seria lo que mostraria: Si solo tiene archivos estaticos, @ una mezcla de archivos estaticos y scripts CCG, es mas seguro desactivar la gjecucién de comandos SSI: ‘Options includestckxes eyusesesons| cal Gr es una forma mucho mis flexible (y peligrosa) de ejecutar programas en, servidores Web, puesto que los usuarios pueden pasar informacion a los progra~ ‘mas. Apache tiene dos formas de especificar que programas pueden jecutarse como programas CGI 7 Administrando Apache Location Las dos siguientes directivas sirven para asociar los programas CGI del direc torio /var/cgi con la URL que comienza por http: //server! .contralaott. org/egi/ seriptaiiaa fost /vat/est ‘Type applieation/x-nctea-php pnp ptm phos Rastyee appiseesion/sonetpd Bhs aesseeBtpe syegl ) Array | [Datebace] <> test ) Si hubiese usado el mismo comanclo SQI. desde o cliente de linea de coman- dos, habria obtenido los mismos resultados (dos bases de datos, llamadas mysql y test), pero con un formato diferente: ¢ vont Woxvictual howe cam have multiple aaees: Serveraliao backup oxanplo.cea Docusenssnat "ar /uwy/viosta/ Wr? example.con* wwl.centraleofe.org/index. demi 4 skate wd comereleatt org 4 tino stnce worlieentesieofe.org" > wwv2-centeslsoft.ory/index. heal 176. Administando Apache Luego reinicle Apache: # /ove/tnse.d/apaches rotons Si tiene registros DNS que apuntan @ wi, centvalsoft.org y vwn2 -centralaofe. org desde su servidor, puede poner en el servidor http // won centralsoft.org/ index.html y hetp://www2.centraleott.org para ver Ios contenidos de os archivos index. hem de prueba que acaba de Archivos log Apache escribe archives ASCII de log de dos tipos: acceso (peticiones que se hacen al servidor) y error (ervores que ocurren durante las peticiones). Puede controlar qué se escribe en estos archives, dependliendo de lo que quicra saber sobre los visitantes de su sitio, cuanto espacio tenga en disco (los logs pueden hhacerse muy grandes) y que herramientas de andlisis de logs quiera usar. Un mensaje de acceso tipieo (divide en varias Iineas para que quepa en la pagina) es 192.260.0.1 - - (22/aep/2006:15:08:05 -0800) “aBD / srap/a.2" 200580 "= sNoaiita/s-0.Inindowas Us Windome NT'5.0, en-US Fv:1.8,0.7) Geeks/20980309 Piretox/i 8-0-7" Un mensaje de error thpico es: ri sep 29 20:13-11 2095] fervor) [eLient wrv-centraleott oral File doog not exieer /vae/me/ index. neal Los logs por defecto son /var/1og/apache2/accees log y /var/loa/ spachez/error. log, Division y rotacién de logs La configuracion por defecto de Apache incluye una tarea diaria que hace rotar los logs de acceso y de errores. La rotacién consiste en 1, Renombrar access log access. 1og.1 yerror.log a error. log. 1. 2. Incrementar el ndamero de la extension de logs rotados anteriormente (por ejemplo, access. 1og.1 se incrementa access. 10g.2) 3. Borra accesa.10g.7 y error. leg. 7. 4. Crea un nuevo access. og y un error. 10g, Administrando Apache wz Por defecto, todos sus hosts virtuales comparten los mismos logs de acceso y de error, $i tiene mas de un host, no obstante, serd conveniente dividir los logs para ofrecer analisis diferentes para cada uno. Apache tiene dos formatos estandar para archivos logs de acceso: comtin y combinado. Encontrara sus respectivas definiciones en el archivo de configura~ cig maestro de Apache, /etc/2pache2/apache . cont: #8 custoniog directive (see below? Legroueat "ay M1 tu Ae VPtr\s toa 4D \MfRoterar}s\" \"e (User-Agent) 4\" combined Heqearmac "Wh 42 $a AE \tBE\" tee 9b" common Soqesrmat "4(neferar}i "> 80" rofores ESgrooat "\(Ueee-agene) i" agent Todos Jos % en Jos archivos de configuracién de Apache representan variables; por ejemplo, ih significa nombre de equipo. 8] formato combinado es el formato comin pero ineluye el visitante y el agente de ustario (navegador). Desgraciada~ mente, ninguno de los dos formatos incluye el nombre del bst virtual (una variable %) que necesita para dividiz ellog por equipos. Por tanto, si quiere hacer esto tltimo, tendrs que definir un nuevo tipo de log, En lugar de ir dejando huelias por todos los archivos de configuracidn de Apa~ che, contintie haciendo los cambios cn el sitio como To hemos hecho hasta ahora (/ete/apache2 /sites-enabled/000-default). Ponga estas lineas encima de sus directivas VietualHost ) dofino @ new vistua2 hose come log forme: Dividiendo los logs con vlogger ‘Se estaré preguntando si dividir la informacién de los logs en Jos archivos de Apache a medida que se va accediendo, o dividir el archivo de acceso una ver. al dia con una utilidad para dividi los archivos log de Apache, Preferimos la prize- ‘ra opeidn, xdebido a que coloca las Ineas en el log adecuado inmediatamente, y no nnecesitamos escribir tareas cron. Un buen programa es viogger. Apache le per~ nite conectar el log con algunos programas externos, que es justo lo que quere- mos. Aiada toda esta informacion debajo de la linea LogFormat que introdujo previamente: 4 Split Jog on the fly Into virtual ost dizectoriee Sunder /eas/los/apacte fuscontog "| /ust/abin/viogger -9 aecene-10g /vax/log/apache2" voormon 78 Adminisrando Apache Ya que vlogger no forma parte del paquete estandar de Debian, instalelo: 21 vloguer Lugo reinicie Apache 4 feto/intt.d/apacnea restart logger creard un archivo en el directorio /vax/1og/apache2 para cala host virtual que ha definido. Se creard un log de acceso diario con marcas de tiempo, y con un enlace simbélico al archivo access 10g més reciente: . 40d /vas/tog/apachea meet example.com ewer 1 root reo! 19 Au 3 22519 mesons. log -> OBENGCOE-acceEs. 20g Analizando logs con Webalizer Hay muchos analizadores de logs libres y comerciales: Nosotros pensamos que Webalizer es una buena opcion porque es Facil de instalar y genera una sali- ‘da muy uti: Introduzea! 4 ape-get & Minion aivectocy should webalizer put the output int fvar/ew/wsbaiiser . inter che title of the reposts vobslizer wili generate lange Statiatie for sqrvertucenteaieatt org ‘vaz/log/apached /accees. Log. wees Acceda.a éla través del URL http: //sezvert .centralsoft org/webal izer, Al dia siguiente (despues de que se gjecute la tarea cron de Webalizer /ste/ cron. dai 1y/webalizer) podra ver paginas con tablas que deseriben el acceso a su servidor Web. No necesita editar el archivo de contiguracion (/et2/ webalizer.conf), a menos que quiera cambiar las opciones que proporciond durante la instalacion, ue prone ane prene ‘Nota: Los spammers tienen formas de manipular los logs Web, por lo que «estuna buetta prcticarestringe of acceso alas paginas desalida de Webalizer Encriptacién SSL/TLS Willie Sutton dijo que robaba bancos porque era “donde estaba el dinero". Los ataques en Internet se estan incrementando, sobre todo los ataques a nivel de Aciminisrando Apache 179 aplicacién, por la misma razén, Encriptar los datos sensibles como los ntimeros de tarjeta de erédito y las contrasefias es esencial. ‘Cuando solicita una pagina desde un servidor Web con el prefijo http://, to- dlos los datos que circulan desde e1 servidor hasta el navegador estén sin cifrar. ‘Cualquiera com acceso a las redes qui intervienen en la comunicacion puede cap~ tuurar los contenidos. Plense que el acceso Web (como el correo electronic estandar) cs una postal en Jugar de una carta. Elestandar Secure Sockets Layer fue desarrollado para encriptar el trafico Web, y ha sido un factor decisiva en la explosién de sitios comerciales y del comercio clectrénico en la Web. Apache tiene la capacidad de encriptar el trafico Web con SSL, que con ligeras molificaciones se conoce como la capa Transport Layer Security Este cifrado se obtiene curando accede aun sitio con el prefijo https://. Imagine ‘que el trafico Web cifrado es como un sobre sellado, ‘Vamos a configurar SSL para Apache. Hite /etc/apache2/ports.cont y afiada esta linea: Luego active el médulo SSL de Apache ¢ indique a Apache que debe usarlo # temo 2a El médulo ss estd instalado; gccute /ate/init.@/apache? force-reload para activarlo, 4 Jate/iatt.d/apache? force-reload Ahora intente acceder a su pagina de inicio con Beeps: // URL: (por ejemplo, betpe://server?.centralsott .org) Para jue SSI. fucione, su servidor necesita un certificado. Este certificado es tun archivo encriptade que prueba que el usuario es quien dice ser. 2Como sabe el navegador en quién debe confiar? Los navegadores Web disponen de Listes de atoridades de certificacion (CA). La cadena de comandos para ver estas listas es! Firetor 2.0 Hertanientao—sAvangadaa—»Ciftado—+ ver cortifieedoe —9 auteridades internet Exploser 6.0 Terranivntas Opciones Ge Inteanet—scantantda —> certificados—> Gertifiesda de confsanea 7atz Los €A son empresas que venden a las organizaciones un certificado y se en= cargan del trabajo legal para verificar su identidad. Los sitios Web comerciales ‘casi siempre usan CA comerciales, porque el navegador suele aceptar los certfi- ‘cados que expenden, De manera alternativa, usted puede ser su propio CA y crear 180 Administrando Apache lun certificado propio. Esto funciona tanto con SSL como con certificados comer Ciales, pero el navegador Web le preguntard al usuario si desea © no aceptar el certificado. Los certificados propios son comunes en proyectos de eédigo abierto pequeiio y durante las pruebas de proyectos grandes, Soporte para suEXEC Apache puede servir multiples sitios al mismo tiempo, pero hay sitios que tienen paginas distintas, scripts CGI, usuarios, ete. Debido a que Apache se ee uta con los permisos de un determinado usuario y grupo (por defecto wii data), el usuario puede escribir y Ieer el contenido de todos estos sitios, Rero nhosotros queremos asegurarnos que sélo los miembros de un sitio determinado pueden ejecutar los programas de ese sitio y aceeder a los datos de ese sitio. Como de costumbre, hay més de una forma de hacer esto, usando varias combinacio- nés de Apache, PHP y otras herramientas. ‘Un método popular es usar suENEC, un programa que se ejecuta con permi- s0s de root y hace que los programas CGI se gjectten con el ID de usuario y de grupo de un usuario especifico, no el usuario y el grupo del usuario que ejecuta cl servidor Apache. Por ejemplo, al usar nuestro segundo host virtual wie2.example.com, con la cuenta de usuario www-ueer2 y el grupo wisi _group2, cambiaremos los permisos del host virtual especificando: apache-2.0 Copyright tel 1995 Adam Hvise, Zeue Technology Led Copyright (ol 1998-2002 ‘The Apache Sotoware Foundation, < Betg/ Pes apscte- 23 Bonctmarking encvart.centealaett ces (be patient) fot requests Completed 00 requests Document Lensth: i030 bytes Faltea request a oral transferred; 3425000 bytes iwi transferred: 1090000 bytes fogiente per sesond: 387-32 [W/ase) (eean) ‘Tne per Feguests 13,997 Ime} (acen , ‘Hine ger requect: 2.99 Ine) (nean, across all concurrent reqists} ‘Temeter Soe toe.as Tmoytas/aee! received 132 ‘Administrando Apache waiting 5 w Poxcentage of the requests aived within a certain tine ins) 3008 23 (Longest vequeet) Normalmente, la gente quiere ver las peticiones por segundo 0 st inverso, el tiempo por peticion, Estos nuimeros le indieardn qué debe mejorar en relacisn ‘con el hardware det servidor y con la configuracion de Apache. Instalando y administrando Drupal Ahora ya tenemos Apache, PHP y MySQ1. ejecutandose, instalemos un pa- squete para usarlos, Desgraciadamente, no vamos a pagar por wn producto co mercial, por lo que escogeremos algin producto de c6ligo abierto, qterepresente ‘un gjemplo tipico de software real y que sea bastante Util. Vamos a visitar por ejemplo htep: //xw drupal org: Drupal es un software que permite a un individuo 0 a una comunidad de usuario ublicar, gestionar y organizar una variedad de contenidos en un sitio Web, Entre estas funcionalidades se ineluyen foros, gestion de documentos, gale~ rigs, grupos de noticias y otras formas de colaboracidin basadas en Web, Las siguientes dos seeciones describen los dos métodos de instalacion de Drupal: apt-get: Es lo mds facil, asf es que inténtelo en primer hugar. Sin embargo, nosotros hemios tenido problemas con los paquetes Debian de Drupal. + Desde las fuentes: Supone mas trahajo, pero puede ver que est ocurrien- do, inténtelo de esta forma si el metodo apt-get fala Instalando Drupal con apt-get La forma més fécil de instalar Drupal es con apt-get. Puede ir al sitio Web de Drupal y buscar un paquete listo para descargar 0 puede ver mediante apt-cache siesta en el repositorio de Debian: r ‘Administando Apache 183 4 aptecaste . drupal ssnaganent/aiscuseton engine Spat ficvin Chansle™ chene for BFUPsl ‘frat-thana-unconed "OnconeD® Uiewe Zor brwpsl EL primero es el que nosotros queremos, por To que vamos a instalarlo de la siguiente manera W apt-get snate2) drupal Fl proceso de instalacion indica que necesita varios paquetes que no tiene, consfgalos e instélelos. Luego se le preguntara por la configuracion de Drupal a través de una secuencia de menus. Use el tabulador para moverse entre las op cones, la barra espaciadora para seleccionar una opcién o Intro para ir a la siguiente pagina, Solamente incluiremos la altima Iinea de cada pantalla aqui, 80 si, com la respuesta recomendada: un database upaate script? atasse engine #9 be used with prups maa Databsee server for Orupal's database Database server adninieteator yar name on Host lovalhost Password for database eerver achiniateater zaet on tocalhost Remove Drupa} database when the package Le resoved? eb server(s) that should be configured automatically T) apache apaohs- 26) Spacte port i" 194. Admivistrando Apache La instalacion copiara los archivos de programa, ezeard una base de datos MySQL y crearé un archive de configuracion Apache (/etc/ apache2 /cont..a/ arupal cont. Aline /arupel /use/ahare/arupat cbirectory /use/ahare/sevpal/ > Gpcions et lowsiabinke ‘Si aparece un mensaje parecido a este an override for */var/lib/asupsl/tite! puede quebrarse la cabeza buscando una solucién, o instalarlo dese las fuen= tes. Si todo hua ido bien, saltese la siguiente seccisn, Instalando Drupal desde las fuentes Descargue la ditima distribucion y vaya al directorio rafz desu servidor Web: frat y/o. osuoet-ora/ra/Arapen/tttee/presacta/ Sepa ae depend. 73 feat /me/aeuped 4 Hvar /wnw/scupal ‘Seguiremos los pasos indicados en INSTALL.tXt y en INSTALLamysqltxt. Crea- remos la base de datos Drupal (la amaremos drupal), un usuario administrador (Cambién drupal, puesto que no tenemos mucha imaginacién) y una contraseiia (por favor, no use drupal tambien 4 uyogt -u root = Welcome to the MySQL monitor. commands end with ; oF \g. Sour toh connecticn 1d ie 27 to gervor vereigni 440,24 Deblan-2oaarged-op ‘Type “helps! or “Yh for help. type “\e’ to clear the buffer Query Of, 1 row affected {0.00 each nyogl> GRANT SELECT, THBRR, VPDANE, DHLETE, CREATE, DROP, > Geupel MW Locathost* identified by *dewpatpws Administando Apache 135, query Of, 0 towe affected (0.01 see) busty of, 9 xowe aftacted (9,09 ace) Luego, cargue la definicién de Ta baye de datos de Drupal en MySQb: 4 ayagh “a root -p dzupal « Gatabaae/aatabsce4.0.nyoqt # Después edite el archivo default /eontig. pip y cambie la tinea! Jernane:pasavordelocel oct /databarenane! por a0 wel \nyaghs//deupadsdzupeteveiccathost /Arupal’) Configurando Drupal En su navegador Web, vaya anttp: //serveri.centralsoft .org/drupal. {La primera pagina (en la version que hemos probado) dice: Metcone to your new Drupal website! Ploace follow these acepe to aet up and stort uoing your website and will allow you to configure your website. Hoga cc ene enlace Ceara primera cuenta, En esta seu pina, tecce enone esa para su unt fos nmin opt) en ecard eto Usemame y su correo en eFeampo E-Mal. tego presione et boton Crear una rneva cuenta, Sera rediigido aha primers pag, donde el pate de reba pea Ie Comprucbe su correo electric para vere ha legato a contraseba gene rado y autetiquse en Drupal emel deca “User log Ser reirigho a una pu para eslablcer una cntraseha permanente, Bespues de esto, pute i 8 Tethigina de iii, donde vera ls sigulentes opciones 1, Gree su cuenta de administrador. Para empezar, cree la primera cuenta. Esta cuenta tiene plenos derechos de administracion por lo que le permitira configurar el sitio Web. 186, Administrando Apache 2, Configure su sitio Web. Una vex en el sistema, visite la seceién de administracién, donde puede personalizar y configurar todos los aspectos de su sitio Web. 3. Active la funcionalidad adicional. Luego, visite la lista de médulos y activelos en funcién de sus necesidades especificas. Puede encontrar médulos adicionales en la seccion de descarga ade m6dulos de Drupal. 4. Personalice el disefio de su sitio Web. Para cambiar la apariencia de su sitio Web, visite la seecion de temas Deberd elegir uno de los temas incluidos o descargar temas adicionales de la seceidn de descarga de temas de Drupal 5. Comience a publicar contenido. Finalmente, puede crear contenido para su sitio Web. Este mensaje des- aparecerd tina vez que haya publicado por primera vez. Para més informacion, vava a la seccién de ayuda, 0 a los libros en linea de Drupal. También puede enviar una pregunta al foro o usar un ampli rrango de opciones de soporte. Puesto que ya ha creado la primera cuenta (la de administrador). Ahora ya puede probar todas las funcionalidades. Resolucién de problemas Si Je gusta diagnosticar problemas, probablemente Ie gustara la Web, Hay muchas cosas que fallan, en muchos lugares y de muchas formas, por lo que estarfa ocupado durante muchos alos. Echemos un vistazo a algunas problemas Web clasicos. (Los mensajes de error del navegador que usa Firefox, aunque los de Internet Explorer son similares.) La pagina Web no aparece en el navegador Supongamos que el directorio ratz es /vax/wwa, su archivo ¢s test.html y su servidor es gervert .centraleoft .org. Cuando usa un navegador Web externo http: //serveri.centralsott.org/test -htnl, obtiene una pi- gina de error en la ventana del navegador. Un mensaje de error del navegador ‘como "Servidor no encontrado" implica un problema DNS. Primero, asegarese de que servers .centralsoft .org tiene entradas DNS en un servidor de nom- bres pablico 4 dig servert.centealaott.ors Admsnistando Apache 187 Lego vea si el servidor puede alcanzarse desde Internet. Si su cortafuegos permite pings, sondee si el servidor respond a la los pings desde fuera St ayes fron werver! Compracbe que el puerto 80 esté abierto y no esta bloqueado. Pruebe con ‘nmap desde uma maquina externa: W ranap -20 =p 90 aexvart-cantraleate.org Starting nmap 2.61 { Hbtps//wmy. insecure. org/anap/ } at 2906-07-28 Unteresting gota on servers centealgott.org (192,034,266! S0/top open REED Ningp Einieaed: 1 P address (2 Rost up) ecanaed in 0,186 soconde Sino tiene nmap, use telnet para conectarse al puerto 80 y haga la peti HTTP més simple posible: 4 teinet sarvert.centealeott.org 80 Gonnacted to serveri gentraleote org scape character ie "1 En / 3P¥P/1.0 wrre/t.2 200 0K Date: Wed, 26 dul 2006 o¢es2133 our Servers Apnche/2.0.54. |Pedoral Ener Noditied: Tue, 25 Now 2005 13:24:20 Gtr ‘evepe-Rangeo: bytes (content ypa: taxt/nemiy charset Comection closed by foreign host Si no funciona, aseguirese de que esta linea est en /ete/zpache2/ ports. conf: yy también, que puede ver algo muy parecido a esto en el puerto 80, como to siguiente: 188 Administrando Apache du pes 00991 Tee view Leta] Apaches go Tee 300%9L © Hep samwn (UTETRM Spachea de pee 00791 Rep vom (Uere| wemgsts an Tove 300761 Tee comm (LISTHI) tio ve apache2 en esta salida, compruebe que Apache se esta gjecutando: pe caet | ge Si la salida contiene Kineas como est Apache se esté ejecutando. Si no es ast, reiniciel: fH fotc/inte.d/apache2 stare Luego ejecute el comanclo ps de nuevo. Si Apache sigue sin aparccer, mire el log de errores: | enil +f /var/tog/epactet /erzor.tog Sino tiene permisos para ver este archivo, definitivamente hoy no es su dia, Si el log de errores estd vacio, quiz tenga los permisos equivocados, Confirme que ol directorio /var/1og/apache2 y /var/log/apache2/error logfile existen: 4 10-1 /vae/tog/epacne2 cice-s-- 1 Foot adm 379 dull 22 06:2 access log. 2-92 Si el log de errores muestra otra informacion mds antigua, probablemente ‘quede poco espacio en disco. Es sorprendente el ntimero de veces que olvidamos comprobar esto antes de investigar cosas mas esotérieas como los cortafaegos. Teclee: Administianda Apache 139 nae Puleayeten blacks Used available _uee¥ Hounted on Yasefhaai' —ioa40e200—agsasa Leaizezcd 1 Si ha usado una directiva User o Group diferente en la configuracion de Apa~ che, compruebe que el usuario y el grupo existen: Si cl navegador devolvi6 tun mensaje de error de Apache, todavia tiene campo para seguir investigando, Si lo que se muestra es: la URL probablemente no existe. Si puede ver: You don's have perwission to scene /permigaions.nem on thie ectver cl archivo esta abi, pero el usuario Apache no puede leerlo. ca /vazfone Los problemas de permisos pueden solucionarse eambiando el propietario del archivo al proceso que ejecuta Apache Los Hosts Virtuales no funcionan: Use 4 apachezees Para comprobar las directivas de host vir SSI no funciona Si ve leas como estas en el log de error (/vax/1og/apache2/error. Log): Corvorl an unknowa £titer was aot added: INCLUDES ces que no activé nod_incLude. Fjecute el comando: 190 Administrando Apache Un programa CGI no se ejecuta Sino consigue que un programa CGi se cecute, pruebe las siguientes soluciones: + Se hia activado ol CGI usando alguno de los métodos ya descritos ante riormente? + GEsta el programa CGI es un directorio CGI como /vax/cgi~bin o tiene ‘un sutfijo come php? + Se puede leer el archivo? Sino, use chmod + cQué dice et log de errores de Apache? + LQuédice et log de error del sistema, /var/1og/nessages? SSL no funciona ‘Compruebe que tiene activado el médulo SSL de Apache (a2enmod ss) eindi- que a Apache que escuche en el puerto 443 en /etc/apache2/ports cont: Sila directiva no estuviera ahi, afdala y reinicie Apache. Luego intente acce- der a esta URL desde su navegador: https: //serverl .centralsoft.org. Sh sigue sin funcionar, puede que el puerto 443 esté bloqueado por un cortafuegos. Puede comprobarla con nmap: A map -20 -p 443 servert.centralantt.org ‘searing map 3.70 ( netps//ene.d Interesting porte an. (--f 443/%ep opon heepe jecuce.org/amap/ | at 7006-08-02 ‘map ron competed -- 1 1 edieeoe (2 Boot upl seamed tn 0.254 seconde Capitulo 7 Clusters de carga balanceada Hace mas de 10 afios, as personas descubrieron que podian conectar malti- ples maquinas baratas para realizar tareas de computaciéa que en condiciones normales requeririan un mainframe o un supercomputador, El elister Beowulf de la NASA fue uno de los primeros ejemplos y atin hoy se sigue utilizando deep: // yew beownl£ org). En la Wikipedia (http: //en wikipedia. org/ ‘wiki /Conputer_cluster) estén recogidas algunas de las caracteristieas prin cipales de un cluster: un clister ¢s un grupo debilmente acoplado de ordenado- res que trabajan juntos y que en muchos aspectos puede verse como un tinico ‘ordenador. Los clusters a menudo, pero no siempre, estn conectados mediantes redes de area local de alta velocidad. Los clusters se suclen desplegar para mejo- rar la velocidad 0 la iabilidad que ofrece un unico ordenador, puesto que olte- ccen una relacion efectividadcoste mucho mejor que un Unico ordenador con las ‘mismas prestaciones, ‘Los clusters son upa buena solucién cuando lo que busca es mejorar la veloci- dad, fiablidad y escalabilidad a un precio razonable. Amazon, Yahoo! y Google Dasan sus negocios en miles de servidores configurados como clusters. Es més ba~ rato y més facil ampliar su negocio horizontalmente (afladiendo més servidores} _gue verticalmente (comprando maquinas mas caras}. Hay muchas soluciones Linux para clusters, tanto libres como comerciales. En este capitulo deseribiremos algunos ‘lustersbasados ene Linux Virtual Server (aeep://ses.2inwerirtual -server.org) que es libre. Le mostraremos cémo combinar tres ordenadores en un ckister de ‘carga balanceada para el servidor Apache. También describiremos sus capacidades y, finalmente, las alternativas que existen. No pretendemos eubrir clusters de alto ren- dlimiento, computacion en grid, paralelismo © computacién distribuida; en estos campos, tanto el hardware como el software estan mucho mas especializados (por cjemplo, para prediccion meteorolégica 0 renderizado de grifcos) 192 ‘Clusters de carga balanceada Elbalanceo de carga (LB) ofrece escalabilidad: la distribucion de las peticiones en varios servidores. LB consiste en el reenvio de paquetes y en el conocimiento del servicio cuya carga va a balancearse (en este eapitulo, HTTP). Se basa en in monitor externo que recoge las estadisticas de carga de los servidores fisicos para {decidir dongle se dehen enviar los paquetes, La alta disponibiidad (HA) ofrece fiabilidad: mantiene fos servicios ejecutin- dose. Se basa en servidores redundantes, intercambio de mensajes del tipo "Estoy vivo" y un procedimiento para que en caso de fallos se sustituya el servidor onde se produjo el error por otro. En este capitulo, vamos a coneentrarnos en LB, puesto que los administrado- res tendrdne que enfrentarse a ello més a menudo. Para un sitio que pase a ser sensible dentro de una organizacién, la HA tambien es necesaria. Al final de este capitulo, ofreceremos varios enlaces iitiles para configurar sistemas que combi- nan halaneeo de carga y alta disponibilidad, El gemplo de balanceo de carga que vamos a usar en este capitulo es un gjem- plo simple que consiste en tres direcciones publicas y una virtual. Todas ellas se listan en la tabla 7.1 7-1. Direcciones y roles de los servidores en nuestro elister Deseripe Db 70.253.158.44 Balanceador de carga—servicio con direccion, publica web] 70.253.158.41 Primer servidor web—una de las IP reales (RIP) web270.253.158.45 Segundo servidor web—otra RIP (VIP) 70.253.158.42_¥P virtual (VIP) compartida por Ib, webt y web2, ademas de sus direeciones IP reales VIP es la direction que el balanceador de carga expone a los clientes, desde donde se distribuiran las peticiones a los servidores Web. Software para balanceo de carga La forma mas simple de balaneco de carga es un round-robin de DNS, donde iutiples registros A se definen con el mismo nombre, el resultado es quc los servidores esperan su turno para responder a las peticiones. Esto no Funcionaria bien si un servidor falla, ademés, no tiene en cuenta las necesidades especificas Clusters de carga balanceada 193 del servicio. Con itp, por ejemplo, si se necesita mantener una sesién de datos con autentifieacion 0 cookies, hay que asegurarse de que el cliente siempre se ‘conecta al mismo servidor. Para cumplir estas necesidades, usaremos dos herra~ -ientas un poco sofisticadas: + Servidor de IP virtual (IPVS): Un modulo balanceador de carga de nivel de transporte (TCP) que ahora es un componente estandar de Lin. + Idirectord: Una utilidad que monitoriza cl estado de los servidores fisicos. Las instrucciones de instalaci6n estan basadas en la distribucion de Linux Debian 3.1 (Sarge). IPVS en el balanceador de carga ‘Ya que IPVS est ya en el niicleo de Linux, no necesitamos instalar software, pero si configura. En Ib, afiada estas lincas a /etc/modutes. ioe ipovs_Ible Para activar el reenvio de paquetes en el nicleo de Linux de th, edite el archivo feve/ sysctl. cont y afiada esta linea: 198 ara cargar esta opeién en el nticleo: petriped ip forward © 1 Idirectord Aunque podriamos obtener Idirectord de manera independiente, lo obtendre- ‘mos como parte del pagquete Ultra Monkey, que ademas incluye software para HA, Debido a que Ultra Monkey no forma parte de la distribucion Debian estandat, necesitaré aftadir dos lineas a su repositorio de archivos de Debian (/ete/apt/ sources. List) en la maquina Ib ob neeps//inmultranonkey.org/dountoad/3/ earge wan eb-ave Http: Joy. altcenonkey.or5/downlead/? warge main Luege, actualice el repositorio y obtenga el paquete: 4 apt-get update 4 ape-goe inovell viteanonkey EL proceso de instalacién le hard algunas preguntas Nuestra configuracion tendra un servidor virtual (la direecién que ven los clientes, giecutando idirectord), que Hlamaremos director, y dos servidores reales {ejecutando Apache). Los servidores reales pueden conectarse con el director de tres formas: + LVS-NAT los servidores reales estén en una subred NAT detras del director que es ol ‘quien enruta las respuestas. + LVS-DR. Los servidores reales envian las respustas directamente al cliente. ‘Todas Jas méquinas estén en la misma subred y pueden comuniearse mediante irecciones Ethernet. No ¢s necesario que se pueda hacer ping desde fuera dela subred, + Lys-TuN Los servidores reales pueden estar en una red distinta de la del director. Se comunican mediante téenicas de tunneling IP sobre IP (IPP) (Clusters de carga balanceada 195, ‘Vamos a usar DR porque es facil, rapido y escalable. Con este metodo, desig rhamos una VIP que comparten el balanceador de carga y los servidores reales. Esto provoca un problema: si todas las méquinas tienen la misma VIP como se asocia dicha VIP a una direccign MAC fisica’ Esto se llama el problema ARP debi- {do a que los sistemas de la misma LAN usan el Address Resolution Protocol (ARP) para encontrarse, y ARP espera que cada sistema tenga una direction IP tin ‘Muchas soluciones necesitan parches o médutos del niicleo que cambian jun~ to con el nucleo de Linux, En la version 2.6 y superfores, una solucién muy popislar es permitir que el balanceador de carga manic el ARP de la VIP y, en los servidores reales, configurar la VIP como alias del bucle local. Por esta raz6n, los dispositives locales no responden a las peticiones ARP Esta es la solucidn que adoptaremos. Configuraremos todos los servidores Web prinnero. Configurando los servidores reales (Nodos Apache) cada servior real (web y web2) hay que hacer lo siguiente 1, Siel servidor Apache todavia no esta instalodo, instlaro: # apt-get ‘neta apache Si todavia no tiene fos archivos de contenido para su sitio Web, puede hacerlo alona o despues de configurar el sistema de balaneco de carga 2. Instale iproute (un paquete de Linux para trabajo en red con mas funcionalidades que herramientas antiguas como ifconfig y route) # apeesee 3. Afiada estas lineas a /ete/eyset1.cont: et pvt cont. eth arp ammounse = 4. Actualice los cambios en el nicl: f syactt hot apes hsasp ignore = 2 Enterfaces, asociando la VIP (70.253.15.42) con el alias lo:0: 196. Clusters de carga balanceada 6. Active dicho alias: © tap tore 2. Cree el archivo /var/sew/1dixector hem] con el contenido: estoy viva! 8. Ba web echo #/m wobt* > /var/mmv/vasch nent 8, En web2: echo */m web?" > /var/mm/wbich neat 10, Inicie Apache, reintcielo siya se est ejecutando: WH fote/inte.d/apacne? vestare Los logs de acceso de Apache no deberian mostrar actividad, puesto que Ib todavia no se ha comunicado con elie. Configurando el balanceador de carga En ib, cree el archivo de configuracién del balanccador de carga, /eve/ha.d/ ldirectord.cf. protocoisrep Shecktypeenegotiats ‘Si quiescent fuera yes, un servidor real que fallara dejaria de contar para ¢l balanceador, pero continuaria en la tabla LVS de routing; lo hemos puesto a no, por To que los servidores caidos se eliminan de la tabla, El peso de un servidor refleja su capacidad en relacién con los otros servidores. Para un esquema simple como el nuestro, todos los servidores operatives tienen un peso de 1, y los caidos un peso de 0. Si checktype es negotiate, el director hard una peticién http a cada ‘uno de los servidores reales de la URL solicitada, y vera si sus contenidos tienen el valor recibir. Si el valor fuera check, sdlo se haria una comprobacion TCP rapida, y las peticiones y las respuestas se ignorarian, Se deberfan haber creado archivos de inicio en /ete para Idirectord durante la instalacion. Ultra Monkey también instalé Heartheat, como no lo vamos a usar, Jo desinstalamos: update-ze.d heartbeat ranove Updase-ro.ds /ete/inie /neartheat exiete during 26.0 purge Etbalanceador de carga monitoriza el estado de los servidores Web, para lo que regularmente soicita el archivo que hemos especificado en ldirectord.cal(request = “directorhtmt"), Puesto que este servidor responders las peticiones Web que se hagan a través dela direccion VIP (70.253.158.421, dehemos indicérselo al servidor. Edite /ete/ natwork/interfaces y ahada estas lineas para crear el alias eth0:0: networie gotonay Ahora active esta nueva direce Finalmente, inicie los kireetordl en Ib 4 fete/inte a/raieectord stare Scarting léirectora... success Probando et sistema 1 ‘Comprobemes si el balanceador de carga se esté gjecutando en Ih: Deberia ver algo parecide a esto: Latzectord for /ete/na.a/iaivectord.ct te vunning with pia Si-viera algo como esto: Latzectord is topped for /etc/ha.d/idizectord.cf Clusters de carga balanceada, 197 198 Clusters de carga balanceada (Clusters de carga balanceada, 199 habria un problema. Puede parar el director y reiniciarlo con la bandera de depu- ‘cp 11 22158148 mall Latrectord (6543) + Doloted faldback servers 127.0.0.2:80 (ie 90.283.350-4480) Sep 22 2arsbia6 mail idixoctord( 85491 Added xs (% ao.geaase.gse0). (keigne act vo) racion ~dy ver los errores que se estin produciendo: 4 /usr/anin/lasrectord /ato/na.a/iMiractord.ct stop # fase/ansn/lassactord «§ /stoyna,a/lasrectord 8 Ese UebUG2: Running exec\/uss/ebin/idieestora “2 /ate/ba.d/lasrectord.cf start) Running xec(/uar/amin/tasrectoré. 4. /etc/na.a/ idiactord. cf atarcl director so Denoeos Starting Linum Direcror v1.7.2. 92 with pigs 12966 De regreso a webly web2, comprohamos los logs de acceso de Apache. Bl a y ns i ta direetor.htmil cada checkinterval segundos: ‘Starting ima Dixector vi.77.3.22 wich pid) 12984 70.053,158.44 ~ (11/50p/2006:22:49.97 -9500) SOE /aixector.eR DsBUGE: Bunaing systen(/abin/ipveadin “A =e 70.253.158.42:00 -e zr } meen fnning system /ebinjipvandm “Kt 70,989.198.42:00 -@ Fe) 20011 f=" "1sbwew-peri/5. 8c) Dench: Aged virtual server: 79.252-i58. 42:86 Jerass dab.cd = [15/Sep/2006,22:49.99 -eS00) “aRT /airecor hem ‘dda virtval server 90.259. 198 42:00 srie/ain DEBUG2: Cheering Regoriace: real En su navegador, vaya a la URL del sitio virtual http: //70.253.158.42/ Berver-naget late: rep.tap 99. 263-158.41:90;+;\/aisactor\ heml:2\"m\ alive vuhich hem ydeberta ver (esseuet snp. 0.253.158.4280), 1 DeBUGE® chook hétpr urle 1p: //79, 253.188. 42s80/dsrectos.Rml* so eoy webs Laps sUeceagents news i) ° Weenie nese tory! see pean Ye soy wane bir pectecah eps remine O Sil balanceador de carga no funciona o une de fos servidore Web est cao, Bihlgastgens somese opts eZines: oe siempre obtendr la respuesta del mismo srvidor Web seegojaseesox nen! 46 op Ahora, pare Apache en webl: ‘La salida sera mas corta si checktype esta definido como check. Para curiosear, podemos ver los mensajes de bajo nivel del servidor de IP virtual # Jore/snse.a/epache stop Actualice la pagina del navegador http: //70.253.158.42/which. btm 3 P. fe tian Gevves version 1.2.0 tsleort096) Siempre deberia obtener la respuesta: Dapgssisesties fous tO : Afiadiendo HA a LB El balanceador de carga representa un tinico punto de fallo. Si falla, lo servi ores Web que dependen de él dejardin de ser accesibles, Para hacer el sistema mas seguro, puede instalar un segundo balanceador de carga en configuracion HA Esto muestra que nuestro primer servidor real esta activo, pero el segundo no, ‘Tambien podemos comprobar las logs del sistema en Ib: Bee ee anos asipne ee oa cacieldores Apache, puesto que ldlectord lov sonda todos cals eheckinerval 1 90.259-188.a4s00), Geeight eet to 2) de HA, 200 ‘Clusters de carga halanceaca Afiadiendo otros servicios LB Hemos usado servidores Web Apache como ejemplo para este capitulo porque es uno de los servicios que puede necesitar una granja de servideres, Otros servi- ios también podrian beneficiarse de LB/1IA, por cjemplo MySQ1,, servidores de correo 0 servidores LDAP. Consulte http: //www.hoxtoforge.con/ Joadbalanced_aysql_cluster_debian para un ejemplo de MySQL. Escalabilidad sin LB y HA Si ofteciera un magnifico servicio, Zseria el servidor capaz de soportar gran~ des picos de actividad? Si no ¢s ast, su eredibilidad se veria afectada y muchos visitantes no volverian, Pero debido a que LB y HA necesitan un importante es- fuerzo ¢ inversién en hardware, no esta de mas considerar otras posibilidades. Hay otras formas de conseguir un mayor rendimiento del equipo actuall. Por sjemplo, puede desactivar los archivos .htaccess en su. configuracisn Apache AllowOverride None), 0 usar nod_expires para evitar lamadas de actualiza- cion de los archivos como imagenes. Hay muchos libros de Apache con trucos de optimizacion, Una vez que se alcancen los limites del software del servidor Web, pueden considerarse otras alternativas. En muchos casos, servidores Web como lighttpd (neep: //wiw. Lighttpd net), Zeus (http: //we. zeustech.net) y litespeed (http://Litespeedtech. com) son mis rapidos que Apache y consumen me- nos memoria, ‘También puede mejorar el rendimiento por otros métodos. Cachés de codigo, que incluyen aceleradores PHP como e-accelerator (hte: //eaccelerator.net) yAPC (http: //ape communi tyconnect .com), guardan PHP como bytecode ¥ asf evitan fener que usar tiempo de computo en cada acceso a una pagina, Caches de datos, como la caché de consultas de MySQ) guardan los resultados de consul tas idénticas. La replicacién es una forma de LB. Memeached (xt tp: // danga..com/nemcached) es una forma rapida de almacenar resultados de biis- ‘quedas. Squid (tp: //www.equideache org}, cuando se usa como proxy in verso, es un caché de paginas que puede almacenar todo el contenide del servidor Web. Cuando los servidores estén separados en varias aplicaciones (por ejemplo MySQL ? PHP ? Apache), las mejoras son multiplicativas; por ejemplo "Getting Rich with PHP 9° (netp://calks php.net /how/oacond6) indica cémo con seguir que una aplicacion PHP que soporta 17 lamadas por segundo pueda pa- sar a soportar 1,100 llamadas por segundo en una tiniea maquina. Si ya esta Uusando estas téenicas pero no solucionan sus problemas, definitivamente inten- telo con balanceo de carga, y sila estabilidad es eritica incorpore tambien HA. Clustess de carga balanceada 201 Otras lecturas Mis detalles sobre el software usado en este capitulo estan disponibles em las siguientes paginas Web’ + Linux Virtual Server Project (attp://waw.inuxvirtualserver ora). + Ultra Monkey (http://www -ultramonkey org) + Heartheat/The High-Availability Linux Project thetp : //14nux-ha .orgS) ‘Tambien tiene otza opeion, y puede echar un vistazo a Ia Red Hat Cluster Suite (nttp: / fw. redhat .com/ software/rha/cluster), un proclucto LB/HA comercial para Linux que usa LVS. EI mismo software esta disponible gratuitamente (pero sin soporte) en Centos, | Capitulo 8 Servicios de red de area local En este capitulo repasaremaos algunas de las destrezas que un administrador de sistemas necesita para gestionar un equipo situado detrds del cortafuegos o la ppasarela de una compaiia, una organizacion 0 incluso una red local Algunos de nosotros preferimos referirnos a tecnologias de Internet en hogar de aredes de area local, puesto que ereemos que no presenta ningdn desafio. Pero ‘cuando necesitamos configurar o arreglar algo en nuestro entorno de trabajo, la red de drea local adquiere mucha importancia. Por ejemplo, piense que sucederia sie correo clectrénico del directorio no funcionase Una red local se pucde evar la mayor parte del tiempo del administrador de sistemas sino sabe manejarla, Por lo que, si acaba de empezar en la administraciin de sistemas, necesitara aprender como instalar, configurar y mantener los servicios de una red local, Para la primera toma de contacto, eche un vistazo ala edicion mas reciente del lbro"Linux Network Administrator's Guide Terry Davsson", (O°Reily. unto si posee conocimientos lisicos como usuario cle Linux, como si nunca ha oder hhablar sobre los temas de este capitulo, le aseguramos que son muy interesantes. En este capitulo, exploraremos los sistemas de archivos distribuidos, como. configurar los servicios de DIICP y de pasarela (incluyendo el routing entre la LAN e Internet), os sistemas de impresi6n corporativos y la gestion de usuario. Los servicios de correo clectrénico local, también estén bajo el paraguas de las EAN. Pero ya cubrimos esas aspeetos en capitulos anteriores. Usaremos la distri- Dbucidn Fedora Core para este capitulo. Red Hat patrocina el proyecto Fedora y hormalmente lo usa para probar Ja prOxima distribucién empresarial estable. Fedora no es la versién mas estable de Red Hat, pero s{es razonablemente estable Yy robusta. Red Hat ofrece paquetes nativos de muchas herramientas para Fedora, dgjando a Fedora en la vanguardia de las distribuciones libres de Linux, que pue- 208 Servicios de red de drea local den usarse para uso comercial. Sino le gusta ¢l modelo de Red Hat, puede aplicar el material de este capitulo a otras distribuciones de Linux. Le sugerimos que profundice en este material: necesitaré ponerlo en practica en un entorno de trabajo, ademas no encontraré este material en otro sitio. Sistemas de archivos distribuidos Xs dificil imaginar el tiempo en que los PC trabajaban de manera auténoma sin los beneficios del trabajo en red o la conexi6in a Internet. Pero los PC no fue~ ron originalmente disefados para trabajar en red. Pucde que recuerde la época en que la gente transferia archivos entre equipos con disquetes, 0 usaban un con mmuutador para poder compartir una impresora. Eran tiempos dificil. Después de la introduccién del PC, se tardé varios afios en crear tecnologia basica para el trabajo en red como los sistemas de archivos distribuidos. Estos sistemas de archivos distribuides transformaron el paisaje de los negocios, cebi ddo a que permitian compartir lo que cada uno tenia en su escritorio. Ya no haeia falta rellenar manualmente un formularie para que el operador de un sistema ‘mainframe le dejara hacer su trabajo. El trabajo en ved se hizo mas popular cuando un investigador de IBM, Barry Feigenbaum, convirlié un sistema de archivos DOS en uno distribuido. Sus esfuerzos ayudaron a crear el protocolo de aplica- cion Server Message Block (SMB). La era de los administradores de sistemas y de los ingenieros de red habia comenzado. Los sistemas de archivos distribuidos permiten a los usuarios abrir, ler y es- Cribir archivos que estaban almacenados en otros ordenadores distintos al suyo. En algunos entornos, un tnico ordenador de altas prestaciones almacena los ar~ chivos, y los usuarios acceden a ellos a través de una LAN; el ordenador central puede incluso almaeenar los directorios personales de los usuarios, por lo que todo el trabajo se almacena en él, En otros entornos, los usuarios almacenan ar chivos en sus PC, pero permiten a los otros usuarios acceder a estos archives, Los dos entornos pueden combinarse. A esta préctica se la suele conocer como comparticion de archivos, y a los directories (0 carpetas) aos que os usuarios pueden accedler desde maquinas remotas se les conace como directorios comparti- dos. Los PC se convirtieron en los protagonistas de los negocios a finales de la década de 1980, y las redes de area local se dieron a conocer a mestida que los PC evolucionaban ¥ la gente se dio cuenta de que necesitaba compartir sus recursos. Intente imaginar qué supuso la introduccién de la LAN para un grupo de usuarios que nunca antes habia trabajado en red. De repent, los compaiieros de trabajo poslian compartir documentos, imprimir en impresoras que so estaban en su despacho y responder a correos enviados por gente de su oficina, de st campus o de pals. Todo esto supuso una verdadcra revolueién. Senvicios de red de Stea local 205 Hoy en dia, muchos sitios almacenan sus usuarios en archivos eriticas en. servidores centrales, que controlan los permisos de acceso a los archivos. Habla~ emos sobre gestidn de usuarios mas tarde en este mismo capitulo, Introduccién a Samba La comparticién de archivos y de impresoras con SMB evoluciond de la mano de Microsoft en el protocolo Common Internet File System (CIES). CIFS ha sido Publicado como un estindar, pero esta poco documentado y contiene muchos ‘comportamientos secretos que Microsoft sigue desarrollando. Sin embargo, un ‘grupo intrépido de desarrolladores ha estado haciendo un trabajo de ingenieria inversa con el protocolo, y ha creado uno de los proyectos de software libre mas populares y que puede tsarse tanto desde sistemas Microsoft como otros siste- mas: Samba, Samba est legando a ser muy popular; puesto que se usa significativamente en Windows, en Linux ¢ incluso en Mac 05 X. Como axiministrador de sistemas Linux, necesitara comprendler Samba. Si de- sea profundizar en Samba (deberia hacerlo), existen excelentes libros que tratan Ja materia, incluyendo gufas de documentacién en linea atep: //eambs..ors. Para usar una cita comtin, "Una deseripcién mas a fondo de este tema sobrepasa cl Ambito de este libro". Actualmente, no tenemos una razon para duplicar el excelente material que ya esta disponible, Sin embargo, queremos describir Sam- ba con sufciente detalle para hacer funcional su entorno. Afortunadamente, la mayorla de las distribuciones ofrecen interfaces graficas muy sencillas que per- iiten administrar Samba, describiremos algunas de ellas aqui. Algunas funciones principales de las redes CIPS (sobre todo la forma en que Jos sistemas se buscan unos a otros) tienen lugar en controladores de dominio: servidores que ofrecen archivos, impresoras y varias operaciones de control. ‘Samba puede integrar méquinas Linux en redes de Microsoft como servidores dde archivo ¢ impresoras, controladores de dominio o miembros de an grupo de trabajo, La tltima version de Samba puede operar con el Active Directory de Microsoft Samba combina LDAP con funciones como un servidor de autentificacion robus- ta, sustitayendo tanto a los controladores de dominio de Microsoft NT como a los servidores Active Directory. ‘Samba también puede desempeiiar un papel de compartidor de archives en entornios més simples, donde los miembros de pequefias oficinas o departamen- tos de una gran organizaciOn usan redes punto a punto. Los usuarios de escrito~ rio pueden compartir sus impresoras y archivos con otros sin que éstos tengan {que autentificarse. Si funciones sensibles como contabilidad financiera o almace- namiento de personal se gestionan en wna maquina, pueden implantarse politi- 206 Servicios de red de area focal ‘eas de seguridad que sirvan de escudo para otros usuarios sin comprometer la disponibilidad de los recursos de la red punto a punto. Ahora, echaremos un vistazo a las redes Limax/Windows y veremos eémo puede configurar Samba para sus usuarios de escritorio, Configurando la red La figura 8.1 representa una red y puede verse desde un sistema Linux (la Alistribucién Xandros, que es un entorno Linux de eseritorio aderuado para entor- ‘nos corporativos). 1a vista de arbol de la parte izquierda de la pantalla muestra euatro equipos lamados Athlon, Atlanta, Dallas y Dell. Dallas ofrece una impresora, junto con varios directorios, alos otros sistemas; Dell también aloja una impresora, Uno de Jos otras ordenadores ejecuta Windows XP y los otros dos ejecutan Windows 98, {Linux los agrupa a todos por igual. El sistema Linux hace lo mismo que un siste- ma Windows con la opeidn Mi entorno de Fed o Mis sitios de red, Figura 8.1. Los archivos y os directories compartidos por un sistema Linus, {aly como se ve desde un PC con Windows Servicios de red de drea local 207 En la parte derecha de Ia pantalla en la figura 8.1 destacan Jos directorios ‘compartidas del nodo llamado Dallas, que es un sistema Windows XP También. puede ver el archivo de un procesaclor de textos llamadoxp_network setup. sx {que se ha guardado en el formato nativo det OpenOtfice Writer (Versién 1). iPue dificil configurar la red? Aparte del cableado estandar, las conexiones: [Ethernet y la instalacion del cortafuegos y del modem, el sistema se instala por si solo, Hemos seguido los procedimientos estandar para Windows 98. Los siste- ‘mas usan DHCP para obtener sus direcciones IP. servidores DNS y la direccin hasta la pasarcla. El router ofrece servicios DHCP y una direccidn privada de Internet usanclo una red de elase C [desde 192.168.0.0 hasta 192.168.0.255), (Deseribiremos DHCP en la siguiente seccion.) Una vez que los sistemas Windows han establecido la configuracion de a red ‘y pueden conectarse a Internet, haga clic con el bot6n derecho del ratén sobre el icono Mis sitias de red, scleccione Propiodades y cambie las direcciones diniami- cas por estiticas, Esto permite a los ordenadores actuar como servidores de im- presion y ofrecer acceso compartido a Internet. Configurar sistemas Windows XP es ligeramente mas complicado, puesto que XP y Windows 98 son incompatibles entre si. Para asegurarse de que se entien- den, active el Simple Pile Sharing accediendo al Panel de Control de Windows XP y tjecutando el Asistents de Configarracién de Red. Este asistente nos pregunta si queremos activar la comparticion con otros equipos, refriendose a ordenadores con Windows 98. Al responder que sf se permite crear un disquete que podria~ ‘mos usar para instalar los protocolos de Windows XP en ordenadores con Windows 98, Este proceso actualiza los sistemas mas viejos a protocolos més nuevos, ofte- ciendo la posibiidad de que XP y Windows 98 puedan comunicarse. (El progra- ma ofyecide por Microsoft se lama netselup exe.) Luego se instala la distribucion Xandros y se activa el Windows Networking, tal y como se muestra la figura 8.2. FPyjese en que hemos sido capaces de configurar Windows Networking a través, el cuaxtro de dislogo. El eseritorio Linux nos ha permitido activar la comparticion ‘de archivos y de impresoras, dar un nombre al equipo, definir ef grupo de trabajo ¥y activar el nivel de seguridad compartida, que permite a los noclos usar la Funcionalidad Crs. ‘Ubuntu también le da la opcidn de configurar el Network File Systemt (NFS), wi sistema de archivo Unix-a-Unix a muy popular que es incompatible con CIS, Fl cuadro de dislogo de la figura 8.4 le permite escoger entre ambos sistemas; puede usar Samba para operar con Windows y Mac 05 X, mientras usa NFS para ‘operar con otros sistemas Unix/Linux. Los servicios de comparticion no se insta~ Jan por defecto con Ubuntu, pero si selecciona Carpetas Compartidas (en el ment de administracién de Ubuntu 6,10), Ubuntu descargaré los archivos necesarios; ‘ahora ya esté listo para ser miembro del dominio o del grupo de trabajo. 208 Senicios de red de drea local Figura 8.3, Configurando los recursos compartidos de Ubuntu en un entorne Windows, Profundizaremos un poco mas en aspectos de Samba mas adelante en este mismo capitulo. Sewicios de red de drea local 209 Piscemmcarsan cere Figura 8.4, Pantalla de configuracion de lo servicios de comparticion de archivos fen Ubu DHCP Los servicios de Dynamic Host Configuration Protocol (DHCP) pueden ayudarte ‘a solucionar un gran niimere de problemas asociados con entomos de area local incluyendo problemas de asignacion de direcciones IP y otros aspectos de admi- nistracion. Es dificil imaginar una red sin DUCE. ‘Veamos algunos aspectos que debe conocer y prestemos atencién a cémo pue= den ayudaenos' + Los PC y las estaciones de trabajo necesitan una direccion 1P nica, infor~ macion DNS y conocer la ubieacién de las pasarelas, + Laasignacién mamual de direcviones IP provoca excesivo trabajo. + La duplicacién accidental de una direccidn IP crea contlctos en fa red, + La resolucién de problemas de red (como la duplicacién de direcciones) y los cambios de ubicacién provocan trabajo innecesato, + Los cambios de personal significan que alguien tendra que comprobar cada ordenador y configurar una nueva base de datos de asignaciones de IP + Elmovimiento frecuente de los usuarios moviles necesita que se reconfigure la red en los equipos portatiles. DHCP sotuciona estos problemas asignando direcciones IP a medida que cada sistema de la LAN arranca, El servicor DHCP asegura que todas las direcciones IP son tinicas. El servicio necesita una pequetia intervencién humana relativa a la asignacion y al mantenimiento de las direcciones IP. 10s administradores pueden escribir archivos de configuracién y dejar el resto del trabajo al servidor DHCP (ahepd). Este servidor gestiona el conjunto de dirccciones TP liberando al admi- nistrador de red de esta tarea. Instalando DHCP Para comenzar con DHCP, primero necesita instalar el servidor DHCP Puesto ‘que este capitulo se basa en Fedora, puede instalar el paquete RPM con Yum 0 210. Servicios de red de érea local con el gestor de paquetes /usr /bin/gnome-app- instal; la versién actual ‘del paguete es dhep-3.0.3-28.1386. (Los usuarios Debian pueden instalar el pa~ quete dhep3-server y editar ¢l archivo de configuracion /ete/anep3/ hop@. conf}. El software fue creado por Internet Systems Consortium. Una vez to haya instalado, configure DHCP en /ete/dhepa. cons, Como pri- ‘mer paso, copie el archivo /usr/share/doc/dhep/ahcpa cont sample a / ecc/dhcpa. cont. Luego, edite el archive para que se ajuste a su red. El siguien- te ejemplo es tipico. La sintaxis usa almohadillas (#) para los comentarios: ano-upaace-eeyla incense gneve elieae-vpaatees subnot 192,168.1.0 netmask 298.258.255,0 ( 4 - option nie-donain “aonain.org*s -- option eime-ofteee = option notilos-nare-eezvers 132.168.2.2; y'saleste poine-to-poine node (dataul" 2 hybeSA) Don't change this : Po hy 2 Unteve you understand Wetiioe very vell option netbioa-nede type 2 f we want che nameserver to appear at 4 fixed adirece hoot nef Eatnace atnernet a6;16,95:63:07570) ‘ sa. ) Hemos configurado unos cuantos elementos de nuestro archivo de configu- racién después de haberlo copiado al directorio /etc: Ssubpat_ 192.168.2.0 aatmank 255.255.285.0 [ Servicios de red de rea local 2 La primera linea define el rango del conjunto de direcciones 1P disponibles para los usuarios de la subred de la LAN. En este €aso, hemos usado la red priva~ fia de Clase C 192,168, 1.0 que ofrece 254 nods (desde el 192.168.1.1 hasta el 4192, 168.1.254). Esta mascara de red debe coineidir con la mascara de red usada para definir su LAN. Hemos especificado la direccién de la pasarela en la segurida linea (option router) -y el servidor de nombres en la tercera linea (option domain-name-servers).La direc- ‘ion IP es la misma en las dos lineas, puesto que es una practica comin hacerlo asi Un servidor simple con dos tarjetas de red a menudo acttia como pasarela de una red de area local. Una tarjeta, representaca por un nombre de dispositive como eth0, tiene una direceion en Internet, mientras que la otra tarjeta (supon~ jgamos que es eth) tiene una digeeeion en una red privada, Cuando el reenvio de paquetes y et cortafuegos iptables estén activados, cualquier servidor Linux pue- eactuar como pasarela/cortafuegos. En este caso, tambien se puede activar BIND fen modo caché para que funcion€ como el servidor DNS de la red. Las tiltimas dos lineas especifican la cantidad de tiempo que un cliente puede mantener la direecion, se mide en segundos En nuestro archivo de configuracién DHCP, también hemos afadido una chu sla para especificar la direccion estatica de um servider DNS corporativo, ne wont the naneserver to appeat at 2 fixed adareee Eimedadgrens 76-255.258-42;) En la présxima seecién deseribiremos como usar dhepd para asignar direccio~ nes IP estaticas basadas en la direccién MAC de la tarjeta de red del cliente, Pero fantes de hacer ¢s0, veamos una version sencilla de /ete/abepa cont dna-update-style interin; ‘nax-leane-time 1200; etner 192.168.1.0 neunaok 255.258.255.0 ( ‘option domain-nanc-servers gerver.centralsoft org, } ‘Nota Para servidores DACP senellos, el mantenimient sera ms senello siomite los comentarios y hace que el archivo de configuration sea pequeto, 212 Servicios de ted de area local Iniciando el servicio DHCP Algunos servicios DHCP necesitan un archivo dhepd.leases. Use el comando touch para crear un archivo vacio en el mismo directorio gue el archivo ahepa.conf: 4 couch /var/Lib/anop/ahepa. Leases Antes de iniciar el servidor DHCP, compruebe que la configuracién es correc ta, Tambien seria recomendable configurar que el servidor se inicie al arranicar, Para iniciar el servider, introduzea: lncctthost2 -I4 aerviee dhepd start Starting dhcp Toe} Trovtenoats It ‘También puede comprabar si el proceso DHCP se esta ejecutande con el si- _guiente comando (si el servicio se esta ejecutando, se mostraré una linea con las estailisticas del proceso): 4 pe aux | grep ances Foot 9028 O-0 or0 2552 626 Ge 09:40. 0:00 /uer/ebinsaheps Use ef comando chkconfig para conseguir que DHCP se inicie al arrancar # chucontig "ise from the 1h Ghopd OLofE tsott aon Sian son Sion aE Al igual que sucede ¢on los otros servicios de Linux, tended que reiniciar el «demonio DHCP siempre que haga cambios en los archivos de configuracién, Pue- de establecer otras opciones en el archivo anepa, coné de manera global o para clcliente de un equipo o para tna subred. fsto quiere decir que puede establecer tuna configuracign por defecto para su red, y luego sobrescribiela para un cierto grupo de maquinas ¢ incluso para maquinas individuales. Aqui hay un ejemplo le una seecion de conliguracion global en la parte de arriba del archivo ahepd cont: Ofreciendo direcciones IP estaticas Las estaciones de trabajo suclen funcionar bien con direcciones dinémicas (es decir, direcciones que pueden cambiar periédicamente o después de reiniciar) pero los servidores normalmente necesitan direcciones estaticas, por lo que sus srecciones no cambian mientras estan atendiendo a un cliente. Por ello, DHCP 2 Servicios de red de drea local 29 permite especificar direcciones IP estaticas para sistemas particulares en Shep.conf, Vamos a hacerlo, Primero, configure la subred, la direccion de broaalcast y los routers: Luego, afiada una seccién host por cada maquina de la ved. Para hacer esto, necesitard saber Ja direccién hardware (a menudo Hamada direccion MAC) de cada tarjeta de red, que podra averiguar usando el comando ifconfig en cada equipo. Aqui mostramos un ejemplo de wna seccién host host laper-peinter ( initiates 2.020) } Cree una eldusuia de configuracién como esta para cada servidor que necesite ‘una direcciin IP estatica y afiadala al archivo de configuracién, Asignando direcciones 1Pv6 con radvd A finales de 1995, Steve Deering y Robert Hinden se dieron cuenta de la nece- sidad de un nueva protocolo de dieccionamiento para Internet, Su primera espe- Cificacign de 1Pv6 aparecio en 1995, en el IETF Request Ror Comments {REC} 1883) la segunda apareeis en 1998, en cl RFC 2460. Deering y Hinden argumentaban Jo que mucha gente va sabia: que el espacio de direcciones de 1Pv4t de $2 bits iba a limitar el crecimiento explosive de internet Algunos aciministradores de sistemas se han dado cuenta de que IP¥6 y sus métodos para asignar direcciones IP han empezado a ganar popularidad, Aun- {que mucha gente duda de IPv6, argumentando que es innecesario o que en nun~ fa se va imponer en la préctiea real, hay muchas aplicaciones y muchos entornos que estan girando en esta direccién, ‘Nota: Una descripcion exhauistiva esta, de nuevo, fuera del alcance de este libro: para mis informacion sobre el protocolo TPv6 y su demonio, asi como para saber como obtener direcciones 1Pv6 pmbliea, tended que buscar en blt0$ sitios. na Servicios de red de érea local Las direcciones 1PV6 a menudo incluyen la direccién hardware de la tarjeta de red, Esta propiedad permite a los usuarios de IPV6 obtener la direccion IP esttica sin necesitar ninguna configuracién en la parte del servidor que soporte estas direcciones. La asignacién automatica de direcciones IPv6 puede hacerse con la ayuda del demonio router-advertising radvd. Los usuarios de Fedora pueden insta- lar el paquete radvd-0.9.1 desde los repositories Yum. Los usuarios Debian pueden instalar el paquete radvd y leer el archivo /usz/share/doc/redva/ README Debian, radvd escucha las peticiones que se hacen al router y envia mensajes tal y como se describe en el RFC 2461, "Neighbor Discovery for IP Version 6 (IPv6y Los equipos pueden configurar automaticamente sus direcciones y escoger sus routers por defecto basandose en estos mensajes. radvd soporta un protocolo sencillo. Su instalacién también es sencilla, Un. ‘emplo de configuracién para el archivo /ete/radva..cont seria este: ntezface otho } 4S Si quiere usor radu, necesitaré cambiar el prefijo por uno de sured y conti gurar el servicio, También tendra que ovsigurar €l'DNS en ls estaciones de Trabajo clientes de forma separada, Puede encontrar variadainformacién sobre el proyecto radvd en a pagina http://www. itech .org/radva. = Servicios de pasarela Linus ofree facials a os usuarios para que naveguen por Internet sin exponer sus dreeones1Pindvidales public. Laconfiguractn tps ecu sn orgizadin del pao war x com router a pate evade el ruter lan aetividads locales no pace ser detectadas por nadie de pate pablica, , : ' La gente a veces se refice a una pasarsla como aun bastion host Lo eorreeto es pensar que es una entdad de re que ofree wna nea entrada Y una cna Salida hacia nterct El buston hast yada a vitor secomprometa la Se Fidad de una red ofrecindo una bartera entre las teas publica pivod Nos ts administrador de sistemas Lins planta servicios de psarea usan- do una combinaion de reenvio de paguetesy relas de cortafueyos conedas Servicios de red de drea local 215 como iptables, También hay disponibles otvos servicios de pasarela, como el en= rmascaramiento o el Network Address Translation (NAT). En organizaciones pequefias y en redes locales, una pasarela puede implan- tarse en un tinico servidor incluyendo seguridad bésica, un cortafuegos, DHCP, DNS cache y servicios de correo. En organizaciones més grandes, tales servicios estan normalmente repartidos por varios servidores, con una zona desmilitari~ zada (DMZ) actuando como pasarela, El papel de una DMZ En seguridad informatica, se conoce con el término zona desmilitarizada a tuna red perimetral, que ¢$ una subred o una red situada entre Ja red interna € Internet. Por ejemplo, su red privada deberfa usar una red privada del tipo 192.168.1.0, la DMZ 10.0.0.0 y el bloque publico de Internst 70.253.158.0. ‘Las DMZ se usan para contener servidores que necesitan ser accesibles desde fuera, tales como servidores de correo, servidores Web o servidores de DNS. Las conexiones desde Internet a Ja DMZ. suelen controlarse usando la funcién Port Address Translation (PAD) Una DMZ se sue situar en el medio de dos pasarelas 0 cortafurgos y comecta ‘a ambos, con una tarjeta de red conectada a Ja red interna y otra conectada @ Internet, Una DMZ puede evitar fallos de configuracion accidentales que po- rian permitir ef acceso desde Internet a la red interna, A esto se le Hamma cortafitegos de subred apantallada. Para nuestros propésitos, seré suficiente con limitar la configaracién de la pasarela para elreenvio de paquetes; no gastaremos tiempo en la DMZ, que ne- Cesita mucho equipamiento y esfuerzo, Para levantar una pasarela necesitar: + Un ordenador dedicado que actite como pasarela + Una conexidn a tnternet y dos tarjetas de red, + Un pequcfio conmutador para que las maquinas clientes se conecten a la pasarela + iptables instalado. Supondremos que eth es su conexién de Internet y eth es su pasarsla interna en esta configuracion, Flite el archivo de configuracién para eth, que eté en / etc/syscontig/netwarking/devices/ifc#g-eth0 para incluir las siguien- tes lineas: 216. Servicios de red de ste local Asimismo, la configuracion para etht deberta ser SyPherehernet {La informacion de estos parametros de configuracion puede encontrarse en el archivo syscontig. ext, que encontrar en /usr/share/doc/initecripts- 7.93.7. Con las tarjetas de red configuradas, necesitara asegurarse de que ha instalado iptables. Deberta ver et siguiente resultado: rootehose? devo tootehet2 devicea)4 Sino tiene iptables instalado, instalelo ahora y cargue los médulos. Nota: Fedora 5 instalara iptables usando la aplicacin tnstalar/Desinstalar Software, ubieado en c directorio por encima dle! men Aplicaciones cn eh Bane! GNOME. tambien carga meso del here como parte del proceso Luego ejecute: # eno I> Jproc/eye/aet/tpr4/tp_ forward OSTROUTING -o eth0 -j mASQtERADE Ahora edite /etc/sysct .cont, cambiando net .ipv4.ip forward = 0 por para mantener eto atv tra sla Puede heer qu isin ele etc/sysct1. cone tecleando: 7 te # sysctl -p Finalmente, si tiene una pequeta organizacion, puede afadir DHCP al servic dor usando una version senvilla de ahepa. cont: Servicios de red de dtea focal 217 sna-update-ctyle interim: Minot a93c268.4.0 netmosk a50-385.255.0 | Shion dominaate-vorvess eervertcenteelsete.or3, server! ceansalaate- org (Otra aproximacién a los servicios de pasarela Esta seccién cubre el uso de productos que son combinacion de pasarela y cortafuego y que ofrecen conjuntos de multiples funcionalidades. Existen varios paquetes gratuitos como Firestarter, IPCop, Netfilter y Shorewall. Verd como en. Ia literatura Linux tambien se menciona Smoothuvall y ClarkConnect, pero son productos comerciales que instalan una distribucién Linux entera, no aplicacio- nes independientes, Para st uso correcto en este capitulo, hemos clegido Firestarter. No obstante, puede que quicra echarte un vistazo a Shorewall, una utilidad de configuracién para Netfilter (una herramienta de linea de comandos). Puede descargar Firestarter desde los repositorios de Fedora. Nuestra instalacion necesita el si- _guiente paquete: rostehost2 -18 rpm -q Firestarter (rostansce? <18 El asistente para Firestarter (figura 8.5) se lanza cuando un administrador inicia el programa por primera vez, Puede relanzar el asistente desde ef men del cortafuuegos en la interfaz principal, asf como cambiar las opciones desde la op- ign Preferencias, Después de la pantalla de bienvenida inicial, habré una serie de pantallas de configuracion, comenzando por la pantalla de configuracion det dispositivo de red (figura 8.6), que puede configurar tarjetas de red duales. 1.a funcidn principal de Firestarter es la de compartir conexiones. Sin embar~ go, desde que usa NAT, funciona como una pasarela, por lo que los PC de una TAN es como si fueran una dnica mAquina con una tinica direccién IP para Internet. Esto es evidente, por ejemplo, en la pantalla de prelerencias mostrada en la figura 8,7, Fljesc en que la descripeion del primer dispositivo se refiere a un "Dispositivo de red conectado a Internet” y la segunda descripcién se refiere a una "Red local conectada a.un dispositivo" 216 Servicios de red de Stea local pwecerevtvan Welcome to Firestarter Figura 8.5. Asistente para el cortafuegos Firestarter, ——— Network device setup Figura 8.6, Pantalla de configueacio Uel dispositive de red Tambien se puede ver en Ja parte de abajo de la figura 8.7 que Firestarter permite al administrador usar una configuracién DHCP existente para creat una nnuieva. Aqui mostramos el archivo ahep .conf de Firestarter: 4 oueP contiguration generated by Pirentarter Gana-update-atyle incerin; Sgnove ol ient updates subst, 192.268-1.0 netmask 258.255.285.0 [ option ip-forwarding off, fete sees ng ‘etaut-leaee-tine 21600: Figura 8.7. Pantalla de preferencias para Hicestaret El archivo xeaoly. coné de la pasarela contiene la configuracién DHCP de las smaquiinas clientes, por lo que Firestarter lee el archivo y coloca las dlirecciones del servidor DNS en dhepa conf. La interfaz principal de Firestarter ofrece una vista del estado de la pasarela y las conexiones a los equipos DHCP También ofrece un resumen de eventos y de actividad, tal y como se muestra en la figura 8.8. En la figura 8.9, puede ver una vista de la segunda pestana de la interfaz principal. En esta vista, puede ver las conexiones bloqueadas. El panel Eventos ofrece un log de intentos ee saltarse el cortafuegos, Puede ser Sil para saber que hay intrusos que intentan entrar en sus sistemas. Silos in= tentos son reiterados, afiada sus direcciones IP al archivo /etc/host deny. Si alguien intenta entrar mediante ssh por el puerto 22 usando un ataque de die~ cionario, simplemente puede cerrar el puerto con Firestarter, El icono de Firestarter se vuelve rojo cuando detecta algtin riesgo potencial Fjese en el mensaje de la figura 8,10: "Detectado intento de conexion...” Merece la pena investigarlo. la tercera pestafa de la interfaz principal permite defini las politicas para los servicios que se deben permitiry los que no. Por ejemplo, permitimos conexiones SSH, por lo que establecemos la politica de permitir SSH en el puerto 22. 220, Servicios de red de Sea local ae as ey ta a ee SPREE cr tasentae use sores) Servicios de red de diva local 224 T@ weenie ¢ Figura 8.10. ono mostrando un intento de nr, Firestarter usa un asistente para configurar las politicas de pasarela. Puede ‘hacerse una idea de c6mo funciona viendo la figuea 8.11 1a figura 8.11 muestra una ventana Hamada "Afadir una nueva regla de entrada’. Esta regla aparece despues de que seleccione Aiadir Regla en la pestana Politica, En esta ventana, puede ver una seleccién de opciones que pueda usar para permnitir servicios dentro de Ia red. Tambien existe una pantalla similar para ‘ofrecer servicios externos a los usuarios Vera que Firestarter es una aplicacion muy facil de configurar, La comunidad que soporta el proyecto ha hecho un gran trabajo; ha documentado los procedi- mientos suficientemente y ha creado una guia del usuario que puede encontrar en http: //fs-security.con/decs. php. Figura 8.11. Configuraci de pottieas para Firestarter ‘Nota: Liegados a este punto, puede preguntarse por qué hemes ineluido luna aplicacion dependiente del entorne grifica GNOME. Recuerde que ‘cuando escogimos Fedora como distribucién para el trabajo en red focal, Yo hhcimos debido a su gran conjunto de hereamientas, adi Firestarter encaia entre de nuestra ilosofia,lengase en cuenta a posbiidad de usar a interfaz de linea de comands, 222 Servicios de red de area local Servicios de impresién ‘Como administrador de sistemas Linux, debe saber que las impresoras pueden darle més de un quebradero de cabeza. A menudo encontrara que el hardware, et software y el sistema operativo son incompatibles. Debido a la amplia variedad de sistemas y de métodos para configurar las impresoras, esta drea de adminis- tracion puede conseguir ponerte de mal humor durante unos meses, 0 al menos hhasta que se haga con la situacién. Vamos a empezar por el hardware. La mayoria de los administradores deseu~ brirdn cuatro tipos de hardware para impresoras en red. En las reds existentes, puede encontrar algunos de ellos ya configurados: + Impresoras asignadas a equipos PC. + PC dedicaulos como servidores de impresion, + Impresoras de red con tarjetas Ethernet, + Dispositivos servidores de impresién conectando directamente impresoras ala LAN, En ofieinas de tamano medio, probablemente vera varias de estas soluciones muy a menudo, La flexibilidad ofrecida por los sistemas de escritorio modernos a menudo cauisa problemas, Supongamos que uno de sus usuarios, Sally Jean, compra una impresora de inyeccién de tinta, solicita la compra como un gasto menor y la consigue. Luego, la conecta directamente a su PC. Billy Bob, que se sienta en la mesa de al lado, le pregunta que si puede usar su impresora, por lo que ella hace clic con el hotén. derecho det ratén sobre el icono de la impresora y selecciona Compatir. Billy Bob se intenta conectar a la impresora de Sally, pero no lo consigue. Por que? El no tiene el driver instalado, Asi-es que, estos dos usuarios Haman al administrador de sistemas (es decir, a usted) para que les solucione el problema, Usted instala el driver en el PC de Billy Bob, y de repente, como por arte de magia, funciona. Mas tarde, Sally Jean le llama y se queja de que su PC necesita mas memoria y un procesador mis rapi- do. {Por qué? Hay diez personas usando st impresora porque la ha compartido, ¥¥ eso hace que todo vaya mds lento. Cuando usted comprueba la sittiacion, puede ver que hay una impresora li- ser que soporta grandes cargas de trabajo en la esquina y que nadie la utiliza, ePor qué nadie la utiliza? Sélo hay que investigar un poeo para darse cuenta de que nadie la ha agregado al controlador de dominio. Lo que esta hipotética anéedota muestea es que usted, come administrador de sistemas, necesita preparar una estrategia para gestionar la infraestructura de las impresoras. Esta secci6n del capitulo le ofrecer una vision de alto nivel, ast | | | Servicios de red de deca local 223 ‘como suficiente informacion practica para comenzar. Puede empezar el proceso haciendo un inventario del hardware y tomar decisiones respecto al software ya los sistemas operatives. ebido a que hay muchos tipos de impresoras y combinacién de dispositivos, sistemas operativos y software, tendra que aprender la mayor parte de lo rela cionado con la configuracién de impresoras mientras practica. La mejor manera de aprender sobre impresion en red es intentar desarrollar una estrategia sobre tuna infraestructura propia. Eso reduce la cantidad de informacién que necesita procesar, Consideraciones sobre el software de impresion Linux y Windows empezaron a trabajar con modelos de impresion completa~ mente diferentes, Afortunadamente, se han hecho progresos de eara a que pue- dan cooperar. Tero hasta que no configure las impresoras de su red, mo se dara ‘cuenta de que no son totalmente compatibles. Originalmente, Linux solia usar el estandar Unix para impresion conocido como el Line Printer Daemon (LPD); mas tarde, se afiadié un demonio actualiza~ do amado LPRng. Las distribuciones Linux también solian usar herramientas LLPD para imprimir e interoperar con variantes de Unix. Los distribuidores Linux contintian incluyendo LPD y sus herramientas, pero también han afiadido so- porte para un nuevo sistema conocido como Commun Unix Printing System (CUPS) Al contrario que LPD, CUPS es compatible con Windows y con Mac OS. CUPS y LPD usan diferentes protocolos de impresién, Ast como LDP no puede consultar aspectos basicos de un trabajo de impresi6n, CLIPS sf puede, CUPS tambien tra- baja directamente en redes heterogéneas y pucée adaplarse a Samba si fuera ne- ‘cesario, No todas las distribuciones Linux activan la interfaz, pero Red Hat incluye Fedora por defecto, Como administrador de sistemas, tend que familiarizarse con las herramien- tas administrativas de CUPS. En Fedora, simplemente tecleehttp: / /localbost :631 en un navegador y podra ver la interfaz de gestion presentada en la figura 8.12. Latnterfaz es auto-explicativa, por lo que le dejaremos la exploracion a usted, Sino tiene familiaridad con CUPS, eche un vistazo a la interfaz de gestién o vaya al sitio Web beep: //sww. cups .0rg/book/ index.php y ea el libre, Impresién en plataforma cruzada Ahora consideremos algunos dilemas a la hora de imprimir con los que ten- dra que enfrentarse cada dia en entornos empresariales. Casi seguramente se encontraré con situaciones donde necesitaré compartir impresoras Linux con 224 Servicios de red de érea local méquinas Windows, (De hecho, probablemente necesite usar Linux como ser- ‘vidor de impresién en una red Windows para aborrarse el precio de las licen- igs.) También puede necesitar compartir impresoras Windows en maquinas Linux Como hacerlo’, echemos un vistazo a como los usuarios de Windows acceden a las impresoras Linux. Basicamente, necesitara definir un grupo de trabajo 0 un dominio Samba, y necesitara instalar CUPS en su PC Linux. Tam~ bien necesitara configurar CUPS para Samba, que puede hacerse usando el si- guiente comando: an -e Swnton enbepool /usr/14b/cupe/backend/aab Para controladores de impresoras y asistencia |S SO) Sareea rete meee | Figura 8.12. lnterfaz de configuracion de CUPS, Exlte /etc/samba/seb.conf para compartir una impresora en un servidor Samba. En una situacién de la vida real es necesario restringir el acceso a ciertos Sistemas o usuarios para cada impresora, pero en el siguiente gemplo el PC Linux compartird todas sus impresoras con cualquier sistema de la red en el que se haya configurado Samba: Servicios de red de stea local 225 printers Su PC Windows ahora puede acceder a las Impresoras de a red. Probablemen- te necesitara los drivers de impresidn de Windows, incluso los drivers que entra- ron con su impresora, Enel siguiente escenario, necesitard permitir alos usuarios Linux que usen las impresoras conectadas a los servidores Windows, De nuevo, aecesitars CUPS y ‘Samba para hacer esto. En los PC con Windows, comparta las impresoras como Io hharia normalmente: en Windows NT, 2000 y/o XP active la cuenta de invitado y ‘tongue permisos a cualquiera que quiera acceder a la impresora compatida, Lego instale CUPS en el servidor Samba v configuirclo como se describié previamente. Ahora instale las impresoras de Windows que quiera que estén disponibles en cl servidor Samba con CUPS, usando para ello la interfaz Web, Necesitard autentificarse como root. En algunos sistemas Linux, es necesario Aefinir al root como el administrador del sistema CUPS. Puce hacer eso con el comando adduser: “8 90 W sdduser cupeys shadow /ote/inie.a/eupays restart Restarting Goonon Unix FFiNEing System: cued oer Luego ya puede autentificarse come root Haga clic en Afadir impresora y luego introduzca el nombre de la impresora desde el sistema Windows. Vamos a usar BrotherHL1440 (véase figura 8.13), Luego, introduzca la ubieacion y Ja descripei6n. Cuando Hlegue a la ventana del dispositivo, haga clic en la lista desplegable y seleccione Impresora en Windows, vie Samba, En la siguiente ventana, Dispositivo URI para, introduzca la URI del dispositi- vo, BrotherHL1440-2 esta conectada a Philadelphia en Windows 2003, por lo que debe introducir el nombre de usuario "guest" y el nombre del equipo: ‘nb; //quascephitadeiphia/orochorni 440-2 Liegados a este punto, tiene que seleccionar el driver dela impresora. También cberia imprimir tina pagina de prucba. En su cliente Linux, abra la interfaz ‘CUPS y podra ver la impresora, Los clientes Linux dela LAN ya pueden usar esta impresora, 226, Senvicios de red de area local BaaderanAces, Figura 8.13. Afadiendo impresoras Windows, Controlando las colas de impresién desde la linea de comandos Puede hacer ssh a sin servidor Limax de impresion remoto y usar los coman- ‘dos CUPS para controlar las colas de impresion, Los comandos CLI de CUPS sue~ Jen necesitar privilegios de root. Repasemos estos comanedos: + Ipe: Permite varias formas de control sobre las impresoras. Con estado Ipe, puede ver una lista de colas disponibles y el estado de cada una, Ipstat: Muestra una lista de trabajos en cola de impresion en las impresoras del sistema. Puede usar varias opciones para poder modificar la salida de ‘este comand, pg: Muestra el estado de la cola actual o de la cola especificada con la op- ion -P, svicios de red de srea local 227 + Ippassuval: Cambia la contrasefia de CUPS usada por el sistema. Establece AuthType como Digest en el archivo de configuracion cupsa.. conf, + enable y disable: Inicia 0 para la cola especificada, El comando usaco con. mayor frecuencia ¢s disable con la opcion -c, que para una cola y cancela todos los trabajos de dicha cola, + accept and reject: Hace que la cola de impresién empiece a aceptar 0 a rechazar nuevos trabajos. + Iprm: Elimina un trabajo de la cola. Puede especificar ta cola (-P cola) y et idlentificador del trabajo (obtenido mediante Ipstat) + Ipmove: Mueve un trabajo de impresion desde una cola a otra con idlentificador de trabajo y un nombre de cola (por ejemplo Ipmove queue l~ 46 queue?) Puede introducir estos comandos usted mismo. Aqui le mostramos un cjem- plo de una impresora que hemos configurado usando la interface CUPS: # pe status queving 19 enabled DSrinsing se enabled Gestion de usuarios En Linux, puede gestionar usuarios (afiadir, cambiar, eliminar) de muchas formas. Al comienzo de la seccidn, vamos a asumir que cada servidor que tenga {que administrar tiene su propia base de datos de usuarios, ubicada en el archivo Jetc/pasawa. ‘Tambien vamos a asumir que conoce los aspectos basicos de afadir y eliminar ‘euentas de usuario con los comandos adduser y useradd para cualquier distribu- cidn que use, puesto que varian segtin la distribucion, Las distribuciones Linux han cambiado el comportamiento por defecto de los comandos adduser/useradd. Puede consultar las paginas de manual para ambos ‘comanuos. Tendra que experimentar céimo se comporta su distribucion. En Fedora, Jos dos comandes parecen comportarse igual: ambos afiaden una cuenta y crean tun directorio de usuario. Si teclea adduser tadelste o useradd tadelste, ambos ‘comands aiiadiran al usuario y crearan su directorio personal, pero no le pedi rin una contrasefia temporal o le hard algunas preguntas estandar que quiz cabria esperar: 228 Servicios de ved de area local En otras distribuciones, podria ver una salida como esta: ading weer “eadelat Rdding new user ‘tadelete’ (100i) with group ‘tadelste! Creating howe atrectary */none/tadelste’ Copying .o © Ih] /taprmare-contsg0/mnet-onty /useri to Se [id /inp/emenra-contigo/wmnst only/aeti2.0 it] emp/wmeare contigo /enmet only /bradge-0 to] /tmp/wmeare-contig0/mmet-ont/procta 0 Ce fel tmp/rmmare-comttigo/onst only /enac,compat.o SHxO9ED /tmp/vmmareucontg0/enat only /omac lini x386.0 Eb (0 /tmp/rmmase-condigo anes -anty/maee-2 248, Virtualizacién en la empresa moderna, susiding modules, stage 2 Hacia el final de ta instalacion, el script le informara que la compilacion det c6digo ha terminado y le ofrecera un comando que puede usar pata desinstalar el servidor: ‘ie by savoking the following comand: */use/bin/mmats-utinetall El script de instalacién también te pedira que ejecute et comando de configu- racion de la siguiente forma Before running Ware Server for the Firat tine, you need to cantigure it by Shvoking the folleving soneana: */ust/bin/rmrave-contlg pie, bo You wat this prearan co invoke the comand for you now? {yee} Cuando el proceso de instalacién finalice totalmente, poded ver los siguientes mensajes: wireual machine monitor done Host-only networking on /aev/vanetl (background) done Puede descargar una imagen que ya exista de un sistema operativo, lo que VMware lama aplicacién desde la direccion http: / /uwn .vwware, com/vatn/ appliances/dizectory. Nosotros hemos escogido debian-21r0a-i386~ netinst-kerne12,6.zip que est4 ubicada en el directorio /var/1ib/vmare/ Virtual Machines y la hemos descomprimido. Una ver que ya tenemos nuestra imagen baisica, hemos iniciado una consola de gestion de VMware desde un equipo remoto con Ubuntu de escritorio y detras del cortafuegos de la ubieaci6n remota. Hemos ejecuta el comando: 4 shea vmvare-seever-console Laego, hemos configurado la consola para conectar nuestro sistema operati- vo remotamente. Con la consola servidor de VMware ejecutandose, nos hemos conectado a la méquina virtual remota y nos hiemos autentificado como root, ‘como se muestra en la figura 9.3, 249 Figura 9.3, Conectando con un host virtual remote Después de que nos hemos conectado a host remoto, VMware nos ha pre- quntado si quesiamos crear na maquina veka. Debio aque ya hemos creado Sina hemos hetho licen el ment Arca y lemos abit el dnectorio que om tine la instancin de Debian, Esta ecion ba aad Debian a nventaro de VM ‘ustra consola htego se ha welt pared a a de a figura 94,3 que nos da tina ea de ln unelones operatives disponibles ipo remoto ¥ listo para empezar. Figura 9.4, Conectado a un eq 250. Virtuaizacién en la empresa madera t Virtwalizacién en la empresa modema 251 Hemos sido capaces de iniciar Debian. Cuando el sistema ha arrancado, Debian al directorio de maquinas virtuales y la hemos descomprimido como hicimos con hha empezado a ejecutar las tiltimas fases del script ce instalacion. Hemos permi- Debian. Luego, la hemos anadido a través del ment Archivo. La figura 9.8 mues- tido que se ejecutase, y en un breve lapso de tiempo hemos obtenico la pantalla tua una pregunta sobre un identificador dnico, puede mantener el existente. de la figura 9.5. | # 4 9.5. EL script de nstalacién de Debian se gecuta bajo una méquina vital remota Hemos optado por configurar Debian manualmente en lugar de escoger una configaracion predefinida. Esto nos permite crear un servidor Debian por defecto para implantar instancias adicionales del servidor VMware. La figura 9.6 mues- {ra cOmo se ejecuta Debian en el sistema La captura de pantalla nos muestra como se esta cjecutando el comando ipconfig, Hemos probado esta instancia para asegurarnos de que las tarjetas Ethernet virtuales apuntaban correctamente a las direeciones TP que hemos configurado, Una vez que tenemos nuestra imagen basica de Debian, la hemos comprimida y la hemos voleado a un CD. Luego, hemos implantando esa imagen en otros ‘equips, después hemos determinado el papel de cada sistema invitado y los te- quisitos en cuanto a recursos 1a figura 9.7 ofrece un resumen de la imagen Debian, En la parte derecha de Ja pantalla, puede ver la configuracion del equipo. Podemos alterar el servidor Virtual dinamicamente para afadir memoria, espacio en disco, tarjetas Ethernet procesadores y varios dispositivos a medida que las necesidades se incrementen ¥ tengamos que configurar maguinas adieionales. Instatando sistemas operatives invitados en VMware Para nuestra tarea final, es decir instalar otro sistema operativo, hemos des- kame z cargado Fedora Core 5 desde el sitio de la comunidad VMware, la hemos copiado Figura 9.7, Sumario de consola de nuestra imagen Debian invitada, 252 Virtuaizacion en la empresa moderna e) 0 88 nee oe Figura 9.8, VMware pregunta sobre el identificador nico dela imagen ‘de uns maquina virtoal {La consola de gestién de VMware se percata de que hemes aftadido tna im sen. Para distinguir entre posibles maitiples imagenes, hemos preguntado por ct identificador Gnico (UIUID) en el dislogo que se muestra en la figura 9.8, Debido a que hemos copiado Fedora 5 y tenemos todos los archivas comprimidos en la imagen, no importa la opcisn del cuadro de didlogo que escofamos. Cuando abre tuna nueva maquina virtual, VMware le da la posibilidad de verificar la configu racién virtual del hardware. La figura 9.9 le da una idea del inventario de hardware virtual disponible para Fedora Core 5 Ademas de descargar imagenes y cargarlas en la consola de gestin, puede Instalar un sistema operativo Linux deste un CD de distribucién estandar, Virtualizacién, guna moda pasajera? Muchos analistas dicen que la virtualizacion Linux pasaré de moda. Como. administrador de sistemas, debe sopesar las ventajas y las desventajas de especia- lizarse en esta tecnologga. La virtualizacion no ¢s el equivalente a la introduccion del PC por parte de IBM, oa la introduccidn de los sistemas de archivos distribui- dos por parte de Microsoft, EL impacto de la tecnologia de hipervision no puede ‘compararse a los programas ERP tales como SAR PeopleSoft 1 Oracle Financials, En cualquier caso, tecnologias como Xen y VMware tienen beneficios ncuestionables. La virtualizacign mejora la tilizacidn de los servidores y reduce Virtualizacién en lx empresa moderna 253 las aqusiionesdesmesuradas de hardware, aprovechando mejor fos recursos {i sistema Al geeutar au atual software ovum eno virtual, ple sacar tijor partido as inversion, presto ie son servidores dejo cose sin por elo djardeserestandares otunaamete, ee cop en fre conan las deteras que necesita para implementar sus propiosentornosvrtuaes. Abora Gene Ia Sportunklad Ge experimentary diverine con la tecnologia de vrtualzaton Mciendo eso podrk poscionarse como especaista en campo en vey pocoscomprenden lee 98 Figura 9.9, Configuracion virtual del hardvvare para Fedora Core 5. Capitulo 10 Scripting Como administrador de sistemas Linux, usara dos herramientas con més fre~ ccuericia que el resto: un editor de texto para ercar y editar archivos de texto, y tuna shell para cjecutar comands. Llegados a un cierto punto, empezaré a estar cansado de introducir comandos repetitives y buscaré formas de cuidar sus de- dos y reducir errores, Aqui sera cuando tendra que combinar el editor de texto con la Shell para crear los programas Linux ms simples: los shell scripts, Linux usa por sf mismo scripts para casi todo, especialmente para tareas personalizables como la gestidn de servicios y de procesos, Si comprenide c6mo estin eseritos estos scripts, puede interpretar los pasos que hay que tomar para adaptarlos 2 sus propias necesidades, {La shell (una interfaz del sistema operativo) ¢5 una de las muchas innovacio~ nes heredadas del bisabuelo de Linux, Unix, En 1978, El investigador de los La~ boratorios Bell Stephen Bourne desarrollé la Bourne Shell para la version 7 de Unix, Se lama sh (Unix valorabu la concisin), y defini las earactersticas esténdar «que hasta el dia de hoy presentan todas las shell, Las shells evohucionaron desde sucomienzo, amparadas en el desarrollo de la Korn Shell (ksh por supuesto), por la C Shell (eshy y por la Bash Shell (basis) que ahora mismo es la estandar de los sistemas GNU/Linux. Bash es un aerénimo de Bourne-Again Shell, y soporta scripts que fueron escrites originalmente para la Bourne Shell Este capitulo comienza con los aspectos haisicos de la bash: los shell prompts, los comandos y parametros, las variables, las expresiones, la redireccion de E/* Si ya esta familiarizado con esto, no se perder mucho si se salta unas cuantas paginas (excepto quizas una cura de insomnio). Cada herramienta tiene sts I= zites, y en muchas ocasiones puede resultar que bash no sea la mejor solucion sus problemas. Al final del capitulo examinaremos una pequeiia aplicacién escri 256, Scripting ta.en varios lenguajes de script: bash, Perl, PHP y Python (las tres Pest asociadas con la Pdelacronimo que mencionamos en capitulos anteriores). Puede comparar su estilo, sintaxis, expresividad, facilidad de uso y aplicabilidad a di gerentes de nos. No todos los problemas seran tan pequefios, pero pueden servir de ejemplo, Comenzando con bash ‘Muchos sistemas operativos ofrecian interfaces de linea de comandos en los rimeros dias, y normalmente ofrecian la posibilidad de almacenar los eomanidos en archivos de texto y ejecutarlos como programas de procesamiento por lotes (un concepto que penetro muy bien en aquel tiempo). Pronto se hizo normal la forma de enviar parametros a les seripts y de hacer que cambiaran su compor- tamiento en funcién de diferentes condiciones, La Shell de Unix hizo grandes vances en cuanto a flexibilidad se refiere, convirtigndose en un verdadero len uaje de programacisn. Nuestros ejemplos interactivos mostrardn un ejemplo de shell prompt, un eo mando con pardmetros opcionales y la salida del comando. Aqui se lo mostramos: Mostraremos cl contenido de un shell script como este: content of script La primera linea ¢5 una linea especial: si comienza con los dos caracteres #%, el resto de la primera linea es ef nombre del comando que gjecutara come proceso el resto del script, (Si el cardcter # no va seguido por |, se interpretara como un comentario que continua hasta el final de la linea). Este truco Te permite usar cualquier programa para interpretar sus scripts. Si e] programa es una Shell tradicional como sh o bash, el archivo se Shell script. Al final del capitulo le ‘mostraremos scripts para Perl, PHP y Python, ‘Nota Microsoft Windows usa To extensin del archive para defini e tipo dle archivo y qué intérprete deberia jecutara, si cambia la extension, dea dle funcionar. tn Linux, los nombres de los archivos no tienen nadla gue ver soma geccin aunque ten seguir algunas eonvencons ts por bras razon Use su editor de texto favorito (o incluso imo que no le guste) para erear este archive de tres lineas y guardelo en un archivo lamado hello Scripting 257 #1 fbia/paet Este archivo no es un script que funcione todavia. Le enseflaremos la forma de gjecutarlo en la siguiente seccion, pero antes necesitamos explicar algunas reglas sintdcticas basicas La Shell /bin/bash interpretard el script linea por Iinea. Espera que cada co mando esté en una tinica linea, pero si termina una linea con una barra inclina- da (), bash trataré la siguiente Iinea como una continuacion: echo neta Esto supone una buena forma de hacer las lineas complejas mas legibles. La Shell ignora las lincas con espacios en blanco (espacios, tabulaciones, reas vacfas). También ignora todo lo que vaya desde el cardcter # hasta el final dela linea. Cuando bash lee la segunda linea del script (echo hello world), trata |i primera palabra fecho) como si fucra el comando a ejecutar y el resto de pala~ ‘bras (hello world) como los paramettos. Fl comando echo solo copia los argu= rmentos a la sallda. La tercera linea también lee otro comandlo echo, pero con distintos parametros, Para ver qué hay en el archivo hielo, puede impritnie todo su contenido en la pantalla: asninagerverti-f cat nelle (echo noxjour monde Rutas y permisos EL archivo hello puede gjecutarse lanzando el comando bash con el argument hello: adninoserveri:-# Bagh Rede hello wore aaninoserverl-# Ahora intentemos gjecutar hello sin poner bash delante: adninsoervert:-f noite 258 Scripting GPor qué bash no puede encontrarlo? Cuando especs fica wn comando, Linux: busca en una lista de directorios la ruta de un archivo con ese nombre y ejecuta el primero que encuentre. En este caso, hello no estaba en estas listas de directo- ios. lca al sistema en que directorio esta hello, lo ejecutara. La ruta puede ser absoluta (/hone /adiein/hel io) o relativa (. helo significa que el archivo hello esta en este directorio). Describiremos como especi Ficar los diree- torios en su ruta en la proxima seecion, pero antes tenemos que tratar los permi- Una shell script no se ejecutara sin ciertos permisos de archivo. Comprobe- mos los permisos de hello: Siecrests- 1 admin sdnin 46, 2006-07-25 39:25 hello Un ~indica que la handera no esta activa, El primer ~es la bandera de dirceto- vo, es una d para los directorios y un ~ para los archivos. Laego vienen los per isos para el propietario del archivo, luego los del grupo y por ultimo, los de ‘cualquiera. Fl propietario (admin) puede leer (r} y escribir (w} el archivo, mi tras que el grupo (en este caso también se llama admin} y el resto dela gente sélo puede leerlo(r-). Nadie puede ejecutar ef archivo, puesto que el tercer cardcter de cada grupo de tres marea un ~ en Iugar de una x: Ahora, intentemos ejecutar hello con una ruta relativ adninsoarvest:-# «/uette Esta vez Linux lo encontré pero no lo ejecut. Fallo porque el archivo no tenia permisos de ejecucion. Necesita decidir quién podra gjecutarlo: solo usted (el pro- pietario), cualquiera del grupo, y/o los usuarios de otros grupos. Esto es una Aecisin de seguridad préetica que los administradares deben hacer con frecuen- cia, i los permisos estan muy repartidos, otros pueden ejecutar su seript sin conocimiento; si son demasiado restrictivos, el script no se gjecutars, ELcomando para cambiar los permisos se llama chmod (viene del inglés change ‘mode) y puede usar el estilo de nimeros octales de los antiguos Unix o letras. Intentémoslo de las dos Formas, proporcionandose permisos de lectura/escritura/ sjecucion a usted mismo, lectura/escritura/jecuckin al grupo y nada a los otros (cqué comparten ellos con usted?). Para el estilo octal, lectura=4, eseritur ) a un archivo: SGpinngervert 6 le > #41eaex Fn el segundo ejemplo, la redireccién sucede silenciosamente. Si ocurre algiin error, no obstante, deberfa verlo en Ja pantalla en lugar del archivo (es decir, por qué se ha producido el error): ladninaservert..g te ctag > thiea.ext gr ciao: Mo oven file ex directory ‘Tenga en cuenta gue si el archivo £iles. txt existe antes de ejecutar estos comanilo, Se sobreseribira. Si quiere afadir nuevo contenido al archivo en hugar de sobrescribirlo, use los earacteres (>>) agpineververiing La -1 os tetas tet Siftles.txt no existe, se creard antes de que se produzca la anexién. Tam- bien puede redirigir Ios errores estdndares. Aqui se muestra un comando que rredirige la salida estandar y la salida de errores esténdar al mismo tiempo: aapinooervaris~f Le 1» #ltee.txt 2» arora. tet 1 Scripting 261 El nada elegante 2> ¢s la redireccién de ersores, La redireccién de errores puc~ de ser itil en procesos largos como compilaciones, por lo que puede revisar cual- ‘quier mensaje de error mas tarde en lugar de buscarlos en la pantalla, Si quire redirigi la salida esténdar y la salida estandar de errores al mismo archivo, haga esto: admlnoververli~f Ie -2 > Eiles.ext 2542 El & I significa “el mismo lugar que la salida esténdar’, que es el caso de Eiles. txt, Un atajo para el comando anterior es: admineoerveri+-# 20-2 >4 eLtea.tat Use >> en lugar de > donde quiera afadi en lugar de sobrescribi: Sélo se suele reirigir la salida estandlar. Aqu mostramos un ejemplo que busca los nombres de los archivos en los que esté contenida la cadena foo: Serineserveri: $ grep foo « fliee.txt Sonineeerverd: cf se Relea. ext EL primer paso crea el archivo temporal £i1es..txt. El segundo paso lolee, y «en et lercero somos limpios y lo borramos. La vida de los archivos temporales es ‘corta pero productiva Podemos combinar estos tres tipos de pasos en uno y evitar el archivo tempo~ ral con la mejor invencién de Unix, la tuberia, Una tuberia conecta la salida de tun comando con la entrada de otro comando. EI simbolo de la tuberia es |, y tambien un > © < y consigue mucha velocidad. La salida estandar del primer comand se convierte en la entrada estsindar del segundo comando, simpli fi- ‘cando nuestros primeros pasos: sanineaesverls-§ 18-2 | grep too “también puede encadenar varias tubsrias sanineporverti-f te 1 | grep too j ve “1 Fste comanslo contard el ntimero de veees que la cadena foo aparece en algu- no de los archivos del directorio. Variables bash es tn lenguaje de programacién y los lenguajes de programacién tienen funcionalidades comunes. Una de las mas basicas es la variable: un simbolo que 262 Scripting contiene un valor. Las variables bash son cadenas a menos que especiique otro tipo con la sentencia "declare", No necesita declarar o definir variables bash antes de usarlas, como sucede en otras muchos lenguajes Un nombre de variable es una cadena que comienza con una letra y contiene letras, ntimero o guiones bajos (_). Fl valor de una variable sc obtiene ponicndo simbolo $ antes del nombre de ia variable, Aqué mostramos un shell seript que aasigna un valor de cadena a la variable hwy y Iuego la imprime: echo sh 1a variable hw se erea con la asignacién de la linea 2. En la linea 3, los conte- nds de la variable hwy sustituyen ala referencia Shw. Debido a que bash y otras shell tratan Ios espacios en blanco (espacios y tabulaciones) como un separador de pardmetros en lugar de cémo parimetros normales, para conservarlos debe encerrarlos con comillas dobles (0 simples (')- La diferencia es que las varia~ bles shell (y otra sintaxls especial) se expanden con comillas dobles v se tratan literalmente como comillas simples. Vea la diferencia en la salida de Ios des co- ‘manos echo del siguiente seript adeinasorvort:-f eat Belioz Hifotn/bast hhwerhel30-warld™ jeeno "ane eho “She Saninevarvert:-f /mett02 Adginesarvert-$ Puede asiynar la salida estandar de un eomando a una variable con la sintaxis| S{comando) o ‘comando’ (usando las tildes} deineoerverts-f eat today Bi/oin/aans Scho thad ao ie Bactogt Seuineecevertiog «/today: Tonay 1s Tue Jul 25 14;56;01 cor 2008 denineanrveris-# Las variables especial representan pardmetros de linea de comands. El ear ter $ seguido por n parémetros de la linea de comandos, empezando por 1, La Sctipting 263 variable $0 es el nombre del script. La variable $* contiene todas los argumentos como un valor de cadena, Estas Variables pueden pasarse junto con los comandos que el script gjecuta: sininanervert:-# eat £8108 Fi /ein/oast le "aly s+ Soninsaorveris-£ ./£clee Rete netie? today frerseee 1 adnin admin 48 2006-07-25 11125 hele. crpar-er-e 1 admin admin $1 709600795 14:45 hello Cewersez-e 1 admin admin 45 3096-07-95 L449 today, aomineesrvera-€ La variable especial $$ contiene el ID de proceso actual, Puede usarse para ‘ercar un nombre de archivo temporal tnico. Si se estan ejecutando varias copias ‘del mismo script al mismo tiempo, cada una tendré un ID de proceso diferente y tambien un nombre de archivo temporal distinto, tra variable util es $2, que contiene el valor que devolvis el comando gece tado mas recientemente, Usaremos esto mas tarde en este capitulo para compro bar el éxito o el fallo en la ejecucién de un programa desde un script, Elementos iitiles para bash Scripts Hemos introducido los elementos basicos para bash que usar a diario a la hora de gecutar comandos interactives. Ahora, veamos algunas cosas que le aytt- daran a eseribir scripts efectivos. Expresiones Las expresiones bash contienen variables y operadores como == (igual) y > (mayor que}. Estos actualmente se usan en comprobaciones, que pucden speci ficarse de varias formas: test cette Care (sen Nest Si usa el comando test, reeuerde que algunos simbolos tienen tmiitiples sig ‘ni Ficados (por cjemplo, en una seeci6n anterior, hemos usado > para la redireccion, de La salida) por lo que necesitan ir entee comillas. No tiene que preocuparse sobre las comillas $1 usa el corchete o cl doble corchete, Los dobles corchetes ha- ccen lo mismo que uno s6lo y un poco més, por Io que es seguro usar dobles corchetes con sus expresiones. hash tiene algunos operadores utiles: 264 Scripting Efile ¥ true ai el archive existe y oo legible w file § Hue Siate ¥ a0 puede eacribiy file true Sikiste y o eyecarens Aritmética bash esté bastante inclinado al tratamiento de texto como comandos, pardmetros y nombres de archivos. Puede evaluar las expresiones aritméticas normates (usancio +, ~,°, / y otros operadores} pero encerréndolos entre un par de paréntesis: ((expresién). Debido a que muchos caracteres aritméticos inch yendo ¢, (, y ) se interpretan de manera especial por parte de la shell, es mejor entrecomillar los pardmetros de las shell si se pretende que scan tratados como expresiones matematicas en el script: Saowersst 3+ 1) Sho. Sanaver senineservests-§ ASnineaesver:-g -/aesth "19860" La altima version de bash soporta los enteros de 64 bits (desde ~ {9223372036854775808 hasta 9223372036854775807). Las versiones mas an- tiguas soportan slo enteros de 32 bits (con un rango desde -2147483648 hasta 21474836471. Los nmeros en coma flotante no se soportan. Los scripts que necesitan coma flotante u operadores mas avanzados pueden usar un programa externa como be. En as expresiones aritméticas, puede usar variables con el eardcter $ que de- berfa usarse para sustituir sus valores por otras opciones: gdninsoervart og eat aetenexp Slein/bans fecha nfs 2 = $04 eno "fat 2 = Sor Adsinevervest$ -/arsehege Serinting 265 i, Puede ejecutar diferentes porciones de eddigo dependiendo del resultado de Jas comprobaciones. Bash usa la sintaxis ££... (sentencia condicional) con eli ‘como opcional y la seccion else: La construccion ; then al final de una linca también puede expresarse como tun then plano en la linea siguiente: Siest en el mismo directorio que el script hello que hicimas antes, pruebe esto: asninscervertiog 4€ ({ -x helte 1) Aqui mostramos un script que busca en el archivo /ets/pasawd un nombre de cuenta: fi fosn/osen DETECTEDLS( grep -0 **GUSERID:* « /ote/passvd | Seiten *s|bE0MC0ap}* J] eken cho *SUSERID 1s one Of ues)" # Llame a este script friendforfoe, hagalo ejecutable v ejecitelo primero con una cuenta del sistema (root) y luego con otra cuenta (sasquatch: sdpinsperverti-g «/frtendorfoe root, foe fn ope of un sl 266 Scriptin aaminovorverl:-# «/Ertendortoe sasquatch E1 primer parametzo se asigna a la variable shell USERID. El comando egrep se sjecuta con St) para asignar la salida a la variable shell detectada. egrep -o impri- me s6lo la cadena que coincide, en Tugar de la linea entera. "* USERID= coincide con los cantenidos de la variable USERID sdlo si los contenidos de la variable aparecen al inicio de una linea y vienen seguidos después por un punto, La ex- presion ££ esta encerrada en corchetes dobles para contenerla, evaluarla y devol- ver el resultado. La expresiOn -n "S(DETECTED)" devuelve true si la variable shell DETECTED no es una cadena vacia. Finalmente, la variable DETECTES est entrecomillada ("${DETECTED}") para tratarla como una siguiente cadena, Allt donde la sentencia if coge una expresién, puede poner un comando o una se~ ‘euencia de comands. Sil ltimo comando de la secuencia tiene éxito, la senten~ cia 4£ considera que la expresion ha devuclto un valor verdadero. Si el ultimo comando de la secuencia falla. Se considera que la expresion dlevolvid tn false, y se ejecutara la expresion else. Veremos cjemplos en las siguientes secciones. Depurando un script sencillo ‘Vamos a seecionar un script que se supone que borra su parémetro (un archi- vo 0 un directorio} pero tiene algunos problemas: flfein/past here 5 fscho #48 1 dateted fe ands $1 fecho directory $1 daleted HL script esta intentando eliminar el archive que se le ha pasado como parsmetro usando rm ¢ imprimir un mensaje diciendo que se ha logrado. Si rm falla, el script asume que el pardmetro se refiere a un directorio e intenta ¢jecutar el comand rmdir. Aqui mostramos algunos resultados: ndninseerverti-¢ ./delete Reto? seninteerveris-£ -/dalate Bello? Ger cant ronave ‘heliaa’s he auch £118 or aseactory Scripting 267 Sdesnecewweris-d meats baled oninoververiid =/delete Belted mr cannot ronove"chellos’s Ta a directory Usando estos mensajes de error, vamos a intentar arreglar el script. Primero, ‘vamos a usar redireccion de E/S para guardar los resultados en un log y en arehi- vvos de error que podemos revisar cuando tengamos un hueco. Luego, capturare: _mos el valor del comand rm para generar tn mensaje de logro 0 de Fallo, Tambien ‘caphuraremos la fecha y la hora actual para incluirlos en el log de salida fiibin/saa W ronovettles deletes either flee of directertee cho "Go ran at" Giaatel 3s delete. tog Selon $3 Boe daletacasr 109 ho *detered file $1" >> delate-log gi Tdeneted alzectory #1" > deLete.t09 cho “failed to delete $1* »> delete.tog £1 script todavia tiene algunos fallos: no comprucha si el archivo existe y no listingue entre archivos y directorios. Podemos usar algunos operadores de los ya mencionades para arreglar estos problemas: atminoserveciuf cat renovetiies Nyein/baah 4A teravefiles deletes esther Files or Alzectories oho "50 yan at* flastel 2> delete. tog fete st oue Ce atl bebo > delete-log 268 Scripting ie endty 61 26> delete-ere tog cho “deleted +» delete.log Esto parece muy bonito, pero todavia hay mas diicultades: equé pasa si el archivo 0 el directorio contiene espacios? (Esta garantizado que los verd en siste- mmias como Windows © Mac.) Cree un archivo llamado my file y luego intente climinario con nuestro script sdmingcorverd:-# «/eamovetites my tite La tiltima linea de delete. 10g contendra: Puesto que no hemos entrecomillado ¢l nombre del archivo, la shell dividirs iy y file en dos variables $1 y $2. Por lo que debemos intentar mantener may file en St: Adninsaerveri:-f -/ramovatites tay fle" /rowoveriles: {2 ey: binary operator expected Ahora hemos incluido la cadena my file en Ja variable shell $1, pero necesita- mos quitarle las comillas dentro del script para que las comprobaciones y las ‘liminaciones funcionen bien: Adoinanervert.-6 eat camovestien Aeipin/bsen fecha "ot ran at #{aatel +> delete. loz felted feeho tg dos not ext suet essa d nen echo > delete. tog [hla tei" 250 delete-ess log eur (a tein 4 Scripting 269 eno delete tee WPbeate seis 2e> aelece-exe log iMceha “ot deleted” s+ delate-tog Ahora, por tiltimo, cuando ejecute el comando: Adoinssesverl-f «/eemovatiter “my £420" la tiltima linea de delete. tog sera file ay £tle deleted Bucles Si quiere hacer algo mas de una vez, necesita un buce. bash tiene tres tipos de Dbucles: for, while yuntil Fl bucle for es amigable y muy potente, tiene esta apariencia general: for arg in Leet -jecuita una accién (que puede ocupar tantas lineas y comandos como quiera) speci ficada entre do y done para cada elemento de una lista. Cuando los €o- ‘mands se ejecutan, pueden aceeder al elemento actual de la lista a través de la variable Sarg, La sintaxis puede ser un poco confusa al principio: en Ja sentencia For debe especificar arg sin el simbolo del délar, pero en Ios comandos debe ‘espeeificar Sarg con dicho simbolo. Algunos ejemplos seneillos sor: Adninaserverli-f foe atooge 4m moe Lasry curly 5 cho Satcoge Tasey adeinaseeveras-f for fle a+ a sete 270 Sesipting 2 admin adnin 48 2006-1 igineseeveriin} tor thle An (find / mane \*git) 2 ep site /eap El bucle loop se ejecuta mientras que la condicién de prueba sea cierta: one Aqui le mostramos un seript de cjemplo que usa expresiones aritméticas que yase han mencionado para crear un bucle wh 1e al estilo C flas sangrias no son necesarias, pero nos gustan) f/oin/baen isle [eur « RAY)! a Cleurert}) # Tnovenant ae an integer one Elbucle until es el opuesto al wate. Itera hasta que la condicién de prusha sea cierta Un cjemplo es: Uipear (0 Sem =+ sgamover 3) (Scho -n ‘Your command (gganvaver to quét)? * Se'UL Send 1+ sgameover })}; chen sandy 6 Para escapar de un bucle, use break. Vamos a reescribir nuestro giemplo de until como un bucle while con un break: #u/pin/b aneovers"a Seriptin 271 nite EC eve 1D Seto es tambien una herencia de la < redireccisn > shell; provoca que cada iteracion de tn bucle wisi 1e lea una linea de la entrada. Pijese en que a diseren- cia de bash, las variables en Perl necesitan el $ inicial incluso cuando esta asig- nando valores, La sentencia de impresién muestra lo que <> encuentra. Perl tiene una forma alternativa de sintaxis que ahorra unos euantos caracte- #1 fuse/Bin/pert fy Spsrearm = ens meade tert print 26 /Spactern/tz EL script (llamado £induser. pi) asume que el archive de contrasefias se lee desde la entracia estdnidar, por lo que deberia ejecutar algo como esto: “scninguseverl-f ./téndugar.p1 lf < /ote/panowd La siguiente version abre el archivo de contrasenas directamente: sijase/pin/eeet fy Sfsane = */ete/paccnd” nny Spateern ~ ehifes SpeniFiis, sence) cx dleC*can"t open $Ename\n" while () { 36 apatcern/i) { : b Para restringir las coineidencias al nombre del campo como hicimos en la sec~ cién bash, jugamos con algunas de las fortalezas de Per: Hijuer/bin/pert ty Sinane = #/ete/pacena fy Spacers = shite Chon iPILE, tlaane! of Aie(%Can"® open ffoana\n"ly 2B Scripting ff vetieigeral brine fline 1 clove (FILE) Elparametro proporcionado por el usuario se lee en la variable Spattern usando Ja sentencia shit. Fl script también define otro tipo de variable: un vector la ‘mado @fields, La funcién de division de Peel pone cada elemento separado por los dos pitmtos en una celda del vector. Poddemos extraer el elemento niimero 4 (que realmente es el quinto elemento, porque los elementos se empiezan a numerar desde 0) y comparario sin atender a maytiseulas ni mintiseulas cone} pardmetro proporcionade por et usuario. ‘oulos estos scripts han necesitado leer Vineas de texto y buscar patrons, De- bido a que /ete/pacsud es un archivo muy importante en Linux, se le deberia haber ocurride pensar que alguien pusiera haber automatizado este trabajo, Afor- tunadamente, asi ha sido: el viejo Perl ofrece una funcion llamada getprvent que devuelve el contenido de /ote/passwa proporcionando una linea cada Vex que se lama y en la forma de un vector de cadenas. En la siguiente version de nuts- {to script, asignamos a cada campo str propia variable; en la siguiente, usaremos el vector Glist para capturarlos todes. En cada caso, queremos el campo gecos amado geos en la documentacién de Perl). Fijese en que este es el campo 6 slevuelto por getprvent, no el campo 4, porque getpwent soporta otros dos cam- [pos qiuc aparecen en los archivos de contrasefias de sélo algunos sistemas: Spattern © anizty Molle (Shane, Spacswa, gud, $314 squsta, Sanmnent, 39005, $380 Eshollsoxpire) = geepent| ( 4c (egeoe! = Jepateara/in e/ser/bin/pert while (atields = geepwest) [ 1€ (stlelaete) brine "3 , Para fagelarnos un poco més, restrinjamos las buisquedas a los usuarios nor- sales (uid > 500), Es una adicin fal Scripting 279 1 foee/ase/pext fpeteare = enite - AE (Stieide(6) == /spactera/t and gtieléela} > 500) ( prise s5ftetda,c)\e 1 El script PHP PHP puede ser gecutado por un servidor Web (usando CGN 0 de manera aut6- ‘noma (usando CLD. Nosotros usaremos la versiGn CLI. Sino tiene la version Cl puede instalarla en sistemas basados en Debian con apt-get install php4-cli." Nuestro primer script PHP se pareceré mucho a los primeros script Perl: Wiuertoinseep Spsetern = fengv (aly Stile + fopent*/etc/pacewa", *2) Guile (pline = fostetatile, 206)) { TE (eeegi(Spateern, $1556)! echo sine) folore(S8ite) Gracias a que en su origen era un complemento para paginas Web, PHP supo- ne que el contenido por defecto del archivo debe ser interpretado como texto pla- no, y el cédigo PHP se reconoce porque esta comprendido entre simbolos , Mucstra texto en la salida estandar, La funcidn eregi hace una com- pparacion de expresiones regulares sin tener en cuenta las maytisculas ¥ las mi ‘nsculas. Debido a que PHP ha tomado cosas prestadas de Perl, no es una sorpresa ‘que tenga una funcién de division fijare/bin/ene Specter = sexgv(td Mintle Igisne = fgoeetgeite, 2000) ( gfteias = splices, shinel» fe (eveai gpateess, ¢#se2a8(41)) echo: stine ) felons seste) Pero, cpodemos invocar una funcién como getpwent de Perl para trocear él archivo de contrascfias para nosotros? PHP no parece fener un equivalente, por ee 40 que procederemos con parsep para restringis la btisqueda para los valores wid ppor encima de 500: Wi Juse/esa/ate Spsteorn = gargvttl, SEite = fopent"/ete/pageud*, sen) wuile (suino = tgeestsfsia, 2001) { ‘SHelge's episeieis, glia); 4 aren Spactera, GEietde lal) and Gt4eids(@l > 500) Telose Stile? El script Python los script Python son distintos de los de Pex! y de fos de PHP, porque las sentencias terminan con espacios en blanco en lugar de con puntos y coma 0 aves al estilo C. Todas las tabulaciones también tienen sentide, Nuestro primer script Phyton, al igual que nuestros primeras intentos en los otros lenguajes, busca ol archive de contrases eimprime cualquier linea que costeng el kexto ni (78) + aya.argv{t) opentt/acclpeeand') Python tiene espacios de nombres (Perl también) para agrupar funciones, que ¢ por lo que las funciones del script estan precedidas por cadenas del tipo sys. y re. Esto ayuda a mantener la modularidad del césdigo. La "(ci)" en la tercera linea del c6digo del script hace que ta busqueda no distinga entre maylsculas y mi- nndisculas, similar @ ta /ien Pest {a siguiente iteracin divide la linea de entrada en campos: 43 /ue/tn/pyttion Toast rey. ays pattern = (7a)* + aya.argetih Flie = open(*/ato/panawa") fieids = Line apiece iv re-searcnipattera, ielde(4)) Sezipting 281 Python tiene un equivalente a la funcidn getpwent de Perl que permite res- tringir la buisqueda a los campos que contienen nombres. Guarde el siguiente script como findueer py: Hi/use/esarprehon te, ayer Bad pattern ©) *(rajt s eye.auav( Ahora veamos cémo trabaj adningservert:-$ «/ftnduser-py alt (Stacdacer sa e0i, Sony sai fredo da Owee’, Vheme/adadare’, */binfbagh’ | En este scrip, la linea que hemos imprimido es una lista Python en lugar de tuna cadena, de esta Eorma queda mejor pintada. Para imprimir fa Kinea en su Eoemato original, use esto: fuse ein /pyetion inpore r0, eye, pe pattern © (8) 4 aysarav(tl For dine in pad.getpeail! print ss"-joint ive" « Zor vn Line)! La tltima linea es necesaria para convert eada campo en tna cadena (pw tid ¥y piv_gid son enteros) antes de juntarlos en una eadena larga separada por ‘Aungque Per! y PHP le permiten tratar una variable como una cadena o un mime ro, Python es més estricto. El paso final es restringir todas las biisquedas para que busquie en cuentas con uid > 500: pi isee/bin/pyenon aterm © *(rs)t aye.argy(a} For sine in ped. gotpwail Solaittat ty for van 921) : Escogiendo un lenguaje de script La cleccidn de un lenguaje de programacion, al igual que la eleccién de un editor de texto o un sistema operativo, depende del gusto. Algunas personas creen ‘gue Perl es ilegible. y otras se vesisten a usar las reglas de espacios de Python. A op scripting mn comprain 0s ns joss no gut I emaaha, por Siesta gusto com estilo dl lenguaje el criterio més importante esa pro- dhuctviad dela are, bashes una Zora rapa de rear sept coros inling deuia tne, pero se hace ms pesado cuando son Gentos de lines. pede ser ‘lic de ler pero es muy potentey st bonefica dela gran era CPAN, PRE Se parece €,carece de esjarion de nombres, e euigoy Ta sla es amiga, tiene algunas brerlas muy buenas. Python es quid elm le leery 5 tir To qe supone una ventajaeopecial pata serps grandes Otras lecturas 1 apéndicecontene algunos scripts ms grandes que pueden ser tiles para aministradores de sistemas “Linux Shel Scripting with Bash de Ken Burt GSamsfy "Advanced Bas Seripting Gale" (aeep/ yest do. 29/198/ahs/ $e) son buenos recuse, Si se quiere aventuer com otros lengua de scrip ualguier libro con un animal en la eardula ser una apacta sega (a Mens ae quera usar COROL en la secon denies) Capitulo 11 Haciendo copia de seguridad de los datos Los ordenadores fallan, los discos se rompen, los chips se funden, los cables tienen cortocircuitos y la bebida cae sobre los aparatos. Algunos ordenadores se rroban o son vietimas de errores humanos. Puede perder ya no s6lo el hardware y lsoftware, sino lo que es mas importante, los datos, Restaurar los datos perdi~ dos leva tiempo y dinero, Mientras tanto, sus lientes no estardn contentos, y el gobierno investigaré si Jos datos que almacena cumplen con la legislacién. Hacer copias de seguridad de todos los datos importantes es un seguro barato contra potenciales desastres que pueden salir muy caros, y la continuidad comercial requiere un plan de salva ‘guarda y restauracion. En este capitulo cubriremos varias herramientas para hacer copias de seguri- ad, pues puede ser iil en determinadas cincunstancias: “+ syne: Suficiente para la mayoria de los archivos de usuario; transtiere archivos eficientemente por una red a otro sistema, desde el cual puede "recuperatlos en caso de que le ocurra un desastre al sistema local + tar: Programa tradicional Unix para erear colecciones comprimidas de ar- chivos; crea convenientes bloques de datos que puede salvaguardar usan~ ddo otras herramientas de este capitulo. + edrecord/edrtools: Graba archivos en CD 0 DVD, + Amanda: Automatiza las copias en cinta, ditil en entornos con grandes, es de datos. + MySQl. tools: Ofrece formas para solucionar los requisitos particulares de las bases de datos. 284 Haciende copia de seguridad de los datos Salvaguardando los datos de usuario en un servidor con rsync Los datos mas critics para salvaguardar son los datos sue es imposible, o nrycostos, recomponen Normalmentesuclen ser datos de suns gue han ido crecendo durante meses o aos de trabajo, Normalimente Puede restoutar ls dtr el site deans stannic renstland dst ‘Nos centraremosen acer cops de seguridad de datos de usuario de euipos linux de eseritorio. Un servidor de copia de seguridad necesito siete esp 6:0 en deo para smmioena todos los archivos de usuario. Se recomend tn equipo dedicat, Parana fina grande los discos debetan tener una cong ‘nen BAID (linda ray nto Diss) para prose cot 1a utildad Lines rayne es ina copa de un programa dieiado para replicar srandes caidas de datos, Pn stare archivos coplatos previamentey Tag. Fentos y enriptar las transferenia de datos con sh, haciendo copay dese ‘aad entation demanea ms ply ms segura qu on hams tradionales come ep, epio.o tar. Para comprobar stayin est en su sistema, introduzea: ” ” royner somand not found we Si ve este mensaje, tendra que conseguir el paquete rsyin, Para instalarlo en Debian, introduzea 4 aptegee inotelt zeyae Normatinente, hard copias de seguridad para preservar los permisos origina les, Es decir, necesitaré asegurarse de que todos los usuavios tienen cuentas y ditectorios personales en el servidor de copias de seguridad. Aspectos basicos de rsyne La sintanis del comando rsync es rayne opet Algunas de las principales opciones de linea de comandos para rsync som las siguientes: Haciendo copia de seguridad de los datos 285 + -a: Archivo. Esta opeién cumple la mayoria de los requisitos mencionados previamente, y es mds facil de teclear y de pronunciar que su equivalente, ~Daloprt, +: Hace copias de seguridad de todos los archivos destino en Tugar de sustituirlos. Normalmente no tendr4 que usar esta opeién, a menos que Qquiera mantener las versiones antiguas de cada archivo. Puede provocar {que el servidor de copias de seguridad se sature rapidamente, + -D: Esta opcion se usa cuando se replican sistemas de archivos; no es ne- cesario para archivos de usuario. Funciona s6lo cuando rsync se ejecuta ‘como root, Esta incluida en ~a, + -g: Preserva los permisos de grupo de los archivos que se estén duplican= do, Es importante para las copias de seguridad. Esta incluida en ~ ‘snoineo -a1 =S{nana}* to/dev/ms || eit 3 ercounte( BC igoinfe “68 *8(0 i tgrep **vorune els te counts {eau 31) a Seizestea! deoingo a4 “a {nanel* \ Tageep ‘*togical Block size de: 1 1) pastor's [osizetal | meets inane) fbe4096 coune="S{eize)* \ Seyemp/ sends 38-887 | Voaseun 1 se tCer ie 01) 7 then eae’ jemp/teonds. $5.02 fat /enp/isomis. $3,007 En -£ /em/sonas8-er5 sane sejeasios32}" "* "e{nane) 300, Haciondo copia de seguridad de los datos Este script obtiene el asimero de sectores usado por el sistema de archivos ISO. en el archivo de imagen. Limita el namero de sectores leidos por el programa de suma de comprobaciones MDS al niimero de sectores usados exactamente. Esto «vita leer seetores de relleno, que podian variar en niimero. Hemos llamado isomds a este script. Puede darle el nombre del archivo de imagen 180, asi como ef nombre del dispositive de CD que normalmente usa para leer CD-R (con el nuevo CD-R reinsertado). Deberia obtener un resultado Similar a este amyedeoki21-$ seond8 backup. ts /dev/er0 derdscaserion2ctesnvosescctecaze (dev/exo” snyeseeni2o8 La suuma de comprobacién del programa MDS es la parte de 32 caracteres| hhexadeeimales. Sino es la misma para el archivo de imagen 15O y para el conte niido de la unidad de CD-R, la grabacion es defectuosa, Una grabacion fallida suele Hamarse un coaster que es un término inglés que hace referencia a las marcas en forma de anillo que dejan las bebidas sobte una ‘Cuando un disco fale, intente: 1. Repetir la grabacién sobre otro disco virgen. 2. Grabar a una menor velocidad. 3. Usar diferentes marcas de discos virgenes, Si los fallos persisten, prohablemente tenudré una unidad de geabacion que es defectuosa, Copias de seguridad en DVD Los pasos que se muestran en esta seccién son especificos de los discos CD, pero los discos DVD también pucden grabarse de manera andloga, usando el mismo software proporcionado por cdrecord o por cl paquete edrtools. Algunos DVD, sobre todo tos DVD-RAM, pueden funcionar como discos duros, pero re ‘quieren una unidad especial que soporte este modo de operacisn, Haciendo copias de seguridad y guardandolas en una cinta con Amanda Las Cintas todavia son un medio para hacer copias de seguridad bastante po- ular. El Advanced Maryland Automated Network Disk Archiver (Amanda) es un Haciendo copia de seguridad de os datos 301 uetedecigo aberto que gestion as copis de seguridad en cinta. Desaro- Maden la Universidad dc Maryland, eta mide en muchas ditbuones de Tins fochayeno Debian, as funclones de Amanda on + Hluso de formatos de copinde seguridad tains en Unik comotary ump. + operaciones sobre sina LAN, haciendo cops de seguridad de datos de un ‘tte con un sevigor de cnt cena + Soporte para replica lentes Windows via Archivos Compatios + Soporte para dspostivos de cinta estndar, tcadisosyapiladoras + Posi de balancsar cops de spuridad enters en un clo de varios ties + Soporte para cops inerementates com escrtura daria de cambios + Compresin de datos tanto en cliente como en cl servidor va disposi tives que soportan compresion hardware, + Prevencdn de sobreesrtira accident en medio equivocal, + tna estate de escritura en grupos de discs que permit la esertura Fetardada o por etapa + Autentificacén a través de Kerberos 0 coms propio esquema de autent- feacon, + Enerptacon de dats para a protein en sees nsegras Instalando Amanda Amanda tiene componentes de liente y componentes de servidor. EI cliente se 1usa en sistemas cuyos datos necesitan replicarse. El servidor se usa en los siste- ‘mas que realizan la copia de seguridad y escriben datos en la cinta. -jecute el siguiente comanda para instalar Amanda en el servidor de copias de seguridad: 1 apt-get install anandan Bjecute el siguiente comando para instalar Amanda en cada maquina Linux cliente: spt-get inatall amanda-ciient Cuando instala estos paquetes, los otros paquetes que se necesitan se inclui~ ‘rin automsticamente. Si desea usar el programa amplot en Amanda, tendré que instalar el paquete gnuplot 302 Haciendo copia de seguridad de los datos Amanda usa archivos en muchos directorios diferentes, Estas opciones son configurables, pero por defecto son: + /etc/amandi: Archivos de configuracidn (servidor) + Jroot: El archive /root/ amandahosts. + /usr/nan/mane: Las paginas manual. + /usr/share/doc/amanda-common: Archivos de documentacién, + fuse /ahaxe/d0c/amanda-cient: Archives de dacumentacionespec ficos del cliente. es + /usr/Lib: Librerias compartidas usada por programas Amanda, + fuse /1ib/amanda: Programas demonio y utilidades internas, + fusr/sboin: Programas de comands. + /var/Lib/ananda: Estado de ejecucién, log y otros archivos. Configurando Amanda E archivo /etc/services deberfa tener entradas com los siguientes nom- bes y ntimeros de puerto. $i estas entradas no estan presentes,edite el archivo / etc/services y luego alldalas al final. Los comentarios son opcionales TO080/udp 4 amanda backup corvi Swidxtepe 10083/ecp # avanda baclup services ‘Tambign necesitara editar el archivo /etc/inetd.coné, que deberta conte ner las siguientes entradas: Jetc/inetd.conf: (pars clientes) fanende geen udp wait backup /usr/ebin/tepa /usr/2ib/amanda/anaadad Jetc/inetd.cané. (para ot aevvidor! dais otroam Cop nowiit becky /ase/shin/topa dxtape stream esp nowaie baokw /ist/ebin/tepd Vase! aaa anise 19 fomcn/cceaped La primera entrada, llamada Amanda, se necesita en todos los clientes. Las otras dos entradas se necesitan s6lo en el servidor. Si estas lineas no estén presen- tes, edite el archive /etc/ ineta. cont y ariddalas al final. Amanda usa puertos aleatorios después de la comunicacién inicial. Deberia, usar Amanda en Internet sélo a través de una VPN, Esto evita la necesidad de abrir un amplio rango de puertos de Internet en stt LAN, Hacienda copia de seguridad de los datos 303 Amanda se ¢jecuta como el usuario de copia de seguridad con permisos del grupo disco. Necesitara establecer permisos para todos los archivos que quiera replicar para que puedan ser leidos por Amanda El servidor Amanda necesita estar bien conectado a la red local, con suticiente ancho de banda para el volumen de todos los datos que van. transferirse. Debe- ria tener un disco lo suficientemente grande como para contener el espacio sufi- Cente para poder almacenar dos veces el tamafio dela memoria a duplicar. También tes neeesario una CPU rapida por si el servidor va a realizar compresion hardware. [Amanda soporta multiples y diferentes configuraciones. Cada configuracion con- siste en un eonjunto de tres archivos en un subdirectorio de /etc/ amanda: + amanda .conf: El archivo de configuracion principal. Bditelo para especi- ficar la lista de discos (vea el siguiente elemento), el dispositivo de cinta, la frecuencia de copiado, su direecién de correo, el formate de los informes y tun gran vector de otras opciones. + aiskiist: Este archivo especifica los eyulpos y los discos que se replica~ an, + tapelist: Este archiva lista las cintas activas, incluyendo las fechas en las que se escribio. Amanda gestiona este archivo, por lo que podra verlo, pero no deberia editarl, ‘Nota: Mostrar todos for detalles acerca de las opciones de Amanda nes Nevavia muchas paginas, por lo que dejaremos la exploracion en sus manos. Los archivos de gemplo purden ser muy utiles debido ala gran eantidad de somentarios que ofrecen, pdr encontearloen el dectorio /ate/ananda/ ‘bai Lyset cuando instala el paguete Debian amanda-server. Para detalles de estos archivos de configuracion, vea las paginas manual de Amanda o visite betp:/ ik: zmanda-com, ‘Amanda genera un informe por cada copia de seguridad que efectdia. Estos informes detallados se mandan por correo electrSnico al usuario especificaco en la opcion mailto del archivo de configuracién amanda. conf. Deberfa revisar los informes regularmente, sobre todo para comprobar errores y revisar las ejecu= Restaurando archivos replicados con Amanda Amanda usa el formato esténdar de Unix para copias de seguridad (taro dump), ‘que deberia especificar en el archivo de configuracin. Esto permite usar las cin tas com las copias de seguridad para restaurar los archivos incluso si el sistema 304 Haciendo copia de seguridad de los datos Amanda no esta presente. Esto puede ser crucial a la hora de restaurar archivos despues de que se estropee un disco por completo. Amanda tambien oftece herramientas de reconversion indizada que permiten la restauracion de los archivos seleccionados. Aseguirese de configuar el indice para hacer que Amanda crec las archivos de indice. Las paginas manual de amrecover Ie ofreccran todos los detalles. Replicando datos MySQL Hasta ahora, hemos estado replicando archivos y directorios. Las bases de da- tos tienen aspectos especiales que deben tener en cuenta. Nuestros cjemplos usa ‘MySQL, pero los mismos principios pueden usarse con PostgreSQI.y otras bases de datos Felacionales. Si nuestro servidor MySQL no necesita estar disponible 24 horas al dia, 7 hhoras ala semana, una forma muy facil y eapida para replicar los datos es: 1, Pare el servidor MySQL: W fece/init.a/mpeata eto 2. Copie los archivos de datos y los directorios de MySQL. Por ejemplo, si su directorio MySQL de datos es /var/1ib/nysel y quiere copiarlo a /tmp/ nysqi-backup: Wop or /vax/tib/nyeqh Jem yea wokup En lugar de ep, puede usar rsyne, tar, gzip u otros eomandos menciona- {dos anteriormente en este capitulo, 3. Initie el servidor de nuevo: 4 fetefintea/myeaia start Las copias en linea se prestan a mas trucos. si tiene dos tablas MyISAM mu tuamente independientes (sin claves ajenas o transacciones), podria bloquear= las, copiar todos sus archivos y desbloquearlas, Pero podria tener tablas InnoDB, fo alguien podria ejecutar una (ransaccidn que involucre varias tablas. Afortu- nadamente hay varias sohuciones no comerciales bastante razonables, entre las que se incluyen mysqlhotcopy, mysqlsnapshot, replication y mysqldump. Mysqlhotcopy es un script de Perl que hace copias de seguridad en linea para {ablas ISAM 0 MyISAM. Las paginas manual incluyen muchas opciones, pero vamos a mostrar eémo realizar la copia de seguridad de uma base de datos sencilla Hamada drupal: Haciendo copia de seguridad de los datos 305 fmpsarretcony a sour

    /emp/nyeat damp Puede crear una tuberia a través de grip para ahorrar algo de tiempo y de espacio: 1 | atte > /emp/ Una nueva herramienta de c6digo abierto (descarga gratuita, pago por sopor- te) llamada Zmanda Recovery. Manager para MySOL ofrece una interfaz titi para muchas de estas alterna~ tivas.E sitio Web de Zmanda (ht tp: //wow. zmanda..com/backup-mysq) -html} tiene todos los detalles, pero seguidamente mencionaremos algunas de sus dis- tintas funcionalidades: + Tiene una interfaz de linea de comandos + Replica bases de datos locales o bases le datos remotas sobre SSL. + Envia por correo clectrénico el estado del procedimiento de replicacién. Haciendo copia de seguridad de los datos 307 + Mangja todos los tipos de tablas, ineluyende InnoDB, + No ofrece nuevos métodos de replicacion. En cambio, permite escoger en- tre mysqldump, mysqlhotcopy, MySQL replication o LVM snapshots. + Soporta la restauracion de una transaccién determinada ode un punto en eltiempo. Zmanda ofrece archivos tar.gz y gpm para muchas distribuciones Linux, Para un how-to de la instalacion en Debian, Visite: BEtp: //wne nowtoforge com/mysgl_zrm_debian_sarge. Apéndice Bash scripts de ejemplo Este apéndice contiene vatios scripts que pueden serle itil en su trabajo dia~ rio, ast como para servir de modelos para escribir otros script. Puede descargar los scripts (comentados en inglés) desde http: //www.centralsoft .org. Afiadiendo usuarios Siusted tiene mucha tarea (como en una universidad, donde entran nuevos estudiantes al mismo tiempo o varias veces al ao), este script puede ayudarle a afiadirlos al sistema de forma répida, Lee un archivo que contiene informacion, sobre cada usuario ¢ invoca useradd con los parametros adecuados (vea capitu- los anteriores para mas detalles sobre useradd y sus variantes) tein/oacn se U2 tent 1): then ‘Pleage give exactly one tile nane.* tthe die will neve one weer per ina.* personal rea) name "Sample ain. 310. Bash scripts de ejemplo, exit 1 cat *91% | while read ueernane groupnane reslnane 4 Seip blank tines: Ae [nz Susernane || -2 Sqroupnane || -2 Greainane 11) then. Fesuit=}( eavep “*Susernane:' < /ete/pacewd | Be Ut omogreeuies J]; thes echo tuser "fusernaie’ already exiete™ + « fero/geoup grouped *s3roupnane™ eerada -c "Gzeslnene” \ ‘Decne feeceaase” Sexpiredstes aes \ 5 "Sgroupsame” . \ 2 /oin/baeh y Sonera tt (17 «= 001) then cena "Gusceaatallyy added vaer “ousernane’ "Scho "ireor sading user ‘Gusernana’ (a¥oup \ “Sgroupane’, veal same 'Geeainene Generador de contrasefas aleatorias wostramos un script que genera una contrasefa de una longitad dada, fn earacteres ASCII: 1 foinoacn Bash scripts de ejemplo an Ua veer DI Se (Lg te 611) een cone "A paseuctd of Lensth fn would be Coo weak* Peft 48 Sf-/dev/urandom bec5i12 count-2 2>/dev/aul2 \ | ex ea va-en-20-9" | gee se eet eno “etp)* Si es capaz de mejorar la funcionalidad, merece una recompensa. Mientras ‘que usted esta fuera, nosotros seremes um poco mas puntillosos com los fallos de este eddigo. Este cédigo es el tipico que suele heredarse de un desarrollador ante rior: sin comentarios, con nombres de variables poco descriptivos y algunos con- Jjuros magicos. Si quiere hacer del mundo un lugar mejor, hay unas cuantas ‘casas que puede hacer cuando escriba seripts como este. Por iiltimo, puede escribir comentarios describiendo el propésito del codigo. Estos comentarios deben dividirse en dos partes: una gran cabecera de proposito general (por cjemplo, indicando los parémetros que se le pasan al seript, y los valores que se tomarian por defecto), y explicaciones explicitas para comprender la dificultad de los procesos. No pierda tiempo ¢jecutando los comands biisicos usados, debido a que el ‘que lo mantenga puede mirarlos si no esté familiarizado con clios. No obstante, slonde emplee una variante exética de un comando, deberia describir explicita mente su efecto y como puede ejecutarl. Despuis de todo, el objetivo ¢s que documente los resultados que persigue con Tos conjuntos de comandos y por qué se obtienen estos resultados de la forma aque ha ideado. Ahora, vamos a dar una explicacion al codigo del generador de contrasefias en Aetalle, al contrario de lo que encontrard en el mundo real. El script comienza con el comentario de inicio usual que le indica al sistema que ejecuta el interprete bash. Luego, asignamos el primer pardmetro ala variable n, que sera el nimero de caracteres a generar. Lo ponemos entre comillas porque puede ser una cadena nila si el seript se ejecuta sin parametros. Esta cadena se prucha para determinar sies tina cadena mula, El pardmetro -n significa "longitud distinta de cero’ por lo {que sila comprobacion es verdactera se ha proporcionado una cadena. Las dos harras verticales jecutaran la asignacién que continvia sila compro~ bacion falla. Esto obliga a que la longitud por defecto de nuestra contrasefa sea de 12. Las siguientes lineas comprueban si la longitud dada es muy pequetta; hemos decidido (basandonos en las recomendaciones clisicas de los expertos er seguridad) que la Tongitud minima deberia ser 8. 32. Bash scripts de ejemplo La primera sentencia del bucle usa tres comandos del sistema en una tuberfa para generar tuna contrasefia de prucha. Las tr lineas de la tuberia estn en u $30) para capturar la salida como una eadena que luego se asignard a la variable p Para generar una contraseita aleatoria, necesitamos una fuente de datos aleatorios;¢1 sistema ofrece esto combinando tna variedad de fuentes estadisti- «as en el pscudadispositivo /aevAurandom. El comando dd Iee datos hinarios del dispositivo, BI comando tr con la opcién -ed borra todos los caracteres que no estan en los ranges a-2, A-Z y 0-9. El iltimo comando de tuberfa, cut, extrae el indmero deseado de caracteres. ‘Nota: No inente gjecutar este comando en sa terminal y ver los wesultados ‘enka pantalla, Se quedard ciego 10 minntos y su pero empezard a maullar. ‘Tedavia Gene a tentacin? Deberd gjcutar un comando normal ela stty para restaurar la pantalla an estado Gi Biisqueda del DNS autoritativo Elscript usa cl comando dig que se describié en el al comienzo para buisquedas DNS, consultando la cache del servidor DNS cache local. Una funcionalidad de este Script es que usa su propio nombre para especificar el tipo de registro DNS {que buisca. Sil script se llama a, busca registros A. Si se lama soa, busca regis- tros DNS SOA. EI nombre ptr es tn caso especial que coge una direecign IPVA y la convierte en la forma adecuada in-addr.arpa para hacer la biisqueda actual. De- Deria hacer una copia de este seript con el nombre apropiado para cada uno de los tipos de registro comunes en DNS que podria necesitar buscar; a, aaaa, mx, et. ‘Tambien puede usar enlaces duras o enlaces simbolicas para creat los alias Independientemente del nombre, el script acepta una lista de equipos a buscar como pardmetro: 4u/pin/oet copyright i369; 2008 - PRiTp Howe 4H data, Tis Iootup bypaeaes the local DHS cache ‘ + eyntaca {names 2 | pene any {panes Bash scripts de ejemplo 313 " me names oe] ‘ me [name 0} ‘ per [names oo} * fos (names 1s } : ee names # for use vith per query. funetion tnadar’{ eer. sipeine $2 "4 63 0" } qwery_typers( oxoc bazenane *6{0}" 1 fox hostname in "4a"; 30 SPU sSjgueey ype)" 1 hen 4 Front pecauoe the cave eyncax expecta an alphanumeric Saar tes{hostrane}y" an { x10-91*). (0-3 #\- [0-9]. [0-91+7 hozenanest| ecko "5{noetnawe}* | inode > 4 execute the query Gig verace saoeil senewer *3{query_type] feqeep "°5{hostaane)* sglnomzsane)* | \ Enviando archivos entre sesiones shell Puede usar el script presentado en esta seccion para enviar un archive, 0 un directorio de archivos (inciuyendo todos los subvlirectorios), desde un sistema a ‘otro usando tna sesién shell en cada sistema. EI script funciona creando un de- rmonio rsync (rsyne se describi6 en el tiltime capitulo) de fondo para enviar el archiva espectfico o directorio, Muestra varias formas distintas de cémo puede uusarse para recibir un archivo o directorio, Este script no necesita estar en el sistema receptor, por lo que puede usarse para enviarse una copia de si mismo. El ppaquete rsyne, sin embargo, debe instalarse en ambos sistemas, ‘ a Bash scripts de ejemplo "Nota: Hl sistema remitente debe tener acceso a Ia red por el namero de puerto que se usa para aceplar las conesiones rsync entrantes. EL namero fe puerto se escoge de manera aleatoria entre el rango 12288 y 2867 Pucde sobrescrbir la elccon aleatoria de puerto usando la opcin -pseguida ddeun numero de puerto. Silas reglas desu cortafuegossélo permiten unos cuantos puerios alos que conectars, debe clgir tno de estos pucrtos en este svi Para transferir datos, primero ejecute el script en el sistema remitente. Una ‘vec que se muestren fos comandos de ejemplos, seleccione qué comando es el apropiado para usarse basdndose en la direceién IP o el nombre del equipo que puede aleanzar el sistema remitente, yla ubicacion donde cl archivo o directorio ‘se almacenara en el sistema receptor. Copie la linea de comando seleccionada y _pegue el comand en la Shell del sistema receptor para ejecutar el comando rsyne que recibe los datos. Et demonio se continuars ejecutando cuando la transferen- cia esté completa, permitiéndole transferir un archivo o directorios muchas ve- ces entre computadores diferentes. Pare el demonio cuando las transferencias estén completas presionando Control-C en la ventana de la shell del sistema reral- tente ‘Nota: Este script no tiene seguridad, Cualquiera que sepa la direccin y el numero de puerto en el que se ests escuchando, uiede obtener fos datos doe se estan transhriendo, No deberia usar este script para transfer datos Secretos o confidenciate, intente sep o sftp en su lugar. Aseglrese de para el demonio una vez gue las transferencias deseanlas eaten competadas EL nombre que se sugiere para este script es rsend spota/nacn # copyright 6#i69; 2006 - Philip Howard - All sights reserved . * Focriaved ping one of the rayne command lines * Shown, Ey pasting it sn a eneli aeeaion oh enter: : host : usage rend optional dizectory | tite options -c include eheckeun in the rayne comand iinee inclute dryrin io the veyne command Lines ube the opecifsed pore sumser, ise Tandon Bash scripts de ejemplo 315 + Sachude sparse Ja the rayne comand Lines *Y ahow extra snfornacion 4 author enitip Roward Noechatas$¢ nse hostname -£ ) weoanins( seen uhoanl ‘las (ehoams |” re 1 oot desauice barista (bara) (bara) s(bard} bara-naasuestenunnnaunnensnatieh” bbarazthe(para}9(bara]5{baza} Geleren" --deleter Gelnsge"/aatere? padding Urea | eedivectory ) "ee "aay |] ene a Cxe-airectory=® 316. Bash scripts de ejemplo Bash scripts de ejemplo 37 i ced sgfasaz}" |} exit 2 ; perestecno S800)" | te oa ges} pe, Se Tets{ate)? te s$41}° 10; then aryzunera® sone 6) Ferws{ ecto welt)" J era or) EU vglece}" t2 93)" 11) then fecno vest} feono "842}4 * 4 only one sane can be handled, S80 64 -gt 2.11; then 3 11y shen zl amens( exe pid ) ane . ¥ Set up a tanporesy contig i See ae 4 oi Directory traneterred, or where transfer ts starting Seiport}e «0 || *eipere)* =. 117 thea 4 G2 not used (aor should be removed? poresp| a t#n/deu/aranasn [ea cp -tun |tr as) portetl gpore © 16588 function contiqoat portEl Spare > 12285 J fseno "lack fize = f{lockttie)" Scho ‘lag tile = /dev/atders* feono “eocket options piyaew/aht \ A Make up nanes tor tonporary files to he used, fenp/reyme-9{unoami}-#{por® |-§9.coné* tep/sayuc-$|vtoami) -§(port)-#9.lock™ Spath = 302} as emer fener een anee sesso cee sthg a eras cea asfenslcs tenet ale Bea Jhon aera Mi estsarioe wt oe el state's Mie 318 Bash seipis de ejemplo rs Te (Ut -e *e(mamej 31) een ‘ocho "doeo nak exiaes* 5, etzquate *S(name)™ ) 262 Li (1 “a "etname}* 11) then. Defi cxex atenene *G(aana]* ) De8t Gree Dacename "(rane)" } ore name} EI9C c@ "e{nane}* Ge exe pwd | ‘stnounce"6(a)" ‘Eeyncopes" 36 (checksun) #(aryrun}is[oparae}v2s{aetece}*| Sontiqent «9(a]/." sairectotyss{a)/* 28 (congtite]” euit (Lor 'g{aane)" 21, een ef exes aiznae *S{nane)" ) Bast exco bascnane “2 {aame}* P51 4 “6{p)" ke exec pwd > rate(e]/(et Sanounco>"s {a /9( Poyneapea*-as checkaun)6{@ry=ua|9{eparae}vst contigout "G(a}/.* "iteseia}/s[e)" >¥¢leanefsie) UE TEL sg{nano}? 11) the Defi croc dirname *S(nane BIGt exec basenane *B{name]® 1 Fs8{ 4 "eip)* a exec pid | Era(r/6l0" anounces"5;a)/e4e) ‘Faynoopes*-a¢(checkaun}* Configout *3{a)/. veymiinn:s{a)/s{e}* "s{e}* >¥6(coneeste}" fs + f Show contig File if verbone sa requested BE IC =n ta[vortose}* 11) thea eno" sg [ara Tenia "s{oonttile)* sche. "9[Bae2]" bat *sfconrrize)" Bash scripts de ejemplo 319 echo 8¢ stequote "e(2) ‘seas, f/ sees uname -9 ) in etatat “ion | ave “print 6471" leeontlg -a | aii *{se(eie-"inet*ipeine subste (62.40; retatat -t on | ave [print $4)" ' function spaday ( ‘soci \ [aatep **19-91\, 10-9) \, 19-919, 8-814" | Sgeep cv e-0\. aA. | hesa 2 \ | wide toad Spee more a ‘howreyne "(ios)" #8" funceton showed | speaar *3{2)* "8(3}* showrayne *4(2)* "6(2]" *8(3)" } aancunce the shell comands to receive thie data foeeeeereee a . sono se(hoe2) Soho "# sending ${eanounce} Soho "# paste eM of hess comands in a remote ehell to xeceiver st 1-4 s$laane)" 15 then 320. Bash seripis de ejemplo ‘echo efbaer) Showems(aostnane) joke *s{barn}+ Showed *§(hogename}" - 9(0)" it (1 nejahe te safo)+ ee ssiahe t= nedey 11s ene eno *s(ba03}* oven "3 {foaesaneh> < s(a)s itovend "Shontoane}* < seteh= teeko "#{part) Showend "6 (hostrame)* *./e()" "ele)© St exec Dasehune *3(aj" 1 acra(e}istey Be tlra{a)* te fseba "elbar3}* hound *e(testnane}* *./3(t}* “8{0} eb) 115 SE (1 melasma)” Le setp)" fe "S{oane)™ ts “efa}" 4 "3(oame)* io -3{z}+ 1; tnen ecno ts {beet Showend "Gfnostaane}* +./846}* +3{oane}* ‘echo "sfaae2)" Showend "e[noetaame}* "./s(e]* "ee" eho ss fbari} echo “4 preat °C have when dane feho “e{bara} + 4 start veyae in deonon wade ‘cont ign8 eof Jos -porteiport) ™ Integrando ssh y screen Deberia star famsiiorizado con el comand sah, que se coneta a otro equipo « nicia una shell all de maners segura, El comand seren esa heat Bash scripts de ejemplo 321 Stil que permite gue una ssn Shell queen un estado activ, con ia pantalla Intact cuando desconeeta dsl ordenador remoto. La seston vapturada prs Tetomarse despues, inclso desde un equipo diferente, Tambien es posible tener dos o mis conesioncs ela misma seston Shel 1H siguente script hace una conexion ssh ina wna sion Marna screen cn un comando, El benefco de usr este scrip esque ems rpide para conee- terse desemmectarse ean se xt trabajando cob mulipes servigors te seript se usa de manera similar amano ssh, La sinter ssh qe Spe citca el nombre de usuario y el equipo de la sein renvota se expat Para i= Clie et nombre de secon. Puede entries sesiones en un equipo remote con el mismo nombre de wear ydirentes sesiones. El nombre de ssion es tptionl in se proporcona, el script eta el romano ssh de wna manera format sin geeuter sree La sini completa Ge ete script, nckayendo ls tpciones sh ue sport, pueden vere en Tos comentarios del crit Hl nombre sigerido para eae script e536 F copyright arise) 2006 - Pailip Howard - Al vighta reserved comand #8 (zecuce cores! yntar ae foptiouis}neston/swernaneahogtnane [optione) seeaicnausernameenoarnane [gpttons) usernanecnartnane/sesoi08 [optione) usecaameohortnane. session Ftetogincer 66 Use esther 185 oF reve Bash scripts de ejemplo, 4 sequivencnte The local ayaten mist nave te Spensst package : Tnscalied. Tao renote eyotes met have the + Opens package snotelied and nave the sok : aenon running. Te must also have the soreon(t ' [Hie on each pyeten Je reconnanded * : for potential use by other ecripta + * en oan a8 ¢ exee whoa) hostnames ( exes hostname pn Be ctefsmoanty* white {1 gH oat 0 101 ao ease "28[2)" tn nog{ eeno "xg (a) | cut de £21 Vases Eeftocke Msfi}s owe att) wre(usa) Test ocho mein} | cur da -t 2 ( Geno Sesis}* | cue “a ye 2 IeSt ecto vein} | out ad / “fT Bash senpts de ejemplo 323 (sztar > Lem Sy aese et sn. aE male foe go Pesce til Carae tage echo "xs(i}" | cat “de “£27 wrre(aea)" Brelvecho "x6{ah" | cut -€@ ot 21 Whose argument stovid be zeasson name Be UT 98 ge 0 13) then weit} snite factor) setiady SETS scape ats een Bo Set os neta) Cet) nite fe va) aes | eae) vets (is3}* 324 Bash scripts de ejemplo poten $2 (1 sa sip)" 104 then pect Pel -p ssteeaye a Pel neta} Facey ia} Cae focho "Invalid opesans °4{2}"™ obo "tava stouments “g{3}+* Ee Ita sé{a)e 317 then eno tUaer rane 25 mises 8 Bash scripts de ejemplo 25 sce netmyeny thes coke Wione nana te atoning? 1-2 velatepe 11 if oxte a # mun acrecn on the renote only if @ ext oon *s(vtal]> se{ite1)" “eipte) Sets *sjayr 11 then nit${e)" 1) 66 ontoxe ‘exec, /uaz/bia/eny SESSION NAKEA'G}e)’ ecreen s{o} ~a(eH* cut nsietel)* 6(a}" ) Sree *3{etel)" Theta} sa(ulealn) indice alfabético sont, 174 Inaocess, 161, 200 htpasswd, 165 hosts, 251 shosts, 231 tar, 290 tarba2, 290 tang, 290 tz, 290 ge, 290 (900-detault, 164 A A. registro, 77, 80,82, 85, 192 ‘2dismod, 161 azenmod, 161 abst accept, 227 ‘eeleradores PAP, 200 Active Directory, 205 ADDITIONAL, 97 Adtype, 172 aaduser, 227, admin, 113 lertas de correo, 127 alias, 43, 167 ‘de correo, 122 AllowOverride, 161, 200, ato renimiento, 191 ‘Amanda, 283, 300-301, 303, famanda.conf, 303, amanua-server, 303 ‘Amazon, 20,61, 191 AMD, 238 ‘ANSWER, 97 anti-spam, 134 ‘antivirus, 102 ‘Apache, 26,54, 102, 112, 118, 127, 153, 155, 157-158, 161-162, 164, 167, 169.170, 172, 177-182, 188, 190-191, 194, 196, 243 apache2, 188 ‘apache utils, 181 APC, 200 apeget, 35 archive Hints, 76 Local Host, 76 zona inversa, 76, 84 fe grupo, 167. aritmtica 264 [ARP (Adress Resolution Protocol), ASCH, 160, 176, 306 ATA, 297 stagques, 179 ‘Athlon, 206 ‘Atlanta, 206 | 28 autora, 134 autentiicacin, 16, 164 framework de, 143 ansnima, 14 AUTH, 143. ‘AUTHORITY, 97 ‘AuthType Base, 166 ‘AuthUserFile, 166 ‘autorizacion, 168 awk, 275 B backbone, 25 Balnnceador de canga, 192, 195, Taalanceo de carga, Base, 116 nash, 255 ‘Shell, 255. Iastion best, 214 Bea Weblog, 62 Beowui 19% Berkeley, 132 Big Blue Virtualization Engine, 238 BIND (Berkeley Internet Name Domain) 28, 38-39, 63, 65-67, 71, 74, 17, 86, 89, 91-02, 94, 98, 102, 211 IND 4,63 8,63, 102, 9, 63,75, 102, BlueGene, 23| Bootstrapping, 82 Bourne Shell 255, bresh, 270 BrotheeHL1440, 225, BSD (Berkeley SoMtware Distribution), 101 bcs, 269, bufer FO, 297 Dunzp2, 290 Duzon local, 121 Dytecole, 200) brip2, 200, {dice atabético c ©, 280, 282, C Shall, 255 CA (Cetifcation Authority), 179 cache, 74 le ego, 200 sie consuls, 200 fe dates, 200 Se paginas, 200 capa C31, 298 carga balanceada, 191 Camgie Mellon, 38 cat 275 CD-R, 294 ‘ecco, 283) ‘recont-scanbus, 296 ‘detools, 283 centralsoforg, U2 cectinicade, 49, 107, 108, 129, 148, 179 Gt (Common Gateway interface), 107, 155, 159, 168, 171, 190 (CHECK INTERVALS, 130 checktype, 196, 198 cfakcontig, 212 hm, 66 CWS (Common internet fle System), 205 cinta, 283 (isco, 15, 101 Clamay, 111 (ClarkCamnect, 217 lass, 78 chente FTE. 118, liste, 191 clustering, 134 ‘CNAME, 77, 83, 85 COBOL, 262 Co-Dominios, 116 cola de ropresion, 226 ‘oma fotents, 264 comandos CL, 226, 279 ‘computacion strtnnls, 197 engrid, 191 Computer Associates, 232 contig, 170 consults, 71 contenedores, 187 ‘Contnulad comercial, 238 enokies, 193 copia de seguridad, 286, 291 ‘automatizads, 259 cornea eleatronico seguro, 43, 147 retrasade, 139 sovtafegs, 73, 187 Courier, 151 ep, 204 ‘CPAN (Comprehensive Perl Archive Network}, 58, 282 pio, 284 CramMD5, 146 crontab, 271 sh, 255 Cuenta, 116, 120 cuotas, 36 (CUPS (Common Unix Printing System), 15, 223-237 ut, 275 CVE (Common Volnerabiltes and Exposures}, 43 cyrus, M2 D Pallas, 208 ASD (Direct Access Storage Device), 26 Debian, 29, 48, 65 ell, 206 Aepuracion, 198 DHCP (Dynamic Host Configuration Protocol) 29, 32, 203, 307, 209, 212, 215-216, 218-219, 243 hepconf, 210, 212, 216, 218-219 ‘dhep3-server, 220 ie, 209 ‘tne eases, 212 229 diagrama, 119 aig, 64, 87 DigestMD5, 146 Direccin ethernet, 194 indica, 212 static, 212 sirestvas, 162 rector, 187 ‘ie nico, 123. de usuario, 123 DNS, 68 ppablce, 128 role, 118 disable, 227,241 tisklist, 303 fisttst, 105 iste peticlone, 192 aids, 63 MD," 25 DMZ, 215, DNS (Berman Name System), 33, 40, 59, 61, 63, 69-73, 77, 82, 89, 92,05, 98, 116, 133-134, 186, 207, 211, 215, 219, 239, 312 autortativo, 68 cache, 215 local, $12, primacio, secundario, 72 Documentioct, 164 dorali-namme-servers, 211 dominio, 119 nomlres de, 69 servidores, 211 os, 204 Dovecot, 51 DR, Drupal, 195, 182-186 SA 231 'DSO (Dynamic Shared Object), 157 DVD+R 294 Avdsrw tools, 295 DVDR, 294 330. indice afabético E acelerator, 200, hay, 20 cha, 170 rare, 275, wet, 298 enable, 227 enlaces ‘hutos, 312 Simbios, 12, ERP (Enterprise Resource Planning), 252 sschvo, 72 Esertori Java, 233 ISMTE 44, 148 staisticas, 116 bthernet, 232 Exchange, 21, 134 ewe, 170 Exim, 30.31, 134-135 Expiry, 79 cexpresiones, 263, ex, 137 = Fast CG, 156 DON, 137 Fedora, 31, 65 Fedora Dieectory Server, 152 faba, 191 FilesMatch, 168 Sinduser,275 Firefox, 186 Firestarter, 217-218, 220-221 formato nativo, 207 FIP (Fe Transfer Protocol), 24, 58, 77, 102 FIP anonimo, 118 ujtsu, 238 G gecos, 274 Bestin de a canga de abajo, 2.38 Gestion ‘de usuarios, 237 remota, 134 eestor de pagquetss, 126 srafico, 232 getprvent, 278, 279 arp, 118 id, 274 Gmail, 141 GNOME, 221 ‘gnuplot, 303 sgn-popid, 102, Goddard, 22 Google, 20, 61-62, 89, 191 GPL (General Public License), 31 ariio de sectors, 119, rep, 275 srs, 237 Groupwise, 134 ‘grub, 247 2p, 290 H HA (alta dsponibiidad, 192, 194, 199-200 halt 92 heal, 275 Hipervisor, 238, Hoja de esis, 155 HOME, 140 host, 90 hosts, 175, Virtuales, 155, 174, 189 virtuales asados en 12 174 vistualesbasados en nombres, 174 Hotmail, 82 Hp 232 HTML, 57, 118, 156, 169-170, 173, Inpassied, 165 HIITP (HyperText Taster Protocol), 10, 197, 193 HTP 10, 174 HIT 1,174 Ip 54 [HTTPS (HyperTeat Tansfer Protocol Secure), 113 (a, 26, 204, 232, 238, 252 IDE ATAPI CD-R, 295 dese, 295-206 IETF internet Engineering Task Fore), 69, 143 ifconfig, 195,213 ‘imagen 150, 297, 300 Jmagenes vietuales, 237 IMAP (Internet Message Arcess Protocol, 28, 43, 123,131, 150-151, 153 iMAana, 132 IMAPS, 150) impresidn, 222 finder ht, 118 inet, 36, 136 IoD, 304-306 TnnoDB Hot Backup, 306 instal spconng, 105 Intel, 258 Ineciag ‘ered, 140 cb, 127 Internet Systems Consortium, 210 invitade, 235, TP nternetProtccob, 29, 32, 83, 87, 90, 102, 112, 116, 124, 197, 207, 209, 213214, 217 ipetsin, 102 cop, 217 (PIP UP Tunneling sobre), 194 IPL (internet Public Library), 26 pops, 102, popes, 150 iptables, 102, 216 v4, 213 IPvo, 213-214 IPVS (Servidor de IP virtual), 193 au ISAM (indexed Sequential Access (Method), 304 150-9660, 294 ISP ntcrnet Service Provider), 27,45, 113 1sPConfig, 98, 99, 101-103, 106, 109-110, 122, 114, 118, 123, J ova, 156 Savascript, 155 oss, 62 198 (Java Desktop System), 233 K 3b, 295, ecpAlive, 169 KecpAliveTimeout, 169 Kerberos, 143, 146, 301 killa, 93, Korn Shell, 255, ksh, 255, KVM (Kernel Virtual Machine), 235 L LAMP (Linux, Apache, MySQL, PHP), 156 EAN (Local Area Network), 21, 203-204, 1209, 217, 225, 287 laser, 299) 1B (balancro de carga), 192 LDAP (Lightweight Directory Acess Protocol) 24, 131, 143, 146, 200, 205 laiectord, 193 Iirectord ef, 198 Lite, 30 libsasa, 143, bsasl2-modules, 143 lighttpd, 200 linhelp.org, 119, 117 Uinksys, 101 imax Vietual Server, 191 Linux Virtal Server Project, 201 332, linusnewsiiteong, 112 Listen, 164 litespeed, 200 Jog, 108, 177 og, division de, 176 log, rtacion de, 176 log de acces, 176 log de errores, 176 LogFormnat, 177 LOGNAME, 140 Ipc, 226 LPO (Line Printer Daemon}, 223 Ipmove, 227 Ippassied, 237 Jog, 226 Ino, 227 Pking, 223, Ipstat 226 server, 90 LVM shapshots, 307 Lvs, 201 EVS-DR, 194) LVS-NAT, 194) IVS-TUN, 194 M MAC Fisica, 211, 213 Muse 05, 157, 205, 207 suid, 102 fain, 138, 143 Maxclients, 169 MaxkequestsPerChild, 169 mbox, 151 MCSE, 26 MDs, 300) -MDA (Monochrome Display ‘Adapter, 132, 152 ‘Memeached, 200 Mierosott NT 205, Windows, 89 [MIRE (Multipurpose internet Mail Extensions), 172 Indice alfabético Minimun-TTL, 80 mirror, 18 od rea expires, 200 mod_perl, 156 rmod_php, 156m 172 rmod_vhost_alias, 175, ‘moxlelo fenedog 180 modo segue, 174 rmos-enabled, 161 mont, 126, 128 ‘oni em, 129 monitorizadon 125 monitee, 128 M05, 294 (MIA (Mail Teansfer Agent), 25,43, 61, 84, 106, 152-134, 143, 152 MUA (Mail User Agent), 122, 132, 139 rut, 142, MX, 77, 60-85, 85, 152, MylSAM, 305 MySQL, 41-42, 61, 102, 127, 146, 155, 139-160, 173, 184-185, 200, 304-306 rmysqldurap, 308 rysqlhoteopy, 304 -Mysahotcopy, 304 mysalsnapshot, 304 N Name, 78 names cont, 74 Nameserver, 73 NameVietuallost, 174 NASA, 22, 191 INAT (Network Address Translation), 194, 215, 217 negotiate, 196 Neteraft, 157 Iettites 217 [Netinstal, 29 NES (Network File System, 34, 207, 243 map, 187 Neos Apache, Indice afabético Notes, 134 Novell, 232,238, 5, 77, 82 inslookup, 29 NILM (NT LAN Manager), 148 Nie 57 fll, 67 NXDOMAIN, 98 Oo (open Office, 290 OpenkDAar 153 (OpenOice Writer, 207 Opentower, 238 opensoureetodayorg, 112 Openssi, 34, 102, 113, 147-148 Orr 146 Oracle, 6t ‘Oracle Financials, 252 Onder, 166, Oreilly, 25 P péginas-manval, 286 FAM (Pluggable Authentication Modules), 143, panel grfica, 119 paralelismo, 191 parsep, 280 partial, 205 paserela, 29, 133, 214 PAT (Port Adress Translation), 215, PATH, 259 patrons, 168 PeopleSoft, 252 Per], $8, 156, 156, 273, 277-278, 280-281 Peemitos, 258 Permissive, 241 PHE 111, 155, 158-160, 172-173, 256, 273, 379-281 PHP 4.05, 102 PHP 5, 105 333 spin, 173, phpinfo, 172 ping, 187 plonitieador, 271 plataforma eruzada, 223 Pops, 150 POPS, 28, 43, 102, 124, 131-132, 150-151, 153 PoP3s, 150) pope, 102 postconf, 143 Postix, 24, 28, 30, 43-44, 48, 50, 111, 127, 136, 198, 144, 149, 151, 153, posttixts, 143, ost gre5Q1, 304 procmal, 102 ProFHPD, 28, 56, 127 progress, 285 protocolo Web, 174 proxy’ inverse, 200, rR, 77, 85, 312 prublcacin de contenido, 186 puerto ‘puerto (TCP) 22, 218 pueeto (TCP) 2812, 127 ‘puerto (TCP) 80, 118, 187 puerto (TCP) 1, 105, 105, puerto (TCPH4AS, 190 Duero (UDP) 3,71, 73 Python, 156, 244, 256, 275, 280-281 Q apoppe, 102 auerylog, 02 QUESTION, 97 R rade, 215, RAID (Redundant Areay of Independent Disks), 284 random, 67 recompilar el nici, 295 334 Indice afabético econocimiento de patrones, 168 seursosinfrautlizados, 236 tes de Aa local, 203 Red Hat, 29, 31 Red Hat Cluster, 201 Rodirreion 8 ES, 260, 267 ‘errors, 361 envio de paguetes, 192 Refresh, 79 roect, 27 reload, 92 rele 57 Rendimiento, 160 plication, 30% require, 166 retransfer, 92 Retry, 79 RFC Request for Comments), 20, REC 1032, 62 RFC 1035, 62, 77 REC 1883, 213) REC 2460, 213 RFC 2461, 214 RFC 882, 62 nde, 91 round-robin, 192 route, 195 routes, 211 routeradvertising, 214 routing, 196 RP, 209 RSA, 48, 231 rend, 314 syne, 283-284, 287, 313 RSYNC_RSH, 267 Ruby, 136, 273 = Samia, 15, 205, 208, 224-225 SAP 252 Sarge, 193 ‘SASL (Simple Authentication and Security Layer}, 44, 131, 136, 142, 144, 146 sash, 143 sasauthd, 33, 145 sas, 143 seriptAlis, 172 SCS emaldo, 296 seguir, 76 sequridad bisa, 215, SELINUX, 241 Sendmail, 22, 31, 111, 192-193 Sendmail foe, 134 Sercmall Consortiurs, 1344 sentencia conticional, 265, Seriabno, 70 ServerName, 174 SERVEALL, 98 servidor de copias de seguridad, 286 sh, 255 shadow, 143 SHELL, 40 shell prompts, 255 Shorewall, 217 silos, 232 Simple file Sharing, 207 SME [Server Message Block), 204-205 ‘Smoothovall, 217 “SMT (Surface Mount Technology), 238 [SMTP (Simple Mail Bansfer Protocol), 24, 43, 123, 1312133, 139, 142-143, 146, 152 SMTP-AUTH, 53 Sseitpd, 143 SmipxLoont, 145 spe ssl local domain, 144 SOA, 77-80, 83, 312 software dafino, 133, sources ist, 194 spam, 11 spam, filtrado de, 121-122 SpamAssesion, $8 spammers, 140 SPF (Sender Policy Framework), 83, 84 sSauID, 200 indice alfabetico 335, SH, $1, 219, 226, 228, 289, 321 ssh, 125, 127 ssHserver 231 S51 (Server Side Includes), 102, 156, 169-171, 189) SBL (Secure Sockets Layer), 43, 102, 107, 179, 190, startup, 130 stats, 92 Status, 92 stop, 92 sured, 194 subeec, 107, ‘SubsecUlserGroup, 180 Sun Microsystems, 232 Suse, 29, 65 syscontig txt, 216 syset conf, 195, system-config-secnityieve, 241 T tabla V5, 196 tadsstein com, 112 tail, 275 tapi, 305, tar, 283-284, 289, 292-203 tarball, 103, 290 areas CRON, 271 tar, 290 tarjeta dered, 211 te273 TCP (Transmission Control Protec 73,193 “Teenologia de servidor, 169 hiperstile, 238 | multihilo, 238 ‘mors, 22 “Thunder, 23, Thunderbird, 132 Tie, 236 TLD, 61, 69-70, 136 TS, 43, 124, 142, 146, 152 transacelones, 236 Tm, 73 ‘tuberas, 260 TXT 83-64 ‘wpe, 78 uU une, 133-134 ce, 133-134 LUDF (iniversat Disk Format), 294 LUDP (ser Datagram Protocol), 71 vid, 274 Ultra Monkey, 194, 199, 201 UML (User Mode Linux), 238 Uisys, 238 Universidad ‘de Maryland, 301 de Wasbington, 150 up2date, 291 URL (Universal Resource Locator), 104-105, 157-198, 190, 196, 199 UUseCanonicaIName, 175 uuseradd, 237 USERID, 260 UID, 252 luwsioap, 151 vuvimape-ss, 150 vwvimape-se, 150 v variables de entorno, 170 vhost_alias conf, 175 “ip uP vietwal, 193, 195, 197 Virtual Host, 177 VirtaslDocumentRoot, 175 virtuale, 238, 146 vstualizacion, 235-236, 240, 242, 252-253 vin, 111 logger, 155, 177-178 YM (Virtual Machine), 239, 249 ‘Vtwvare, 235, 240, 246-250, 252 336 Indice alabético vor 24 VPN (Virtual Peivate LAN), 303 Ww WAN (Wide Area Network), 27 Webalizer, 54, 57, 102, 155, 178 Weberaf, $4 Websphere, 62 wget, 103, whos, 286 Windows, 203, 224-225 sem pops, 102 eosin, 295 x X Window, 27, 130, 234 Xandros, 206 ‘en, 235, 239-240, 242-243, 246-247, 252 ‘engtest-instal py, 244 ensouree, 138, 246 Y ‘alo, 62, 83, 191 Masta, 233 Yorn, 208, 241 Zz Zeus, 200 Zimbra, 21, 131 Zmanda, 356 Zmanda Recovery, 306 on, 68 eres, 26

Vous aimerez peut-être aussi