so3 - 09 linux trobleshooting

28
Sistemas Operativos III Solución de Problemas en Linux 1 Unidad 09 Troubleshooting Copyright © 2007 por TECSUP Redes y Comunicaciones de Datos

Upload: hgcu

Post on 24-Oct-2015

34 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 1

Unidad 09Troubleshooting

Copyright © 2007 por TECSUP

Redes y Comunicaciones de Datos

Page 2: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 2

2

Introducción

� La resolución de problemas (troubleshooting) es una ciencia y un arte.� La ciencia viene desde los conceptos de hipótesis,

experimentación, comparación y reproducción de resultados.� El arte viene dado por el hecho de que los sistemas operativos,

servicios y aplicaciones no siempre trabajaran como esperamos.

� Existe una serie de errores que ya están reportados o que usted podría registrar en: http://bugzilla.redhat.com

� En esta unidad trataremos la resolución de problemas en Linux, incluyendo la revisión de los “logs” y herramientas para determinar las causas de los problemas y los modos de recuperación.

Page 3: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 3

3

Objetivos

� Conocer el concepto de troubleshooting.� Auditar el sistema a través de los archivos de log.� Identificar los archivos “logs” más importantes.� Identificar los diferentes elementos a verificar.� Ejecutar diferentes modo de recuperación en caso

de fallos.

Page 4: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 4

4

Contenido

� Auditando el Sistema:� Archivos de log.� Tipos.� Visualización.

� ¿Que debemos verificar?� Modos de Recuperación.

� Modo Mantenimiento.

� Disco de Inicio.� Entorno de Rescate.

Page 5: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 5

Auditando el sistema

Departamento de informática

Page 6: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 6

6

Archivos Log (/var/log)

� Casi todas las actividades realizadas en un sistema Linux son susceptibles de ser, en mayor o menor medida, monitorizadas: desde las horas de acceso de cada usuario al sistema hasta las páginas web más frecuentemente visitadas.

� Esta facilidad de Linux para recoger información tiene ventajas para la seguridad: es posible detectar intentos de ataques, detectar usos indebidos de los recursos o actividades “sospechosas”.

� Sin embargo, también existen desventajas, ya que la gran cantidad de información que potencialmente se registra puede hacer difícil la detección de problemas dado el volumen de datos a analizar.

El sistema operativo deja información acerca del núcleo, los servicios, las aplicaciones y lo que está ocurriendo en el sistema.

Esta información es muy importante para detectar intentos no autorizados, cómo se comporta un manejador, seguridad, estadísticas, detección de problemas, etc.

La información se envía en forma de mensajes a unos archivos conocidos como Archivos de Registro o Archivos de Log. Estos archivos de Log son escritos por el núcleo, por los servicios o por las aplicaciones.

Algo muy interesante de los archivos log en linux es que la mayoría de ellos son simples archivos de texto, que se pueden visualizar con un simple cat. Por una parte esto es bastante cómodo para el administrador del sistema, ya que no necesita de herramientas especiales para poder revisar los logs.

La mayoría de archivos log están localizados en el directorio /var/log .

Page 7: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 7

7

Demonio syslogd

� Algunos de los archivos log son controlados por el demonio llamado syslogd , que utiliza el archivo de configuración /etc/syslog.conf que mantiene una lista de archivos log.

� Los mensajes del núcleo los recoge klogd y se pasan a syslogd para que los escriba.

El demonio syslogd (Syslog Daemon) se lanza automáticamente al arrancar un sistema Linix, y es el encargado de guardar informes sobre el funcionamiento de la máquina.

Recibe mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones, tanto locales como remotas, siguiendo un criterio definido en el archivo de configuración /etc/syslog.conf, donde especificamos las reglas a seguir para gestionar el almacenamiento de mensajes del sistema.

Page 8: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 8

8

Demonio syslogd

� /etc/syslog.conf

Las líneas de este archivo que comienzan por ‘#’ son comentarios, por lo que son ignoradas de la misma forma que las líneas en blanco. Si ocurriera un error al interpretar una de las líneas del archivo, se ignoraría la línea completa.

