LPIC102/110.1 Administrationsaufgaben für Sicherheit durchführen
110.1 Administrationsaufgaben für Sicherheit durchführen
Auffinden von Dateien mit gesetztem SUID/SGID-Bit
- bestes Beispiel für gesetztes SUID ist das Programm passwd
- user kann als gewöhnlicher Benutzer mit erhöhten Rechten sein Passwort ändern
- gesetztes SUID stellt Sicherheitsbedrohung dar
- => regelmäßiges Durchsuchen des Systems nach entsprechenden Programmen
Suche nach Programmen mit setztem SUID:
root@ubuntu-server:~# find / -perm -u+s
Suche nach Programmen mit setztem SGID:
root@ubuntu-server:~# find / -perm -g+s
Setzen oder Löschen von Passwörtern und Passwort-Verfallszeiten
passwd
- von pass word, ändert die Passwörter eines Benutzers oder einer ganzen Gruppe
Die allgemeine Syntax zum Verwalten (Sperren, Löschen etc.) eines Benutzers lautet
passwd [OPTIONEN] [BENUTZERNAME]
Die allgemeine Syntax zum Festlegen, wann und wie oft das Password geändert werden kann, lautet:
passwd [-x MAX_TAGE] [-n MIN_TAGE] [-w WARN_TAGE] [-i INAKTIV_TAGE] BENUTZERNAME
chage
- Ändert die Informationen über die Gültigkeit eines Userpassworts
allgemeine Syntax
chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E Ablaufdatum] [-W warndays] Benutzername
wichtige Dateien
- /etc/passwd - Useraccount Informationen
- /etc/shadow - Sichere Useraccount Informationen
nmap, netstat und socket
nmap
- für "Network Mapper" ist ein Portscanner
allgemeine Syntax
nmap [Art des Scans] <Optionen> Ziel
netstat
- ist ein Diagnose-Werkzeug um Status der Netzwerkschnittstelle(n) auszulesen
allgemeine Syntax
netstat [OPTIONEN]
socket
- Linux Socket Interface
Ressourcenverwendung kontrollieren
ulimit
- Ressourcengrenze ausgeben lassen oder neu setzen
allgemeine Syntax
ulimit [Optionen] [n]
[n] für Number
- Überblick verschaffen, welche Grenzen gesetzt werden können mit:
root@ubuntu-server:~# ulimit -a
- folgende ulimit-Werte werden z. B. gern eingesetzt, um primitive DOS-(Denial of Service-)Angriffe zu erschweren (natürlich sind die Werte auch abhängig von der Anwendung eines Rechners) und sollten in der /etc/profile festgelegt werden
# Core Dumps verhindern ulimit -c 0 # keine Dateien größer 512 MB zulassen ulimit -f 512000 # weiches Limit von max. 250 Filedeskriptoren ulimit -S -n 250 # weiches Maximum von 100 Prozessen ulimit -S -u 100 # Speicherbenutzung max. 50 MB ulimit -H -v 50000 # weiches Limit der Speichernutzung 20 MB ulimit -S -v 20000
Offene Dateien
lsof
- steht für List Open Files,
- gibt Informationen über geöffnete Dateien ausführen, wichtig bei Problemen beim Aushängen von Datenträgern,
- kann auch zur Überprüfung von Netzwerkdiensten genutzt werden
allgemeine Syntax:
lsof [Option] <Format>
Nutzung von lsof ohne Option macht wenig Sinn, da Liste geöffneter Dateien sehr lang
=> Ergebnisübergabe durch Pipe an andere Programme, z. B. an Wc
root@archangel:/# lsof |wc -l
Welche Prozesse stellen Verbindung zum Netzwerk her?
root@archangel:~# lsof -i :80
fuser
- Identifizieren von Prozessen mithilfe von Dateien oder Sockets
- Alternative für lsof
- Besonderheit: kann auch ermitteln, von wem oder was Sockets verwendet werden
root@fedora ~# fuser -m -u /home/harald/test /home/harald/test: 12915(harald)
=> PID 1295 von Benutzer harald
- Ermittlung des verwendeten Programms ist nun kein
Problem mehr
[root@fedora ~]# ps aux | grep 12915 harald 12915 0.0 0.1 13664 4204 pts/6 S+ 10:42 0:00 vi test
Arbeiten mit erhöhten Rechten
Superuser
su
- einen Befehl unter anderer Benutzer- oder Gruppenkennung ausführen
allgemeine Syntax
su [Optionen] [-] [Benutzer [Argument]]
ohne Optionen mit root-Password zu root werden
user@ubuntu-server:~$ su Password:
Identität eines anderen Benuters annehmen, um Umgebung diesses Buntzers zu überprüfen
root@archangel:~# su -l dominik dominik@archangel:~$
Sudoer
sudo
- ein einziges Kommando mit root-Rechten ausführen
Berechtigungen müssen in der Datei /etc/sudoers definiert werden.
Laut Buch sollte /etc/sudoers mit visudo bearbeitet werden, da dabei ein Syntax-Check durchgeführt wird - „Kommando nicht gefunden“ „Paket visudo nicht gefunden“
Neue Sudoer könne dort direkt angelegt werden – praktischer ist indirekte Zuweisung über Grupperzugehörigkeiten, z.B. in Gruppe admin
Versuch sudo zu verwenden, wird protokolliert und kann per Mail an root gesendet werden
Feststellen, wer an einem System angemeldet ist oder war
w, who, last
w
- zeigt an, wer angemeldet ist und was sie tun, verwendet die Datei /var/run/utmp
allgemeine Syntax:
w [husfVo] [Benutzer]
who
- anzeigen, wer angemeldet ist, verwendet ebenfalls die Datei /var/run/utmp
allgemeine Syntax:
who [OPTION]... [ FILE | ARG1 ARG2 ]
Besonderheit gegenüber w u.a.: Option -b, - -boot: Anzeige des letzten Systemstarts
last
- eine Liste der zuletzt angemeldeten Benutzer anzeigen, wichtig für Suche nach Auslöser für Probleme,
- greift je nach Distribution auf Datei /var/log/wtmp (bei Debian) oder /var/log/btmp,
- falls keine vorhanden mit touch einfach jeweilige Datei erzeugen, wird dann nach Neustart automatisch befüllt
allgemeine Syntax
last [OPTION] [Benutzername…] [TTY…]
Quellen
Buch LPIC1 Version 5 (Kapitel 110.1 S 435-443) ubuntuusers Manpages von find, passwd, chage, nmap, netstat, socket, ulimit, lsof, fuser, su, sudo, w, who, last