[Linux] su, sudo Einstellungen

Verbieten Sie einfachen Benutzern, root zu werden Und Ich möchte mit dem Befehl sudo eine Spur hinterlassen Die Einstellung zu diesem Zeitpunkt.

Ich werde separat für CentOS 7 und Ubuntu 16.04 schreiben.

1.1 su Verbot Einstellung (CentOS)

Bearbeiten Sie die Datei /etc/pam.d/su </ font>. Kommentieren Sie auth required pam_wheel.so use_uid aus.

/etc/pam.d/su


# Uncomment the following line to require a user to be in the "wheel" group.
auth required pam_wheel.so use_uid

Damit können nur Benutzer der Radgruppe su, andere sind verboten.

1.2 su Verbot Einstellung (Ubuntu)

Die Datei ist mit CentOS identisch, die Beschreibung des Elements wurde jedoch geändert. Fügen Sie group = adm hinzu.

/etc/pam.d/su


auth required pam_wheel.so group=adm

Ubuntu hat keine Radgruppe, also lass es als Adm. → Nur Benutzer, die zur Adm-Gruppe gehören, können su Es ist eine Einstellung.

2. Sudo-Einstellung (gemeinsam)

visudo

Bearbeiten Sie die Datei / etc / sudoers </ font> mit dem Befehl.

Wie schreibt man

visudo


[Benutzername] ALL= (ALL:ALL) ALL

Geben Sie den zu autorisierenden Benutzer mit [Benutzername] an. Sie können nach Gruppen angeben, indem Sie am Anfang% hinzufügen.

Das erste ALL ist die Berechtigung für den Host, daher ist ALL normalerweise in Ordnung.

Das zweite ALL ist "Welcher Benutzer wirst du sein?"

Das dritte ALL ist die obige Gruppenversion Sie kann durch Hinzufügen eines Doppelpunkts (:) angegeben werden. OK ohne

Das vierte ALL lautet "Welcher Befehl kann ausgeführt werden?" Schreiben Sie den Befehlspfad als Trennzeichen.

Das Hinzufügen eines! Am Anfang des Befehls bedeutet auch, dass er nicht ausgeführt wird.

visudo(Beispiel)


%group01 ALL=(ALL:ALL) ALL,!/bin/su,!/usr/sbin/visudo,!/usr/bin/bash,!/usr/bin/sh,!/usr/bin/vi /etc/sudoers

→ group01 Benutzer, die zur Gruppe gehören, können alle Befehle mit sudo als alle Benutzer ausführen. Sie können die Dateien su und sudoers jedoch nicht bearbeiten.

Apropos, Sie können auch die Befehle, die Sie verbieten möchten, zu einem kombinieren.

visudo(Fassen Sie verbotene Befehle zusammen)


##kinshi
Cmnd_Alias KINSHI = /bin/su,/usr/sbin/visudo
dangogrp ALL=(ALL) ALL, !KINSHI 

So was. Verbieten Sie die Bearbeitung von su-Befehlen und Sudoern mit sudo, um zu verhindern, dass die Einstellung selbst geändert wird.

※ Die oben genannten Methoden können nicht vollständig verboten werden und es gibt Lücken. Kopieren Sie beispielsweise einen Shell-Befehl in ein anderes Verzeichnis, geben Sie ihm einen Alias, starten Sie einen externen Befehl und verwenden Sie einen anderen als den oben verbotenen Shell-Befehl. Als Gegenmaßnahme gibt es eine Möglichkeit, Befehle in einem Whitelist-Format zuzulassen, aber ich halte die Operation für schwierig ...

3 Hinterlassen Sie eine Spur von sudo (nur die Syslog-Konfigurationsdatei unterscheidet sich je nach Betriebssystem)

Das Ausführungsergebnis selbst wird im Überwachungsprotokoll ausgespuckt. CentOS:/var/log/secure Ubuntu:/var/log/auth.log

Da diese Dateien im Ausführungsergebnis vergraben werden, ändern wir das Ausgabeziel. Erstellen Sie eine Datei, um das Protokoll auszugeben, und ändern Sie den Eigentümer und die Gruppe. (Der Eigentümer der CentOS-Protokolldatei ist root, daher ist keine Änderung in Ordnung.)

touch /var/log/sudo.log
chown syslog /var/log/sudo.log
chgrp adm /var/log/sudo.log

Einstellungen in / etc / sudoers

visudo

Stellen Sie ein, dass mit in Syslog übertragen werden soll. Hinzugefügt unter der Stelle, an der die Standardeinstellungen aufgereiht sind

visudo(/etc/sudoers)


# sudo log
Defaults syslog=local3

Der local3-Teil kann 0-7 sein. Mit einem freien.

Syslog-Einstellungen

・ Für Centos

vi /etc/rsyslog.conf 

・ Für Ubuntu

vi /etc/rsyslog.d/50-default.conf

Fügen Sie Folgendes hinzu. Ordnen Sie es der lokalen Nummer zu.

#sudo log
local3.*    -/var/log/sudo.log

Starten Sie den Syslog-Dienst neu

systemctl restart rsyslog

Dies hinterlässt eine Spur des Befehls sudo in /var/log/sudo.log. Wenn Sie versuchen, den Befehl ls -l mit Root-Rechten auszuführen,
sudo ls -l /

Es bleibt so im Protokoll.

/var/log/sudo.log


May 28 14:16:10 host01 sudo: user01 : TTY=pts/0 ; PWD=/home/user01 ; USER=root ; COMMAND=/bin/ls -l

Selbst wenn der Benutzer einen gefährlichen Befehl mit Root-Rechten eingibt, kann er sich damit identifizieren und predigen.

Das ist es