Red de conocimiento del abogados - Preguntas y respuestas jurídicas - Cómo ver varios archivos de registro en el sistema Linux Análisis de los registros del sistema Linux.

Cómo ver varios archivos de registro en el sistema Linux Análisis de los registros del sistema Linux.

Los archivos de registro registran en detalle diversos eventos que ocurren en el sistema todos los días. Los usuarios pueden verificar la causa de los errores a través de archivos de registro o rastrear los rastros del atacante cuando fue atacado y pirateado. Las dos funciones más importantes de los registros son: auditoría y seguimiento.

Los registros del sistema Linux se dividen principalmente en dos tipos:

1. Registros de procesos

Registros generados por procesos de usuario u otros procesos de servicios del sistema, como archivos de registro access_log y error_log en el servidor.

2. mensajes syslog

Registros registrados por el syslog del sistema. Cualquier proceso del sistema o proceso de usuario que desee registrar registros puede llamar a syslog para registrar registros.

El sistema de registro se puede dividir en tres subsistemas:

1. Registro de tiempo de conexión: ejecutado por múltiples programas, escribiendo registros en /var/log/wtmp y /var/run/utmp, inicio de sesión y otros programas actualizan archivos wtmp y utmp, lo que permite a los administradores del sistema rastrear quién inició sesión y cuándo en el sistema.

2. Estadísticas del proceso: ejecutadas por el núcleo del sistema. Cuando finaliza un proceso, se escribe un registro en el archivo de estadísticas del proceso (pacct o acct) para cada proceso. El propósito de las estadísticas de procesos es proporcionar estadísticas de uso de comandos para los servicios básicos del sistema.

3. Registro de errores: realizado por syslogd(8). Varios demonios del sistema, programas de usuario y el kernel informan eventos importantes al archivo /var/log/messages a través de syslog(3).

2. Ver archivos de registro

Todos los archivos de registro del sistema Linux se encuentran en /var/log y debe tener permisos de root para verlos.

El archivo de registro es en realidad un archivo de texto sin formato y cada línea es un mensaje. Hay muchas maneras de mirar.

1. comando de gato. Los archivos de registro siempre son grandes porque los mensajes se acumulan en el archivo de registro desde la primera vez que inicia Linux. Si el archivo tiene más de una página, el contenido del archivo no estará claro porque la pantalla se desplaza demasiado rápido.

2. Editor de texto. Es mejor no abrir el archivo de registro con un editor de texto, porque por un lado consume memoria y, por otro lado, no se permite modificar el archivo de registro a voluntad.

3. Utilice más o menos paginación para mostrar el programa.

4. Utilice grep para buscar mensajes específicos.

Cada línea representa un mensaje, y está compuesta por cuatro campos en un formato fijo:

n Marca de tiempo (timestamp), que indica la fecha y hora en que se envió el mensaje

n nombre de host (el nombre de host en nuestro ejemplo es escher), representa el nombre de la computadora que generó el mensaje. Si solo hay una computadora, es posible que no sea necesario un nombre de host. Sin embargo, si se utiliza syslog en un entorno de red, los mensajes de diferentes hosts pueden enviarse a un servidor para su procesamiento centralizado.

n El nombre del subsistema que generó el mensaje. Puede ser "kernel", que indica que el mensaje proviene del kernel, o el nombre del proceso, que indica el nombre del programa que envió el mensaje. Entre corchetes está el PID del proceso.

En un mensaje, la parte restante es el contenido del mensaje.

Ejemplo:

Ingrese en el mensaje [root@localhost root]#: tail /var/log/messages

05 de enero 21:55:51 localhost último mensaje repetido 3 veces

05 de enero 21:55:51 kernel localhost: [drm] AGP 0.99 en Intel i810 @ 0xf0000000 128M

B

05 de enero 21:55:51 kernel localhost: [drm] Inicializado i830 1.3.2 20021108 en menor

