archivos de registro en CentOS 7 [cerrado]

8

En CentOS 7, ¿cómo puedo ubicar y ver todos los registros del sistema que me dicen quién intentó ingresar al sistema, quién ingresó, qué procesos contactaron, qué lograron, etc. Quiero poder vincular cada actividad a cualquiera un ID de usuario o una dirección IP remota.

Mi var/log/directorio contiene numerosos recursos, incluidos /var/log/messagesy /var/log/secure, pero la mayoría de los archivos son de tipo Binary (application/octet-stream)y el sistema operativo no sabe cómo abrirlos a menos que asocie algún programa de visualización desconocido con ellos. Además, var/log/firewalldno parece contener información útil.

Puedo encontrar todos los registros producidos por mi aplicación, mi base de datos y NginX / Apache.

CodeMed
fuente
Ok, ¿encontraste /var/logy todos ellos son binarios? ¿estás seguro? ¿Cómo te va?
Braiam
@Braiam No dije que fueran todos binarios. Dije que la mayoría de ellos son binarios. Por ejemplo, /var/log/firewalldes un archivo de texto que parece contener información inútil. Estoy comprobando haciendo clic en los archivos en la GUI. Primero haga clic izquierdo para intentar abrir, luego haga clic derecho para ver las propiedades para verificar el tipo de archivo.
CodeMed
El sistema no hace esto por defecto. Debe habilitar el registro de auditoría para obtener esto. Muestro muchos de los métodos en este A: unix.stackexchange.com/questions/75051/… . Hay una buena descripción general de auditado aquí: security.blogoverflow.com/2013/01/… . Busca a otros, hay muchos.
slm
@slm leí tus enlaces. Gracias. Este será un servidor web. Tendré que rastrear la identidad de cada individuo que toque de alguna manera cualquier registro en una base de datos o cualquier archivo en partes específicas del sistema de archivos. También necesitaré usar estos datos de registro para configurar alertas que se activen en cualquier momento en que un usuario no autorizado acceda a los datos. Sé cómo hacer el registro a nivel de aplicación y base de datos. Quiero configurar el registro para que los registros de CentOS puedan vincularse a los registros del contenedor web, los registros de la aplicación y los registros de la base de datos, tal vez por ip. ¿Cómo debo formular preguntas sobre el nivel de CentOS de este requisito?
CodeMed
@CodeMed: diría que es CentOS 7, tal como tú lo has hecho. Creo que puede hacer lo que quiera usando auditd, wrt la manipulación del sistema de archivos y qué comandos / procesos son invocados por los usuarios en el sistema de archivos local. Esto no mostrará nada más allá del usuario nginx, apache, etc. haciendo X aunque desde el nivel de aplicación. Es posible que necesite mezclar los 2 juntos. También lo enmarcaría como un systemd Q, con CentOS 7 como la instancia específica.
slm

Respuestas:

10

La utilidad (línea de comandos) que debería usar es journalctl. Por ejemplo, para ver la salida dmesg:

journalctl --dmesg

o entradas analizables relacionadas con el firewall:

journalctl --output=json-pretty UNIT=firewalld.service

Para obtener una lista de UNIDAD seleccionable, use las herramientas habituales:

journalctl --output=json-pretty | grep -F UNIT | sort -u

Vea man journalctlen su sistema más opciones para restringir y especificar la salida.

Anthon
fuente
Gracias. Este es un comienzo. Pero mi pregunta es más global. ¿Cómo obtengo una lista de todos los registros disponibles? ¿Y cómo consigo la salida en un formato que pueda usar? Por ejemplo, un recurso que se puede importar a un programa java que se rastrea a un usuario o ip. journalcdt --dmesgno parece identificar a nadie más específico que localhost.localdoman, y journalctl --firewalldproduce unrecognized option. Entonces, su sugerencia realmente no responde a mi pregunta todavía.
CodeMed
Realmente deberías mirar la página del manual. Es bastante infromativo. journalctl --output=json-pretty UNIT=firewalld.servicete da salida json.
Anthon
Gracias por la actualizacion. Leí el manual, pero su respuesta puede facilitar su aplicación. En este momento, journalctl --output=json-pretty | grep -f UNIT | sort -udagrep: UNIT: No such file or directory
CodeMed
Además, journalctl --output=json-pretty UNIT=firewalld.servicesolo funciona cuando estoy conectado como root, pero no cuando intento usar el terminal como un usuario normal. Por lo tanto, aún no puedo usar este código mediante programación. Si de alguna manera pudiera generar automáticamente un nuevo conjunto de archivos de registro para cada unidad seleccionable sin tener que dejar mi contraseña de root en un archivo pirateable, entonces esta pregunta sería respondida.
CodeMed
@CodeMed Hubo un error tipográfico en los grepargumentos (no corté y pegué y en minúscula la -Fopción).
Anthon