linux administrator ii

Upload: roberto-maldonado-palacios

Post on 12-Jul-2015

284 views

Category:

Documents


1 download

TRANSCRIPT

1

Manejo del gestor de arranque grub uso del syslog, lectura de logs y herramientas de auditoras administracin remota con ssh, scp, sftp tcpwrappers 8- Gestores de Arranque Introduccin Recurso GRUB Recurso Instalacin del GRUB Recurso Terminologa de GRUB Recurso Interfaces de GRUB Recurso Comandos de GRUB Recurso Archivo de configuracin de men de GRUB Recurso Bibliografa Recurso 9- Servicios de registro de eventos del sistema syslog Recurso Leyendo e interpretando los logs del sistema Recurso logrotate Recurso Herramientas para anlisis de logs Recurso 10- Administracin remota con Secure Shell Introduccin al trabajo remoto mediante el uso de ssh Recurso sshd Recurso El cliente de ssh Recurso Copiando archivos entre mquinas de forma segura Recurso Otras opciones del ssh Recurso Realizando respaldos remotos con ssh Recurso Bibliografa Recurso Tarea de la semana 5

GRUB, es el gestor de arranque de GNU y sus siglas vienen de la frase: GRand Unified Bootloader Las caractersticas mas sobresalientes son:

Ofrece una interfaz semigrfica (mens y recuadros de texto) muy intuitiva al arrancar, totalmente personalizable e incluso en color si eso nos hace gracia. En cualquier momento podemos editar los parmetros de las opciones del men de arranque, con un editor simple pero efectivo. Cada vez que creamos un nuevo kernel o lo cambiamos porque lo hemos recompilado no hay que ejecutar el grub para que el sistema lo vea. GRUB lee su configuracin de un fichero y simplemente editando ese fichero se hace efectivo el cambio de configuracin para el siguiente arranque, siempre es capaz de encontrar y cargar el kernel si le decimos dnde est: slo necesita saber en qu disco (le da igual si es IDE o SCSI), en qu particin (no importa si es primaria, extendida, o una etiqueta BSD) y en qu fichero (detectar qu sistema de ficheros se utiliza, lo interpretar y dar con el fichero correcto).

El GRUB viene instalado por defecto en la mayora de los sistemas linux, por lo tanto lo podremos usar directamente para cualquier tipo de trabajo. Otros gestores de arranque: GRUB supera muchas de las desventajas de los anteriores gestores de arranque, el ms popular anteriormente era el LILO, este todava algunas empresas lo siguen usando y en efecto funciona muy bien pero el LILO carece de muchas funcionalidades del grub como por ejemplo el LILO:

No tiene un ambiente grfico amable No permite editar en vivo los parmetros de arranque (hay que arrancar como sea el sistema para poder cambiar algo en el arranque) Cada vez que se cambia un kernel hay que ejecutarlo a l para que tome el nuevo kernel pues no acepta cambios en sus parmetros de arranque.

Cualquier falla en ejecutar el LILO de esta forma normalmente conduca a que el sistema quedara inoperante y el tener que arrancar en modo de rescate. Realmente el GRUB es no slo el ms popular sino por mucho el gestor de arranque ms usado al momento. Pero no slo existen el GRUB y el LILO, sino que hay un pequeo gestor de arranque llamado SYSLINUX, que bsicamente es parecido en la forma que se muestra en la pantalla (:) al LILO pero sin embargo s permite pasarle algunos parmetros al sistema y sobre todo se configura con un slo archivo (syslinux.cfg) y no hay que ejecutar el syslinux para instalar nuevamente el gestor de arranque cuando cambia el kernel. El syslinux es muy usado por parte de los sistemas de arranque mediante CD, por ejemplo: el mismo CD del Centos (y de RHEL por supuesto) arranca mediante el syslinux, bsicamente eso que vemos al arrancar el CD de CentOS para instalar el Linux es hecho en syslinux. syslinux se usa tambin para arranque de sistemas embebidos pues en muy muy pocas k de espacio en disco es todo un sistema de arranque que permite ahorrar tiempo y espacio en disco. Adems existen otros gestores de arranque especficos para cada arquitectura donde RHEL4 (CentOS4) pueden ejecutarse, aqui les mostraremos una breve lista: Arquitectura AMD AMD64 IBM eServer iSeries IBM eServer pSeries IBM S/390 IBM eServer zSeries Intel Itanium Gestores de arranque GRUB OS/400 YABOOT z/IPL z/IPL ELILO

Arquitectura x86

Gestores de arranque GRUB

Proceso de arranque en un sistema x86 y GRUBEsta seccin explica con ms detalle el papel especfico que desempea GRUB al arrancar un sistema x86. Para hacerse una idea del proceso de arranque, vea el sistema de arranque y parada de linux. GRUB se carga asmismo en la memoria en las diferentes etapas: 1. La etapa 1 o cargador de arranque primario se lee en la memoria por el BIOS desde el MBR. El gestor de arranque primario existe en menos de 512 bytes de espacio en disco dentro del MBR y es capaz de cargar bien sea la etapa 1.5 o la etapa 2 del gestor de arranque. 2. La Etapa 1.5 del gestor de arranque se lee en la memoria por el gestor de arranque de la Etapa 1, si es necesario. Determinados hardware requieren un paso intermedio para pasar a la Etapa 2 del gestor de arranque. Esto sucede a menudo cuando la particin /boot/ est por encima del cilindro 1024 del disco duro o cuando se usa el modo LBA. La Etapa 1.5 del gestor de arranque se encuentra en la particin /boot/ o en una pequea parte del MBR y la particin /boot/. 3. La Etapa 2 o el gestor de arranque secundario se lee en la memoria. El gestor de arranque secundario visualiza el men GRUB y el entorno de comandos. Esta interfaz le permite seleccionar qu sistema operativo o kernel arrancar, pasar argumentos al kernel o ver los parmetros del sistema. 4. El gestor de arranque secundario lee el sistema operativo o el kernel en memoria. Una vez que GRUB determina qu sistema operativo iniciar, ste lo carga en la memoria y transfiere el control de la mquina a dicho sistema operativo. El mtodo usado para arrancar Red Hat Enterprise Linux se conoce como mtodo de carga directa porque el gestor de arranque carga el sistema operativo directamente. No existe un intermediario entre el gestor de arranque y el kernel. El proceso de arranque usado por otros sistemas operativos puede variar. Por ejemplo, los sistemas operativos de Microsoft Windows, as como otros sistemas operativos, se cargan mediante un mtodo de arranque de carga encadenada. Bajo este mtodo, el MBR seala el primer sector de la particin que tiene el sistema operativo. All encuentra los archivos necesarios para arrancar el sistema operativo. GRUB soporta ambos mtodos de arranque, directo y de carga encadenada, permitiendo arrancar desde casi cualquier sistema operativo. Durante la instalacin, los programas de instalacin DOS de Microsoft y Windows sobreescriben completamente el MBR, destruyendo cualquier cargador de arranque ya

existente. Si crea un sistema de arranque dual, es preferible que instale el sistema operativo Microsoft de primero.

Funciones de GRUBGRUB contiene una serie de funciones que lo convierten en el mtodo favorito respecto al resto de gestores de arranque disponibles para la arquitectura x86. A continuacin tiene una lista de las caractersticas ms importantes:

GRUB proporciona un verdadero entorno basado en comandos, pre-sistema operativo, para las mquinas x86. Esta funcionalidad le otorga al usuario una gran flexibilidad en la carga de sistemas operativos con opciones especficas o con la recopilacin de informacin sobre el sistema. Durante muchos aos, las arquitecturas diferentes a x86 han usado entornos previos al sistema operativo que permiten arrancar el sistema desde una lnea de comandos. GRUB soporta el modo Direccionamiento Lgico de Bloques (LBA). El modo LBA coloca la conversin de direccionamiento utilizada para buscar archivos en la unidad de disco duro del firmware y se utiliza en muchos discos IDE y en todos los discos duros SCSI. Antes de LBA, los gestores de arranque encontraban la limitacin del cilindro 1024 del BIOS, donde el BIOS no poda encontrar un archivo despus de ese cabezal de cilindro del disco. El soporte LBA permite que GRUB arranque los sistemas operativos desde las particiones ms all del lmite de 1024 cilindros, siempre y cuando el BIOS del sistema soporte el modo LBA. Las mayora de las revisiones ms modernas de la BIOS soportan el modo LBA. GRUB puede leer las particiones ext2. Esto permite que GRUB acceda a su archivo de configuracin, /boot/grub/grub.conf, cada vez que el sistema arranca, eliminando la necesidad que tiene el usuario de escribir una nueva versin de la primera etapa del gestor de arranque al MBR en caso de que se produzcan cambios de la configuracin. El nico caso en el que el usuario necesitara reinstalar GRUB en el MBR es en caso de que la localizacin fsica de la particin /boot/ se traslade en el disco.

Instalacin de GRUBSi no instal GRUB durante el proceso de instalacin, se puede hacer despus. Una vez instalado, se convierte en el gestor de arranque por defecto. Antes de instalar GRUB, debera asegurarse de que cuenta con el ltimo paquete disponible de GRUB desde los CD-ROMs de instalacin. En la semana siguiente veremos cmo trabajar con paquetes de redhat para instalarlos y actualizarlos. Una vez que el paquete GRUB est instalado, abra un intrprete de comandos de la shell y ejecute el comando /sbin/grub-install , donde es la ubicacin en la que la Etapa 1 de GRUB debera ser instalado. Por ejemplo, el comando siguiente instala GRUB al MBR del dispositivo maestro IDE en el bus IDE primario:/sbin/grub-install /dev/hda

La prxima vez que arranque el sistema, el men del gestor de arranque grfico GRUB aparecer antes del que el kernel se cargue en memoria. Este paso de instalar el GRUB slo es necesario si hemos perdido el gestor de arranque (instalamos windows despus de linux por ejemplo) o si no hemos instalado el grub al instalar el sistema (esto ya no tiene lgica pues SIEMPRE debemos instalar el grub desde el instalador del sistema) Una de las cuestiones ms importantes que deben entenderse antes de utilizar GRUB es cmo el programa hace referencia a los dispositivos, por ejemplo, a los discos duros y a las particiones. Esta informacin es muy importante si desea configurar GRUB para arrancar varios sistemas operativos.

Nombres de dispositivosCuando se refiera a un dispositivo especfico con GRUB, haga esto usando el formato siguiente (observe que los parntesis y las comas son muy importantes en la sintaxis):(,)

El especifica el tipo de dispositivo desde el cual inicia GRUB. Las dos opciones ms comunes son hd para un disco duro o fd para un disquete de 3.5. Un tipo de dispositivo menos usado tambin est disponible, llamado nd para un disco de la red. Las instrucciones sobre la configuracin de GRUB para arrancar desde la red estn disponibles en http://www.gnu.org/software/grub/manual/. El es el nmero del dispositivo BIOS. El disco duro IDE primario se numera 0 y un disco duro IDE secundario se numera 1. La sintaxis es equivalente a aquella utilizada para los dispositivos por el kernel. Por ejemplo, a en hda para el kernel es anlogo a 0 en hd0 para GRUB, b en hdb es anlogo a 1 en hd1, y as sucesivamente. El hace referencia al nmero de una particin concreta en un dispositivo. Al igual que en el caso de , la mayora de los tipos de particiones son numeradas comenzando por 0. Aunque la mayora de las particiones se especifican con nmeros, si el sistema usa particiones BSD a stas se har referencia con letras, con a correspondiendo a 0, b correspondiendo a 1 y as sucesivamente. El sistema de numeracin para dispositivos bajo GRUB empieza por 0 y no por 1. Este es uno de los errores que cometen con ms frecuencia los usuarios que empiezan a utilizar GRUB. Para dar un ejemplo, si un sistema tiene ms de un disco duro, GRUB se refiere al primer disco duro como (hd0) y al segundo como (hd1). De la misma forma, GRUB se refiere a la primera particin en la primera unidad como (hd0,0) y a la tercera particin en el segundo disco duro como (hd1,2).

