
Ich glaube, das wird mein erster Beitrag auf der StackExchange-Seite des Hauses. Ich weiß jedoch, dass dies konfiguriert werden kann, da ich dies zuvor implementiert gesehen habe, aber ich weiß nicht wirklich, wie es implementiert wird.
Was ich tun möchte, ist auf RedHat 7/8 oder einem Derivat ... Wie kann ich es so einrichten, dass ein Benutzer die folgenden Rechteerweiterungen durchführen muss:
<user> -> <user>.adm -> root
- Benutzer in IdM in der Gruppe „ssh_users“ können von überall im Netzwerk per SSH auf die Server zugreifen.
- Domänenadministratoren in IdM können nicht für SSH zu Servern verwendet werden und sind nicht in der Gruppe.
- Benutzer, die Domänenadministratoren sind, müssen dann per SSH auf ihren Standardbenutzer zugreifen
sudo su - <user>.adm
. Sie können nicht direkt auf den Root-Benutzer zugreifen. - Benutzer, die Domänenadministratoren sind und auch Root-Zugriff haben, müssen
sudo su - <user>.adm
zuerstsudo su - root
- Nicht alle Domänenadministratoren verfügen über die Berechtigung zur Root-Eskalation.
Domänenadministratoren sind letztlich die Systemadministratoren mit den Berechtigungen, die für die Wartung, Fehlerbehebung und Behebung von Systemproblemen relevant sind. Systemingenieure haben die Berechtigung, Root-Rechte zu erlangen, die ihnen die vollständigen Berechtigungen für das System geben. Dies gilt auch für die Delegation von Verantwortlichkeiten, bei denen nur Auditing-Konten <user>.isso
die Berechtigung haben, Protokolle außerhalb des Root-Benutzers zu löschen. Dies ist letztlich der Grund für diese Anforderung.
Was ich wirklich suche, ist Dokumentation, die (weil mir nichts einfällt) mir den richtigen Weg weisen kann, oder Ansible-Rollen/Playbooks, die diesen Ansatz mit den geringsten Privilegien funktional umsetzen. Für jede Hilfe wäre ich sehr dankbar!
Antwort1
Benutzer, die Domänenadministratoren sind und auch Root-Zugriff haben, müssen
sudo su - <user>.adm
zuerstsudo su - root
Konzeptionell ichdenkendass Sie Folgendes erreichen wollen und müssen:
Alle Administratoren haben zwei persönliche Konten:
- ein „normales“ Benutzerkonto
- ein Administratorkonto
So erhalten Sie volle Administratorrechte auf einem Linux-Server:
Der Administrator muss sich zunächst mit seinem regulären Benutzerkonto anmelden
<user>
Sobald sie am Server angemeldet sind, erhöhen sie ihre Privilegien, indem sie sich bei ihrem persönlichen Administratorkonto anmelden
<user>.adm
sudo su - <user>.adm
fordert das Kennwort für das<user>
Konto an und ersetzt dann mit Root-Berechtigungen den Benutzer durch<user>.adm
.- ^^^ Das ist meiner Meinung nach der falsche Ansatz
Sie sollten möchten, dass Ihre Administratoren verwenden. Das bedeutet, dass Ihr Administrator zur Anmeldung als das Kennwort für das Konto (und nicht das Kennwort für das Konto)su - <user>.adm
sein Kennwort für das Konto eingeben muss .<user>.adm
<user>
<user>.adm
- Solange Ihre Administratoren für ihr ADM-Konto nicht dasselbe Kennwort verwenden wie für ihr normales Konto, reicht ein kompromittiertes Kennwort nicht aus, um auf allen Ihren Servern Root-Rechte zu erhalten. SIEG!
- Darüber hinaus ist
sudo
für ihr normales Benutzerkonto keine Richtlinie erforderlich<user>
. GEWINNEN!
Sobald Sie sich mit einem persönlichen Administratorkonto angemeldet haben, sollten Sie alle Aktionen ausführen können, die
root
Berechtigungen erfordern.Dazu ist die Einrichtung einer
sudo
Richtlinie erforderlich. Informationen dazu gibt es mehr als genug.Ich bevorzuge die Verwendung des
#includedir /etc/sudoers.d
Mechanismus, der in den meisten modernen/etc/sudoers
Richtlinien enthalten ist (#
es gibt keinen Kommentar!), und lege eine Datei ab (die kein „a“.
im Dateinamen enthält) und richte die Richtlinien auf diese Weise ein.hbruijn.adm
Eine Möglichkeit besteht darin, eine Police für Einzelpersonen abzuschließen/etc/sudoers.d/hbruijn_adm
, d. h.:# /etc/sudoers.d/hbruijn_adm # sudo policy that allow HBruijn's admin account to perform all # as any user, without prompting for a password hbruijn.adm ALL = NOPASSWD: ALL
Alternativ können Sie eine gruppenbasierte Richtlinie einrichten, wenn alle ADM-Konten, die auf Linux-Systemen volle Root-Rechte erlangen dürfen, zu einer bestimmten Gruppe gehören.
Damit wird zusätzlich verhindert, dass sich Ihre Administratoren direkt in ihren Adm-Account einloggen können.
Dies kann beispielsweise beim SSH-Fernzugriff dadurch erreicht werden, dass DenyUsers
in den Servern eine Anweisung verwendet /etc/ssh/sshd_config
wird, die einen bestimmten Benutzer oder Benutzer, die einem bestimmten Muster entsprechen, daran hindert, sich anzumelden:
# /etc/ssh/sshd_config
#here go defaults for all connections/users
PasswordAuthentication no
PubkeyAuthentication no
...
DenyUsers *.adm
Alternativ können Sie Ähnliches verwenden DenyGroups
, um eine gruppenbasierte Richtlinie einzurichten.