Podemos ver que cada regla del archivo tiene dos campos: un campo de selección y un campo de acción, separados ambos por espacios o tabuladores.

El campo de selección está compuesto a su vez de dos partes separadas por un punto: una que indica el servicio que envía el mensaje y otra que marca su prioridad, separadas por un punto (.). Ambas son indiferentes a mayúsculas y minúsculas.

Page 9: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 9

9

Tipos de archivos de log

� Existen diferentes archivos que registran lo que estáocurriendo en el sistema. Entre ellos, podemos mencionar� messages - mensajes del sistema.

� secure - mensajes de seguridad.� boot.log y dmesg - información de inicio y apagado,

incluyendo errores en el hardware al inicio. � wtmp - registra quiénes estuvieron en el sistema y cuándo.� lastlog - nos muestra, para cada usuario, cuándo fue la

última vez que entró en el sistema.� btmp - lista los intentos de ingreso fallidos.

Algunas aplicaciones como httpd y samba poseen un directorio propio en /var/log para sus archivos de log.

En función de la configuración del sistema de auditoría de cada equipo Linux, los eventos que sucedan en la máquina se registrarán en determinados archivos.

Aunque podemos loggear en cualquier archivo (incluso a través de la red o en dispositivos, como ya hemos comentado y luego veremos con mayor detalle), existen ciertos archivos de registro ‘habituales’ en los que se almacena información. A continuación vamos a comentar los más comunes y la información que registra cada uno de ellos.

Page 10: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 10

10

Visualizando los archivos Log

Visor de registros del sistema

Algunos archivos log están en formato texto y pueden visualizarse con el comando less o un editor de texto.

Existen algunos comandos que permiten obtener información de los archivos log. Entre ellos tenemos:

last : Nos da información acerca de los últimos usuarios que han entrado es el sistema (wtmp).

lastlog : Muestra la ultima vez que cada usuario entró al sistema (lastlog).

lastb : Muestra los intentos de ingreso fallido (btmp)

RedHat tiene su propia herramienta gráfica Visor de registros del sistema, o el comando redhat-logviewer

Page 11: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 11

11

Archivo log “messages”

� Es el archivo principal para detectar problemas en el sistema.

� Los mensajes son escritos por el núcleo (kernel).� Para visualizar los mensajes del núcleo utilizamos el

comando grep:grep kernel /var/log/messages

� Formato del archivo:fecha, hora, máquina, proceso que genera el mensaje, mensaje.sep 30 19:20:14 serdis kernel Floppy drive(s): fd0 is 1.44M

En este archivo de texto se almacenan datos ‘informativos’ de ciertos programas, mensajes de baja o media prioridad destinados más a informar que a avisar de sucesos importantes, como información relativa al arranque de la máquina.

No obstante, como sucedía con el archivo syslog, en función de /etc/syslog.conf podremos guardar todo tipo de datos.

Page 12: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 12

12

logrotate

� Para evitar que los archivos log crezcan indefinidamente con los mensajes, se hace que sean circulares, de forma que la información se mantiene un cierto tiempo (cuatro semanas). xxx, xxx.1, xxx.2, xxx.3, xxx.4.

� El paquete logrotate contiene una tarea de cron que hace circular automáticamente los archivos de log.

� Utiliza el archivo de configuración /etc/logrotate.conf y los archivos de configuración en el directorio /etc/logrotate.d

Logrotate esta diseñado para administrar fácilmente los sistemas que generan grandes cantidades de archivos de Log. Logrotate permite rotación automática, compresión, eliminación y envío de correo de los archivos de Log. Cada archivo de Log puede ser manejado diariamente, semanalmente, mensualmente o cuando crece demasiado.

Page 13: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 13

¿Que debemos verificar?

Departamento de informática

Page 14: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 14

14

¿Que debemos verificar?

� Revisar X-Windows.� Revisar “logs” de los servicios.� Revisar parámetros de red.� Revisar elementos de Hardware y Módulos.� Verificar configuración de arranque.� Corrupción de Filesystem.

Para poder hacer TROBLESHOOTING debemos revisar sistemáticamente el