En general, GRUB usa las reglas siguientes para denominar los dispositivos y las particiones:

No es relevante si los discos duros que utiliza son IDE o SCSI. Todos los discos duros empiezan con las letras hd. Se utilizan las letras fd para especificar las unidades de disquete. Para especificar todo un dispositivo sin respetar sus particiones, simplemente debe suprimir la coma y el nmero de particin. Esto es importante para indicarle a GRUB que configure el registro MBR para un disco concreto. Por ejemplo, (hd0) especifica la MBR en el primer dispositivo y (hd3) especifica la MBR en el cuarto dispositivo. Si un sistema tiene varios dispositivos de discos, es muy importante saber el orden de arranque configurado en la BIOS. Esto es muy sencillo si slo tiene discos IDE o SCSI, pero si tiene una combinacin de ambos, se vuelve crtico que se acceda primero el tipo de unidad con la particin de arranque.

Nombres de archivos y listas de bloqueoAl escribir comandos en GRUB que hagan referencia a un archivo, como una lista de mens, es necesario especificar una ruta de archivos absoluta despus de los nmeros de dispositivo y particin. Lo siguiente ilustra la estructura de tal comando:(,)

En este ejemplo, reemplace con hd (harddisk device), fd (floppydisk device) o nd (network device). Reemplace con el nmero entero para el dispositivo. Reemplace con una ruta absoluta relativa al nivel ms superior del dispositivo. Tambin puede especificar archivos a GRUB que no aparecen realmente en el sistema de archivos, tal como un gestor de arranque en cadena que aparece en los primeros bloques de la particin. Para cargar tales archivos, deber indicar una lista de bloques, que indique a GRUB, bloque por bloque, la ubicacin exacta del archivo en la particin. Puesto que un archivo puede estar formado por varios conjuntos de bloques, hay una sintaxis especfica para escribir listas de bloques. Cada bloque que contiene el archivo se describe con un nmero de desplazamiento de bloques seguido de un nmero de bloques de ese punto de desplazamiento. Los desplazamientos de bloques se listan secuencialmente y delimitados por comas. La siguiente es una lista de bloques de ejemplo:0+50,100+25,200+1

Esta lista de bloques de ejemplo especifica un archivo que empieza en el primer bloque de la particin y que usa los bloques del 0 al 49, del 99 al 124, y el 199.

Saber cmo escribir listas de bloques es til al utilizar GRUB para cargar sistemas operativos que usan el mtodo de carga encadenada. Puede suprimir el nmero de desplazamiento de bloques si empieza por el bloque 0. Por ejemplo, el archivo de carga encadenada de la primera particin del primer disco duro tendr el nombre siguiente:(hd0,0)+1

Lo siguiente muestra el comando chainloader con una designacin de lista de bloques similar en la lnea de comandos de GRUB despus de establecer el dispositivo correcto y la particin adecuada como raz:chainloader +1

El Sistema de archivos raz y GRUBAlgunos usuarios se confunden con el uso del trmino sistema de archivos raz tiene un significado diferente con relacin a GRUB. Es importante recordar que el sistema de archivos raz de GRUB no tiene nada que ver con el sistema de archivos raz de Linux. El sistema de archivos raz de GRUB es el nivel superior del dispositivo especificado. Por ejemplo, el archivo imagen (hd0,0)/grub/splash.xpm.gz est ubicado dentro del directorio /grub/ en el nivel superior (o raz) de la particin (hd0,0) (la cual es en verdad la particin /boot/ para el sistema). Luego, se ejecuta el comando kernel con la ubicacin del archivo del kernel como una opcin. Una vez que el kernel de Linux inicia, establece el sistema de archivos raz con el cual los usuarios de Linux estn familiarizados. El sistema de archivos raz de GRUB original y sus montajes se olvidan; la nica finalidad de su existencia era arrancar el archivo del kernel. GRUB dispone de tres interfaces eficaces que proporcionan distintos niveles de funcionalidad. Cada una de estas interfaces permite a los usuarios arrancar el kernel de Linux u otros sistemas operativos. Las interfaces son como sigue: Las interfaces siguientes de GRUB solamente se pueden acceder presionando alguna tecla dentro de los tres segundos en que la pantalla de GRUB se muestra. Interfaz de men Esta es la interfaz por defecto cuando se configura GRUB por el programa de instalacin. En esta interfaz hay un men de sistemas operativos o kernels preconfigurados en forma de lista ordenada por nombres. Puede utilizar las teclas de flecha para seleccionar una opcin diferente a la seleccin por defecto y pulsar la tecla [Intro] para iniciarla. Como alternativa, existe un perodo de espera, despus del cual GRUB iniciar la carga de la opcin por defecto.

Presione la tecla [e] para entrar en la interfaz del editor o la tecla [c] para cargar la interfaz de lnea de comandos. Interfaz del editor de men de entrada Para tener acceso al editor de entradas del men, presione la tecla [e] desde el men del gestor de arranque. Los comandos de GRUB de dicha entrada se muestran aqu y puede alterar estas lneas de comandos antes de arrancar el sistema operativo agregando una lnea de comandos ([o] inserta una nueva lnea despus de la lnea actual y [O] inserta una nueva lnea antes de ella), modificandola ([e]), o borrando una ([d]).

Una vez realizados los cambios, la tecla [b] ejecuta los comandos y arranca el sistema operativo. Con la tecla [Esc] se omiten los cambios y el usuario vuelve a la interfaz de men estndar. Con la tecla [c] se carga la interfaz de lnea de comandos.

Interfaz de lnea de comandos La interfaz de lnea de comandos es la ms bsica de GRUB, pero tambin la que proporciona un mayor control. En esta interfaz de lnea de comandos puede escribir cualquier comando de GRUB seguido de la tecla [Intro] para ejecutarlo. Esta interfaz cuenta con algunas funciones similares a las de shell avanzadas, incluyendo el uso de [Tab] para autocompletar y las combinaciones de teclas con [Ctrl] al escribir comandos, tales como [Ctrl]-[a] para moverse al comienzo de la lnea y [Ctrl]-[e] para moverse al final. Adems, las teclas de flecha, [Inicio], [Fin], y [Supr] funcionan de forma similar al indicador de comandos bash.

2.5.1. Orden de carga de las interfacesCuando GRUB carga la segunda etapa de su gestor de arranque, primero busca por su archivo de configuracin. Cuando lo encuentra, muestra la pantalla de men de GRUB. Si se presiona una tecla dentro de tres segundos, GRUB crea una lista de men y la despliega. Si no se presiona ninguna tecla, se utiliza la entrada predeterminada de GRUB.

Si no puede encontrar el archivo de configuracin o si ste no se puede leer, GRUB carga la interfaz de lnea de comandos para permitirle al usuario escribir manualmente los comandos necesarios para completar el proceso de arranque. En el caso de que el archivo de configuracin no sea vlido, GRUB imprimir el error y solicitar la introduccin de valores. Esto puede ser muy til, porque podr ver con exactitud donde est el problema y corregirlo en el archivo. Si pulsa cualquier tecla se volver a cargar la interfaz de men, donde podr modificar la opcin de men y

corregir el problema segn el error que GRUB haya notificado. Si la correccin falla, GRUB informa del error y puede empezar de nuevo. GRUB permite varios comandos en su lnea de comandos. Algunos de los comandos aceptan opciones despus del nombre y estas opciones deben ir separadas del comando por comas y de otras opciones de esa lnea por carcteres de espacio. En la lista siguiente se indican algunos comandos tiles: boot

Arranca el sistema operativo o gestor de encadenamiento que se ha cargado. chainloader Carga el archivo especificado como gestor de encadenamiento. Si el archivo est ubicado en el primer sector de la particin especificada, puede utilizar la notacin de lista de bloques, +1, en vez del nombre del archivo. Lo siguiente es un ejemplo del comando chainloader:chainloader +1

displaymem

Muestra el uso actual de memoria, en funcin de la informacin de la BIOS. Esto es til si no est seguro de la cantidad de RAM que tiene un sistema y todava tiene que arrancarlo. initrd Le permite especificar un disco RAM inicial para utilizarlo al arrancar. Es necesario un initrd cuando el kernel necesita ciertos mdulos para poder arrancar adecuadamente, tales como cuando la particin se formatea con el sistema de archivos ext3. A continuacin se muestra un ejemplo del comando initrd:initrd /initrd-2.6.8-1.523.img

install p Instala GRUB en la MBR del sistema. o Significa un dispositivo, particin y archivo donde el

o o o

primer gestor de arranque puede ser encontrado, tal como (hd0,0)/grub/stage1. Especifica el disco donde la etapa 1 del gestor de arranque debera ser instalado, tal como (hd0). Pasa la ubicacin de la etapa 2 del gestor de arranque a la etapa 1, tal como (hd0,0)/grub/stage2. p Esta opcin le indica al comando install que busque por el archivo de configuracin de men especificado por , tal como (hd0,0)/grub/grub.conf.

El comando install sobreescribe cualquier informacin que ya se encontraba en el MBR.

kernel

... Especifica el archivo del kernel a cargar cuando se cargue el sistema operativo. Reemplace con una ruta absoluta desde la particin especificada por el comando root. Reemplace con las opciones para el kernel de Linux, tales como root=/dev/hda5 para especificar el dispositivo en el que se ubica la particin root para el sistema. Se pueden pasar mltiples opciones al kernel en una lista separada por comas. Lo siguiente es un ejemplo para el comando kernel:kernel /vmlinuz-2.4.21 root=/dev/hda5

La opcin en el ejemplo anterior especifica que el sistema de archivos raz para Linux est ubicado en la particin hda5. root (,) Configura la particin raz para GRUB, tal como (hd0,0) y monta la particin.

A continuacin se presenta un ejemplo para el comando root:root (hd0,0) rootnoverify (,) Configura la particin como el comando root pero no monta la particin.

raz para GRUB, tal

Tambin estn disponibles otros comandos; escriba help --all para una lista completa de comandos. Para una descripcin de todos los comandos GRUB, consulte la documentacin disponible en lnea en http://www.gnu.org/software/grub/manual/.

Cambiar los niveles de ejecucin en el tiempo de arranqueBajo Red Hat Enterprise Linux, es posible cambiar el nivel de ejecucin predeterminado en el momento de arranque. Esto puede ser necesario cuando por ejemplo el nivel en el que estamos nuestro sistema no arranca, est fallando algo en la configuracin del ambiente X por ejemplo, con esta opcin podemos arrancar en otro modo (3 por ejemplo) y saltarnos el problema en el ambiente grfico. Para cambiar el nivel de ejecucin de una sesin de arranque, utilice las instrucciones siguientes:

Cuando la pantalla de men de GRUB aparece durante el arranque, presione cualquier tecla para entrar al men de GRUB (dentro de los primeros tres segundos). Presione la tecla [a] para aadir al comando kernel.

Aada al final de la lnea de opciones de arranque para iniciar en el nivel de ejecucin deseado. Por ejemplo, la entrada siguiente iniciar un proceso de arranque en el nivel 3.grub append> ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3

El archivo de configuracin (/boot/grub/grub.conf), usado para crear la lista en la interfaz de men de GRUB de los sistemas operativos para el arranque, bsicamente permite al usuario seleccionar un grupo predefinido de comandos para su ejecucin. Pueden utilizarse los comandos que se indican en la seccin anterior, as como algunos comandos especiales disponibles tan slo en el archivo de configuracin.

