Professional Documents
Culture Documents
OREILLY' 1.1111111
41146157
Administracin de sistemas Linux ofrece numerosos consejos para gestionar un amplio rango
de sistemas y servidores. Este libro resume los pasos para implantar desde hubs SOLIO,
servidores web y servidores LAN, hasta cisteres de carga balanceada y servidores virtuales.
Tambin le ayudar a conocer las herramientas necesarias para administrar
y mantener de
forma eficaz estos entornos de trabajo.
Gestionar usuarios y configurar elementos de red comunes, tales como OCHO y software
para pasarelas en recles de rea local (LAN).
Definir Xen, VMware en un equipo Linux y luego aadir sistemas operativos invitados.
Hacer copias de seguridad y restaurar ciatos con rsync, tar, cdrecord, Amanda y
herramientas MySQL.
Tom Adelstein comenz su carrera en el mundo de las inversiones bancadas, donde sus
conocimientos tcnicos ayudaron a algunas empresas de servicios financieros a convertirse en
lderes de su sector. Ahora es administrador de sistemas y escritor tcnico.
Bill Lubanovic comenz desarrollando software para Unix en la dcada de 1970, interfaces
grficas de usuario en la dcada de 1980 y para la Web en la dcada de 1990. Actualmente
trabaja en el. rea de visualizacin Web para una compaa ele energa elica.
2327258
iffif ^
ANAYA
'
:S'-
MULTIMEDIA*
http://www.AnayaMultimedia.6s
O'REILLY
Responsable editorial:
VctorManuel Ruiz Caldern
Alicia Czar Concejil
Traduccin:
Jorge Martnez Gil
Realizacin de cubierta:
Sandra Cordova Yusta
Tom Adelstein
BilKLubano-vic
an m
mm MULTIMEDIA
Este libro no existira sin la contribucin de muchas personas. Aunque es im-
posible incluirlas aqu a todas. En primer lugar, queremos dar las gracias a Andy
Oram cuyos esfuerzos de edicin, redaccin y gestin son destacadles. Aparte de
su trabajo como editor, Andy ha contribuido materialmente al contenido de este
libro. Andy ha ejercido como gestor del proyecto y ha demostrado paciencia
y
disciplina.
compaas u organizaciones. riencia en el captulo . Los tres, adems, han revisado otras partes del libro.
Muchas gracias tambin a los expertos tcnicos, que han pasado innumera-
derechos. contenido
bles horas revisando,probando y haciendo sugerencias sobre el trabajo: Markus
Reservados todos los El
de esta obra est protegido por que la ley, Amersdorfer, Keitb Burgess, Robert Day, Animar Ibrahim, and Yaman Saqqa.
establece penas de prisin y/o multas, adems Y un agradecimiento especial a Yvonne Adelstein y Mary Lubanovic, nuestras
de las correspondientes indemnizaciones por esposas, que han demostrado una gran paciencia. No habramos podido realizar
daos y perjuicios, para quienes reprodujeren,
este trabajo sin su apoyo.
plagiaren, distribuyeren o comunicasen publi-
camente, en todo o en parte, una obra literaria,
artstica o cientfica, o su transformacin,
interpretacin o ejecucin artstica fijada en
cualquier tipo de soporte o comunicada a
a de energa clica.
EDICIONES ANAYA MULTIMEDIA (GRUPO ANAYA, S.A.), 2007
28027 Madrid.
Juan Ignacio Lea de Tena, 15.
Depsito legal: M-3 .807-2007 1
ISBN: 978-84-415-2234-3
Printed n Spain.
Imprime: Artes Grficas Guemo, S.L.
Introduccin 15
Captulo 8. Servicios efe red de rea local 203 Captulo 10. Scripting... 255
En ambos casos, y en muchos otros, dese tener este libro acabado para reco-
mendrselo a toda esa gente que aunque posea experiencia y habilidades, quera
aprender a administrar Linux. Quizs usted tenga experiencias similares y le
hubiese gustado tener un libro como este a mano en aquellos momentos. Sospe-
cho que conversaciones parecidas a las que acabo de contar ocurren muy a me-
nudo en muchos lugares, incluso diariamente.
Cuando Andy Orara, y yo comenzamos a debatir acerca de un libro para 1a.
administracin de sistemas Linux, tenamos una idea ligeramente diferente de lo
que queramos hacer. Andy hablaba de un libro en el que cada captulo mostrar
a los usuarios los pasos para construir y desplegar servidores sin. entrar en deta-
introduccin introduccin
lies. l propona debatir primero acerca de los captulos y luego acerca de los Captulo . Administrando Apache: Proporciona una visin rpida de
pasos tcnicos. la popular combinacin Apache, MySQL y PHP (a la que junto con Linux
Despus, yo propuse que hiciramos de cada captulo un mdulo y as permi- se le llama servidor LAMP), incluyendo autentificacin SSL.
tir allector completar los mdulos que quisiera o que necesitase. A medida que el Captulos Clusters de carga balanceada: Extiende el captulo previo
7.
libro evolucionaba, sentamos que se estaba cumpliendo este objetivo. No es nece- de configuracin de Apache con el servidor de IP Virtual y Idirectord para
sario que lea este libro de principio a fin para convertirse en un administrador de ofrecer gran capacidad.
sistemas Linux. Simplemente, comience por donde le interese. Captulo 8. Servicios de red de rea local: Muestra cmo gestionar
Cuando yo empec a manejar Linux, la comunidad estaba compuesta en su usuarios y configurar elementos de red comunes, tales como DCHO y soft-
mayor parte por programadores y aficionados. No creo recordar ninguna lista de ware para pasarelas en redes de rea local (LAN).
discusin que se centrar en aplicaciones comerciales o de escritorio. Accedamos Virtualizacin de la empresa moderna: Muestra cmo de-
Captulo 9.
a internet mediante un demonio de inicio. No tenamos conexiones ni navegadores
finir Xen, VMware en un equipo Linux y luego aadir sistemas operativos
Web como que estn disponibles hoy en da.
los
invitados.
La gran mayora de la gente que yo conoca o eran administradores de su
Captulo 10. Scripting: Muestra algunas tcnicas bsicas para escribir
propio sistema o estaban aprendiendo. Me estoy refiriendo a una poca en la que
script potentes y robustos que pueden ahorrar mucho tiempo de adminis-
los usuarios de Linux eran unos 30.000 en todo el planeta, todava me sorprendo
tracin.
con la cantidad de gente que usa Linux a da de hoy sin tener la menor idea de
cmo escribir un archivo de configuracin. Los foros de Linux se llenan de perso- Captulo 11. Haciendo copia de seguridad de los datos: Presenta un
nas que preguntan qu tienen que hacer para conseguir que CLIPS o Samba fun- amplio rango de tcnicas para realizar esta funcin crucial, desde el rsync
bsico y el tar hasta el potente sistema Amanda.
cionen.
En gente mantiene debates acerca de detalles tcnicos de
las listas de correo, la Apndice. Bash scripts de ejemplo: Contiene unos cuantos shell Scripts
proyectos como Postfix, JBoss y Monit. Muchas personas an sienten curiosidad que nos han sido tiles para administrar sistemas y tambin proporciona
por aprender las grandes posibilidades de Linux como plataforma de aplicaciones. consejos a tener en cuenta a la hora de escribir tus propios scripts.
Si usted ya usa Linux a nivel de usuario, y quiere ir un paso ms ali, es decir,
quiere convertirse en administrador, este libro le ayudar en la transicin, puesto
que hemos escrito este libro pensando en usted.
Este libro resume pasos que tiene que seguir para desplegar servidores
los
Sobre este libro
autnomos. Si necesita levantar un servidor de correo, crear un servidor Web
con capacidad para blogs o configurar una pasarela para su LAN, puede dirigirse
Los libros de administracin de sistemas suden ser fcilmente predecibles. a la mitad del libro. No tiene que leer "Administracin de sistemas Linux" desde el
Ensean cmo gestionar usuarios, sistemas de archivos, dispositivos, procesos, principio hasta el final.
impresoras, redes, etc. Pero no indican qu tiene que hacer cuando surge un pro- Comenzaremos explicando, paso por paso, la manera levantar un servidor
blema. Si su sitio Web se convierte en popular, tendr que aprender rpidamente captulo siguiente. Puede elegir ei camino que le convenga, desde
Linux en el
a usar servidores proxy, diferentes niveles de cach, balanceado de carga, auten-
crear un ciuster para servicios Web o reforzar los servidores gracias a ia
tificadn distribuida y otros detalles complejos. Si aade una base de datos, ne- virtualizacin, hasta configurar un servidor para una red de rea local.
cesitar saber cmo ampliarla y aprender a evitar los ataques de inyeccin SQL. Hacer funcionar un sistema operativo moderno es muy barato. Puede confi-
De noche a la maana, el sitio se ha convertido en una misin crtica, y deber
la
gurar un sofisticado centro de aprendizaje sobre hardware que en muchos sitios
ser capaz de hacer copias calientes en sistemas 24 x 7.
consideran obsoleto y lo regalan. Nosotros comenzamos con una caja que conte-
Si ya ha realizado muchos simulacros de incendios, estar cansado de hacerlo
na una CPU de Intel dos generaciones ms antigua que los modelos actuales, le
todo de la manera ms difcil, pero tendr que hacer frente a nuevos retos tcni- pusimos una versin antigua de discos duro y memoria, y una versin sin extras
cos prcticamente a diario y con la ayuda de muy pocas fuentes de ayuda. La
y gratuita de Linux.
documentacin tcnica, ya sea de software comercial o software libre, rara vez
tiene que ver con la tecnologa, y suele pecar de ser demasiado abstracta. Por
ejemplo, ios servidores de directorios de cdigo abierto se han convertido en algo
importante para gestionar ordenadores, usuarios y recursos. Los productos co-
merciales suelen cumplir los protocolos del RFC original, pero la buena docu- Los libros tcnicos han adquirido popularidad a medida que Internet ha ma-
mentacin para proyectos abiertos es sorprendentemente escasa. durado. Para conseguir un libro de xito hoy en da, el autor tiene que proporcio-
22 Requisitos para un administrador de sistemas Linux Requisitos para un administrador de sistemas Linux
nar un valor aadido al lector. Una historia interesante sobre uno de los prime- que hay en el planeta. Segn el Lawrence Livermore National Laboratory de
ros sitios de comercio electrnico ayuda a explicar qu debera ofrecer un libro. Livermore (California), Linux se ejecuta en 10 de sus sistemas ms robustos,
Una compaa que fabricaba tartas de queso puso un anuncio en los primeros todos incluidos entre la lista de los 500. Entre estos sistemas se incluye el BlueGene/
das de la Web. Segn la historia, pasaron varios meses sin que la compaa L, el supercomputador ms potente, y el Thunder, que actualmente
ocupa el
recibiera un pedido. En un movimiento mida comn, el presidente de la compa- puesto diecinueve (http: //www. topBOO .org/list/2006/11/100).
a public la receta secreta de la tarta de queso. Al cabo de unas horas, su lnea
de telfono estaba colapsada. La gente empez a pedir muchos pasteles de queso.
Se dieron cuenta de que se necesitaba un esfuerzo considerable para hacer sus
propios pasteles y por tanto vieron el valor de comprrselos a la compaa. Los administradores Linux estn muy solicitados. Para que se haga una idea de
Muchos de los ingredientes de este libro han sido recopilados de Internet, de que se espera de ellos, hemos recopilado una pequea seleccin de algunas de las
listasde correos, foros, grupos de discusin, mientras que otros han sido extra- miles de tareas que un administrador Linux puede desempear segn un sitio
dos de libros, revistas y la experiencia de amigos. Nosotros solucionamos mu- Web de una agencia nacional de empleo. He aqu algunas de las responsabilidades:
chos problemas cuyas soluciones estaban completamente indocumentadas antes Administrar y gestionar un gran entorno de servidor Linux, con nfasis
de aparecer este libro, y ahora se las ofrecemos.
en el rendimiento, la monitorizacin, la personalizacin y la gestin.
Muchos proyectos
excelentes tienen una documentacin inadecuada. Los 41
Supervisar el diseo fsico de las bases de datos, su administracin y su
desarrolladoreshan trabajado mucho para ofrecer un excelente software libre, documentacin.
pero no una documentacin adecuada para el cdigo por varias razones: falta de
tiempo, falta de recursos, falta de inters,
Ofrecer soluciones a los problemas que puedan surgir en la red, dar sopor-
la barrera del lenguaje, etc.
te a la ampliacin de servicios y la monitorizacin proactiva de sistemas
Junto con nuestros lectores, editores y revisores, esperamos que esta tenden-
crticos.
cia disminuya, al menos en. esta pequea parcela del mundo de la informtica.
Ofrecer consejos y aportar soluciones tecnolgicas a la organizacin; en-
trenar y tutorizar a los administradores noveles.
Ofrecer soporte tcnico diario y resolver consultas relativas al hardware y
al sistema operativo; administrar la infraestructura del servidor Linux para
Hace unos cuantos aos, la mayora de los administradores de sistemas Linux mantener la estabilidad, as como maximizar la eficiencia del entorno.
dedan que no haba escogido esta carrera, sino que. Linux es haba escogido
ellos Instalar, configurary solucionar los fallos relativos al hardware, perifricos
a ellos. En aquellos tiempos, Linux era como un Unix adolescente. La mayora de equipamiento necesario para mantener la integridad del sistema; ofre-
y
los administradores de sistemas Linux aprendan el funcionamiento en una esta- cer soporte para ampliaciones.
cin de trabajo y en pequeas redes. Linux hered algunos servidores de Unix
Ofrecer soporte efectivo de primer/segundo nivel para entornos Linux a
(BINO, Sendmail, Apache), pero tambin software de oficina algunas aplicacio-
y travs de sus servidores.
nes. Hoy en da, la administracin de sistemas Linux involucra a miles de paque-
Gestionar todos los aspectos relativos a la integridad del entorno, inclu-
tes y ia interoperabilidad con otros sistemas operativos.
yendo la seguridad, la monitorizacin (de 1a capacidad y del rendimiento),
Quin necesita administradores Linux? El centro para ciencias de la compu- el control de cambios v la gestin del software.
tacin de la NASA (NCSS)
y el Centro para vuelos espaciales Goddard. Los clsteres
para computacin de alto rendimiento basados en Linux se disean para mejorar Interactuar con otros grupos de soporte interno como el de Control de
el tiempo de respuesta de aplicaciones, que van desde el estudio del
Cambios, Desarrollo de Aplicaciones, Ingeniera, Administradores de Ba-
tiempo y del
cambio climtico hasta la simulacin de fenmenos astrofsicos. Linux permite a ses de Datos, Servicios Web, Almacenamiento, Seguridad, Operaciones y
Hay una diferencia real entre leer algo y hacer algo. Por ello muchas escudas
disponen de laboratorios para impartir las clases. Si usted quiere aprender admi-
nistracin de sistemas Linux, necesita un servidor. As es que, la primera tarea de
Sabemos que no le gusta el aprendizaje a paso lento ni los contenidos densos
este libro consiste en desplegar un entorno bsico. Una vez desplegado, podr
(de hecho estamos sorprendidos de que haya llegado hasta este punto del captu-
disfrutar de una buena base para practicar y aprender Linux.
lo), por lo que empezaremos lo ms rpido posible. Queremos proporcionar un
servidor de trabajo que pueda realizar muchas de las tareas que necesita apren- El sistema operativo Linux se parece al eje de un coche que puede tener una
der y usar. Por este motivo, empezaremos a configurar un servidor listo para gran variedad de funciones dependiendo del chasis y de otras caractersticas. Es
Internet en el siguiente captulo. Aprender a desplegar un servidor Web como si al aadir servicios como correo electrnico o bases de datos, el sistema
y de
correo sin importar para qu sea el servidor (incluso aunque est destinado al fuera un personaje distinto. Usted necesita un servidor Web, una plataforma de
soporte de una LAN) y aquellas herramientas que le sern tiles para comenzar. desarrollo, una pasarela o un servidor de archivos y de impresin? Sea lo que sea,
El resto del libro ampla algunos de los temas e introduce otros con los que se
necesita un ncleo, que es lo que este captulo describe. Vamos a comenzar con un
encontrar casi a diario. Administracin de sistemas Linux es una combinacin servidor que funcione en Internet y que pueda albergar sitios Web. Por qu? Por-
de recetario de cocina y gua de viajes; usted podr disfrutar de su desayuno que es posible adaptar un servidor de Internet a muchas tareas adicionales, como
mientras aprende. Normalmente, explicaremos los conceptos al principio del ca- lagestin y autentificacin de usuarios, la comparticin de archivos y de impresoras,
elmanejo de correo local y el ofrecimiento de acceso remoto. Puede ofrecer facilida-
ptulo y luego los pasos y las aplicaciones concretas. Si slo quiere seguir paso
por paso las instrucciones, puede hacerlo. Podr resolver su problema despus. Si des para el alojamiento Web, configurarlo y empezar a ofrecer servicios Web. In-
cluso puede convertirlo en su propiositio, si su ISP le facilita una direccin IP esttica.
sigue nuestros pasos, le aseguramos que ir en la direccin correcta. Adelante!
Configurar un servidor para Internet cambiar su perspectiva de la inform-
tica. Desplegar una red de rea extensa (WAN) es distinto de usar Linux como
equipo de escritorio, como servidor de archivos y de impresin o como cortafuegos.
Las primeras veces, los administradores se confunden al configurar el servi-
dor, debido a que no estn acostumbrados con los trminos y los conceptos. No
tendr la interfaz grfica del sistema X Window y tendr que usar comandos en
lugar de hacer clic sobre iconos. Su trabajo se har en modo consola, desde la
interfaz de lnea de comandos.
Configurando un servidor Linux multifuncin Configurando un servidor Linux multifuncin
Nota: Como parte de nuestra estrategia para ensear administracin, mos usar una distribucin estable de Linux. Las principales distribuciones co-
le
ensearemos cmo disponer de una herramienta basada en Web para el merciales (Red Hat Linux y Novell Suse Linux) tienen precios que los alejan de la
sistema en el prximo captulo (los proveedores de servicios mayora de los usuarios, pero puede obtener Deban gratis. Tambin Red Hat y
usan esta
herramienta basada en Web para gestionar los servidores Linux que
SUSE usan herramientas de gestin propietarias que crean dificultades para trans-
alquilan a los clientes). Por lo que no estar limitado a
una pantalla en ferir conocimiento Linux.
blanco y negro.
Puede aprender ms sobre el comportamiento estndar de Linux usando Deban
que usando SUSE o Red Hat.
Si sigue las instrucciones de este captulo, obtendr un marco
para hospedar una conexin
sitios Web que podr adaptar a otros propsitos. Su sistema dispondr de: Para configurar un Servidor de internet sobre Linux, necesitar
a internet y una direccin IP esttica. Si no puede conseguir una direccin P
s
Un servidor Web (Apache 2.0.x). esttica, puede configurar el sistema con la direccin cedida por su ISP y confi-
s
Un servidor de correo (Postfix). gurarla estticamente. Asegrese de que sabe el tiempo que dura dicha direccin,
Un servidor DNS (BINE) 9). por si necesita cambiarla mientras el sistema est ejecutndose.
0
Un servidor FTP ProFTPD
( )
Tambin necesitar un ordenador, con al menos una CPU Pentium II con un
8
Agentes de transferencia de correo (POP3/POP3/IMAP/IMAP).
mnimo de 256 MB de RAM y 10 GB de disco duro. Obviamente, una CPU ms
moderna y memoria adicional mejorarn el rendimiento.
8
Analizador para estadsticas Web.
Recomendamos usar un
Este captulo se basa en la versin estable de Deban.
Aunque hay muchas formas de configurar un servidor Web remoto, seguir CD con ncleo Netlnstall. El sitio Web de Debian (http //www deban org)
el :
.
invertida) y una particin swap. Elija la opcin que pone todos los archivos en tarde en este captulo. Mientras tanto, cuando llegue a la pantalla que dice Con-
una particin. Finalmente, elija la opcin de finalizar el particionamiento y es- figurando Exim v4, elija la opcin Sin configuracin. Luego elija S cuando el script
criba los resultados en el disco. ie pregunte "Realmente quiere dejar el sistema de correo sin configurar?"
Finalmente, en la ltima pantalla que tiene que ver con Exim, introduzca el
Nota: Puede obtener un nombre de dominio desde multitud de fuentes desde nombre admin y el correo electrnico del root y del administrador de correo.
3 USD. Busque en internet las palabras "registro de dominios". Ver una
lista de lugares. Muchos vendedores ofrecen sus servicios a precios bajos y
otros los ofrecen gratis. Necesitar dos servidores DNS registrado para [
;
,
yv MTA: Sendfnaii y Alternativas ' >
'
otras distribu iones lirmx: usan Srndnoil por defecto. Snuimuil es de hecho
de nombres secundario. Cada dominio que registre necesita un servidor DNS
i
'
d andar MIA, comerlo prueban las primeras disinbuciom'.s ib i.mux.
ixi
primario y una copia o un servidor DNS secundario.
!
. todos ios procesos en thuix que estn vrdacoi jados con fi correes
as
involucran archivos de configuracin.. Sendrmdl, y la m a y es ra. de las
Nota: La instalacin bsica de Deban que estamos usando tiene tos secciones api unciones de software libre esperan que Peodmati este instalando me!
.
transfiere archivos desde el CD-ROM hasta el disco duro. I Red Hat, .Smdruaii se instala por defecto. Sin embargo. Ral la! \ Adoso
I
vienen con un programa que permite ai ostia no a mina; a Rost ix aunque
i
Una vez que primera seccin termina, le pide que extraiga el CD-ROM que
'
la j
;
.
repositorios de Deban.
convertirse en root. Por razones de seguridad, los administradores de sistemas
tienen la prctica comn de no entrar en el sistema como root, a menos que
necesiten recuperar el sistema tras un fallo.
Ponga el nombre de Administrador y el ID admin. No use la misma contrase-
Cuando finalice la instalacin, debera acceder al sistema desde la consola re-
a para admin y para root. Usaremos el usuario de ID admin en otros captulos.
mota de su escritorio. Recomendamos que realice las labores de administracin
Cuando ponga el cursor
llegue a la pantalla de seleccin de software Deban,
desde otro sistema (incluso desde un porttil), porque un servidor seguro nor-
en el recuadro Servidor de correo, pulse la barra de espacio y permita que el
malmente se ejecuta en lo que se llama modo headless, es decir, que puede ejecu-
sistema nstale los paquetes por defecto hasta que llegue a la opcin donde se vea tar aplicaciones sin Acostmbrese a administrar su servidor
monitor y sin teclado.
cliente libe.
de esta forma, como si estuviera en un sitio en produccin. En la mquina remo-
Debera instalar el cliente libe con el buzn de correo de Unix en lugar del ta necesitar solamente un cliente SSH, incluido en todas las distribuciones Linux
soporte maildir. Los buzones de correo Unix mantienen todo el correo en un
y que puede descargarse para otros sistemas operativos.
archivo simple, mientras que maildir mantiene cada mensaje en un archivo dis-
La siguiente salida se produce cuando usa por primera vez SSH en su nuevo
tinto. Los buzones de correo de Unix son ms fciles de configurar, por lo que de
servidor Linux:
momento ser con los que trabajemos.
$ ssh admin@serverl.centralsoft.org
Deban tambin querr que configure Exiin como agente de transferencia de
The authenticity of host 'serverl.centralsoft.org (70.253.158.42)' can't
correo (MTA), pero no lo haga. Sustituiremos Exim con Postfix un poco ms be established.
32 Configurando un servidor Linux multifuncin Configurando un servidor Linux multifuncin
Llegados a este punto, ha establecido una conexin remota y puede realizar Despus de editar /etc/network/interf aces file, reinicie la red introdu-
ciendo esto:
tareas como si estuviera delante del monitor de su servidor. Si lo desea, puede
quitar cualquier monitor, teclado y ratn que haya conectado al servidor. # /etc/init . d/networking restart
Para cambiar la configuracin y usar una direccin IP esttica, necesitar con- Nota: Asegrese de usar servidores DNS que funcionen con su dominio; en
vertirse en root editar el archivo /etc/network/interf aces de acuerdo a
y caso contrario, su servidor DNS no indicar quin es la autoridad para su
sus necesidades. Como ejemplo, vamos a usar la direccin IP 70. 153.258.42. r dominio.
Removing, portmap . .
Removing pppoe . .
gunos cambios, sobre todo para hacer uso de Posftix. Aunque podra pensar que Stopping all PPP connections done . . .
cambiado ios servicios cid sistema, necesita reiniciarlo para que pueda descubrir servidor, aadir una facilidad para cuotas que podr usarse despus. Primero,
ios nuevos servicios del archivo de configuracin. El comando inetd acepta un instala los paquetes de cuotas usando apt-get:
parmetro que apunta al archivo de configuracin listando los servicios que ofrece.
# apt-get install quota quotatool
Pero si no se proporciona un parmetro por lnea de comandos, inetd lee la
informacin de configuracin del archivo /etc/ inetd conf que sirve para nues-
.
,
Le aparecer una pregunta como esta:
tros propsitos. El comando de actualizacin de inetd almacen nuestros cam-
bios en este archivo. Para reinicar inetd usando el archivo de configuracin por Enabie this option if you want the warnquota utility to be run daily
defecto, introduzca: to alert users
when they are over quota.
# /etc/init d/inetd reload
.
Send daily reminders to users over quota?
<Yes> <No>
Ver el siguiente mensaje en su consola:
Aqu debe escoger <No>.
Reloading internet superserver: inetd Deban instalar y configurar los dos paquetes, pero usted tendr que editar
/etc/fstab para activar las cuotas en los sistemas de archivos que desee. Debi-
do a que nuestro sistema tiene una nica particin para todos los archivos de
usuario, puede aadir las opciones usrquota y grpquota a la particin con el
punto de montaje /:
El servidor Web Apache
ofrece a Linux la posibilidad de ofrecer alojamiento
# /etc/fstab: static filesystem Information.
su servidor puede alojar varios sitios Web con nombres de domi-
virtual, es decir,
#
nio que difieren del nombre del servidor fsico. En el archivo de configuracin del # <fiiesystem> cmount point> <type> <opt.ions> <dump> <pass>
servidor Web, puede definir diferentes dominios usando clusulas de alojamiento proc /proc proc defaults 0 0
virtual. Por ejemplo, incluso aunque el dominio usado en este libro es central
/dev/sdal / ext3 def aults errors=remountro,
,
usrquota grpquota 0 1
soft org, podramos tener mothersmagic com, wildbills info u otro do-
. .
/dev/sda.5
,
none swap sw 0
minio que registremos y usemos con la misma direccin IP. Cubriremos este /d.ev/hdc /media/cdromO iso9660 ro, user, noauto 0
concepto con detalle ms adelante. Por ahora, slo piense en la direccin IP como /dev/fdO /media/floppyO auto rw, user noauto 0
,
navegador accede al puerto 80, llega hasta el dominio que usted ha configurado. Ahora ejecute los siguientes comandos para aadirlos al directorio raz:
Linux ofrece medios para gestionar el uso del disco para mltiples dominios gra- touch /quota. user /quota group .
cias a una facilidad llamada cuotas. Originalmente, Unix ofreca cuotas para las .,p # chmo 600 /quota.*
cuentas de usuario para que no ocuparan demasiado espacio en el servidor. Por # mount -o remount /
Ahora puede ejecutar el prximo comando: Para poner BIND en un entorno seguro, cree un directorio donde el servicio pue-
da ejecutarse sin tener que estar expuesto a los otros procesos. Tambin podr eje-
# quotaon -avug cutarlo como usuario sin privilegios, pero slo el root podr acceder al directorio.
Primero pare el servicio ejecutando el siguiente comando:
Ver los siguientes mensajes:
# /etc/nit d/bind9 stop
.
Por ahora,
cesarios en /var/lib:
para su servidor y para dominios virtuales que residan en su sistema.
estableceremos una configuracin mnima para BINO, el servidor DNS ubicuo. # mkdir -p /var/lib/named/etc
Deban ofrece una versin estable de BJND en sus repositorios. Nosotros ins- # mkdir /Var/lib/named/dev
talaremos y configuraremos BIND y lo aseguraremos en un entorno chroot, es # mkdir -p /var/lib/named/var/cache/bind
# mkdir -p /var/lib/naraed/var/run/bind/run
decir, donde no ser posible acceder a los archivos que estn fueran de su propio
rbol de directorios. Esta es una tcnica de seguridad importante. El trmino Luego, mueva el directorio config desde /etc a /var/lib/named/etc:
chroot se refiere al truco de cambiar el sistema de archivos raz (el directorio /)
que ve un proceso, por la que la mayor parte del sistema no puede acceder a l. # mv /etc/bind /var/lib/named/etc
Tambin configuraremos BIND para ejecutarlo como un usuario que no sea root.
De esta forma, si alguien consigue el acceso a BIND, no podr obtener privilegios
Ahora cree un enlace simblico al nuevo directorio config desde la localiza-
cin antigua, para evitar problemas cuando BIND se actualice en el futuro:
de root o ser capaz de controlar otros procesos. Para instalar BIND en su servidor
Deban, ejecuta este comando: # ln -s /var/lib/named/etc/bind /etc/bind
# apt-get install bind9 Cree dispositivos nuil y random para que los use BIND y establezca los permi-
sos de los directorios:
Deban baja y configura el archivo como un servidor de Internet. Podr ver el
que pueda ver mensajes en los logs del sistema. Cambie la lnea:
Nota: Ver salidas similares cuando instale o elimine otros servicios con la
utilidad apt-get. SYSLOGD = "
40 Configurando un servidor Linux multifuncin Conflgurando un servidor Linux multifuncin 41
para que ponga: na en cach cada visita a una pgina Web. Le mostraremos cmo configurar el
servidor DNS
primario y secundario en el captulo siguiente.
SYSL0GD= " -a /var/lib/named/dev/log"
Aunque muchas personas creen que carece de importancia, administrar DNS
Ahora reinicie el proceso de logging con este comando: es crucial porque muchos otros servicios dependen de l. Ya ver como DNS es un
componente crtico de casi todos los servicios de Internet que su sistema ofrece.
# /etc/init . d/sysklogd restart
3. Crear un usuario MySQL normal, que ser usado por las aplicaciones para
number of zones: 6 acceder a la base de datos.
debug level 0 :
Please remember to set a PASSWORD for the MySQL root userl If you use a Si ha editado /etc/mysql/my cnf, . reinicie MySQL usando este comando:
/root/ my cnf always write the "user and the "password lines in
. . ,
Elija una cadena que sea difcil de adivinar como contrasea (pwrod).Cuando
quiera administrar SQL en el futuro, deber introducir el siguiente comando y En esta seccin, aadiremos agentes de transporte y de entrega de correo elec-
teclear su contrasea:
trnico e implemen taremos un ligero control sobre el entorno de los sistemas.
Demostraremos cmo autentificar a los usuarios de un sistema de correo elec-
# mysql -u root -p trnico y prevenir el acceso fraudulento a aspectos del correo. Durante ms de
Enter password: 25 aos, Sendmail ha servido como el MIA primario de Internet. Muchas aplica-
ciones escritas para Linux esperan que Sendmail se est ejecutando en el servidor.
Intente asegurarse de que el cliente y el servidor estn trabajando y que pue-
den acceder al servidor. Debera ver en la salida de la consola algo similar a lo
A pesar de que fue escrito antes de que Internet se abriera al pblico, Sendmail
tiene muchos problemas de seguridad que se listan en la lista Common
siguiente:
Vulnerabilities and Exposures (CVE) alojada en http //c ve .mitre org.
:
.
Welcome to the MySQL monitor. Commands end with or \g. ; Afortunadamente, otros MTA han emergido para ocupar el lugar de Sendmail.
Your MySQL connection id is 14 to server versin: 4 0 24_Debian- 10-log . .
El principal problema de estos MTA es que las aplicaciones esperan que sea
Type 'help,-' or '\h' for-help. Type '\c' to olear the buffer.
mysql
Sendmail el que est presente en el servidor Linux. Para solucionar esto, algunos
MTA como Postfix o Exim deben ser capaces de hacer creer a las aplicaciones que
Teclee/q o quit para salir. ellos son Sendmail. Son sustituciones de andar por casa y pueden hacer que el
Ya que el servidor MySQL se est ejecutando, puede ejecutar netstat -tap y sistema se ejecute en modo Sendmail.
ver algo como esto: Postfix es nuestro sustituto preferido para Sendmail. Postfix es ms rpido
que Sendmail, una arquitectura ms segura y modular y ofrece muchas
tiene
tep 0 0 localhost localdo mysql *:*
. : LISTEN 2449/mysqld funciones requeridas por un proveedor de grandes volmenes de correo. Postfix
no soporta protocolos obsoletos, sino que usa el Protocolo Simple de Transporte
MySQL es accesible desde localhost (127.0.0.1) en el puerto 3306. Si no ve
de Correo (SMTP), y es el que tiene el menor nmero de incidencia en la lista
esta lnea, edite /etc/mysql/my cnf (el archivo de configuracin que el diente
.
CVE. Por todas estas razones, usaremos Postfix en lugar de Sendmail como MTA.
y el servidor comprueban para obtener los parmetros) y aada un smbolo #
El correo electrnico seguro involucra mantener fuera del servidor a todos los
para comentar la lnea skip-networking:
usuarios sin autorizacin (por lo que no pueden usarlo para enviar correo an-
#skip-networking nimo), asegurndose de que nadie puede suplantar a los usuarios legtimos y
protegiendo el contenido de cada correo recibido o despachado.
Si quiere que MySQL escuche en todas las direcciones IP disponibles, edite /
Una seguridad dbil hace ms fcil que los impostores suplanten usuarios.
etc/mysql/my cnf y comente. la lnea bind-address = 127.0.0.1
Para proteger la autentificacin, instalaremos con Postfix la Transport Layer
#bind-address 127 .0.0.1 Security (TLS), un protocolo mejor que el conocido Secare Sockets Layer (SSL). Esto
Configurando un servidor Linux multifuncin Configurando un servidor Linux multifuncin
evita enviar contraseas en texto claro desde un cliente de correo electrnico a que mejor se ajuste a nuestras necesidades. Ms tarde podremos aadir esto a la
un servidor. configuracin por defecto.
Tambin queremos que los usuarios se autentifiquen y accedan al servidor de
correo. Para conseguirlo, emplearemos el Simple. Authentication Security Layer
(SASL). Esto crea una extensin (ESMTP) que permite a un cliente SMTP autenti- TU j poi-'ts s*ie tad .$ m shling sfeiy be b/iT dan yy to lly corr gu red
ficar el servidor. Services. cisfault the por? seise ti on is respe? Gnty P O A
Instalar los paquetes es necesario para Postfix y los otros componentes de
correo, introduzca: to you v/snt ;
irc. .ignore possible.- local snc! alWays 'se .lected
A '
A/V-T AS '
S '>
'
? A A'l'k I
/ wrisfflETSS':-' MyA.' A T O :
|
;
A medida que Deban instale los paquetes, presentar algunas pantallas que
le preguntarn algunas cuestiones.
Cuando vea la pantalla de configuracin de ipopd mostrada en la figura 2.1, Figura 2.2. Dejando los puertos por defecto para el correo.
seleccione pop3 y pop3s.
Figura 2.1. Pantalla de configuracin de correo de Deban. Figura 2.3. Opciones de configuracin Postfix.
Luego, ver una pantalla parecida a la de figura 2.2, donde debera seleccio-
nar <No> para conseguir flexibilidad a la hora de enrutar los puertos en caso de Cuando configure Postfix para ejecutar el correo, funcionar como un agente
lo que necesite despus. Los puertos por defecto trabajan aqu porque usan TES y de transferencia de correo estndar. No escoja la opcin de la figura 2.4 para usar
el demonio SASL. otro servidor de correo como smarthost. En otras palabras, su sistema ser la
La figura 2.3 es informativa; el instalador Deban est indicando qu opcio- autoridad de correo de su dominio. Si ha usado otro servidor (un portal popular
nes tiene para la configuracin de correo. Haga clic en OK para pasar a la panta- o un IS P ) para enviar y recibir correo en el pasado, su servidor realizar estas
lla de la figura 2.4, que le permite escoger una opcin. Para nuestro propsito, tareas ahora.
escogeremos Interne! Site, porque usaremos SMTP para todo el trfico, tanto para Luego, en la pantalla mostrada en la figura 2.5, responda NONO. Postfix crear
la LAN como para Internet. Deban ofrecer el tipo de archivo de configuracin su propio archivo de alias.
Configurando un servidor Linux multifuncin Configurando un servidor Linux multifuncin
Despus de que Deban acabe la instalacin y vea que la consola vuelve a estar
disponible, necesitar poner a trabajar juntos varios componentes de correo. Esto
significaque deber escribir entradas en el archivo de configuracin Postfx y
Figura 2.5. Opcin para usar una cuenta alias existente. generar certificados y claves de encriptacin.
Le advertimos sobre esta parte al principio del captulo. Algunos de estos co-
En las figuras 2.6 y 2.7, el configurado! Postfx quiere saber para quin acepta
El nombre de dominio es tambin "nombre de correo". mandos no tendrn sentido para usted. Perono se preocupe, le ver el sentido crian-
y despacha el correo. el
do Suelva la vista atrs despus de haber completado las tareas de esta seccin.
Postfx usar este nombre para verificar el correo dirigido al servidor. Cuando al-
cance las pantallas mostradas en las figuras 2.6 y 2.7, tendrn valores por defecto
en las cajas azules de texto. Puede aceptar la figura 2.6 tal y como le mostramos.
En la figura 2.7, notar que hay dos comas despus del nombre localhost
centralsoft .org. Elimine la segunda coma.
En la figura 2.8, el configurador de Postfx necesita informacin sobre la actua-
lizacin. sncrona. Cubriremos la administracin de servidores de correo con gran
detalle ms adelante. Por ahora, responda <No> a la pregunta y siga avanzando. Figura 2.8. Rechazando actualizaciones sncronas.
Configurando un servidor Linux muitfuncin Configurando un servidor Linux multifuncin
segura. Usa los siguientes comandos: Organizational Unt Mame (eg, section) [] web :
# openssl x509 -req -days 3650 -in smtpd. csr -signkey smtpd. key
-out \
permit_sasl_authenticated, permit jmynetworks re j ect_unauth_destination'
,
Ahora necesita indicarle a Postfix sus claves certificados, para ello use los smtpd_tls session__cache__timeout = 3SOOs
y tls_random_source = dev /dev/urandom
siguientes comandos postconf: :
# postconf -e 'smtpd__tls_auth_only = no' Sisu archivo coincide con este, puede usar este comando para que los cambios
# postconf -e 'smtpuse tls = yes' surtan efecto:
# postconf -e 'smtpdjuse_tls = yes'
# postconf -e 'smtp_tls_note__starttls_of f er = yes' # /etc/init .d/postf ix restart
# postconf -e 'smtpd_tls Jkey_f ile = /etc/postf ix/ssl/smtpd. key' Stoppng mail transport agent Postfix. :
# postconf -e 'sratpd_tls_cert_f ile = /etc/postfix/ssl/smtpd. crt' Starting mail transport agent: Postfix.
# postconf -e 'smtpd_tls CAfile = /etc/postf ix/ssl/cacert pem' .
# postconf -e 'smtpd tls_loglevel = 1 La a identificacin se har a travs de saslauthd, un demonio SASL, pero ten-
# postconf ~e 'smtpd_tls_receivad_header - yes'
dr que cambiar unas cuantas cosas para que funcione correctamente. Debido a
# postconf -e 'smtpd_tls__session_cache_timeout = 3600s'
# postconf -e
tls_random_source = dev: /dev/urandom' que Postfix se ejecuta en modo chroot en /var/ spool /postfix, introduzca ios
siguientes comandos
El archivo /etc/postf ix/main cf debera quedar
. as:
# mkdir -p /var/spool/postf ix/var/run/saslauthd
See /usr/share/postf ix/main. cf.dist for a commented, more complete # rm -fr /var/run/saslauthd
#
# versin
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) Ahora, tiene que editar /etc/default/saslauthd para activar saslauthd.
biff = no Elimine el smbolo # en la lnea START=yes y aada la linea PARAMS="-m /
# Appending .domain is the MUA' s job var/spool/postf ix/var/run/saslauthd" para que el archivo quede as:
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings This needs to be uncommented before saslauthd will be run automatically
#
#delay_warning_time = 4h START=yes
myhostname - serverl example com
. .
PARAMS=-m /var/spool/postf ix/var/run/ saslauthd"
alias_maps = hash /etc/aliases
:
# You must specify the authent i catin mechanisms you wish
to use.
alias database = hash /etc/aliases inelude
:
# This defaults to "para" for PAM support, but may also
myorigin = /etc/mailname # "shadow" or "sasldb", like this:
mydestination = serverl.example.com, localhost.example.com, localhost # MECHANISMS= "pam shadow"
relayhost = MECHANISMS "pam"
mynet works = 127.0.0.0/8
mailbox_command = proemail -a "$EXTENSION" Finalmente, edite /etc/init d/saslauthd. Cambie la lnea:
.
mailbox__size_limit = 0
recipient_delimiter = + dir= 'dpkg-statoverride --list $PWDIR'
inet_interf aces - all
r
smtpd_sasl_local_domain = por:
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous #dir= dpkg-statoverride --list $PWDIR'
'
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = Luego, cambie las variables PWDIR y PIDF1LE y aada la variable dir cerca del
permit_sasl__authent icated, permi t_mynet works reject_unauth_destination
,
comienzo del archivo:
smtpd_tls_auth_only = no
smtp_use_tls = yes PWDI R= " / var / spoo 1 /pos t f ix /var / run/ $ { AME }
smtpd_use__tls = yes PIDFILE " $ { PWDIR} /saslauthd. pid"
smtp_tls_note_starttls_of f er = yes dir="root sasl 755 ${PWDIR}"
smtpd_t 1 s_key_f ile = /etc/postf ix/ssl/smtpd key .
smt pd_t 1 s_ce rt_f ile = /etc/postf ix/ssl/smtpd. crt El archivo /etc/init d/ saslauthd debera quedar as:
.
smtpd_tls_loglevel = 1 # /bin/sh -e
!
# $2 = group
exit 0
# $3 = permissions (octal)
else
# $4 = path to directory
echo " (failed) .
-d "$4"
[
|| mkdir -p "$4"
]
exit 1
chown - c ~h '$l:$2" "$4" l
fi
chmod -c " $ 3 " "$4"
fi
}
test -f "
$ { DAEMON " | exit 0
}
restart force-reload)
|
fi
*)
# If we're not to start the daemon, siraply exit start stop restart force-
echo "Usage: /etc/ init d/ $ {AME } . { j | |
START-"- -start --quiet --pidfile ${ PIDFILE} --startas ${DAEMON} Starting SASL Authentication Daemon: changed ownership of
--ame '/var/spool/postf ix/var/run/saslauthd' to root sasl
$ AME { -- $ {PARAMS }"
}
stop)
Trying 127.0.0.1. .
Configurando un servidor Linux multifuncin Configurando un servidor Linux muitifuncin
Escape character is
php4 php4-cli php4-comroon php4~curl php4-dev php4-domxml \
.
2S0-PIPELINING
250-SIZE 10240000
comando captura y configura 48 archivos, por lo que tardar un
Este
250-VRFY rato. Una vez hecho, puede saltar al siguiente paso. Cambie la directiva
250-ETRN Directorylndex del archivo /etc/apache2/apache2 conf .
250-STARTTLS
250-ATH LOGIN PLAIN Di rectory Index index.html ndex. cgi index.pl ndex. php ndex. xhtml
250 -AUTH-LOGIN PLAIN
250 8BITMIME por:
su configuracin debera funcionar y ya habr completado esta parte de la Directorylndex index.html index.htm ndex. shtral ndex. cgi ndex. php
configuracin del correo. Puede teclear quit y pasar a la siguiente seccin. ndex. php 3 index.pl ndex. xhtml
Luego, aada smbolos # tal y como se muestra, para comentar las siguientes
lneas en el archivo /etc/mime types:
.
Como vio al instalar otros procesos en secciones previas de este captulo, ins-
talar los mdulos apropiados con apt-get inicia automticamente Apache en el
sistema. Sin embargo, y debido a que ha hecho varios en la configuracin, nece-
sitar reiniciar Apache para que los cambios surtan efecto sin tener que reiniciar
el servidor. Introduzca este comando:
El servidor Web se reiniciar y activar los nuevos mdulos, junto con los
cambios de configuracin.
Junto con el servidor httpd que muestra pginas Web en un navegador, nece-
Figura 2.9. Pantalla de configuracin Deban para ProFfPD.
sitarimplantar un servidor de trasfcrencia de archivos (FTP). Usaremos una
herramienta de cdigo abierto llamada ProFTPD para este propsito porque es
popular, segura y configurable.
El servidor FTP usa un archivo de configuracin principal, con directivas
y
grupos de directivas que cualquier administrador que haya usado alguna vez el Webalizer crea informes estadsticos a partir de los archivos del servidor Web.
servidor Apache comprender. ProFTPD tiene archivos f tpaccess de configu-
. Puede usarlo con un navegador Web estndar y produce informes detallados y
racin por directorios, de manera anloga a los archivos htaccess de Apache,. fcilmente configurables en formato HTML. El proyecto Deban incluye Webalizer
que obligan a los usuarios a introducir sus ID de usuarios y sus contraseas para en sus repositorios estables, por lo que puede instalarlo con este comando:
acceder a los directorios individuales.
# apt-get install webalizer
ProFTPD le permite configurar mltiples servidores FTP virtuales y servicios
de FTP annimos. No invoca ningn programa externo se ejecuta como usua- Durante la instalacin, necesitar verificar el directorio de instalacin (/var/
y
rio sin privilegios. Instale ProFTPD ejecutando este comando: www/webalzer), el nombre que se usar para los ttulos de los informes estads-
ticos (podra especificar un nombre de dominio, por ejemplo) y la localizacin del
# apt-get install proftpd archivo log del servidor Web (que en su sistema est en /var/log/apache/
accQss.log. 1):
La figura 2.9 muestra la pantalla que ver una vez que Deban haya descar-
gado y comience a instalar ProFTPD. ste puede ejecutarse bien como aplicacin Which directory should webalizer put the output in?
/ var /www/webal i z er
autnoma o bien como un servicio desde inetd. Por razones de seguridad, ejecu-
Enter the title of. the reporte webalizer wiil generate.
taremos ProFTPD en modo autnomo. Usage Statistics for serverl.centralsoft.org
Posteriormente, aada las siguientes lneas al archivo /etc/prof tpd conf
.
What is the filename of the rotated Webserver log?
/var/log/apache/access log . .
DefaultRoot ~
IdentLookups off
Serverldent on "FTP Server ready. 1
Ahora, ai igual que hemos hecho con los otros procesos, reinicie ProFTPD
Los relojes de los ordenadores tienden a desviarse. Por tanto, existe una tarea
usando este comando:
bsica de configuracin que conecta su sistema con un servidor NetWork Time
# /etc/init. d/proftpd restart Protocol (NTP) que mantendr la hora correcta.
.
Para sincronizar su sistema con un servidor NTP, aada las siguientes lneas a > install HTML: Parser
/var/ spool/cron/crontabs/root; > install DB__File
> install Net: :DNS
# update time with NTP server
0 3,9,15,21 * * * /usr/sbin/rdate 128,2.136.71 |
logger -t NTP respeto a activar los test, responda no
Y con
un mdulo ya existiera en el sistema, ver un mensaje como HTML Parser
Si :
y reinicie el servicio cron mediante: Ahora que ya ha completado las tareas asociadas a la configuracin del servi-
dor, ahora podr empezar a usarlo en modo de produccin. Necesitar configu-
# /etc/init .d/cron restart
rar los servicios de DNS y notificar al registrador dnde ha configurado su dominio
(esto ser objeto de estudio en siguiente captulo). Una vez que la configura-
el
cin DNS est acabada, puede instalar una aplicacin basada en Web (nosotros
usaremos ISPConfig) y comenzar a explorar cmo funcionan las aplicaciones Web.
Para darle una ligera idea de cmo instalar mdulos Perl, aadiremos algunos
usando la consolaCPAN de Perl. Que es un entorno para buscar archivos e insta-
lar mdulos.
Entre en la lnea de comandos como root y ejecute el siguiente comando para
entrar en la consola CPAN de Perl:
Responda a todas las preguntas presionando la teda Intro para aceptar los
valores por defecto. Luego ejecute los siguientes comandos para instalar los m-
dulos que usaremos en d prximo captulo:
Este captulo le muestra cmo construir un Sistema de Nombres de Dominio
(DNS) usando BIND. Cuando acabe este captulo, debera saber instalar, configu-
rar, mantener y resolver las incidencias de cualquier dominio que registre. Em-
pezaremos con una introduccin a DNS, la cual se podr saltar para ir a la seccin
de instalacin y configuracin paso por paso. Si le surgen problemas, siempre
puede volver atrs y leer o revisar el material inicial.
El DNS
(que originalmente se defini en el RFC 882 en 1983 y luego se revis Por qu podra necesitar un administrador de sistema gestionar sus propios
como RFC 1034 y 1035) introdujo varias ideas para gestionar el mapeo de los servidores DNS? Usted debe ofrecer las direcciones de dos o ms servidores de su
nombres comunes de Internet a direcciones IPS. El sistema distribuye los datos y dominio al registrador (por lo menos dos, para garantizar que alguno de los dos
los nombres de los equipos de manera jerrquica en un espacio de nombres de funcione cuando alguien solicite un nombre). Debe gestionar los nombres de do-
dominio. Cada dominio se parece a una rama de un rbol y cada rama contiene a minio de los sistemas que van a ser pblicos: los servidores Web, los servidores de
su vez sub-ramas. Los programas llamados servidores de nombres ofrecen infor- correo, etc. A medida que aprenda DNS, se ir dando cuenta de que es muy intui-
macin sobre las partes del rbol y otros programas llamados resolvers piden tivo. Muchas veces la jerga parece un idioma extranjero. No le encontrar el sen-
informacin a los servidores de nombres de parte de los programas clientes. tido hasta que no haya trabajado con ella durante un tiempo. Le ensearemos
Los esquemas de nombres jerrquicos como DNS evitan la duplicacin de los cmo levantar un servidor DNS en un momento. Luego, revisaremos algunos
datos. Cada dominio es nico, y puede tener tantos servidores como quiera para aspectos y trminos clave antes de sumergirnos en los archivos de configuracin.
su dominio, simplemente debe aadir un prefijo a los equipos del dominio. Un
sitio que controle centralsoft.org, por ejemplo, puede tener equipos que se
llamen serverl.centralsoft.org, ldap.centralsoft.org y Introduccin a B1ND
mail centralsof t org.
. .
capaces de conectar sistemas heterogneos. Los departamentos de tecnologas de BIND 4. Como dijimos antes, las empresas odian reemplazar los sistemas que
la informacin usan servidores de aplicaciones como JBoss (propiedad de Red Hat)
funcionan, debera ocurrir una catstrofe para que un departamento de tecnolo-
Webshpere de IBM o BEA WebLogic en segundo plano y otros productos para la gas de la informacin pudiera actualizar a BIND 8 o 9. Debido a que hay graves
presentacin. En cada caso, DNS es una parte integrante de los sistemas basados riesgos de seguridad para BIND 4, le recomendamos que se actualice (y ya de
en Web, porque dichos sistemas usan servidores de directorios para comunicarse. paso, salte a la versin 8 como mnimo, no a la versin 5, 6 7).
El segundo elemento de BIND es la librera resol atora. Este componente es el Despus de las etapas iniciales de la instalacin de Debian, ver una pantalla
que los navegadores Web, el software de correo y otras aplicaciones consultan grfica indicndole que escoge el tipo de instalacin que desea. La pantalla ser
cuando intentan encontrar un servidor por su nombre DNS en la jungla de ms o menos as:
Internet.
Entorno de escritorio
Algunas personas piensan que un resolutor es un cliente dentro de BIND. Pero { )
{ ) Servidor Web
al contrario que el servidor, el cliente no es un programa simple, sino que es una Servidor de impresin
{ )
librera que enlaza con cada navegador Web, diente de correo, etc. El cdigo del { ) Servidor DNS
resolutor lanza consultas sobre los servidores DNS para intentar traducir nom- { ) Servidor de archivos
( ) Servidor de correo
bres en direcciones IP
( ) Base de datos SQL
Este elemento de BIND usa su propio resol v.conf que
directorio llamado { ) Seleccin manual de paquetes
est presente en cada ordenador. Es su tarea configurar resolv. conf. He aqu
cmo se vera el archivo resolv. conf en los equipos del dominio No ninguna opcin, solo pulse la tecla Tab. Haga clic en el botn
seleccione
centralsof t org:.
OK y el instalador Debian comenzar a descargar y a instalar paquetes. Durante
la descarga, ver una pantalla grfica. Esta pantalla le preguntar si quiere con-
search centralsoft.org figurar Exim (Exim-config). Elija Sin configuracin. Le preguntar "Seguro que
nameserver 70.253.158.42
nameserver 70.253.158.45 desea dejar el sistema de correo sin configurar?" Responda S.
Una vez que se haya completado la instalacin mnima de Debian, debera elimi-
Como puede ver, el archivo de configuracin del resolutor BIND es simple. La nar algunos programas innecesarios que tiene alguna utilidad en una LAN pero no
primera lnea busca un servidor en el dominio local. Las otras lneas indican en un servidor de correo de Internet: puede eliminarlos usando la utilidad apt-get:
direcciones de servidores de nombres que el administrador conoce, si una consul-
ta falla, se procede con la siguiente lnea. # apt-get remove lpr nfs-common portmap pidentd pcmcia-cs pppoe \
pppoeconf ppp pppconfig
La tercera parte de BIND ofrece herramientas tales como el comando dig para
probar DNS. Vaya a la consola, teclee dig yahoo com (u otro dominio conocido)
.
Si ha decidido usar SUSE o Fedora en lugar de Debian, puede eliminar estos
y vea lo que ocurre. Analizaremos la herramienta dig y otras utilidades del kit paquetes con su mtodo preferido.
ms tarde.
Ahora, desactivemos algunos servicios y reiniciemos inetd:
Done Ahora cree un enlace simblico que apunte al nuevo directorio config desde el
Adding system user 'bind' emplazamiento antiguo y as evitar problemas cuando BIND se actualice en el
Adding new user 'bind' (104) with group 'bind' futuro:
Not creating borne directory.
Starting domain ame Service: named. #ln -s /var/lib/named/etc/bind /etc/bind
Crea dispositivos nuil y random para que BIND los use y asigne los permisos
de directorio:
Cambie la lnea:
Ver el siguiente mensaje:
OPTS="-u bind"
Restarting system log daemon: syslogd.
para que ponga:
Finalmente, inicie BIND:
OPTIONS= " -u bind -t /var/lib/named"
#/etc/init d/bind9 start
.
Para ofrecer un entorno completo para la ejecucin de BIND, cree los directo-
rios necesarios en /var/lib: Compruebe /var/log/syslog por si hubiera errores. Puede moverse por el
Desgraciadamente, named puede iniciarse pero fallar al. cargar ios archivos de servidores DNS
mismo tiempo, y manejar mltiples dominios independientes
al
datos iniciales, lo que lo dejara inoperativo. Por tanto, compruebe si named est alojados en el mismo servidor.
funcionando introduciendo:
Cada sitio Web es un dominio diferente, por lo que tiene que escribir archivos
#rndc status de zona para cada sitio Web. En las bases de datos de los registrantes, su servidor
number of zones: 6 DNS estar listado como el servidor de nombres de sus nombres de dominio. En
debug level 0 :
otras palabras, serverl . centralsoft.org est listado como el chico con el
xfers running: 0
que los de fuera tienen que contactar para encontrar a los otros chicos de la casa
xfers deferred: 0
soa queries in progresa: 0
(linhelp com, supportcall org y los otros).
. .
query logging is OFF El archivo que se corresponde con la lista de nmeros de telfonos mviles de
server is up and running nuestra casa es /etc/named. conf En cierto modo, /etc/named conf es su
. .
serven /home/admin#
directorio de archivos de zona, puesto que ofrece informacin acerca de la locali-
:
En cambio, si DNS no est funcionando correctamente, podr ver algo como zacin de cada zona en su sistema.
lo siguiente:
#rndc status
rndc: neither /etc/bind/rndc conf or /etc/bind/rndc.key was found
.
org; realiza la misma funcin que nsl google com). Suponemos que el servi-
.
.
dor est ejecutando Linux y BIND. Un servidor del nivel ms alto dirige a los
resolutores al sistema (en el caso de serverl centralsoft.org, un servidor
.
Encontrando un dominio
archivo de configuracin, /etc/named. conf S el servidor tiene informacin servidor dnde conseguir el maestro es la direc-
la informacin. En este ejemplo,
.
del dominio en cuestin, mira en el archivo de la zona apropiada. Si el archivo cin 1P 70.253.158.42. Esta direccin coincide con la que pusimos en el archivo
de zona tiene la informacin solicitada, el servidor se la enva al sistema que resolv conf antes. El archivo resolv conf ayuda a un
.
cliente a conectarse a
.
pidi dicha informacin. DNS, mientras que la entrada anterior ayuda a un servidor secundario a encon-
Algunas personas se refieren a los archivos de configuracin como archivos trar el servidor primario.
de regla. Esto tiene algo de sentido porque una operacin DNS correcta requiere
v
que se cumplan ciertas normas y protocolos. No obstante, los archivos de zona |
;
AW y -
Cuestiones relativas a los cortafuegos ;a
j 7y
actualmente funcionan como parte del directorio DNS. Su funcin primaria es
ofrecer informacin, no cumplir las reglas. !
Si tieneun cortafuegos en su servidor primario, asegrese de desbloquearte / .
.
y para
:
puerto UDP 53. Este puerto se usa para recibir y responder las
el ;.y ..
secndanos usan tanto R'INorno UiH pasa rravar las transieren^, ui<. .ir yyy
zonas, lo rales necesario para .mantener los servidores acusa! izados. :
r :
dos servidores DNS cuando registre su dominio. Si quiere, puede hacer un dupli-
Designar el servidor secundario como esclavo lo habilita para que peridica-
cado exacto de la informacin que us para el primer servidor DNS y colocarlo
mente compruebe han producido cambios en los
si en el servidor primario se
en el lugar del segundo servidor. Algunos proveedores hacen esto, pero una prc-
archivos del directorio del dominio. El archivo named conf de cada servidor es- .
zone "centralsoft.org ( Hay algunos valores ms que debera conocer antes de manejar los archivos
type slave de configuracin: ei tiempo de vida (TIL). Cuando un servidor DNS remoto reci-
file "sec.centralsoft.org"; be una respuesta a una pregunta suya, almacena el cach esa informacin y la
masters { 70.253.158.42; };
reutiliza mientras sea vlido ei valor TIL. Esta tcnica mejora el rendimiento de
DNS. Gracias a la cach, si alguien pasa una hora visitando varias pginas Web
}
No discutiremos sobre la sintaxis y el papel de la entrada por ahora. Las cosas de su sitio (cada una de las cuales involucra varias descargas), un servidor prxi-
importantes en las que hay que fijarse son el tipo esclavo; lnea que define a este mo al usuario slo necesitar preguntar el nombre de dominio una vez, puesto
servidor como secundario, y la lnea donde pone maestro (master), que le dice al que ser capaz de satisfacer cada peticin en base a la cach. Para evitar que la
. ;
otro servidor para ofrecer nombres de dominio de Internet a los sitios que alojan.
directorios (est en /etc/bind/named conf para BIND 9 bajo Deban). Su apa-
.
type master;
namecf.conf file "pri 158 253 70 in-addr arpa"
. . . . .
};
Recuerde que cuando named reciba una peticin, consultaba su propio direc- zone "centralsoft.org" {
type master;
torio, el archivo de configuracin named. conf. Esto hace apuntar a named al
file "pri.centralsoft.org";
archivo de zona para el dominio solicitado. };
7 El sistema de nombres de dominio El sistema de nombres de dominio 77
en las sentencias de zona: Noes necesario intentar memorizar o comprender estos tipos de registros en
este punto. Tendr la oportunidad de usarlos cuando profundicemos en el tema.
a
Archivo Hints (para Sa zona El archivo contiene los nombres
y las Ahora, revisaremos en detalle un archivo de zona primaria.
direcciones de los servidores raz de Internet, namecl debe conocer las di-
recciones de estos servidores para poder empezar a consultar cuando nin-
guno de los componentes del dominio solicitado est almacenado en la El archivo de zona primaria
cach.
* Archivo local host (para la zona "0.0.127.m-addr.arpa"): El archivo El grueso de la informacin de configu-
archivo de zona primaria contiene el
representa su propio sistema (direccin IF 127.0.0.1). La ventaja de crear racin que DNS necesita. El no est estandarizado, pero los
formato del archivo
archivos de zona local para cada aspecto de su sistema es la de reducir el elementos que contiene estn especificados en el RFC 1035.
trfico y permitir al software funcionar de la misma forma, independien- Si est usando el conjunto de archivos que la instalacin ofrece, debera darle
temente de que est accediendo a un equipo local o a uno remoto. un nombre a su archivo de zona primaria aadiendo un prefijo a su dominio.
* Archivo de zona inversa (para la zona "158.253.70.in-addr.arpa"): Hemos nombrado el archivo de zona para el dominio centralsof t otg como .
Describiremos cada parte del archivo aqu, para verlo entero, eche punto (.) que denote la raz de la jerarqua DNS para poder indicar que la
rio). un vista-
zo al final del captulo.
ruta es un nombre de dominio completo.
Las primeras lneas ofrecen la informacin necesaria para sincronizarlo con Direccin de Email: La direccin de correo electrnico de la persona que es
el
servidor secundario o esclavo: responsable del dominio. Hay otra convencin DNS especfica aqu, no
puede usar la @
que aparece en todas las direcciones de correo de Internet,
@ IN SOA serverl.centralsoft.org. root localhost . . ( porque como hemos visto, una @
tiene otro significado en este archivo.
2006012103; serial-no Por tanto, se sustituye con un punto. Aqu tenemos que especificar el
28800; refresh, seconds
7200; retry, seconds
usuario root del sistema local o root@localhost, pero tenemos que es-
604800; expiry, seconds pecificar dicha direccin con un formato inusual: root localhost F-. .
Las siguientes lneas de los registros SOA contienen aspectos necesarios para
Eso es un registro SOA. SOA es el Comienzo de Autoridad, que lo distingue
los servidores esclavos:
como informacin para servidores autoritativos (tanto primarios como secun-
darios) en contraposicin con los servidores de slo cach. A la vez que escribe su Serial-no: El nmero de serie para configuracin actual. Usted
la
parte en el directorio DNS distribuido, el sistema le cede la autoridad de su parte incrementa este nmero cada vez que hace un cambio en la configura-
a usted. Por lo que su archivo de zona tiene que indicar dnde empieza la autori- cin, por lo que servidores esclavos sabrn cundo ha actualizado la in-
dad, es decir, el dominio que est sirviendo. formacin. Este nmero est a menudo en formato de fecha YYYYMMDD,
con una etiqueta de doble dgito al final (lo que le permite editar el archivo
Nota: Un punto y coma (;) no indica el final de una lnea, slo indica el varias veces cada da). De esta forma, cada nmero de serie es mayor que
comienzo de un comentario. Por tanto, si no quisiera aadir el comentario el anterior e indica la fecha en que fueron hechos los cambios. Cada escla-
"serial-no", podra escribir la siguiente lnea: vo comprueba peridicamente el nmero de serie para ver si ha cambiado.
Si el nmero actual del servidor es mayor que el que tiene el esclavo, ste
2006012103; serial-no
realiza una transferencia de zona. 2006 12 103 es el nmero de serie ini-
simplemente como: cial en nuestro archivo de zona de ejemplo.
y funciones que no son de internet. Eltiempo especificado aqu es tambin la cantidad de tiempo que un servi-
Tvpe: El tipo del registro de recurso DNS. En este caso, es un registro de dor esclavo debera continuar respondiendo a las peticiones, incluso aun-
recurso SOA. que no haya podido actualizar el archivo de zona; representa el valor que
puede tolerar el manejo de informacin obsoleta. En nuestro ejemplo, usa-
e
Nameserver: El nombre completo del servidor de nombres primario. Algu-
mos 604800 (604.000 segundos = 7 das).
nos detalles son bastante importantes: el nombre debe terminar con un
.
El registro SOA va seguido de una Este registro indica la direccin de correo electrnico que el dominio
lista de nombres de equipos de varios tipos:
centralsoft.org debera despachar al serverl.centralsoft.org (el ser-
NS serveri.centraisoft.org.; vidor de correo para el dominio) cuya prioridad debe ser 10.
NS server2.centralsoft.org.;
Las prioridades entran en juego en configuraciones ms complejas, donde
Estos registros NS especifican ios servidores de nombres del dominio (los que ms de un servidor de correo est disponible. Nmeros ms bajos indican priori-
proporcion cuando registr el dominio). Una vez ms, no es necesario un punto dades ms altas (el 1 es la prioridad ms alta). El sistema de prioridades funcio-
na de esta forma: el servidor de correo remoto intenta conectar con el servidor
y coma, pero es conveniente en caso de que quiera aadir un comentario ai final
de la lnea. que en su lista tiene la prioridad ms alta, si no responde, el servidor lo vuelve a
intentar con el servidor cuya prioridad es la segunda ms alta, y as sucesiva-
Lo siguiente es un registro MX que identifica el servidor de correo del dominio:
mente. Por tanto, proporcione una lista con ms de una pasarela de correo, como
MX 10 serverl.centralsoft.org. se muestra aqu:
ejemplo) puede usarse para indicar el orden en que debera intentar conectarse conectarse a serverl centralsof t .org, ya que tiene la prioridad ms alta
.
registros A: 20 .
centralsoft.org. A 70.253.158.42 Nota: DNS no especifica cmo tratar mltiples servidores de correo con la
www A 70.253. 158 42 .
misma prioridad. Muchas pasarelas eligen uno de manera aleatoria para
serven A 70.253.158.42
server2 A 70.253.158.45
implementar un tipo primitivo de balanceo de carga.
Un registro A asocia un nombre a una direccin IP. Debido a los mltiples Hasta ahora, hemos definido registros MX slo para el correo dirigido a
nombres que pueden asignarse a un equipo, puede tener mltiples registros A user@centralsof t .org. Qu sucede si quiere enrutar correo a distintos de-
apuntando a una nica direccin IR Sin embargo, cada nombre de equipo no partamentos de una compaa o a la seccin de una agencia gubernamental?
puede tener ms de un registro A. Nuestro archivo tiene cuatro registros A, aso- Puede hacerlo aadiendo subdominios a sus registros MX.
ciando tres nombres a una direccin otro nombre a otra direccin diferente.
y De esta forma, aadir accounting centralsof t org simplemente reque-
. .
algunas cosas tiles que puede hacer con el archivo de zona primaria.
org . centralsof t org, . lo que es incorrecto.
. . .
Registros A
Los registros NS y MX usan nombres de equipo como centralsoft.org,
serverl centralsof t
.
bin debe especificar la direccin IP con la que se deben asociar estos nombres.
Los registros A realizan esta asociacin. Muchas personas los consideran los re-
gistros DNS ms importantes porque puede usarlos para crear direcciones como
www centralsof t org, donde www
. . es el equipo.
cenfcralsoft.org. A 70.253.158.42
Registros CNAME
(Recuerde aadir punto al final del nombre.)
el
CNAME es la abreviatura de nombre cannico; puede pensar que es un alias
En un navegador, probablemente estar acostumbrado a introducir
para un registro A. Por ejemplo:
www. centralsof t org en lugar de centralsof t .org. www. centralsof t org,
. .
Las www no van seguidas de un punto, por lo que BIND aade el origen de la al descargar paquetes Linux, donde el repositorio fuera http / / f tp mirrors : . .
MX 10 ftp
serven A 70 253 158 42
. . .
nes III lo que tiene sentido ya que es nuestro servidor de nombres secundario y gistros CNAME. su directorio DNS contiene muchos registros A
Por ejemplo, si
por tanto tiene que estar en un sistema diferente para el caso de que nuestro apuntando a la misma direccin IP y migra a otro servicio de alojamiento que
servidor de nombres primario se caiga. asigna una direccin IP distinta, tendr que actualizar cada registro A. Pero si
tiene un solo registro A y todos los otros nombres en registros CNAME, solamen-
te tendr que actualizar el registro A. Por lo que los registros CNAME todava
i
El problema del Bootstrapping y los registros pegamento; -
Los registros TXT le permiten aadir texto a una zona. La gente suele usar los
pi ohlema del bootstraping no puede usarl misma tcnica para iniciar la
j
registros TXT para embeber registros SPF (Framework de poltica de envos), que
controla si las pasarelas de correo deberan aceptar correo enviado a nuestro do-
. . . : ; ; .
minio. Los grandes proveedores de correo como Yahoo! y Hotmail usan ios regis- Por qu querra alguien usar el archivo de zona inversa? En el pasado, mu-
tros SPF para evitar el spam que llega a su dominio. Si un correo electrnico llega chas organizaciones no le permitan usar sus servicios si no podan hacer un
procedente de un equipo que no est listado en el registro SPF, un MTA lo clasifi- ping inverso a su dominio. Hoy en da, muchos servidores de Internet usan el
car como spam. Puede encontrarse un asistente para crear registros SPF en ping inverso para verificar el origen del correo y as evitar el spam; este es el
http //www. openspf .org/wi zard.html ?mydomain=&x= 2 6 &y=8. Nosotros
: propsito de los registros SPF que se vieron antes. El sistema que hemos descrito
hemos usado este asistente para crear dos registros SPF para centralsof t org, . aqu tiene un problema a la hora de despachar correo que ser explicado ms
luego los hemos embebido en registros TXT y despus los hemos aadido a nues- adelante. El DNS indica qu MTA es responsable del correo para el dominio de la
tro archivo de zona: direccin de correo del remitente. Muchos difusores de spam intentan difundir el
correo usando distintos MTA, pero el agente de correo receptor no puede hacer
centralsoft.org. TXT "v=spfl a mx ~all" una bsqueda inversa, por lo que detecta una irregularidad y rechaza el correo
serverl.centralsoft.org. TXT "v=spfl a -all"
no deseado. Ya que no queremos que el correo originado en el domino
centralsoft.org sea clasificado como spam, crearemos un archivo de zona
inversa. Primero, para apuntar a este archivo, tenemos que colocar esta entrada
Ahora echemos un vistazo a nuestro archivo de zona, pri centralsof t .
en nuestro archivo named conf .
org.Fjese en que hemos aadido registros CNAME y TXT a las partes que
zone "158.253.70. in-addr arpa" {
.
.
.
de zona primaria, pri centralsof t org. El comienzo depri 158 .253 70 in-
. .
. .
centralsof t org.
. A 70.253.158.42 addr arp se parece mucho a pri centralsof t org:
. . .
server 2 A 70.253.158.45 **
2006012103; ser.ial-no
ftp CNAME www 28800; refresh, seconds
centralsof t org
. TXT "v=spfl a mx -all 7200; retry, seconds
server .centralsoft.org. TXT "v=spfl a -all" 604800; expiry, seconds
86400 mnimum- TTL, seconds
) ;
inversa NS serverl.centralsoft.org.;
NS server2 centralsof t org. . .
Con nuestro archivo de zona primaria completo, los programas pueden bus- Pero aqu no aadimos ningn registro A, MX o CNAME. En su lugar, crea-
car el dominio centralsoft.org y todos los subdominios DNS. Pero todava
mos registros PTR.
necesitamos un archivo de zona inversa. Un archivo de zona inversa asocia di-
recciones 1P a nombres. Es como si fuera un espejo del archivo de zona primaria, Registros PTR
en lugar de listar los nombres primeros, el archivo de zona inversa lista las direc- abreviatura de puntero, y es precisamente esto: un puntero a un
PTR es la
ciones IP primero.
nombre de dominio. Creemos uno que comience por la direccin de
: )
Cree exactamente un registro PTR para cada direccin IP de su dominio. Para ; <<>> DG 9.2.1 <<>> centralsoft.org
nuestro ejemplo, la otra direccin IP que usamos es 70.235.158.45 (para ;; global options: printcmd
;; Got answer:
server2 centralsof t org), por lo que aadiremos:
. .
;; QUESTION SECTION
Entonces esto es todo. Nuestro archivo de zona inversa se debera parecer a lo
; central soft org . . 1N A
siguiente:
;; ANSWER SECTION:
IN SOA serverl.centralsoft.org. root localhost . . {
centralsoft.org. 86400 IN A 70.253.158.42
2006012103; serial-no
;; Query tme: 198 tnsec
28800 refresh, seconds
;; SERVER: 81 169 163 104#53 (81 169 163 104)
;
. . . . . .
42 PTR centralsoft.org.
Ahora podemos hacer una bsqueda inversa:
45 PTR server2.centralsoft.org.
# dig -x 70.253.158.42
ta que BINO conozca los cambios. Puede parar y arrancar named as: **
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, ATHORITY: 0, ADDITIONAL: 0
una nueva entrada DNS para el dominio correspondiente, es suficiente con que le ;; WHEN: Sat Mar 11 18:57:54 2006
;; MSG SIZE revd: 98
indique a BIND que recargue la informacin de zona (en lugar de reiniciar el
servicio entero):
La bsqueda directa y la inversa se complementan. Nuestro servidor primario
ffrndc reload centralsoft.org est completo.
; ; ; ;
Herramientas BINO
Ahora, levantaremos nuestro servidor de nombres secundario,
Como hemos mencionado anteriormente en este captulo, BINO se divide en
server2 centralsof t org. Actuar como copia de seguridad en caso
. .
options La mayora delos administradores DNS usan dig para solucionar tos proble-
{
type hint
file "db.root"; nstookup
} :
nslookup trabaja de manera similar a dig pero est obsoleto en Linux. Usarlo
zone " 0 0 127 in-addr arpa "
. . . .
{
requiere ms trabajo, pero debera serle familiar porque Microsoft Windows an
type master;
file "db local " .
lo usa como herramienta primaria de bsqueda.
}; nslookup consulta servidores de nombre de dominio de Internet en dos mo-
zone "centralsoft.org
dos: interactivo y no interactivo. El modo interactivo permite consultar los ser-
vidores de nombres para obtener informacin sobre varios equipos y dominios, o
{
type slave
file "sec.centralsoft.org"; para imprimir una lista de equipos en un dominio. El modo no interactivo sim-
masters 70.253.158.42; }; { plemente imprime el nombre y la informacin solicitada para un equipo o domi-
};
nio. Por ejemplo, podra ejecutar la siguiente bsqueda para encontrar informacin
sobre el servidor Google:
La diferencia ms importante es la que se coment antes en este mismo cap-
tulo. El tipo esclavo, quese indica en la sentencia final indica que es una zona #nslookup nsl.google.com
r
esclava. En la lnea del archivo especificamos el nombre del archivo donde se debe Server: 68.94.156.1
Address: 68 94 156 1#53
guardar la zona esclava, y en la lnea maestra especificarnos la direccin IP del
. . .
introducidos mediante lnea de comandos al servidor que ejecuta server, que los
subcomando host ofrece una utilidad simple para realizar bsquedas. Cuando
El procesa. El script de inicializacin de BIND 9 tambin usa rndc.
no dan argumentos u opciones, host imprime un pequeo resumen en la lnea
se
Para evitar que los usuarios no autorizados accedan a su servidor de nombres,
de comando de los argumentos y las opciones. La gente lo usa principalmente debera usar una clave secreta para autentificar el acceso. Para que rndc ejecute
para convertir nombres a direcciones IP y viceversa. He aqu un ejemplo:
los comandos en un servidor de nombres, incluso en un equipo local, ambos
;; CUESTION SECTION -k key-file: Usa el archivo con la clave especificado en lugar del archivo
,-centralsoft .org . IN A por defecto /etc/bind/ rndc key. .
;; ANSWER SECTION:
-s server: Enva el comando al servidor especificado en lugar de al servi-
AUTHORITY SECTION:
-V: Activa el modo de informacin completo.
;;
centralsoft.org. 29437 IN NS serverl.centralsoft.org. Aqu se muestran algunos de los comandos que rndc suele enviar a named (para
Received 71 bytes from 68 94 156 1#53 in 30 ms . . .
una lista completa de los comandos, simplemente introduzca el comando rndc):
. :
a
halt: Para el servidor de nombres inmediatamente. nuestro servidor DNS. Probemos a entrar en el sistema como root y ejecutar ei
querylog: Activa o desactiva el log de todas las consultas hechas por los comando:
clientes a este servidor de nombres. Es un comando de conmutacin: con-
serverl -# rnde status
:
xfers running: 0
puestas que se almacenaron previamente en cach. Esto permite hacer
xfers deferred: 0
cambios en los archivos de zona y que tengan efectos en sus servidores soa queries in progress: 0
maestros y esclavos sin perder todos los nombres ya resueltos. Si los cam- query logging is OFF
bios afectan a una nica zona, puede indicar que slo se recargue esa server is up and running
serverl ~#
:
zona.
retransfer zone: Obliga a volver a transferir la zona especificada sin te- El comando rnde depende de una clave compartida en el archivo /etc/bind/
ner que comprobar el nmero de serie. rndc.key para que named acepte sus comandos. Problemas con este archivo
s
stats: Vuelca las estadsticas actuales de named al archivo named stats .
pueden evitar que rnde enve los comandos.
status: Muestra Aqu un ejemplo de que deberamos ver si el archivo de la clave no existiera:
el estado actual del servidor de nombres.
stop: Detiene el servidor, guardando y actualizando dinmicamente los serverl:-# rnde status
datos antes de salir. rnde: neither /etc/bind/rndc conf or /etc/bind/rndc key was found
. .
serverl ~#
:
haustivo, pero debera ayudarle a ejecutar DNS en su servidor Linux s tiene -rw 1 root bind 77 Jul 19 22:38 /etc/bind/rndc key .
problemas para que su dominio resuelva nombres de equipos o haga transferen- serverl
cias de zona.
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
Nota: diseo del sistema de nombres de dominio es robusto, pero en oca-
El coge la ruta completa del nombre del programa named.
siones pueden aparecer errores. Siguiendo estrictamente los patrones para
Para detener named de manera correcta, ejecutaremos el comando killall dos
crear archivos de zona descritos anteriormente en este captulo, puede evitar
veces en un intervalo de unos cuantos segundos, luego remidamos named:
problemas que estn fuera del alcance de este libro.
debug leve! 0 :
/var/lib/named/etc/bind/
# ls
xfers runnng: 0 db.O db. local named. conf local
. pri centralsof t org
. .
serverl
#
listening on IPv4 interface lo, 127.0.0.1#53 Starting domain ame Service: named.
listening on IPv4 interface ethO, 70 253 158 42#53 . . .
serverl ~# :
command channel listening on ::1#953 Ahora, compruebe el archivo /var/log/ syslog para ver si los archivos de
running
zona se han cargado. Debera ver algo como esto:
log muestra que BIND se ha iniciado, pero no incluye lneas indicando que
El
starting BIND 9.2.4 -u bind -t /var/lib/named
losarchivos de zona se han cargado. Ya que named se ejecuta en un entorno using I CPU
chroot en / var/lib/named, buscar todos los archivos relativos del directorio. loading conf iguraton from /etc/bind/named conf
' .
'
Por lo que realmente est leyendo el archivo /var/lib/named/etc/bind/ listening on IPv4 interface lo, 127.0.0. 1#53
named conf para. de zonas que debe cargar. Cada uno de estos archivos
la lista
listening on IPv4 interface ethO, 70 253 158 42#53 . . .
o reiniciar el servidor de nombres: r zone 158 253. 70. in-addr. arpa/IN: loaded serial. 2006070401
.
nameserver 70.253.158.45 .
serverl ~# :
centralsof t org . 86400 IN NS server2 centralsof t org
. .
.
server2 centralsof t org
. . 86400 IN A 70 .253 158 .45
.
Aliases
Los datos para la zona actual se dividen en cuatro secciones:
www.centralsoft.org has address 70.253.158.42
serverl ~# :
QUESTION: Esta seccin actualmente detalla una consulta. Se muestra
como un comentario porque no es la informacin que debera estar en un
Una alternativa a host es el comando dig, que es ms complejo pero ofrece archivo de zona.
respuestas ms detalladas. Tambin tiene ms opciones que le posibilitan realizar 8
ANSWER: Esta seccin contiene los resultados actuales solicitados por la
consultas ms especficas. La salida de dig est formateada segn la sintaxis del consulta. Mostrar los registros especficos solicitados, si estn disponi-
archivo de zona. Esto es una ventaja, puesto que una vez que haya aprendido
bles, o todos los registros si se est usando el tipo de consulta especial.
qu formato tienen los registros en un archivo de zona, puede comprender fcil-
AUTHORITY: Esta seccin identifica los servidores de nombres oficiales
mente los detalles de estos registros en la salida de dig. dig tambin ofrece infor-
macin adicional sobre los resultados de la consulta en los comentarios que para la zona de la que viene la transferencia.
empiezan por el carcter ADDITIONAL: Esta seccin ofrece las direcciones de algunos o de todos los
Echemos un vistazo al resultado del comando dig. Muchas lneas de la salida nombres de las secciones anteriores, para evitar el problema de hacer ms
de dig son muy largas y no caben en el diseo de pgina de este libro. En el consultas para obtener esa informacin. Ahora, veamos lo que debera
siguiente listado, las hemos divido en lneas. Podr ver un resultado similar cuando
' hacer si se produjera un error. El ejemplo anterior usaba un nombre de
lo ejecute en su lnea de comandos: equipo vlido para el servidor Web. Esta vez lanzaremos una consulta
para el nombre de un servidor FTP que no hayamos configurado en nues-
serverl:-# dig www.centralsoft.org a tro archivo de zona:
;; AUTHORITY SECTION: encontrar en este captulo todo lo que necesitan, pero los administradores de
centralsoft.org. 86400 IN SOA serverl.centralsoft.org. admin.
centralsoft.org. 2006070502
sistemas empresariales seguro que se encontrarn con aspectos ms complejos
28800 7200 604800 86400
de los que puede tratar un nico captulo de un libro.
;; Query time: 1 msec Hay algunos libros que pueden ofrecer informacin mucho ms detallada para
SERVER: 70 253 158 42#53 (70 253 158 42)
;; . . . . . .
administradores DNS de grandes empresas. Entre estos libros destacan "DNS y
;; WHEN: Mon Jul 17 23:30:59 2006
; ; MSG SIZE rcvd: 87 B1ND" de Cricket Liu y Paul Abitz (O'Reilly), "DNS & BINO Cookbook" de Cricket
Liu {O'Reilly), "Pro DNS and BIND" de Ron Aitchison (Apress) y "DNS in Action: A
serverl ~# :
Detailed and Practical Guide to DNS Implementation, Configuraron, and
Administration" de L. Dostalek y A. Kableova (Packtj.
Fjese en que el estado para la consulta es NXDOMAIN, que en esencia significa
Ahora que ya tiene un nombres respondiendo consultas y un ser-
servidor de
"no existe tal nombre de dominio". Si usted no tiene o introduce mal el nombre de
vidor secundario o esclavo que acta como copia de seguridad, en el prximo
equipo en el archivo de zona, obtendr este error.
captulo podr aprender a instalar una aplicacin de servicios Web. Esta nueva
Otro tipo de error que podra ver con dig es cuando un nombre de dominio
aplicacin usar los servicios configurados en el captulo anterior. Una vez que
ha sido delegado a su servidor de nombres, pero el dominio no est configurado
llamada ISPConfig est configurada y se est ejecutando, podr ver
la aplicacin
en el servidor o falla al cargarse. Este error devuelve un estado dcSERVFAIL. Si
un ejemplo de un sitio Web completamente operativo. Podemos empezar explo-
ve este error para alguno de sus dominios, necesita aadir el dominio a su ar-
rando cmo administrar la suite completa de los servicios para Internet que ofre-
chivo named conf y asegurar que existe un archivo de zona vlido. Si el error
.
ce Linux.
ocurre despus de haber dado estos pasos, compruebe el archivo /var/log/
syslog para ver los mensajes que indican por que no se ha cargado la zona.
Demostraremos el problema con un nombre de dominio que est registrado,
pero que no est en uso:
;; QUESTION SECTION:
; linhelp.org. IN A
serverl ~# :
Por ahora, ya debera estar familiarizado con los aspectos bsicos de DNS y
BIND. Los administradores de negocios de pequeo y mediano tamao deberan
Una de las grandes ventajas de Linux es su flexibilidad. Las compaas comer-
como Cisco han ocultado Linux debajo
ciales de interfaces simples que hacen de
sus routers Linksys productos amigables. Nosotros tambin podemos hacer esto.
ISPConfig (http://ispconfig.org), un Linux amigable bajo licencia de
software libre (BSD), permite levantar servidores multifuncionales que trabajen
en Internet desde una aplicacin disponible para descargar. Una vez que lo he-
mos instalado, dispondremos de una herramienta que nos ayuda a configurar y
mantener fcilmente un servidor que nos permite gestionar sitios Web; ofrecer
servicios de nombres de dominio, realizar transferencias de archivos y de correo,
y aadir usuarios, administradores y otros para que puedan acceder al sistema y
realizar tareas administrativas. Adems, hemos mencionado que permite reali-
zar todas estas tareas de administracin desde una interfaz grfica?
Hemos seleccionado ISPConfig principalmente porque nos permite desplegar
servidores de aplicaciones muy potentes sobre Linux sin sacrificar su potencia o
su flexibilidad. Adems:
ISPConfig usa demonios estndar que vienen con las distribuciones Linux.
Usaremos Apache para servir sitios Web. Postfix para el correo electrni-
co. ProFTPD para el FTP, BIND para el DNS y MySQL como gestor de Bases
de datos.
La instalacin de ISPConfig configura de manera automtica varios servi-
dores de componentes.
Los paquetes incluidos en ISPConfig funcionan con la mayora de las dis-
tribuciones Linux disponibles.
Pueden usarse paquetes estndar de las distribuciones.
.
9
Puede encontrarse soporte en internet para cada componente. SSL
9
0
El equipo de ISPConfig ofrece soporte en lnea para la aplicacin entera. Acceso a la lnea de comandos.
9 Escner de correo (antivirus).
A medida que avance en el captulo, deberahacindose una idea de lo que
ir
9
un servidor necesita para y funcionar. Tambin aprende-
ofrecer varios servicios Firewall.
r cmo decidir s necesita usar un panel administrativo visual en lugar de una
interfaz de lnea de comandos. Requisitos
ISPConfig no ofrece una interfaz de lnea de comandos. En su lugar, le permi-
te gestionar a travs de una interfaz administrativa basada en Web, o un panel, En este momento, los requisitos del sistema son:
que se describir ms adelante en este captulo. Tendr que ejecutar algunas r- 9
Sistema Operativo: Linux (kernel 2.4 o posterior con la librera glibc).
denes desde la lnea de comandos al principio del capt ulo, al configurar ISPConfig
puesto que no instala todo secuencialmente, pero en las siguientes secciones, nos Las siguientes distribuciones lo permiten:
centraremos exclusivamente en la interfaz visual. 9 CentOS 4.1, 4.2, 4.3 y 4.4.
panel Web de ISPConfig simplifica la ejecucin de muchas tareas adminis-
El 9
Deban Versin 3.0 o posterior.
trativas de Linux, pero es importante saber cmo usar las utilidades de lnea de
0 Fedora Core de la 1 a la 6
comando para obtener los mismos resultados. Cubriremos estos aspectos en los
captulos posteriores. Esto no supone que tenga que estar atado a ISPConfig,
9
Mandrake Linux Versin 8.1o posterior.
pero si elige trabajar sin l, es conveniente que sepa para qu sirve. 9 Mandriva 2006 y 2007.
9 Red Hat Linux Versin 7.3 o posterior.
SIISE Linux Versin 7.2 o posterior.
Instalando ISPConfig
Ubuntu desde 5.04 a la 6.10.
9
Paquetes Linux: Los mantenedores del proyecto aseguran que son necesa-
ISPConfig viene del Projektfarm GmbH. La aplicacin fue desarrollada por Till
rios varios componentes en el sistema antes de instalar ISPConfig. Estos
Brehm y Falko Timme, que originalmente la vendieron como una aplicacin pro-
componentes son:
pietaria en http://4 2go.de. Ahora puede descargarla desde http://
sourceforge net/proj ects/ispconf ig.
.
Apache web server Versin 1.3.12 o posterior, o 2.0.40 o posterior.
Un entorno inicial listo para Internet Un entorno inicial listo para Internet
:V5
Es importante comprender que estos servidores y paquetes deben estar insta- En este captulo supondremos que comienza en un directorio de su sistema
lados en sistema como se describi anteriormente, antes de instalar ISPConfg.
el llamado /root. Puede descargar la distribucin ISPConfig con este comando (en
SPConfig no viene con estos servicios, pero necesita que existan en el sistema. La una lnea, sustituyendo la URL por la versin ms reciente ofrecida en el sitio
ventaja de esta solucin es que puede usar los paquetes por defecto de su distri- SourceForge):
bucin y actualizarlos despus usando las herramientas de su distribucin. No
tiene que compilar estos servicios a partir de las fuentes con opciones especficas # wget -c http://superb-west.dl.sourceforge.net/sourceforge/ispconfig/
ISPConf ig-2 2.
para ISPConfig escuc ha en e! puerto 81 en lugar de en el 80. que valores son apropiados para su servidor Linux.
es el utilizado normalmente por el servidor Web para ofrecer sitios Web
Para Deban 3.1, los valores de dist.txt seran:
di st_init_scripts=/etc/init d . ## # debia.n.31
dist__runlevei=/etc ## # debian31
Puede hacer clic en el enlace Download para descargar el archivo, pero debido la lnea de comandos. El script de instalacin empezar a compilar Apache con
a que el archivo es muy grande, le ser ms til copiar la URL
y pegarla en una PHP 5 que escuchar en el puerto 81. Primero, tendr que decidir qu idioma
ventana de terminal a la hora de invocar el comando wget. La ventaja de usar quiere:
wget es que un archivo se puede recuperar a pesar de que se haya interrumpido
la descarga. Si usa el comando con la opcin ~c, puede reanudar la descarga sin server2 ~/install_ispconf ig # ./setup
:
SuSE 10.0
tener que volver a empezar: si la descarga se interrumpe, simplemente vuelva a
Neu installation eines XSPConf ig-Systems . / Installation of a new
ejecutar la orden wget y la descarga se retomar por donde se dej. ISPConfig system. /
: . :
Un entorno inicial listo para Internet Un entorno inicial listo para Internet
mam
Installation d'ISPConfig sur un nouveau systeme. that are allowed to run Perl/CGI scripts, the directory should be within
Whlen Sie Ihre Sprache (deutsch/englisch/spanisch/franzsisch/italienisch/ suExec 'sdocument root On Debian and Fedora/Red Hat, suExec 's default
.
Francais/Italen/Nerlandais/Polonais/Sudois) /usr/sbin/httpd
OJC
1} de
2) en Checking the syntax of the httpd.conf...
Syntax OK
3) es
The syntax is ok!
4) fr
it
Web-Root: /home/www
5)
ni Is this correct? [y/n] n
6)
Web-Root: /var/www
7) pl
8) se
Ihre Wahl / Your Choice: / Votre Choix:
Nota: suExec es una mejora de seguridad en un servidor Web que necesita
:
With the system installation, sorae system files are replaced where En este punto la instalacin comienza compilando el servidor Apache que se
adjustments were
made. This can lead to loss of entries in httpd.conf, named.conf as usar para presentar la interfaz Web ISPConfig en el puerto 81. Cuando el Apa-
well as in the che para ISPConfig est completo, ver un certificado SSL compilado. El progra-
Sendmail conf iguration. ma de instalacin le preguntar varios valores. Puede aceptar los valores por
Do you want to continu with the installation? [y/n] y defecto o introducir los suyos propios. La pantalla ser similar a esta:
El sistema mostrar una licencia, debera leerla y aceptarla: SSL Certifcate Generation Utility (mkcert.sh)
Copyright (c) 1998-2000 Ralf S. Engelschall, All Rights Reservad.
Do you accept the license? [y/n] y Generating custom certifcate signed by own CA [CUSTOM]
The system will display a license, which you should read and then accept:
El programa de instalacin proceder a preguntarle cuestiones acerca de la Do you accept the license? [y/n] y
configuracin del sistema (p. Ej, por el MTA, servidor FTP, servidor Web, logs,
etc...) debido a que tiene que tener instalados todos los paquetes en su sistema,
STEP 0: Decide the signature algorithm used for certif icates
The generated X.509 certif icates can contain either
debera ser capaz de responder a todas las preguntas.
* RSA or DSA based ingredients. Select the one you want to use.
Durante la primera parte de la instalacin, el script le preguntar en qu modo Signature Algorithm ((R)SA or (D)SA) [R]
quiere ejecutar la instalacin. Seleccione el modo experto: [ca.keyT
STEP 1: Generating RSA prvate key for CA (1024 bit)
1) standard
1698765 semi-random bytes loaded
2) expert Generating RSA prvate key, 1024 bit long modulus
Your Choice: 2 ++++++
En modo experto, tendr que elegir algunas opciones que ISPConfig asigna e is 65537 (0x10001)
por defecto en el modo estndar.
STEP 2: Generating X.509 certifcate signing request for CA [ca.csr]
When prompted for a default directory, you can choose any directory You are about to be asked to enter Information that will be incorporated
you like, but make sure it is on a partition with enough disk space for into your certifcate request.
the web sites you plan to host. Furthermore if you want to configure What you are about to enter is what is callad a Distinguished ame or a DN.
,
quotas with ISPConfig, make sure you enabled quotas for that partition There are quite a few fields but you can leave some blank
as described in Chapter 2. If you want to enable suExec for web sites
For some fields there will be a default valu,
..
. : ) :: :: ::
: : :
108 Un entorno inicia! listo para Internet Un entorno inicial listo para Internet
5 . Organizational Unit ame (e.g, section) [Certifcate Authority] En los pasos 7 y 8 del proceso de creacin del cert ificado, se le preguntar si
6 . Common ame {eg, CA ame) [Snake Oil CA] quiere encriptar las claves respectivas:
7. Email Address (e.g, name@FQDN) [ca@snakeoil.domj :
STEP 7: Enrypting RSA prvate key of CA with a pass phrase for security
STEP 3: Generating X.509 certifcate for CA signed by itself [ca.crt] [ca.key]
Certifcate Versin (1 or 3) [3] The contents of the ca.key file (the generated prvate key) has to be
Signature ok kept secret. So we strongly recommend you to encrypt the server. key file
subject=/C=XY/ST=Snake Desert/L=Snake Town/0=Snake Oil, Ltd/OU=Certif icate with a Triple-DES cipher and a Pass Phrase.
Authority/ Encrypt the prvate key now? [Y/n] n :
Generating RSA prvate key, 1024 bit long modulus What email address or URL should be used in the suspected-spam report
++++++ text for users
++++++ who want more information on your fllter nstallaton?
e is 65537 (0x10001) (In particular, ISPs should change this to a local Postmaster contact)
default text: [the administrator of that system]
STEP 5: Generating X.509 certifcate signng request for SERVER [server. csr]
You are about to be asked to enter information that will be incorporated Responda n a estas preguntas. En caso contrario, siempre se le preguntar la
into your certifcate request. contrasea cuando quiera reiniciar el sistema ISPConfig, lo que significa que no
What you are about to enter is what is called a Distinguished ame or a DN. podr reiniciarse sin interaccin humana.
There are quite a few fields but you can leave sote blank
For some fields there will be a default valu, Si la compilacin falla, el proceso de instalacin se para y todos ios archivos
If you enter the field will be left blank. compilados se eliminan. El mensaje de error que obtenga debera indicar la razn
1 Country ame (2 letter code) [XY] :
del fallo. En la mayora de los casos, los archivos de cabecera para un paquete son
2 State or Province ame (full ame) [Snake Desert]
los que faltan.
.
3 Locality ame
. (eg, city) [Snake Townj
4 Organization ame
. (eg, company) [Snake Oil Ltd) ,
Sabiendo la razn, revise
configuracin del servidor y solucione el proble-
la
5. Organizational Unit ame (eg, section) [Webserver Team] ma. Si el directorio install_ispconf ig no
se ha eliminado, brrelo manual-
6. Common ame (eg, FQDN) [www snakeoil dom]
mente. Luego, descomprima las fuentes de nuevo, vaya al nuevo directorio
. .
7 Email Address
. (eg, naroe@f qdn) [wwwsnakeoil dom] .
8 Certifcate Validity
. (days) [365] :
install_ispconf ig y ejecute / setup. No puede instalar ISPConfig dos veces
.
10 Un entorno inicial listo para Internet Un entorno inicial listo para Internet
El scriptde instalacin verifica la sintaxis de los archivos de configuracin de Llegados a este punto, puede indicar la direccin IP de su servidor y el nombre
Apache existentes. Un error provocar que la instalacin de ISPConfig se detenga. de dominio seguido por :81 en su navegador para acceder a la pantalla de login
Si todas las condiciones se cumplen, necesitar ofrecer los siguientes valores de ISPConfig.
durante la instalacin:
Please select the protocol (http or https (SSL encryption) ) to use to -rwxr-xr-x root
1 root 33660 2006-04-26 12:28 cronolog
access the -rwxr-xr-x root
1 root 9673 2006-04-26 12:28 cronosplit
ISPConfig System: drwxr-xr-x 12 root root 4096 2006-04-26 09:55 httpd
1) HTTPS drwxr-xr-x 12 root root 4096 2006-04-26 12:28 isp
2) HTTP -rw-r- -r- 1 root root 8 2006-04-26 13 : 54 .oldpath httpd
Your Choice: 2 drwxr-xr-x 6 root root 4096 2006-04-26 09:50 openssl
drwxr-xr-x 6 root root 4096 2006-04-26 10:00 php
Ver que el sistema ejecuta los script finales y reinicia algunos servicios: drwxr-xr-x 4 root root 4096 2006-04-26 12:28 scripts
drwxr-xr-x 4 root root 4096 2006-04-26 12:28 standard egis
Connected successfully to MySQL server drwxr-xr-x 2 root root 4096 2006-04-26 12:28 sv
ls: /etc/apache2/vhosts d/* conf . No such file or directory
. : -rwx 1 root root 9389 2006-04-26 12:28 uninstall
Restarting soma Services...
which: no apachectl in /sbin /usr/sbin /usr/local/sbin /root/bin
( : : : :
Contiene los diferenntes archivos de configuracin de ISPConfig, Apache, PHP
usr/ local /bin /bin: /usr/bin /usr/XHR6/bin /usr/ local /libexec)
y OpenSSL, as como varias plantillas para todos los tipos de archivos de confi-
: : :
Los desarrolladores finalizan el script de instalacin con: Contiene la interfaz de ISPConfig, es decir la interfaz Web, adems de algunas
herramientas como SpamAssassin (http://spamassassin.apache.org) y
Congratulations Your ISPConfig system is now installed. If you had to
!
install quota, please take the steps described in the installation manual.
ClamAV (http //clamav. elektrapro. com). Puede configurar estos a travs
:
Otherwise your system is now available without reboot de ISPConfig para protegerse contra el spam y los virus.
.
Un entorno inicial listo para Internet Un entorno inicial listo para Internet
servidor y usuarios con https:// si seleccion HTTPS como el protocolo ISPConfig durante la instalacin).
En la pantalla de autentificacin (figura 4.3), introduzca el ID adrnin y la con-
trasea admin.
Configurar un sitio Web es uno de ios primeros pasos para conseguir un ser-
vidor de Internet completamente funcional. Esta seccin le mostrar todos los 'Administracin Gestor tSP Gestor DMS Web rr? P Factura .antas Ayuda --iaiMt
,
pasos necesarios.
Tal vez piense que puede ir al sitio Web de ISPConfig y leer los manuales, sin
m
Niusva fe/engedcr
a>
Nueve feote
&
Ffetevo po Pson
.
tfs
j ^
nasdng Mueva csrpety 9ustar
instor ISP xponrfir qo!aj>t>r 1
<3'k / atfmln
.
/ evs>v*tfor
J '*99
cumentacin de usuario para sitios dedicados al alojamiento Web. Si esta es su de* mm mmm
intencin, le recomendamos que lea los manuales de http / /ispconf ig org. : .
1 usrar
Usuarios en linea:
nistrador del sistema que gestiona sus propios sitios Web seguros, el correo y los
i
autores del libro) que tiene cuatro dominios: varrun 506M 120K S06M 1%/var/run
varlock S06M 4 OK 506M 1 % /var/lock
centralsoft.org
udev S06M 112 K S06M 1% /dev
0
linuxnewswire.org devshrn 506M 0 S06M 0% /dev/shm
Cuando mire el contenido del directorio /var/www ver cmo ISPConfig con-
figura los siguientes dominios:
$ ls -a
apache2-default sharedip web2 web4 webalizer www.opensourcetoday.org Figura 4.1. Interfaz ele gestin de ISP.
Compare el listado de este directorio con la lista de sitios Web de la figura 4.1 0-tjk # admin
S'd & Revendedor
Cada sitio Web contiene un directorio. El directorio www cuyos nombres mues- & Clientes
t-b-U / Sitios
tran los dominios (como www.opensourcetoday.org) son enlaces simblicos Papel era
central soft.orqj
que el sistema conoce como webl, web2, etc.
i
-
-5;
Tinhelp
|| tadlestein
da una mejor idea de la lista de dominios. Fjese que en la
La figura 4.2 le
figura 4.2 el domino aparece para cada directorio del listado de la lnea de co-
mandos.
Figura 4.2. Lista de dominios que gestiona ISP.
Nuevo revendedor Nuevo cliente Nuevo sitio Pian de hosting Nueva carpeta Buscar
Gestor I5P I
expandir colapsar J
-Sg ? admin
Revendedor
'di / Clientes
ra OJ Sitios
-M Papelera
*} centralscfi.org
M. iadiestein
CS/r..x^ A Cl .i .. ten
Figura 4.3. Pantalla de autentificacin de ISPConfig. A.
Herramientas y Opciones Ahora veamos cmo hemos creado el cliente tadelstein y el sitio Web linhelp.
13-isD Genera
;
3
I
Cambiar c lava)
|
Haga clic en Nuevo Cliente en el men de gestin de ISP Ver un cuadro de dilo-
!
~ CamBiar1ega|e
go similar al de la figura 4.7.
i--) Move Wabsites
HD-
Wnois
f -p Escaneador de puertos
j
13 Versin del software Administracin Gestor ISP Gestor DMS VVeb-fTP ISP Factura Herramientas Ayuda Finalizar
H
Datos maestros Mjfr/o tyjevo c*tr< Niwvo PRin a Nuv carpeta R
j castor ISP colopssr
3-a '
3HJ / normo-!**
<3 ;J / cuento
9-0 J s*
Figura 4.4. Men Herramientas. -"y Papelero
- conuolsoft.orfl
Grupo: admin
-i tad-este- Titulo:
En la figura 4.5 se muestra el cuadro de dilogo Cambiar contrasea, all po- Ordenar: admin
dr rellenar el formulario. 0l94 ma**UO* $
Salga del sistema y entre con la nueva contrasea. diente Numero: Es asignada automticamente.
Empresa:
Ttulo: p
Cambiar clave :
Nombres:
Apellidos:
Clave
Calle:
anterior
Codigo postal:
Ciudad:
Clave nueva: Provincia:
Confirmar Pas:
clave: Telefono:
fax:
Save Cancel Email:
Direccin Web: ht p : // f Abrir)
Figura 4.5. Formulario de ISPConfig para cambiar contraseas. Figura 4.7. Formulario de informacin del cliente.
Antes de configurar un sitio Web, tendr que crear un propietario del sitio. Introduzca la informacin relevante del cliente. La figura 4.8 muestra cmo
Seleccione la barra de herramientas Gestin de ISP Ver un men de navegacin hemos rellenado el formulario. Fjese en que hemos usado Linhelp.org
como
similar al de la figura 4.6. compaa.
el nombre de la
Un entorno inicia! listo para Internet Un entorno inicial listo para Internet 117
Sib
S aodtffl IMVB
Gestor SP |
expandir colapser {
Grupo: admira-
& .? 3*111.-1
Pas;
Telefono:
fax: Figura 4.9. El formulario usado para crear el sitio Web linhelp.org.
Email:
Direccin Web:http:// (Abrid
Ayuda f matizar
Administracin Gestor Sp" Gastor DNS VVfab-FTP ISP Factor*
Fjese tambin en
la figura 4.10 debajo de FTP Annimo, el sistema pone por
defecto - Esto permite al sitio ofrecer espado ilimitado para FTP Esto sera til
i.
caso contrario, es mejor definir un lmite de manera que nadie pueda subir tan- Linhelp Com mere ia! Suppcrt Canter
tos datos como para saturar el espacio en disco necesario para otros servicios. En
este punto, ya tiene un sitio Web til. En la figura 4.11 se muestra, adems, una Navigation
wiat's Vw
forma fcil de aadir pginas usando un cliente FTP grfico como gftp para trans- Pay-per-incident
ferir un sitio que ha sido creado en su escritorio. Linux Help Desk
Linhelp provides complete Ycu wl I rvi
i/home/ljarevalo
No conectado' Download Sun's
EoSeipnse
!"(}" Archivo ''amafio Usuario < A flj Archivo Tamao Usuario Gru Training
We offer single or muti-day
Linux Java Desktop
System
%. f 1
dfsMMMWaKiMMSg&M 1
1
i
Govefivpent Jsssrs
training sessions and course
1 .gftp 4036 Ijaravalo ii
Sal kde 4096 Ijarevaio ij Expime sise S curricula to heip enterprise, System
53 .local 4096 Ijarevaio ij unux Besito govemment and educabonal
63 .meop 409(5 ijarevaio ii
(OReiliy Sool.J oigani2abons spaed their
i
, <a href =" /about us html." >About Us </axbrxbr>
. .
Figura 4.1 1. Usando gftp para transferir archivos al directorio raz linhelp.org.
i
vez que haya configurado los dominios, al seleccionar uno de ellos en la seccin
de gestin de ISP de la barra de tareas traer al primer plano la pantalla del sitio
que se mostr en la figura 4.9. Volvamos atrs para verla.
O'KFJUY
Alias de correo: Si no quiere exponer su buzn de correo pblicamente, los filtrar spam. Muchos administradores prefieren esta estrategia inicialmente,
el
visitantes del sitio pueden enviar correo a un nombre genrico, tal como hasta que el usuario tenga una base de datos de correo identificado como spam.
info@centralsoft.org o webmaster@centralsoft.org. Puede ha- Despus, el usuario puede cambiarse al modo de descarte, donde el correo iden-
un alias de correo.
cer esto ofreciendo tificado como spam se borra del servidor.
Coger todo el correo: Esta opcin redirige al buzn especificado todos los Ahora echemos un vistazo a las opciones para el spam:
correos que se hayan enviado a cuentas de usuarios inexistentes. La gente
Aciertos de spam: El filtro de spam ejecuta un determinado nmero de
normalmente escribe a direcciones usadas frecuentemente como editor@
pruebas sobre correos entrantes y asigna puntos a cada prueba. Si la suma
centralsof t org o publicidad@centralsof t org sin verificar que
de los para estas prueba alcanza o supera el valor especificado por los
. .
estas direcciones son vlidas. Puede recoger estos mensajes en una cuenta
Aciertos de spam, el correo se clasifica como spam y se maneja de acuerdo
de usuario creada a tal efecto.
con la estrategia definida por el usuario.
Escanear correo: Si quiere escanear el correo en busca de virus o cdigo
Reescribir asunto: En el modo aceptar, escoger esta opcin significa que la
JavaScript para servidor, use esta opcin.
lnea que identifica el asunto de cada correo se identificar como spam
Autoresponder: Esta opcin le permite enviar una respuesta automtica a aadiendo un prefijo identificativo (por defecto ***SPAM***). Esto permi-
los mensajes enviados a un usuario especfico, esto es til, por ejemplo,
te al usuario ordenar el correo electrnico segn el asunto.
cuando el usuario va a estar fuera de la oficina por un perodo de tiempo.
Para permitir que un usuario haga cambios en su cuenta de correo electrni-
Con respecto a la solapa Filtro de Spam & Antivirus, mostrada en la figura
s mismo (incluso la contrasea, el filtrado de spam y las
co por opciones de
4.16, puede considerar qu estrategia de spam usar. Activando el filtro de spam para dicho usuario en la so-
spam), debe seleccionar la opcin Usuario de correo
para una cuenta, puede especificar el comportamiento del filtro. 4.10). Para hacer cambios, el
lapa Base del formulario del sitio (Vase la figura
usuario de correo puede autentificarse en el sistema a travs de la direccin:
rectorio de inicio tambin contiene una carpeta llamada Web a la que los usua-
rios pueden acceder visitando una URL del tipo: http / /www centralsof t
org/ :
. .
rar e! servidor de correo saliente. Debido a que la mayora de los clientes de co- gada puede que no est disponible inmediatamente, por lo
del soporte tcnico
rreo usan su ISP como servidor SMTP, puede seleccionar TLS si su ISP lo usa. En tanto tendr que esperar un tiempo con una aplicacin crtica cada.
la gran mayora de casos, su ID de usuario
y contrasea viajan sobre las lneas de En una empresa grande, podra sentirse aislado si su servidor est situado a
su ISP en forma de texto plano. muchos kilmetros. Los operadores de los centros de datos no suelen conceder
Para recibir correo, configure el servidor de entrada (nosotros usamos acceso a la sala de ordenadores, ni siquiera a los administradores de sistemas
de contraseas para intentar conseguir acceso como root a los servidores, de mane- que mejor se ajusta a sus necesidades. Puede hacer que se inicie manual o auto-
ra que puedan usarlos como plataformas de spam, virus o gusanos. Las situaciones mticamente.
que los administradores de sistemas tienen que afrontar tienen su raz en una com- En la siguiente seccin, configuraremos un DMD llamado monit, que tiene
binacin de factores con precisin o certeza. Por lo tanto, los administradores tienen una interfaz Web sencilla como se muestra en la figura 4.18.
que aprender a adaptarse rpidamente a las nuevas (y hostiles) situaciones. Fjese bien en que hay cinco servicios bajo vigilancia. En la figura 4.19, se
Hay dos formas de adaptarse. Primero, si est lo suficientemente concienciado, puede ver claramente cmo el sistema gestiona cada proceso. En este caso, esta-
puede tomar precauciones. Nosotros llamamos a esto anticipacin. mos mostrando sshd.
2 Un entorno inicial listo para Internet Un entorno inicial listo para Internet
lf
desde http://www.tildeslash.com/monit. Si est usando Deban, simple-
c.y tjarc aoerei nerra-mentas Eiste'ewia
mente introduzca:
Hcrr.e >
Load Memory
Ijarevalo -desktop
Monltoring status
Copyright 2000-2007 by the monlt oro iect oroup. Al! Rights Reserve'!
Check Service
Data coilected
Load average
i
Memory usage 35s6*kB 34496J
Ds&le rnonoring
O Copyright 2000-2007 by the monlt. prolect CII OUP- All Rights Resolved,
Figura 4.18. Interfaz Web para monit ejecutndose en centraIsoft.org.
If failed localhost:22 [SSH] with timeout 5 seconds then restart else Figura 4.19. Inspeccionando sshd.
if recovered
then alert Despus de que haya instalado monit, edite /etc/monit/monitrc. El archi-
vo creado durante contiene montones de ejemplos y puede encon-
la instalacin
un servicio que ha fallado y enva un men-
Esta poltica simplemente reinicia
saje cuando remida satisfactoriamente.
se
ms
trar ejemplos de configuracin en http / /www. tildeslash com/monit/ : .
Nuestro archivo de configuracin /et c /moni t /moni tro es: Esto significa que monit intenta conectarse con www. cent ral soft .org en
set daemon 60 el Puerto 80 e intenta acceder al archivo /monit/token. Debido a que el docu-
set log file syslog fcil ifcy log_daemon mento raz del sitio Web est en /var/www/www centralsoft.org/web, el .
set ma lserver localhost nombre del archivo se extiende a /var/www/www. centralsoft org/web/ .
if failed port 21 protocol ftp then restart Puede seguir un procedimiento similar en su sistema.
if 5 restarts within 5 yeles then timeout Luego, cree un directorio para albergar el archivo de certificado f/var/certs/
check process sshd with pidfile /var/run/sshd.pid monit pem) necesario para interfaz Web SSL de monit:
.
start program "/etc/init d/ssh start"
.
[req_dn ]
and request "/monit/token" then restart countryName = Country ame (2 letter code)
if epu is greater than 60 % for 2 eyeles then alert countryName_default = MO
if epu > 80% for 5 eyeles then restart stateOrProvinceName State or Province ame (full ame)
if totalmem > 500 MB for 5 eyeles then restart stateOrProvinceName_default Monitoria
if children > 250 then restart localityName Locality ame (eg, city)
if loadavg (5min) greater than 10 for 8 eyeles then stop local ityName_def ault Monittown
if 3 restarts within 5 eyeles then timeout organizationName Organization ame {eg, company)
check process postfix with pidfile /var/spool/postf ix/pid/master .pid organizationName_def ault Monit Inc.
group mail organizatonalUnitName Organizational Unit ame (eg, section)
start program = " /etc/init d/postfix start"
.
organizationalnitName_default = Dept of Monitoring Technologies.
stop program = "/etc/init .d/postfix stop" commonName = Common ame (FQDN of your server)
f failed port 25 protocol sratp then restart commonName_deault server monit rao . .
if failed host www.centralsoft.org port 80 protocol http # openssl req -new -x509 -days 365 -nodes -config . /monit. enf -out \
and request "/monit/token" then restart /var/certs/monit .pem -keyout /var/certs/monit .pem
130 Un entorno inicial listo para internet
tionar de manera segura y monitorizar sus servicios. Las soluciones de este captulo intentan juntar diversos componentes para ha-
En los restantes captulos, vamos a profundizar nuestra exploracin del siste- cer un sistema de gestin de correo eficiente, robusto y seguro. Hoy en da, perso-
ma de administracin de Linux. En el captulo siguiente, aprender a instalar nas como Wietse Venema (el inventor de Postfix) han conseguido reducir mucho
software administrativo que no se instala automticamente. Configuraremos la la complejidad de configuracin de los sistemas de correo electrnico. En lugar de
mayora de las aplicaciones Linux que la gente usa cada da en la empresa y en vrselas con complejas configuraciones de servidores de correo, los administrado-
negocios de pequeo y medio tamao. res de sistemas Linux tienen otros problemas ms importantes que resolver:
e Cmo asegurar el correo, una forma de comunicacin que no fue disea-
da teniendo en cuenta la seguridad, ni siquiera contra los ataques de su-
plantacin de identidad u otros ataques maliciosos.
132 Correo Correo 133
Cmo proteger datos sensibles para la compaa. por 100 de los servidores de Internet. Aunque los defensores de Sendmail defien-
Cmo dar acceso a usuarios que estn fuera de la red de la compaa. den que es flexible y escalable, muchos administradores de sistemas lo conside-
ran extremadamente complejo y difcil de configurar y mantener.
Sendmail se desarroll antes que aparecieran el spam y el software daino,
por lo tanto tiene algunas debilidades en cuanto a seguridad. Uno de los proble-
mas ms serios de Sendmail es que, por defecto, permite que la pasarela quede
abierta, es decir, que procesa cualquier correo originado por un extrao. Este
Los agentes de transferencia hacen la parte ms dura de la comunicacin en
i
correo electrnico, el remitente liga su sistema a un MTA, que luego usa SMTP i
las abiertas, lo que podra provocar que correo legtimo fuera tratado como spam.
En teora, puede tener problemas legales si facilita la distribucin de correo basura.
La base de usuarios de Sendmail a menudo opera con versiones obsoletas, sin Use la ltima versin estable de Debian y configrela con el nmero mnimo
parchear y sin documentar, por lo que facilitan las cosas a los UBE. Los desa- de paquetes. Si todava no tiene un disco de instalacin en red para Debian, des-
rrolladores de Sendmail son conscientes del problema y trabajan duro para ha- crguelo de http: / /www. us debian org/CD/netinst. Despus haga una ins-
. .
cerlo ms seguro, pero los mejores avances de seguridad se consiguen con cada talacin de red y asegrese de que proporciona un nombre de dominio correcto.
versin de pago del producto. Aaron Weiss aclara algunas dudas entre la versin Luego, configure Debian como se sugiere en esta seccin.
gratuita y la versin de pago de Sendmail en el artculo "The Fee vs. Free Divide"
El instalador de conduce por un script estndar antes de la configu-
Debian le
(http / /www serverwatch com/ tutorials/article php/3580006):
. .
: .
que tenga que elegir el tipo de
racin, siga la rutina de instalacin estndar hasta
Para comercializar Sendmail y ofrecer productos de valor aadido que mejor el instalacin que desea. La pantalla que podr ver ser as:
desarrollo, se cre Sendmail Inc. Su producto estrella, Sendmail Switch est basa-
do en la versin libre de Sendmail. Se asienta en su ncleo e incluye una consola ( ) Entorno de escritorio
grfica de gestin, facilidades para la seguridad, soporte tcnico, filtros de gestin ( ) Servidor Web
Servidor de Impresin
de contenidos (incluyendo defensas anti-spam y antivirus), soporte para SSL, SASL ( )
{ ) Servidor DNS
y directorios LDAP, y capacidades de auditora, clustering y gestin remota. Todo { ) Servidor de archivos
ello acompaado de un instalador grfico y asistentes para tareas. Servidor de correo
{ )
y para la gestin remota del MTA. Lo siguiente es una descripcin del modelo de
negocio de Sendmail Inc (obtenida en http //www. sendmail com/company):
:
.
No seleccione ninguna opcin, no va a usar el servidor de correo por defecto
(Exim) puesto que en su lugar va a instalar Postfix. Slo presione el fabulador y
Sendmail ofrece diferentes soluciones empresariales para mensajera segura
haga clic en el botn OK. El instalador de Debian proceder a descargar y a insta-
entre las que se incluye correo electrnico, voz y mensajera instantnea. Las lar los paquetes. Durante las descargas, mostrar una o ms pantallas grficas
soluciones Sendmail controlan correo entrante, saliente e interno. Sendmail es
el
donde preguntar si quiere configurar Exim (Exim-config). Elija Sin configura-
una implementacin portable, que puede desplegarse sobre gran variedad de soft-
cin. Luego responda S cuando le pregunte De verdad que desea dejar el siste-
ware y aplicaciones. Los productos de Sendmail funcionan en las infraestructuras
ma de correo sin configurar?.
de correo heterogneas como Exchange, Notes, Groupwise y otras soluciones de
El instalador de Debian continuar descargando y configurando paquetes,
correo.
cuando Debian acabe su trabajo, ver una pantalla agradeciendo el uso de Debian.
Postfix se dise desdeel principio como un sustituto robusto y seguro para
En este punto debera eliminar algunos programas innecesarios usando la utili-
Sendmail. El MTA
por defecto para Deban es Exm 4, pero preferimos Postfix
dad apt-get. Si decide usar otra distribucin, puede eliminar los paquetes usando
porque Exiin tiene algunos problemas de escalabilidad. Carece de una cola cen-
otros procedimientos. Bajo Debian, ejecute:
tral de gestin y capacidad de carga balanceada. Adems, existen indicios de que
los desarrolladores de la distribucin Deban van a convertir a Postfix en el MTA
# apt-get remove Ipr nfs-common portmap pidentd pcmcia-cs pppoe \
por defecto en un futuro cercano. Al mismo tiempo, es fcil migrar de Exim a pppoeconf ppp pppconfig
Postfix, como veremos en la siguiente seccin.
Ahora, deshabilite algunos Scripts de servido:
Correo Correo
# update-inetd --remove ftp This is by design: mail is not delivered to externa! delivery agents as root.
# update-inetd --remove discard If you already have a /etc/aliases file, then you possibly need to add this
entry. {I will only add it if I am creating a new /etc/aliases .
junto con la seguridad TLS y SASL que permite autentificar a los usuarios:
org. Pero por defecto, hostname en Deban slo devuelve mail. Para permitirle
<Ok> <Cancel>
ceso que empezar con las siguientes lneas:
Responda <Ok> para aceptar el valor por defecto que aparece en el cuadro de
Reading Package Lists... Done
Building Dependency Tree Done . . .
texto azul.
El siguiente dilogo muestra los valores por defecto de los dominios de su
Luego, ver una pantalla con mensajes que empieza as: servidor:
You have severa! cholees for general conf iguration at this point . .
Give a comma-separated list of domains that this machine should
consider itself the final destination for. If this is a mail domain
En la parte de abajo de la pantalla encontrar una pregunta que nos interesa: gateway, you probably want to inelude the top-level domain.
Other destinations to accept mail for? (blank for none)
General type of conf iguration? server2.centralsoft.org, localhost.centralsoft.org, localhost ,
No conf iguration <0k> <Cancel>
Internet Site
Internet with smarthost
Satellite system Ls dominios listados aparecern en su archivo de configuracin main cf .
Local only La pregunta final est relacionada con los sistemas que tienen sistemas de
archivos que no son un estndar:
<0k> <Cancel>
If synchronous updates are forced, then mail is processed more slowly.
Elija "Internet Site" incluso si planea usar Postfix para correo local.
If not forced, then there is a remte chance of losing some mail if the
Luego, un
dilogo de informacin le indicar que el proceso de instalacin system crashes at an inopportune time, and you are not using a journaled
el archivo de configuracin de Postfix. Si ya tiene un servidor en
est escribiendo filesystera (such. as ext3).
The default is "off".
produccin usando Sendmail, ya tendr un archivo de alias. En este captulo
Forc synchronous updates on mail queue?
supondremos que est empezando desde cero, por lo que introduciremos NONE <Yes> <No>
en la siguiente pantalla.
Debido a que casi todas las distribuciones usan el sistema de archivos ext3 por
The user root (and any other users with a uid of 0) must have mai.l
defecto,puede responder <No> aqu.
redirected via an alias, or their mail may be delivered to /var/mail/nobody
i
:
por el momento, pero tendr que ser capaz de encontrarlos en el archivo de con- i
Si estuviera configurando Postfix a mano, tendra que rellenar muchos de #delay_warning_time = 4h Quite el comentario de esta lnea para generar
estos valores manualmente. Por ello es de apreciar el trabajo que ahorra el proce- mensajes del tipo "correo retrasado". Nosotros
so de instalacin de Debian. no activaremos esta opcin porque empezare-
Postfix usa una que cada lnea consiste en un parmetro
sintaxis simple en la i
mos con un volumen bajo de usuarios y no se
de configuracin seguido por un signo igual y un valor, lina vez que el parmetro esperan retrasos.
est definido, las lneas posteriores del archivo pueden referirse al parmetro siem- i
myhostname = Especifique el nombre de equipo de Internet
i
mydomain centralsoft.org
=
$ myhostname se usa como valor por defecto
niyorigin = $mydomain
para otros muchos parmetros de configuracin.
Este ejemplo asigna el valor centralsof t org tanto . al parmetro mydomain alias_maps = Especifica el alias de la base de datos usada por
como a myorigin hash: /etc/aliases el agente local de entrega.
Un archivo bsico de configuracin realiza reparto local nicamente. Espera alias__database = Un alias es simplemente un nombre alternativo
que haya receptores de correo que tengan cuentas y directorios locales en el ser- hash /etc/aliases
:
que alguien usa en lugar del original. Por
vidor de correo. No necesita que el sistema aada el sufijo (que debera @ ejemplo, debera especificar el alias admin
especificarse con el parmetro append dot mydomain). Esto es por lo que el pro- para root. Los papeles de estos dos parmetros
ceso de instalacin de Debian tambin pregunta por dominios, nombres de equi- no son importantes para comprender este
po y direccin de destino. captulo, slo tenga en cuenta que Postfix
El muchos parmetros /etc/postf ix/
gestor de paquetes de Debian configura mantiene una lista con todos los alias en un
main cf por
. muestra las lneas maestras. Una lista completa
usted. La tabla 5.1 archivo simple y que estos parmetros le
de parmetros puede encontrarse en el sistema archivo de ejemplo /usr/share/ indican al sistema dnde est situado y cul es
postf ix/main cf dist. . .
el formato del archivo de datos usado.
: 2
Correo Correo
mynetworks = 127.0.0.0/8 Especifica los equipos que este servidor no Este parmetro es til cuando desea dirigir correos a equipos que estn fuera
considera spammers. Aqu, hemos especifica- de su red, por ejemplo, para ejecutivos que trabajan desde casa, viajantes, etc.
do solamente nuestro equipo local. En su Haremos algunos otros cambios en /etc/postf ix/man. cf ms tarde en
tambin puede especificar el parmetro
lugar,
y encriptacin de contraseas.
este captulo para aadir autentificacin
mynetworksstyle = clase donde Postfix
debera confiar en todos los clientes SMTP
pertenecientes a la misma clase de red (A/B/C) Probando e! correo
que la mquina local. No confe la clase entera
en un servidor de acceso telefnico, ya que Con configuracin apropiada, puede recibir y enviar correo desde su cuenta.
la
esto provocar que Postfix est abierto para El un ejemplo de dos mensajes de prueba enviado por uno de los
siguiente es
todos los proveedores de la red. autores de este libro. Primero, usamos una cuenta de Gmail para enviar un
mensaje de correo a una cuenta de usuario en el sistema server .
Correo Correo
Subject: Re: Prueba de SMTP llamado Extensin del servicio SMTP para autentificacin. Ver este trabajo con el
In-Reply-To acrnimo de ESMTP, por ejemplo, est en la primera lnea de archivo /etc/
tadeIste@server2.centralsoft.org (Tom Adelstein)
postf ix/main cf (vase Tabla 5.1). ESTMP evita que una gran cantidad de re-
.
Estarnos enviando este correo para probar la funcionalidad del servidor mitentes y/o atacantes usen MTA desconocidos como pasarelas. Tambin ofrece
de correo a la hora de enviar y recibir correo SMTP simple seguridad autentificando a los usuarios y sus actividades. La IETF bas la exten-
sin ESMTP en SASL. Como parte del protocolo SMTP, ESMTP simplemente aade
Usar el comando mal es una manera primitiva de gestionar grandes volme-
un comando llamado AUTH a los comandos del servidor usados para intercam-
nes de correo, incluso desde una cuenta local. Una alternativa es mutt, que tiene
biar datos. El framework de autentificacin SASL permite una variedad de for-
una interfaz robusta y bastantes ms funcionalidades. Como administrador, po- mas para almacenar e intercambiar credenciales de usuario. Puede usar
dra usar algunos de estos agentes de lnea de comando cuando reciba correo en
contraseas Linux (/etc/passwd, /etc/shaclow o Mdulos de Autentifica-
su cuenta de servicio.
cin independientes), archivos independientes, o servicios externos como LDAP,
Kerberos o sasldb (un directorio creado por el proyecto Cyrus e incluido con SASL).
En este captulo, mostraremos dos formas de usar Postfix con SASL. Primero,
Aadiendo autentificacin y encrip faetn configuraremos un mtodo simple que funciona bien en sitios pequeos donde
puede dar a cada usuario de correo una cuenta de usuario en el servidor Linux,
Ahora que ya hemos configurado un servidor SM TP por defecto, qu pode- este mtodo usa PAM, la autentificacin por defecto usada en estos casos. Luego,
mos hacer con Postfix? En esta seccin aadiremos a identificacin (usando SASL) configuraremos un sistema ms complejo que le permite autentificar usuarios
y encriptacin (usando TLS) a nuestro archivo de configuracin, /etc/postf ix/ que no tienen cuentas en el servidor.
main. cf. Con autentificacin, nos aseguraremos que slo usuarios con las cre-
i
denciales adecuadas puedan usar nuestro servidor SMTP Con encriptacin, nos Nota: La autentificacin puede considerarse un proceso de dos etapas.
aseguraremos que no enviamos ni ID de usuario ni contraseas a travs de la red Primero, hay que asegurarse de que el usuario es quien dice ser. Luego, hay
en texto claro. que ofrecerle el servicio pedido, que puede ser una interfaz de comandos
(bash, tesh, zsh, etc.) o una sesin X Window ejecutndose bajo su identidad.
Correo Correo E
Luego, aada un parmetro para ajustar los clientes no estndar que no pro- Cree el archivo smtpd conf con estas dos lneas:
.
# postconf -e smtpd_ sasl_local_domain =' necesita las contraseas actuales porque usa el mismo servido de autentificacin
que el que usted usar para abrir una sesin de consola en Linux.
Esto completa la configuracin SASL para Postfix. De manera alternativa, en
Ahora, vamos a configurar saslauthd para ejecutar el servidor de correo. Las
lugar de ejecutar los diferentes comandos postconf anteriores, tiene la opcin de siguientes direcciones corresponden a Debian, pero puede hacer ms o menos las
editar el archivo /etc/postf ix/main cf aadir las siguientes entradas
.
,
y fi- mismas cosas con los directorios y los comandos de otros sistemas Linux.
nalmente recargar Postfix.
El puerto de Postfix en Debian se ejecuta en entorno chroot en /var/spool/
smtpd_sasl_local_domain = $myhostname postfix. Por consiguiente, necesita poner el demonio saslauthd en el mismo
smtpd_sasl__auth_enable = yes espacio de nombres. Siga los siguientes pasos:
broken_sasl_auth_clients = yes
smtpd_sasl_security__options = noanonymous 1 . Cree el directorio necesario para el demonio:
smtpd_recipient__restrictions =
permit_sasl_authenticated, permit _mynetworks reject_unauth_destination
,
# mkdir -p /var/spool/postf ix/var/run/saslauthd
smtpd_sasl_local jiomain =
2. Edite /etc/def ault/ saslauthd para activar saslauthd. Elimine la marca
Ha terminado de configurar SASL y ahora ya puede empezar a usarlo. Antes de comentarios de la lnea START=yes y luego aada la lnea:
vamos a ver los ltimos pasos, ejecute este comando para crear un archivo de
PARAMS=" -m /var/spool /posfcf ix/var/run/saslauthd -r"
configuracin SASL en el directorio donde Postfix buscar (la -p evita un error si
el directorio ya existe): 3. Su archivo debe quedar as:
# mkdir -p /etc/postf ix/sasl # This needs to be uncommented before saslauthd will be run automatically
# cd /etc/postf ix/sasl START=yes
j;
"
Correo Correo I
# "shadow'' or "sasldb", lke this: probablemente MySQL sea la solucin ms escalable y ms fcil de gestionar.
# MECHANISMS= "pam shadow" El mtodo sasldb y el MySQL necesitan que instale un tipo especial de plugin
MECHANI SMS = " pam
llamado auxiliary property. Si configura sasldb o MySQL, tiene que editar el ar-
4. Lo siguiente que tiene que hacer es editar /etc/init d/saslauthd para . chivo smtpd conf y cambiar la lnea:
.
requiere que cada persona que recibe el correo a travs del servidor tenga una
Nota: La seccin previa de SASL y la seccin actual tratan de la seguridad,
cuenta de usuario. Obviamente, esta solucin carece de escalabilidad requiere aunque con diferentes objetivos. Mientras que la seccin de SASL maneja la
y
mucho tiempo administrativo. Para soportar usuarios que no tienen cuentas en autentificadn, que determina quin tiene el derecho de enviar correo a
el servidor SMTP,
SASL le permite usar otras opciones de almacenamiento; las travs de su servidor. Esta seccin trata la proteccin de contraseas, que
opciones ms populares son sasldb, LDAg Kerberos y MySQL. El demonio saslauthd asegura que los intrusos potenciales no pueden leer las credenciales secretas
no se ejecuta cuando Postfix usa uno de estos mtodos: no se necesita un progra-
'
de los usuarios. Necesitar ambos servicios para un correo electrnico seguro.
Correo Correo
Generating RSA prvate key, 1024 bit long modulus writing RSA key
# mv -f smtpd. key. unencrypted smtpd.key
# chmod 600 smtpd.key
e is 65537 (0x10001) # openssl req -new -x509 -extensiosis v3_ca -keyout cakey.pem -out \
Enter pass phrase for smtpd.key; cacert.pem -days 3650
Verifying - Enter pass phrase for smtpd.key: Generating a 1024 bit RSA private key
++++++
Cambie los permisos del archivo resultante que contiene la clave OpenSSL del ++++++
servidor: writing new private key to 'cakey.pem'
Enter PEM pass phrase:
# chmod 600 smtpd.key Verifying - Enter PEM pass phrase:
Luego, genere otra clave y otro certificado You are about to be asked to enter information that will be incorporated
into your certifcate request.
What you are about to enter is what is called a Distinguished ame or a DN.
# openssl req -new -key smtpd.key -out smtpd.csr
You are about to be asked to enter Information that will be incorporated There are quite a few fields but you can leave some blank
into your certifcate request. For some fields there will be a default valu,
If you enter the field will be left blank
What you are about to enter is what is called a Distinguished ame or a DN.
There are quite a few fields but you can leave some blank Country ame (2 letter code) [AU]
For some fields there wili be a default valu, State or Province ame (full ame) [Some-State]
If you enter the field will be left blank. Locality ame (eg, city) []
Country ame (2 letter code) [AU] Organization ame (eg, company) [Internet Widgits Pty Ltd]
State or Province ame (full ame) [Some-State] Organizational Unit ame (eg, section) []
Locality ame (eg, City) (] Common ame (eg, YOUR ame) []
:
Organization ame (eg, compahy) (Internet Widgits Pty Ltd] centralsoft.org Email Address []
:
Common ame (eg, YOUR ame) [} Ahora necesita indicarle a Postfix las claves y los certificados de los siguientes
Email Address [J : comandos posteonf:
Please enter the followng 'extra' attributes
to be sent with your certifcate request # posteonf -e 'smtpdtls auth_only = no'
A challenge password [] :
# posteonf -e 'smtp_use_tls = yes'
An optional company ame [] eso:
# posteonf -e 'smtpd_use_tls = yes'
# posteonf -e 'smtp_tls_note_starttls_of f er = yes'
# posteonf -e 'smtpdtls key_file = /etc/postf ix/ssl/smtpd. key
Nota: Existe un debate para dirimir si los certificados que se autogeneran smtpd_tls_cert_f ile = /etc/postf ix/ssl/smtpd. crt'
# posteonf -e '
deberan pedir informacin o no. Nosotros recomendamos que introduzca # posteonf -e 'smtpd_tls_CAf ile = /etc/postf ix/ssl/cacert .pem'
la informacin apropiada para su sitio de produccin. # posteonf -e 'smtpd_tls loglevel = 1'
# posteonf -e 'smtpd tls_received_header = yes'
# posteonf -e * smtpdtls session_cache_timeout 3600s'
Los siguientes comandos generan un clave de firma y cambian las claves exis- # posteonf -e 'tls random source = dev: /dev/urandom'
tentes por las nuevas:
El archivo /etc/postf ix/main. cf debera quedar as:
# openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out \
smtpd.crt # See /usr/ share/postf ix/main. cf .dist for a commented, more complete versin
Signature ok smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
subject=/C=US/ST=Texas/L=Dallas/0=centralsof t org/OU=web/CN=Tom_Adelstein/
. biff = no
emailAddress=tom. adelstein@gmail cora . # appending .domain is the MUA' s job.
Getting Private key append_dot_mydomain = no
Enter pass phrase for smtpd.key: # Uncomment the next line to genrate "delayed rtiail" warnings
# openssl rsa -in smtpd.key -out smtpd. key unencrypted . #delay_warning_time = 4h
Enter pass phrase for smtpd.key: myhostname = serverl.example.com
Correo Correo
unauth_destination
smtpd_tls_auth_only = no Nota: En nuestra configuracin, los usuarios necesitan cuentas de Linux
smtp_use_tls = yes estndar en su servidor de correo, incluso aunque lean su correo desde un
sratpd_use_tls = yes
cliente en otro sistema. Postfix normalmente permite entrega local en un
smtp_t.ls_note__starttls_of fer = yes
dominio, pero requiere una pasarela (como se discuti en la seccin previa)
smtpd_tls_key_f ile = /etc/post f ix/ssl/smtpd key ,
smtpd_tls_cert_f ile = /etc/postf ix/ssl/smtpd crt si los usuarios estn fuera del dominio.
.
Configurando los agentes de entrega de correo POP3 e IMAP Nota: El bloqueo de archivos es un mecanismo que obliga a que slo un
usuario o proceso pueda acceder al archivo en un momento dado. El
En esta seccin aadiremos agentes de entrega de correo para complementar propsito del bloqueo es evitar actualizaciones conflictivas.
a Postfix. Use el siguiente comando en Deban para aadir un servidor IMAP
y
uno POP3. Muchas personas consideran que el bloqueo de archivos es un problema en el
# apt-get install ipopd-ssl uw-imapd-ssl caso del correo. Muchos sistemas de archivos distribuidos carecen de mecanis-
mos de bloqueo. Algunas personas creen que incluso el bloqueo de archivos es
Hemos escogido ipopd-ssl para ofrecer agentes de entrega de correo POP2 y insuficiente para evitar fallos ocasionales en mbox. Con Linux, el fallo es posible
POP3 y uwimapd-ssl para IMAP. No se preocupe por el sufijo ssl, tanto los pa- si un proceso de correo falla en medio de la actualizacin de
un buzn.
quetes que ofrecen servicios sin encriptar como los que los ofrece encriptados. El Elformato maildir, sin embargo, permite acceso concurrente a mltiples apli-
IMAP estndar usa el puerto 143 y POP3 usa el puerto flO. Los protocolos caciones y no necesita bloqueo de archivos. Otros servidores IMAP, como Cyrus,
encriptados y los puertos son POP3S (puerto 995) e IMAPS (puerto 993). Courier y Dovecot, usan el formato maildir para permitir a los usuarios virtuales
152 Correo Correo
seguridad es un aspecto que debe tenerse en cuenta desde el principio. Al final del
captulo, podr encontrar una seccin para la solucin de errores comunes.
Un sitio Web bsico est compuesto por archivos: HTML, grficos, JavaScript,
hojas de estilos y otros tipos. El contenido de estos archivos es esttico, no cam-
bian en el servidor, y el nico trabajo del servidor Web es devolverlos cuando el
Administrando Apache Administrando Apache 157
navegador lo solicite. Un servidor Web necesita slo una pequea configuracin na muy bien y es fcilmente escalable, aunque todo tiene sus lmites. Apuntare-
para servir archivos estticos. mos algunos de esos lmites en este captulo, pero puede saltarse estas secciones
Muchos sitios tambin tienen contenido dinmico, incluso generacin auto- si Ya tenemos la L, ahora exploraremos las A;
prefiere aprender de la experiencia.
mtica de contenido, control de acceso y almacenamiento en bases de datos. La la My P vendrn
la un poco despus. Apache no es el servidor Web ms rpido,
manera ms fcil para hacer archivos HTML dinmicos es usar la tecnologa de ni el ms fcil de configurar, ni el ms seguro, pero es muy superior al resto de
servidor (SSI), que equivale a aadir comentarios formateados mediante HTML servidores. Segn Netcraft, ms del 60 por 100 de los sitios Web pblicos usan
que Apache interpreta para mostrar su valor o incluir contenidos de otros archi- Apache (http //news .netcraft com/ archives/ web_server_survey.html).
:
.
vos HTML. La inclusin de archivos SSI es una forma fcil para definir una cabe- Apache se ejecuta en Linux, Mac OS X y otros sistemas basados en UNIX, adems
cera y un pie de pgina comn a todo el sitio, por ejemplo. de casi todas las versiones de Microsoft Windows.
SSI tiene lmites, aunque una gran mayora de sitios dinmicos usan progra- AI igual que otros programas Unix, Apache puede levantarse con todos sus
mas Common Gateway Interface (CG). Estos programas ejecutables pueden escri- mdulos, obteniendo as un programa muy grnele (con ligadura esttica) o puede
birse en cualquier lenguaje que Linux soporte, aunque las opciones ms populares trabajar con mdulos que se cargan en memoria a medida que se necesitan (obje-
son los lenguajes de script como Perl, PHJ Python y Ruby, seguidos de Java. CGI es tos dinmicos compartidos o DSO). El mtodo OSO es ms fcil y ms flexible,
un protocolo que especifica cmo deben intercambiar las peticiones y las respues- puesto que le permite aadir mdulos una vez que Apache ha sido levantado. La
tas el diente y el servidor. Cuando los primeros CGI aparecieron en la Web, eran instalacin de Deban para PHP y para otros mdulos usa el mtodo DSO.
totalmente independientes de los servidores Web. Cada peticin provocaba que el
servidor Web iniciara un nuevo proceso CGI. El coste de arranque incrementaba el
tiempo de respuesta del sistema, por lo que se desarrollaron alternativas. La gente Instalacin
a menudo confunde el protocolo CGI con este mtodo de implementacin anticua-
do y por ello piensan que CGI es lento. Sin embargo, el estndar CGI no define la
implementacin. Existen mtodos ms rpidos que siguen el mismo protocolo CGI. En esta seccin, instalaremos Apache, PHP y MySQL. Usaremos la instalacin
por defecto para cada uno de ellos para asegurarnos que se ejecutan correcta-
LIn mtodo ms rpido es FastCGI, que inicia el programa CGI como un proceso
mente. En la seccin siguiente, exploraremos los archivos de configuracin de
aparte y gestiona dos vas de comunicacin entre dicho proceso y el servidor Web.
Evitando as el coste de recarga, adems la separacin del proceso asegura que en el Apache y cmo personalizar nuestra instalacin.
caso de que el CGI falle, no llevar asociada la cada del servidor. No obstante, FastCGI
tiene un
inconveniente: al igual que otros programas CGI, no puede acceder a los Apache
entresijos del servidor Web, algo que es necesario en aplicaciones complejas.
Algunos programas CGI han evolucionado en forma de mdulos Apache que Necesita ser usuario root para instalar paquetes. Primero consiga el servidor
se como parte del propio servidor Web: el intrprete de Perl se convirti en
cargan Apache:
m d_perl o PHP se ha convirti en mod__php. El rendimiento de los programas
FastCGI y de los mdulos Apache es similar, y los mdulos tienen tanto ventajas # apt-get install apache2
incrementan el tamao y el uso de la memoria del servidor Web, y un fallo en sustituirla por la URL de su propio servidor. Si
el vea esta URL en los ejemplos, debe
mdulo puede provocar la cada del servidor Web. navegador en misma mquina en que est alojado el servidor
est ejecutando el la
Web y problemas con la resolucin DNS de su servidor de nombres, puede
tiene
LAMP usar http //localhost o http //127 0 0 1 Si lo est probando desde fuera,
: : . . . .
Si puede ver esto, es que la instalacin del servidor Web de Apache se Entre tanto, si usted es novato, acaba de escribir su primer script CGI. (En la
ha instalado de manera satisfactoria en su sistema. Ahora tiene que
seccin de CGO, ofreceremos ms detalles acerca de cmo los servidores Web eje-
aadir contenido a este directorio y reemplazar esta pgina.
cutan programas externos y Scripts.)
El navegador debera mostrar que Apache ha redirigido la pgina que intro-
dujo por otra: http / /serverl centralsof t org/apache2-default.
: . .
Ahora consiga el mdulo PHP para Apache, mod_php. Este comando instalar
mod php y le indicar a Apache que le permite ejecutar archivos con sufijo .php: LIsc este comando para ver si el servidor de la base de datos se est ejecutando:
Type ' he Ip ; ' or '\h' for help. Type '\c' to olear the buffer.
<?php
phpinf o { )
mysql > show databases;
?>
j
+ +
Database
Luego introduzca la URL del script (http // serverl centralsof t org/
: . . +
j
+
inf o php) en su navegador. Debera ver una pgina con tablas de informacin
. |
mysql
sobre la configuracin de PHP. Esta informacin ofrece mucha informacin acer- |
test
+ +
ca de su equipo y que no tiene que compartir con el resto del mundo, por lo que
2 rows in set (0.00 seo)
puede borrarlo despus de probarlo. Si no es capaz de ver nada, chele un vistazo
al final de este captulo. mysql > quit;
: : : > : >> ; : :
T
Administrando Apache Administrando Apache
configuracin de Apache por el sistema de archivos, lo que hace difcil saber qu f # Disables .htaccess files in subdirectories
opciones tienen efecto sobre un directorio en un momento dado. Si no necesita f AllowOverride None
</l)i rectory>
archivos .htaccess, no los use. Estn desactivados por defecto.
itDocumentRoot itself
<Directory /var/www/
Options Indexes FollowSymLinks MultiViews
Forbids .htaccess files:
ti
Cada archivo de configuracin de Apache est divido en secciones que contie- AllowOverride None
Order allow,deny
nen directivas Apache (comandos u opciones) y sus valores. Algunas directivas
allow from all
son parte del ncleo de Apache, mientras que las otras slo las usan mdulos # Maps / to /apache2-def ault the initial welcome
,
especficos. Si una directiva se refiere a un mdulo que no ha configurado. Apa- # page that says "If you can see this...":
che fallar al iniciarse y se escribir un mensaje que indique las lneas incorrec- RedirectMatch */$ /apache2-def ault/
</Directory>
tas en el archivo log de errores.
Cuando Apache se est ejecutando correctamente, podr ver las directivas que # Permits CGI Scripts:
se estn usando si introduce este comando: ScriptAlias /egi-bin/ /usr/lib/cgi-bin/
<Directory " /usr/lib/ egi -bin"
# /usr/sbin/apache2 -L AllowOverride None
Options ExecCGI -MultiViews +SymLinksIf OwnerMatch
Al final de este captulo encontrar la ayuda para diagnosticar problemas en Order allow, deny
Allow from all
el servidor Web.
</Directory>
Suponiendo que el archivo de prueba funcion, ahora puede pasar a configu- :
rar Apache. Lo siguiente es el contenido por defecto del archivo de configuracin # Error log for a single site:
ErrorLog /var/log/apache2/error log
.
# Por any virtual host at any address, any port # Shows Apache docs (only to local users)
cVirtualHost *> # if you installed apache2-docs
# If Apache has problems, whom should it contact? # to suppress showing the documents,
ServerAdmin webmaster@localhost # you can comment these lines or delete them:
Alias /doc/ "/usr/share/doc/"
# Our web site files will be under this directory: <Directory "/usr/share/doc/"
DocuraentRoot /var/www/ Options Indexes MultiViews FollowSymLinks
AllowOverride None
# Overall directives, in case we move DocuraentRoot Order deny, allow
# or forget to specify something later: Deny from all
<Directory /> Allow from 127.0.0.0/255.0.0.0 ::1/128
# tets Apache follow symbolic links </Directory>
Options FollowSymLinks ,
</VirtualHost>
Administrando Apache Ad m nistrando Apache
La mayor parte de los cambios que haremos en los archivos de configuracin visitante. La autorizacin determina lo que el visitante puede hacer, como por
de Apache en esta seccin se harn sobre este archivo. Ei archivo de configura- ejemplo;
cin /etc/ apache2/apache2 conf contiene muchas opciones de la parte ser-
.
vidora que no necesitan cambiarse, con algunas excepciones notables que sern
Leer un archivo.
Listen. 81 Puesto que no lo ha protegido todava, el archivo debera ser visible desde el
Listen 443
Ahora haga un archivo de usuarios:
Directiva DocumentRoot # cd / tmp
# htpasswd -c /tmp/users jack
Cada sitio Web tiene su raz, que es el directorio que tienen los archivos de New password: blackpearl
contenido y los Scripts. Est especificado por la directiva DocumentRoot. En la Re-type new password: blackpearl
configuracin por defecto de Deban, est especificado en /etc/apache2/sites~ Adding password for user jacte
enabled/OOO-def ault:
Su contrasea no se mostrar cuando la introduzca. Necesitar incluir el
DocumentRoot /var/www/ parmetro -c la primera vez que ejecute el programa htpasswd en el archivo,
para crear el archivo.
Algunas partes de su sitio Web estarn abiertas a todos, pero quizs quiera Nota: No use d parmetro -c cuando aada ms usuarios, porque esto
restringir el acceso a ciertos visitantes. La autentificacin determina quin es un provocar que d archivo se sobrescriba.
Administrando Apache Administrando Apache
Si quiere cambiar la contrasea de jack despus, introduzca: Enter username and password for "test" at serverl.centralsoft.org
Username
# htpasswd /tmp/users jack Password
New password: kraken
Re-type new password: kraken Introduzca el nombre y la contrasea (ver los asteriscos cuando introduzca
Updating password for user jack la contrasea) y haga clic en O'K. Debera ver:
Elarchivo de usuario consiste en una serie de lneas que contienen un nombre
puedes verme
de usuario y una contrasea encriptada, separados por dos puntos {:), como se
muestra aqu:
jack :OSRBcYQOd/qsI Otra forma de manejar muchos usuarios es usar el archivo de grupo. Cree un
archivo /tmp/groups que contenga un nombre de grupo, dos puntos y uno o
Ahora edite el archivo de configuracin del sitio Apache /etc/apache2/
ms nombres de usuario separados por espacios:
sites-enablecl/OOO -def ault y aada (antes del final de la lnea
</
VirtualHost>): piratee: jack will elizabeth
AuthGroupFile /tmp/groups
fecto, y permitir el acceso slo si el usuario est especificado en el archivo de require group pirates
usuarios. Por ltimo, la directiva require indica que cualquier usuario del ar- </Locat
chivo de usuarios tiene permitido el acceso. Para permitir que slo el usuario
jack pueda ver el archivo que hemos creado, debera poner: Reinicie Apache como de costumbre para que los cambios surtan efecto:
<Location /cgi> En un servidor ocupado, Apache puede crear muchos procesos hijos simult-
Options ExecCGI neos y usar mucha memoria. Esto puede incrementar la carga media y hacer que
</Location>
el sistema se vuelva ms lento, incluso que no responda. La tabla 6.2 muestra
permite programas CGI situados en /var/www/cgi. Veremos esto de nuevo cmo puede limitar algunos valores de ejecucin de Apache en el archivo de con-
figuracin del sitio.
en la seccin CGI.
e indique a Apache que permita esta tecnologa: Ahora cree el archivo middle shtml con
. este contenido:
</Location>
arriba
SSI permite incluir archivos de contenido, pero tambin puede ejecutar cual-
le en el medio
quier programa e incluir su salida. Esto puede no ser muy seguro, por lo que abajo
para restringir la inclusin de archivos de contenido solamente, use:
opcin Ineludes est definida corno contenedor, SSI tambin puede ejecu-
Si la
cLocation /ssi> tar comandos, pero el usuario (normalmente un navegador Web) no puede pa-
Options IncludesNoExec sarle ninguna directiva. La ejecucin de comandos SS se sude usar para hacer
</Location> algunas cosas como listado de directorios:
fciles el
Si quisiera tener archivos SSI en varios lugares en lugar de tenerlos todos <!--#exec cmd="ls -1 /tmp"-->
confinados en este directorio, puede indicarle a Apache que asocie a tipo de archi-
vo el sufijo SSI: Otro funcionalidad de SSI mostrar variables de entorno CG1 y otro
es la de
tipo de variables. Una forma rpida de imprimir todas estas variables es:
AddHandler server-parsed . shttnl
< ! - - #printenv- * >
Para que SSI funcione, el mdulo de Apache correspondiente tiene que estar
Para una variable determinada, sera:
cargado, puesto que no se carga con la instalacin por defecto de Apache o de
PHP, tendremos que teclear lo siguiente: <!--#echo var = " DATE_GMT " - -
< !
--#command argument=" valu" -- cLocation />
Options IncludesNoExec
Los posibles valores del comando son indude (incluye archivos), echo (mues- </Location>
tra variables de entorno), exec (incluye la salida de un comando) y config (da
formato a las variables de echo). CGI
Primero vamos a probar la inclusin de archivos. Cree dos archivos: CGI es una forma mucho ms flexible (y peligrosa) de ejecutar programas en
servidores Web, puesto que los usuarios pueden pasar informacin a los progra-
# cd /var/ww/ssi
# echo "top stuff" > top.html mas. Apache tiene dos formas de especificar qu programas pueden ejecutarse
# echo "bottom stuff > bottom.html como programas CGI.
1 72 Administrando Apache Administrando Apache 1 73
Location Ahora vamos a intentar hacer algo ms interesante, nos conectaremos al ser-
vidorMySQL, ejecutaremos una consulta MySQL e imprimiremos los resultados
Las dos siguientes directivas sirven para asociar los programas CGI del direc- como HTML. De nuevo, necesitaremos la contrasea del usuario root para MySQL.
torio/var/ cgi con la URL que comienza porhttp : / / serverl . centralsof t Guarde este archivo como /var/www/db .php:
org/ cgi/:
<?PftP
$link = mysql_connect "localhost" "root", "newmysqlpassword"
(
)
ScriptAlas /cgi /var/cgi ,
if ( $link) {
S
Aqu le mostramos los contenidos del archivo de configuracin de Apache Array { [Database] => mysql ) Array { [Database] => test )
|
test
CGI. Cualquiera podra ejecutarlos con permisos de usuario y de grupo de Apache.
Cuando probamos la instalacin PHP anteriormente, creamos un pequeo 2 rows in set (0.00 sec)
programa PHP:
<?php
phpinf o ( ) ;
Las directivas PHP deben colocarse en su propio archivo de configuracin PHP
(/etc/php4/apache2/php ini) o en el archivo de configuracin de Apache.
.
174 Administrando Apache Administrando Apache 1 75
Normalmente, no tendr que manipularlas, a menos que instale un mdulo PHP indicado en la peticin del navegador con el directorio donde se almacenan los
de extensin o quiera modificar dnde se deben buscar las libreras o configurar archivos que se servirn:
algunas opciones (como el modo seguro). Los mdulos Apache normales tienen
# Accept any site ame on any port
archivos de configuracin con una extensin .conf, ubicados en el directorio / NameVirtualHost *
etc/apache2/mods~enabled. cVirtualHost *>
ServerName wwwl example cora
. .
te Web contacta con un servidor Web va http, enva la direccin IP de destino y </VirtualHost>
(en HTTP 1.1, el protocolo Web estndar actual) el nombre de un servidor de esa
direccin.
En laconfiguracin por defecto de Apache, no hay host virtuales indepen- Si quiere administrar mltiples equipos sin necesidad de especificar los nom-
dientes. Apacheservir las pginas Web sin importar cuntos nombres tenga el bres de cada uno en los archivos de configuracin, puede activar el mdulo
servidor, y todos los nombres de dominio comparten la misma configuracin. mod_vhost__alas de Apache:
En los siguientes ejemplos, supondremos que necesita alojar cada sitio en su
# a2enmod vhost_alias
propio directorio en /var/www/vhosts.
y configurar los nombres que se servirn en el archivo designado. El elemento
Hosts virtuales basados en IP vhost alias del comando anterior sustituye al archivo /etc/apache2/mods-
enabled/vhost alias conf. El contenido de ejemplo es:
.
</VirtualHost>
haber usado 962 para obtener la segunda part e de la izquierda (centralsoft), 96-2
cVirtualHost 192. 168. 6. 2>
ServerName "www2" para la segunda parte de la derecha (tambin centralsoft), 962 + para la segunda
DocumentRoot " /var/www/vhosts /www2 example com"
. . parte del nombre (centralsoft org), etc. Estas alternativas son tiles si tiene
.
</VirtualHost> muchos hosts virtuales. Si siempre tiene el mismo nombre base de dominio, como
centralsoft.org, y los sitios se llaman wwwl.centralsoft.org, www2 .
Esto era lo ms comn en los primeros das de la Web, debido a que HTTP 1.0
centralsoft org, etc., podra usar 961 para obtener los directorios /var/www/
.
# cd /var/www/vhosts
Con este mtodo, la directiva NameVirtualHost define qu direcciones pueden
# mkdir wwwl.centralsoft.org
ser hosts virtuales; * significa cualquier nombre o direccin de este nombre, in- # echo "test wwwl centralsof t . org"
. > wwwl.centralsoft.org/index.html
cluyendo localhost, 127.0.0.1, www.centralsoft.org, www2 centralsof t . # mkdir www2.centralsoft.org
org, u otros. Las directivas ServerName asociadas con el nombre del servidor # echo "test www 2 .centralsoft.org" > www2.centralsoft.org/index.html
Administrando Apache Administrando Apache
Luego reinicie Apache: Por defecto, todos sus hosts virtuales comparten los mismos logs de acceso y
de error. Si tiene ms de un host, no obstante, ser conveniente dividir los logs
# /etc/init d/apache2 reload.
para ver los contenidos de los archivos ndex html de prueba que acaba de .
hacer. # The followng directives define some forma t nicknames for use with
# a CustomLog directiva (see below)
LogFormat "%h %1 %u %t \"%r\" %>s %b \"%{Referer} i\" \"%{ser-Agent}i\"
combined
LogFormat "%h %1 %u %t \"%r\" %>s %b" comrnon
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{ser~agent}i" agent
Apache escribe archivos ASCII de log de dos tipos: acceso (peticiones que se
hacen al servidor) y error (errores que ocurren durante las peticiones). Puede Todos los % en los archivos de configuracin de Apache representan variables;
controlar qu se escribe en estos archivos, dependiendo de lo que quiera saber por ejemplo, %h significa nombre de equipo. El formato combinado es el formato
sobre los visitantes de su sitio, cunto espacio tenga en disco (los logs pueden comn pero incluye el visitante y el agente de usuario (navegador). Desgraciada-
hacerse muy graneles) y qu herramientas de anlisis de logs quiera usar. mente, ninguno de los dos formatos incluye el nombre del host: virtual (una
Un mensaje de acceso tpico (divido en varias lneas para que quepa en la variable %) que necesita para dividir el log por equipos. Por tanto, si quiere hacer
pgina) es: esto ltimo, tendr que definir un nuevo tipo de log.
En lugar de dejando huellas por todos los archivos de configuracin de Apa-
ir
192.168.0.1 -
[22/Sep/2006 15 04 05 -0400] "GET / HTTP/1.1"
- : :
[Fri Sep 29 10:13:11 2006] # Define a new virtual host comrnon log format:
[error]
LogFormat "%v %h %1 %u %t \%r\" %s %b" veommon
[client www.centralsoft.org]
File does not exist: /var/www/ ndex. html
Ya que vlogger no forma parte del paquete estndar de Deban, instlelo: aplicacin, por la misma razn. Encriptar los datos sensibles como los nmeros
# apt-get install vlogger de tarjeta de crdito y las contraseas es esencial.
Cuando solicita una pgina desde un servidor Web con el prefijo http://, to-
Luego reinicie Apache:
dos los datos que circulan desde el servidor hasta el navegador estn sin cifrar.
# /etc/init. d/apache2 restart Cualquiera con acceso a las redes que intervienen en la comunicacin puede cap-
turar los contenidos. Piense que el acceso Web (como el correo electrnico estndar)
vlogger crear un archivo en el directorio /var/log/apache2 para cada host
es una postal en lugar de una carta.
virtualque ha definido. Se crear un log de acceso diario con marcas de tiempo, y
con un enlace simblico al archivo access log ms reciente: .
El estndar Secure SocketsLayer fue desarrollado para encriptar el trfico Web,
y ha sido un factor decisivo en la explosin de sitios comerciales y del comercio
# cd /var/log/apache2/wwwl example com . .
electrnico en la Web. Apache tiene la capacidad de encriptar el trfico Web con
# ls -1
total 4 SSL, que con ligeras modificaciones se conoce como la capa Transport. Layer Security.
-rw-r--r- - 1 root root 984 Aug 3 23:19 08032006-access.log Este cifrado se obtiene cuando accede a un sitio con el prefijo https://. Imagine
lrwxrwxrwx 1 root root 19 Aug 3 23:19 access.log -> 08032006-access.log que el trfico Web cifrado es como un sobre sellado.
Vamos a configurar SSL para Apache. Edite /etc/apache2/ports conf y .
Hay muchos analizadores de logs libres y comerciales: Nosotros pensamos Listen 443
que Webalizer es una buena opcin porque es fcil de instalar y genera una sali-
da muy til: Luego active el mdulo SSL de Apache e indique a Apache que debe usarlo:
Introduzca:
# a2enmod ssl
# apt-get install webalizer
El mdulo ssl est instalado; ejecute /etc/init d/apache2 force-reload
.
Which directory should webalizer put the output in? para activarlo.
/var/www/webalizer
Enter the title of the reports webalizer will generate. # /etc/init. d/apache2 force-reload
Usage Statistics for serverl.centralsoft.org
What is the filename of the rotated Webserver log?
/var/log/ apache2 /access log
Ahora intente acceder a su pgina de inicio con https / / URL (por ejemplo, :
. .
Nota: Los spammers tienen formas de manipular los logs Web, por lo que Internet Explorer 6.0
buena prctica restringir el acceso a las pginas de salida de Webalizer.
es uia Herramientas Opciones
de Internet Contenido
> Certificados
Certificado de confianza raz
Encrlptacin SSL/ILS Los CA son empresas que venden a las organizaciones un certificado y se en-
cargan clel trabajo legal para verificar su identidad. Los sitios Web comerciales
WillieSutton dijo que robaba bancos porque era "donde estaba el dinero". Los casi siempre usan CA comerciales, porque el navegador sude aceptar los certifi-
ataques en Internet se estn incrementando, sobre todo los ataques a nivel de cados que expenden. De manera alternativa, usted puede ser su propio CA y crear
Administrando Apache Admi nistrando Apache
Ahora ya tenemos Apache, PHP y MySQL ejecutndose, instalemos un pa- Database engine to be used with Drupal
quete para usarlos. Desgraciadamente, no vamos a pagar por un producto co- MySQL
mercial, por lo que escogeremos algn producto de cdigo abierto, que represente
Database server for Drupal' s database
un ejemplo tpico de software real y que sea bastante til. Vamos a visitar por
localhost
ejemplo http //www drupa! org:
: .
Drupal es un software que permite a un individuo o a una comunidad de usuario Database server admnstrator user ame on host localhost
publicar, gestionar y organizar una variedad de contenidos en un sitio Web. root
Entre estas funcionalidades se incluyen foros, gestin de documentos, gale- Password for database server admnstrator root on localhost
ras, grupos de noticias y otras formas de colaboracin basadas en Web. newmysqlpassword
Las siguientes dos secciones describen los dos mtodos de instalacin de Drupal:
Drupal database ame
* ms fcil, as es que intntelo en primer lugar. Sin embargo,
apt-get: Es lo Drupal
nosotros hemos tenido problemas con los paquetes Deban de Drupal.
Remove Drupal database when the package is renoved?
0
Desde las fuentes: Supone ms trabajo, pero puede ver qu est ocurrien- No
do, intntelo de esta forma si el mtodo apt-get falla.
Remove former database backups when the package is removed?
Yes
apache- ssl
[ }
Drupal y buscar un paquete listo para descargar o puede ver mediante apt-cache apache -perl
[ ]
La instalacin copiar los archivos de programa, crear una base de datos Query OK, 0 rows affected (0.01 sec)
MySQL y crear un archivo de configuracin Apache (/etc/apache2/conf . d/
drupa 1 conf ):
.
mysql > FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
Alias /drupal /usr/share/drupal
<Directory /usr/share/drupal/ mysql > quit;
Options +FollowSymLinks Bye
AllowOverride All
order allow, deny Luego, cargue la definicin de la base de datos de Drupal en MySQL:
allow from all
</Drectory> # mysql -u root -p drupal < database/ database 4 . . 0 .mysql
Enter password:
S aparece un mensaje parecido a este: #
An override for "/var/lib/drupal/f iles already exista, but -forc Despus edite el archivo def ault/conf ig php y cambie
.
la lnea:
puede quebrarse la cabeza buscando una solucin, o instalarlo desde las fuen-
tes. Si todo ha ido bien, sltese la siguiente seccin.
por:
# wget http://ffcp.osuosl.Org/pub/drupal/files/projects/drupal-4.7.3.tar.gz
# tar xvzf drupal -4.7.3. tar gz La primera pgina (en la versin que hemos probado) dice:
.
-> IHDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLEE 1 . Cree su cuenta de administrador.
-> on drupal.* to
Para empezar, cree la primera cuenta. Esta cuenta tiene plenos derechos
-> n drupal"@"localhost'' identified by "drupalpw";
ele administracin por lo que le permitir configurar el sitio Web.
Administrando Apache Ad m inistrando Apache
Finalmente, puede crear contenido para su sitio Web. Este mensaje des- 23:50 CDT
Interesting ports on serverl.centralsoft.org (192.0.34.166):
aparecer una vez que haya publicado por primera vez.
PORT STATE SERVICE
Para ms informacin, vaya a la seccin de ayuda, o a los libros en lnea 80 /tcp open http
de Drupal. Tambin puede enviar una pregunta al foro o usar un amplio
rango de opciones de soporte. Nmap fnished: 1 IP address (1 host up) scanned in 0.186 seconds
Puesto que ya ha creado la primera cuenta (la de administrador). Ahora ya Si no tiene nmap, use telnet para conectarse al puerto 80 y haga la peticin
puede probar todas las funcionalidades. HTTP ms simple posible:
# telnet sarverl.centralsoft.org 80
Trying 192.0.34.166. . .
Connected to serverl.centralsoft.org.
,A
Escape character is ]'.
Si le gusta diagnosticar problemas, probablemente le gustar la Web. Hay
HEAD / HTTP/ 1.0
muchas cosas que fallan, en muchos lugares y de muchas formas, por lo que
estara ocupado durante muchos aos. Echemos un vistazo a algunos problemas HTTP/1.1 200 OK
Web clsicos. (Los mensajes de error del navegador que usa Firefox, aunque los Date: Wed, 26 Jul 2006 04:52:13 GMT
de Internet Explorer son similares.) Server: Apache/2.0.54 (Fedora)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag " 63f f d- lb6 - 80bf d280
:
Accept-Ranges bytes :
Content-Length: 438
Supongamos que el directorio raz es /var/www, su archivo es test.html y Connection: cise
Content-Type text/html; charset=UTF-8
:
bres pblico:
Listen 80
# dig serverl.centralsoft.org
y tambin, que puede ver algo muy parecido a esto en el puerto 80, como lo
ANSWER SECTION: siguiente:
Administrando Apache Administrando Apache
# Isof -i j 8 # df
COMMAND PID USER FD TYPE DEVICE SIZE NODE AME Filesystem IK-blocks Used Available Use% Mounted on
apache?. 10678 www-data 3u IPv6 300791 TCP * WWW : (LISTEN) / dev/hdal 193406200 4S5292 183126360 1% /
apache2 10679 www-data 3u IPv6 300791 TCP * www : (LISTEN) tmpfs 453368 0 453368 0% /dev/shm
apache 2 10680 www-data 3u IPv6 300791 TCP * WWW : (LISTEN)
apache2 20188 root 3u I Pv6 300791 TCP * www : (LISTEN) Si ha usado una directiva User o Group diferente en la configuracin de Apa-
apache 2 20190 www-data 3u I Pv6 300791 TCP * www (LISTEN)
:
che, compruebe que el usuario y el grupo existen:
apache2 20191 www-data 3u IPv6 300791 TCP * WWW : (LISTEN)
apache2 20192 www-data 3u IPv6 300791 TCP * www : (LISTEN)
# id www-data
apache2 20194 www-data 3u I Pv6 300791 TCP * WWW (LISTEN)
uid=33 (www-data) gid=33 (www-data) groups=3 3 (www-data)
:
Si el
apache2 20199 www-data 3u IPv6 300791 TCP * www (LIS TEN)
:
1
Si la salida contiene lneas como esta: la URL probablemente no existe. Si puede ver:
# /etc/init.d/apache2 start
# cd /var/ww
Luego ejecute el comando ps de nuevo. Si Apache sigue sin aparecer, mire el # ls ~1 permissions.html
-rw 1 root root 0 Jul 26 00:01 permissions.html
log de errores:
existen: LIse
# ls -1 /var/log/apache 2 # apache2ctl -S
total 84
-rw-r 1 root adm 31923 Ju.l 25 23:09 access.log Para comprobar las directivas de host virtual.
-rw-r 1 root adm 32974 Jul 22 20:50 access.log.
-rw-r 1 root adm 379 Jul 23 06:25 access log 2 gz
no funciona
. .
SSI
-rw-r 1 root adm 1492 Jul 23 06:25 error.log.
-rw-r 1 root adm 306 Jul 23 06:25 error log 2 gz . .
Si ve lneas como estas en el log de error {/var/log/apache2 /error log): .
quede poco espado en disco. Es sorprendente el nmero de veces que olvidamos comando:
es que no activ rnod_include. Ejecute el
comprobar esto antes de investigar cosas ms esotricas como los cortafuegos.
Teclee: # a2enmod inelude
Administrando Apache
Un programa CGI
Si no consigue que un programa CGI se ejecute, pruebe las siguientes soluciones:
e
Se ha activado el CGI usando alguno de los mtodos ya descritos ante-
riormente?
8 Est el programa CGI es un directorio CGI como /var/cgi-bin o tiene
un sufijo como .php?
Se puede leer el archivo? Si no, use chmod.
0
tXu dice el log de errores de Apache?
Qu dice el log de error del sistema, /var/log/messages?
Compruebe que tiene activado el mdulo SSL de Apache (a2enmod ssl) e indi-
que a Apache que escuche en el puerto 443 en /etc/apache 2 /ports conf . Hace ms de 10 aos, las personas descubrieron que podan conectar mlti-
ples mquinas baratas para realizar tareas de computacin que en condiciones
Listen 443
normales requeriran un mainframe o un supercomputador. El clster Beowulf
Si la directiva no estuviera ah, adala y reinicie Apache. Luego intente acce-
de la NASA fue uno de los primeros ejemplos y an hoy se sigue utilizando
der a esta URL desde su navegador: https //serverl centralsof t org. Si
: . .
(http //www. beowulf org). En la Wikipedia (http //en wikipedia org/
: . : . .
sigue sin funcionar, puede que el puerto 443 est bloqueado por un cortafuegos. wiki/Computer_cluster) estn recogidas algunas de las caractersticas prin-
Puede comprobarlo con nmap: cipales de un clster: un clster es un grupo dbilmente acopiado de ordenado-
res que trabajan juntos y que en muchos aspectos puede verse como un nico
# nmap -P0 -p 443 serverl.centralsoft.org ordenador. Los clusters a menudo, pero no siempre, estn conectados mediantes
redes de rea local de alta velocidad. Los clusters se suelen desplegar para mejo-
Starting nmap 3.70 http://www.insecure.org/nmap/ at 2006-08-01
rar la velocidad o la fiabilidad que ofrece un nico ordenador, puesto que ofre-
( )
22:38 CDT
Interesting ports on ... (...): cen una relacin efectvidad/coste mucho mejor que un nico ordenador con las
PORT STATE SERVICE mismas prestaciones.
443/tcp open https
Los clusters son una buena solucin cuando lo que busca es mejorar la veloci-
Nmap run completed -- 1 IP address (1 host up) scanned in 0.254 seconds dad, fiabilidad y escalabilidad a un precio razonable. Amazon, Yahoo! y Google
basan sus negocios en miles de servidores configurados como clusters. Es ms ba-
rato y ms fcil, ampliar su negocio horizontalmente (aadiendo ms servidores)
que verticalmente (comprando mquinas ms caras). Hay muchas soluciones Linux
para clusters, tanto libres como comerciales. En este captulo describiremos algunos
clusters basados en Linux Virtual Server (http / / www linuxvirtual - server org)
el : . .
Para cargar esta opcin en el ncleo: Vamos a usar DR porque es fcil, rpido y escalable. Con este mtodo, desig-
namos una VIP que comparten el balanceador de carga y los servidores reales.
# sysctl -p Esto provoca un problema: si todas las mquinas tienen la misma Vg cmo se
net ipv4 ip_f orward = 1
asocia dicha VIP a una direccin MAC fsica? Esto se llama el problema ARP, debi-
. .
do a que los sistemas de la misma LAN usan el Address Resolution Protocol (ARP)
Idirectord para encontrarse, y ARP espera que cada sistema tenga una direccin IP nica.
Muchas soluciones necesitan parches o mdulos del ncleo que cambian jun-
Aunque podramos obtener Idirectord de manera independiente, lo obtendre- to con el ncleo de Linux. En la versin 2.6 y superiores, una solucin muy
mos como parte del paquete Ultra Monkey, que adems incluye software para popular es permitir que el balanceador de carga maneje el ARP de la VIP y, en los
HA. Debido a que Ultra Monkey no forma parte de la distribucin Deban estndar, servidores reales, configurar la VIP como alias del bucle local. Por esta razn, los
necesitar aadir dos lneas a su repositorio de archivos de Deban (/etc/apt/ dispositivos locales no responden a las peticiones ARP.
sources list) en
. la mquina Ib:
Esta es la solucin que adoptaremos. Configuraremos todos los servidores Web
deb http://www.ultramonkey. 0 rg/download/ 3 / sarge main
primero.
deb-src http://www.ultramonkey.Org/download/3 sarge main
(ejecutando Apache). Los servidores reales pueden conectarse con el director de net . ipv4 . conf . ethO arp_ignore = 1
.
8 LVS-NAT
4. Actualice los cambios en el ncleo:
Los servidores reales estn en una subred NAT detrs del director que es el
# sysctl -p
quien enruta las respuestas. net ipv4
. . conf . all arp pignore = 1
.
net ipv4
. . conf . all arp_announce -
. 2
Los servidores reales envan las respuestas directamente ai cliente. Todas net ipv4
. . conf . ethO arp_announce =
. 2
las mquinas estn en la misma subred y pueden comunicarse mediante 5 . Suponiendo que su servidor real es Deban, edite el archivo /etc/ network/
direcciones Ethernet No es necesario que se pueda hacer ping desde fuera
.
interfaces, asociando la VIP (70.253.15.42) con el alias lo:0:
de la subred. auto lo :
8
LVS-TUN iface lo: O inet static
address 70.253.15.42
Los servidores reales pueden estar en una red distinta de la del director. Se netmask 255.255.255.255
comunican mediante tcnicas de tunneling IP sobre IP (IPIP). ,
pre-up sysctl -p > /dev/null
196 Clusters de carga balanceada Clusters de carga balanceada 197
6. Active dicho alias: Se deberan haber creado archivos de inicio en / etc para ldirectord durante la
# ifup lo: instalacin. Ultra Monkcy tambin instal Heartbeat, como no lo vamos a usar,
7. Cree el archivo /var/www/ldirector html con . el contenido: lo desinstalamos:
(use -f to forc)
# echo "X'm webl" > /var/www/which html
.
9. Enweb2: El balanceador de carga monitoriza el estado de los servidores Web, para lo que
# echo "I'm web2" > /var/www/which. html regularmente solicita el archivo que hemos especificado en ldirectord cd request . (
"director, htmf).
10. Inicie Apache, o remdelo si ya se est ejecutando:
Puesto que este servidor responder las peticiones Web que se hagan a travs
# /etc/init.d/apache2 restart
de la direccin VIP (70.253. 158.42), debemos indicrselo al servidor. Edite /etc/
Los logs de acceso de Apache no deberan mostrar actividad, puesto que ib network/ interfaces y aada estas lneas para crear el alias eth0:0:
todava no se ha comunicado con ellos.
auto eth0:0
iface eth0:0 inet static
address 70 253 158 42 . . .
netmask 255.255.255.248
# These should have the same vales as for ethO:
En Ib, cree el archivo de configuracin del balanceador de carga, /etc/ha d/ . network . . .
ldirectord. cf broadcast . .
gateway . .
checkt imeout = 1
check interva 1=2 Ahora active esta nueva direccin P:
autoreload=no
logfile="localO # ifup eth0:0
quiescent=no
vi rtua 1=70. 253. 158. 42:80 Finalmente, inicie los ldirectord en Ib:
real=70. 253. 158. 41:80 gate
real=70. 253 .158.45:80 gate # /etc/init d/ldirectord start
.
receive="I'm alive!"
scheduler=rr Probando el sistema
protocol=tcp
checktype=negot iate
Comprobemos si el balanceador de carga se est ejecutando en Ib:
Si quiescent fuera yes, un
servidor real que fallara dejara de contar para el
balanceador, pero continuara en la tabla LVS de routing; lo hemos puesto a no, # ldirectord ldirectord. cf status
un peso de 0. Si checktype es negotiate, el director har una peticin http a cada 1455
uno de los servidores reales de la URL solicitada, y ver si sus contenidos tienen el
valor recibir. Si el valor fuera check, slo se hara una comprobacin TCP rpida,
Si viera algo como esto:
y las peticiones y las respuestas se ignoraran. ldirectord is stopped for /etc/ha d/ldirectord cf . .
198 Ciusters de carga balanceada Ciusters de carga balanceada 199
habra un problema. Puede parar el director y reiniciarlo con la bandera de depu- Sep 11 22:59:45 mail ldirectord [8543] : Deleted fallback server: 127.0.0.1:80
racin -d y ver los errores que se estn produciendo: { X 70.253.158.44:80)
Sep 11 22:59:46 mail ldirectord [8543] : Added real server: 70.253.158.45:80
( x 70.253.158.44:80) (Weight set to 1)
# /usr/sbin/ldirectord /etc/ha d/ldirectord cf stop . .
Starting Linux Director vi. 77. 2. 32 with pid: 12984 70.253.158.44 - - ll/Sep/2006 22 49 3 7 -0500]
f : : : "GET /director.html
DEBUG2 Running system (/sbin/ipvsadm -A -t 70.253.158.42:80 -s rr
: ) HTTP/1 .1"
Running system /sbin/ipvsadm -A -t 70.253.158.42:80 -s rr
( ) 200 11 " libwww-perl/5 803 .
o:
LWP UserAgent request
: : : : : { )
0
2
3
Aadiendo HA a LB
Esto muestra que nuestro primer servidor real est activo, pero el segundo no. El balanceador de carga representa un nico punto de fallo. Si falla, lo servi-
los servidores Apache, puesto que ldirectord los sondea todos cada checkinterval
( x 70.253.158.44:80) (Weght set to 1)
Sep 11 22:59:45 mail ldirectord [8543] Added real server: 70.253.158.41:80 :
segundos y ajusta todos los pesos, que tienen un efecto muy similar al hearbeat
( x 70.253.158.44:80) (Weight set to 1) de HA.
2 Ciusters de carga balanceada Ciusters de carga balanceada
Tambin tiene otra opcin, y puede echar un vistazo a la Red Hat Cluster
Suite(http / /www. redhat com/
: .
nos memoria.
Tambin puede mejorar el rendimiento por otros mtodos. Caches de cdigo,
que incluyen aceleradores PHP como e-accelerator {http //eaccelerator net): .
as evitan tener que usar tiempo de cmputo en cada acceso a una pgina. Gachs
de datos, como la cach de consultas de MySQj guardan los resultados de consul-
tas idnticas. La replicacin es una forma de LB. Memcached (http://
danga.com/memcached) es una forma rpida de almacenar resultados de bs-
quedas. Squid (http / / www squidcache org), cuando se usa como proxy in-
: . .
verso, es un cach de pginas que puede almacenar todo el contenido del servidor
Web.
Cuando los servidores estn separados en varias aplicaciones (por ejemplo
MySQL ? PHP ? Apache), las mejoras son multiplicativas; por ejemplo "Getting
Rich with PHP 5 " (http / /talks .php.net/show/oscon06) indica cmo con-
:
seguir que una aplicacin PIIP que soporta 1 7 llamadas por segundo pueda pa-
sar a soportar 1.100 llamadas por segundo en una nica mquina. Si ya est
usando ests tcnicas pero no solucionan sus problemas, definitivamente intn-
telo con balanceo de carga, y si la estabilidad es crtica incorpore tambin HA.
En este captulo repasaremos algunas de las destrezas que un administrador
de sistemas necesita para gestionar un equipo situado detrs del cortafuegos o la
pasarela de una compaa, una organizacin o incluso una rpd local.
Algunos de nosotros preferimos referirnos a tecnologas de Internet en lugar
de a redes de rea local, puesto que creemos que no presenta ningn desafo. Pero
cuando necesitamos configurar o arreglar algo en nuestro entorno de trabajo, la
red de rea local adquiere mucha importancia. Por ejemplo, piense que sucedera
si el correo electrnico del directorio no funcionase.
Una red local se puede llevar la mayor parte del tiempo del administrador de
sistemas si no sabe manejarla. Por lo que, si acaba de empezar en la administracin
de sistemas, necesitar aprender cmo instalar, configurar y mantener los servicios
de una red local. Para la primera toma de contacto, eche un vistazo a la edicin ms
reciente del libro "Linux Network Administrator's Cuide Terry Dawson", (O'Reilly).
Tanto si posee conocimientos bsicos como usuario de Linux, como si nunca ha odo
hablar sobre los temas de este captulo, le aseguramos que son muy interesantes.
En este captulo,exploraremos sistemas de archivos distribuidos, como
los
configurar los servicios de DHCP y de pasarela (incluyendo el routing entre la
LAN e Internet), Jos sistemas de impresin corporativos y la gestin de usuario.
Los servicios de correo electrnico local, tambin estn bajo el paraguas de las
LAN. Pero ya cubrimos esos aspectos en captulos anteriores. Usaremos la distri-
bucin Fedora Core para este captulo. Red Hat patrocina el proyecto Fedora y
normalmente lo usa para probar la prxima distribucin empresarial estable.
Fedora no es la versin ms estable de Red Hat, pero s es razonablemente estable
y robusta. Red Hat ofrece paquetes nativos de muchas herramientas para Fedora,
dejando a Fedora en la vanguardia de las distribuciones libres de Linux, que pue-
204 Servicios de red de rea loca; Servicios de red de rea loca! 205
den usarse para uso comercial. Si no le gusta el modelo de Red Hat, puede aplicar Hoy en da, muchos sitios almacenan sus usuarios en archivos crticos en
el material de este captulo a otras distribuciones de Linux. Le sugerimos que servidores centrales, que controlan los permisos de acceso a los archivos. Habla-
profundice en este material: necesitar ponerlo en prctica en un entorno de remos sobre gestin de usuarios ms tarde en este mismo captulo.
trabajo, adems no encontrar este material en otro sitio.
un investigador de IBM, Barry Feigenbaum, convirti un sistema de archivos Para usar una cita comn, "Una descripcin ms a fondo de este tema sobrepasa
DOS en uno distribuido. Sus esfuerzos ayudaron a crear el protocolo de aplica- el mbito de este libro". Actualmente, no tenemos una razn para duplicar el
cin Server Message Block (SMB). La era de los administradores de sistemas y de excelente material que ya est disponible. Sin embargo, queremos describir Sam-
los ingenieros de red haba comenzado. ba con suficiente detalle para hacer funcional su entorno. Afortunadamente, la
Los sistemas de archivos distribuidos permiten a los usuarios abrir, leer y es- mayora de las distribuciones ofrecen interfaces grficas muy sencillas que per-
cribir archivos que estaban almacenados en otros ordenadores distintos al suyo. miten administrar Samba, describiremos algunas de ellas aqu.
En algunos entornos, un nico ordenador de altas prestaciones almacena los ar- Algunas funciones principales de las redes CIFS (sobre todo la forma en que
chivos, y los usuarios acceden a ellos a travs de una IAN; el ordenador central los sistemas se buscan unos a otros) tienen lugar en controladores de dominio:
puede incluso almacenar los directorios personales de los usuarios, por lo que servidores que ofrecen archivos, impresoras y varas operaciones de control.
todo el trabajo se almacena en l. En otros entornos, los usuarios almacenan ar- Samba puede integrar mquinas Linux en redes de Microsoft como servidores
chivos en sus PC, pero permiten a los otros usuarios acceder a estos archivos. Los de archivo e impresoras, controladores de dominio o miembros de un grupo de
dos entornos pueden combinarse. A esta prctica se la suele conocer como trabajo.
comparticin de archivos, y a los directorios (o carpetas) a los que los usuarios La ltima versin de Samba puede operar con el Active Directory de Microsoft .
pueden acceder desde mquinas remotas se les conoce como directorios comparti- Samba combina LDAP con funciones como un servidor de autentifcacin robus-
dos. Los PC se convirtieron en los protagonistas de los negocios a finales de la ta, sustituyendo tanto a los controladores de dominio de Microsoft NT como a
dcada de 1980, y las redes de rea local se dieron a conocer a medida que los PC los servidores Active Directory.
evolucionaban y la gente se dio cuenta de que necesitaba compartir sus recursos. Samba tambin puede desempear un papel de compartidor de archivos en
Intente imaginar qu supuso la introduccin de la LAN para un grupo de entornos ms simples, donde los miembros de pequeas oficinas o departamen-
usuarios que nunca antes haba trabajado en red. De repente, los compaeros de tos de una gran organizacin usan redes punto a punto. Los usuarios de escrito-
trabajo podan compartir documentos, imprimir en impresoras que no estaban rio pueden compartir sus impresoras y archivos con otros sin que stos tengan
en su despacho y responder a correos enviados por gente de su oficina, de su que autentificarse. Si funciones sensibles como contabilidad financiera o almace-
campus o de pas. Todo esto supuso una verdadera revolucin. namiento de personal se gestionan en una mquina, pueden implantarse polti-
Servicios de red de rea loca!
Servicios de red de rea local
cas de seguridad que sirvan de escudo para otros usuarios sin comprometer la
En la parte derecha de la pantalla en la figura 8.1 destacan los directorios
disponibilidad de los recursos de la red punto a punto. compartidos del nodo llamado Dallas, que es un sistema Windows XE Tambin
Ahora, echaremos un vistazo a las redes Linux/Windows puede ver el archivo de un procesador de textos llamado xp_network_setup sxw, .
3/ veremos cmo
puede configurar Samba para sus usuarios de escritorio. que se ha guardado en el formato nativo del OpenOffice Writer (Versin 1).
Fue difcil configurar la red? Aparte del cableado estndar, las conexiones
Ethernet y la instalacin del cortafuegos y del modem, el sistema se instala por s
solo.Hemos seguido los procedimientos estndar para Windows 98. Los siste-
mas usan DHCP para obtener sus direcciones 1P, servidores DNS y la direccin
La figura 8.1 representa una red y puede verse desde un sistema Linux (la hasta la pasarela. El router ofrece servicios DHCP y una direccin privada de
distribucin Xandros, que es un entorno Linux de escritorio adecuado para entor- Internet usando una red de clase C (desde 192.168.0.0 hasta 192.168.0.255).
nos corporativos). DHCP en la siguiente seccin.)
(Describiremos
La vista de rbol de la parte izquierda de la pantalla muestra cuatro equipos Windows han establecido la configuracin de la red
Una vez que los sistemas
llamados Athlon, Atlanta, Dallas y Dell. Dallas ofrece una impresora, junto con haga clic con el botn derecho del ratn sobre el
y pueden conectarse a Internet,
una impresora. Uno de
varios directorios, a los otros sistemas; Dell tambin aloja
icono Mis sitios de red, seleccione Propiedades y cambie las direcciones dinmi-
los otrosordenadores ejecuta Windows XV, y los otros dos ejecutan Windows 98.
cas por estticas. Esto permite a los ordenadores actuar como servidores de im-
Linux los agrupa a todos por igual. El sistema Linux hace lo mismo que un siste- presin y ofrecer acceso compartido a Internet.
ma Windows con la opcin Mi entorno de red o Mis sitios de red. Configurar sistemas Windows XP es ligeramente ms complicado, puesto que
XP y Windows 98 son incompatibles entre s. Para asegurarse de que se entien-
den, active el Simple FileSharing accediendo al Panel de Control de Windows XP y
M'.htvo CtfOM P.iiv'tHw MWKrtTiW/tt.*# Ayi.rT'i
con Windows 98. Al responder que s se permite crear un disquete que podra-
mos usar para instalar los protocolos de Windows XP en ordenadores con Windows
MAM*
98. Este proceso actualiza los sistemas ms viejos a protocolos ms nuevos, ofre-
Luw C-tormol nn
< 192 168 i. 180)
. .
Xi
Necesita nstaJar Sarfi&a o NFS p
Puede Instalar estas wramfeBte
y Samfes para compartir crpete
:v NFS para compartir carpetas c
X giost. 4 &9P P:
.
Oft!tpi:iQ!> v:}
Osa VV-.
:
:
-
SMB i:.*! ...
oimmi DHCP soluciona estos problemas asignando direcciones IP a medida que cada
:mn sistema de la LAN arranca. El servidor DHCP asegura que todas las direcciones IP
vv'JS .
Coroomaiio son nicas. El servicio necesita una pequea intervencin humana relativa a la
asignacin y al mantenimiento de las direcciones IR Los administradores pueden
:
'
'
:
feciur.
: ;'{:''|
Osai':ose:
'
Profundizaremos un poco ms en aspectos de Samba ms adelante en este Para comenzar con DHCIJ primero necesita instalar el servidor DHCP. Puesto
mismo captulo. que este captulo se basa en Fedora, puede instalar el paquete RPM con Yum o
Servicios de red de rea ocai Servicios de red de rea loca!
te ejemplo es tpico. La sintaxis usa almohadillas (#) para los comentarios: cin IP es la misma en las dos lneas, puesto que es una prctica comn hacerlo as.
ddns--update-style interim; Un servidor simple con dos tarjetas de red a menudo acta como pasarela de
ignore client-updates; una red de rea local. Una tarjeta, representada por un nombre de dispositivo
como ethO, tiene una direccin en Internet, mientras que la otra tarjeta (supon-
subnet 192.168.1.0 netmask 255.255.255.0 { gamos que es ethl) tiene una direccin en una red privada. Cuando el reenvo de
# default gateway paquetes y el cortafuegos iptables estn activados, cualquier servidor Linux pue-
option routers 192.168.1.1; de actuar como pasarela/cortafuegos. En este caso, tambin se puede activar BIND
option subnet-mask 255.255.255.0,- en modo cach para que funcion como el servidor DNS de la red.
Las ltimas dos lneas especifican la cantidad de tiempo que un cliente puede
# -- option nis-domain "domain.org";
# -- option domain-name "domain.org"; mantener la direccin, se mide en segundos.
option domain-name-servers 192.168.1.1; En nuestro archivo de configuracin DHCP, tambin hemos aadido una clu-
--
sula para especificar la direccin esttica de un servidor DNS corporativo.
# option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1; address
# we want the nameserver to appear at a fixed
# option netbios -ame -servers 192.168.1.1; host ns {
# --- Selects point-to-point node (default is hybrid) Don't change Chis .
next- server serverl centralsof t .org;
.
# option netbios-node-type 2;
f ixed-address 70.253.158.42;}
# -- range dynamic-bootp 192.168.0.128 192.168.0.254;
default- lease-time 21600;
En la prxima seccin describiremos cmo usar dhcpd para asignar direccio-
max-lease-time 43200;
nes P estticas basadas en la direccin MAC de la tarjeta de red del cliente. Pero
# we want the nameserver to appear at a fixed address antes de hacer eso, veamos una versin sencilla de /etc/dhcpd. conf
host ns {
Iniciando el servicio DHCP permite especificar direcciones IP estticas para sistemas particulares en
dhcp.conf. Vamos a hacerlo. Primero, configure la subred, la direccin de
Algunos servicios DHCP necesitan un archivo dhcpd.leases. Use el comando broadeast y los routers:
touch para crear un archivo vaco en el mismo directorio que el archivo
dhcpd.conf subnet 192.168.1.0 netmask 255 255 2S5 . . .
[root@host 2 ~3#
host laser-printer {
Tambin puede comprobar si el proceso DHCP se est ejecutando con el si-
hardware ethernet 08 00 2b 4c 59 23
: : : : :
f ixed-address 192.168.1.10;
guiente comando (si el servido se est ejecutando, se mostrar una lnea con las
}
estadsticas del proceso):
hostl.centralsoft.com {
# ps aux grep dhcpd
|
hardware ethernet 01 0 cO 2 d 8c 33
: : : :
root 9028 0.0 0.0 2552 636 Ss 09:40 0:00 /usr/sbin/dhcpd f ixed-address 192.168.1.5;
Cree una clusula de configuracin como esta para cada servidor que necesite
# chkconf ig dhcpd on
# chkconf ig --list una direccin IP esttica y adala al archivo de configuracin.
.... f rom the list
dhcpd 0 off :lsoff 2:on 3:on 4 : on 5 : on 6:off
Al igual que sucede con los otros servicios de Linux, tendr que reiniciar el
A finales de995, Stcve Deering y Robert Hinden se dieron cuenta de la nece-
1
demonio DHCP siempre que haga cambios en los archivos de configuracin. Pue-
sidad de un nuevo protocolo de direccionamiento para Internet. Su primera espe-
de establecer otras opciones en el archivo dhcpd conf de manera global o para
cificacin de IPv apareci en 1995, en el IETF Request Ror Comments (RFC) 1883;
.
el cliente de un equipo o para una subred. Esto quiere decir que puede
establecer la segunda apareci en 1998, en el RFC 2460. Deering y Hinden argumentaban
una configuracin por defecto para su red, luego sobrescribirla para un cierto
y lo que mucha gente ya saba: que el espacio de direcciones de !Pv4 de 32 bits iba
grupo de mquinas e incluso para mquinas individuales. Aqu hay un ejemplo
a limitar el crecimiento explosivo de Internet.
de una seccin de configuracin global en la parte de arriba del archivo
Algunos administradores de sistemas se han dado cuenta de que Pv y sus
dhcpd. conf:
mtodos para asignar direcciones P han empezado a ganar popularidad, Aun-
option doraain ame "host2.centralsoft.org"; que mucha gente duda de IPv, argumentando que es innecesario o que en nun-
ca se va a imponer en la prctica real, hay muchas aplicaciones y muchos entornos
que estn girando en esta direccin.
Las estaciones de trabajo suelen funcionar bien con direcciones dinmicas (es Nota: Una descripcin exhaustiva est, de nuevo, fuera del alcance de este
decir, direcciones que pueden cambiar peridicamente o despus de reiniciar), libro; para ms informacin sobre el protocolo IPv y su demonio, as como
pero los servidores normalmente necesitan direcciones estticas, por lo que sus para saber cmo obtener direcciones Pv pblicas, tendr que buscar en
otros sitios.
direcciones no cambian mientras estn atendiendo a un cliente. Por ello, DHCP
Servicios de red de rea local Servicios de red de rea local
Las direcciones Pv a menudo incluyen la direccin hardware de la tarjeta de como iptables. Tambin hay disponibles otros servicios de pasarela, como el en-
red. Esta propiedad permite a los usuarios de IPv obtener la direccin IP esttica mascaramiento o el Network Address Translation (NAT).
sin necesitar ninguna configuracin en la parte del servidor que soporte estas
En organizaciones pequeas y en redes locales, una pasarela puede implan-
tarse en un nico servidor incluyendo seguridad bsica, un cortafuegos, DHCP,
direcciones. La asignacin automtica de direcciones !Pv6 puede hacerse con la
ayuda del demonio router-advertising radvd. Los usuarios de Fedora pueden insta- DNS cach y servicios de correo. En organizaciones ms grandes, tales servicios
lar el paquete radvd-0.9.1 desde los repositorios Yum. Los usuarios Deban pueden
estn normalmente repartidos por varios servidores, con una zona desmilitari-
instalar el paquete radvd y leer el archivo /usr/share/doc/radvd/
zada (DMZ) actuando como pasarela.
README. Deban.
radvd escucha las peticiones que se hacen al router y enva mensajes tal y
como se describe en el RFC 2461, "Neighbor Discovery for IP Versin 6 (IPv)".
En seguridad informtica, se conoce con el trmino zona desmilitarizada a
Los equipos pueden configurar automticamente sus direcciones
y escoger sus una red perimetral, que es una subred o una red situada entre la red interna e
routers por defecto basndose en estos mensajes.
Internet. Por ejemplo, su red privada debera usar una red privada del tipo
radvd soporta un protocolo sencillo. Su instalacin tambin es sencilla. Un 192.168.1.0, la DMZ 10.0.0.0 y el bloque pblico de Internet 70.253.158.0.
ejemplo de configuracin para el archivo /etc/radvd. conf sera este:
Las DMZ se usan para contener servidores que necesitan ser accesibles desde
interface ethO fuera, tales como servidores de correo, servidores Web o servidores de DNS. Las
{
conexiones desde Internet a la DMZ suelen controlarse usando la funcin Port
AdvSendAdvert on;
prefix 0 70 IfOQ 96
: : : : /64
Address Transa tion (PAT).
:
es pensar que es una entidad de red que ofrece una nica entrada tes lneas:
y una nica
salida hacia Internet. El bastin host ayuda a evitar que se comprometa la segu-
0NB00T=yes
ridad de una red ofreciendo una barrera entre las reas pblica
y privada. Nos USERCTL=no
referiremos a los servidos que ofrece como servicios de pasarela. IPV6INIT-HO
PEERDNS=yes
Los administradores de sistemas Linux implantan servidos de pasarela usan-
GATEWAY=7 0 .253.158.46
do una combinacin de reenvo de paquetes y reglas de cortafuegos conocidas TYPE=Ethernet
Servicios de red de rea local Servicios de red de rea loca
DEVICE=ethO
HWADDR=00 04 61 43 75 ee ddn s - upda t e - s t y 1 e interim;
: : : :
BOOTPROTO=none
def ault- lease-time 600;
NETMASK=25S .255.255.248
max-lease- time 7200;
IPADDR=70 .253 158 .43 .
USERCTL=no
TYPE=Ethernet
DEVICE=ethl
HWADDR=00 13 46 e6 e5 83
: : : : :
BOOTPROTO=none
NETMASK=255 255 255 . . . Esta seccin cubre el uso de productos que son combinacin de pasarela y
I PADDR= 192.168.1.1
cortafuego y que ofrecen conjuntos de mltiples funcionalidades. Existen varios
La informacin de estos parmetros de configuracin puede encontrarse en el paquetes gratuitos como Firestarter, IPCop, Netfilter y Shorewall. Ver como en
archivo sysconfig.txt, que encontrar en /usr/share/doc/initscripts- Linux tambin se menciona Smoothwall y ClarkConnect, pero son
la literatura
7.93.7. Con las tarjetas de red configuradas, necesitar asegurarse de que ha productos comerciales que instalan una distribucin Linux entera, no aplicacio-
instalado iptables. Debera ver el siguiente resultado: nes independientes.
Para su uso correcto en este captulo, hemos elegido Firestarter. No obstante,
[roothost2 devces]# rpm -q iptables
puede que quiera echarle un vistazo a Shorewall, una utilidad de configuracin
iptables- 1 3 5-1 . . .
[root@host 2 devces]# para Netfilter (una herramienta de lnea de comandos). Puede descargar
Firestarter desde los repositorios de Fedora. Nuestra instalacin necesita el si-
Si no tiene iptables instalado, instlelo ahora y cargue los mdulos. guiente paquete:
Software, ubicado en el directorio por encima del men Aplicaciones [root@host2 ~]#
en el
panel GNOME. Tambin carga mdulos del kernel como parte del
proceso
de instalacin. El asistente para Firestarter (figura 8.5) se lanza cuando un administrador
inicia el programa por primera vez.Puede relanzar el asistente desde el men del
Luego ejecute: cortafuegos en la interfaz principal, as como cambiar las opciones desde la op-
cin Preferencias.
# iptables -t nat -A POSTROTING ~o ethO -j MASQUERADE
# Service iptables save Despus de la pantalla de bienvenida inicial, habr una serie de pantallas de
# echo 1 > /proc/sys/net/ipv4/ip_forward configuracin, comenzando por la pantalla de configuracin del dispositivo de
red (figura 8.6), que puede configurar tarjetas de red duales.
Ahora edite / etc/ sysctl conf, cambiando net ipv4 ip_ f orward =
0 La funcin principal de Firestarter es la de compartir conexiones. Sin embar-
. . .
por l para mantener esto activo tras reimciar. Puede hacer que el sistema
relea / go, desde que usa NAT, funciona corno una pasarela, por lo que los PC de una
etc/ sysctl conf tecleando:
.
LAN es como si fueran una nica mquina con una nica direccin IP para
# sysctl -p Internet. Esto es evidente, por ejemplo, en la pantalla de preferencias mostrada
en la figura 8.7. Fjese en que la descripcin del primer dispositivo se refiere a un
Finalmente, si tiene una pequea organizacin, puede aadir DHCP segunda descripcin se refiere a una
al servi- "Dispositivo de red conectado a Internet" y la
dor usando una versin sencilla de dhcpd. conf
"Red local conectada a un dispositivo".
Servicios de red de rea focal Servicios de red de rea local
is wt.yn
Policy '
Detectad devisis);:! Ethernet devisa (ethoii i !v.
Firewail
Detectad devsete };
Ethernet devics (ethFJij
,
ICMP Ftering j
r.wws
v DHCP server defails
O Kaep existrng DHCP confijurahon
Figura 8.5. Asistente para el cortafuegos Fircstarter. f Oeste rew DHCP conhgorat en.
lovwft&t P acoros to assig-- |
J.r.8 .lC'J
Picase select your Interne! connected network rievica from the drop-down
llst of available duvcies,
Figura 8.7. Pantalla de preferencias para Firestarter.
Detecten deyiee(s)- Ethernet devise (etho) I
Tip )f you use mdem the device ame is likoly pppO. If you heve a tobl mdem or o
DSl onnectiori. choose etht! Choose ppp) rF you know your cable or DSl. operator uses
the PPPoE' pinteen!. El archivo resolv conf . de la pasarela contiene la configuracin DHCP de las
Start the nrewall on dial out mquinas client es, por lo que Firestarter lee el archivo y coloca las direcciones del
IP address is assmned va DHCP servidor DNS en dhcpd conf. .
# DHCP conf iguration generated by Firestarter alguien intenta entrar mediante ssh por el puerto 22 usando un ataque de dic-
ddns-update-style interim; cionario, simplemente puede cerrar el puerto con Firestarter.
ignore ciient -updates
El icono de Firestarter se vuelve rojo cuando detecta algn riesgo potencial.
subnet 192.168.1.0 netmask 255.255.255.0 { Fjese en el mensaje de la figura 8.10: "Detectado intento de conexin..." Merece
option routers 192.168.1.1; la pena investigarlo.
option subnet-mask 255.255.255.0;
option domain-name- server s 70.253.158.42, 70.253.158.45, 151.164.1.8;
La tercera pestaa de la interfaz principal permite definir las polticas para los
option ip-forwarding off; servicios que se deben permitir y los que no. Por ejemplo, permitimos conexiones
range dynamic-bootp 192.168.1.10 192.168.1.254; SSH, por lo que establecemos la poltica de permitir SSH en el puerto 22.
Servicios de red de rea local 221
:
&row8ii a; Eyerr.s Soncy belp-
Claar aeicart
Iver;*.
Bloc.ked Connectlon*
138 Ir 3S$BM8&
jjn 3 12:07 2S 80 192.168.1.34 TCP HTTP
v.- 9 .2 . . 3t 137 192.168.1.34 UDP Samba SMB) SSH |
|
Jan 3 12- 12-.10 . > 132. 168. 1.34 UOP Samba SMB) Tenas i
j
;Un S 12.12
.r S .2 .2 .0 :37 :92 :68 : 34 J.IP Samas tSM3 Figura 8.11. Configuracin de polticas para Firestarter.
jvir 12: 12: 10 Samba
i;
1
!
222 Servicios de red de rea local Servicios de red de rea local
llama y se queja de que su PC necesita ms memoria y un procesador ms rpi- en un navegador y podr ver la interfaz de gestin presentada en la figura 8.12.
do. Por qu? Hay diez personas usando su impresora porque la ha compartido, La interfaz es auto-explicativa, por lo que le dejaremos la exploracin a usted.
Si no tiene familiaridad con CUPS, eche un vistazo a la interfaz de gestin o vaya
y eso hace que todo vaya ms lento.
Cuando usted comprueba al sitio Web http //www cups org/book/ ndex .php y lea el libro.
la puede ver que hay una impresora l-
situacin, :
.
ser que soporta grandes cargas de trabajo en la esquina y que nadie la utiliza.
Por qu nadie la utiliza? Slo hay que investigar un poco para darse cuenta de
que nadie la ha agregado al controlador de dominio.
Lo que esta hipottica ancdota muestra es que usted, como administrador de Ahora consideremos algunos dilemas a hora de imprimir con los que ten-
la
sistemas, necesita preparar una estrategia para gestionar la infraestructura de dr que enfrentarse cada da en entornos empresariales. Casi seguramente se
las impresoras. Esta seccin del captulo le ofrecer una. visin de alto nivel, as encontrar con situaciones donde necesitar compartir impresoras Linux con
Servicios de red de rea loca Servicios de red de rea ocai 225
mquinas Windows. (De hecho, probablemente necesite usar Linux como ser- [printers]
vidor de impresin en una red Windows para ahorrarse el precio de las licen- comment = All Printers
printng = cups
cias.) Tambin puede necesitar compartir impresoras Windows en mquinas
printcap ame - cups
Linux Cmo hacerlo?, echemos un vistazo a cmo los usuarios de Windows
acceden a las impresoras Linux. Bsicamente, necesitar definir un grupo de Su PC Windows ahora puede acceder a las impresoras de la red. Probablemen-
trabajo o un dominio Samba, y necesitar instalar CUPS en su PC Linux. Tam- de impresin de Windows, incluso los drivers que entra-
te necesitar los drivers
bin necesitar configurar CUPS para Samba, que puede hacerse usando el si- ron con su impresora.
guiente comando: En ei siguiente escenario, necesitar permitir a los usuarios Linux que usen las
impresoras conectadas a los servidores Windows. De nuevo, necesitar CLIPS y
# ln -s 'which smbspool' /usr/lib/cups/backend/smb
Samba para hacer esto. En los PC con Windows, comparta las impresoras como lo
hara normalmente: en Windows NT, 2000 y/o XP active la cuenta de invitado y
otorgue permisos a cualquiera que quiera acceder a la impresora compartida. Luego
instale CUPS en el servidor Samba y configrelo como se describi previamente.
Ahora Windows que quiera que estn disponibles en
instale las impresoras de
el Samba con CUPS, usando para ello la interfaz Web.
servidor
Necesitar autentificarse como root En algunos sistemas Linux, es necesario
definir al root como el administrador del sistema CUPS. Puede hacer eso con el
estas pginas web permiten monftarlnr sus impresoras y trabajos asi como restar tareas de admirstracin dal sistema. Haga tlick
comando adduser:
|
I cualquiera de las pestaas de la parte superior o en tos botones de la parte inferior para reatar la tarea correspondiente
~$ su
Paesword:
f
5/ s le pide un nombre de usuario y contrasea, Introduzca su nombre de usuario y su contrasea o el usuario y contrasea de
# adduser cupsys shadow
Adding user 'cupsys' to group 'shadow' . .
CUPS usa el Protocolo Je Impresin de Internet CIPP") como basa para gestionar tos trabajos y colas c
impresin y anade bsqueda de impresoras en red y opciones da mprasidr basadas en archivos de dascripc Luego ya puede autentificarse como root.
de impresora PostScript ("PPD-i pa.-a soporte de impresin dK murcio real
Haga clic en Aadir impresora y luego introduzca el nombre de la impresora
Para controladores de impresoras y asistencia
desde el sistema Windows. Vamos a usar BrotherHL1440 (vase figura 8.13).
Q6QW Roi e CUPS ptfra controladoras oe esoraj y as>strvc^ Luego, introduzca la ubicacin y la descripcin. Cuando llegue a la ventana del
vwv. cups.ffl dispositivo, haga clic en la lista desplegable y seleccione Impresora en Windows
Soporte comw:i y ana versar mejorada Pe CUPS Samada ESP Print pr G estar disponibles en va Samba.
V*v ys*.<;wn
En la siguiente ventana, Dispositivo UR! para, introduzca ia URI del dispositi-
vo. Brotherl-ILl 440-2 est conectada a Philadelphia en Windows 2003, por lo
Figura 8.12. Interfaz de configuracin de CLIPS. que debe introducir el nombre de usuario "guest y el nombre del equipo:
smb //guest@philadelphia/brotherhll440-2
:
Edite / etc/ samba/ smb conf para compartir una impresora en un servidor
.
Samba. En una situacin de la vida real es necesario restringir el acceso a ciertos Llegados a este punto, tiene que seleccionar el driver de la impresora. Tambin
sistemas o usuarios para cada impresora, pero en el siguiente ejemplo el PC Linux debera imprimir una pgina de prueba. En su. cliente Linux, abra la interfaz
compartir todas sus impresoras con cualquier sistema de la red en el que se haya CUPS y podr ver la impresora. Los clientes Linux de la LAN ya pueden usar esta
configurado Samba: impresora.
Servicios de red de rea loca! Servicios de red de rea loca!
.Cfcyt
rechazar nuevos trabajos.
Conexin: fr
i
!
' i .
'
a
Iprm: Elimina un trabajo de la cola. Puede especificar la cola (-P cola) y el
3'Wi'
Hoetoct".
re
identificador del trabajo (obtenido mediante lpstat).
r-ts're; P.- r',r< "<xc' (r-.-.p;
I'ie-no: 9i rcrg Proloco! fep) lpmove: Mueve un trabajo de impresin desde una cola a otra con
LPO/LPR Host or Primer
IPT #\ y un nombre de cola (por ejemplo lpmove queucl-
identificador de trabajo
Poraitel Port #1 (CANON)
Ptireil.il Pon: *1<EPS0N) 46 queue2).
Puede introducir estos comandos usted mismo. Aqu le mostramos un ejem-
plo deuna impresora que hemos configurado usando la interface CUPS:
# Ipc status
B.rotherHL1440 :
printer is on device
queuing is enabled
printing is enabled
no entries
daemon present
Permite varias formas de control sobre las impresoras. Con estado Las distribuciones Linux han cambiado el comportamiento por defecto de los
Ipc: lpc,
puede ver una lista de colas disponibles y el estado de cada una.
comandos adduser/useradd. Puede consultar las pginas de manual para ambos
comandos. Tendr que experimentar cmo se comporta su distribucin. En Fedora,
0
lpstat: Muestra una lista de trabajos en cola de impresin en las impresoras
los dos comandos parecen comportarse igual: ambos aaden una cuenta y crean
del sistema. Puede usar varias opciones para poder modificar la salida de
un directorio de usuario. Si teclea adduser tadelste o useradd tadelste, ambos
este comando.
comandos aadirn al usuario y crearn su directorio personal, pero no le pedi-
Ipq : Muestra el estado de la cola actual o de la cola especificada con la op- rn una contrasea temporal o le harn algunas preguntas estndar que quiz
cin -P. cabra esperar.
Servicios de red de rea loca! Servicios de red de rea local
Eli otras distribuciones, podra ver una salida como esta: La salida indica que el comando passwd ha cambiado la contrasea del usua-
rio, pero no es as; no ha preguntado por la (inexistente) contrasea original.
... # adduser tadelste
Adding user 'tadelste' . .
Como usuario, una vez que se le haya asignado una contrasea, podr cambiar-
Adding new group 'tadelste' (1001) .
la usted mismo:
Adding new user 'tadelste' (1001) wth group 'tadelste'.
Creating home directory /home/tadelste' $ passwd
Copying files from '/etc/skel' Changing password for user tadelste.
Enter new UNIX password: passwdl Changing password for tadelste
Retype new UNIX password: passwdl (current) UNIX password: passwdl
passwd: password updated successfully New UNIX password: passwdl
Changing the user information for tadelste Password unchanged
Enter the new valu, or press ENTER for the default New UNIX password: passwd2
Pul ame (] New User
:
Retype new UNIX password: passwd2
Rootn Number [] :
passwd: all authentication tokens updated successfully,
Work Phone [] 999-555-1212
:
$
Home Phone [] :
Other [] :
Fedora primero verifica que tiene una contrasea (de no ser as, no podr
Is the information correct? [y/N] y autentificarse en el servidor). Tambin verifica que la nueva contrasea que ha
Estas cuentas aseguran que los servicios se ejecutan con privilegios muy alguien ha conseguido acceso sin autorizacin adivinando su contrasea. El co-
restringidos y tienen acceso slo a los archivos necesarios, en caso de que mando passwd -1 es til para estas situaciones.
errores de programacin o intrusos malintencionados los creen e intenten Luego, tiene que decidir qu hacer con los archivos de usuario. Recuerde que
afectar a otras partes del sistema. Normalmente, cuando se instala un hay usuarios que tienen archivos fuera de su directorio personal. El comando
servicio, el proceso de instalacin o el administrador del sistema crea un find puede encontrarlos:
usuario y un grupo con el mismo nombre (postfix, mysql, etc.) y le asig-
# find / -user tadelste
na todos los archivos y directorios controlados por el servicio. A los servi- [root@host2 ~] # find / -user tadelste
dos no se les dan contraseas, ni directorio personal ni Shell, debido a que /home/tadelste
los intrusos podran usarlos. /horae/tadelste/ zshrc .
/home/tadelste/ .bashrc
Como se mencion anteriormente, si est leyendo este libro, debera saber /home/tadelste/ bashjprof ile
.
cmo aadir usuarios, establecer contraseas, etc. Ahora, vamos a fijarnos en /home/tadelste/ .gtkrc
/home/tadelste/ ,bash_logout
los aspectos que un administrador necesita conocer sobre los usuarios desde el
punto de vista de la seguridad. Luego ya puede decidir entre mantener estos archivos o eliminarlo. Si decide
eliminarlos,haga una copia de seguridad por si se necesitaran despus.
Eliminando a un usuario Como seguridad extra, puede cambiar la shel de autentifcacin del usuario
por un valor sin sentido. Simplemente cambie el ltimo campo del archivo passwd
En muchas ocasiones, los empleados duran poco tiempo en sus puestos. Por lo por /bin/false.
que a menos que administre una pequea tienda con una base de empleados esta- Si su organizacin usa sbell seguras como SSH (a menudo se ofrece el Open
ble, necesitar aprender cmo eliminar un usuario despus de que se baya ido. SSHServer junto con Linux) y permite la autentifcacin remota mediante claves
Demasiados administradores de sistemas no comprenden los riesgos que con- RSA o DSA, un usuario puede conseguir acceso al sistema incluso si la contrase-
lleva gestionar usuarios. Los empleados disgustados a menudo suden provocar a est desactivada, esto se debe a que SSH usa claves separadas.
problemas serios para una compaa si mantienen el acceso a la red. Por ejemplo, incluso una vez que haya desactivado la contrasea de Tom
Eliminar a un usuario no es un proceso de un nico paso, involucra muchos Adelstein, l puede coger otro ordenador
y ejecutar el siguiente comando:
archivos de usuarios, buzones de correo, alias de correo, trabajos de impresin,
$ ssh -f -N -L8000 intranet. yourcompany com: 80 my.domain.com
: .
Una vez que todas las trazas del usuario se hayan borrado, puede eliminar al -ssh o - tadelste/ ssh 2 para evitar que el usuario vuelva a conseguir acce-
. .
)
idea seguir una serie preestablecida de pautas para as no olvidar ningn paso; :~/.ssh$ ls
puede hacerse una lista o puede programar un script que lo haga. La primera authorized_keys known_hosts
tarea es desactivar la contrasea de usuario, as se cortar el acceso de manera
ssh$ rm authorized_keys
:~/.ssh$ ls
efectiva. Puede hacer esto con: known_hosts
~/ ssh$
:
# passwd -1 tadelste
.
Algunas veces es necesario desactivartemporalmente una cuenta sin elimi- Asimismo, busque los archivos .shosts y .rhosts en el directorio personal del
narla. Por ejemplo, un usuario tiene una baja por maternidad o se va a un viaje usuario (por ejemplo, tadelste/. shosts y -tadelste/.rhosts). Tambin compr ue-
de 90 das a otro pas. Cuando revise los logs del sistema puede descubrir que be si el usuario tiene algn proceso ejecutndose en el sistema. Tales procesos
Servidos de red de rea loca Servicios de red de rea local
podran servir como puerta trasera y permitiran al usuario acceder a la red. El que son ms fciles de usar. Aunque normalmente descubrir que son menos flexi-
siguiente comando le indica si un usuario tiene procesos ejecutndose: bles que usar la lnea de comandos. Echemos un vistazo a una de estas herramien-
tas, originalmente desarrollada para StISE, se llama YaST2.
A
# ps aux grep -i tadelste
j
El configurado!" del Escritorio Java de Sun se muestra en la figura 8.14. La des-
Algunas otras preguntas que un administrador de sistemas debera hacerse cripcin de las funciones que puede realizar con la herramienta se muestra en el
Captulo 9
(A *
Virtualizacin en la empresa moderna
MI:
mana
apache
ton
asenten
jamet
tclfn
<f!$X
pac he
Wn
daemen
wm
ad
Amanda user
Apache
Wn
asenten
games
/bm/bssh
/biit/teis*
ivssmm
/var/lib/amanda
/vei/www
/b
/sbin
/ust/games
|
i
s'sj
i||l
J
j|c|
gclm i'sbln/notojilfi /var/gdm
S
;
ip ip ip /var/spool/lpd
mar1 man roaw /vsii/spool/ml
mailm an maHrwfi GNU Mailing Usl Mam rtnnrtaise /var/matiman
maulnull meilnuii /oev/nuil A/sr/*pool/inqueue
marcos marcos ,'bin/bash /home/matCD!
mStfl mano /bifrtiasJi /hoBie/mario &
Figura 8.15. Herramienta grfica de gestin de usuarios de Federa. a repasar un rea que empiece a popularizarse dentro
vamos
En este captulo,
de la administracin de sistemas Linux. Hoy en da, la virtualizacin juega un
papel crucial en la consolidacin de los centros de datos, la computacin de alto
rendimiento, el abastecimiento rpido, la continuidad comercial y la gestin de
la carga de trabajo. Las empresas estn viendo que la virtualizacin
puede hacer-
les ahorrar en costes, los analistas estn notando que la tecnologa est cam-
y
biando el paisaje de los negocios.
La virtualizacin es un concepto que ha ganado popularidad gradas a la exitosa
compaa VMware (http //www vmware com) y el proyecto de cdigo abierto
:
. .
mquina que ejecuta varios ncleos (que algunas veces son el mismo y otras
veces pertenecen a diferentes sistemas operativos) y encima una capa muy fina
de software que gestiona el acceso al hardware. Cada ncleo se llama
invitado y
Por qu la virtuaizacin es tan popular Buena parte de la culpa la tienen las normas del mercado, que provoca que los
gastos se incrementen: tiene que aumentar su capacidad de almacenamiento para
recuperar documentos, que en muchos casos deber conservar hasta ms de 25 aos.
Para comprender quin est usando la virtuaizacin y el entorno en la que es
De no ser as, sus sucesores no tendrn la tecnologa para generar toda esa
valiosa, debera comprender las necesidades actuales en el mundo de los nego-
informacin, que por otra parte puede ser muy til para abogados o auditores,
cios. Esta seccin ofrece una introduccin antes de comenzar a explicar cmo
por ejemplo.
funciona la virtuaizacin en Linux.
Echemos otro vistazo a los resultados del crecimiento de la informtica:
Todo el campo relacionado con las tecnologas de la informacin ha crecido de
manera exponencial desde que aparecieron los primeros sistemas de archivos dis- Los servidores y las aplicaciones con una nica funcin (normalmente
tribuidos. Las organizaciones han visto cmo sus infraestructuras se expandan llamados "silos") tienen su capacidad infrautilizada.
ao tras ao. Mucha culpa de este crecimiento lo tiene la constante mejora de los Los costes adiciones se incrementan debido a la complejidad del software y
componentes informticos y del software. Pero no todo son ventajas. a la necesidad de manejar grandes cantidades de datos.
Las tecnologas informticas han evolucionado desde la gestin de transac- La necesidad de personal especializado en reas funcionales donde existe
ciones hasta la gestin de los procesos de negocio. Algunas corporaciones estn una carencia de documentacin y grandes niveles de incompetencia.
especializadas en la gestin de recursos humanos, otras en las finanzas y en la 0
La necesidad de guiar y dar soporte a los usuarios y a los administradores
contabilidad, otras lo estn en las manufacturas y en las cadenas de suministro. adems de mantener actualizado el software.
Esta especializacin ha creado una relacin de dependencia entre los centros de Ahora ya puede hacerse una idea de por qu la virtuaizacin empresarial ha
datos y el personal dedicado a las tecnologas de la informacin. ganado popularidad y ha pasado a ser una de las reas donde la tecnologa est
Las redes tradicionales ahora son capaces de capturar y gestionar diferentes cambiando el paisaje de los negocios.
tipos de transacciones que antes no podan, y ha surgido la necesidad de incre- Con las imgenes virtuales, puede fcilmente comprimir los datos junto con
mentar la potencia computacional y por tanto la capacidad de almacenamiento. todos los programas, opciones de configuracin, libreras del sistema operativo y
Este crecimiento tambin ha tenido lugar en la forma de almacenar datos, para otros metadatos que conforman el sistema entero. Restaurar una imagen hace
lo que se ha creado el trmino deslocalizacin de servidores (vase la figura 9.1).
que el sistema vuelva a quedar exactamente igual a como estaba cuando se hizo
la imagen, lo que facilita la reproduccin de los documentos. La virtuaizacin
Iti * i
Sustituye enormes conjuntos de sistemas que apenas se usan por unos
cuantos sistemas mejor utilizados.
Simplifica la administracin, porque separa los ncleos conuna aplica-
aumentando as la seguridad y facilidad de
cin ejecutndose en cada uno,
gestin. Tambin mantiene un entorno en el que los documentos que se
generan mantienen una serie de requisitos.
Reduce el hardware y la complejidad, por lo que las plantillas de personal
pueden ser ms pequeas.
Figura 9.1. Granja de servidores deslocalizados, con un sistema operativo por torre. La virtuaizacin puede ayudar a invertir la tendencia de infrautilizacin
de los servidores.
Vayamos un paso ms all: hay aplicaciones especializadas para campos como
el de la contabilidad
y el de las finanzas que necesitan ejecutarse de manera sepa-
rada, se necesitan pues servidores con una gran disponibilidad y con hardware rendimiento
redundantes para asegurar la continuidad comercial. Esta combinacin de facto-
res ha transformado el paisaje de las TIC en una combinacin de servidores fsi- Linux ha convertido en el sistema operativo preferido para alojar mquinas
se
cos demasiado grande y aislada, y donde muchos recursos estn infrautilizados. virtuales debido a su capacidad para ejecutar y gestionar ciusters y grids de PC.
Virtualizacin en ia empresa moderna Virtuaiizacin en la empresa moderna
Los grandes vendedores de hardware tardaron en comprenderlo, pero una vez hardware fsico requiere mucho tiempo, espacio, dinero y gastos indirectos. Tam-
que se convencieron, vieron en ello un jugoso negocio. Durante varios aos, Linux bin necesitar hacer copias de seguridad y restaurar datos, prever catstrofes y
ha visto como grandes benefactores han contribuido al avance de su tecnologa hacerse con el hardware que mejor se ajusta a su trabajo.
en un loable esfuerzo de desarrollo. Entre estos contribuidores estn IBM, Intel,
Con la virtualizacin Linux, puede hacer dividir un nico servidor fsico en
AMD, Novell, Red Hat, Unisys, Fujitsu y muchos otros. un grupo de varios servidores virtuales. Cada servidor virtual es como si fuera
Por ejemplo, IBM necesitaba un sistema operativo para su iniciativa OpenPovver. un servidor fsico para los administradores de sistemas. Puede crear una instan-
De repente, Linux sac su Big Blue Virtualization Engine en la forma de un cia de servidor separada para cada servicio que quiera ofrecer: correo electrnico,
hipervisor de cdigo abierto. El motor de IBM permite crear y gestionar particio- DNS, servidor Web, etc. Si uno falla, los otros no lo notarn.
nes y asignarles dinmicamente recursos de entrada/salida.
Al dividir el equipo fsico tambin se posibilita la creacin de diferentes confi-
Los desarrolladores del ncleo de Linux han anunciado una nueva tecnologa guraciones para cada servidor virtual, a pesar de que comparten el mismo
multi-hilo (SMT) e hiper-hilo. Linux ahora puede hacer que dos hilos se ejecuten hardware. En un entorno, por ejemplo, liemos creado mquinas virtuales ms
de manera simultnea en el mismo procesador, esta tecnologa es esencial para pequeas (VM) para nuestros servidores DNS y otras ms grandes para el correo
equipos que van a alojar sistemas operativos invitados. Adems, VMware se eje-
y el servidor Web. Esto nos permite repartir la carga de trabajo y mantener el
cuta bien en Linux y ofrece una capa de virtualizacin para otras instancias de mismo hardware. La figura 9.2 le da una idea de lo que puede hacer con un
Linux u otros sistemas operativos. El User Mode Linux (UML) es otro ejemplo de nico servidor fsico.
virtualizacin para Linux.
La versin 2.6 del ncleo de Linux funciona bien con la tecnologa SMT de Servidores virtuales
IBM. Antes de esta versin, Linux no tena una buena planificacin de hilos ni un
buen arbitraje. El ncleo 2.6 solucion este problema e hizo crecer el nmero de
procesadores en los que poda ejecutarse dicho ncleo.
Esto es importante por dos razones. Primero, como equipo que soporta m-
quinas virtuales, Linux tiene que realizar de manera eficiente la gestin de su
hardware. Segundo, como los invitados son independientes del hardware fsico,
tiene que mantener su capacidad de manejar varios procesos a la vez. Hoy en da,
Linux hace ambas cosas de manera extraordinaria. Gestiona el hardware y el
particionamiento virtual y se ejecuta bien en las particiones invitadas gracias a
HP y a IBM.
Si alguna vez se ha preguntado por qu compaas corno XenSource y
Virtuallron han aparecido de la nada, ahora ya lo sabe: debido a sus contribucio- Figura 9.2. Dividiendo un nico servidor fsico en mltiples mquinas virtuales.
nes al hipervisor de cdigo abierto. Al igual que los vendedores de hardware se
percataron de que podan aumentar las ventas de PC y de componentes, los ven-
dedores de software tambin pensaron que podan aumentar sus ventas. Incluso
Microsoft se dio cuenta de que necesitaba entrar en el negocio de Linux, por lo Primero hemos hecho la virtualizacin en nuestra red creando una instala-
que contribuy a XenSource y a Virtual ron. cin mnima de Deban en VM. Una vez que hemos cubierto nuestras necesida-
des, la hemos comprimido y la hemos grabado en un CD. Luego, hemos
configurado nuestras mquinas virtuales adicionales usando VMware con dis-
tintas configuraciones y hemos copiado la imagen comprimida en cada directo-
Incluso a pequea escala, su organizacin se beneficiar de separar el correo rio especificndolo a VM.
electrnico, DNS, servidores Web y directorios, pasarelas y bases de datos. Colo- Tambin hemos configurado las mquinas virtuales Xen usando Fedora con
car cada uno de estos servicios en un nico servidor asegura que si un servidor se instalaciones mnimas. Luego, hemos aadido ios componentes que necesitba-
cae, no cae tambin la infraestructura entera. Pero separar los servidos dd mos para cada servido que queramos ofrecer. Por ejemplo, nuestro servidor DNS
Virtuaiizadn en la empresa moderna Virtuaiizadn en la empresa moderna
primario se ejecuta en una mquina virtual Xen, mientras nuestros servidores Estamos usando Fedora Core 5 (FC5) como el sistema operativo que aloja Xen,
de correo electrnico y de pginas Web se ejecutan en instancias separadas de puesto que soporta Xen 3.0. Preguntemos a Yum (un gestor de paquetes similar
VMware. al apt-get de Deban y al up2date de Red Hat) sobre Xen:
Despus de que tenemos un servidor (por ejemplo de correo) ejecutndose, Arch 386
:
hemos hecho una copia comprimida y la hemos volcado a un CD. De manera Versin: 3.0.2
regular y sistemtica hacemos copias de seguridad de cada servidor volcndolas Release: 3.FC5
Size 1.4 M
a CD o DVD. Tambin hemos intentado mover las imgenes a distribuciones Linux
:
Repo updates
:
distintas y se han ejecutado como esperbamos. Summary: Xen is a virtual machine monitor
Description:
This package contains the Xen hypervisor and Xen tools, needed to
run virtual machines on x86 systems, together with the kernel-xen*
packages. Information on how to use Xen can be found at the Xen
project pages.
Qu decamos que aportaba la virtuaiizadn? Primero, hemos eliminado la
necesidad de varios servidores fsicos. Hemos convertido nuestro sistema opera- virtualisation can be used to run mltiple versions or mltiple
tivo preferido en una imagen, por lo que solo hemos necesitado lanzar el proceso Linux distributions on one system, or to test untrusted applications
in a sandboxed environment. Note that the Xen technology is still
de instalacin una vez. Luego, hemos creado mquinas virtuales y hemos copia- and this RPM has received extremely little testing.
in development ,
do sistemticamente nuestras imgenes virtuales para permitir una recupera- Don' t be surprised if this RPM eats your data, drinks your coffee
cin rpida en caso de que el sistema fallara. or makes fun of you in front of your friends.
La virtualizacin funciona bien para pequeas compaas, a las que permite Mimos a probarlo, pero primero revisemos los requisitos:
Esto parece alentador.
levantar su infraestructura con software libre. Imagine los gastos en licencias
que se han evitado. Ahora, imagine qu tipos de estrategias pueden adoptar
El sistema debe tener por lo menos 256 MB de RAM.
las
grandes compaas usando Linux. 9
Su gestor de arranque debe ser grub.
Llegados a este punto, quizs tenga ganas de aprender a realizar este t rabajo. SELINUX debe ser disable o permissive, pero no enforcing.
Por lo que vamos a empezar por el proceso de instalacin y configuracin de Xen Ejecute el programa system-config-securitylevel o edite /etc/selinux/
y VMware y hacer una demostracin de cmo virtualizar una red de servidores. conf ig que debera ser as:
Si cambia el valor SELNUX por enforcing, necesitar reini'ciar Fedora antes de Ahora ya puede reiniciar. Xen debera iniciarse automticamente, vemoslo:
proceder.
# /usr/sbin/xm list
Este comando instalar
hipervisor X.en, un ncleo Fedora modificado por
el
ame ID Mem(MiB) VCPUs State Time(s)
Xen y llamado dominio 0, adems de varias utilidades: Domain-0 0 880 1 r 20.5
Esto aade xenO como primera eleccin en el archivo /boot /grub/grub conf, .
Xen es procesador, pero necesitar aadir al menos un
ahora quien controla el
pero no como ncleo por defecto:
sistema operativo invitado. Empezaremos instalando Fedora Core 5 como invita-
# grub.conf generated by anaconda do, porque facilita la labor, y luego ofreceremos algunos consejos para otras va-
#
riantes de Linux.
Note that you do not have to rerun grub after making changes to
#
ths file
# NOT ICE You have a /boot part t ion. This means that
: Fedora Core 5
# all kernel and nitrd paths are reltive to /boot/, eg.
# root hd 0 0 ( }
Fedora Core 5 tiene un script de instalacin como invitado de Xen que facilita
# kernel /vmlinuz -versin ro root=/dev/VolGroupOO/LogVolOO el aunque slo instala invitados FC5. El script espera acceder al rbol de
proceso,
initrd /initrd-version. img
instalacin de FC5 va FTP, Web o NFS; por algunas razones, no puede especificar
#
#boot=/dev/hda
def ault=l un directorio o un archivo. Usaremos nuestro DVD de instalacin de K 5 que
timeout=5 serviremos a travs de Apache.
splashimage= (hdO, 0) /grub/splash.xpm.gz
hiddenmenu # mkdir /var/www/html/dvd
title Fedora Core (2 6 17-1 2 1 57_FC5xenO . . . # mount -t iso9660 /dev/dvd /var/www/html/dvd
root (hdO 0 ) # apachectl start
kernel /xen.gz-2 .6.17-1 2157_FC5 .
root hd 0 0 , )
def ault =0
conectar a una consola. Proceda como lo hara normalmente con una instala-
Para hacer que Xen sea el ncleo por defecto, cambie esta lnea: cin de Fedora o de Red Hat. En la pantalla de direccin IP, proporcione al invitado
default=l una direccin distinta que la del equipo, si usa DI-1CP (si escogi dhep="dhcp" en
ei archivo de configuracin de Xen, como se explica en la siguiente
seccin). La
por:
ltima pantalla le preguntar si quiere reiniciar. Desmonte el DVD y extrigalo.
def ault =0 Ahora se reiniciar slo el nuevo sistema invitado, no Xen ni el equipo.
Virlualizacin en a empresa moderna Virtuaizacin en ia empresa moderna
uuid = "bc2cl684-c057-99ea~962b-de44a038bbda"
Xen no sistema operativo invitado automticamente. Necesita intro-
inicia el
bootloader= " /usr/bn/pygrub"
ducir este comando en el equipo:
on reboot = 'restart'
# xm create guestl on crash = 'restart'
guestl)
Llegados a este punto, tendremos dos sistemas operativos (hostl y Esto contiene algunas, pero no todas, de las directivas que el invitado necesi-
funcionando independientemente y viviendo en armona, cada uno con sus pro-
Para probar que ambos ta. Un archivo de configuracin mnimo para el invitado debera quedar as:
pios sistemas de archivos, conexiones de red y memoria.
servidores se estn ejecutando, pruebe estos comandos: 1 . Un nombre nico de dominio invitado:
name="vm01"
# xm list
ame ID Mem(MiB) VCPUs State Timis) 2. Una ruta para la imagen del ncleo del dominio invitado:
Domain-0 0 128 1 r 686.0
14.5 kernel = ',/boot/vmlinuZ"2 .6.12. 6-xenU"
guestl 3 256 1 -b
# xentop 3. Un dispositivo raz para el dominio invitado:
xentop -21:04:38 Xen 3.0-unstable
0 crashed, 0 dying, 0 shutdown
root= " / dev/hdal
2 domains: 1 running, 1 blocked, 0 paused,
1 @ 2532MHz
Mem: 9 8 2 3 3 2 k total, 414900k used, 567432k free CPs :
1488528 80298 0
Nota: La suma de la memoria para todos los invitados de Xen no debe
guestl --b- - 14 0.1 261996 26.7 262144 26.7 1 1
memoria
exceder la fsica, adems hay que tener muy en cuenta que Xen
129 131 0
usa 64 MB.
Para que los dominios de Xen se inicien automticamente, use estos comandos:
5. El espacio en disco para el dominio invitado. Esto est definido en uno o
# /sbin/chkconf ig --level 345 xendomains on
/sbin/service xendomains start
ms dispositivos de bloque, cada uno debe ir entre comillas simples:
#
disk = [ 'stanzal' , 'stanza2' ]
distinto de fC5, necesitar parmetros ('host dev, guest_dev, mode')- host_dev es el rea de
Si quiere instalar un sistema operativo invitado
Xen, que un archivo de texto (actual- almacenamiento del domino tal y como es vista por el equipo. Puede ser:
editar el archivo de configuracin de es
# Automatically generated Xen config file plo, una directiva de disco de ejemplo para dos invitados es:
ame = "guestl" /vserver/
disk= f ile /vserver/images/vmOl img, hdal,
S
' :
. w' ,
1
ile :
memory = "256"
images/vrnOl-swap
disk = file /xenguest xvda, w'
[ ' :
, ]
img, hda2 w'
'mac = 00 16 3e 63 c7 76
,
vif = [ : : : : : '
]
Virtualizacin en la empresa moderna Virtualizacin en la empresa moderna
memory = 128
In which directory do you want to insta!! the binary files?
ame = "My Linux"
[/usr/bi.n]
root = "/dev/hdal ro
disk = "f ile /var/xen/mylinux img, hdal w"
[ : . , ]
VMware comienza con varias preguntas como esta,
La instalacin del servidor
Una vez que tiene el archivo de configuracin del invitado, cree que sebasan en informacin relativa al sistema operativo y a los archivos de
un invitado
de Xen con este comando: configuracin capturada por el script de instalacin.
Durante el proceso de instalacin, el script le pedir que acepte la licencia del
# xm create -c gues bname
producto VMware. Debera leerla antes de aceptar. Despus de que acepte la li-
donde guest_name puede ser una ruta completa o un nombre de archivo cencia, VMware verifica el compilador y que los archivos de cabecera de su siste-
relativo (en cuyo caso Xen lo coloca en / etc/xen/guest_name). Xen crear el ma sean compatibles unos con otros para obtener el programa VMware binario
dominio invitado e intentar arrancarlo desde el dispositivo o el archivo dado. La usando el compilador. Ver mensajes del tipo:
opcin ~c adjunta una consola al dominio al iniciarse, por lo que puede respon- The path "/usr/lib/vmware" does not exist currently. This program is going
der a las preguntas que el proceso de instalacin le haga. to create it, including needed parent directories. Is this what you want?
[yes]
make 1] [ :
' . .
cdigo de VMware y su comunidad de iniciativas de cdigo abierto en ese mismo /tmp/vmware-conf igO/vmnet -only /bridge.
CC [M]
sitio Web. CC [M] / tmp/ vmware -conf igO/vmnet -only /proefs
.
Como mencionamos anteriormente, arranques como el de XenSource CC [M] /tmp/vmware-conf igO/vmnet -only/smac_compat.
y Vir- SHIPPED /tmp/vmware-conf igO/vmnet -only/ smac_linux x386
. .
tual ron se benefician del soporte que el ncleo de Linux ofrece a la tecnologa de
LD [M] /tmp/vmware-conf igO/vmnet -only/vmnet .o
Virualizacin en la empresa moderna Virtualizacin en ia empresa moderna
MODPOST
Despus de que nos hemos conectado al host remoto, VMware nos ha pre-
Before rurming VMware Server for the first time, you need to configure it by
invoking the following command: '/usr/bin/vmware-config.pl Do you want
guntado si queramos crear una mquina virtual. Debido a que ya hemos creado
1
'
.
!
Vrtualizacin en a empresa moderna Virtuaiizacin en la empresa moderna
Hemos sido capaces de iniciar Deban. Cuando d sistema ha arrancado, Deban de mquinas virtuales y la hemos descomprimido como hicimos con
al directorio
ha empezado a ejecutar las ltimas fases del script de instalacin. Hemos permi-
Deban. Luego, la hemos aadido a travs del men Archivo. La figura 9.8 mues-
tido que se ejecutase, y en un breve lapso de tiempo hemos obtenido la pantalla
tra una pregunta sobre un identificador nico, puede mantener el existente.
de la figura 9.5.
Eift Vtew Hx>t m Pow*r 5n<iphol Windows
28 !
i> : l\1, .11 IiH
Pp, debJmv y\i i i ;
X
?d.sbian- Silla Q Kfc
: piZ?. 8 .i.;-
m:jiSWSjikis'.''.
w
* iactetsi
#,#).
fxf.
fi.-
:
Sf .!toii:.;S! l
hsmc':X:
OSli -fWS '
S7
.
; r?(< :s t ?. ;
j-
'-
1 i. i qs,
# y.-.
P Hit.'-.8 w; p i
liMriili^/jiijs -5V:p !
i :
s'.'S i'jMijj;
:< iSiirf :t \ lsii^i^ 933' 938 '.?? v
'
pp:
ife iiSfi.ft': ;b!38: 3i;t v.;: Xieij .
:-A totMs-S 1
Sinoj'si
'
?!:#!
:
s.-.|'i'jV<jiri' . .
.;
<3 j yW ; i %7 7 : :
tfsiVS;:'
, ti :3B. ;
; i
7, 7 \j{ ;;
v. K! fc'ito' AvjsTiteg.; :
tfo 7 7
:
tjjrtffiiiaJ.'fl %S<p:3B5 'iji':'
'
#(}" i'j'ift :
"
''."lil.SBifciS.- <f .
: imkx.Vj; M.
j>;
ti H) V
7
Figura 9.5. El script de instalacin de Deban se ejecuta bajo una mquina virtual remota. j
Para nuestra tarea, final, es decir instalar otro sistema operativo, hemos des-
cargado Federa Core 5 desde el sitio de la comunidad VMware, la hemos copiado
Figura 9.7. Sumario de consola de nuestra imagen Deban invitada.
252 Virtualizacin en ia empresa moderna Virtualizacin en la empresa moderna
ta en varios lenguajes de script: bash, Perl, PHP y Python (las tres P estn asociadas # /bin/bash
!
con la P del acrnimo que mencionamos en captulos anteriores). Puede comparar echo helio world
echo bonjour monde
su estilo, sintaxis, expresividad, facilidad de uso y aplicabilidad a diferentes domi-
nios. No todos ios problemas sern tan pequeos, pero pueden servir de ejemplo. Este archivo no es un script que funcione todava. Le ensearemos la forma
de ejecutarlo en la siguiente seccin, pero antes necesitamos explicar algunas
reglas sintcticas bsicas.
Comenzando eon bash |
La Shell /bin/bash interpretar el script lnea por lnea. Espera que cada co-
mando est en una nica lnea, pero si termina una lnea con una barra inclina-
Muchos sistemas operativos ofrecan interfaces de lnea de comandos en los da (\), bash tratar la siguiente lnea como una continuacin:
primeros y normalmente
das, ofrecan la posibilidad de almacenar los comandos
en archivos de texto y ejecutarlos como programas de procesamiento por lotes t/bin/bash
!
(un concepto que penetr muy bien en aquel tiempo). Pronto se hizo normal la echo \
hel.lo\
forma de enviar parmetros a los scripts y de hacer que cambiaran su compor- j
world
tamiento en funcin de diferentes condiciones. La Shell de Unix hizo grandes
avances en cuanto a flexibilidad se refiere, convirtindose en un verdadero len- Esto supone una buena forma de hacer las lneas complejas ms legibles.
guaje de programacin. La Shell ignora las lneas con espacios en blanco (espacios, tabulaciones, l-
Nuestros ejemplos interactivos mostrarn un ejemplo de shell prompt, un co- neas vacas). Tambin ignora todo lo que vaya desde el carcter # hasta el final
mando con parmetros opcionales y la salida del comando. Aqu se lo mostramos: de la lnea. Cuando bash lee la segunda lnea del script (echo helio world), trata
la primera palabra (echo) como si fuera el comando a ejecutar y el resto de pala-
adminOserverl ~$ date:
bras (helio world) como los parmet ros. El comando echo slo copia los argu-
Thu Aug 24 09:16:56 CDT 2006
mentos a la salida. La tercera lnea tambin lee otro comando echo, pero con
Mostraremos el contenido de un shell script como este: distintos parmetros.
Para ver qu hay en el archivo helio, puede imprimir todo su contenido en la
# /bin/bash
!
pantalla:
contents of script...
resto de la primera lnea es el nombre del comando que ejecutar como proceso el echo helio world
resto del script. (Si el carcter # no va seguido por i, se interpretar como un echo bonjour monde
comentario que continua hasta el final de la lnea). Este truco le permite usar
cualquier programa para interpretar sus scripts. Si el programa es una Shell
tradicional como sh o bash, el archivo se Shell script. Al final del captulo le
mostraremos scripts para Perl, PHP y Python. El archivo helio puede ejecutarse lanzando el comando bash con el argument
helio:
Nota: Microsoft Windows usa la extensin del archivo para definir el tipo
admin@serverl. : ~$ bash helio
de archivo y qu intrprete debera ejecutarlo. Si cambia la extensin, deja helio world
de funcionar, fin Linux, los nombres de los archivos no tienen nada que ver bon j our monde
con la ejecucin (aunque suelen seguirse algunas convenciones tiles por admn@serverl ~$
:
otras razones).
Ahora intentemos ejecutar helio sin poner bash delante:
Use su editor de texto favorito (o incluso uno que no le guste) para crear este admin@serverl ~$ helio
:
archivo de tres lneas y gurdelo en un archivo llamado helio: bash: helio: command not found
258 Scripting Scripting 259
Por qu faash no puede encontrarlo? Cuando especifica un comando, Linux admin@serverl ~$ chmod u=rx,g=rx helio
:
busca en una lista de directorios la ruta de un archivo con ese nombre y ejecuta admin@serverl ~$ ls -1 hallo
:
el primero que encuentre. En este caso, helio no estaba en estas listas de directo-
-rwxr-x-- 1 admin admin 50 2006-08-03 15:44 helio
rios. Si le indica al sistema en qu directorio est helio, lo ejecutar. La ruta
Para aadirse permisos a s mismo, a su grupo o a los otros de forma rpida,
puede ser absoluta (/home/admin/hello) o relativa { /helio significa que el
.
introduzca:
archivo helio est en este directorio). Describiremos cmo especificar los direc-
torios en su ruta en la prxima seccin, pero antes tenemos que tratar los permi- adminOserverl ~$ chmod +xr helio
:
adminOserverl ~$:
. /hallo
-rw-r--r-- 1 admin admin 48 2006-07-25 13:25 helio
helio world
bonjour monde
Un - indica que la bandera no est activa. El primer -- es
bandera de directo-
la
rio, es una d para los directorios y un - para Luego vienen los per-
los archivos.
misos para el propietario del archivo, luego los del grupo y por ltimo, los de
cualquiera. El propietario (admin) puede leer (r) y escribir (w) el archivo, mien-
tras que el grupo (en este caso tambin se llama admin) y el resto de la gente slo La lista de directorios en la cual bash debera buscar los comandos estn es-
puede leerlo (r-). Nadie puede ejecutar el archivo, puesto que el tercer carcter de pecificados en una variable de entorno llamada PATH. Para ver qu hay en su
cada grupo de tres marca un - en lugar de una x. PATH, introduzca:
Ahora, intentemos ejecutar helio con una ruta relativa:
admin@serverl ~$ echo $PATH
:
admin@serverl ~$ ./helio
:
/bin /usr/bin
:
rioy no es io que quera ejecutar. La correccin del script tambin supone una El nada elegante 2 > es la redireccin de errores. La redireccin de errores pue-
preocupacin. Estamos seguros de que sabe qu hace su script, pero no lo esta- de ser til en procesos largos como compilaciones, por lo que puede revisar cual-
ramos tanto despus de aadir cientos de lneas. quier mensaje de error ms tarde en lugar de buscarlos en la pantalla.
Una prctica comn es poner sus propios script en un directorio como /usr/ Si quiere redirigir la salida estndar y la salida estndar de errores al mismo
local /bin o ~/bin en lugar de un directorio del sistema como /bin, /sbin o / archivo, haga esto:
usr/bn. Para aadir este directorio a su PATH de manera permanente, aada
un lnea como la siguiente al final de su archivo .bashrc: admin serverl : ls -1 > files.txt 2 >&l
admin@serverl ~$ ls
: -1 >& files.txt
La redireccin de E/S y las tuberas son innovaciones Unix que Microsoft y Use > > en lugar de > donde quiera aadir en lugar de sobrescribir.
muchos otros han copiado descaradamente. La Shell le da acceso a estas Slo se suele redirigir la salida estndar. Aqu mostramos un ejemplo que busca
funcionalidades de manera muy intuitiva. los nombres de los archivos en los que est contenida la cadena foo:
Cuando un comando en la consola o en una ventana de texto,
est tecleando
sus dedos son la entrada estndar de comandos y sus ojos leen la salida estndar admin@serverl ~$ ls -1 > files.txt
:
salidas en sustitucin de sus dedos o sus ojos con un archivo. Ejecute el comando
Is con la pantalla como salida estndar
y luego redirjala (con >) a un archivo: El primer paso crea el archivo temporal files txt. El segundo paso lo lee, y
.
tambin un > o < y consigue mucha velocidad. La salida estndar del primer
error, no obstante, debera verlo en la pantalla en lugar del archivo (es decir, por
comando se convierte en la entrada estndar del segundo comando, simplifi-
qu se ha producido el error):
cando nuestros primeros pasos:
adminOserverl ~$ ls ciao > files.txt
:
de sobrescribirlo, use los caracteres (>>): Este comando contar el nmero de veces que la cadena foo aparece en algu-
admin@serverl ~$ ls -1 >> files.txt
:
no de los archivos del directorio.
bin puede redirigir los errores estndares. Aqu se muestra un comando que
Variables
redirige la salida estndar y la salida de errores estndar al mismo tiempo:
bash es un lenguaje de programacin y los lenguajes de programacin tienen
admin@serverl ~$ ls -1
:
> files.txt 2> errors.txt funcionalidades comunes. Una de las ms bsicas es la variable: un smbolo que
262 Scripting Scripting 263
contiene un valor. Las variables bash son cadenas a menos que especifique otro $0 es el nombre del script. La variable $* contiene todos los argumentos
variable
tipo con la sentencia "declare". No necesita declarar o definir variables bash antes como un valor de cadena. Estas variables pueden pasarse junto con los comandos
de usarlas, como sucede en otros muchos lenguajes. que el script ejecuta:
Un nombre de variable es una cadena que comienza con una letra y contiene
admin@serverl ~$ cat files
:
smbolo $ antes del nombre de la variable. Aqu mostramos un shell scrpt que ls -Alv $*
asigna un valor de cadena a la variable hw y luego la imprime: admin@serverl ~$ ./files
:
helio hello2 today
-rwxr-xr-x 1 admin admin 48 2006-07-25 13:25 helio
# /bin/bash
-rwxr-xr-x 1 admin admin 51 2006-07-25 14:45 hello2
!
La variable hw se crea con la asignacin de la lnea 2. En la lnea 3, los conte- La variable especial $$ contiene el ID de proceso actual. Puede usarse para
nidos de la variable hw sustituyen a la referencia $hw. Debido a que bash y otras crear un nombre de archivo temporal nico. Si se estn ejecutando varias copias
en blanco (espacios y tabulaciones) como un separador del mismo script al mismo tiempo, cada una tendr un ID de proceso diferente
shell tratan los espacios y
de parmetros en lugar de cmo parmetros normales, para conservarlos debe tambin un nombre de archivo temporal distinto.
encerrarlos con comillas dobles (") o simples {'). La diferencia es que las varia- Otra variable til es $?, que contiene el valor que devolvi el comando ejecu-
bles shell (y otra sintaxis especial) se expanden con comillas dobles y se tratan tado ms recientemente. Usaremos esto ms tarde en este captulo para compro-
literalmente como comillas simples. Vea la diferencia en la salida de los dos co- bar el xito o el fallo en la ejecucin de un programa desde un script.
mandos echo del siguiente script:
# /bin/bash
!
sobre las comillas si usa el corchete o el doble corchete. Los dobles corchetes ha-
Las variables especial representan parmetros de lnea de comandos. El carc- cen lo mismo que uno slo y un poco ms, por lo que es seguro usar dobles
ter $seguido por n parmetros de la lnea de comandos, empezando por 1. La corchetes con sus expresiones, bash tiene algunos operadores tiles:
)
) :::: ) " " )
Scripting Scripting
if expressionl ; then
(commands)
elif expression2 then
bash est bastante inclinado al tratamiento de texto como comandos, (commands)
parmetros y nombres de archivos. Puede evaluar las expresiones aritmticas
elif expressionN ; then
normales (usando *,/ y otros operadores) pero encerrndolos entre un par
commands
(
de parntesis: ((expresin)). Debido a que muchos caracteres aritmticos -inclu- else (commands)
yendo *, (, y se interpretan de manera especial por parte de la shell, es mejor
)
fi
entrecomillar los parmetros de las shell si se pretende que sean tratados como
La construccin then al final de una lnea tambin puede expresarse como
expresiones matemticas en el script:
;
if expression
# /bin/bash
!
answer=$ $* then
( ( )
bera usarse para sustituir sus valores por otras opciones: USERID= " $1
DETECTED=$ egrep -o "$USERID: " < /etc/passwd
( )
# /bir./bash
!
echo "$USERID is one of us :-)"
a=$l else
b=$ a+2 ( ( )
echo " $USERID is a stranger :-("
echo "$a + 2 = $b" fi
c = $(a*2 ) (
echo $a * 2 = $c" Llame a este script friendf oribe, hgalo ejecutable y ejectelo primero con
adminOserverl ./arithexp 6 una cuenta del sistema (root) y luego con otra cuenta (sasquatch):
6 + 2 = 8
6 * 2 = 12 admin@serverl ~$ /friendorf oe root :
.
sasquatch is a stranger - :
(
adinin@serverl mkdir hello3
:
me slo la cadena que coincide, en lugar de la lnea entera. " ^ USERID:" coincide
con los contenidos de la variable USERID slo si los contenidos de la variable Usando estos mensajes de error, vamos a intentar arreglar el script. Primero,
aparecen al inicio de una lnea y vienen seguidos despus por un punto. La ex- vamos a usar redireccin de E/S para guardar ios resultados en un log y en archi-
presin if est encerrada en corchetes dobles para contenerla, evaluarla y devol- vos de error que podemos revisar cuando tengamos un hueco. Luego, capturare-
}
ver el resultado. La expresin -n " $ { DETECTED " devuelve true si la variable mos el valor del comando rm para generar un mensaje de logro o de fallo. Tambin
shell DETECTED no es una cadena vaca. Finalmente, la variable DETECTES est capturaremos la fecha y la hora actual para incluirlos en el log de salida:
entrecomillada ("$ {DETECTED}") para tratarla como una siguiente cadena. All
admin@serverl -$ cat removefiles
:
donde la sentencia if coge una expresin, puede poner un comando o una se- # /bin/bash
!
cuencia de comandos. Si el ltimo comando de la secuencia tiene xito, la senten- # removefiles deletes either files or directorios
cia if considera que la expresin ha devuelto un valor verdadero. S el ltimo echo "$0 ran at" $(date) >> delete.log
if rm $1 2 >> delete~err.log
comando de la secuencia falla. Se considera que la expresin devolvi un false, y then
se ejecutar la expresin else. Veremos ejemplos en las siguientes secciones. echo "deleted file $1" >> delete.log
elif rmdir $1 2 delete-err.log
then
echo "deleted directory $1" >> delete.log
else
Vamos a seccionar un script que se supone que borra su parmetro (un archi- echo "failed to delete $1" >> delete.log
fi
vo o un directorio) pero tiene algunos problemas:
# /bin/bash
I
distingue entre archivos y directorios. Podemos usar algunos operadores de los
if rm $1 ya mencionados para arreglar estos problemas:
then
echo file $1 deleted admin@serverl cat removefiles
else ff/bin/bash
!
fi then
fi echo "$1 does not exist" >> delete.log
elif f $1 [ ]
Puesto que no hemos entrecomillado el nombre del archivo, la shell dividir Si quiere hacer algo ms de una vez, necesita un bucle, bash tiene tres tipos de
my y file en dos variables $1
y $2. Por lo que debemos intentar mantener my file bucles: for, while yuntil.
en $ 1 El bucle for es amigable y muy potente, tiene esta apariencia general:
mos quitarle las comillas dentro del script para que las comprobaciones y las
eliminaciones funcionen bien: especificada entre do y done para cada elemento de una lista. Cuando los co-
mandos se ejecutan, pueden acceder al elemento actual de la lista a travs de la
admin@serverl ~$ cat removef iles
: variable $arg. La sintaxis puede ser un poco confusa al principio: en la sentencia
# /bin/bash
!
for debe especificar arg sin el smbolo del dlar, pero en los comandos debe
# removefiles delates either files or directories
especificar $arg con dicho smbolo.
echo "$0 ran at $(date) >> delete.log
if [ ! -e "$1" ]
Algunos ejemplos sencillos son:
then
echo "$1 does not exist" >> delete.log admin@serverl ~$ for stooge in moe larry curly
:
elif -f "$1"
[ ]
> do
then > echo $ stooge
echo -n "file $1 " >> delete.log > done
if rm "$1" 2 >> delete-err.log moe
then larry
echo "deleted" >> delete.log curly
else
admin@serverl ~$ for file in *
echo "not deleted" >> delete.log
fi > do
elif -d "$l"
[ ]
> ls -1 $f ile
then > done
270 Scripting Scripting
do
admin@serverl ~$ for file in $(find
:
/ -ame \*.gif) echo -n "Your commmand ($gameover to quit)? "
> do
read cmd
> cp $file /tmp if [[ $cmd == $gameover j) then break; fi ;
gameover="q"
done
while true
[ [ ]
do
Aqu le mostramos un script de ejemplo que usa expresiones aritmticas que echo -n "Your commmand ($gameover to quit)? "
ya se han mencionado para crear un bucle while al estilo C (las sangras no son read cmd
necesarias, pero nos gustan): if [[ $cmd = $gameover ]]; then $cmd; continu; fi
!
.break
# /bin/bash
!
done
MAX=100
((cur=l)) # Treat cur like an integer
while (cur < MAX)
(
do
echo -n "$cur "
(cur+=l) { # Increment as an integer
)
Los shell scripts a menudo se usan para juntar programas. Un ejemplo muy
done comn en Linux es la definicin de tareas cron. cron es el planificador de tareas
estndar de Linux. Si quiere que algo suceda el tercer martes de cada mes a la
El bucle until es el opuesto al while. Itera hasta que la condicin de prueba
1:23, puede hacer que una tarea cron lo haga por usted y as ahorrarse la mal-
sea cierta:
humorada respuesta que obtendra por parte de un ser humano. El demonio cron
until expression comprueba cada minuto si es hora de hacer algo, o si alguna especificacin de
do tarea cron ha cambiado. Puede especificar las tareas cron editando el archivo
stuff crontab. Puede ver el contenido de su crontab, si es que hay algo, de esta forma:
done
admin@serverl ~$ crontab -1
:
Un ejemplo es:
no crontab for admin
# ! /'bin/bash
Para editar su crontab, introduzca:
gameover="q"
until ([ $cmd == $gameover ]]
admin@serverl ~$ crontab -e
:
do
echo -n "Your commmand ($gameover to quit)? "
read cmd Cada lnea de un archivo crontab contiene la especificacin del da/hora y un
if ti $cmd = $gameover ]]; then $cmd; fi
! comando en este formato:
done
minuto hora da_del mes mes da_de_la_s emana comando
Para escapar de un bucle, use break. Vamos a reescribir nuestro ejemplo de
until como un bucle while con un break:
# ! /bin/bash
9 minuto es un valor entre 0 y 59.
gameover-- "q" hora usa de 24 horas es un valor entre 0 23.
el reloj y y
272 Scripting Scripting
* da_del_mes es un valor entre 1 y 31 como realizar clculos aritmticos son ms duras, puesto que el texto necesita
* mes un nmero entre como protegerse de la divisin de palabras y de la expansin mediante *. En shell Scripts
es 1 y 12 o un nombre Febrero.
9
da_de_la_semana es un nmero entre 0 y ms complejos, la pila de parntesis, corchetes y otros smbolos puede llegar a ser
7 (0 o 7 es domingo, 6 es sba-
catica.
do) o un nombre como martes.
En tiempos pasados (cuando tenamos ceros y unos, y podamos sentirnos
8
da del mes y da de ia semana funcionan como una QR, que puede
lo
afortunados por tener unos) los artculos how-to a menudo proporcionaban
provocar sorpresas.
grandes shell Scripts a los usuarios: para descargar y compilar paquetes, hacer
Por ejemplo, si cada campo contiene un 1, cron ejecutar e! comando en
copias de seguridad, etc. Hoy en da, es preferible hacer estas tareas usando len-
Enero, pero tambin los lunes. Normalmente, la lnea crontab contiene un
guajes de script ms avanzados, por varias razones:
solo valor especfico en estos campos.
Con el tiempo, aplicaciones como adduser y apt-get han automatizado
0
En un campo, un valor significa una coincidencia exacta; por ejemplo,
algunas tareas tradicionales de los shell Scripts.
un 1 en el campo mes significa slo Enero.
a Los shell scripts no son fciles ni de ampliar ni de mantener.
s
Un asterisco (*) significa cualquier valor.
* Dos valores separados por un guin indican un rango. Es decir, Los shell scripts son ms lentos.
1 1-12 en
el campo mes significa desde Noviembre hasta Diciembre. La sintaxis Shell induce a errores.
* Para especificar ms de un valor, separe los valores con comas. Una lista Perl inicialmente vino a llenar el hueco para los administradores que busca-
de meses 2, 3, 5-6 significa Febrero, Marzo y desde Mayo hasta Junio. ban herramientas ms productivas, pero ahora PHP le ha arrebatado el nicho
0
Un modificador debe llevar valores y una barra inclinada (/), c indicar Web, y Python ha ganado reputacin y productividad. Escribiremos una aplica-
cuntas unidades se incrementan entre valores. Un valor de mes de */3 cin en cada uno de estos lenguajes, algunos otros como ruby y Tcl tambin
significa cada 3 meses. Un valor para mes de 4-9/2 significa los me- estn disponibles en Linux.
ses 4, 6 y 8. Nuestra aplicacin buscar en el archivo /etc/passwd el nombre, ID de usua-
La shcll ejecuta los comandos, por lo que puede usar las funcionalidades des- rio, tallao cualquier cosa que haya all. Ver cmo abrir un archivo, leer regis-
critas en este captulo. tros, parsear formatos, buscar patrones e imprimir patrones. Luego buscaremos
Algunos ejemplos que usan comandos directos en lugar de formas de evitar parte de este trabajo puesto que sudor !- productividad. Ser
Scripts son:
capaz de aplicar estas tcnicas a otros archivos, como logs o pginas Web. Esto es
5 * * *
rm /tmp/*.gif # elimina todos los archivos GIF cada 5 minutos
* un ejemplo de reutilizacin y seguramente ya lo haya hecho otras veces.
* * *
rm -v / tmp/* gif >> /tmp/gif.log # lo mismo, pero quedando
5 *
. Inventmonos algunos requisitos para nuestras aplicaciones y expresmoslos
registrado en un log
en forma de pseudocdigo:
Cuando cron ejecuta el comando, enva por correo electrnico lasalida estndar
leer una cadena de bsqueda introducida por el usuario
y de errores estndar al propietario del archivo crontab. Para evitar que
la salida
abrir el archivo
el correo se sature con correos, puede redirigir la
salida estndar y la salida de por cada lnea:
errores estndar a otro lugar: parsear los campos (columnas)
buscar la coincidencia entre los campos
command > /dev/null 2>&1 si hay alguna coincidencia
imprimir los otros campos en un formato legible
Luego, restringiremos la bsqueda a las lneas en que el valor del campo uid
es mayor que 500. En nuestro caso, ID de usuario normales empiezan por el
El archivo de contraseas a menudo contiene cuentas estndar del sistema 501, por lo que excluiremos cuentas del sistema y de otros autmatas.
adems de la cuenta de root, cuentas de aplicaciones como Apache y cuentas de En este punto, estaremos ya cansados de los pasos previos, por lo que busca-
usuarios. Aqu mostramos porciones de dicho archivo: remos algunas herramientas que puedan hacer este trabajo por nosotros.
# System
root x 0 0 root /root /bin/bash
: : : : : :
daemon :x: 2:2: daemon /sbin / sbin/nologin : : La mayora de los lenguajes ofrecen libreras de funciones para varias tareas.
Los programas desempean esta funcin para Ja shell, y los codificadores de
# Applications
postgres :x 26 26 PostgreSQL Server /var/l.ib/ pgsql /bin/bash
:
shell Scripts expertos estn familiarizados con la mayora de las utilidades Linux
: : : :
* Group ID (gid).
Pero qu pasa si alf tambin coincide con una cuenta del sistema llamada
0
Nombre completo o descripcin.
gandalf?, o una cadena en algn otro campo? Si queremos restringir la bsque-
Directorio personal.
da al campo nombre para cuentas de usuarios normales (por ejemplo, cuentas
8
Shell.
con ID de usuario mayores que 500), nuestro script va a crecer un poquito.
Estamos interesados en el quinto campo (nombre completo o descripcin). En Si profundizamos un poco en la documentacin bash descubriremos que bash
losantiguos Unix, este campo se llamaba gecos, por razones que estaban obsoletas puede dividir la entrada en caracteres que no sean espacios, usando la variable
incluso entonces. IFS. En la siguiente versin del script, leemos el archivo /etc/passwd lnea por
lnea, dividiendo cada lnea en variables de campos. Si encontramos una coinci-
dencia, necesitamos reconstruir la lnea para imprimirla en su forma original:
# /bin/bash
Empezaremos cada una de las siguientes secciones con un script mnimo que !
pattern=$l
busca una cadena en el archivo /etc/passwd e imprime la lnea que coincida. I FS= "
:
Sabemos que esto es demasiado grande, pero queremos que lo que ms nos inte- while read account password uid gid ame directory shell
resa es que el script funcione. do
# Exact case-sensitive matches only!
Luego, dividiremos las lneas de entrada en campos y restringiremos la bs- if $name == $pattern
[ (
then ] ] ;
queda de patrones al campo gecos que contiene nuestros nombres de usuario. echo Saccount $password $uid $gid $name $directory $shell
: : : : : :
Scripting 277
fi
while {<>) {
done < /etc/passwd if /$pattern/i)
( {
print
Pero ahora tenemos
un problema con la bsqueda de coincidencias, al contra- }
rio que grep, bash no tiene una bsqueda parcial de cadenas que sea sensible a }
maysculas y a minsculas. Tendremos que usar un patrn de bsqueda ms son muy complicados, pero otros han
Muchos elementos de la sintaxis de Perl
sofisticado con ayuda externa, egrep:
sido heredados de la sintaxis de Shell (o de otras herramientas Unix comunes) y
# /bin/bash
!
por tanto no son tan difciles de recordar una vez que conoce esas herramien-
pattern=$l tas. En particular, puede ver sentencias while e if en el script anterior, y se
IFS= :
if [[ $ {echo $name egrep -i -c "Spattern") ~gt 0 ]]; then iteracin de un bucle while lea una lnea de la entrada. Fjese en que a diferen-
cia de bash, las variables en Perl necesitan el $ inicial incluso cuando est asig-
|
Para nuestro script final, aadiremos una comprobacin de los nmeros uid:
# /usr/bn/perl
# /bin/bash
!
my $pattern = shift;
!
pattern=$l
"
while (o) {
I FS = " :
while read account password uid gid ame directory shell print if /$pattern/i;
do }
-gt 0 J then] ;
desde la
echo " $account $password $uid $gid $name $directory $shel 1
: :
/ induser .pl alf < /etc/passwd
: : :
fi
admin@serverl ~$ :
.
mando antes de ejecutarlo. Esto le ayudar a ver lo que actualmente est hacien- my $fname = "/etc/passwd"
do el script. my $pattern = shift;
open(FILE, $fname) or dieCCan't open $fname\n");
while (<FILE>) {
if (/$pattern/i) {
print
Perl es conciso, y es realmente bueno trabajando con texto. Un equivalente
para nuestro primer bash script es: }
cise (FILE)
admin@serverl ~$ perl -ne 'printf if 7al/i' /etc/passwd
:
Para restringir las coincidencias al nombre del campo como hicimos en la sec-
/patrn/ coincide con la cadena de bsqueda mientras que ignora si son
El i
cin bash, jugamos con algunas de las fortalezas de Perl:
maysculas o minsculas. Aqu mostramos un equivalente a la versin del script
que usaremos como programa que cumple nuestros otros requisitos. # /usr/bin/perl
!
my $fname = "/etc/passwd"
# /usr/bin/perl
!
my $pattern = shift;
rny$pattern = shift; open FILE, $fnarne) or dieCCan't open $fname\n")
( ;
; ; ;; ) ;
Scripting
while <FILE> (
) {
# /usr/bin/perl
!
$line = $_;
$pattern = shift;
@fi.elds = split/:/;
while {fields = getpwent) {
if ($f ields [4] =~ /$pattern/i> { if ($f ields [6] =~ /$pattern/i and $f ields (2] > 500) {
print $line; print "$f ields [6] \n"
}
}
}
1
cise (FILE)
<?
bido a que /etc/passwd es un archivo muy importante en Linux, se le debera $pattern = $argv[lj;
haber ocurrido pensar que alguien pudiera haber automatizado este trabajo. Afor- $file = fopen "/etc/passwd"(
"r"); ,
tunadamente, as ha sido: el viejo Perl ofrece una funcin llamada getpwent que while ($line = fgets($file, 200 )) {
tro script, asignamos a cada campo su propia variable; en la siguiente, usaremos fclose ($f ile)
el vector @.list para capturarlos todos. En cada caso, queremos el campo gecos ?>
print "$gcos\n" ,- # !
/usr/bin/php
}
<?
$pattern = $argv[lj;
$file = fopen "/etc/passwd"
(
"r"); ,
# /usr/bln/perl
!
while ($line = fgets($fiie, 200)} {
$pattern = shift; $f ields = split $line)
while (@fields = getpwent) { if (eregi ($pattern, $fields[4])}
If ($f ields [6] =~ /$pattern/i) echo $line;
{
}
fclose ($f ile)
}
?>
Para flagelarnos un poco ms, restrinjamos las bsquedas a los usuarios nor- Pero, podemos invocar una funcin como getpwent de Perl para trocear el
males (uid > 500). Es una adicin fcil. archivo de contraseas para nosotros? PHP no parece tener un equivalente, por
; )) ; : : : )
Scripting Scripting
1que procederemos con parsep para restringir ia bsqueda para los valores uid Python tiene un equivalente a la funcin getpwent de Perl que permite res-
por encima de 500: bsqueda a los campos que contienen nombres. Guarde el siguiente
tringir la
script como finauser . py:
# /usr/bin/php
!
<?
# /usr/bin/python
1
Spattern = $argv[l] ;
import re sys pwd , ,
if (eregi ($pattern, $fields[4]) and $f ields [2] > 500) print line
echo $line;
}
# /usr/bin/python
i
print " " join( ["%s" % v for v in line]
:
.
import re sys ,
El paso final es restringir todas las bsquedas para que busque en cuentas
Python tiene espacios de nombres (Perl tambin) para agrupar funciones, que
con uid > 500:
es por lo que las funciones del script estn precedidas por cadenas del tipo
sys. y
re.. Esto ayuda a mantener la modularidad del cdigo. La /usr/bin/python
"(i)" en la tercera lnea t !
La siguiente iteracin divide la lnea de entrada en campos: if line.pw_uid > 500 and re search (pattern line pw__gecos) . . :
# ! /usr/bin/python
import re, sys
pattern = " (?i) " + sys.argvfl)
file = open "/etc/passwd
(
Scripting
Otras lectoras
El apndice contiene algunos scripts ms grandes que pueden ser tiles para
administradores de sistemas. "Linux Shell Scripting with Bash de Ken Burtch
(Sams)" y "Advanced Bash- Scripting Cuide" (http //www tldp org/LDP/abs/
: .
html) son buenos recursos. Si se quiere aventurar con otros lenguajes de script,
cualquier libro con un animal en la cartula ser una apuesta segura (a menos Los ordenadores fallan, los discos se rompen, los chips se funden, los cables
que quiera buscar COBOL en la seccin de nios). tienen cortocircuitos y la bebida cae sobre los aparatos. Algunos ordenadores se
roban o son vctimas de errores humanos. Puede perder ya no slo el hardware y
el software, sino lo que es ms importante, los datos. Restaurar los datos perdi-
B
progress: Muestra el progreso en la transferencia de archivos.
286 Haciendo copia de seguridad de ios datos Haciendo copia efe seguridad de ios datos 287
s -t: Preserva la hora de modificacin de cada archivo. Incluido en -a. La variable de entorno RSYNC__RSH contiene el nombre de la shell que rsync
usar. Por defecto es /usr/bin/rsh, por lo que la cambiaremos por /usr/bin/
-v: Lista los archivos que se estn transfiriendo. ssh.
~vv: Igual que -v, pero tambin lista los archivos que se ignoran. Ejecutar este script replica todos los archivos del directorio personal del usua-
rio que lo ejecuta desde su directorio personal en el servidor de copias de seguri-
-vw: Igual que -vv, pero tambin imprime informacin de depuracin de
dad.
rsync.
Veamos cmo funciona para un usuario de ejemplo (despus de haberse
8 -z: Activa la compresin, ms til sobre Internet que sobre una LAN de autentificado en su escritorio):
alta velocidad.
amy@deskl2 ~$ ./backup
:
Hay muchas ms opciones para rsync que pueden ser tiles en situaciones Password
concretas. Podr encontrarlas en las pginas-manual. building file list . . .
14 files to consider
Despus de las opciones, vienen los parmetros origen y destino. Tanto uno
/
como otro pueden ser rutas locales del ordenador donde rsync se est ejecutando, new- brochare sxw .
las designacin de un servidor (normalmente usado para descargar servidores de .37412 100% 503 91kB/ 0:00:00 (1, 62.5% of 16
.
archivos) o designaciones del tipo user@host:path para ssh. Debido a que rsync sales -plan- 2 006 -08 sxw .
# ! /bin/'bash
export RSYNC_RSH=/usr/bin/ssh
dest=backupl
rsync puede ofrecer una de los archivos que hay en el servidor de co-
lista
user=$ (whoami)
cd exit 1
| |
pias de seguridad. Es til para, verificar cuando hay archivos nuevos o impor-
rsync -aHPvz ${ user }@$ dest }:
. { tantes, as como para encontrar archivos que necesitan restaurarse debido a
: - ) " " : :
Haciendo copia de seguridad de ios datos Haciendo copia de seguridad de ios datos
que han estado perdidos o debido a que el usuario necesita recuperar una ver- Para restaurar archivos, simplemente ejecutamos el script, le pasamos los
sin antigua. nombres de los archivos que se van a restaurar como parmetros de lnea de
Para obtener este listado, omita las opciones y los parmetros de destino. Aqu comandos.
mostramos un bash script sencillo que obtiene los resultados deseados: En el siguiente ejemplo, eliminaremos intencionadamente uno de nuestros
archivos y luego veremos cmo se restaura:
# /bin/bash
!
cd exit I Password
rsync "${user}@${dest} :
.
more receiving file list ...
1 file to consider
Ejecutar este script produce resultados parecidos al siguiente: sales-plan-2006-10 sxw.
-rw-r- -r- 43900 2006/07/19 22:51: 54 sales-plan- 2006 - 09. sxw Las copias de seguridad pueden automatizarse usando script similares a estos
-rw-r- - r- 41285 2006/07/17
--
16:24:19 sales-plan-2006 - 10 sxw .
ejecutados como tareas cron (descritas en el captulo anterior). SSH requiere que
-rw-r~~r- 15198 2006/07/10 14:42:23 vacation-request sxw .
drwx 4096 2006/08/09 13 12:25 se introduzca la contrasea de usuario, por lo que necesitar incluir las claves
.ssh
amy@deskl 2 ~$ : pblicas de sus usuarios en la configuracin SSH para hacer que la autentifica-
cin remota funcione cuando los usuarios no estn presentes (por ejemplo, a las
3:00 a.m.).
Tiene muchas opciones para crear copias de seguridad. Puede ejecutar un script
Ningn sistema de copias de seguridad es bueno si los archivos perdidos no de tarea cron en el servidor diaria o semanalmente, para hacer copias de seguri-
pueden restaurarse. No slo debe estar listo para el caso de que se produzca un dad en otro servidor. Los negocios con oficinas remotas necesitarn hacer copias
desastre, sino que tambin debe comprobar que los planes de recuperacin
y res- regulares de los datos de dichas oficinas por Internet. Las copias tambin se pue-
tauracin funcionarn en caso de necesitarlos. de volcar a un CD o un DVD, a una cinta y despus archivarlas y transportarlas
Nuestro script de restauracin es solamente un poco ms complicado que el a un lugar seguro.
Hemos aadido una forma de especificar los archivos individuales
script previo.
que deben restaurarse:
Archivos lar
# /bin/bash
!
dest=serverl
user=$ (whoami El comando tar crea un archivo a partir de uno o ms archivos o directorios.
cd exit 1
j |
Tambin puede listar todo el contenido de un archivo, o extraer varios archivos y
Eor file in. "$@" do
;
directorios de un archivo. A los archivos tar tambin se les suele llamar tarfile o
rsync -aHPvz "$ (user}@$ (dest }:./${ f ile} 11 "
. /${ f ile}
done tarball.
Haciendo copia de seguridad de los datos Haciendo copia de seguridad de los datos
Un archivo tar ofrece algunas ventajas sobre un directorio con archivos sepa- 9 -v: Al crear o desempaquetar archivos, lista el contenido. Con la opcin -
rados. Por ejemplo, es ms fcil enviarun directorio completo a travs de correo t se ofrecen ms detalles acerca de los archivos listados.
electrnico. Los directorios contienen muchos archivos similares que pueden com- -x: Extrae (lee) archivos desde un archivo existente.
primirse ms eficientemente cuando la compresin opera en todos los datos de
un nico archivo. 9
-z:Comprime o descomprime el archivo usando gzip o gunzip. Los archi-
Un uso comn para un archive tar es ayudar en la distribucin del cdigo vos comprimidos con gzip normalmente tienen el sufijo .gz.
fuente del software libre o de cdigo abierto. En la mayora de los casos, los ar-
chivos tar estn comprimidos con programas como gzip o bzip2. Sin embargo, si
todos los archivos que se estn almacenando estn comprimidos (lo que es cierto Creando un nuevo archivo
en archivos de audio, video y Open Office), comprimir el archivo no producir
mucho beneficio. Puede crear un archive tar slo para guardar el grupo de archivos para sus
Puede llamar a un archivo tar como quiera, pero se usan ciertas extensiones propios propsitos, para enviarlos por correo electrnico, o para hacerlos pbli-
cos (por ejemplo, en un servidor FTP). Algunos comandos tpicos para archivar
de archivo de manera convencional para indicarle a los receptores cmo
descomprimir el archivo.
los documentos de trabajo de un directorio son:
Las extensiones ms comunes son: 9
Para crear el archivo work-docs.tar a partir de ios distintos documentos
de un directorio:
8
.tar: Para archivos tar descomprimidos.
$ tar -cf work-docs.tar work-docs
.tar.gz or .tgz: Para archivos tar que han sido comprimidos con el progra-
ma de compresin gzip. 0
Para crear el archivo comprimido work-docs. tar.gz a partir de los docu-
mentos de un directorio:
.tar.bz2 or .tbz: Para archivos tar que han sido comprimidos con el pro-
grama bzip2. $ tar -czf work-docs . tar .gz work-docs
La sintaxis del comando tar es: * Para crear el archivo comprimido work-docs. tar. bz2 a partir de los docu-
mentos de un directorio:
tar opciones argumentos
$ tar -cjf work-docs tar .bz2 work-docs
.
Las opciones no vienen precedidas por el tradicional guin (-), aunque mu-
chas versiones de tar si aceptan el guin.
Las opciones ms tiles son:
0
-b: Especifica el tamao de bloque (por defecto son 512 bytes). Algunas veces, puede necesitar extraer archivo de un archivo que ya ha crea-
-c: Crea (escribe) un nuevo archivo. do (como una copia de seguridad), a partir de un archivo que alguien le ha envia-
do, o a partir de un archivo que se ha descargado de Internet (por ejemplo, el
-f filename: Lee desdeo escribe en un archivo. Si el nombre del archivo se cdigo fuente de algn tipo de software que necesita).
omite o es el archivo se escribir en la salida estndar o se leer de la
Antes de extraer un archivo, debera listar y revisar todo el contenido. No
entrada estndar. querr sobrescribir accidentalmente los archivos existentes en su sistema con ios
9 -j:Comprime o descomprime el archivo usando bzip2 o bunzip2. Los ar- archivos del archivo, ni volver a tener archivos que haba borrado previamente.
chivos comprimidos con bzip2 normalmente tienen el sufijo .bz2. Los archivos de un archivo deberan estar organizados en un directorio, pero
8
casi nadie lo hace, por lo que tendr que tener cuidado para evitar extraer archi-
-p: Preserva los permisos de archivo.
vos en su directorio actual. Normalmente, es una buena idea crear un nuevo
-t: Lista los archivos en un archive existente. directorio en su equipo en el que extraer el archivo tar. Esto mantiene los archi-
292 Haciendo copia de seguridad de los datos Haciendo copia de seguridad de tos datos
vos extrados separados de los otros archivos, por lo que no llegarn a mezclarse. amy@deskl2 ~$ ls -1 monthly- reports
:
De esta forma se evita que la extraccin sobrescrba archivos existentes. total 228
-rw-r- -r- - 1 amy amy 50552 2006-05-09 11:09 mr-2006 - 04 sxw .
La opcin -t lista los nombres de los archivos y de los directorios que se crea- -rw-r- -r- - 1 amy amy 51284 2006-06-06 15:44 mr-2006 - 05 sxw .
rn al descomprimir el archivo. Aadir la opcin -v incrementa la aparicin de -rw-r- -r- - 1 amy amy 51428 2006-07-06 14:30 mr -2006 - 06 sxw .
mensajes que ofrecen detalles acerca de cada archivo del archivo tar, incluyendo -rw-r- -r- - 1 amy amy 54667 2006-08-07 10:06 mr-2006-07 sxw .
algunos ejemplos de comandos: -rw-r~-r-~ 1 amy amy 199015 2006-08-14 12:46 monthly- reports -aug tar gz .
.
Para listar los archivos del archivo collection.tar.bz2 con detalles extra: -rw-r r-- 1 amy amy 199015 2006-08-14 12:46 monthly-reports-aug tar gz .
.
0
Para extraer los archivos de coliection.tar en el directorio actual, conser- monthly- reports/mr~ 2006 -OS sxw .
monthly-reports/mr-2006-07 sxw ,
$ tar -xpf collection. tar amy@deskl2 : tar -tvzf monthly-reports-aug. tar .gz
drwxr-xr-x amy/amy 0 2006-08-11 14:15:12 monthly-reports/
I-a opcin ~x extrae los archivos en el directorio actual, tar funciona de -rw~r--r-- amy/amy 50552 2006-05-09 11:09:12 monthly-reports/mr-
manera silenciosa a menos que opcin -v que se usa para
se especifique la 2006 -04 sxw .
listar los archivos. La opcin -p mantiene los permisos originales, por lo -rw-r--r-- amy/amy 51284 2006-06-06 15:44:33 monthly-reports/mr-
2006 05 sxw --
.
que los archivos extrados tendrn los mismos permisos que los archivos
-rw-r--r-- amy/amy 51428 2006-07-06 14:30:19 monthly-reports/mr-
que fueron archivados. 2006 -06 .sxw
Para extraer los archivos de collection. tar. gz en el directorio actual man- i -rw-r--r-- amy/amy 54667 2006-08-07 10:06:57 monthly-reports/mr-
2006-07 sxw .
$ tar -xpvjf collection. tar. bz2 monthly- reports /mr-2006 -06 sxw .
monthly-reports/mr-2006-07 sxw .
-rw-r--r-- amy/arciy 54667 2006-08-07 10:06:57 monthly-reports/mr- estn disponibles cuando el lser se dispone a grabarlos, el lser se parar y se
2006 - 07 sxw .
romper as la continuidad del grabado. Los mtodos usados para grabar CD
amy@deskl2 -/exfcract di r$ cd
:
.
fueron diseados para sistemas informticos ms lentos, para maximizar la fia-
amy@deskl2 ~$
:
datos a los usuarios o a los dientes. Un CD-R puede almacenar hasta 700 MR de quetes incluyen dvd+rw-tools (descrito en at http //www
debianhelp co uk/
: . . .
datos, mientras que un DVD-R o DVD+R pueden almacenar 4.7 GB. Tambin burningdvd.htm) y K3b (http: //www. k3b org). .
existe una versin de capa dual para DVD+R, con una capacidad de 8.55 GR.
Haciendo copia seguridad de ios datos Haciendo copia de seguridad de los datos 297
296 ele
sesidev: 'ATA' Pondremos las siguientes lneas de texto en este archivo para que coincidan
devname ATA de la salida anterior generada por cdrecord-scanbus. Necesi-
'
: '
con ios dispositivos
sesibus: -2 target -2 lun: -2
para que coincidan con los de sus propios dispositivos.
:
Jö rg Schilling
;
el valor por defecto del sistema Linux. El ltimo elemento de la lnea permite
cdrecord: No such file or directory. Cannot open '/dev/pg*'. Cannot que le pase una opcin especfica del driver; la hemos dejado corno una cadena
open SCSI driver. vaca.
cdrecord: Por possible targets try 'cdrecord -scanbus'
cdrecord: For possible transport specifiers try 'cdrecord dev=help' Las nuevas versiones del soporte cdrecord soportan la opcin driveropts=
cdrecord burnfree para protegerse contra los desbordamientos de buffer.
cdrecord: For more information, install the cdrtools-doc
cdrecord: package and read /usr/share/ doc/ cdrecord/README ATAPI setup . .
Si obtiene este tipo de salida, necesitar activar el driver icle-scsi antes de pasar
a la grabacin. El comando mkisofs un archivo de imagen ISO. Debera contener todos
crea
los archivos que se grabarn en el CD-R. Hay muchas opciones para este coman-
0
-J: Incluye nombres Joliet para compatibilidad con Windows.
Pueden configurarse varios parmetros cdrecord. Por ejemplo, puede configu- -r: Incluye nombres Rock Ridge para compatibilidad Unix/Linux.
rar cdrecord para reconocer los nombres de los dispositivos de grabado (por lo
que no tiene que memorizar los nmeros de dispositivo) y puede designar un 8
-v: Activa el modo de palabra completa que muestra el estado del progre-
dispositivo por defecto. so.
Para configurar cdrecord, autentifquese como (o use su - para cambiar a) o -V id_string: Especifica un ID de volumen para el disco que se crear.
root.Luego cree el archivo de texto con su editor:
-o filename: Especifica el nombre de archivo de la imagen ISO que se est
Haciendo copia de seguridad de ios datos Haciendo copia de seguridad de los datos 2
Aqu mostramos un comando de ejemplo para incluir todos los archivos de debido a que a veces, durante la lectura ocurren problemas, debera incluir est
un directorio especfico: opcin para asegurarse de que las unidades ms antiguas tambin pueden leer
sus grabaciones. En caso contrario, ver cmo sus archivos de copia de seguridad
# mkisofs - JrvV "clise ame" -o backup.iso /home/amy
pudieran no funcionar en un hipottico ordenador de reemplazo.
Podr ver una salida bastante grande para este comando. La salida es til para
archivos de colecciones grandes porque ayuda a estimar el tiempo que queda. Si
prefiere no tener esta salida, omita la opcin -v del comando.
Despus de que haya grabado un CD o DVD, es una buena idea verificar que
la grabacin puede leerse correctamente. El disco puede estar
defectuoso, o el
ordenador puede haber sufrido un golpe durante la grabacin, provocando que
Puede grabar un CD-R con la imagen ISO que ha creado. Para realizar la gra- el lser se salga de la pista de grabado.
bacin actual, autentifquese como (o use su- para cambiar a) root. Los permisos
La forma correcta de verificar una grabacin es comparar todos los sectores
de root son necesarios para que el programa cdrecord pueda acceder a la capa
grabados y los sectores originales del disco duro o generar sumas de comproba-
SCSI, para modificar las prioridades del proceso y para bloquear el espacio en
cin de estos sectores y comprobarlas: Ambos mtodos deberan usarse slo con
RAM y as evitar equivocaciones. La escritura de CD tiene dependencias tempora- los sectores de datos actuales, no los sectores de relleno. El siguiente Shell
script
les que son crticas, por tanto ayuda a mantener la actividad del sistema tan
hace esta verificacin bastante fcil cuando el archivo de imagen ISO original
plana como sea posible. Si est usando un CD-RW en una unidad CD-RW, nece-
est disponible:
sitar borrar el CD-RW antes de efectuar el grabado:
W !
/bin/bash
# cdrecord blank=fast padsize=63s -pad -dao -v -eject if [ $# -lt 1
[
then 3 ] ;
descubierto que su unidad no necesita eso, use la ejecucin -eject como se isoinfo -di " $ ame } " l>/dev/null | exit { 1
muestra aqu. done
for ame in "$@" do ;
Para grabar la imagen ISO creada en la seccin previa, introduzca: egrep "'Volume size is: " ) )
|
# cdrecord padsiza=63 -pad -dao ~v -eject backup.iso bsize^t $( isoinfo -di ${name} \
,,A
egrep |
Logical block size is: ) )
a resolver problemas relativos a que el ordenador no est respondiendo todo lo if=${name} " \
ibs="$(bsize} \
rpido que debiera. Los discos grabados con este mtodo pueden no ser compati-
obs=4096 count= " $ { size " \ }
bles con algunos dispositivos ms viejos. Si ve que las grabaciones algunas veces 2>/tmp/isomd5 $$ .err \ .
speed=, que est documentada en las pginas manual de cdrecord. Rebajar la if [[ $? != 0 ]3 then ;
rm -f /tmp/isomd5 $$ err . .
rm -f /tmp/isomd5 $$ err . .
mas usan. Puede or que las unidades ms modernas funcionan sin relleno, pero done
:
3 3-
Haciendo copa de seguridad de ios datos i iaciendo copia de seguridad de los dalos
La suma de comprobacin del programa MD5 es la parte de 32 caracteres Soporte para copias incremntales con escritura diaria de cambios.
hexadccimales. Si no es la misma para el archivo de imagen ISO Compresin de datos tanto en el diente como en d servidor, o va disposi-
y para el conte- 8
Cuando instala estos paquetes, los otros paquetes que se necesitan se inclui-
j
Las Cintas todava son un medio para hacer copias de seguridad bastante po~ rn automticamente. Si desea usar el programa amplot en Amanda, tendr que
,
pular. El Advanced Maryland Ati totnnted NetWork Disk Archiver (Amanda) es un instalar el paquete gnuplot.
: .
Haciendo copia de seguridad de ios datos Haciendo copia de seguridad de ios datos
Amanda usa archivos en muchos directorios diferentes. Estas opciones son Amanda se ejecuta como
usuario de copia de seguridad con permisos del
el
configurables, pero por defecto son: grupo disco. Necesitar establecerpermisos para todos los archivos que quiera
replicar para que puedan, ser ledos por Amanda.
/etc/ amanda Archivos de configuracin (servidor)
El servidor Amanda necesita estar bien conectado a la red local, con suficiente
:
9
/usr / 1 ib: Libreras compartidas usada por programas Amanda. * amanda conf:
. archivo de configuracin principal. Edtelo para especi-
El
ficar la lista de discos (vea el siguiente elemento), el dispositivo de cinta, la
/ usr / 1 ib/ amanda Programas demonio y utilidades internas.
frecuencia de copiado, su direccin de correo, el formato de los informes y
:
tapelist: Este archivo lista las cintas activas, incluyendo las fechas en
las que se escribi. Amanda gestiona este archivo, por lo que podr verlo,
El /etc/services debera tener entradas con los siguientes nom-
archivo
pero no debera editarlo.
nmeros de puerto. Si estas entradas no estn presentes, edite el archivo /
bres y
etc/services y luego adalas al final. Los comentarios son opcionales:
Nota: Mostrar todos opciones de Amanda nos
ios detalles acerca de las
/etc/services exploracin en sus manos.
que dejaremos
llevara muchas pginas, por lo la
amanda 10080/udp # amanda backup Services
Los archivos de ejemplo pueden ser muy tiles debido a la gran cantidad de
amandaidx 10082/tcp # amanda backup Services
amidxtape 10083/tcp comentarios que ofrecen, podr encontrarlo en el directorio /etc/amanda/
# amanda backup Services
DailySet l cuando instala el paquete Deban amanda-server. Para detalles
Tambin necesitar editar el archivo /etc/inetd. conf, que debera conte- ele estos archivos de configuracin, vea las pginas manual de Amnela o
ner las siguientes entradas: visite http://wiki.zmanda.com.
amanda i dx stream tep nowait backup /usr/sbin/tcpd /usr/lib/amanda/amindexd informes regularmente, sobre todo para comprobar errores y revisar las ejecu-
amidxtape stream tep nowait backup /usr/sbin/tcpd /usr/lib/amanda/amidxtaped
ciones.
La primera entrada, llamada Amanda, se necesita en todos los clientes. Las
otras dos entradas se necesitan slo en el servidor. Si estas lneas no estn presen-
tes, edite el archivo /etc/inetd. conf y adalas al fina!.
Amanda usa puertos aleatorios despus de la comunicacin inicial. Debera Amanda usa el formato estndar de Llnix para copias de seguridad (tar o dump),
usar Amanda en Internet slo a travs de una VPN. Esto evita la necesidad de que debera especificar en el archivo de configuracin. Esto permite usar las cin-
abrir un amplio rango de puertos de Internet en su LAN. tas con las copias de seguridad para restaurar ios archivos incluso si el sistema
, ..
. , , ,, . . , . , , ,,,
Haciendo copia de seguridad de ios dalos Haciendo copia de seguridad de ios datos
Amanda no est presente. Esto puede ser crucial a la hora de restaurar archivos # mysqlhotcopy -u user -p password drupal /tmp
despus de que se estropee un disco por completo. Locked 57 tablea in 0 seconds
Flushed bables 'drupal '. 'access drupal accesslog 'drupal'.
{
la restauracin de los archivos seleccionados. Asegrese de configurar el ndice category 'drupal 'aggregator_category_feed'
' , 'drupal 'aggregator_ '
.
, '
.
para hacer que Amanda cree los archivos de ndice. Las pginas manual de category_item '
amreeover le ofrecern todos ios detalles. 'drupal' aggregator_ f eed 'drupal' 'aggregator_tem'
.
'drupal' ' ,
.
,
'authmap', 'drupal'.
'blocks', 'drupal '. 'book' drupal '. 'boxes 'drupal '. 'cache , ' ' , '
'drupal client_system'
' 'drupal
.
comments
' 'drupal contact , '
1
' , '
.
' '
revisions', 'drupal '.' files 'drupal '.' f ilter_f ormats 'drupal'. ' , ' ,
Hasta ahora, hemos estado replicando archivos y directorios. Las bases de da- 'f ilters'
'drupal flood' 'drupal '.' forum' 'drupal 'hstory' 'drupal'.
, ,
tos tienen aspectos especiales que deben tener en cuenta. Nuestros ejemplos usan
,
'locales_meta '
MySQJL, pero los mismos principios pueden usarse con PostgreS QJL y otras bases 'drupal locales_source '
.
'drupal
' locales_target , 'drupal 'men ' , '
.
'
'
'
.
'
horas a la semana, una forma muy fcil y rpida para replicar los datos es: counter', 'drupal '. 'node_revisions 'drupal . 'permission' 'drupal'. ' , ,
'poli
1 . Pare el servidor MySQL: '
2. Copie los archivos de datos y los directorios de MySQL. Por ejemplo, si su ' search_
ndex', drupal search_total ' '
.
drupal '.' sequences 'drupal'.
directorio MySQL de datos es /var/lb/rnysql y quiere copiarlo a /tmp/
' ' ,
'
' ,
'sessions', 'drupal'.
mysql-backup: 'System', drupal '.' term_data , '
' 'drupal ' termjhierarchy ' , 'drupal'.
'term_node '
'drupal '
En lugar de cp, puede usar rsync, tar, gzip u otros comandos menciona- 'users ' , ' drupal users yoles
'
.
drupal
' variable drupal ' , ' '
.
' ' , ' . ' vocabulary '
o alguien podra ejecutar una transaccin que involucre varias tablas. Afortu- # ./mysqlsnapshot -u user -p password -s /tmp --spl.it -n
nadamente hay varias soluciones no comerciales bastante razonables, entre las checking for binary logging. ok . .
Mysqlhotcopy es un script de Perl que hace copias de seguridad en lnea para backing up db test done . . .
Muchos sitios MySQL migran muchos datos desde tablas MyISAM a tablas com/mysql__zrm__debian_sarge.
InnoDB para conseguir verdaderas transacciones y un mejor rendimiento de es-
critura. Los autores del mdulo InnoDB tienen un producto comercial para las
copias de seguridad en lnea llamado InnoDB Hot Backup que puede pedirlo des-
de http //www. innodb com/order .php.
: .
Puede crear una tubera a travs de gzip para ahorrar algo de tiempo y de
espacio:
Una nueva herramienta de cdigo abierto (descarga gratuita, pago por sopor-
te) llamada Zmanda Recovery.
Manager para MySQL ofrece una interfaz til para muchas de estas alterna-
tivas. El sitio Web de Zmanda (http //www zmanda com/backup-mysql html)
:
. . .
tiene todos los detalles, pero seguidamente mencionaremos algunas de sus dis-
tintas funcionalidades:
Este apndice contiene varios Scripts que pueden serle til en su trabajo dia-
rio, as como para modelos para escribir otros script. Puede descargar
servir de
los Scripts (comentados en ingls) desde http //www. centralsof t org.
: .
Si usted tiene mucha tarea (como en una universidad, donde entran nuevos
estudiantes al mismo tiempo o varias veces al ao), este script puede ayudarle a
aadirlos al sistema de forma rpida. Lee un archivo que contiene informacin
sobre cada usuario e invoca useradd con los parmetros adecuados (vea captu-
los anteriores para ms detalles sobre useradd y sus variantes):
# /bin/bash
!
expiredate=2009- 02 ~ 18
if [[ -z "$1" ]] ; then
" "
echo
echo "Please give exactly one file ame.' 1
[ [ -n -$n" ] ] n=12
exit 1
| ]
if [ $n -lt 8
[ 3 ; then 3
fi
echo "A password of length $n would be too weak"
exit 1
cat "$1" while read username groupname realname
|
fi
do
p=$ dd if =/dev/urandom bs=512 count=l 2>/dev/null \
# Skip blank Unes.
(
cut -c l~$n )
fi |
echo "${p}"
#Check whether the user already exists.
# If so, report this and skip chis user.
A
result=$ egrep " $username " < /etc/passwd
(
:
)
Si es capaz de mejorar la funcionalidad, merece una recompensa. Mientras
if n -n " $result" ]] then ; que usted est fuera, nosotros seremos un poco ms puntillosos con los fallos de
echo "User $usernatne' already exists" este cdigo. Este cdigo es el tpico que suele heredarse de un desarrollador ante-
continu
rior: sin comentarios, con nombres de variables poco descriptivos y algunos con-
fi
juros mgicos. Si quiere hacer del mundo un lugar mejor, hay unas cuantas
# Check whether the group already exists. cosas que puede hacer cuando escriba scripts como este.
# If not, add the group.
A Por ltimo, puede escribir comentarios describiendo el propsito dd cdigo.
result=$ egrep " $groupname " < /etc/group
(
:
)
if [[ -z "$result" 3] then ;
Estos comentarios deben dividirse en dos partes: una gran cabecera de propsito
grotipadd " $groupname general (por ejemplo, indicando los parmetros que se le pasan al script, y los
fi
valores que se tomaran por defecto), y explicaciones explcitas para comprender
# Add the user.
la dificultad de los procesos.
useradd -c "$realname" \
-d "/home/$username" \ No pierda tiempo ejecutando los comandos bsicos usados, debido a que el
-e "$expi redate" \ que lo mantenga puede mirarlos si no est familiarizado con ellos. No obstante,
-f 365 \
donde emplee una variante extica de un comando, debera describir explcita-
-g "$groupname" \
-m \
mente su efecto y cmo puede ejecutarlo.
-s /bin/bash \ Despus de todo, el objetivo es que documente los resultados que persigue con
"$username
los conjuntos de comandos y por qu se obtienen estos resultados de la forma
if f[ $? == 0 ]]; then
que ha ideado.
echo "Successfully added user $username' '
,
n= " $ 1
"
La primera sentencia del bucle usa tres comandos del sistema en una tubera # mx [ ames . . . ]
# ns ames
para generar una contrasea de prueba. Las tres lneas de la tubera estn en un [
# ptr [ ames
$() para capturar la salida como una cadena que luego se asignar a la variable p. # soa [ ames . . . ]
Para generar una contrasea aleatoria, necesitamos una fuente de datos # txt [ ames . . . ]
El script usa el comando dig que se describi en el al comienzo para bsquedas x[0-9]*\- [0-9] *\. [0-9]*\. [0-9] *y
( )
DNS, consultando la cach del servidor DNS cach local. Una funcionalidad de hostname=$( echo "$ {hostname " inaddr }
j
)
este script es que usa su propio nombre para especificar el tipo de registro DNS
que busca. Si el script se llama a, busca registros A. Si se llama soa, busca regis-
tros DNS SOA. El nombre ptr es un caso especial que coge una direccin IPv4 y la esac
convierte en la forma adecuada in-addr.arpa para hacer la bsqueda actual. De- fi
bera hacer una copia de este script con el nombre apropiado para cada uno de los
# Execute the query.
tipos de registro comunes en DNS que podra necesitar buscar; a, aaaa, mx, etc.
dig +trace +noall +answer ${query_type} "
"$ {hostname} "
\
Tambin puede usar enlaces duros o enlaces simblicos para crear los alias. egrep " A $ {hostname }
Independientemente del nombre, el script acepta una lista de equipos a buscar done
como parmetro: exit
# /bin/bash
!
#
# Copyright © 2006 - Philip Howard - All rights reserved
#
# script a, aaaa, cnarae, mx, ns, ptr, soa, txt Puede usar eipresentado en esta seccin para enviar un archivo, o un
script
#
purpose Perform direct DNS lookups for authoritative DNS directorio de archivos (incluyendo todos los subdirectorios), desde un sistema a
#
# data. This lookup bypasses the local DNS cache otro usando una sesin sheli en cada sistema. El script funciona creando un de-
# server. monio rsync (rsync se describi en el ltimo captulo) de fondo para enviar el
# archivo especfico o directorio. Muestra varias formas distintas de cmo puede
# syntax a ames ... ]
usarse para recibir un archivo o directorio. Este script no necesita estar en el
[
#
# -s inelude sparse in the rsync command lines
Nota: El sistema remitente debe tener acceso a la red por el nmero de # -u user to run as, if started as root
puerto que se usa para aceptar las conexiones rsync entrantes. El nmero # -v show extra Information
de puerto se escoge de manera aleatoria entre el rango 12288 y 28671. #
#
# author Philip Howard
Puede sobrescribir la eleccin aleatoria de puerto usando la opcin -p seguida
de un nmero de puerto. Si las reglas de su cortafuegos slo permiten unos
umask 022
cuantos puertos a los que conectarse, debe elegir uno de estos puertos en hostname=$( exec hostname -f )
uid=" $ {whoami }
puede alcanzar el sistema remitente, y la ubicacin donde el archivo o directorio checksum= "
cia est completa, permitindole transferir un archivo o directorios muchas ve- port="
ces entre computadores diferentes. Pare el demonio cuando las transferencias sparse="
verbose="
estn completas presionando Control-C en la ventana de la shell del sistema remi-
"
tente. barl="
barl= "#$ {bar }$ {bar }$ {bar}
que se estn transfiriendo. No debera usar este script para transferir datos
secretos o confidenciales, intente scp o sftp en su lugar. Asegrese de parar #-
el demonio una vez que las transferencias deseadas estn completadas. # inelude paths for ifeonfig.
#- -
# checksum="c"
# purpose To start an rsync daemon in the shell foreground
# to send a specified directory or file when ( x--delete )
# * shift
# options -c inelude checksum in the rsync command lines cd ${l} " || exit 1
# -d change daemon to the specified directory
# -n inelude dryrun in the rsync command lines ( x- -directory=* )
cd "${1:12} | j
exit 1 local str
str=$ echo "${l} { tr -d |
'
)
return
(x-p x--port )
fi
#
shift str=$< echo "${l}" |
tr -d )
(x--port=* ) return
port= "$ { 1 7 :
n fi
echo "${l}"
(x-s x--sparse
|
)
return 0
sparse="S }
# - -
( x-u. |
x~~user )
if [ [ then
$# -gt 1 ] ] ;
esac fi
shift
#- - - -
done
# Set up a temporary config file.
# - #
# Get a random number f or a port # Arguments:
# $1 Directory transferred, or where transfer is starting
if [[ -z ${port}"
|| "${port|" = 0 j| "${port} n = ]]; then . # $2 Not used {AO: Should be removed)
port=$ dd if=/dev/urandom ibs=2 obs=2 count=l 2>/dev/null
( \ # $3 File transferred (if single file specified)
od -An -tu2
|
tr -d |
1 '
) #--
port=$ $port % 16384
[ ] function conf igout {
echo " [ -
J
}
echo -n "rsync ${ rsyncopt} "
#
if -n "${oldfmt}
[ [ then j ] ;
# Get directory and file. }
strquote "${3}"
echo " - -port=$ (port } " $( strquote "
${1 } : : $ {
2 " } $( )
el se
if [[ -e "${name}" ]]; then }
${ strquote "${3}"
echo $( strquote "rsync ://${ 1 }:$ {port }/${ 2
!
" ) )
configout "${d}/." "directory :$ {d} / " >"${conf f ile} awk {print $4;}'
netstat -i -n j
r= "$ { r } /$ {b}
announce " $ {d } /$ { f } esac
rsyncopt " -a$ { checksum} $ {dryrun} $ sparse vz {
}
return
configout "${d}/." "f ile $ { d /$ f " >"${conff ile} : } {
}
}
elif [[ -L ${name}" ]]; then
p=$( exec dirname ${name}" )
function ipaddr {
b=$ exec basename "${name}"
( )
getip \
d"${p} A
[0-9] *\ [0-9] *\ [0-9] *\ [0-9] *$'
egrep '
. . . \
f="$(b}" |
A A
127\
egrep -v 0\ \
'
. |
. '
)
head -2 \
r="${r}/${b} |
showrsync ${ipv4}"
rsyncopt " - a$ checksum} v" {
done
configout "${d}/. "symlink $ { d} /$ f " "${}" > $ { conf f ile } {
}
:
return
fi
}
function showcmd {
# Show config file if verbose is requested.
ipaddr "${2}" "${3}"
showrsync ${l}" "${2}" "${3}"
i i: if [[ -n "${ verbose}" ]]; then
return
echo "${bar2}
}
|{ {
is -Id "$ {conf file}
echo " $ {bar 2 } #---
cat "${conf f ile} 7
# Announce the shell commands to receive this data.
J![
f
echo ${bar2}"
echo "# sending ${ announce }
This function outputs example receive commands
echo paste ONE of these commands in a remte shell to receive
S
echo "${barl}"
tilque permite que una sesin Shell quede en un estado activo, con la pantalla
showcmd "${hostname} "
cuando desconecta del ordenador remoto. La sesin capturada podr
. .
intacta
echo "$ {bar} 11
retomarse despus, incluso desde un equipo diferente. Tambin es posible tener
showcmd "${hostname} " . "${b}" dos o ms conexiones en ia misma sesin Shell.
El siguiente script hace e inicia una sesin llamada screen
una conexin ssh
if [[ "
$ { <2 } " ! = "
$ {b} " && "
$ {
d} " != " " ]]; then
$ {
r}
echo "${barl}" en un comando. usar este script es que es ms rpido para conec-
El beneficio de
showcmd "${hostname} " . "
${d
}
tarse y desconectarse cuando se est trabajando con mltiples servidores.
fi
Este script se usa de manera similar ai comando ssh. La sintaxis ssh que espe-
echo ${barl}" cifica el nombre de usuario y el equipo de la sesin remota se expande para in-
showcmd ${hostname} " ${r}" . cluir el nombre de sesin. Puede crear mltiples sesiones en un equipo remoto
else
con el mismo nombre de usuario y diferentes sesiones. El nombre de sesin es
echo "$ {bar}
opcional. Si no se proporciona, el script ejecuta el comando ssh de una manera
showcmd "${hostname} " "${b}'
s=$ exec basename "${d}"
( )
normal, sin ejecutar screen. La sintaxis completa de este script, incluyendo las
# s= "${s }/${} opciones ssh que soporta, pueden verse en los comentarios del script.
if f "${s}" 1 = "${b}" ]] then
echo "${barl}"
;
El nombre sugerido para este script es ss:
#
&& " ame } " != "${sj" \
{
# -p portnum
rsync --daemon -~no-detach " - -conf ig=$ { conf f ile} "
P= portnum
" -
-port=$ {port }
# -
rm -f "$ { conf file} " "${lockfile} # -s session
echo "${s}" # -s=session
# -t Use tty allocation (default)
# -T Do NOT use tty allocation
# -4 Use IPv4 (default)
# -6 Use IPv6
Debera estar familiarizado con el comando ssh, que se conecta a otro equipo -46 -64 Use either ,T.Pv6 or IPv4
# |
( x*@*@* )
# requirements The local system must have the OpenSSH package Example: sessionl@lisa@centrhub
#
# installed. The remte system must have the cut -d @ -f 1
s-$ echo "x${l}-'
(
S="$- s ( : 1
# daemon runnng. It must also have the screen(l) U=$( echo "X${1} " cut -d @ -f 2
# program installed. Configuring a screenrc .
|
cut -d @ -f 3
h=$ echo "X${1}"
{ j
U= " $ { U 1 } " :
fi
p= )
(
'
break
s='
t=( -t )
( x-h=* >
u="${whoami} "
h= " $ { 1 : 3 }
v={ -4 )
x-h
( )
#
shift
# Parse options and arguments.
h " $ l } {
x*/*@*
{ )
then
if [ [ -z "${i} " 3 3 ;
else
u="$ { u : 1
}
i-( -i "${1:3}" )
s=$ echo "x${u}"
( cut -d / -f 2 )
j
fi
u=$ echo "x$ u } "
( {
cut -d / -f 1 )
u= " $ {u 1 } :
x-i
( )
h=$ echo "x${l}"
( cut -d & -f 2 )
j
shift
shift
i=( -i "${1}" )
break
x~l=*
{ I
x-u=* )
( )
u= " $ { 1 3 :
11
# Example: lisa@centrhub/sessionl
u=$ echo "x${l} "
( cut -d -f 1 )
]
( x-1 x-u )
u = " $ { u l}
|
shift
h=$( echo x${ 1} " cut -d -f 2 )
j
u=${l}
s=$ echo "x${hj"
(
]
cut -d / -f 2 )
( x-m x--mu.lt i )
h=${h:l}" |
shift
break
( x~p=* )
"" . "
p= " $ { 1 3 } :
if [[ -z ${h}" 3 then ] ;
fi -z "${die}" )l exit 1
[[ 3 3
x-p
( ) #
shift # Run screen on the remte only if a session ame is given.
p={ -p "${1}" ) ---
( x-s )
x "exec /usr/bin/env SESSION_NAME=' $ s} { ' screen $ {o} '${s}'
shift c=( "${c[@]}" "${x}" )
S="${1}
fi
exec "${c [@]
}
( x-t )
t-( -t )
( X-T )
t=( )
( X-4 )
v= ( -4 )
( x-6 )
v=( -6 )
( x- 46 |
x- 64 )
v= ( )
( x-* )
die=l
esac
shift
done
*
Make sure essential information is present
Bea WebLogic, 62 CGI (Common Gateway Inter face), 107, Cuenta, 116, 120 DMZ, 215
Beowulf, 191 155, 159, 168, 171, 190 cuotas, 36 DNS (Domain ame System), 33, 40, 59,
CHECKJNTERVALs, 130 CLIPS (Common Unix Printing System), 61, 63, 69-73, 77, 82, 89, 92, 95,
Berkeley, 132
223-227
15, 98, 116, 133-1.34, 186, 207, 211,
238
Big Bine Virtualization Engine, checktype, 196, 198
cut,275 215, 21.9, 239, 312
BIND (Berkeley Internet ame Domain), chkconfig, 212
CVE (Common. Vulnerabilities and autoritativo, 68
28, 38-39, 63, 65-67, 71, 74, 77, 86, chroot, 66
Exposures), 43 cach, 215
89, 91-92, 94, 98, 102, 211 CIFS (Common Internet File System), 205
Cyrus, 142 local, 312
BIND cinta, 283
primario, 72
4, 63 Cisco, 15, 101
secundario, 72
8, 63, 102 ClamAV, 111
DocumentRoot, 164
9, 63, 75, 102 ClarkConnect, 217
dornain-name-servers, 211
BlueGene, 23 Class, 78 206
Dallas,
dominio, 1 1
Bootstrapping, 82 cliente FTR 1 1
26
DASD (Dircct Access Storage Device), nombres de, 69
Bourne Shell, 255 clster, 191
Deban, 29, 48, 65 servidores, 21
break, 270 clustering, .1 34 Dell, 206 DOS, 204
Brothe:rHL1440, 225 CNAME, 77, 83, 85
depuracin, 198
Dovecot, 151
BSD (Berkeley Software COBOL, 282 DHCP (Dynamic Host Configuration
DR,
Distribution), 101 Co-Dominios, 116
Protocol), 29, 32, 203, 207, 209, 212,
226 Drupa!, 155, 182-186
bucles, 269 cola de impresin,
215-216, 218-219, 243 DSA, 231
buffer FIFO, 297 coma flotante, 264 dhcp.conf, 210, 212, 216, 218-219
bunzip2, 290 comandos CLI, 226, 279
DSO (Dynamic Shared Object), 157
dhcp3-server, 210 DVD+R, 294
buzn local, 121 computacin dhcpd, 209 dvd+rw-tools, 295
bytecode, 200 distribuida, 191
212
dhcpd.leases, DVD-R, 294
bzip2, 290 en grid, 191
8 9
ndice alfabtico
ndice alfabtico
331
M Mysqlhotcopy, 304
mysqlsnapshot, 304
pginas-manual, 286
PAM (Pluggable Authentication
puerto (TCP) 80, 118, 187
puerto (TCP) 81, 103, 105
MAC fsica, 211, 213 Modules), 143 puerto (TCP) 443, 190
Mac OS, 157, 205, 207 panel grfico, 119 puerto (UDP) 53, 71, 73
maildir, 102 paralelismo, 191 Python, 156, 244, 256, 273, 280-281
main.cf, 138, 143 ame, 78 parsep, 280
MaxClients, 169 named.conf, 74 pardal, 285
MaxReqnestsPerChild, 169 Nameserver, 78 pasarela, 29, 133, 214
mbox, 151 NameVirtualHost, 1 74 PAT (Port Address Translation), 215 qpopper, 102
MCSE, 26 NASA, 22, 191 PATH, 259 querylog, 92
MD5, 300 NAT (Network Address Translation), 194, patrones, 1 68 QUESTION, 97
MDA (Monochrome Display 215, 217 PeopleSoft, 252
Adapter), 132, 152 negotiate, 196 Perl, 58, 156, 256, 273, 277-278, 280-281
Memcached, 200 Netcraft, 157 permisos, 258
Microsoft Netf'lter, 21 7 permissive, 241 radvd, 213
205
NT, 29
Netlnstall, PHR 111, 155, 158-160, 172-173, 256, RAID (Redundant Array of Independen!
Windows, 89 NFS (Network File System), 34, 207, 243 273, 279-281 Disks), 284
MIME (Multipurpose Internet Mail nmap, 187 PHP 4.0.5, 102 random, 67
Extensions), 172 Nodos Apache, PHP 5, 105 recompilar el ncleo, 295
5
Sarge, 193 TLS, 43, 124, 142, 146, 152 VMware, 235, 240, 246-250, 252
SCIUID, 200
Indice alfabtico