Wie bearbeite ich die SSH-Nachricht "Letzte Anmeldung"?


16

Ich möchte die Last login:Informationen, die zusammen mit der Nachricht des Tages ausgedruckt werden , bearbeiten , kann jedoch das Skript, das generiert und ausgegeben wird, nicht finden.

Wo ist es definiert, in einem einfach zu bearbeitenden Shell-Skript oder in einer Binärdatei abgeschlossen?


Hinweis: Dies unterscheidet sich von ServerFault: Wie kann ich die Begrüßungsnachricht beim Start von ssh bearbeiten? . Die "letzten Login" -Informationen werden nicht von innen ausgedruckt /etc/update-motd.d/, sondern werden durch Setzen des PrintLastLogFlags definiert und können daher nicht wie die anderen Teile der Nachricht des Tages bearbeitet werden.


Diese Informationen werden gespeichert in utmpund wtmpDateien (je nach Verteilung, Check - in /var/run/utmpoder /var/log/utmpoder Blick in /varVerzeichnis). Diese Dateien werden nicht als Text, sondern als Binärdateien gespeichert. Sie benötigen daher spezielle Tools, um sie zu bearbeiten. Die utmp-Datei verfolgt den aktuellen Anmeldestatus jedes Benutzers. Die wtmp-Datei zeichnet alle An- und Abmeldungen auf. Sie benötigen spezielle Werkzeuge, um sie zu bearbeiten, aber ich konnte nichts wirklich finden.
Fotos

Antworten:


14

Das Format der gedruckten Zeile sieht folgendermaßen aus sshd:

[me@risby ~]$ ssh lory
Last login: Fri May 23 10:59:01 2014 from 2a01:2c0:e:300:7271:bcff:feac:445a
[me@lory ~]$ strings /usr/sbin/sshd | grep -i "last login"
Last login: %s
Last login: %s from %s

Ich sehe auch keine Konfigurationsoption, um das zu ändern, daher musst du die Quelle bearbeiten und neu kompilieren.

Bearbeiten : Im Grenzfall finden Sie Quelle unter http://www.openssh.org . Sie sagen uns jedoch nicht, dass Sie OpenSSH verwenden oder irgendetwas an Ihrer Plattform, sodass es schwierig ist, genauer zu sein. Wenn es sich um ein Linux-System handelt, ist es viel besser, die für Ihre Distribution geeignete Quelle auf die übliche Weise zu ermitteln und die Kompilierung über Ihre Distribution-spezifischen Mechanismen fortzusetzen.

Aber wirklich, Sie sollten dies überhaupt nicht tun, es sei denn, Sie haben einen äußerst zwingenden geschäftlichen Grund: Sie machen sich selbst einen Wartungs- Albtraum und gehen zu einer von Hand kompilierten Version eines sicherheitsrelevanten Pakets über.


Wo ist der Quellcode dahinter sshdzu finden?
IQAndreas

1
Eigentlich plante ich mit der Quelle etwas anderes. Ich wollte sehen, wie sie die Daten analysieren wtmp, das PrintLastLogFlag auf setzen nound den Hinweis "Letzte Anmeldung" mit meinem eigenen Skript in neu erstellen update-motd.d. Viel wartungsfreundlicher. :)
IQAndreas

1
Ich sehe häufig, dass die motdAusgabe nicht vollständig auf dem neuesten Stand ist. Ich denke also, dass update-motdmöglicherweise nicht bei jedem Login ausgeführt wird.
Kasperd

@kasperd Wird alle 10 Minuten als Cronjob aktualisiert. Dies soll helfen, falls versucht wird, etwas "Langsames" wie das Abrufen eines Strings aus dem Internet zu tun, damit der Server nicht jedes Mal langsamer wird, wenn sich jemand anmeldet.
IQAndreas

3
Die Meldung "Letzte Anmeldung" ist benutzerspezifisch, während die Motd systemweit ist. Ich bin nicht sicher, wie Sie die Nachricht neu erstellen möchten. Es gibt auch Leute, die diese Nachricht tatsächlich lesen und möchten, dass sie so genau wie möglich ist.
Simon Richter

5

Die letzten Anmeldeinformationen werden in gespeichert /var/log/wtmpoder /var/log/utmpes handelt sich um Binärdateien. Ohne den Quellcode für sshd zu betrachten, kann ich nicht ganz sicher sein, aber ich würde erwarten, dass es die Informationen aus diesen Dateien mit geeigneten Systemaufrufen abruft

Es ist unwahrscheinlich, dass Sie eine Möglichkeit finden, diese Informationen einfach zu ändern. Dies ist schließlich ein Teil der Sicherheit der Benutzer.


Wenn Sie wirklich die blutigen Details wollen, müssen Sie sich den Quellcode für die Funktion ansehen, login_get_lastlogdie in zu finden istloginrec.c


@lain +1 wegen des Quellcode-Vorschlags - obwohl ich es nicht für eine blutige Lösung halte, braucht er nur einen lokalen Git-Spiegel. Imho, der die Quelle benutzt, ist nicht einmal für die Sysadms vom Teufel.
peterh - Wiedereinsetzung von Monica

2

Eine andere Lösung wäre, den Bildschirm am Anfang der motd-Datei wie folgt zu löschen:

^[[H^[[2J
whatever was originally in the motd file here

Hinweis: Ersetzen Sie ^[durch das Escape-Symbol (das Sie im Nano-Editor erstellen können, indem Sie die folgenden Tasten drücken: esc+ v+ esc)


-2

Vielleicht ein Problem, falls Sie nur die letzte Anmelde-IP ändern möchten?

Sie können beispielsweise die angezeigte IP-Adresse in "localhost" ändern, indem Sie sich erneut von einem ferngesteuerten Computer aus bei ssh anmelden!

Remote Login über ssh >> ssh Benutzername @ localhost

Jetzt wird die zuletzt aufgezeichnete IP localhost sein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.