Estructura del archivo de configuracinEl archivo de configuracin de la interfaz de men de GRUB es /boot/grub/grub.conf. Los comandos para configurar las preferencias globales para la interfaz de men estn ubicados al inicio del archivo, seguido de las diferentes estrofas para cada sistema operativo o kernels listados en el men. El siguiente es un ejemplo de archivo de configuracin de men de GRUB muy bsico diseado para arrancar bien sea Red Hat Enterprise Linux o Microsoft Windows 2000:default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux AS (2.6.8-1.523) root (hd0,1) kernel /vmlinuz-2.6.8-1.523 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.8-1.523.img # section to load Windows title Windows rootnoverify (hd0,0) chainloader +1

Este archivo indicar a GRUB que cree un men con Red Hat Enterprise Linux como el sistema operativo predeterminado y que establezca un arranque automtico despus de 10 segundos. Se proporcionan dos secciones, una para cada entrada de sistema, con comandos especficos para la tabla de particin del sistema. Observe que la opcin predeterminada est especificada como un entero. Esto hace referencia a la primera lnea title en el archivo de configuracin de GRUB. Para que la seccin Windows sea predeterminada, cambie el valor default=0 a default=1. La configuracin de un archivo de configuracin del men para GRUB para arrancar diferentes sistemas operativos mltiples (windows, BSD, DOS, etc), no la veremos. Pero pueden referirse a la documentacin adicional de este captulo para ms referencias.

Configuracin de Directrices de archivosLas directrices siguientes son utilizadas a menudo en el archivo de configuracin de men de GRUB: chainloader

Carga el archivo especificado como gestor de encadenamiento. Reemplace con la ruta absoluta al gestor de encadenamiento. Si el archivo est ubicado en el primer sector de la particin especificada, puede utilizar la notacin de lista de bloques, +1. color Le permite configurar los colores especficos que se usarn en el men. Se configuran dos colores: uno de fondo y otro de primer plano. Use nombres de colores simples, tales como red/black para rojo/negro. Por ejemplo:color red/black green/blue

default=

Reemplace con nmero del ttulo de la entrada por defecto a cargar si se supera el tiempo de inactividad de la interfaz de men. fallback Reemplace con el nmero del ttulo de la entrada que deber probarse si falla el primer intento. hiddenmenu Si se utiliza, no se podr mostrar la interfaz de men de GRUB, cargando la entrada default (predeterminada) cuando caduca el perodo timeout (tiempo de espera). El usuario puede ver el men estndar de GRUB si pulsa la tecla [Esc]. initrd Permite a los usuarios especificar un disco RAM inicial para utilizarlo al arrancar. Reemplace con la ruta absoluta al disco RAM inicial. kernel Especifica el archivo del kernel a cargar cuando se arranca el sistema operativo. Reemplace con una ruta absoluta desde la particin especificada por la directi root. Se pueden pasar mltiples opciones al kernel cuando ste se cargue. password= Si se utiliza, el usuario que no conozca la contrasea no podr modificar las entradas de esta opcin de men. Opcionalmente, puede especificar un archivo de configuracin de men alternativo despus de la directriz password=. En este caso, GRUB reiniciar la etapa 2 del gestor de arranque y utilizar este archivo de configuracin alternativo para crear el men. Si se omite este archivo de configuracin alternativo del comando, el usuario que sepa la contrasea podr modificar el archivo de configuracin actual. La password se especifica en texto claro o si deseamos podemos encriptarla con md5crypt y ese valor que nos salga podemos ponerla en el grub.conf como: password --md5 LAPASSWORDENCRIPTADA

root (,) Configura la particin raz para GRUB, tal como (hd0,0) y monta la particin.

rootnoverify (,) Configura la particin raz para GRUB, tal como el comando root pero no monta la particin. timeout= Especifica la cantidad de tiempo, en segundos, antes de que GRUB cargue la entrada designada por el comando default. splashimage= Especifica la ubicacin de la imagen de

pantalla splash que se utilizar al arrancar. titletitulo-de-grupo Establece un ttulo que se utilizar con un grupo de comandos concreto para cargar un sistema operativo.

