Es gibt jedoch eine Lösung, die Sie möglicherweise mehr interessiert: Terminalprotokollierung.

Es gibt jedoch eine Lösung, die Sie möglicherweise mehr interessiert: Terminalprotokollierung.

Ich bearbeite meine Frage, um das Ziel und nicht eine Annahme der Lösung anzugeben.

  • RHEL-basierte Distributionen
  • Der Root-Benutzer wird nie verwendet und sein Passwort wird geheim gehalten

Alle mit ausgeführten Befehle sudowerden unter protokolliert /var/log/secure. Wenn ein Benutzer mithilfe von zum Root-Benutzer wechselt sudo su/sudo -i, werden alle unter der Sitzung ausgeführten Befehle nicht protokolliert.

Mein Ziel ist, im Auge zu behalten, was die Administratoren tun.


Beispiel

Wenn ein Benutzer Folgendes tut:

alexis$ sudo visudo   # this is logged
alexis$ sudo su       # this is logged
root# visudo          # this isn't logged since it's run under root

Der Befehl visudound dann suwerden als vom Benutzer initiiert protokolliert, alexisaber mit root ausgeführt. Alle folgenden Befehle werden jedoch nicht protokolliert, da sie als root in einer root-Shell ausgeführt werden.

1. November 13:28:29 3020m sudo[6906]: Alexis: TTY=pts/0 ; PWD=/home/alexis ; BENUTZER=Wurzel;COMMAND=/bin/su


In Kürze,Ich möchte nicht, dass ein Benutzer (Admin in Wheel) zu einer Root-Shell wechseln kann. Wenn jemand eine Root-Shell ausführen möchte, muss er/sie das Root-Passwort kennen.

Antwort1

Das ist nicht möglich – bitte lesen Sie bis zum Ende. Wenn der Benutzer vollen Sudo-Zugriff hat, kann er immer sudo -i -u root, verwenden sudo /usr/bin/bashoder sudo /usr/bin/{ANY_OTHER_SHELL}sein eigenes Skript/Programm schreiben, das mit ein paar Befehlen vollen Shell-Zugriff erhält. Das ist trivial. Er kann auch alle von Ihnen vorgenommenen Konfigurationsänderungen usw. rückgängig machen. Sie können es möglicherweise ein wenig verschleiern, indem Sie die Standard-Root-Shell in ändern /sbin/nologin.

[vagrant@eurolinux8-vbuilder ~]$ sudo chsh root -s  /sbin/nologin 
Changing shell for root.
chsh: Warning: "/sbin/nologin" is not listed in /etc/shells.
Shell changed.
[vagrant@eurolinux8-vbuilder ~]$ sudo -i
This account is currently not available.

Aber jeder Poweruser kann den „nackten“ Bash-Aufruf mit sudo verwenden:

[vagrant@eurolinux8-vbuilder ~]$ sudo /usr/bin/bash
[root@eurolinux8-vbuilder vagrant]# 

Daher /usr/sbin/nologinist es nicht sehr wirksam, den Zugriff zu verschleiern.

Sie können auch ein Skript zu Bash oder einer anderen Shell-Konfiguration hinzufügen, um zu prüfen, ob der Benutzer rootNachrichten wie ausgibt Please use sudound sich abmeldet. Aber auch hier können Power-User Dinge wie --norcund verwenden --noprofileoder ihre eigene Konfiguration auf Bash richten. Um es zusammenzufassen – nach meinem besten Wissen ist das nicht möglich. Ich überprüfe sogar, ob es Ausnahmefälle gibt [beispielsweise mit PAM], wenn ein Benutzer verwendet wird, der normalerweise nur ein Daemon ist (wie httpd). Aber mit httpdinstalliert können Sie auch verwenden sudo -u apache /usr/bin/bash. Vielleicht gibt es eine PAM-basierte Lösung, aber mit Google-Fu konnte ich sie nicht finden. Es ist auch schwierig, weil Sie den interaktiven Zugriff deaktivieren möchten. In einem anderen Fall (vollständige Deaktivierung des Root-Zugriffs) blockieren Sie das System und müssen es im Wiederherstellungsmodus reparieren.

Es gibt jedoch eine Lösung, die Sie möglicherweise mehr interessiert: Terminalprotokollierung.

Sie möchten den Terminalverlauf kennen und den Zugriff nicht vollständig einschränken. In der Zwischenzeit sollten Sie wissen, dass Benutzer mit vollem Administratorzugriff ihr Protokoll löschen können. Verwenden Sie daher vorsichtshalber rsyslog oder eine andere Protokollierungslösung, um Protokolle auf einem anderen Server abzulegen.

Da Sie eine auf RHEL basierende Distribution verwenden, sollten Sie Folgendes lesen. https://www.redhat.com/sysadmin/terminal-logging

Antwort2

Machen Sie die Änderungen an PAM rückgängig. Sie benötigen sie nicht.

visudoBearbeiten Sie stattdessen die Datei /etc/sudoersmit und kommentieren Sie die Zeilen aus, die mit %wheelund/oder beginnen %sudo. Dadurch wird Benutzern dieser Gruppen die Verwendung von untersagt sudo.

Sie sollten eine Zeile für sich selbst hinzufügen, bevor Sie die Änderungen ausschreiben. Andernfalls stellen Sie sicher, dass Sie entweder ein funktionierendes Root-Passwort (für suohne sudo) oder eine andere Möglichkeit haben sudo, Root-Rechte zu erlangen!

verwandte Informationen