Wie integriere ich Sudoers in den FreeIPA Server?

Sudo ist eine Anwendung, mit der du auf Linux- und Unix-Betriebssystemen Root- oder Administrator-Rechte erhalten kannst. Sudo ist bei den meisten Linux-Distributionen standardmäßig installiert. Außerdem kannst du über die Datei /etc/sudoers Benutzerberechtigungen einrichten und unprivilegierten Benutzern erlauben, bestimmte Befehle als Root-Benutzer auszuführen.

Sudo kann auf verschiedene Arten konfiguriert werden. Du kannst sudo auf einem lokalen Computer/Server einrichten oder ein zentrales sudo über eine Drittanbietersoftware einrichten. In diesem Beispiel wirst du den FreeIPA-Server verwenden, um eine zentrale sudo-Einrichtung einzurichten.

FreeIPA enthält mehrere Tools, die die Arbeit von Administratoren erleichtern, darunter auch die sudo-Integration. Du kannst den vollständigen sudo-Zugriff für FreeIPA-Benutzer einrichten und sudo für bestimmte Befehle einrichten, darunter die HBAC-Regel (Host-based Access Control) und die Sudo-Befehlsgruppe.

In diesem Lernprogramm lernst du, wie du Sudo und FreeIPA in zwei Szenarien integrieren kannst. Außerdem lernst du die grundlegende Verwendung des „ipa“-Befehlsdienstprogramms zur Verwaltung von Benutzern, Benutzergruppen, Hostgruppen, Sudo-Regeln, HBAC-Regeln und Sudo-Befehlsgruppen. Außerdem erfährst du, wie du den SSSD-Dienst mit Sudo und FreeIPA auf den Client-Rechnern einrichten und integrieren kannst.

Voraussetzungen

Um dieses Lernprogramm durchzuführen, muss der FreeIPA-Server installiert und vollständig konfiguriert sein. Tutorials für Debian, Ubuntu und Rocky Linux findest du hier:

Außerdem musst du einen FreeIPA-Benutzer und einen Client-Rechner haben, der als FreeIPA-Client konfiguriert ist. Außerdem wird sowohl auf dem FreeIPA-Server als auch auf dem Client ein Nicht-Root-Benutzer mit sudo/root-Administratorrechten benötigt.

In diesem Beispiel werden zwei Rocky Linux Server mit den folgenden Details verwendet:

Hostname            IP Address      Used as
--------------------------------------------------
ipa.hwdomain.lan    192.168.5.20    FreeIPA Server
client.hwdomain.lan 192.168.5.75    FreeIPA Client

Wenn diese Voraussetzungen erfüllt sind, kannst du mit der Integration von Sudoers in FreeIPA beginnen.

Ermöglicht FreeIPA-Nutzern die vollständige Ausführung von Sudo

Zunächst lernst du, wie du Sudoers in den FreeIPA-Server integrierst, indem du eine spezielle Sudo-Regel erstellst, die es Benutzern erlaubt, „sudo“ auszuführen. In diesem Beispiel wirst du einen bestehenden FreeIPA-Benutzer namens „rocky“ so einrichten, dass er den „sudo“-Befehl auf jedem Client-Rechner ausführen kann und die Root-Rechte erhält.

Nachfolgend sind die Schritte aufgeführt, die du durchführen musst, um die Integration des Sudoers in den FreeIPA Server zu erreichen:

  • Benutzer und Verbindungen verifizieren
  • Aktiviere die Sudo-Funktion im SSSD-Dienst (auf dem Client-Rechner)
  • Sudo-Regel einrichten
  • Überprüfen der Sudoers-Integration

Jetzt können wir loslegen.

FreeIPA-Benutzer und -Verbindung überprüfen

In diesem Abschnitt stellst du sicher, dass der FreeIPA-Benutzer „rocky“ auf dem FreeIPA-Server verfügbar ist und dass er sich mit dem Client-Rechner „client.hwdomain.lan“ verbinden kann.