Para aadir comandos legibles al archivo de configuracin de men, comience la lnea con un carcter de almohadilla (#).

Documentacin instalada /usr/share/doc/grub-/

Este directorio contiene muy buena informacin sobre el uso y configuracin de GRUB, donde corresponde a la versin del paquete de GRUB instalado. info grub La pgina de informacin de GRUB, contiene un tutorial, un manual de referencia para el usuario, un manual de referencia para el programador y un documento de Preguntas ms frecuentes (FAQ) sobre GRUB y su uso.

Sitios Web tiles

http://www.gnu.org/software/grub/ Pgina principal del proyecto GNU GRUB. Este sitio contiene informacin sobre el estado de desarrollo de GRUB y una seccin de Preguntas ms frecuentes (FAQ). Manual de grub: http://www.gnu.org/software/grub/manual/grub.html http://www.redhat.com/mirrors/LDP/HOWTO/mini/Multiboot-withGRUB.html Investiga los distintos usos de GRUB, incluido el arranque de sistemas operativos que no son Linux. http://www.linuxgazette.com /issue64/kohli.html Artculo de introduccin en el que se describe cmo configurar GRUB en el sistema desde el principio y en el que se ofrece una introduccin general a las opciones de la lnea de comandos de GRUB. http://www.tldp.org/HOWTO/Multiboot-with-GRUB.html - Pequeo howto sobre cmo arrancar varios sistemas a la vez http://www.tldp.org/HOWTO/Linux+Win9x+Grub-HOWTO/index.html - Linux con win9x (howto)

Syslog es el demonio que usan los servidores linux para guardar los mensajes que los demonios del sistema necesitan guardar. No es recomendado el que cada demonio guarde por su lado los mensajes, puesto que el trabajo de guardar los mensajes es pesado a veces y debe tratar de coordinarse para ahorrar recursos. No es lo mismo 5 50 demonios tratando de escribir a disco que 5

50 demonios envindole mensajes al syslog el cual se encargar en su debido momento de escribir estos mensajes a disco, coordinando las escrituras y sobre todo ahorrando accesos de escritura innecesarios al disco. El syslog es un paquete que viene instalado por defecto en un servidor linux, y normalmente viene bien configurado y trabajando. Nunca recomendamos detener el syslog, ya que sin l no se podran guardar muchos mensajes de los demonios del sistema. Los logs (histricos) del sistema siempre tienen mucha informacin intil (ruido) que muchas veces no nos interesan, pero tambin tienen mucha cantidad de informacin til que ya iremos viendo cmo leer e interpretar. Activando el syslog: Aunque normalmente el syslog viene activado nunca est de ms verificar si el syslog est activado:chkconfig --list syslog syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Listo, est activado. Si por casualidad requiriramos de activar el syslog, podramos hacerlo con el comando que ya conocemos, este paso no es requerido, solamente deben hacerlo las personas que no lo tengan activado:chkconfig --level 2345 syslog on service syslog start

Listo, con esto tenemos el syslog activo. En el syslog existen 12+8 facilidades (facilities) que pueden loguearse a un sistema y 8 diferentes tipos de prioridades para las facilidades. Este par (facilidad-prioridad) se describen normalmente en la primera columna que vemos en el ejemplo anterior y estn separadas por el signo de punto (.). Veamos la siguiente lnea del syslog.conf:uucp,news.crit /var/log/spooler

Primero va la facilidad (por ejemplo uucp,news son dos facilidades) y despus la prioridad sobre la que trabajamos (crit, de critical). Es decir que los mensajes crticos para estas dos facilidades van a parar al archivo /var/log/spooler Un signo de asterisco significa como siempre: cualquier cosa. Cualquier facilidad, cualquier prioridad. Las facilidades se pueden separar en estos valores:Nombre de la facilidad auth authpriv Descripcin Mensajes de seguridad/autorizacin Mensajes privados de

autorizacin cron daemon kern lpr mail mark news security syslog user uucp local0 a local7 mensajes del cron demonios del sistema mensajes del kernel mensajes del subsistema de impresin mensajes del sistema de mensajera no usar mensajes para news Lo mismo que auth, no usar. mensajes internos del syslog mensajes a nivel de usuario subsistema de uucp uso local variado

mark es una facilidad para uso interno del sistema y no se debe usar. security es lo mismo que auth y es un keyword que est depreciado, no se debe usar tampoco. Bsicamente si nos fijamos existen una cantidad de mensajes para sistemas que ya no funcionan (news, uucp), realmente el syslog es algo a mejorar en linux. En todo caso, es mejor dejar los facilities tal y como redhat nos los ofrece y no intentar modificarlos a no ser que conozcamos lo que estemos haciendo. Las facilities se originan por el hecho de poder separar diferentes mensajes en diferentes archivos de texto. Muchas aplicaciones modernas que necesitan sus propios archivos de texto mejor usan las facilities reservadas (del local0 al local7) para loguear sus mensajes. Los niveles de prioridad (priorities) en los mensajes son los siguientes:Priority emerg alert crit err o error warning notice Descripcin emergencia, el sistema est cado alerta, debe tomarse una accin inmediatamente critical, condiciones de errores crticos error, condiciones de error advertencia, mensaje de advertencia que no llega a ser error noticia, condicin normal, pero no significativa como para emitir una advertencia mensajes informativo mensajes de debugueo

info debug

Por supuesto, mientras ms vamos subiendo en la tabla anterior ms complicados son los mensajes pero menos hablador se vuelve el sistema.

El tener un sistema que le estamos indicando que guarde mensajes de debug puede hacerlo muy hablador y consumirnos muchos recursos, principalmente disco. Veamos ahora qu dice el archivo syslog.conf, adentrmonos un poco en el archivo de configuracin del syslog, este est localizado en etc:vi /etc/syslog.conf # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* /var/log/maillog # Log cron stuff cron.* # Everybody gets emergency messages *.emerg -

/dev/console

/var/log/cron *

# Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log

Toda linea con almoadilla (#) es un comentario, que nos puede ayudar a identificar la funcionalidad de las siguientes lneas, pero normalmente para el syslog no significan nada al estar comentadas.*.info;mail.none;authpriv.none;cron.none /var/log/messages

Esto lo que significa es que guarde todos (*) los mensajes con prioridad tipo informativa (info) hacia el archivo /var/log/messages. Ahora, hay una curiosidad y es que tambin le estamos pidiendo al syslog que no loguee a este archivo (none) nada sobre las facilidades mail, authpriv y cron. Esto porque estas facilidades las guardaremos en otro lado. Es decir, cualquier mensaje del tipo mail.info, aunque coincida con *.info no se loguear porque le hemos excluido explcitamente todo lo referente a mail (mail.none) As que en /var/log/messages, tendremos todos los mensajes informativos del sistema bsicamente.

authpriv.* /var/log/secure

Los mensajes authpriv (todo tipo de prioridad) van hacia un log especial llamado /var/log/secure, aqu se nos describir informacin detallada sobre los intentos de entrada (autenticacin) a nuestro sistema. mail.* -/var/log/maillog Los mensajes del subsistema mail (todos) van hacia un log especfico llamado /var/log/maillog. Si se fijan bien, este archivo /var/log/maillog va precedido por un signo de -, esto lo que significa es que el syslog no est obligado a sincronizar inmediatamente una peticin de este subsistema hacia el archivo. Esto es, por defecto cualquier mensaje que llegue al syslog, ste har lo mejor posible por inmediatamente escribirlo a disco. Ahora, si llegaran 40 peticiones por segundo, esto generara que el syslog mandara a escribir a disco de forma desorganizada 40 veces... es la forma normal de sincronizar y consume muchos recursos de disco. Con poner el - delante del archivo (fjense que es sin usar espacio entre - y /) le indicamos al syslog que puede mantener en memoria una peticin de escritura a los logs, y slo cada cierto tiempo escribir al sistema; esto es, le estamos diciento al syslog que escriba de forma asncrona. De esta forma se pueden organizar y mandar en lotes ms grandes las escrituras a disco. Y esto hace que decrezca bastante el uso de un recurso tan lento como es el disco. Nosotros siempre, siempre, siempre usamos el - delante de TODOS los archivos de logs. Esto es, en cada una de las lneas del syslog agregamos - donde no lo hay. Para que queden como esta lnea. Esto hace que de verdad decrezca bastante el uso de disco. Por supuesto existe un peligro que es que si por alguna razn el sistema se apaga, estos ltimos segundos de logs se perdern pues puede que estuvieran en memoria esperando a ser guardados a discos. Por mi parte, es un riesgo que estoy dispuesto a correr con tal de no afectar tanto al sistema con constantes escrituras al disco. TAREA: Modificar todas las lneas del syslog para que todos los mensajes se escriban de forma asncrona.cron.* /var/log/cron

Lo mismo que el anterior, todos los mensajes del sistema de cron se enviarn a /var/log/cron*.emerg *

Esto bsicamente lo que significa es que los mensajes de emergencia llegarn a todos los que estn conectados al sistema (desde terminales ya sea remotas o consolas).local7.* /var/log/boot.log

Todos los mensajes de la facilidad local7 irn a /var/log/boot.log, el sistema linux al arrancar enva hacia local7 todos los mensajes del sistema de arranque, lo que nos

permite ver cmo fue levantando cada subsistema al arrancar. syslog-ng Es otro paquete para manejo de logs que est disponible en algunas distribuciones, es capaz de entender las facilities y prioridades del syslog normal, pero adems es capaz de trabajar con muchas otras variantes como tipo de filtros a los logs para poder precisar con mayor detalle hacia donde van los logs. Es relativamente nuevo, dicen que no slo es ms configurable sino ms rpido. Suponemos que redhat en el futuro se cambie al syslog-ng, ya muchas otras distros lo usan. ahora, el cmo se configura el syslog no es un tema que debemos preocuparnos mucho, pero s debemos pensar en cmo leer e interpretar situaciones en los logs del sistema. Los logs del sistema, si nos fijamos en syslog.conf veremos que todos se guardan en /var/log, vayamos a all.[root@eperez ~]# cd /var/log/ [root@eperez log]# ll total 5992 -rw-r----- 1 root root 19619 -rw------- 1 root root 12391 -rw------- 1 root root 15593 -rw------- 1 root root 49165 -rw------- 1 root root 124258 -rw------- 1 root root 98810 -rw------- 1 root root 125832 -rw------- 1 root root 47508 -rw------- 1 root root 7088 -rw------- 1 root root 13611 -rw------- 1 root root 14219 -rw------- 1 root root 13586 -rw------- 1 root root 5088 drwxr-xr-x 2 lp sys 4096 -rw-r--r-- 1 root root 10473 drwxr-xr-x 2 root root 4096 drwx------ 2 root root 4096 drwxr-xr-x 2 root root 4096 -r-------- 1 root root 19136220 drwxr-xr-x 2 root root 4096 -rw------- 1 root root 6120 -rw------- 1 root root 22977 -rw------- 1 root root 12346 -rw------- 1 root root 14484 -rw------- 1 root root 5308 -rw------- 1 root root 312996 -rw------- 1 root root 761886 -rw------- 1 root root 682827 -rw------- 1 root root 725521 -rw------- 1 root root 279267 drwx------ 2 root root 4096 -rw-r--r-- 1 root root 30114 -rw-r--r-- 1 root root 22501 -rw-r--r-- 1 root root 21125

Sep Jul Jul Sep Sep Aug Aug Aug Sep Sep Aug Aug Aug Sep Sep Sep Aug Aug Sep Jul Sep Sep Aug Aug Aug Sep Sep Aug Aug Aug Feb Sep Sep Sep

7 21 21 7 4 28 21 14 7 4 28 21 14 4 7 7 21 26 7 21 7 4 28 21 14 7 4 28 21 14 21 7 7 3

07:19 16:48 16:48 07:19 09:13 19:12 19:23 12:49 12:01 09:13 19:12 19:23 12:49 09:13 07:19 07:19 19:23 23:24 07:19 16:33 08:24 09:13 19:12 19:23 11:44 12:01 09:13 19:12 19:23 12:49 2005 08:25 08:25 08:53

acpid anaconda.log anaconda.syslog boot.log boot.log.1 boot.log.2 boot.log.3 boot.log.4 cron cron.1 cron.2 cron.3 cron.4 cups dmesg gdm httpd ices lastlog mail maillog maillog.1 maillog.2 maillog.3 maillog.4 messages messages.1 messages.2 messages.3 messages.4 ppp prelink.log rpmpkgs rpmpkgs.1

-rw-r--r--rw-r--r--rw-r--r-drwx------rw-r--r--rw-------rw-------rw-------rw-------rw-------rw-------rw-------rw-------rw-------rw------drwxr-x---rw------drwxr-xr-x -rw-rw-r--rw-rw-r--rw-------rw-------rw-------rw-------rw-------rw-r--r--rw-r--r--rw-r--r--rw-r--r--

1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1

root root root root root root root root root root root root root root root squid root root root root root root root root root root root root root

root root root root root root root root root root root root root root root squid root root utmp utmp root root root root root root root root root

20891 20781 20675 4096 126324 2865 6175 5858 9804 4287 0 0 0 0 0 4096 542 4096 422400 1669248 0 0 0 0 0 32678 32678 891 14449

Aug Aug Aug Feb Aug Sep Sep Aug Aug Aug Sep Aug Aug Aug Aug Sep Jul Feb Sep Sep Sep Aug Aug Aug Aug Sep Sep Aug Sep

26 19 10 21 14 7 4 28 21 14 4 28 21 14 8 4 29 21 7 1 4 28 21 14 8 7 6 1 6

09:39 09:08 08:45 2005 19:31 09:07 08:45 18:07 18:18 11:51 09:13 19:12 19:23 12:49 07:29 09:13 11:19 2005 12:10 08:25 09:13 19:12 19:23 12:49 07:29 07:20 19:00 06:52 19:42

rpmpkgs.2 rpmpkgs.3 rpmpkgs.4 samba scrollkeeper.log secure secure.1 secure.2 secure.3 secure.4 spooler spooler.1 spooler.2 spooler.3 spooler.4 squid sudolog vbox wtmp wtmp.1 xferlog xferlog.1 xferlog.2 xferlog.3 xferlog.4 Xorg.0.log Xorg.0.log.old Xorg.setup.log yum.log

Veremos que tenemos una serie de archivos y directorios, examinaremos los ms importantes para nosotros. La gran mayora son generados por el syslog, aunque vemos otros que no vimos en el syslog.conf. Estos son generados por aplicaciones que no confan en el syslog: apache y squid por ejemplo tienen sus razones para no confiar. Adems por otros casos en los que el trabajo de usar el syslog sera mayor que el escribir ellos mismos: yum por ejemplo es el paquete de actualizacin del sistema, no se ejecuta concurrentemente con otros yum y por lo tanto no necesita ms que escribir muy espordicamente al sistema. Lo mismo los Xorg* que son logs del ambiente grfico que se generan slo al levantarlo y no hay ms de un ambiente grfico normalmente activo. Adems debemos haber notado que existen una serie de archivos con la terminacin 1 (2, 3, 4, etc), estos son archivos viejos de logs, ms adelante hablaremos del sistema de rotacin de logs. Veamos entonces los archivos de logs ms interesantes: DMESG El primer log que escribe el sistema al levantar se llama dmesg, lo escribe al acabar de arrancar el sistema y contiene informacin sobre cmo fu que el kernel fu subiendo. La utilera dmesg es la encargada de almacenar la informacin del sistema a nivel de kernel y hardware y con slo ejecutarla al final del arranque de linux se obtiene este log que nos brindan.

La utilidad es muy simple, tenemos exactamente cmo levant el sistema la ltima vez, ya que cada vez que el sistema levanta, este archivo es sobreescrito por el arranque.Linux version 2.6.9-11.EL ([email protected]) (gcc version 3.4.3 20050227 (Red Hat 3.4.3-22)) #1 Wed Jun 8 16:59:52 CDT 2005 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000001bff0000 (usable) BIOS-e820: 000000001bff0000 - 000000001bff8000 (ACPI data) BIOS-e820: 000000001bff8000 - 000000001c000000 (ACPI NVS) BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved) 0MB HIGHMEM available. 447MB LOWMEM available. zapping low mappings. On node 0 totalpages: 114672 DMA zone: 4096 pages, LIFO batch:1 Normal zone: 110576 pages, LIFO batch:16 HighMem zone: 0 pages, LIFO batch:1 DMI 2.3 present. ACPI: RSDP (v000 AMI ) @ 0x000fa500 ACPI: RSDT (v001 AMIINT VIA_K7 0x00000010 MSFT 0x00000097) @ 0x1bff0000 ACPI: FADT (v001 AMIINT VIA_K7 0x00000011 MSFT 0x00000097) @ 0x1bff0030 ACPI: PM-Timer IO Port: 0x808 Built 1 zonelists Kernel command line: ro root=LABEL=/ rhgb quiet elevator=as Initializing CPU#0 CPU 0 irqstacks, hard=c03d6000 soft=c03d5000 PID hash table entries: 2048 (order: 11, 32768 bytes) Detected 1666.982 MHz processor. Using tsc for high-res timesource Console: colour VGA+ 80x25 Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Memory: 450300k/458688k available (2062k kernel code, 7736k reserved, 656k data, 144k init, 0k highmem) Calibrating delay loop... 3268.60 BogoMIPS (lpj=1634304) Security Scaffold v1.0.0 initialized SELinux: Initializing. SELinux: Starting in permissive mode There is already a security framework initialized, register_security failed. selinux_register_security: Registering secondary module capability Capability LSM initialized as secondary Mount-cache hash table entries: 512 (order: 0, 4096 bytes) CPU: After generic identify, caps: 0383fbff c1cbfbff 00000000 00000000 CPU: After vendor identify, caps: 0383fbff c1cbfbff 00000000 00000000 CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 256K (64 bytes/line) CPU: After all inits, caps: 0383f3ff c1cbfbff 00000000 00000020 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. CPU: AMD Sempron(tm) 2400+ stepping 01

Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Checking 'hlt' instruction... OK. ACPI: IRQ9 SCI: Edge set to Level Trigger. checking if image is initramfs... it is Freeing initrd memory: 386k freed NET: Registered protocol family 16 PCI: PCI BIOS revision 2.10 entry at 0xfdae1, last bus=1 PCI: Using configuration type 1 mtrr: v2.0 (20020519) ACPI: Subsystem revision 20040816 ACPI: Interpreter enabled ACPI: Using PIC for interrupt routing ACPI: PCI Root Bridge [PCI0] (00:00) PCI: Probing PCI hardware (bus 00) ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: Power Resource [URP1] (off) ACPI: Power Resource [URP2] (off) ACPI: Power Resource [FDDP] (off) ACPI: Power Resource [LPTP] (off) ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12 14 15) ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 *5 6 7 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 10 11 *12 14 15) ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *10 11 12 14 15) Linux Plug and Play Support v0.97 (c) Adam Belay usbcore: registered new driver usbfs usbcore: registered new driver hub PCI: Using ACPI for IRQ routing ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11 ACPI: PCI interrupt 0000:00:10.0[A] -> GSI 11 (level, low) -> IRQ 11 ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 5 ACPI: PCI interrupt 0000:00:10.1[B] -> GSI 5 (level, low) -> IRQ 5 ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 12 ACPI: PCI interrupt 0000:00:10.2[C] -> GSI 12 (level, low) -> IRQ 12 ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 10 ACPI: PCI interrupt 0000:00:10.3[D] -> GSI 10 (level, low) -> IRQ 10 ACPI: PCI interrupt 0000:00:11.1[A]: no GSI ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 12 (level, low) -> IRQ 12 ACPI: PCI interrupt 0000:00:11.6[C] -> GSI 12 (level, low) -> IRQ 12 ACPI: PCI interrupt 0000:00:12.0[A] -> GSI 11 (level, low) -> IRQ 11 ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 11 (level, low) -> IRQ 11 apm: BIOS not found. audit: initializing netlink socket (disabled) audit(1126077532.756:0): initialized Total HugeTLB memory allocated, 0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) SELinux: Registering netfilter hooks Initializing Cryptographic API ksign: Installing public key data Loading keyring - Added public key 907415A840BF72FE - User ID: CentOS-4 (Kernel Module GPG key) pci_hotplug: PCI Hot Plug PCI Core version: 0.5 ACPI: Processor [CPU1] (supports C1) Real Time Clock Driver v1.12 Linux agpgart interface v0.100 (c) Dave Jones agpgart: Detected VIA KM400/KM400A chipset agpgart: Maximum main memory to use for agp memory: 380M agpgart: AGP aperture is 128M @ 0xe0000000 serio: i8042 AUX port at 0x60,0x64 irq 12