05 de enero 21:55:51 kernel localhost: mtrr: base(0xf0000000) no está alineada en un tamaño< / p>

e(0x12c000) límite

05 de enero 21:56:35 localhost 28 de enero 21:56:35 gdm(pam_unix)[4079]: sesión abierta f

o usuario root por (uid=0)

05 de enero 21:56:39 localhost 28 de enero 21:56:39 gconfd (root-4162): Iniciando (versión 2.

2.0), pid 4162 usuario "root"

05 de enero 21:56:39 localhost 28 de enero 21:56:39 gconfd (root-4162): Dirección resuelta "xml:re

adoly:/etc/gconf/gconf.xml.mandatory" apunta a la fuente de configuración de solo lectura en 0

05 de enero 21:56:39 localhost 28 de enero 21:56: 39 gconfd (root- 4162): La dirección resuelta "xml:re

adwrite:/root/.gconf" apunta a la fuente de configuración grabable el 1

05 de enero 21: 56:39 localhost 28 de enero 21:56:39 gconfd (root-4162): la dirección resuelta "xml:re

adonly:/etc/gconf/gconf.xml.defaults" apunta a la ubicación 2 Fuente de configuración de solo lectura

05 de enero 21:58:20 kernel localhost: MSDOS FS: IO charset cp936

Vale la pena señalar que, a diferencia del registro de tiempo de conexión, el subsistema de estadísticas del proceso está predeterminado en No activado, debe ser iniciado. Para iniciar las estadísticas del proceso en un sistema Linux, utilice el comando accton, que debe ejecutarse como root. La forma del comando accton es: accton

archivo, el archivo debe existir de antemano. Primero use el comando touch para crear el archivo pacct: touch

/var/log/pacct, y luego ejecute accton: accton

/var/log/pacct. Una vez activada la cuenta, puede utilizar el comando lastcomm para monitorear los comandos ejecutados en cualquier momento en el sistema. Para desactivar las estadísticas, utilice el comando accton sin ningún

parámetro.

3. El principio de funcionamiento y la configuración del sistema de registro

3.1 syslog

Envía mensajes al registrador del sistema como closelog y openlog***.

El kernel de Linux se compone de muchos subsistemas, que incluyen redes, acceso a archivos, gestión de memoria, etc. El subsistema necesita enviar algunos mensajes a los usuarios, incluida la fuente del mensaje y su importancia. Todos los subsistemas envían mensajes a un área de mensajes común que se puede mantener. Entonces, existe un programa llamado Syslog.

Este programa es responsable de recibir mensajes (como mensajes de error, mensajes de advertencia y otros mensajes generados por el núcleo del sistema y muchos programas del sistema, cada mensaje incluye un nivel de gravedad) y distribuir los mensajes a los lugares apropiados. . En circunstancias normales

todos los mensajes se registran en un archivo específico: un archivo de registro (generalmente el archivo de mensajes en el directorio /var/adm o /var/log también se mostrarán). la ventana del terminal de usuario.

La herramienta syslog tiene dos archivos importantes: syslogd y syslog.Conf

Puede aceptar la información de registro del sistema de acceso y seguir las instrucciones en "/etc/syslog.conf " archivo de configuración Procesa esta información. Los demonios y el kernel proporcionan información de registro para acceder al sistema. Por lo tanto, cualquier programa que desee generar información de registro puede generar esa información realizando llamadas a la interfaz syslog.

3.2 demonio syslogd

Al igual que otros sistemas operativos complejos, Linux también se compone de muchos subsistemas diferentes. Algunos programas llamados demonios siempre están ejecutándose en segundo plano (daemon: significa santo patrón. Es decir, son "oscuros" y no necesitan interactuar con los usuarios), procesando algunas tareas como imprimir, enviar correos electrónicos y establecer la Internet. Conectividad, etc. Tareas cotidianas. Cuando cada subsistema envía un mensaje de registro, asignará un tipo al

