4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines Skr

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines Skr

Beitrag von inne » 20.11.2015 20:56:24

Hi,

im Security Manual steht folgendes:
https://www.debian.org/doc/manuals/securing-debian-howto/ch4.de.html hat geschrieben: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines Skripts

Um sowohl die von den Benutzern ausgeführten Programme als auch deren Ergebnisse zu überwachen, können Sie den Befehl script verwenden. Sie können script nicht als eine Shell einsetzen (auch dann nicht, wenn Sie es zu /etc/shells hinzufügen). Aber Sie können in die Datei, welche den Startvorgang der Shell steuert, folgendes eintragen:

umask 077
exec script -q -a "/var/log/sessions/$USER"

Wenn Sie dies systemweit vornehmen, bedeutet dies natürlich, dass die Shell die weiteren persönlichen Startdateien nicht abarbeitet (weil die Shell von script überschrieben wird). Eine Alternative ist, dies in den Startdateien des Benutzers vorzunehmen (dann kann der Benutzer aber dies entfernen, vgl. dazu die Anmerkungen unten).

Sie müssen auch die Dateien im Überwachungsverzeichnis (im Beispiel /var/log/sessions/) so einrichten, dass die Benutzer in sie schreiben, sie aber nicht löschen können. Dies kann zum Beispiel bewerkstelligt werden, indem die Sitzungsdateien der Benutzer vorab erstellt und mit chattr auf append-only (nur anfügen) gesetzt werden.

Eine sinnvolle Alternative für Systemadministratoren, die auch Zeitinformationen enthält, ist:

umask 077
exec script -q -a "/var/log/sessions/$USER-`date +%Y%m%d`"
Doch wie soll man das umsetzen, ich bekomme das nicht hin... Hät's aber gern für meinen Benutzer als Log eingerichtet. Als ~/.typescript ohne Datum, nur die jeweilige Sitzung.

Benutzeravatar
GregorS
Beiträge: 2624
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von GregorS » 24.11.2015 12:59:16

Bevor Du irgendetwas Anderes machst, schreibst Du bitte 1000 mal „ich soll mir WENIGSTENS einen irgendwie brauchbaren Betreff ausdenken"

Von Hand, diesmal ohne Copy+Paste, gell :-)

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von smutbert » 24.11.2015 13:24:04

ich komm da nicht ganz mit. Ein einfaches

Code: Alles auswählen

exec script -q -a "/home/$USER/.typescript"
scheint bei mir jedenfalls zu funktionieren - alles was auf der Shell passiert landet in »/home/$USER/.typescript«, ist allerdings wegen der vielen Escape-Sequenzen für die Farben ziemlich unleserlich und verstümmelt (zB beim Betrachten mit cat, less oder tail).

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von inne » 24.11.2015 13:40:45

smutbert hat geschrieben:ich komm da nicht ganz mit. Ein einfaches

Code: Alles auswählen

exec script -q -a "/home/$USER/.typescript"
scheint bei mir jedenfalls zu funktionieren.
Wo, in profile oder bashrc?
- alles was auf der Shell passiert landet in »/home/$USER/.typescript«, ist allerdings wegen der vielen Escape-Sequenzen für die Farben ziemlich unleserlich und verstümmelt (zB beim Betrachten mit cat, less oder tail).
Oke, vlt. doch keine so gute Lösung wie ich dachte... Denn etwas Farbe habe ich auch auf dem Terminal.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von smutbert » 24.11.2015 14:43:18

zum Testen habe ich es eingegeben, aber in der ~/.bashrc wird es doch genauso funktionieren, vermute ich.

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von inne » 24.11.2015 19:58:04

smutbert hat geschrieben:zum Testen habe ich es eingegeben, aber in der ~/.bashrc wird es doch genauso funktionieren, vermute ich.
Nein tut es nicht.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von smutbert » 24.11.2015 21:22:07

:facepalm: kann es ja nicht

script startet ja eine neue Shell in dem Fall bash, die wieder die ~/.bashrc abarbeitet, deswegen am Ende wieder script startet, das eine neue Shell startet, die wieder die ~/.bashrc…

