SSH-Canary

sia

gesperrt
Registriert
26 März 2015
Beiträge
5.926
Ort
FFM (NSFW)
Hi Leute,

Damit sowas nicht mehr vorkommt, würde ich gerne vertrauenswürdigen Personen einen Pubkey abluchsen.

Wenn diese sich dann auf meinen Server einloggen, soll eine kurze Nachricht angezeigt werden, dass alles okay ist.

Wenn ich mich X Tage nicht eingeloggt habe, soll die Nachricht verschwinden.

Wie setze ich das um?
 
Das bekommt man mit den Linux-Bordmitteln hin. Meine Lösung sieht eine Datei vor, die deine Nachricht enthält. Bei deinen Logins wird der Timestamp der Datei aktualisiert, bei Logins mit einem speziellen Account wird die Datei ausgegeben.

  1. Leg eine Datei [kw]/opt/phre4k_message[/kw] mit einer beliebigen "Alles Okay"-Nachricht drin an. Dein Benutzeraccount muss Schreibrechte auf der Datei haben, alle Anderen müssen lesen können.
  2. Schreib in die [kw]~/.bashrc[/kw] deines Accounts sowas wie [kw]touch /opt/phre4k_message[/kw]. Das setzt den "last modified" Timestamp der message-Datei bei jeder Anmeldung neu.
  3. Leg einen neuen Account an, und trag die Pubkey's in dessen [kw]/home/<user>/.ssh/authorized_keys[/kw] ein.
  4. Erstelle ein Script, das die Nachricht anzeigt, wenn sie nicht zu alt ist. Das könnte bspw. so aussehen ([kw]chmod +x[/kw] nicht vergessen):
    [src=bash]#!/usr/bin/env bash

    find /opt/phre4k_message -newermt '-7 days' -exec cat {} +[/src]
  5. Trage das Script in die Liste in [kw]/etc/shells[/kw] ein. Danach kannst du dem neuen Account mit [kw]chsh -s <script> <username>[/kw] das Script als Login-Shell zuweisen - nach Anmeldung wird dieses Script ausgeführt, wenn es sich beendet endet auch die SSH-Verbindung.

Damit wird bei jedem Login die Nachricht in [kw]/opt/phre4k_message[/kw] angezeigt - wenn sie nicht zu alt ist. Möchtest du die Nachricht irgendwann ändern oder ergänzen, kannst du sie einfach diese Datei editieren.
 
  • Thread Starter Thread Starter
  • #3
Danke, gute Idee! Genau so hatte ich mir das vorgestellt, der Lösungsweg war mir aber nicht 100% klar.

Wie verhindere ich, dass jeder weiß, um welche Uhrzeit ich mich das letzte Mal eingeloggt habe? So?

[src=bash]touch --date=$(date +%Y%m%d) /opt/phre4k_message[/src]

EDIT: ach, ohne Shell können die ja gar nix ausführen.^^
 
Schreib dann aber auch in die Message rein, wo du so virtuell rumhängst ;).
 
Zurück
Oben