sistema operativo, para esto presentamos una lista básica de elementos que se

deberían revisar.

Page 15: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 15

15

Revisar X-Window

� Pruebe el programa de configuración:� system-config-display

� Inicie el servidor X-Window en modo de prueba:� X –probeonly

� La cuenta de usuario debe tener espacio en el disco duro para crear los archivos temporales de X-Window:� /home� /tmp

Nunca depure (debug) mientras este en Runlevel 5.

Uno de los problemas clásicos que podemos encontrar en la configuración del modo gráfico es el seteo de la frecuencia del monitor. Cuando ésta es configurada en un valor incorrecto, el monitor no muestra ninguna imagen y por lo tanto no se puede realizar ninguna corrección, para solucionar esto debemos iniciar en modo init 3 y reconfigurar la configuración del servidor X con el comando system-config-display (en CentOS).

Page 16: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 16

16

Revisar Servicios

� Revise el registro (log) de los servicios:

� BIND, DHCP, NFS, etc. : /var/log/messages

� Sendmail, IMAP, POP, procmail : /var/log/maillog� Apache : /var/log/httpd

� Samba : /var/log/samba

El funcionamiento de los servicios puede ser monitoreado usando el comando ps que permite listar los procesos y su estado, y para conocer en mayor detalle los eventos debemos revisar los archivos de log de cada servicio.

Page 17: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 17

17

Revisar parámetros de Red

� La resolución de Hostname� ping, host, dig

� Configuración del protocolo IP� ifconfig

� Default Gateway� Problemas de enrutamiento

� route

Page 18: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 18

18

Revisar Hardware reconocido y Módulos

� Hardware:� Listas dispositivos PCI: # lspci� Relación de Hardware detectado:� # cat /etc/sysconfig/hwconf

� Módulos� Visualizar ���� # lsmod� Informar ���� # modinfo –d [modulo]� Desactivar ���� # rmmod [modulo]� Activar ���� # modprobe [modulo]

El archivo hwconf lista todo el hardware que KUDZU ha detectado en el sistema. El programa KUDZU detecta y configura hardware nuevo o que ha cambiado. Este archivo no es editado manualmente, cualquier línea que sea editada será cambiada cada vez que un dispositivo nuevo sea agregado.

Page 19: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 19

19

Verificar configuración de Arranque (Booting)

� Configuración del gestor de arranque:� lilo.conf, grub.conf

� Parámetros del Kernel.� Archivos de inicio:

� /sbin/init� /etc/rc.d/rc.sysinit� /etc/rc.d/rc, /etc/rc.d/rc?.d� /etc/rc.d/rc.local� X

Errores en el arranque

No se muestra el logotipo de bienvenida o el prompt de Lilo aparece incompleto

GRUB o LILO no están configurados adecuadamente.

El Boot sector está dañado o corrupto.

La configuración de la BIOS ha sido cambiada: esquema de direccionamiento del disco.

El Kernel no carga del todo o carga parcialmente

Imagen del Kernel esta dañado: /boot/vmlinuz

Parámetros incorrectos pasados al Kernel por el Boot loader.

Page 20: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 20

20

Errores en el arranque

� El Kernel carga completamente pero hay un “panic” o falla cuando está tratando de montar el filesystem “root” y en la ejecución de: /sbin/init� El boot loader está mal configurado.� /sbin/init o /etc/inittab están dañados o corruptos.� El filesystem root está dañado, no se puede montar.

Kernel carga completamente, /etc/rc.d/rc.sysinit es iniciado pero luego es interrumpido:

/bin/bash está borrado o corrupto.

/etc/fstab puede tener un error.

Error en el RAID o las asignaciones de las cuotas (quota).

Los filesystems están dañados

Errores en el runlevel

Un servicio depende de otro servicio el cual no está especificado en un determinado runlevel.

Errores específicos al servicio.

Page 21: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 21

21

Corrupción del Filesystem

� Error común después de una “caida” o un apagado en forma inapropiada.� En “ext2” cuando no se desmonta apropiadamente, al

reiniciar se debe verificar exaustivamente.� En “ext3” cuando no se desmonta apropiadamente, al

