Arrakixmint
Moderador Global
Usuario Héroe
   
Karma: +42/-1
Mensajes: 800
Locus amoenus
|
 |
« : 07 de Junio de 2008, 12:01:25 » |
|
LA CLAVE PRINCIPAL DEL EXITO EN ADMINISTRACION DE SISTEMAS CON LINUX ES CONOCER QUE ESTA PASANDO EN EL SISTEMA.LINUX OFRECE UN EXCEPCIONAL NIVEL DE LOGEO QUE ADEMAS ES ALTAMENTE CONFIGURABLE.
Los logs de Linux estan en texto plano.Por lo tanto,puedes leerlos y hacer busquedas en ellos sin tener que usar herramientas especiales.Puedes tambien escribir scripts que escaneen los logs y realicen funciones automaticas basadas en su contenido. Los logs de Linux suelen estar ubicados en el directorio /var/log .El sistema mantiene varios logs,pero los programas y servicios tambien pueden ubicar sus archivos de logs en ese directorio.Muchos logs solo pueden ser leidos por el superusuario o administrador,pero eso puede cambiarse simplemente modificando los permisos de acceso del archivo en cuestion.
QUE ES UN FICHERO DE LOG.
Un fichero de log es aquel que contiene informacion relativa a lo que sucede en la maquina.Contiene por ejemplo,el dia,la hora de conexion,el nombre de usuario o cualquier otro detalle mas relacionado con lo que esta haciendo alguien.Normalmente la mayor parte de ellos se encuentran en /var/log/ y en /var/run,aunque pueden estar en cualquier otra parte si el administrador asi lo especifica.
Donde encontrarlos: El nucleo mas importante de informacion del sistema de logs es el "logeo" de mensajes.El archivo /var/log/messages contiene los mensajes de booteo de cuando arranca el sistema,asi como otros emitidos durante su funcionamiento.En este archivo son registrados los errores de entrada/salida,trabajo en redes,y otros errores en generales del sistema.Otras informaciones,como por ejemplo,quien se relogea como root,tambien son regitradas.Si hay servicios activos,como servidores DHCP,puedes leer ahi los mensajes de las acciones realizadas.El archivo /var/log/messages es generalmente el primer lugar donde mirar cuando se esta intentando solucionar problemas.Por otra parte,hay otros archivos de log en el directorio /var/log dependiendo de que distribucion estes usando y que servicios estes ejecutando.Por ejemplo,puede haber logs asociados con el servidor de correo,con la comparticion de recursos,de tareas automaticas,etc.
Ficheros de log rotados:logrotate. Si entras en el directorio /var/log puedes ver algunos archivos que terminan con un numero;estos son archivos rotados.Los archivos pueden volverse grandes y dificiles de manejar y por ello Linux provee un comando para rotarlos y asi evitar que la informacion actual se mezcle con informacion vieja irrelevante.Para ello,las distribuciones de Linux cuentan con la herramienta LOGROTARE.Aunque no es una herramienta de analisis,es una utilidad fundamental si no quieres que tu sistema se inunde de informacion. Esta aplicacion hace que los logs "roten",es decir,se copien y compriman cada cierto tiempo,predefinido para cada caso.Si no se hiciera asi,el espacio libre en tu disco duro iria menguando poco a poco.El numero de rotaciones suele ser de una vez a la semana o,en ciertos casos,una vez por dia. Generalmente,la aplicacion logrotate se ejecuta automaticamente cada cierto tiempo,pero tambien puedes ejecutarla manualmente.Cuando es ejecutada,logrotate toma la version actual de los archivos de log y les añade un ".1" al final del nombre del archivo.Luego,cualquier otro archivo rotado previamente es renombrado secuencialmente ".2",".3",etc.Cuanto mas grande el numero del log,mas viejo es.Puedes configurar el comportamiento automatico de logrotate editando el archivo llamado /etc/logrotate.conf . Si quieres profundizar en el tema puedes teclear en la terminal man logrotate.
HERRAMIENTAS PARA TRABAJAR CON LOGS Cualquier herramienta de texto puede usarse para trabajar con los logs.Aqui os muestro algunas de las mas utiles:
Dmesg: para ver rapidamente el log del ultimo booteo del sistema utiliza este comando.Te muestra grandes cantidades de texto,asi que para fraccionar esta salida y asi leerla pausadamente,teclea: dmesg | more.
Tail:si quires leer continuamente las actualizaciones de algo que esta ocurriendo,el comando tail te muestra las ultimas linias de un archivo de texto.Añadiendo el parametro -f ,continua mostrando las nuevas linias a medida que se vayan agregando al archivo. Por ejemplo: tail -f/var/log/messages.
Less:es un visor de texto,que te permite hacer scroll y buscar informacion mientras se lee un archivo,por ejemplo: less/var/log/messages.
Logger:este comando es util si quieres incluir tus propios mensajes dentro de un archivo de log.Podrias simplemente añadir el mensaje de logeo al archivo apropiado,pero tendrias que copiar el estilo de logeo del sistema.El comando logger te permite enviar tus propios mensajes al sistema de logeo,puedes usarlo en scripts para informar acerca de errores y ejecucion de programas.
PERSONALIZA EL LOGEO Existen fundamentalmente dos servicios,tambien denominados demonios,que controlan el logeo de mensajes: klogd y syslogd.El primero solo logea mensajes del kernel del sistema operativo.Sin embargo,syslogd trabaja con otros mensajes del sistema,como los de las aplicaciones.Puedes configurar el comportamiento de ambos editando los archivos /etc/syslogd.conf y /etc/sysconfig/syslog,repectivamente.Esencialmente cada mensaje generado por software provee alguna informacion para identificar su origen y de que se trata.El archivo /etc/syslog.conf te permite especificar que hacer con este tipo de mensajes.Por ejemplo,puedes bajarlos a los archivos de mensajes,o a algun archivo personal,o incluso puedes enviarlos a un host remoto donde sera procesado segun las reglas de configuracion del otro syslogd.Esto ultimo es conocido como "logeos remotos" y son una excelente caracteristica de seguridad. Si añades tus logs a un sistema remoto puedes prevenir una brecha de seguridad que cubra sus rastros alterando los archivos de logs.La posibilidad de personalizar el logeo de este modo provee un muy buen grado de flexibilidad y control sobre el ambiente Linux. Aqui tienes un ejemplo de logeo personalizado tomado de la ayuda de /etc/syslog.conf :
# kernel messages are first,stored in the kernel # file,critical messages and higher ones also go # to another host and to the console # kern.* /var/adm/kernel kern.crit @suecia kern.crit /dev/console kern.info;kern.!err/var/adm/kernel-info
La primera regla direcciona cualquier mensaje del kernel del sistema operativo al archivo /var/adm/kernel. En cuanto a la segunda sentencia direcciona todos los mensajes del kernel de prioridad "critic" al host remoto "suecia".Esto es bastante util ya que si el host local cae y el disco queda irrecuperable,no podrias leer los mensajes almacenados.Si estan en un host remoto tambien,los podrasleer y determinar la razon de la caida del host local. En cuanto a la tercera regla,direcciona los mismos mensajes de la segunda a la consola local,asi la persona que este trabajando podra leerlos tambien. La cuarta linia del ejemplo en cuestion le dice a syslogd que guarde todos los mensajes del kernel de prioridad "info" (kernel.info),hasta que advierta alguna advertencia en el archivo /var/adm/kernel-info. Toda prioridad "error",y superior es excluida.
ANALIZA ALGUNOS FICHEROS DE LOG Un fichero de log es un regitro oficial de eventos sucedidos durante un periodo de tiempo en particular.Pueden ser usados para registrar datos o informacion sobre quien,que,cuando,donde y por que un evento ocurre para un dispositivo en particular o aplicacion.Aqui tienes una muestra de ficheros que te pueden servir para estos fines:
Lastlog Este fichero se encuentra en /var/log/lastlog y almacena todo lo relativo a la ultima conexion realizada:terminal desde el que se conecto,usuario,fecha.No obstante,solo almacena la informacion relacionada con una conexion con exito a la maquina.Este fichero esta en binario,y para visualizarlo debes teclear en linia de comandos lastlog,que es un programa que visualiza el contenido de /var/log/lastlog. Pudes ver informacion acerca de la hora de la ultima conexion,el terminal y el host (IP o nombre de la maquina)desde donde se realizo la conexion,asi como informacion acerca del ultimo usuario que realizo la conexion.
Faillog Este fichero se encuentra en /var/log/faillog. En el se almacenan todos los intentos "login" fallidos realizados a una maquina,es decir,todas las veces que un usuario ha intentado acceder a la maquina sin exito.Este fichero tambien es binario,y esta en /var/log/faillog;para visualizarlo tambien se utiliza un programa llamado "faillog",que muestra por pantalla los intentos fallidos de "login".Tambien te permite fijar el numero maximo de intentos que puedes realizar hasta cerrar la conexion. Estos fallos se visualizan como podeis ver en este ejemplo:
letoduke login: root password: 1 failure since last login. last was 01:29:39 on tty4. last login: sun dec 10 01:09:43 on tty3
Aqui se observa el numero de intentos,la fecha del ultimo,y desde que host se intento hacer la conexion.
Utpm Guarda un registro de los usuarios que esten utilizando el sistema mientras estan conectados al mismo.Por lo tanto,puede informar al administrador de la presencia de algun usuario no autorizado.Se almacena en /var/run/ . Gracias a este log,la unica forma de entrar a un sistema Linux sin que el administrador lo notara seria poniendo todos los campos con los valores por defecto,y el tiempo a la hora de arranque de la maquina o al valor que tenia antes de acceder.No obstante,en una buena configuracion,el fichero no debe tener permiso de escritura para los usuarios porque esto supone que cualquiera podria manipularlo.Un administrador podria tambien eliminar el permiso de lectura,de forma que ningun usuario pudiera saber quien esta en la maquina.
Wtpm Fichero de log que se encuentra en /var/log/ que contiene los datos organizados de forma identica que utmp con la diferencia de que este es un historial de todos los logins y logouts realizados.El procedimiento de añadir entradas en el wtmp es similar al utmp pero mas pesado. El administrador puede controlar,el mismo o mediante un script,que los valores de los ficheros utmp y wtmp no se contradigan,ya que de ser asi,podria afirmar que un usuario no autorizado ha accedido a la maquina.
Espero que este breve resumen os haya sido de utilidad,para iniciaros en el mundo de los ficheros de log en Linux,los cuales son muy importantes para la resolucion de problemas y el mantenimiento del sistema.El logeo,ademas,es altamente configurable y los logs pueden incluso ser guardados en sistemas separados por cuestiones de seguridad.
|