¿Cómo puedo obtener una lista de intentos de inicio de sesión con journalctl?

¿Cómo puedo obtener una lista de intentos de inicio de sesión con journalctl?

Según los systemddocumentos, journalctlse recomienda para explorar registros, en lugar del /var/log/*árbol de archivos.

Mientrasman 1 journalctldescribe cómo usarlo, todavía no sé qué argumentos necesita para darme la lista de cosas que quiero. Por ejemplo, quiero ver una lista de inicios de sesión de usuarios. Soy conscientesshdmaneja inicios de sesión ssh, pero ¿qué pasa con los inicios de sesión locales y la autenticación general de usuarios?

Esto es lo que he probado:

#shows all logs. huge
journalctl

#limit history and search for "login"
journalctl --since "yesterday" | grep login

#a week ago rather than just a day
journalctl --since `date +"%Y-%m-%d" --date "last week"` | grep login

... systemd-logind[678]: New session 81 of user jozxyqk.

Esto parece dar algunas indicaciones, pero definitivamente no es el método más sólido. ¿Cuál es la forma correcta?

Respuesta1

Correr:

journalctl -q _AUDIT_TYPE=1112 _TRANSPORT=audit

Explicación:

Suponiendo que tiene el subsistema de auditoría ejecutándose (y, a menos que lo deshabilite, lo tiene), esa es la mejor manera de obtener este tipo de información, porque, entre otras cosas, si usa _TRANSPORT=audit, los mensajes no se pueden falsificar como los del socket syslog tradicional. . Para vertodode los mensajes enviados a través de este transporte, utilice journalctl -q _TRANSPORT=audit. (El -q evita -- Reboot --líneas molestas).

Para verlos en forma detallada, haga journalctl -q _TRANSPORT=audit -o verbose. En realidad, sugiero detenerse y hacerlo ahora mismo mientras sigue, porque lo siguiente que queremos hacer es filtrar por uno de los campos que vemos allí. Aquí hay un registro de mi sistema:

_BOOT_ID=[redacted]
_MACHINE_ID=[redacted]
_HOSTNAME=[redacted]
_UID=0
_TRANSPORT=audit
SYSLOG_FACILITY=4
SYSLOG_IDENTIFIER=audit
AUDIT_FIELD_HOSTNAME=?
AUDIT_FIELD_ADDR=?
AUDIT_FIELD_RES=success
_AUDIT_LOGINUID=18281
_AUDIT_TYPE=1112
AUDIT_FIELD_OP=login
AUDIT_FIELD_ID=18281
_PID=5398
_SELINUX_CONTEXT=system_u:system_r:local_login_t:s0-s0:c0.c1023
AUDIT_FIELD_EXE=/usr/bin/login
AUDIT_FIELD_TERMINAL=tty6
_AUDIT_SESSION=541
_SOURCE_REALTIME_TIMESTAMP=1480529473269000
_AUDIT_ID=7444
MESSAGE=USER_LOGIN pid=5398 uid=0 auid=18281 ses=541 subj=system_u:system_r:local_login_t:s0-s0:c0.c1023 msg='op=login id=18281 exe="/usr/bin/login" hostname=? addr=? terminal=tty6 res=success'

En MESSAGEla parte inferior está el registro no estructurado, que es básicamente lo que se ve en la salida de estilo syslog no detallada. Nosotrospodríagrep for MESSAGE=USER_LOGIN(y listo ahora mismo), pero el diario nos permite hacer más cosas interesantes, así que sigamos así.

Cada tipo de mensaje de auditoría tiene un asociado _AUDIT_TYPE(¡imagínelo!). Por alguna razón, esto no se convierte de manera útil a texto en la salida estructurada, pero 1112corresponde a USER_LOGIN. Confirmé esto revisando libaudit.h, que tiene (con algunas líneas de contexto):

#define AUDIT_USER_CHAUTHTOK    1108    /* User acct password or pin changed */
#define AUDIT_USER_ERR          1109    /* User acct state error */
#define AUDIT_CRED_REFR         1110    /* User credential refreshed */
#define AUDIT_USYS_CONFIG       1111    /* User space system config change */
#define AUDIT_USER_LOGIN        1112    /* User has logged in */
#define AUDIT_USER_LOGOUT       1113    /* User has logged out */
#define AUDIT_ADD_USER          1114    /* User account added */
#define AUDIT_DEL_USER          1115    /* User account deleted */

Entonces, journalctl -q _AUDIT_TYPE=1112 _TRANSPORT=audites lo que necesitas. Obtiene inicios de sesión ssh, terminal y GUI, y registra el éxito y el fracaso. Tenga en cuenta quenocapte cosas como sudoo su: existen diferentes registros de auditoría para ellos.

Incluso la versión "corta" del resultado es algo detallada, por lo que es posible que quieras usar -o jsony crear un script corto para analizar el resultado en un formato bonito.

Respuesta2

journalctl -q SYSLOG_FACILITY=10 SYSLOG_FACILITY=4

Esto le indica al diario que filtre los mensajes provenientes de 2 instalaciones diferentes. Número 10 para authprivy número 4 para auth. ssh y muchas otras aplicaciones sensibles al inicio de sesión utilizan estas 2 funciones para iniciar sesión.

Respuesta3

¿Quieres inicios de sesión o intentos de inicio de sesión?

Esto muestra los inicios de sesión perono intentos(hoy por ejemplo) y funciona en Fedora 22:

$ journalctl -u 'systemd-logind'  --since "today" --until "tomorrow"

Aquí hay un resultado de muestra: -- Logs begin at Mon 2014-09-01 03:10:03 BST, end at Fri 2015-11-20 09:55:02 GMT. -- Nov 20 08:47:15 meow systemd[1]: Starting Login Service... Nov 20 08:47:15 meow systemd-logind[699]: New seat seat0. Nov 20 08:47:15 meow systemd-logind[699]: Watching system buttons on /dev/input/event2 (Power Button) Nov 20 08:47:15 meow systemd-logind[699]: Watching system buttons on /dev/input/event0 (Power Button) Nov 20 08:47:15 meow systemd-logind[699]: Watching system buttons on /dev/input/event1 (Lid Switch) Nov 20 08:47:15 meow systemd[1]: Started Login Service. Nov 20 08:47:37 meow systemd-logind[699]: New session c1 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: New session c2 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c1. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c2. Nov 20 08:47:46 meow systemd-logind[699]: New session c3 of user gdm. Nov 20 08:51:22 meow systemd-logind[699]: New session 1 of user david1.

Está lleno de otra información, como la tapa y los botones de encendido, por lo que podrías buscar para sessionser más preciso: $ journalctl -u 'systemd-logind' --since "today" --until "tomorrow" | grep session Nov 20 08:47:37 meow systemd-logind[699]: New session c1 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: New session c2 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c1. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c2. Nov 20 08:47:46 meow systemd-logind[699]: New session c3 of user gdm. Nov 20 08:51:22 meow systemd-logind[699]: New session 1 of user david1.

información relacionada