ich würde gerne alle Logins auf meinen Systemen monitoren. Das Ergebnis sollte ein hübsches Grafana Dashboard sein, welches mir in (nahezu) Echtzeit anzeigt, wenn auf einem meiner Gentoo Systeme ein erfolgreicher Login passiert. Gegebenenfalls würde ich dafür noch Alerts konfigurieren. Die Daten dazu würde ich in einer InfluxDB speichern.
Dazu brauche ich eine zuverlässige Stelle, um die Login Daten abzugreifen und per curl an Influx zu senden. Spontan sind mir zwei Wege eingefallen:
1) Syslog
Ich könnte syslog-ng entsprechend konfigurieren, dass es über einen 'facility(auth, authpriv)' Filter per destination command oder destination socket ein Skript/Programm aufruft, welches die Logzeile parsed und anschließend versendet.
Das wäre asynchron und würde den Login nicht behindern oder verlangsamen, aber andererseits bin ich dann von einem laufenden und korrekt konfiguriertem Log Daemon abhängig.
2) Login Shells
Soweit ich weiß rufen alle (interaktiven und nicht interaktiven) Login Shells /etc/profile auf. Ich könnte mein Skript dort starten und die Umgebungsvariablen auswerten.
Wenn mein Skript als Background Job (&) läuft, sollte es den Login Prozess nicht wesentlich verlangsamen.
Ich bin mir nicht sicher, ob es nicht doch Logins gibt, welche nicht durch /etc/profile gehen.
Was meint ihr, ist der richtige Ort um zuverlässig auf jeden Login zu reagieren? (möglichst ohne C Programmierung
PS: Auf allen betroffenen Systemen bin ich der einzige Nutzer, von daher ist das Vorhaben datenschutztechnisch unbedenklich.