In diesem Beispiel wird der FreeIPA-Benutzer„rocky“ verwendet. Gib den folgenden „ipa“-Befehl ein, um sicherzustellen, dass der Benutzer„rocky“ auf dem FreeIPA-Server verfügbar ist.

ipa user-find rocky

Die Ausgabe„1 user matched“ bestätigt, dass der Benutzer„rocky“ auf dem FreeIPA-Server verfügbar ist.

freeipa Benutzer prüfen

Als Nächstes gibst du den folgenden Befehl ein, um dich mit dem Benutzer„rocky“ am FreeIPA-Client anzumelden. Dadurch wird sichergestellt, dass der Benutzer sich mit den FreeIPA-Client-Rechnern verbinden kann. In diesem Beispiel wird der Server mit dem Namen„client.hwdomain.lan“ als FreeIPA-Client-Rechner verwendet.

ssh rocky@client.hwdomain.lan

Gib das Passwort für den Benutzer„rocky“ ein. Nachdem du dich auf dem Client-Rechner angemeldet hast, gibst du den folgenden Befehl ein, um den aktuellen Benutzer zu identifizieren.

whoami
id

melde dich als Benutzer beim freeipa Client an

Gib den folgenden Befehl„sudo su“ ein, um Root-Zugriff oder Privilegien zu erhalten. Nachdem du dein Passwort eingegeben hast, solltest du eine Fehlermeldung erhalten wie„rocky ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet.

sudo su

Aktivieren der Sudo-Funktion im SSSD-Dienst

Bevor du Sudoers mit FreeIPA einrichtest, musst du die Funktion „with-sudo“ für den SSSD-Dienst auf dem Client-Rechner aktivieren. In diesem Abschnitt wirst du die SSSD-Funktion„sudo“ über das Dienstprogramm„authselect“ aktivieren. Daher musst du diese Befehle auf dem Client-Rechner„client.hwdomain.lan“ ausführen.

Gib den folgenden Befehl„authselect“ ein, um „sudo“ für den SSSD-Dienst zu aktivieren. Du musst die „sudo“-Funktion auf SSSD aktivieren, damit die FreeIPA-Benutzer den„sudo„-Befehl auf dem Client-Rechner ausführen können.

sudo authselect enable-feature with-sudo

Als Nächstes startest du den SSSD-Dienst mit dem folgenden systemctl-Befehl neu. Überprüfe dann den SSSD-Dienst, um sicherzustellen, dass der Dienst läuft.

sudo systemctl restart sssd
sudo systemctl status sssd

Die Ausgabe„active (running)“ bestätigt, dass der SSSD-Dienst auf dem Client-Rechner läuft.

sudo sssd aktivieren

Gib abschließend den folgenden Befehl ein, um die Liste der aktivierten Funktionen der aktuellen Authentifizierungsquelle anzuzeigen. Auf dem FreeIPA-Client-Rechner ist SSSD standardmäßig als Authentifizierungsquelle aktiviert.

authselect current

Unter dem Abschnitt„Aktivierte Funktionen“ solltest du den Parameter„with-sudo“ sehen. Dies bestätigt, dass die Funktion„sudo“ für das SSSD-Authentifizierungsprofil aktiviert ist.

sssd sudo-Funktion verifizieren

Sudo-Regel einrichten

Sudo ist eine Anwendung, die es dir ermöglicht, den Befehl als Root-Benutzer auszuführen oder auch den Root-Benutzer zu bekommen. Standardmäßig unterstützt Freeipa Sudo und bietet ein Kommandozeilenprogramm zur Integration von Sudo in den FreeIPA-Server.

In diesem Abschnitt wirst du Sudo in FreeIPA integrieren, indem du eine Sudo-Regel erstellst. Zuerst legst du die Benutzergruppe fest, dann erstellst du die Sudo-Regel, die allen Benutzern innerhalb der Gruppe den Zugriff auf Sudo und die Ausführung von Sudo ermöglicht.

Gib auf dem FreeIPA-Server den folgenden Befehl ein, um eine neue Gruppe namens„sysadmin“ auf dem FreeIPA-Server zu erstellen. Überprüfe dann die Details der Gruppe„sysadmin„.

ipa group-add --desc='Sysadmin Team' sysadmin
ipa group-find sysadmin

Die Ausgabe‚Added group „sysadmin“‚ bestätigt, dass die neue Gruppe auf dem FreeIPA-Server erstellt wurde. Nachdem der Befehl „ipa group-find“ ausgeführt wurde, solltest du eine Ausgabe wie„1 group matched“ erhalten, was bedeutet, dass die Gruppe„sysadmin“ hinzugefügt wurde und verfügbar ist.

Gruppe erstellen Benutzer

Als Nächstes gibst du den folgenden Befehl ein, um eine neue Sudo-Regel namens„sysadmin_sudo“ zu erstellen.ipa sudorule-add“ ist ein Dienstprogramm, mit dem du die Sudo-Regel zum FreeIPA-Server hinzufügen kannst. Außerdem erstellst du eine neue sudo-Regel mit den Parametern‚–hostcat=all –runasusercat=all –runasgroupcat=all –cmdcat=all‘, die es dieser Regel erlaubt, sudo auf jedem Client-Rechner und jedem Benutzer oder jeder Gruppe, die Teil der’sysadmin_sudo‚-Regel ist, auszuführen.

ipa sudorule-add sysadmin_sudo \
    --hostcat=all --runasusercat=all --runasgroupcat=all --cmdcat=all

Eine Ausgabe‚Added Sudo Rule „sysadmin_sudo“‚ bestätigt, dass die neue sudo-Regel erstellt wurde.

sudo-Regel erstellen

Gib nun den folgenden Befehl ein, um die Gruppe„sysadmin“ zur sudo-Regel„sysadmin_sudo“ hinzuzufügen. Dadurch können alle FreeIPA-Benutzer der Gruppe„sysadmin“ den sudo-Befehl auf jedem FreeIPA-Client-Rechner ausführen.

ipa sudorule-add-user sysadmin_sudo --group sysadmin

sudo-Regel zur Gruppe hinzufügen

Überprüfe die Details der sudo-Regel„sysadmin_sudo“ mit dem folgenden Befehl. Im Abschnitt „Benutzergruppe“ solltest du sehen, dass die Gruppe„sysadmin“ hinzugefügt wurde und unter„sysadmin_sudo“ verfügbar ist.

ipa sudorule-show sysadmin_sudo

sudo-Regel verifizieren

Gib abschließend den folgenden Befehl ein, um den FreeIPA-Benutzer„rocky“ zur Gruppe„sysadmin“ hinzuzufügen. Überprüfe dann die Details der Gruppe„sysadmin„, um sicherzustellen, dass dein Benutzer hinzugefügt wurde.

ipa group-add-member --user=rocky sysadmin
ipa group-show sysadmin

In den Details der Gruppe„sysadmin“ solltest du sehen, dass der Benutzer„rocky“ hinzugefügt wurde und diese Gruppe auch Teil der sudo-Regel„sysadmin_sudo“ ist.

Benutzer zur Benutzergruppe hinzufügen

Jetzt hast du den Benutzer „rocky“ über die Gruppe„sysadmin“ und die Sudo-Regel„sysadmin_sudo“ so konfiguriert, dass er Sudo auf allen Client-Rechnern ausführen kann. Im nächsten Schritt überprüfst du die Integration von Sudo mit dem FreeIPA-Server.

Überprüfe die Integration von Sudo mit FreeIPA

In diesem Abschnitt stellst du sicher, dass die Integration von Sudo mit FreeIPA funktioniert. Dazu meldest du dich auf dem Client-Rechner als Benutzer„rocky“ an und führst dann den Befehl„sudo“ aus, um die Root-Rechte zu erhalten.

Gib den folgenden Befehl ein, um dich mit dem FreeIPA-Client „client.hwdomain.lan“ als Benutzer„rocky“ zu verbinden. Wenn du dazu aufgefordert wirst, gibst du das Passwort für den Benutzer„rocky“ ein.

ssh rocky@client.hwdomain.lan

Sobald du auf dem Client-Rechner angemeldet bist, führe den folgenden Befehl aus, um deinen aktuellen Benutzer zu identifizieren. Du solltest sehen, dass du als Benutzer„rocky“ eingeloggt bist.

id
whoami

Gib nun den unten stehenden„sudo„-Befehl ein, um die „sudo“-Rechte des FreeIPA-Benutzers„rocky“ zu überprüfen. Wenn du dazu aufgefordert wirst, gibst du das Passwort für den Benutzer„rocky“ ein.

sudo id
sudo su

Wenn der Vorgang erfolgreich war, sollte die Eingabeaufforderung in„root@hostname …“ geändert werden. Dies bestätigt, dass du jetzt Root-Rechte hast und als Benutzer root angemeldet bist.

Identifiziere deinen aktuellen Benutzer mit dem folgenden Befehl. Du solltest sehen, dass du derzeit als Benutzer„root“ angemeldet bist.

id
whoami

Benutzer verifizieren und sudo freeipa

Damit hast du Sudoers nun erfolgreich in den FreeIPA-Server integriert. Jeder Benutzer der Gruppe„sysadmin“ kann nun den Befehl„sudo“ ausführen und erhält die Root-Rechte auf jedem Client-Rechner.

Erlaubt FreeIPA-Benutzern die Ausführung von Sudo für bestimmte Befehle

In diesem Szenario richtest du einen neuen FreeIPA-Benutzer ein, der sich auf dem Client-Rechner anmelden und Sudo für bestimmte Befehle ausführen kann.

In diesem Beispiel richtest du einen neuen Benutzer namens„max“ ein, der sich über SSH auf dem Client-Rechner„client.hwdomain.lan“ anmelden und Sudo ausführen kann, allerdings nur für einige Befehle zur Verwaltung des LEMP-Stacks.

Um dies zu erreichen, musst du die folgenden Schritte ausführen:

  • FreeIPA-Benutzer und -Gruppe anlegen
  • Host-Gruppe erstellen
  • HBAC-Regel (Host-Based Access Control) erstellen
  • Sudo-Regel erstellen
  • Sudo-Befehlsgruppe erstellen
  • Überprüfen der Sudo-Integration mit FreeIPA

Jetzt können wir beginnen.

FreeIPA-Benutzer und -Gruppe anlegen

Zuerst musst du einen bestimmten Benutzer und eine Gruppe anlegen und definieren. In diesem Beispiel wirst du einen neuen Benutzer„max“ und die Benutzergruppe„systemadmin“ auf dem FreeIPA-Server anlegen. Außerdem überprüfst du den neuen Benutzer„max„, um sicherzustellen, dass er auf den Client-Rechner „client.hwdomain.lan“ zugreifen und sich dort anmelden kann.

Erstelle einen neuen FreeIPA-Benutzer namens„max„, indem du den Befehl„ipa user-add“ eingibst. Gib das Passwort für deinen neuen Benutzer ein, wenn du dazu aufgefordert wirst, und wiederhole den Vorgang.

ipa user-add max --first=Max --last=Rods --password

freeipa Benutzer erstellen max

Überprüfe nun die Details des Benutzers„max“ mit dem folgenden Befehl. Du solltest die detaillierte Standardkonfiguration des Benutzers„max“ sehen.

ipa user-find max

Benutzer verifizieren

Gib als Nächstes den folgenden Befehl ein, um eine neue Gruppe„systemadmin“ hinzuzufügen. Dann fügst du den Benutzer„max“ zur Gruppe„sysadmin“ hinzu.

ipa group-add --desc='System Admin Team' systemadmin
ipa group-add-member --user=max systemadmin

Überprüfe die detaillierte Konfiguration der Gruppe „systemadmin“ mit folgendem Befehl. Du solltest sehen, dass der Benutzer„max“ hinzugefügt wurde und in der Gruppe„systemdadmin“ verfügbar ist.

ipa group-show systemadmin

Gruppe erstellen

Benutzer zur Gruppe hinzufügen

Um sicherzustellen, dass sich der neue Benutzer auf dem Client-Rechner anmelden kann, gibst du den folgenden ssh-Befehl ein. In diesem Beispiel meldet sich der Benutzer„max“ auf dem Client-Rechner„client.hwdomain.lan“ an.

ssh max@client.hwdomain.lan

Wenn du dazu aufgefordert wirst, gibst du dein Passwort ein. Dann wirst du auch aufgefordert, das Standardpasswort zu ändern. SO gib dein aktuelles Passwort ein, dann das neue Passwort und wiederhole den Vorgang.

Benutzeranmeldung verifizieren

Nachdem du dich eingeloggt hast, identifiziere deinen aktuellen Benutzer mit dem folgenden Befehl.

id
whoami

Du solltest sehen, dass du als Benutzer„max“ auf dem„client.hwdomain.lan“ angemeldet bist.

Host-Gruppe erstellen

Nachdem du den Benutzer und die Gruppe erstellt hast, musst du nun die Host-Gruppe auf FreeIPA erstellen und einrichten. Du erstellst eine neue Host-Gruppe mit dem Namen„appserver„, und das Mitglied dieser Gruppe wird ein„client.hwdomain.lan“ sein.

Überprüfe die Liste der verfügbaren Hosts auf dem FreeIPA mit dem folgenden Befehl. Dieser zeigt dir die Liste der Rechner, die auf dem FreeIPA verfügbar sind. In diesem Beispiel sind auf dem FreeIPA-Server die beiden Hosts„ipa.hwdomain.lan“ und„client.hwdomain.lan“ verfügbar.

ipa host-find

Gastgeber auflisten

Erstelle nun eine neue Host-Gruppe namens„appserver„. Füge dann den Host„client.hwdomain.lan“ zur Hostgruppe„appserver“ hinzu.

ipa hostgroup-add appserver
ipa hostgroup-add-member appserver --hosts=client.hwdomain.lan

Wirtsgruppe erstellen

Host-Gruppe hinzufügen

Überprüfe die detaillierte Hostgruppe„appserver“ mit dem unten stehenden Befehl. Du solltest sehen, dass der Host„client.hwdomain.lan“ hinzugefügt wurde und in der Hostgruppe„appserver“ verfügbar ist.

ipa hostgroup-show appserver

HBAC-Regel (Host-Based Access Control) erstellen

Nachdem du die Host-Gruppe „appserver“ erstellt hast, kannst du nun die HBAC-Regel (Host-based Access Control) auf dem FreeIPA-Server einrichten. Mit der HBAC-Regel kannst du Richtlinien einrichten und definieren, die den Zugang zu Hosts oder Diensten auf der Grundlage des Benutzers, der sich anzumelden versucht, und seiner Gruppen, des Hosts, auf den er zuzugreifen versucht (oder seiner Host-Gruppen), und (optional) des Dienstes, auf den zugegriffen wird, einschränken.

In diesem Abschnitt deaktivierst du die Standard-HBAC-Regel und richtest eine benutzerdefinierte HBAC-Regel mit dem Namen„operation_admin“ ein, die es dem Benutzer„max“ oder der Gruppe„systemadmin“ erlaubt, alle Hosts innerhalb der Host-Gruppe„appserver“ über SSH zu verwalten. Außerdem kann dieser Benutzer oder diese Gruppe die Befehle„sudo“ und„sudo -l“ ausführen.

Gib den folgenden Befehl ein, um die Standard-HBAC-Regel„allow_all“ zu deaktivieren. Überprüfe dann die Details der HBAC-Regel„allow_all„.

ipa hbacrule-disable allow_all
ipa hbacrule-show allow_all

Eine Ausgabe‚Disabled HBAC rule „allow_all“ bestätigt, dass die Regel deaktiviert ist. Außerdem solltest du im Abschnitt„Aktiviert“ sehen, dass der Wert auf„false“ geändert wurde.

Standard-HBAC-Regel deaktivieren

Wenn die Standard-HBAC-Regel „allow_all“ deaktiviert ist, kann sich kein Benutzer auf dem Client-Rechner anmelden.

Als Nächstes erstellst du eine neue benutzerdefinierte HBAC-Regel mit dem Namen„operation_admin“ mit dem folgenden Befehl„ipa hbacrule-add„.

ipa hbacrule-add operation_admin

HBAC-Regel hinzufügen

Füge der HBAC-Regel„operation_admin“ die Host-Gruppe„appserver“ mit dem Befehl„ipa hbacrule-add-host“ und die Benutzergruppe„sysadmin“ mit dem Befehl „ipa hbacrule-add-user“ hinzu.

ipa hbacrule-add-host operation_admin --hostgroup appserver
ipa hbacrule-add-user operation_admin --group systemadmin

Hostgruppe und Benutzergruppe zur HBAC-Regel hinzufügen

Als Nächstes fügst du Dienste wie„sshd, sudo und su “ zur HBAC-Regel„operation_admin“ hinzu. Alle Hosts oder Hostgruppen innerhalb der HBAC-Regel„operation_admin“ sind betroffen und können auf diese Befehle zugreifen oder sie ausführen.

ipa hbacrule-add-service operation_admin --hbacsvcs=sshd
ipa hbacrule-add-service operation_admin --hbacsvcs=sudo --hbacsvcs=su-l

Dienst hbac Regel hinzufügen

Überprüfe die Details der HBAC-Regel„operation_admin“ mit dem folgenden Befehl. Du solltest sehen, dass die drei Dienste„sshd„,„sudo“ und„su-l“ hinzugefügt wurden und auf„operation_admin“ verfügbar sind.

ipa hbacrule-show operation_admin

Host-Gruppe überprüfen

Zu diesem Zeitpunkt können sich nur Benutzer/Gruppen innerhalb der Regel „operation_admin“ auf dem Client-Rechner anmelden. Der Benutzer „rocky“ kann sich nicht auf dem Client-Rechner„client.hwdomain.lan“ anmelden, aber der Benutzer„max“ kann sich auf dem„client.hwdomain.lan“ anmelden. Das liegt daran, dass der Benutzer„max“ Teil der Gruppe„systemadmin“ ist, die auf die HBAC-Regel„operation_admin“ angewendet wird.

Die Anmeldung als Benutzer„rocky“ wird durch den Client-Rechner definiert.

ssh rocky@client.hwdomain.lan

Die Anmeldung als Benutzer„max“ ist erlaubt, weil er Teil der Gruppe„systemadmin“ ist.

ssh max@client.hwdomain.lan

Anmeldung bestätigen

Sudo-Regel erstellen

In diesem Abschnitt wirst du eine neue Sudo-Regel für FreeIPA erstellen und einrichten. Anschließend weist du diese Sudo-Regel der spezifischen Gruppe„systemadmin“ und der Host-Gruppe„appserver“ zu.

Gib den folgenden Befehl ein, um eine neue Sudo-Regel namens„systemadmin_sudo“ hinzuzufügen. In diesem Beispiel erstellst du eine neue Sudo-Regel, die nur auf den Benutzer und die Gruppe mit dem Parameter„–runasusercat=all –runasgroupcat=all“ angewendet wird. Damit können nicht alle Befehle mit sudo oder als root ausgeführt werden und diese Regel kann auf bestimmte Clients oder Hosts angewendet werden.

ipa sudorule-add systemadmin_sudo \
    --runasusercat=all --runasgroupcat=all

sudo-Regel erstellen

Gib nun den folgenden Befehl ein, um die Benutzergruppe „systemdadmin“ und die Host-Gruppe „appserver“ zur sudo-Regel „systemadmin_sudo“ hinzuzufügen. Damit wird die Regel „systemadmin_sudo“ nur auf Benutzer der Gruppe „systemadmin“ und die Hosts/Clients der Gruppe „appserver“ angewendet.

ipa sudorule-add-user systemadmin_sudo --group systemadmin
ipa sudorule-add-host systemadmin_sudo --hostgroup appserver

Gruppe und Host-Gruppe zur sudo-Regel hinzufügen

Sudo-Befehlsgruppe erstellen

Nachdem du die Sudo-Regel erstellt hast, musst du nun die Sudo-Befehlsgruppe auf FreeIPA einrichten und definieren. Damit kannst du mehrere Befehle an eine bestimmte Sudo-Befehlsgruppe binden und dann die Sudo-Befehlsgruppe auf die jeweilige Sudo-Regel anwenden.

In diesem Beispiel definierst du einige Befehle auf FreeIPA, die zum Starten und Neustarten des LEMP Stack-Dienstes verwendet werden sollen. Dann erstellst du eine neue Sudo-Befehlsgruppe mit dem Namen„systemadmin_cmds“ und fügst ihr deine Befehle hinzu. Zum Schluss weist du die Sudo-Befehlsgruppe „systemadmin_cmds“ der Sudo-Regel„systemadmin_sudo“ zu.

Gib den folgenden Befehl ein, um dem FreeIPA-Server neue Befehle hinzuzufügen. In diesem Beispiel fügst du Befehle hinzu, die für die Verwaltung des LEMP-Stacks verwendet werden können. Du kannst die Dienste Nginx, MariaDB und PHP-FPM starten und neu starten.

ipa sudocmd-add "/usr/bin/systemctl start nginx"
ipa sudocmd-add "/usr/bin/systemctl restart nginx"

ipa sudocmd-add „/usr/bin/systemctl start php-fpm“
ipa sudocmd-add „/usr/bin/systemctl restart php-fpm“

ipa sudocmd-add „/usr/bin/systemctl start mariadb“
ipa sudocmd-add „/usr/bin/systemctl restart mariadb“

Befehle definieren

Als Nächstes fügst du eine neue sudo-Befehlsgruppe namens„systemadmin_cmds“ hinzu. Füge dann alle Befehle, die zur Verwaltung des LEMP-Stacks verwendet werden, zur sudo-Befehlsgruppe„systemadmin_cmds“ hinzu.

ipa sudocmdgroup-add systemadmin_cmds
ipa sudocmdgroup-add-member systemadmin_cmds \
    --sudocmds "/usr/bin/systemctl start nginx" \
    --sudocmds "/usr/bin/systemctl restart nginx" \
    --sudocmds "/usr/bin/systemctl start php-fpm" \
    --sudocmds "/usr/bin/systemctl restart php-fpm" \
    --sudocmds "/usr/bin/systemctl start mariadb" \
    --sudocmds "/usr/bin/systemctl restart mariadb"

Die Ausgabe‚Added Sudo Command Group „systemdadmin_cmds“‚ bestätigt, dass die neue sudo-Befehlsgruppe erstellt wurde. Außerdem bestätigt die Ausgabe„Anzahl der hinzugefügten Mitglieder 6„, dass du der Sudo-Befehlsgruppe„systemdadmin_cmds“ 6 Befehle hinzugefügt hast.

Befehle zur sudo-Befehlsgruppe hinzufügen

Gib abschließend den folgenden Befehl ein, um die sudo-Befehlsgruppe„systemadmin_cmds“ zur sudo-Regel„systemadmin_sudo“ hinzuzufügen. Damit können Benutzer innerhalb der sudo-Regel„systemadmin_sudo“ 6 sudo-Befehle ausführen, die in der sudo-Befehlsgruppe „systemadmin_cmds“ verfügbar sind.

ipa sudorule-add-allow-command systemadmin_sudo --sudocmdgroups systemadmin_cmds

sudo-Befehlsgruppe zur sudo-Regel hinzufügen

Überprüfen der Sudo-Integration mit FreeIPA

Um die Sudo-Implementierung und die Integration mit FreeIPA in diesem Szenario zu überprüfen, meldest du dich mit dem neuen Benutzer „max“ bei „client.hwdomain.lan“ an. Dann führst du einige der Befehle aus, die für die Verwaltung der LEMP-Stack-Dienste verwendet werden.

Melde dich mit dem Benutzer„max“ beim client.hwdomain.lan an, indem du den folgenden ssh-Befehl ausführst. Gib das Passwort ein, wenn du dazu aufgefordert wirst.

ssh max@client.hwdomain.lan

Nachdem du dich angemeldet hast, gibst du den folgenden Befehl ein, um deinen aktuellen Benutzer zu identifizieren. Du wirst sehen, dass du als Benutzer„max“ eingeloggt bist.

id
whoami

Anmeldung am Server

Gib als Nächstes den folgenden Befehl ein, um die LEMP-Stack-Dienste neu zu starten. Wenn du dazu aufgefordert wirst, gibst du das Passwort für den Benutzer„max“ ein. Der Vorgang sollte erfolgreich sein, da der Benutzer„max“ diese Befehle als„sudo“ ausführen darf.

sudo /usr/bin/systemctl restart nginx
sudo /usr/bin/systemctl restart php-fpm
sudo /usr/bin/systemctl restart mariadb

verifiziere sudo -l Befehl

Wenn du jetzt den Befehl„systemctl stop“ versuchst, sollte der Vorgang fehlschlagen und du bekommst eine Fehlermeldung wie„Sorry, user max is now allowed to execute … as root on the client.hwdomain.lan„.

sudo /usr/bin/systemctl stop nginx
sudo /usr/bin/systemctl stop php-fpm
sudo /usr/bin/systemctl stop mariadb

sudo nicht erlaubt

Damit hast du die Konfiguration des Sudoers mit dem FreeIPA-Server abgeschlossen, damit bestimmte Befehle als sudo oder als root ausgeführt werden können.

Fazit

In diesem Lernprogramm hast du gelernt, wie du Sudoers in den FreeIPA-Server integrierst. Außerdem hast du einige grundlegende Befehle des Dienstprogramms „ipa“ zur Verwaltung von Benutzern, Gruppen, Hostgruppen, sudo-Regeln, HBAC-Regeln (Host-Based Access Control) und sudo-Befehlsgruppen gelernt. Du hast die grundlegende Integration des Sudoers mit dem FreeIPA-Server anhand von zwei verschiedenen Szenarien gelernt: Benutzern die Ausführung von sudo für alle Befehle und Hosts erlauben und Benutzern die Ausführung von sudo mit nur bestimmten Befehlen auf bestimmten Hosts/Clients erlauben.

Außerdem hast du die Grundkonfiguration des SSSD-Dienstes gelernt und ihn über den FreeIPA-Server mit Sudo integriert.

Mit dieser Sudo-Implementierung kannst du diese beiden Szenarien auf deinem Deployment-Server umsetzen. Um mehr zu erfahren, besuche die offizielle Dokumentation von FreeIPA und Sudoer.

Das könnte dich auch interessieren …