650 likes | 744 Views
Unit 8 System Monitoring. J. Valenzuela Instituto Profesional DUOC UC Semestre 1 - 2012. Objetivos. Aprender a identificar estadísticas sobre archivos. Asegurar la integridad del sistema de archivos. Comprender la configuración del sistema de log.
E N D
Unit 8SystemMonitoring J. Valenzuela Instituto Profesional DUOC UC Semestre 1 - 2012
Objetivos • Aprender a identificar estadísticas sobre archivos. • Asegurar la integridad del sistema de archivos. • Comprender la configuración del sistema de log. • Aprender acerca del análisis de los archivos log. • Comprender la monitorización de procesos.
Agenda • Archivos log comunes. • Configuración de syslogd y klogd. • Monitorización de procesos y contabilidad.
Introducción a la monitorización del sistema • Brechas de seguridad pueden ser detectadas con una monitorización regular del sistema. • La monitorización del sistema incluye: la monitorización del sistema de archivos, el análisis de los archivos de log, la monitorización de procesos, entre otros.
Análisis del sistema de archivos • La monitorización regular del sistema de archivos puede prevenir: • El agotamiento de los recursos del sistema . • Brechas de seguridad debido a un pobre control de acceso. • La monitorización del sistema de archivos debería incluir: • Escaneos de la integridad de datos
Análisis del sistema de archivos • Investigación de archivos sospechosos. • RHEL provee varias utilidades estándar que pueden ser usadas para monitorizar permisos de archivos, uso del sistema de archivos y otras actividades que pueden afectar la seguridad. • Utilidades: df, du, logwatch
Utilidades estándar • Una simple utilidad que puede ser usada para monitorizar la utilización del sistema de archivos es el comando df. • El comando df reporta acerca de la cantidad total de espacio disponible sobre cada partición montada y puede ser usada para advertir situaciones en las que un sistema está cerca de correr fuera del espacio disponible.
Utilidades estándar • Sin argumentos, df informa del espacio de disco usado y del disponible en todos los sistemas de archivos montados actualmente. • Algunas opciones útiles de df son: • -i, --inodes– listar información sobre la utilización de i-nodos en vez de bloques. • -h, --human-readable • -a, --all
Utilidades estándar • El comando du puede ser utilizado para desplegar la cantidad actual de almacenamiento requerido por un archivo dado, como oposición al largo del archivo, que es reportado por ls –l.
Utilidades estándar • du informa de la cantidad de espacio de disco usada por los archivos especificados, y por cada directorio en las jerarquías cuyas raíces estén el los archivos especificados. • Algunas opciones de du son: • -c, --total – Mostrar un total para todos los argumentos después de que éstos se hayan procesados.
Sistema de archivos log • El sistema de archivos de log de LINUX, es un mecanismo estándar que se encarga de recoger los mensajes generados por el kernel, los programas, aplicaciones y demonios y lo que está ocurriendo en el sistema, y enviarlos a un destino predefinido. • Esta información es muy importante para detectar intentos de acceso no autorizados, como se comporta un manejador, seguridad, estadísticas, detección de problemas, etc.
Sistema de archivos log • La información se envía en forma de mensajes a unos archivos conocidos como archivos de registro o archivos de log. • En cada “mensaje de log” consta la fuente (el programa que generó el mensaje), la prioridad (nivel de importancia del mensaje), la fecha y la hora.
Sistema de archivos log • Porejemplo, un mensaje de error de kernel indicando un problema con los datos de un sistema de archivosext2fsdeberíaaparecer en los archivos log como: Dec 1 21:03:35 loomer kernel: EXT2-fs error (device 3/2): ext2_check_blocks_bit map: Wrong free blocks count in super block, stored = 27202, counted = 27853
Sistema de archivos log • Además, es posible especificar múltiples destinos para un mismo mensaje.
Sistema de archivos log • ¿Por qué monitorizar los archivos de log? • Monitorizar archivos de log ayuda a detectar: • Problemas de equipo tales como crash de discos duros o caídas de voltaje. • Problemas de usuarios tales como repetidas fallas en el proceso de login. • Brechas de seguridad desde fuera del sistema.
Sistema de archivos log • ¿Qué archivos de log monitorizar? • Los archivos de log a monitorizar incluyen: • /var/log/messages– Muchos mensajes del sistema. Aquí encontraremos los logs que llegan con prioridad info (información), notice (notificación) o warn (aviso). • /var/log/kern.log: aquí se almacenan los logs del kernel, generados por klogd.
Sistema de archivos log • /var/log/auth.log: en este log se registran los login en el sistema, las veces que hacemos su, etc. Los intentos fallidos se registran en líneas con información del tipo invalidpasswordo authenticationfailure. • /var/log/secure– Mensajes de autenticación, servicios xinetd. • /var/log/vsftpd.log – Transacciones FTP (vsftpd).
Sistema de archivos log • /var/log/dmesg: en este archivo se almacena la información que genera el kernel durante el arranque del sistema. Podemos ver su contenido con el comando dmesg. • /var/log/wtmp: este log contiene la información relacionada a los “logins” y “logouts” relacionados al sistema (desde donde, horario, fecha, usuario). Para poder verlo tenemos que utilizar el comando last.
Sistema de archivos log • Relacionado con este, también tenemos el archivo utmp, el cual nos brinda información acerca de los usuarios “logeados” en el sistema al momento de solicitar la información. • Para acceder a esta información podemos utilizar el comando who (también se puede utilizar el comando last).
Sistema de archivos log • /var/log/lastlog: Este archivo contiene información relativa a la fecha y hora del último login de cada usuario, para acceder a esta información podemos hacerlo con el comando lastlog. • Para indicar de que usuario queremos saber, anteponemos -u al nombre de usuario, por ejemplo, podemos usar: [root@localhost ~]# lastlog -u alumno
Sistema de archivos log • /var/log/faillog: este log registra los intentos fallidos de cada usuario al querer “logearse” en el sistema, para acceder tenemos el comando faillog: [root@localhost ~]# faillog -u alumno • En la columna "Maximum" se indica la cantidad de intentos erróneos que se permiten antes de deshabilitar la cuenta.
Sistema de archivos log • Para modificar este valor se debe usar la orden faillog -u alumno -m valor donde valor es el número máximo. • /var/log/maillog– Transacciones de correo.
Sistema de archivos log • La información contenida en el archivo /var/log/messagesincluye: • Fecha y hora en que el mensaje fue escrito. • Nombre de la utilidad, programa, o demonio que causó el mensaje. • Acción que ocurrió. • Hostname del programa en ejecución.
Sistema de archivos log • La información exacta en un archivo de log depende de la aplicación. Muchas aplicaciones crean sus propios archivos de log que pueden también ser monitorizados. • Los logs se guardan en archivos ubicados en el directorio /var/log, aunque muchos programas manejan sus propios logs y los guardan en /var/log/<programa>.
Demonios syslogd y klogd • El sistema de archivos de logsarranca con el script /etc/init.d/sysklogd, y tiene dos demonios: syslogd y klogd. • El demonio syslogd permite gestionar los logs del sistema. • El demonio klogd se encarga de los logs del kernel. Lo normal es que klogd envíe sus mensajes a syslogd pero no siempre es así, sobre todo en los eventos de alta prioridad, que salen directamente por pantalla.
Configuración de syslogd y klogd • Los demonios syslogdy klogdpueden ser configurados en /etc/syslog.conf. • Es posible configurar que tipo y que cantidad de mensajes del sistema es almacenado en archivos de log específicos. • La sintaxis es la siguiente: La primera entrada especifica una lista de declaraciones de la forma facility.priority .
Configuración de syslogd y klogd • El segundo campo especifica la localización del log, que es usualmente un archivo. • Facilidades: • authpriv – Mensajes de seguridad y autorización. • cron – Demonios de reloj (atd y crond). • daemon – Otros demonios. • kern – Mensajes del kernel.
Configuración de syslogd y klogd • local[0-7] – Reservado para uso local. • lpr – Sistema de impresoras. • mail – Sistema de correo. • news – Sistema de noticias. • syslog– Mensajes syslog internos. • user – mensajes genéricos nivel usuario.
Configuración de syslogd y klogd • Prioridades: • debug – Información de depuración. • info – mensajes informativos generales. • notice – condición normal, pero significativa. • warning – mensajes de warning. • err – condición de error.
Configuración de syslogd y klogd • crit – condición crítica. • alert – acción inmediata requerida. • emerg – system no longeravailable. • Por ejemplo: kern.info /var/log/kernel • Registrará todos los mensajes relativos al kernel de prioridad info y mayor al archivo /var/log/kernel.
Configuración avanzada de syslogd • Operadores: = registrar sobre sólo esta prioridad exacta ! Excluir esta facilidad o prioridad * registrar todas las facilidades/prioridades • Con estos operadores es posible definir: • facility.priority – Mensajes de facilidad con igual o mayor prioridad.
Configuración avanzada de syslogd • facility.=priority– Mensajes de facilidad con prioridad exacta. • facility.=!priority– Mensajes de facilidad excepto aquellos con prioridad. • facility1, facility2.priority – Mensajes de prioridad para facilidad 1 y facilidad 2. • *.priority– Mensajes con prioridad igual o superior, independiente de la facilidad.
Configuración avanzada de syslogd • Special targets: • Lista de usuarios separados por coma. • Máquina remota (@hostname). • Es posible registrar a diferentes máquinas. Esto puede ser producido definiendo @hostnamecomo localización para los log. • El contenido de los archivos de log remotos y local deberían ser comparados ocasionalmente.
Configuración avanzada de syslogd • Diferencias entre estos archivos podrían indicar errores de red o interferencias con uno de los archivos. • Un demonio syslog remoto solo acepta mensajes de entrada si la funcionalidad remota es habilitada usando el switch de línea de comando –r. • Esta y otras opciones de startup pueden ser especificadas en /etc/sysconfig/syslog.
Análisis de los archivos de log • El análisis de los archivos de log debería ser realizado regularmente. • Los archivos de log pueden crecer muy grandes sobre servidores grandes, es prácticamente imposible mirar a través de todos los datos a mano. Es por lo tanto práctico utilizar herramientas de análisis de log como logwatch, que es instalada por defecto en muchos sistemas.
Análisis de los archivos de log • logwatch puede ser instalado para correr por crond cada hora para reportar posibles problemas. • Cuando estamos mirando por anomalías, logwatch utiliza listas negativas: • Descartar todo lo normal • Analizar el resto
Análisis de los archivos de log • logwatch corre diariamente, sin embargo sobre un servidor ocupado e incluso en muchas worstations, el debería ser ejecutado mucho mas a menudo, quizás cada hora. • logwatch informa de la actividad, excepto aquellas acciones que está programado para ignorar. • logwatch es configurado en el archivo /etc/log.d.
Rotación de los archivos de log • Para evitar que los archivos log crezcan indefinidamente con los mensajes, se hace que sean circulares (son rotados). • Los archivos de log pueden volverse grandes y difíciles de manejar, debido a esto LINUX provee un comando para rotarlos y así evitar que la información actual se mezcle con información vieja irrelevante.
Rotación de los archivos de log • El paquete logrotate contiene una tarea de cron que hace circular o rotar automáticamente los archivos de log. • Para esto último será necesario utilizar el archivo de configuración /etc/logrotate.confy los archivos de configuración en el directorio /etc/logrotate.d.
Rotación de los archivos de log • Se puede configurar el comportamiento automático de logrotate editando el archivo de configuración /etc/logrotate.conf. • Generalmente, logrotate se ejecuta cada cierto tiempo automáticamente, aunque también puede ejecutarse de forma manual.
Rotación de los archivos de log • Cuando es ejecutado, logrotate tomará la versión actual de un archivo de log y le añadirá un ".1" al final de su nombre. Luego, cualquier otro archivo rotado previamente será renombrado secuencialmente ".2", ".3", etc. Cuando más grande el número del log, más viejo es el archivo.
Rotación de los archivos de log • El programalogrotatepuederotar los archivos logbasado en variosparámetros, pudiéndoserealizarrotacionesdiariamente, semanalmente o mensualmente; además, basado en el tamaño del archivo de log, logrotatepuedecomprimir los logs para no comprometer el espacio del disco, etc.
Rotación de los archivos de log • En resumen, logrotateesunacompletaherramienta de administración de los logs del sistema. • Algunas de lasdirectivas de configuración de logrotateincluyen: • daily - Los archivos log seránrotadostodos los días. • weekly - Los archivos log seránrotadosunavezporsemana. • monthly - Los archivos log seránrotadosunavezpormes.
Rotación de los archivos de log • rotate – Especifica el número de vecesque los archivos log seránrotados antes de queseanborrados o enviadosporcorreo a unadirecciónespecificada en unadirectiva mail. • compress – Las versionesantiguas de los archivos log seráncomprimidas con gzip. • Existenvariasotrasdirectivasasociadas con el programalogrotate; comosiempre, consultar el manual en líneaparamásinformación.
Rotación de los archivos de log • Son variaslasaplicaciones y/o serviciosqueinstalansuspropiosarchivos de rotación de logs dentro del directorio/etc/logrotate.d/, estopermiteasegurarquesuslogsseanadecuadamenterotados. • Porejemplo, el paqueteapache2crea el archivo de rotación/etc/logrotate/apache2.
Utilidades System/Monitoring • Muchas utilidades de monitorización del sistema reportan la “carga” del sistema. • Es necesario notar que una carga alta podría indicar una máquina que está acotada por CPU, pero también podría indicar sistemas acotados por memoria o acotados por I/O. • xload - xload provee una vista gráfica de la carga del sistema: [root@localhost ~]# xload -scale 2
Utilidades System/Monitoring • uptime - uptime proporciona una instantánea de la carga promedio del sistema en los últimos 1, 5 y 15 minutos: [root@localhost ~]# uptime 9:10:01 up 120 days, 0 min, 9 users, load average: 9.23, 0.96, 0.00 • Máquinas con un único procesador deberían proporcionar valores cercanos a 1.00.
Utilidades System/Monitoring • Máquinas multi-procesador deberían proporcionar hasta 10 veces esa razón (valores cercanos a 10.00). • vmstat - Con vmstat, es posible obtener una vista general de los procesos, memoria, swap, E/S, sistema y actividad de CPU en una línea de números:
Utilidades System/Monitoring • La primera línea divide los campos en seis categorías, incluyendo procesos, memoria, swap, E/S, sistema y estadísticas relacionadas al CPU. La segunda línea identifica aún más los contenidos de cada campo, haciendo más fácil escanear datos para ver estadísticas específicas.
Utilidades System/Monitoring • Cuando se ejecuta vmstat sin opciones, solamente se muestra una línea. Esta línea contiene promedios, calculados desde la última vez que se arrancó el sistema. • [root@localhost ~]# vmstat • [root@localhost ~]# vmstat 1 • [root@localhost ~]# vmstat 1 10