Ist es möglich, den Quellbenutzer eines SSH-Logins zu protokollieren und / oder einzuschränken?
Zum Beispiel:
user1@server1meldet sich an server2als user2.
Auch user3@server1meldet sich an server2als user2.
Mit "Quellbenutzer" meine ich user1oder user3darüber.
Ich möchte nachverfolgen können, von welcher Sitzung user1@server1welche Sitzung initiiert wurde user3@server1.
Der Zweck hierfür ist, dass mehrere Benutzer das user2Konto verwenden, um z. B. Prozesse auf Server2 zu verwalten. (Mir ist klar, dass dies Auswirkungen auf die Sicherheit hat, aber ein Teil dieser Frage besteht darin, das Ausmaß dieser Auswirkungen zu bewerten.)
Wie in der Manpage von erwähnt sshd_config(5), sshdkann der Zugriff auf einen bestimmten Benutzer mit der AllowUsersOption config in eingeschränkt werden sshd_config.
AllowUsers
Diesem Schlüsselwort kann eine Liste von Benutzernamensmustern folgen, die durch Leerzeichen getrennt sind. Wenn angegeben, ist die Anmeldung nur für Benutzernamen zulässig, die mit einem der Muster übereinstimmen. Es sind nur Benutzernamen gültig. Eine numerische Benutzer-ID wird nicht erkannt. Standardmäßig ist die Anmeldung für alle Benutzer zulässig. Wenn das Muster die Form USER @ HOST hat, werden USER und HOST separat geprüft, um die Anmeldung auf bestimmte Benutzer von bestimmten Hosts zu beschränken. Die Anweisungen zum Zulassen / Verweigern werden in der folgenden Reihenfolge verarbeitet: DenyUsers, AllowUsers, DenyGroup und schließlich AllowGroups.
Die USERin der obigen Manpage angegebene Beschreibung scheint jedoch den Benutzernamen auf dem TARGET-Computer zu beschreiben ( server2im Beispiel).
Ich habe dies getestet, indem ich die Option AllowUsers auf gesetzt habe user2@server1und festgestellt, dass ich mich immer noch von user1@server1-> aus anmelden kann user2@server2.
Außerdem scheint das Protokoll keinen Quellbenutzer anzuzeigen.
Dies ist die Anmeldung /var/log/securean RHEL6, nachdem Sie sich von user1@server1-> angemeldet habenuser2@server2
17. November 16:14:59 server2 sshd [28349]: Setzen Sie / proc / self / oom_score_adj auf 0
17. November 16:14:59 server2 sshd [28349]: Verbindung von 10.1.2.3 Port 36508
17. November 16:14:59 server2 sshd [28349]: Passenden RSA-Schlüssel gefunden: aa: bb: cc: dd: ee: ff: gg: ..
17. November 16:14:59 server2 sshd [28350]: Publickey für Benutzer2 von 10.1.2.3 Port 36508 ssh2 verschoben
17. November 16:14:59 server2 sshd [28349]: Passenden RSA-Schlüssel gefunden: aa: bb: cc: dd: ee: ff: gg: ..
17. November 16:14:59 server2 sshd [28349]: Akzeptierte publickey für user2 von 10.1.2.3 Port 36508 ssh2
17. November 16:14:59 server2 sshd [28349]: pam_unix (sshd: session): Session für Benutzer user2 geöffnet von (uid = 0)
17. November 16:14:59 server2 sshd [28349]: Benutzer Kind ist auf PID 28351
Also, gibt es einen Weg zu
(a) Ändern Sie die Protokollierung oder das Verhalten von sshdso, dass der Quellbenutzer, der die SSH-Verbindung herstellt, nachverfolgt wird.
(b) sshd einschränken, um Verbindungen basierend auf dem Quellbenutzer einzuschränken?
AUTHORIZED_KEYS FILE FORMATund sehen Sie, obcommandoder obenvironmentes Ihnen helfen könnte.