No confío en nadie, ni siquiera mis propios firewalls y otras medidas contra piratas informáticos invasivos, me gusta poder monitorear cualquier inicio de sesión exitoso a mis sistemas OS X (p. ej., al instante enviando un correo electrónico a mi cuenta de gmail).
¿Cómo puedo lograr esto, incluidos los inicios de sesión a través de Screen Sharing y SSH?
Puedo ver que el archivo secure.log enumera dichos inicios de sesión, pero ¿cómo puedo monitorearlos y filtrarlos para obtener inicios de sesión exitosos, a fin de emitir correos electrónicos sobre estos eventos?
El usuario bmike sugirió usar el comando tail en el archivo secure.log. Descubrí que este comando tiene una opción "-F" que es adecuada para esta tarea: sigo reportando líneas agregadas al archivo de registro e incluso maneja las rotaciones del archivo de registro.
Pero esto no es suficiente para mis necesidades todavía. Solo deseo enviar las notificaciones si se produce un acceso externo (inicio de sesión), no cada vez que se autoriza una tarea local.
Aquí hay un extracto de mi archivo secure.log:
mymac login[26292]: in pam_sm_acct_mgmt(): OpenDirectory - Membership cache TTL set to 1800.
mymac login[26292]: in od_record_check_pwpolicy(): retval: 0
mymac login[26292]: in od_record_attribute_create_cfstring(): returned 3 attributes for dsAttrTypeStandard:AuthenticationAuthority
mymac sudo[26296]: myname : 3 incorrect password attempts ; TTY=ttys005 ; PWD=/Users/myname ; USER=root ; COMMAND=/bin/bash
mymac sudo[26301]: myname : TTY=ttys005 ; PWD=/Users/myname ; USER=root ; COMMAND=/bin/bash
mymac com.apple.SecurityServer[27]: Succeeded authorizing right 'system.hdd.smart' by client '/Library/Application Support/iStat local/iStatLocalDaemon' [133] for authorization created by '/Library/Application Support/iStat local/iStatLocalDaemon' [133]
mymac sshd[26308]: Accepted publickey for myname from x.x.x.x port 62433 ssh2
mymac screensharingd[26328]: Authentication: SUCCEEDED :: User Name: John Doe :: Viewer Address: x.x.x.x :: Type: DH
En este ejemplo, solo los "screensharingd" y "sshd" son relevantes para mí. Pero no parece haber una distinción clara entre estas y las otras autorizaciones locales. El único patrón común que encuentro es la dirección IP, pero ¿es a prueba de fallos? Supongo que para que mi script sea usable (por cualquier persona), no solo tendría que detectar las direcciones IPv4, sino también las direcciones IPv6. ¿Y puedo estar seguro de que otros tipos de inicio de sesión externos (por ejemplo, el uso compartido de archivos) también incluirán una dirección IP en su formato original como este? ¿Nunca usé nombres simbólicos que no podría detectar con este patrón?
En realidad, también inicié sesión a través del uso compartido de archivos (AFP), ¡que ni siquiera se incluyó en secure.log, curiosamente! Lo que significa que secure.log probablemente no sea el único o no el punto central de aprendizaje sobre autorizaciones.
Esperaba que hubiera un punto central en OSX que se encargara de todas las autorizaciones de nombre de usuario / contraseña y que este punto también proporcionara algún gancho para el monitoreo.
Me temo que mi pregunta no puede ser respondida suficientemente de manera genérica. Iré ahora y preguntaré en la lista de correo de seguridad de Apple. Voy a informar de nuevo.
Background:
Mi razonamiento para este tipo de pregunta es que creo que ningún sistema está a salvo de un robo. Por lo tanto, confiar en las medidas para prevenir un robo no es solo una medida segura. Agregar notificaciones (externas) sobre cuándo ocurre un inicio de sesión en un sistema es lo que lo hace mucho más controlable: si alguien logra ingresar, será detectado por este método, por lo que se sabe que el sistema ya no es confiable. y será tratado con. Sin este tipo de monitoreo, alguien podría ser capaz de ingresar y luego modificar el sistema hasta un punto en el que alguien que mire más tarde no pueda decir lo que sucedió, asumiendo que el sistema sigue siendo seguro.