mensaje. Un mensaje se divide en dos partes: "instalación" y "nivel". "Dispositivo" identifica el subsistema que envía el mensaje y puede agrupar mensajes del mismo tipo. "Nivel" indica la importancia del mensaje, que va desde depuración (el menos importante) hasta emergencia (el más importante). se combinan. (Consulte 5.3 para obtener una explicación detallada)

Hay una definición relevante en /usr/include/sys/syslog.h.

Los usuarios no pueden ver los programas demonio porque no tienen ventanas ni interfaces de usuario. Sin embargo, estos programas a veces también necesitan transmitir cierta información a los usuarios. Para lograr este propósito, se necesita un mecanismo especial. Un buen ejemplo de demonio es syslogd, que se ejecuta en segundo plano y transfiere mensajes desde el área de registro a archivos de registro.

Interfaz de funciones

#include

void openlog( char * , int , int )

Entre ellos, puede ser el OR de los siguientes valores Combinación:

LOG_CONS: Si el mensaje no se puede enviar a syslogd, se envía directamente a la consola del sistema.

LOG_NDELAY: abre la conexión a syslogd inmediatamente. La conexión predeterminada se abre cuando se escribe un mensaje por primera vez.

LOG_PERROR: envía el mensaje a stderr al mismo tiempo

LOG_PID: registra el PID en cada mensaje

void syslog( int, char *)

p>

Entre ellos, es la combinación O de instalación y nivel

void closelog( void )

Generalmente, solo es necesario usar la función syslog() y no se requieren otras funciones.

3.3 syslog.conf

Este es un archivo muy importante. Ubicado en el directorio "/etc/". Informa a syslogd cómo reportar información según el dispositivo y los niveles de gravedad de la información.

El archivo utiliza el siguiente formato:

acción de nivel de instalación

La primera columna de syslog.conf, nivel de instalación, se utiliza para especificar el registro función y nivel de registro, separados por ., puede usar * para hacer coincidir todas las funciones y niveles de registro. La acción de la segunda columna es el destino de distribución del mensaje.

Las líneas en blanco y las líneas que comienzan con # son comentarios y pueden ignorarse.

El campo Facility.level también se denomina selector.

n instalación especifica la funcionalidad de syslog, que incluye principalmente lo siguiente:

auth Actividades de autenticación reportadas por pam_pwdb.

authpriv Actividades de autenticación que incluyen información privilegiada como nombre de usuario

cron Información relacionada con cron y at.

daemon Información sobre el demonio inetd.

kern la información del kernel se pasa primero a través de klogd.

lpr Información relacionada con servicios de impresión.

mail Información relacionada con el correo electrónico

mark syslog función interna utilizada para generar marcas de tiempo

noticias Información del servidor de noticias

syslog Información generada por syslog

usuario Información generada por programas de usuario

uucp Información generada por uucp

local0----local7 y programas personalizados Utilice, por ejemplo, utilice local5 como la función ssh

* El carácter comodín representa todas las funciones excepto marcar.

El nivel determina la importancia del mensaje.

La prioridad correspondiente a cada función se ordena en un orden determinado, emerg es el nivel más alto, seguido de alerta, etc. De forma predeterminada, el nivel especificado en el registro /etc/syslog.conf es este nivel y superiores. Si desea utilizar un determinado nivel, ¡puede utilizar dos operadores! (no iguales) y =.

Por ejemplo: user.=info le dice a syslog que acepte toda la información de funciones del usuario en el nivel de información.

n Los siguientes niveles tienen una importancia decreciente:

emerg El sistema no está disponible

alerta Condiciones que deben modificarse inmediatamente

crit Condiciones de error que impiden que se implementen algunas herramientas o funciones del subsistema

err Condiciones de error que impiden que se implementen herramientas o algunas funciones del subsistema

advertencia información de advertencia

aviso condiciones ordinarias de importancia

info mensajes que proporcionan información