serio: i8042 KBD port at 0x60,0x64 irq 1 Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize divert: not allocating divert_blk for non-ethernet device lo Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx VP_IDE: IDE controller at PCI slot 0000:00:11.1 ACPI: PCI interrupt 0000:00:11.1[A]: no GSI VP_IDE: chipset revision 6 VP_IDE: not 100% native mode: will probe irqs later VP_IDE: VIA vt8235 (rev 00) IDE UDMA133 controller on pci0000:00:11.1 ide0: BM-DMA at 0xfc00-0xfc07, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xfc08-0xfc0f, BIOS settings: hdc:DMA, hdd:DMA Probing IDE interface ide0... hda: ST310212A, ATA DISK drive Using anticipatory io scheduler ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Probing IDE interface ide1... hdc: 40X12, ATAPI CD/DVD-ROM drive hdd: ST310215A, ATA DISK drive ide1 at 0x170-0x177,0x376 on irq 15 Probing IDE interface ide2... Probing IDE interface ide3... Probing IDE interface ide4... Probing IDE interface ide5... hda: max request size: 128KiB hda: 19541088 sectors (10005 MB) w/512KiB Cache, CHS=19386/16/63, UDMA(66) hda: cache flushes not supported hda: hda1 hda2 hda3 hdd: max request size: 128KiB hdd: 19925880 sectors (10202 MB) w/2048KiB Cache, CHS=19767/16/63, UDMA(33) hdd: cache flushes not supported hdd: hdd1 hdd2 hdd3 hdc: ATAPI 48X CD-ROM CD-R/RW drive, 2048kB Cache, DMA Uniform CD-ROM driver Revision: 3.20 ide-floppy driver 0.99.newide usbcore: registered new driver hiddev usbcore: registered new driver usbhid drivers/usb/input/hid-core.c: v2.0:USB HID core driver mice: PS/2 mouse device common for all mice input: AT Translated Set 2 keyboard on isa0060/serio0 md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27 NET: Registered protocol family 2 IP: routing cache hash table of 1024 buckets, 32Kbytes TCP: Hash tables configured (established 32768 bind 9362) Initializing IPsec netlink socket NET: Registered protocol family 1 NET: Registered protocol family 17 ACPI: (supports S0 S1 S4 S5) ACPI wakeup devices: PCI0 UAR1 USB1 USB2 USB3 EHCI PS2K AC9 MC9 ILAN SLPB Freeing unused kernel memory: 144k freed kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. SELinux: Disabled at runtime. SELinux: Unregistering netfilter hooks

inserting floppy driver for 2.6.9-11.EL Floppy drive(s): fd0 is 1.44M FDC 0 is a post-1991 82077 via-rhine.c:v1.10-LK1.2.0-2.6 June-10-2004 Written by Donald Becker ACPI: PCI interrupt 0000:00:12.0[A] -> GSI 11 (level, low) -> IRQ 11 divert: allocating divert_blk for eth0 eth0: VIA Rhine II at 0xdffffe00, 00:0b:6a:cc:ed:26, IRQ 11. eth0: MII PHY found at address 1, status 0x786d advertising 05e1 Link 41e1. via82xx: Assuming DXS channels with 48k fixed sample rate. Please try dxs_support=1 or dxs_support=4 option and report if it works on your machine. ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 12 (level, low) -> IRQ 12 PCI: Setting latency timer of device 0000:00:11.5 to 64 ACPI: PCI interrupt 0000:00:10.3[D] -> GSI 10 (level, low) -> IRQ 10 ehci_hcd 0000:00:10.3: EHCI Host Controller ehci_hcd 0000:00:10.3: irq 10, pci mem dc824f00 ehci_hcd 0000:00:10.3: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:10.3: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10 hub 1-0:1.0: USB hub found hub 1-0:1.0: 6 ports detected USB Universal Host Controller Interface driver v2.2 ACPI: PCI interrupt 0000:00:10.0[A] -> GSI 11 (level, low) -> IRQ 11 uhci_hcd 0000:00:10.0: UHCI Host Controller uhci_hcd 0000:00:10.0: irq 11, io base 0000e400 uhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 2 hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected ACPI: PCI interrupt 0000:00:10.1[B] -> GSI 5 (level, low) -> IRQ 5 uhci_hcd 0000:00:10.1: UHCI Host Controller uhci_hcd 0000:00:10.1: irq 5, io base 0000e800 uhci_hcd 0000:00:10.1: new USB bus registered, assigned bus number 3 hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected ACPI: PCI interrupt 0000:00:10.2[C] -> GSI 12 (level, low) -> IRQ 12 uhci_hcd 0000:00:10.2: UHCI Host Controller uhci_hcd 0000:00:10.1: new USB bus registered, assigned bus number 3 hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected ACPI: PCI interrupt 0000:00:10.2[C] -> GSI 12 (level, low) -> IRQ 12 uhci_hcd 0000:00:10.2: UHCI Host Controller uhci_hcd 0000:00:10.2: irq 12, io base 0000ec00 uhci_hcd 0000:00:10.2: new USB bus registered, assigned bus number 4 hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. usb 2-1: new low speed USB device using address 2 input: USB HID v1.10 Mouse [062a:0000] on usb-0000:00:10.0-1 ACPI: Power Button (FF) [PWRF] ACPI: Sleep Button (CM) [SLPB] EXT3 FS on hda3, internal journal device-mapper: 4.4.0-ioctl (2005-01-12) initialised: [email protected] kjournald starting. Commit interval 5 seconds EXT3 FS on hda1, internal journal EXT3-fs: mounted filesystem with ordered data mode. EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended Adding 522104k swap on /dev/hda2. Priority:-1 extents:1

