¿Cómo monitorear los inicios de session para compartir pantalla y SSH?

Al no confiar en nadie, ni siquiera en mis propios firewalls y otras medidas contra los hackers invasores, me gusta poder controlar cualquier inicio de session exitoso en mis sistemas OS X (por ejemplo, al enviar instantáneamente un correo electrónico a mi count de gmail).

¿Cómo puedo lograr esto, incluidos los inicios de session a través de Compartir pantalla y SSH?

Puedo ver que el file secure.log enumera dichos inicios de session, pero ¿cómo los controlo y los filter para get inicios de session correctos, con el fin de emitir correos electrónicos sobre estos events?

El usuario bmike sugirió usar el command tail en el file secure.log. Descubrí que este command tiene una opción "-F" que es muy adecuada para esta tarea: sigo informando líneas agregadas al file de logging, e incluso manejo rotaciones de files de logging.

Pero esto no es suficiente para mis necesidades todavía. Solo deseo enviar las notifications si se produjo un acceso externo (inicio de session), no cada vez que se autoriza una tarea local.

Aquí hay un extracto de mi file 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 xxxx port 62433 ssh2 mymac screensharingd[26328]: Authentication: SUCCEEDED :: User Name: John Doe :: Viewer Address: xxxx :: Type: DH 

Solo los de "screensharingd" y "sshd" son relevantes para mí en este ejemplo. Pero no parece haber una distinción clara entre estas y otras autorizaciones locales. El único patrón común que encuentro es la dirección IP, pero ¿es seguro? Supongo que para hacer que mi script sea generalmente utilizable (por cualquier persona), no solo debería detectar las direcciones IPv4 sino también las direcciones IPv6. ¿Y puedo estar seguro de que otros types externos de inicios de session (p. Ej., Intercambio de files) también includeán una dirección IP en su formatting original como este? ¿Nunca usé nombres simbólicos que no podría detectar con este patrón?

De hecho, también me conecté a través de File Sharing (AFP), ¡que ni siquiera figuraba en secure.log, por extraño que parezca! Lo que significa que secure.log probablemente no sea el único o el punto central de aprendizaje sobre autorizaciones.

Tenía la esperanza de que haya un punto central en OSX que se ocupe de todas las autorizaciones de nombre de usuario / contraseña y que este punto también proporcione algo de gancho para la supervisión.

Me temo que mi pregunta no puede responderse de manera genérica. Iré ahora y preguntaré en la list de correo de security de Apple. Informaré de nuevo.

Fondo:

Mi razonamiento para este tipo de preguntas es que creo que ningún sistema está a salvo de robo. Por lo tanto, confiar en medidas para evitar un robo no es una medida segura por sí sola. Agregar notifications (externas) sobre cuándo se inicia un inicio de session en un sistema es lo que lo hace mucho más controlable: si alguien logra ingresar, lo detectará con este método, por lo que se sabe que el sistema ya no es confiable. y será tratado. Sin este tipo de monitoreo, alguien podría entrar y luego modificar el sistema a un punto en el que alguien que lo mire más adelante no sepa qué sucedió, asumiendo que el sistema todavía es seguro.

2 Solutions collect form web for “¿Cómo monitorear los inicios de session para compartir pantalla y SSH?”

Sí, sería más eficiente tail -f el file de logging para que su script solo tenga que analizar cada línea en el file una vez, más bien una vez por intervalo.

Por supuesto, aún necesita escribir y probar el código para monitorear los momentos en que el file de logging se gira y tal vez verificar que no se perdió un evento escaneando el file nuevo una vez cuando se conecta por primera vez a ese file.

Lo mejor es una compensación entre su nivel de comodidad y sus habilidades. También es lógico que MIT olfatee el tráfico de la networking dado que el uso compartido de pantalla escucha en puertos conocidos, o puede monitorear nuevos processs escuchando en puertos nuevos o puede activar la auditoría de processs y monitorear esos loggings o puede analizar la tabla de processs. Hay muchas maneras de despellejar a este gato.

Si ya ha calculado cómo extraer la información del logging, una forma simple de hacer que se ejecute solo cuando sea necesario en lugar de sondearla todos los días / hora, etc. es agregar el script como una acción de inicio de session a los usuarios en cuestión. . Haga que interpreten los loggings, resuelva si es un inicio de session local o remoto, y el correo electrónico (o el post, etc.) de manera apropiada.

Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).