la depuración no contiene condiciones de función u otra información sobre problemas

ninguno no tiene nivel de importancia, generalmente se usa Para depuración

* Todos los niveles excepto ninguno

n El campo de acción es el dominio de acción y la actividad representada tiene mucha flexibilidad. En particular, la función del canal de nombre puede. ser utilizado Hace que syslogd genere mensajes de posprocesamiento.

syslog admite principalmente las siguientes actividades:

el archivo agrega mensajes al final del archivo especificado

terminal o imprime el identificador completo del dispositivo serie o paralelo

p>

servidor de registro remoto @host

nombre de usuario escribe mensajes al usuario especificado

tubería con nombre especifica la ruta absoluta del archivo FIFO creado usando el comando mkfifo.

*Escribir el mensaje a todos los usuarios

El campo de selección especifica el tipo y la prioridad del mensaje; el campo de acción especifica qué hará syslogd cuando reciba un mensaje que coincida con la selección; criterios de acción. Cada opción se compone de un dispositivo y una prioridad. Cuando se especifica una prioridad, syslogd registrará un mensaje con la misma o mayor prioridad. Por ejemplo, si se especifica "crítico", se registrarán todos los mensajes marcados como crítico, alerta y emergente. El campo de acción de cada fila indica dónde se debe enviar un mensaje determinado cuando el campo de selección lo selecciona.

El siguiente es el archivo de configuración (syslog.conf) de un sitio real:

# Almacenar cosas críticas en crítico

#

* .=crit;kern.none /var/adm/critical

Esto guardará toda la información en el archivo /var/adm/critical con prioridad crítica, excepto parte de la información del kernel

# Los mensajes del kernel son primero, se almacenan en el archivo del kernel

#, los mensajes críticos y superiores también van

# a otro host y a la consola

#

kern.* /var/adm/kernel

kern.crit @finlandia

kern.crit /dev/console

kern.info;kern.!err /var/adm/kernel-info

El primer código dirige a algunos dispositivos del kernel a acceder a información sobre el archivo /var/adm/kernel.

El segundo código dirige directamente toda la información del kernel con crítica y mayor prioridad para acceder al host remoto. Si también están almacenados en un host remoto, aún puedes intentar encontrar la causa de la corrupción.

La cuarta línea explica que syslogd guarda toda la información del kernel con niveles de prioridad desde información hasta advertencia en la carpeta /var/adm/kernel-info. Se excluyen todos los errores y los de mayor prioridad.

# El contenedor tcp se registra con mail.info, mostramos

# todas las conexiones en tty12

#

mail.= info /dev/tty12

Esto dirige todos los mensajes usando mail.info (en la fuente LOG_MAIL | LOG_INFO) a /dev/tty12, la duodécima consola

.

Por ejemplo, tcpwrapper

tcpd

(8) usa esto de forma predeterminada

# Almacena todo el correo relacionado con cosas en un archivo

correo .*;mail.!=info /var/adm/mail

El patrón coincide con todos los mensajes con función de correo, excepto aquellos con prioridad de información. Se guardarán en el archivo /var/adm/mail

# Registre todos los mensajes de mail.info y news.info en info

#

mail, news.=info /var/adm/info

Extraiga toda la información con prioridad de función mail.info o news.info y guárdela en el archivo /var/adm/info

# Registrar mensajes de información y aviso en el archivo de mensajes

#

*.=info;*.=notice;\

mail.none /var/log/messages

Habilite que toda la información con funciones de información o aviso en los registros de syslogd se almacene en el archivo /var/log/messages, excepto toda la información con funciones de correo

# Registrar mensajes de información en mensajes file

#

*.=info;\

mail,news.none /var/log/messages

Esta declaración causa syslogd Todos los mensajes con prioridad de información en el registro se almacenan en el archivo /var/log/messages. Pero cierta información con funciones de correo o noticias no se puede almacenar.

# Los mensajes de emergencia se mostrarán usando wall

