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.
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.
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.
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 ...
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
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.
・ 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
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
Das ist es
Recommended Posts