En mi caso este es el dmesg que tenemos, el cual indica una serie de informacin particular a mi sistema que puede ser analizada concienzudamente. Entre ella veremos ciertos detalles que pueden ser de inters: El kernel que est corriendo es el 2.6.9-11.EL y fue compilado por la versin 3.4.3 del GCC. Tengo 447MB de memoria (LOW RAM le llaman). La cadena de arranque del kernel fue: ro root=LABEL=/ rhgb quiet elevator=as. Tengo una cpu (CPU#0) que es un procesador de 1.6GHz aproximadamente. La memoria que ocupa el kernel es de 2MB, reserv otros 7MB para si acaso lo requiriera el kernel y le quedan unos 450kb disponibles (Memory: 450300k/458688k available (2062k kernel code, 7736k reserved, 656k data, 144k init, 0k highmem) El sistema tiene una velocidad de 3268.60 BogoMIPS, Activ el SELinux en modo permisivo (lo que es lo mismo que tener apagado el SELinux) Tengo una cach L2 de 256K la CPU es un sempron (CPU: AMD Sempron(tm) 2400+ stepping 01) Tiene un puerto serial (ttyS0) tiene dos discos ide (hda y hdc) tiene un cdrom (hdd) Tiene una interfaz de ethernet del tipo via rhine (eth0: VIA Rhine II at 0xdffffe00, 00:0b:6a:cc:ed:26, IRQ 11.) Eso bsicamente es lo que me interes averiguar de lo que el kernel detect al iniciar el sistema. Por medio de este log podemos averiguar boot.log Una vez que el kernel levanta, comienza el proceso de arranque de servicios, este proceso puede ser observado en /var/log/boot.log Cada servicio que arranca o se detiene en nuestro sistema queda grabado en boot.log:Sep 7 07:19:27 succeeded Sep 7 07:19:37 Sep 7 07:19:29 Sep 7 07:19:38 Sep 7 07:19:38 Sep 7 07:19:38 Sep 7 07:19:38 eperez network: Bringing up loopback interface: eperez eperez eperez eperez eperez eperez xinetd: xinetd startup succeeded network: Bringing up interface eth0: succeeded sendmail: sendmail startup succeeded sendmail: sm-client startup succeeded gpm: gpm startup succeeded crond: crond startup succeeded

Sep 7 07:19:39 Sep 7 07:19:40 Sep 7 07:19:40 Sep 7 07:19:40 Sep 7 07:19:42 Sep 7 07:19:42 Sep 7 07:19:42 Sep 7 07:19:42 Sep 7 07:19:43 Sep 7 07:19:43 Sep 7 07:19:43 succeeded Sep 7 07:19:44 Sep 7 14:44:10 Sep 7 14:44:10 Sep 7 14:44:10 Sep 7 14:44:10

eperez eperez eperez eperez eperez eperez eperez eperez eperez eperez eperez eperez eperez eperez eperez eperez

squid: Starting squid: squid: . squid: rc: Starting squid: succeeded xfs: xfs startup succeeded anacron: anacron startup succeeded atd: atd startup succeeded readahead: Starting background readahead: rc: Starting readahead: succeeded messagebus: messagebus startup succeeded cups-config-daemon: cups-config-daemon startup haldaemon: haldaemon startup succeeded syslog: klogd shutdown succeeded syslog: syslogd startup succeeded syslog: klogd startup succeeded syslog: syslogd shutdown succeeded

Como la mayora de los logs que veremos, que son generados por el syslog, tienen un formato muy fcil de entender. Primero el mes, da, hora, minutos, segundos. Despus viene el nombre de la mquina que genera los logs (eperez en mi caso) y posteriormente una descripcin de quin mand a generar el log y cul es el mensaje. Por ejemplo:Sep 7 07:19:39 eperez squid: Starting squid:

Este mensaje indica que el da 7 de Septiembre, a las 07:19:39, la mquina ma (eperez) mand a escribir un log a nombre de squid ( squid: ) con el mensaje de que haba iniciado el squid. Sencillo, el problema es que los logs no son compuestos por una lnea, sino que llevan cientos, muchas veces cientos de miles de lneas y a veces es difcil buscar la informacin que deseamos. cron Es el archivo encargado de guardar los eventos que han ido ocurriendo del cron del sistema (/var/log/cron) tiene el mismo formato que usa syslog para todos sus logsSep 7 14:50:00 srv4 CROND[13256]: (apache) CMD (/usr/local/Zend/sbin/cache_clean /usr/local/Zend/etc/php.ini) Sep 7 15:00:00 srv4 CROND[17385]: (root) CMD (/usr/local/bin/weblogs) Sep 7 15:00:00 srv4 CROND[17387]: (apache) CMD (/usr/local/Zend/sbin/cache_clean /usr/local/Zend/etc/php.ini) Sep 7 15:01:00 srv4 CROND[17846]: (root) CMD (run-parts /etc/cron.hourly) Sep 7 15:10:00 srv4 CROND[27255]: (root) CMD (/usr/local/bin/weblogs) Sep 7 15:10:00 srv4 CROND[27257]: (apache) CMD (/usr/local/Zend/sbin/cache_clean /usr/local/Zend/etc/php.ini)

a qu hora ocurri un evento, en qu mquina (srv4 en este ejemplo) y el comando ejecutado. lastlog Es un log compactado, binario, que no puede ser visto directamente sino a travs de una utilera llamada last

[root@srv4 log]# last|less root ttyS0 (00:06) reboot system boot 2.4.21-32.0.1.EL (1+09:19) root tty1 (00:00) root ttyS0 (00:00) root pts/2 144.226.uio.satn (00:00) root pts/2 144.226.uio.satn (00:00) root pts/2 144.226.uio.satn (00:00) root pts/2 144.226.uio.satn (00:00) root pts/2 144.226.uio.satn (00:00) root pts/2 144.226.uio.satn (00:49) root pts/2 144.226.uio.satn (00:00) root pts/2 144.226.uio.satn (00:00) root pts/2 144.226.uio.satn (00:00) root pts/2 144.226.uio.satn (00:00) root pts/2 144.226.uio.satn (00:01) root pts/2 144.226.uio.satn (00:00)

Tue Sep Tue Sep Tue Sep Tue Sep Tue Sep Mon Sep Mon Sep Mon Sep Mon Sep Mon Sep Mon Sep Mon Sep Mon Sep Mon Sep Mon Sep Mon Sep

6 06:06 - 06:13 6 05:59 6 05:52 - down 6 05:51 - 05:52 6 05:48 - 05:49 5 21:41 - 21:41 5 21:37 - 21:37 5 18:34 - 18:34 5 18:27 - 18:27 5 16:43 - 17:33 5 14:03 - 14:03 5 13:27 - 13:27 5 09:29 - 09:29 5 09:01 - 09:01 5 08:25 - 08:27 5 08:17 - 08:17

El formato es muy fcil de entender. Qu usuario entro (root), desde qu terminal (pts/0), desde qu IP (144.226.uio.satnet.net), qu da y ms y las horas de entrada (por ejemplo de 8:25 a 8:27 por un espacio de (00:01) es decir, un minuto. Adems de darnos toda esta informacin compactada, el lastlog nos indica cundo fu reiniciado un sistema (por ejemplo este fue reiniciado a las 5:59AM) y el tiempo que estuvo activo (en este caso 1da+9 horas y 19 minutos). maillog El maillog es el log que se ocupa de guardar todos los eventos de los servicios y sistemas relacionados con la mensajera. Estos son smtp, pop, imap, antivirus, antispam, etc.El formato es el estndar del syslog: Sep 7 15:23:36 srv4 ipop3d[791]: Logout [email protected] host=7.209.cue.satnet.net [200.63.211.7] nmsgs=0 ndele=0 Sep 7 15:23:36 srv4 ipop3d[794]: Logout [email protected] host=nova [200.107.35.34] nmsgs=0 ndele=0 Sep 7 15:23:37 srv4 ipop3d[793]: Logout [email protected] host=66.134.uio.satnet.net [200.25.134.66] nmsgs=11 ndele=0

Sep 7 15:23:37 srv4 sm-acceptingconnections[762]: j87KNXh2000762: from=, size=54894, class=0, nrcpts=1, msgid=, proto=ESMTP, daemon=MTA, relay=gye14.ecua.net.ec [157.100.1.52] Sep 7 15:23:37 srv4 sm-acceptingconnections[762]: j87KNXh2000762: to=, delay=00:00:03, mailer=virthostmail, pri=84894, stat=queued Sep 7 15:23:37 srv4 sm-acceptingconnections[790]: j87KNZ0F000790: from=, size=4448, class=0, nrcpts=1, msgid=, proto=ESMTP, daemon=MTA, relay=bay12-f15.bay12.hotmail.com [64.4.35.15] Sep 7 15:23:37 srv4 sm-acceptingconnections[790]: j87KNZ0F000790: to=, delay=00:00:01, mailer=virthostmail, pri=34448, stat=queued Sep 7 15:23:37 srv4 ipop3d[792]: Login [email protected] host=[201.245.100.209] nmsgs=0/0 Sep 7 15:23:37 srv4 ipop3d[815]: pop3 service init from 200.124.230.250 Sep 7 15:23:37 srv4 ipop3d[816]: pop3 service init from 201.219.10.2

Este es un pequeo extracto de un servidor. En el que indica que el servidor srv4 ha generado todos esos logs. De ipop3d (pop) y de sendmail (sm-*) indicando de quin provino un mail, el numero de identificador (j87KNZ0F000790 por ejemplo) y hacia quin fue el mail, as como el tiempo que se demor en enviarlo (delay=00:00:01) y el tamao (size) del mail. Tambin nos indica si el mail fue enviado (stat=Sent) o encolado (stat=Queued), si un mail est encolado es que est esperando para su procesamiento, si est Sent, no hay mayor historia, el mail est enviado a su destino. Este log es uno de los ms importantes pues nos permite averiguar qu pas con un mail y por qu no lleg a su destino. Frecuentemente los usuarios llaman diciendo que enviaron un mail a [email protected] y que fulanito no lo ha recibido. Mediante este log podemos saber si en verdad hemos recibido un mail dirigido (to) a [email protected] y sabremos a la hora que el otro servidor remoto recibi el correo. Si el mensaje tiene el stat=Sent, entonces no es problema nuestro, nosotros lo enviamos a su servidor de destino y tienen que averiguar ellos por su otra parte por qu no lleg un mail. TAREA Dice ttipan que no ha recibido un mensaje (via pop3) que se acaba de enviar de pruebas. Es cierto que no ha recibido ningn mensaje?Sep 7 15:30:43 srv4 ipop3d[4459]: pop3 service init from 200.105.230.90 Sep 7 15:30:43 srv4 ipop3d[4447]: Logout [email protected] host=corp-200-105-231-22-uio.punto.net.ec [200.105.231.22] nmsgs=0 ndele=0 Sep 7 15:30:44 srv4 sendmail[4448]: j87KUgA5004448: from=, size=2501871, class=0, nrcpts=1, msgid=, proto=ESMTP, relay=root@localhost Sep 7 15:30:44 srv4 ipop3d[4441]: Login [email protected] host=254.140.cue.satnet.net [200.25.140.254] nmsgs=0/0 Sep 7 15:30:44 srv4 ipop3d[4458]: Login user=gsoledispa#etvtelerama.com host=176.240.gye.satnet.net

[200.63.240.176] nmsgs=0/0 Sep 7 15:30:44 srv4 ipop3d[4453]: Login [email protected] host=[200.55.229.122] nmsgs=0/0 Sep 7 15:30:44 srv4 sm-acceptingconnections[4439]: j87KUgqu004439: from=, size=12174, class=0, nrcpts=1, msgid=, proto=ESMTP, daemon=MTA, relay=69.222.uio.satnet.net [200.63.222.69] (may be forged) Sep 7 15:30:44 srv4 sm-acceptingconnections[4439]: j87KUgqu004439: to=, delay=00:00:01, mailer=virthostmail, pri=42174, stat=queued Sep 7 15:30:44 srv4 sendmail[4224]: j87KIZHC030915: to=, delay=00:12:08, xdelay=00:00:02, mailer=virthostmail, pri=2621309, relay=fmivalve.com, dsn=2.0.0, stat=Sent (j87KUgA5004448 Message accepted for delivery) Sep 7 15:30:44 srv4 ipop3d[4459]: Login [email protected] host=corp-200-105-230-41-uio.punto.net.ec [200.105.230.41] nmsgs=1/1

messages /var/log/messages es otro de los logs ms importantes, mantiene toda una serie de eventos informativos del sistema que nos permiten ver qu ha estado ocurriendo. El formato es el generado por syslog. messages puede ser muy til en ocasiones y nosotros bsicamente primero miramos en messages antes que en cualquier otro log, para determinar fallas en el sistema (claro, si el error o problema es exclusivo de mail, miramos mejor en maillog). secure Aqui no slo se guarda informacin de quin entr, sino detalles que podemos obtener en el lastlog, como la hora que entr, la IP, a qu hora se desconect, mediante qu servicio entr, etc.:Sep 7 15:35:20 srv4 Sep 7 15:35:20 srv4 from=201.219.10.2 Sep 7 15:35:20 srv4 from=200.63.248.80 Sep 7 15:35:20 srv4 from=67.15.12.90 Sep 7 15:35:20 srv4 Sep 7 15:35:20 srv4 from=200.107.36.10 Sep 7 15:35:21 srv4 from=67.15.12.90 Sep 7 15:35:21 srv4 Sep 7 15:35:21 srv4 from=200.55.228.2 Sep 7 15:35:21 srv4 from=200.55.228.230 Sep 7 15:35:23 srv4 from=200.105.231.22 Sep 7 15:35:24 srv4 from=67.15.12.90 Sep 7 15:35:24 srv4 Sep 7 15:35:25 srv4 from=67.15.12.90 Sep 7 15:35:25 srv4 Sep 7 15:35:25 srv4 xinetd[7282]: EXIT: imap pid=6633 duration=0(sec) xinetd[7282]: START: pop3 pid=6637 xinetd[7282]: START: pop3 pid=6644 xinetd[7282]: START: imap pid=6645 xinetd[7282]: EXIT: imap pid=6645 duration=0(sec) xinetd[7282]: START: pop3 pid=6646 xinetd[7282]: START: imap pid=6649 xinetd[7282]: EXIT: imap pid=6649 duration=0(sec) xinetd[7282]: START: pop3 pid=6653 xinetd[7282]: START: pop3 pid=6657 xinetd[7282]: START: pop3 pid=6662 xinetd[7282]: START: imap pid=6667 xinetd[7282]: EXIT: imap pid=6667 duration=0(sec) xinetd[7282]: START: imap pid=6674 xinetd[7282]: EXIT: imap pid=6674 duration=0(sec) xinetd[7282]: EXIT: imap pid=6611 duration=8(sec)

Sep 7 15:35:26 srv4 from=200.63.240.176 Sep 7 15:35:26 srv4 from=200.63.242.254 Sep 7 15:35:27 srv4 from=200.55.229.122 Sep 7 15:35:28 srv4 from=200.107.22.170 Sep 7 15:35:29 srv4 from=200.107.42.191 Sep 7 15:35:29 srv4 from=66.240.114.253 Sep 7 15:35:31 srv4 from=200.107.22.170

xinetd[7282]: START: pop3 pid=6676 xinetd[7282]: START: pop3 pid=6679 xinetd[7282]: START: pop3 pid=6680 xinetd[7282]: START: pop3 pid=6685 xinetd[7282]: START: pop3 pid=6694 xinetd[7282]: START: pop3 pid=6695 xinetd[7282]: START: pop3 pid=6712

xferloges un log generado por el demonio de ftp, que indica qu archivos estn siendo transferidos hacia o desde nuestro servidor via ftp, y en general qu acciones estn tomando los clientes va ftp: Wed Sep 7 13:45:51 2005 5 200.63.242.254 80611 /var/www/html/guayaquil/fotos/fotos.htm a _ i r farras ftp 0 * c Wed Sep 7 13:54:36 2005 1 200.63.242.254 14918 /var/www/html/guayaquil/farrasculturales_4/teatro.htm a _ i r farras ftp 0 * c Wed Sep 7 13:54:40 2005 2 200.63.242.254 50090 /var/www/html/guayaquil/farrasculturales_4/farrasculturales_4.htm a _ i r farras ftp 0 * c Wed Sep 7 13:55:36 2005 2 200.63.242.254 24215 /home/farras/baradero.htm a _ i r farras ftp 0 * c Wed Sep 7 13:59:20 2005 0 200.63.242.254 24215 /home/farras/baradero.htm a _ d r farras ftp 0 * c Wed Sep 7 13:59:30 2005 1 200.63.242.254 24215 /var/www/html/baradero.htm a _ i r farras ftp 0 * c Wed Sep 7 14:00:55 2005 0 200.63.242.254 4392 /var/www/html/guayaquil/farrasculturales_4/imagenes/normalixta_ind.jpg b _ i r farras ftp 0 * c Wed Sep 7 14:01:00 2005 0 200.63.242.254 4296 /var/www/html/guayaquil/farrasculturales_4/imagenes/bienal_26_index.jp g b _ o r farras ftp 0 * c Wed Sep 7 14:03:12 2005 1 200.63.242.254 45039 /var/www/html/indexmain.htm a _ i r farras ftp 0 * c Wed Sep 7 14:07:15 2005 3 200.63.242.254 29445 /var/www/html/imagenes/portada_foto.jpg b _ i r farras ftp 0 * c Wed Sep 7 14:07:19 2005 0 200.63.242.254 3113 /var/www/html/imagenes/alcohol_index.jpg b _ o r farras ftp 0 * c

/var/log/httpd/access.log Me indica los accesos que estn habiendo o han habido a nuestro(s) sitio(s) web. De esta forma podemos determinar cul es el objeto o script que consume ms recursos o espacio. Ms tarde en el curso usaremos estos logs para revisar y crear estadsticas sobre nuestros sitios web y dems. El formato es muy parecido al del syslog pero no es generado por el syslog sino directamente por el apache200.69.167.87 - - [07/Sep/2005:17:40:33 -0500] "GET /guayaquil/dondefarrear1/flyer/sto_remedio_120_100.jpg HTTP/1.1" 200 6213 "http://www.farras.com/guayaquil/dondefarrear1/agenda_flyer.htm"

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 200.55.225.156 - - [07/Sep/2005:17:40:33 -0500] "GET /guayaquil/fotos/2005-09-03/miro/05.jpg HTTP/1.1" 304 "http://www.farras.com/guayaquil/fotos/2005-09-03/miro.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" 201.218.6.46 - - [07/Sep/2005:17:40:33 -0500] "GET /Templates/menu2002/botonInscribete.gif HTTP/1.0" 200 1898 "http://www.farras.com/indexmain.htm" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 200.69.166.211 - - [07/Sep/2005:17:40:31 -0500] "GET /guayaquil/television/imagenes/vamoscontodo.jpg HTTP/1.1" 200 26493 "http://www.farras.com/guayaquil/television/telesistema.htm" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 201.218.6.46 - - [07/Sep/2005:17:40:33 -0500] "GET /Templates/menu2002/granhermanobanner.jpg HTTP/1.0" 200 5108 "http://www.farras.com/indexmain.htm" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 201.218.6.46 - - [07/Sep/2005:17:40:33 -0500] "GET /guayaquil/dondefarrear1/flyer/fizz_09_120_100.jpg HTTP/1.0" 200 8131 "http://www.farras.com/guayaquil/dondefarrear1/agenda_flyer.htm" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

/var/log/httpd/error_log Es el log que nos indica cualquier evento o circunstancia que el httpd haya encontrado y necesite reportar, tales como que no encuentre un objeto o pgina o que determine que su sistema tiene alguna falla y necesite reportarlo.[Tue Aug 30 15:09:05 2005] [notice] Digest: done [Tue Aug 30 15:09:06 2005] [notice] Apache configured -- resuming normal operations [Tue Aug 30 19:13:30 2005] [Tue Aug 30 19:15:13 2005] /usr/sbin/suexec) [Tue Aug 30 19:15:13 2005] digest authentication ... [Tue Aug 30 19:15:13 2005] [Tue Aug 30 19:15:14 2005] normal operations [Tue Aug 30 19:47:58 2005] [Tue Aug 30 19:50:29 2005] /usr/sbin/suexec) [Tue Aug 30 19:50:30 2005] digest authentication ... [Tue Aug 30 19:50:30 2005] [Tue Aug 30 19:50:31 2005] normal operations [notice] caught SIGTERM, shutting down [notice] suEXEC mechanism enabled (wrapper: [notice] Digest: generating secret for [notice] Digest: done [notice] Apache configured -- resuming [notice] caught SIGTERM, shutting down [notice] suEXEC mechanism enabled (wrapper: [notice] Digest: generating secret for [notice] Digest: done [notice] Apache configured -- resuming

/var/log/squid/access.log Es el log que nos indica quin est accediendo a travs de nuestro proxy hacia la internet. Nos permite tambin sacar estadsticas de uso de la conexin en lo referente a la navegacin web.1126286893.476 9511 127.0.0.1 TCP_MISS/200 613 POST http://cursos.ernestoperez.com/moodle/course/mod.php -

DIRECT/67.15.12.90 text/html 1126286896.333 2857 127.0.0.1 TCP_MISS/200 16984 GET http://cursos.ernestoperez.com/moodle/mod/resource/view.php? DIRECT/67.15.12.90 text/html 1126286896.634 300 127.0.0.1 TCP_MISS/200 252 GET http://toolbarqueries.google.com/search? - DIRECT/64.233.185.104 text/html 1126286905.599 2766 127.0.0.1 TCP_MISS/200 19092 GET http://cursos.ernestoperez.com/moodle/course/mod.php? DIRECT/67.15.12.90 text/html 1126286905.665 1801 127.0.0.1 TCP_MISS/304 222 GET http://cursos.ernestoperez.com/moodle/lib/editor/lang/en.php DIRECT/67.15.12.90 1126286908.230 1162 127.0.0.1 TCP_MISS/200 252 GET http://toolbarqueries.google.com/search? - DIRECT/64.233.185.99 text/html 1126287042.973 262 127.0.0.1 TCP_MISS/302 513 GET http://toolbar.google.com/version3f? - DIRECT/64.233.167.124 text/plain 1126287043.466 466 127.0.0.1 TCP_MISS/200 516 GET http://toolbar.google.com/version3f_withCookie? DIRECT/64.233.183.124 text/plain 1126287045.190 880 127.0.0.1 TCP_MISS/200 2205 GET http://cursos.ernestoperez.com/moodle/lib/editor/popups/insert_table.p hp - DIRECT/67.15.12.90 text/html 1126287045.584 393 127.0.0.1 TCP_MISS/200 252 GET http://toolbarqueries.google.com/search? - DIRECT/64.233.185.99 text/html

/var/log/squid/cache.log nos indica cmo ha arrancado el squid, qu parmetros est usando, adems de qu errores o advertencias ha encontrado en el sistema que le impide arrancar, o que le impide seguir trabajando. Es importante siempre leerlo en caso de que el squid de problemas.2005/09/04 16:47:41| Starting Squid Cache version 2.5.STABLE6 for i686-redhat-linux-gnu... 2005/09/04 16:47:41| Process ID 2325 2005/09/04 16:47:41| With 1024 file descriptors available 2005/09/04 16:47:41| DNS Socket created at 0.0.0.0, port 32770, FD 4 2005/09/04 16:47:41| Adding nameserver 127.0.0.1 from /etc/resolv.conf 2005/09/04 16:47:41| User-Agent logging is disabled. 2005/09/04 16:47:41| Referer logging is disabled. 2005/09/04 16:47:41| Unlinkd pipe opened on FD 9 2005/09/04 16:47:41| Swap maxSize 102400 KB, estimated 7876 objects 2005/09/04 16:47:41| Target number of buckets: 393 2005/09/04 16:47:41| Using 8192 Store buckets 2005/09/04 16:47:41| Max Mem size: 8192 KB 2005/09/04 16:47:41| Max Swap size: 102400 KB 2005/09/04 16:47:41| Rebuilding storage in /var/spool/squid (CLEAN) 2005/09/04 16:47:41| Using Least Load store dir selection 2005/09/04 16:47:41| Set Current Directory to /var/spool/squid 2005/09/04 16:47:41| Loaded Icons. 2005/09/04 16:47:42| Accepting HTTP connections at 0.0.0.0, port 3128, FD 11. 2005/09/04 16:47:42| Accepting ICP messages at 0.0.0.0, port 3130, FD 12.

2005/09/04 2005/09/04 2005/09/04 2005/09/04 entries) 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04 2005/09/04

16:47:42| 16:47:42| 16:47:42| 16:47:42|

WCCP Disabled. Ready to serve requests. Store rebuilding is 34.8% complete Done reading /var/spool/squid swaplog (11775

16:47:42| Finished rebuilding storage from disk. 16:47:42| 11775 Entries scanned 16:47:42| 0 Invalid entries. 16:47:42| 0 With invalid flags. 16:47:42| 11775 Objects loaded. 16:47:42| 0 Objects expired. 16:47:42| 0 Objects cancelled. 16:47:42| 0 Duplicate URLs purged. 16:47:42| 0 Swapfile clashes avoided. 16:47:42| Took 0.9 seconds (13120.1 objects/sec). 16:47:42| Beginning Validation Procedure 16:47:42| Completed Validation Procedure 16:47:42| Validated 11775 Entries 16:47:42| store_swap_size = 92140k 16:47:43| storeLateRelease: released 0 objects

Aqu vemos un log de arranque del squid, bsicamente todo fue bien hasta que arranc y nos dej guardado unos parmetros de arranque por si acaso los tuviramos que analizar. Es el log ms importante cuando hay problemas en el squid. En general, siempre que tengamos un problema, debemos referirnos a los logs. En un inicio es muy difcil leerlos pues normalmente no se sabe cul es el log que puede tener la verdad, por lo tanto, si no conocemos, sugiero se busque en messages, y posteriormente en maillog si es referido a los mails o en el directorio de squid o de httpd si es referido a uno de ellos dos. Sinceramente, y aqui advierto en negritas, si uds presentan un problema, ni se les ocurra preguntar en ningn foro o sitio de internet sobre una solucin sin haber indicado lo que dicen los logs. Si no lo hacen, perdern su tiempo porque la nica respuesta que obtendrn ser: mustrame los logs. Normalmente tenemos que revisar los logs, analizar el error y buscar una solucin de acuerdo a lo que se dice. Es una falla comn por parte de los novatos o personas que recin comienzan en linux, el de preguntar sin ofrecer detalles del problema, sin decir exactamente qu sucede, qu dicen los logs, qu dice la consola. Y al no leer estn pecando de exactamente lo que no le gusta a la comunidad de linux. Aqui hay que leer los logs, analizarlos, mostrarlos, para poder obtener ayuda. Y saben qu? Normalmente en lo que realizamos la tarea de bsqueda de los logs, y anlisis para ponerlos en un foro... es ah que nos damos cuenta del error!! Normalmente si el error est en los logs puesto, no tenemos casi ni que poner en los foros porque automticamente nos damos cuenta de lo que es. Muy interesante todo lo que hemos visto sobre los logs del sistema, ahora, si los logs no se rotaran, no se eliminaran de vez en cuando, el disco en nuestro sistema crecera desmesuradamente hasta llenarse. Es por esto que en linux existe una utilera que se ejecuta todos los das (desde /etc/cron.daily) que se llama logrotate.

Bsicamente logrotate lo que hace es leer la configuracin general desde /etc/logrotate.conf y la configuracin particular para cada log rotado desde /etc/logrotate.d Una vez halla ledo estos parmetros, proceder a ir directorio por directorio dentro de los indicados en /etc/logrotate.d y truncar los logs para disminuirles su tamao. Veamos un momento /etc/logrotate.confvi /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp rotate 1 }

Bsicamente aqu lo que vemos son parmetros de configuracin general. Estn bien explicados, por ejemplo, redhat por defecto indica que los logs deben rotarse semanalmente, esto es, slo una vez a la semana realmente actuar el logrotate, los dems das saldr calladito sin hacer nada. El parmetro weekly, es el que se encarga de indicar que se rotar semanalmente. En sistemas medianamente cargados (empresas, isp, etc) es mi opinion que se deben cambiar las rotaciones y hacerlas diarias, esto es, cambiando weekly por: daily el sistema rotar los logs todos los das por la maana reduciendo el consumo de disco. Ahora, muchas personas an as desean ver logs anteriores a la fecha de la rotacin, el logrotate se encarga de mantener una cantidad determinadas de copias de acuerdo al parmetro: rotate #, por defecto rotate 4 es el valor que redhat sugiere, lo que indicara que mantenga 4 copias de los logs (como por defecto las rotar semanalmente, entonces tendremos 4 semanas de copias guardadas) Si cambiamos la rotacin a diaria, podramos indicarle que haga 7 rotaciones, para mantener 7 das de copias, o 15 o 30 segn sea nuestro inters o razonamiento de la empresa. Sugiero siempre ms de 3 rotaciones. En empresas muy cargadas, que generan una gran cantidad de logs, no es saludable mantener todas estas rotaciones, por lo que a veces es bueno bajarlo a 3 o menos

rotaciones. Igualmente, si necesitamos mantener por ms tiempo las copias anteriores siempre existen los respaldos para realizarlas y no mantenerlas en disco. Ms adelante vemos un parmetro que est comentado, pero para m es de mucha utilidad. Es el compress. Compress permite que una vez rotado un log, este se comprima para ahorrar espacio. Los logs son mayormente cargados de informacin, por lo que el nivel de compresin suele ser alto. Tenemos casos de clientes con ms de 300 megas de logs, a veces ms de 500, y no es muy saludable mantener todos esos logs rotados abiertos pues consumiran mucho disco. Al comprimirlos (por defecto se comprimen con gzip), estos logs bajan a 40 o menos megas, lo que s hace que sea sostenible el mantener varios logs antiguos en nuestro sistema. Para activar la compresin de logs rotados, sencillamente podemos descomentar (quitar la #) esta lnea y a partir de maana se rotarn y comprimirn. Cmo se rotar cada archivo de log? Bueno, dentro de /etc/logrotate.d tenemos una cantidad de ficheros que nos dan una indicacin sobre cmo se rotar cada log. Todos los logs que son atendidos por el syslog, se rotan desde un mismo archivo de configuracin:vi /etc/logrotate.d/syslog /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript }

Cmo se entiende todo esto? Buen, la primera lnea, hasta el signo de { indica exactamente todos y cada uno de los archivos (con sus caminos completos) sobre los que estamos tratando. En este caso son messages, secure, maillog, spooler, boot.log y cron sharedscripts indica que la accin de postrotate (la siguiente que vamos a explicar) ser hecha una sola vez y no para cada uno de los archivos sobre los que estamos hablando. postrotate .... endscript, indicar la accin a tomar (o acciones) posterior a haber rotado (cambiado de extensin) los scripts. En este caso sencillamente se le enviar un HUP al syslog para que vuelva a leer los archivos de scripts y tome los nuevos inodos de los archivos de logs (los que se acaban de crear con tamao 0). Normalmente la accin de postrotate incluye el reinicio del servicio (o el HUP) para que vuelva a leer su configuracin pero sobre todo para que se d cuenta de que el archivo donde escriba ya no est (est con otro nombre) y que debe comenzar a escribir en el nuevo, recin creado.

veamos el de httpd:vi /etc/logrotate.d/httpd /var/log/httpd/*log { missingok notifempty sharedscripts postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript }

Muy similar, trabajamos con todos los archivos .log que estn presente dentro de /var/log/httpd, con missingok: indicamos que no hay problema, que proceda si falta uno de ellos, de esta forma el script no fallar si falta uno de los archivos. notifempty: Si el log est vaco, no rotarlo (no hace falta perder el tiempo con un log vaco, no consume nada). Por lo dems vemos que es muy parecido, recarga de igual forma el apache en el postrotate. Normalmente no debemos preocuparnos por lo que est programado dentro de un script de rotacin, pero existen ocasiones muy especiales en que los demonios (sobre todo el apache) fallan al rotar (el signo ms evidente es que el servidor deja de responder a las 4am o una hora parecida, que es cuando el logrotate se ejecuta), en este caso podemos realizar una reprogramacin del script de rotacin en comandos del shell que consideremos necesario. Repito, no es algo que se haga todos los das, en ms de 10 aos que llevamos trabajando con linux slo lo hemos hecho una vez. logwatch Es la herramienta que por defecto viene en nuestro sistema de redhat enterprise linux, esta herramienta se ocupa de diariamente de analizar todos los logs importantes de nuestro sistema y categorizar los eventos guardados en ellos. Es muy sencillo, a continuacin nuestro un log de un servidor:From [email protected] Thu Sep 8 07:54:07 2005 Date: Thu, 8 Sep 2005 07:54:06 -0500 From: ernesto perez To: [email protected] Subject: LogWatch for eperez.ecualinux.com ################### LogWatch 5.2.2 (06/23/04) #################### Processing Initiated: Thu Sep 8 07:54:04 2005 Date Range Processed: yesterday Detail Level of Output: 0 Logfiles for Host: eperez.ecualinux.com ################################################################ --------------------- Cron Begin ------------------------

**Unmatched Entries** STARTUP (V5.0) ---------------------- Cron End --------------------------------------------- Named Begin -----------------------**Unmatched Entries** succeeded: 1 Time(s) ---------------------- Named End --------------------------------------------- pam_unix Begin -----------------------crond: Unknown Entries: session closed for user root: 12 Time(s) session opened for user root by (uid=0): 12 Time(s) ---------------------- pam_unix End --------------------------------------------- Connections (secure-log) Begin ----------------------**Unmatched Entries** userhelper[5017]: pam_timestamp: updated timestamp file `/var/run/sudo/root/unknown' userhelper[5018]: running '/usr/share/system-config-soundcard/systemconfig-soundcard' with root privileges on behalf of 'root' userhelper[8529]: pam_timestamp: updated timestamp file `/var/run/sudo/root/unknown' userhelper[8530]: running '/usr/sbin/system-install-packages //root/Desktop/skype-1.2.0.11-fc3.i586.rpm' with root privileges on behalf of 'root' userhelper[10824]: running '/sbin/poweroff' with root privileges on behalf of 'root' ---------------------- Connections (secure-log) End -------------------------------------------- sendmail Begin -----------------------Bytes Transferred: 23306 Messages Sent: 4 Total recipients: 4 ---------------------- sendmail End --------------------------------------------- SSHD Begin -----------------------SSHD Killed: 1 Time(s) SSHD Started: 1 Time(s) ---------------------- SSHD End ------------------------------------------ Disk Space -------------------/dev/hda3 8.6G 6.3G 1.9G 77% / /dev/hda1 99M 8.3M 86M 9% /boot /dev/hdd2 7.5G 6.8G 368M 95% /home /dev/hdc 69M 69M 0 100% /media/cdrecorder ###################### LogWatch End #########################

Como vemos, nos cataloga en diferentes servicios. Los mensajes que muestra no son una receta, es decir estos varan segn el evento que haya ocurrido y segn el tipo de sistema, debemos ser capaces de analizar y determinar qu es un verdadero problema y qu no lo es por dems. En mi caso, primero vemos los eventos del cron, dice algo de unmatched entries, no es un grave problema para mi realmente. Despus un mensaje del named, entiendo que es cuando se reinici (por eso dice success, que es una buena seal para mi). pam, es el sistema de autenticacin, indica que el usuario root abri 12 veces sesiones con el sistema y tambin cerr 12 veces. Nada inusual, era yo mismo y lo recuerdo, no

las 12 veces pero s que estuve trabajando todo el da de ayer y abr y cerr sesiones a discrecin. en secure log dice que configuraron algo del sonido (/usr/share/system-configsoundcard/system-config-soundcard) como root y en efecto as hice. Adems dice que instalaron un paquete (skype.rpm) y as fue pues quera hablar por telfono va internet. ms abajo un pequeo reporte de sendmail, que indica que se enviaron unos 23k en mails en total 4 mensajes. Puede ser, realmente es un sistema personal mo y esos mensajes deben haber sido eventos que el mismo sistema me envi como reportes (este mismo reporte posiblemente). Este reporte en sistemas de produccin es ms grande y alcanza los millones de mensajes y decenas de gigas de transferencia. posteriormente me indica que el ssh lo mataron una vez y lo arrancaron una vez (cuando encend y cuando apagu la mquina claro est). No hay mayor inconveniente. y al final vemos un reporte del uso del disco en ese momento que se corri el reporte, realmente no hay mayor problema con mis discos pero agradezco que me enve este reporte. Estos reportes pueden y son cansones, de hecho les confieso que no los analizo todos los das ni en todos los servidores. Se estima que un administrador de linux debe ser capaz de manejar tranquilamente 10 servidores linux y cuando decimos manejar es ejecutar todas las tareas que iremos viendo durante el curso incluidas estas de revisin de logs. Siempre recomiendo echar una mirada a los logs y detectar eventos inusuales. El logwatch nos ayuda mucho a revisar estos eventos y nos los consolida en una gran medida, sin embargo nada como el ojo humano para poder detectar problemas en un sistema, por eso siempre es bueno entrenarse para detectar cules son los eventos que normalmente ocurren en nuestro sistema y cules han comenzado a salir y posteriormente poder determinar cmo mejorar nuestro sistema o reaccionar ante fallas o problemas. TAREA: Qu podemos determinar leyendo estos logs, qu situacin de inters e importante (Verdaderamente importante) podemos ver aqui?:################## LogWatch 2.1.1 Begin ##################### --------------------- sendmail Begin -----------------------364 bytes transferred 1 messages sent ---------------------- sendmail End ---------------------------------------- Connections (secure-log) Begin ------------------**Unmatched Entries**

Apr 6 00:09:31 phenux2 sshd[28932]: 202.13.220.157 port 4234 ssh2 Apr 6 00:09:32 phenux2 sshd[28932]: 202.13.220.157 Apr 6 00:09:43 phenux2 sshd[28933]: 202.13.220.157 port 4236 ssh2 Apr 6 00:09:46 phenux2 sshd[28933]: 202.13.220.157 Apr 6 00:09:54 phenux2 sshd[28934]: from 202.13.220.157 port 4240 ssh2 Apr 6 00:10:22 phenux2 sshd[28959]: 202.13.220.157 port 4242 ssh2 Apr 6 00:10:34 phenux2 sshd[28959]: 202.13.220.157 Apr 6 00:10:40 phenux2 sshd[28966]: from 202.13.220.157 port 4247 ssh2 Apr 6 00:10:59 phenux2 sshd[28986]: 127.0.0.1 port 32891 ssh2 Apr 6 00:11:17 phenux2 sshd[28986]: ROOT from 127.0.0.1 port 32891 ssh2 Apr 6 00:11:17 phenux2 sshd[28986]: Apr 6 00:11:37 phenux2 sshd[29000]: 202.13.220.157 port 4250 ssh2 Apr 6 00:11:52 phenux2 sshd[29000]: 202.13.220.157 Apr 6 00:12:07 phenux2 sshd[29008]: from 202.13.220.157 port 4253 ssh2 Apr 6 00:12:25 phenux2 sshd[29026]: 202.13.220.157 port 4256 ssh2 Apr 6 00:12:38 phenux2 sshd[29026]: 202.13.220.157 Apr 6 00:12:59 phenux2 sshd[29034]: 202.13.220.157 port 4260 ssh2 Apr 6 00:15:41 phenux2 sshd[29034]: 202.13.220.157 port 4260 ssh2 Apr 6 00:15:56 phenux2 sshd[29034]: 202.13.220.157 port 4260 ssh2 Apr 6 00:15:56 phenux2 sshd[29034]: 202.13.220.157 Apr 6 00:16:40 phenux2 sshd[29079]: 202.13.220.157 port 4277 ssh2 Apr 6 00:17:13 phenux2 sshd[29079]: 202.13.220.157 Apr 6 00:17:24 phenux2 sshd[29092]: 202.13.220.157 port 4282 ssh2 Apr 6 00:18:08 phenux2 sshd[29092]: 202.13.220.157 Apr 6 00:18:16 phenux2 sshd[29105]: from 202.13.220.157 port 4284 ssh2 Apr 6 00:44: