Rechteausweitung verhindern root direkt

Rechteausweitung verhindern root direkt

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>.admzuerstsudo 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>.issodie 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>.admzuerstsudo su - root

Konzeptionell ichdenkendass Sie Folgendes erreichen wollen und müssen:

Alle Administratoren haben zwei persönliche Konten:

  1. ein „normales“ Benutzerkonto
  2. ein Administratorkonto

So erhalten Sie volle Administratorrechte auf einem Linux-Server:

  1. Der Administrator muss sich zunächst mit seinem regulären Benutzerkonto anmelden<user>

  2. 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 sudofür ihr normales Benutzerkonto keine Richtlinie erforderlich <user>. GEWINNEN!
  3. Sobald Sie sich mit einem persönlichen Administratorkonto angemeldet haben, sollten Sie alle Aktionen ausführen können, die rootBerechtigungen erfordern.

    Dazu ist die Einrichtung einer sudoRichtlinie erforderlich. Informationen dazu gibt es mehr als genug.

    Ich bevorzuge die Verwendung des #includedir /etc/sudoers.dMechanismus, der in den meisten modernen /etc/sudoersRichtlinien 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.admEine 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 DenyUsersin den Servern eine Anweisung verwendet /etc/ssh/sshd_configwird, 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.

verwandte Informationen