#

*.=emerg *

Esta línea de código le indica a syslogd que escriba toda la información de emergencia a todos los registros de usuarios actualmente conectados. Esto se implementará

# Los mensajes de la alerta de prioridad serán dirigidos

# al operador

#

*.alert root ,joey

*.* @finlandia

Este código dirige toda la información con permisos de alerta o superiores al terminal para su operación.

La segunda línea de código dirige toda la información al host remoto llamado finlandia. Este código es muy útil, especialmente en computadoras agrupadas donde toda la información de syslog se guardará en una máquina.

3.4 demonio klogd

klog es un dispositivo que recibe mensajes del kernel UNIX

klogd

El demonio obtiene y registra el código Linux información del núcleo. Normalmente, syslogd registrará toda la información enviada por klogd

. En otras palabras, klogd leerá la información del kernel y la reenviará al proceso syslogd. Sin embargo, si se llama a klogd con la variable -f nombre de archivo, klogd registra toda la información en nombre de archivo en lugar de pasarla a syslogd.

Cuando se especifica otro archivo para el registro, klogd

escribe todos los niveles o prioridades en ese archivo. No existe ningún archivo de configuración similar a /etc/syslog.conf en Klogd. La ventaja de usar klogd en lugar de

syslogd es que puedes encontrar muchos errores.

Resumen

Entre ellos, las flechas representan el envío de mensajes al proceso de destino o la escritura de información en el archivo de destino.

Figura 1 Sistema de registro de Linux

Administración y protección de registros

El programa logrotate se utiliza para ayudar a los usuarios a administrar archivos de registro. Funciona como su propio proceso demonio. . logrotate rota periódicamente los archivos de registro, cambia periódicamente el nombre de cada archivo de registro a un nombre de copia de seguridad y luego hace que su proceso demonio comience a utilizar una nueva copia del archivo de registro. Archivos como maillog, maillog.1,

maillog.2, boot.log.1, boot.log.2 se generan en /var/log/. Está controlado por un archivo de configuración,

/etc/logroatate.conf.

El siguiente es un ejemplo de un archivo logroatate.conf:

# consulte "man logrotate" para obtener más detalles

# rote los archivos de registro semanalmente

semanalmente

#Con 7 días como ciclo

# mantener 4 semanas de trabajos pendientes

rotar 4

#Volver arriba cada 4 semanas Archivo de registro

# enviar errores a la raíz

errores raíz

#Reportar errores a la raíz

# crear nuevo ( vacíos) archivos de registro después de rotar los antiguos

crear

#Crear nuevos archivos de registro después de rotar los antiguos

# descomentar esto si desea que sus archivos de registro se compriman

#compress

#Especifique si se comprime el archivo de registro

# Los paquetes RPM colocan información de rotación de registros en este directorio

incluye /etc / logrotate.d

# ningún paquete posee lastlog o wtmp - los rotaremos aquí

/var/log/wtmp {

mensualmente

crear 0664 root utmp

rotar 1

}

# registros específicos del sistema se pueden configurar aquí

Activado la red En las aplicaciones, existe una manera de proteger los registros. Configure un host syslog secreto en la red y configure la tarjeta de red de este host en modo promiscuo para monitorear todos los paquetes syslog en la subred. > Simplemente configure todos los hosts que necesitan enviar registros para enviar registros a un host inexistente. De esta manera, incluso si un pirata informático compromete el host de destino, no puede encontrar el host que realizó la copia de seguridad del registro a través del archivo syslog.conf. Es simplemente un host que no existe. En la operación real, la configuración del conmutador también se puede complementar para garantizar que el proceso syslog en el host de registro de respaldo pueda aceptar el paquete syslog.

Por ejemplo, configure el host de transmisión de registros en syslog.conf en

@192.168.0.13, pero este host de registro no existe en la red real. En realidad, puede ser 192.168.0.250 u otros hosts que acepten syslog. paquetes.