~/.bash_profile wäre wohl die richtigere Wahl, damit es nur beim Anmelden ausgeführt wird, aber das ist wahrscheinlich auch nicht das was du willst und obendrein starten manche Terminalemulatoren die Shell als Loginshell, dh. es wird uU wieder zumindest ein zweites Mal ausgeführt.
Sonst habe ich leider keine Idee, auch nicht für eine Alternative zu script, die vielleicht besser mit Farben umgehen könnte.

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von inne » 24.11.2015 21:37:57

Und steht das mit Absicht in der Anleitung, oder gibt es eine Möglichkeit, das es doch funktioniert?

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von inne » 24.11.2015 21:44:49

Als Login-Shell müsste dann ja doch funktionieren? :facepalm:

Howtos lesen macht dumm!

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von smutbert » 24.11.2015 22:14:40

Ja, in der ~/.bash_profile oder ~/.profile oder gar in den systemweiten Varianten unter /etc (ausprobiert habe ich es jetzt aber nicht).

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von smutbert » 25.11.2015 14:41:45

inne hat geschrieben:Und steht das mit Absicht in der Anleitung, oder gibt es eine Möglichkeit, das es doch funktioniert?
vermutlich kann es gar nicht funktionieren. Ich habe testweise »/usr/bin/script« zu »/etc/shells« hinzugefügt und für einen Testbenutzer als Loginshell gesetzt und wenn ich mich dann auf der Konsole anmelde blitzen ein paar Meldungen vorbei und ich finde mich sofort wieder am Login Prompt. »~/typescript« enthält danach

Code: Alles auswählen

Script started on Wed 25 Nov 2015 02:21:00 PM CET
script: invalid option -- 'i'

Usage:
 script [options] [file]

Options:
 -a, --append            append the output
 -c, --command <command> run command rather than interactive shell
 -e, --return            return exit code of the child process
 -f, --flush             run flush after each write
     --force             use output file even when it is a link
 -q, --quiet             be quiet
 -t, --timing[=<file>]   output timing data to stderr (or to FILE)
 -V, --version           output version information and exit
 -h, --help              display this help and exit


Script done on Wed 25 Nov 2015 02:21:00 PM CET
Ein Problem ist also zumindest einmal, dass die Loginshell mit der Option »-i« (für interaktiv) aufgerufen wird, einem Schalter der script unbekannt ist. In meinem Displaymanager (Debiangdm3) kann ich mich zwar immer noch grafisch anmelden, aber Terminalemulatoren funktionieren nicht und es wird dasselbe in »~/typescript« geschrieben, wie auf der Konsole.

Daneben könnte ich mir noch vorstellen, dass script, selbst wenn es ohne »-i« als Loginshell gestartet würde, ja gar nicht wissen kann welche der Shells es starten soll. Wenn es die Loginshell startet, startet es nur wieder sich selbst und wir hätten dieselbe Situation wie beim Eintragen von script in die »~/.bashrc« und der einzigen Fallback, den ich mir vorstellen kann »/bin/sh« zeigt bei Debian standardmäßig auf die dash, die wohl niemand als interaktive Shell haben will (vermute ich zumindest).

edit
Ich habe ein Skript gefunden, das sich wohl als Loginshell eignen soll und das mit script alles aufzeichnet was der Benutzer macht - ausprobiert habe ich es aber nicht: https://snipt.net/d1s4st3r/script-that- ... user-does/

DeletedUserReAsG

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von DeletedUserReAsG » 25.11.2015 15:37:54

[…] allerdings [ist es] wegen der vielen Escape-Sequenzen für die Farben ziemlich unleserlich und verstümmelt (zB beim Betrachten mit cat, less oder tail).
Zumindest mit »cat (GNU coreutils) 8.24« wird mir genau das angezeigt, was ich vorher auch auf dem Bildschirm gesehen habe. Inklusive Farben und so Kram.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: 4.11.10.1 Überwachung von Ein- und Ausgabe mittels eines

Beitrag von smutbert » 25.11.2015 17:03:46

Bei mir funktioniert es nicht 100%ig (coreutils 8.23 aus jessie), gelegentlich werden falsche oder halbe Escape-Codes ausgegeben, aber das liegt zumindest zum Teil an meinem etwas abenteuerlichen Prompt (PS1).

Antworten