reiniciar se conoce qué archivos no han terminado sus transacciones y por lo tanto es más fácil de recuperar.

Recuperación del Filesystem

Si el filesystem root no ha sido desmontado apropiadamente y tiene un “journal”, el Kernel lo reparará al iniciar (boot).

Luego /etc/rc.d/rc.sysinit ejecutará el “fsck” en todos los filesystemsmarcados en /etc/fstab

Cuando “fsck” falla deberá de ejecutarse en forma manual.

Page 22: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 22

22

Modos de Recuperación

� Iniciar en Modo Mantenimiento (Run-levels).

� Iniciar con Disco de Inicio.

� Iniciar Entorno de Rescate

Page 23: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 23

23

Recuperación en Run-levels

� Cambiar de run-level� Al iniciar desde lilo o grub.� Desde el shell: init ó teinit

� Runlevel 1:� Procesa los scripts: /etc/rc.sysinit y /etc/rc.d/rc1.d/*

� Runlevel s, S o single:� Procesa solamente el script rc.sysinit

� En caso de emergencia:� Se ejecuta solamente: sulogin

Para ingresar al modo de recuperación desde el inicio presionar F2 durante el inicio del gestor de arranque GRUB. Luego escoger la opción del kernel que deseamos arrancar y presionar e para entrar en modo de edición, seleccionar la línea que inicia con kernel y presionar e agregar al final de la linea 1 (para init 1) o single para iniciar en init s.

Page 24: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 24

24

Discos de inicio

� Para crear un disco de inicio:� Se hace durante la instalación ó

� Utilizando el programa “mkbootdisk kernel”

mkbootdisk es un script en BASH incluido en distribuciones basadas sobre RedHat

Su uso es extremadamente sencillo y dará como resultado un disquete de arranque

con una copia del kernel utilizado:

Determine primero qué versión de kernel se está utilizando. Ejecute el

siguiente comando:

# rpm -q kernel

2.2.16-3

Inserte un disquete nuevo en la unidad, pero no lo monte.

Como root o superusuario, ejecute lo siguiente:

# /sbin/mkbootdisk 2.2.16-3 --device /dev/fd0

Page 25: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 25

25

Entorno de Rescate

� Utilizado cuando el filesystem root no está disponible.� Se puede iniciar en este modo de las siguientes maneras:

� Iniciar con el CDROM y luego escribir: “linux rescue”� Desde un disquete de inicio (boot.img) y luego escribir:

“linux rescue”� Desde un disquete de inicio (bootnet.img), luego escribir

“linux rescue” e indicar la ubicación del servidor NFS que está compartiendo el CDROM.

UTILITARIOS

Utilitarios de mantenimiento de disco:

Manejo de particiones, RAID, creadores de particiones y filesystem,

chequeadores de ext2, ext3,jfs, msdos, vfat y reiser.

Utilitarios de red:

Ifconfig, route, traceroute, host, ftp, rcp, rlogin

Utilitarios diversos:

Bash, chroot, ps, kill, killall, vi, pico, dd, tar, cpo, gzip, cd, ls, mkdir, cp, mv,

rm.

Los eventos se registran en: /tmp/syslog y /tmp/anaconda.log

Page 26: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 26

26

Enlaces

� Sistema log.� http://gluv.univalle.edu.co/MasDoc/Manuales/unixsec-

1.2/node12.html� Módulos del Kernel.

� http://www.europe.redhat.com/documentation/rhl9/rhl-cg-es-9/ch-kernel-modules.php3

� Modo Rescate.� http://www1.tiendalinux.com/documentacion/manuales/re

dhat/rhl-cg-es-7.1/rescuemode.html

Page 27: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 27

27

Preguntas

1. ¿Qué comando muestra los intentos de ingreso fallidos?

2. ¿Qué comando permite listar los dispositivos PCI?

3. ¿Qué comando permite crear un disco de inicio?

Page 28: SO3 - 09 Linux Trobleshooting

Sistemas Operativos III

Solución de Problemas en Linux 28

28

Respuestas

1. El comando “lastb”

2. El comando “lspci”

3. El comando “mkbootdisk”