LPIC102/110.1 Administrationsaufgaben Sicherheit: Unterschied zwischen den Versionen
K Textersetzung - „[[Category:“ durch „[[Kategorie“ |
|||
| (39 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
'''LPIC102/110.1 Administrationsaufgaben Sicherheit''' - Administrationsaufgaben für Sicherheit durchführen | |||
== Beschreibung == | |||
== 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: | Suche nach Programmen mit setztem SUID: | ||
<pre> # find / -perm -u+s </pre> | <pre> # find / -perm -u+s </pre> | ||
Suche nach Programmen mit setztem SGID: | Suche nach Programmen mit setztem SGID: | ||
| Zeile 21: | Zeile 16: | ||
<pre># find / -perm -g+s</pre> | <pre># find / -perm -g+s</pre> | ||
==Setzen oder Löschen von Passwörtern und Passwort-Verfallszeiten== | == Setzen oder Löschen von Passwörtern und Passwort-Verfallszeiten == | ||
=== [[passwd]] === | |||
* von '''passw'''or'''d''', ändert die Passwörter eines Benutzers oder einer ganzen Gruppe | |||
* passwd greift auf ''/etc/passwd zu | |||
Link weiterführende Information zu ''/etc/passwd'': | Link weiterführende Information zu ''/etc/passwd'': | ||
[https://wiki.itw-berlin.net/index.php?title=Passwd:_Die_Datei_/etc/passwd#Die_Datei_. | [https://wiki.itw-berlin.net/index.php?title=Passwd:_Die_Datei_/etc/passwd#Die_Datei_.2Fund weitere2Fpasswd 'Die Datei /etc/passwd'] | ||
Die allgemeine Syntax zum Verwalten (Sperren, Löschen | Die allgemeine Syntax zum Verwalten (Sperren, Löschen und weitere) eines Benutzers lautet | ||
<pre>passwd [OPTIONEN] [BENUTZERNAME]</pre> | <pre>passwd [OPTIONEN] [BENUTZERNAME]</pre> | ||
Die allgemeine Syntax zum Festlegen, wann und wie oft das Password geändert werden kann, lautet: | |||
Die allgemeine Syntax zum Festlegen, wann und wie oft das Password geändert werden kann, lautet: | |||
<pre>passwd [-x MAX_TAGE] [-n MIN_TAGE] [-w WARN_TAGE] [-i INAKTIV_TAGE] BENUTZERNAME</pre> | <pre>passwd [-x MAX_TAGE] [-n MIN_TAGE] [-w WARN_TAGE] [-i INAKTIV_TAGE] BENUTZERNAME</pre> | ||
===chage=== | === [[chage]] === | ||
Ändert die Informationen über die Gültigkeit eines Userpassworts | |||
chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E Ablaufdatum] [-W warndays] Benutzername | |||
wichtige Dateien | wichtige Dateien | ||
*''/etc/passwd'' - Useraccount Informationen | * ''/etc/passwd'' - Useraccount Informationen | ||
*''/etc/shadow'' - Sichere Useraccount Informationen | * ''/etc/shadow'' - Sichere Useraccount Informationen | ||
== nmap, netstat und socket == | |||
=== [[nmap]] === | |||
'''N'''etwork '''Map'''per ist ein Portscanner | |||
; allgemeine Syntax | |||
nmap [Art des Scans] <Optionen> Ziel | |||
allgemeine Syntax | |||
=== netstat === | |||
* ist ein Diagnose-Werkzeug um Status der Netzwerkschnittstelle(n) auszulesen | |||
allgemeine Syntax | allgemeine Syntax | ||
| Zeile 76: | Zeile 57: | ||
<pre>netstat [OPTIONEN]</pre> | <pre>netstat [OPTIONEN]</pre> | ||
=== socket === | |||
; Linux Socket Interface | |||
Erstellt einen TCP- oder UNIX-Domain-Socket und stellt eine Verbindung zu Standard In / Out her | |||
* kann u.a. sogar nach außen hin das Vorhandensein eines bestimmten Netzwerkdienstes simulieren, ein Zugriff von außen kann so beobachtet werden | |||
socket -wslqvp "echo Socket!" 1938 | |||
; Ablauf des Befehls | |||
* Erstellt einen Server-Socket an Port 1938 auf dem Localhost und wartet auf eine Verbindung. | |||
* Wenn eine Verbindung akzeptiert wird, wird die Zeichenfolge "Socket!" in den Socket geschrieben. | |||
* Es werden keine Daten aus dem Socket gelesen oder in das Programm finger - Suchprogramm für Benutzerinformationen - geschrieben. | |||
* Die Verbindung wird geschlossen, wenn eine Dateiende-Bedingung an der Standardausgabe des Programms auftritt. | |||
* Dann wird eine neue Verbindung angenommen. | |||
=== | == Ressourcenverwendung kontrollieren == | ||
=== [[ulimit]] === | |||
Ressourcengrenze ausgeben lassen oder neu setzen | |||
* Einstellungen hierfür sollten genauso wie die initiale PATH-Variable in der Datei ''/etc/profile'' festgelegt werden | |||
allgemeine Syntax | allgemeine Syntax | ||
ulimit [Optionen] [n] | |||
[n] für Number | [n] für Number | ||
Überblick verschaffen, welche Grenzen gesetzt werden können mit: | |||
ulimit -a | |||
Folgende ulimit-Werte werden beispielsweise 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 | |||
<pre># Core Dumps verhindern | <pre># Core Dumps verhindern | ||
| Zeile 126: | Zeile 100: | ||
ulimit -S -v 20000</pre> | ulimit -S -v 20000</pre> | ||
==Offene Dateien== | == Offene Dateien == | ||
=== lsof === | |||
; '''L'''i'''s'''t '''O'''pen '''F'''iles | |||
* 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 ergibt wenig Sinn, da Liste geöffneter Dateien sehr lang | |||
=> Ergebnisübergabe durch Pipe an andere Programme, beispielsweise an Wc | |||
lsof |wc -l | |||
Welche Prozesse stellen Verbindung zum Netzwerk her? | Welche Prozesse stellen Verbindung zum Netzwerk her? | ||
sudo 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 | |||
fuser -m -u /home/harald/test | |||
/home/harald/test: 12915(harald) | /home/harald/test: 12915(harald) | ||
=> PID 1295 von Benutzer harald | => PID 1295 von Benutzer harald | ||
* Ermittlung des verwendeten Programms ist nun kein Problem mehr | |||
sudo 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 == | |||
==Arbeiten mit erhöhten Rechten== | |||
===Superuser=== | === Superuser === | ||
==== su ==== | |||
'''s'''ubstitute '''u'''ser | |||
* einen Befehl unter anderer Benutzer- oder Gruppenkennung ausführen | |||
allgemeine Syntax | allgemeine Syntax | ||
su [Optionen] [-] [Benutzer [Argument]] | |||
ohne Optionen mit root-Password zu root werden | ohne Optionen mit root-Password zu root werden | ||
su | |||
Identität eines anderen Benutzers annehmen, um Umgebung dieses Benutzers zu überprüfen | |||
su -l dominik | |||
Identität eines anderen | |||
=== [[Sudoer]] === | |||
[sudo | ==== [[sudo]] ==== | ||
* Kommando mit root-Rechten ausführen | |||
* Berechtigungen müssen in der Datei /etc/sudoers definiert werden | |||
* /etc/sudoers [[sollte]] mit visudo bearbeitet werden, da dabei ein Syntax-Check durchgeführt wird | |||
* Neue Sudoer können dort direkt angelegt werden | |||
* Praktischer ist eine indirekte Zuweisung über Gruppenzugehörigkeiten, beispielsweise in der Gruppe admin | |||
* Versuche sudo zu verwenden, werden protokolliert und können per Mail an root gesendet werden | |||
==Feststellen, wer an einem System angemeldet ist oder war== | ==Feststellen, wer an einem System angemeldet ist oder war == | ||
===w, who, last=== | === w, who, last === | ||
====w==== | ==== w ==== | ||
*zeigt an, wer angemeldet ist und was sie tun, verwendet die Datei ''/var/run/utmp'' | * zeigt an, wer angemeldet ist und was sie tun, verwendet die Datei ''/var/run/utmp'' | ||
allgemeine Syntax: | allgemeine Syntax: | ||
| Zeile 220: | Zeile 171: | ||
<pre>w [husfVo] [Benutzer]</pre> | <pre>w [husfVo] [Benutzer]</pre> | ||
====who==== | ==== who ==== | ||
*anzeigen, wer angemeldet ist, verwendet ebenfalls die Datei ''/var/run/utmp'' | * anzeigen, wer angemeldet ist, verwendet ebenfalls die Datei ''/var/run/utmp'' | ||
allgemeine Syntax: | allgemeine Syntax: | ||
| Zeile 230: | Zeile 181: | ||
Option -b, - -boot: Anzeige des letzten Systemstarts | Option -b, - -boot: Anzeige des letzten Systemstarts | ||
====last==== | ==== last ==== | ||
*eine Liste der zuletzt angemeldeten Benutzer anzeigen, wichtig für Suche nach Auslöser für Probleme, | * 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'', | * 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 | * falls keine vorhanden mit touch einfach jeweilige Datei erzeugen, wird dann nach Neustart automatisch befüllt | ||
allgemeine Syntax | allgemeine Syntax | ||
| Zeile 239: | Zeile 190: | ||
<pre>last [OPTION] [Benutzername…] [TTY…]</pre> | <pre>last [OPTION] [Benutzername…] [TTY…]</pre> | ||
[[ | <noinclude> | ||
[[ | |||
== Anhang == | |||
=== Siehe auch === | |||
<div style="column-count:2"> | |||
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> | |||
</div> | |||
---- | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}} | |||
=== Dokumentation === | |||
<!-- | |||
; Man-Page | |||
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | |||
; Info-Pages | |||
--> | |||
=== Links === | |||
==== Projekt ==== | |||
==== Weblinks ==== | |||
* Buch LPIC1 Version 5 (Kapitel 110.1 S 435-443) | |||
* [https://wiki.ubuntuusers.de ubuntuusers] | |||
Manpages | |||
* find | |||
* passwd | |||
* chage | |||
* nmap | |||
* netstat | |||
* socket | |||
* ulimit | |||
* lsof | |||
* fuser | |||
* su | |||
* sudo | |||
* w | |||
* who | |||
* last | |||
[[Kategorie:Linux/LPIC/102]] | |||
[[Kategorie:Linux/Sicherheit]] | |||
</noinclude> | |||
Aktuelle Version vom 4. November 2025, 14:49 Uhr
LPIC102/110.1 Administrationsaufgaben Sicherheit - Administrationsaufgaben für Sicherheit durchführen
Beschreibung
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:
# find / -perm -u+s
Suche nach Programmen mit setztem SGID:
# find / -perm -g+s
Setzen oder Löschen von Passwörtern und Passwort-Verfallszeiten
passwd
- von password, ändert die Passwörter eines Benutzers oder einer ganzen Gruppe
- passwd greift auf /etc/passwd zu
Link weiterführende Information zu /etc/passwd: weitere2Fpasswd 'Die Datei /etc/passwd'
Die allgemeine Syntax zum Verwalten (Sperren, Löschen und weitere) 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
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
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
Erstellt einen TCP- oder UNIX-Domain-Socket und stellt eine Verbindung zu Standard In / Out her
- kann u.a. sogar nach außen hin das Vorhandensein eines bestimmten Netzwerkdienstes simulieren, ein Zugriff von außen kann so beobachtet werden
socket -wslqvp "echo Socket!" 1938
- Ablauf des Befehls
- Erstellt einen Server-Socket an Port 1938 auf dem Localhost und wartet auf eine Verbindung.
- Wenn eine Verbindung akzeptiert wird, wird die Zeichenfolge "Socket!" in den Socket geschrieben.
- Es werden keine Daten aus dem Socket gelesen oder in das Programm finger - Suchprogramm für Benutzerinformationen - geschrieben.
- Die Verbindung wird geschlossen, wenn eine Dateiende-Bedingung an der Standardausgabe des Programms auftritt.
- Dann wird eine neue Verbindung angenommen.
Ressourcenverwendung kontrollieren
ulimit
Ressourcengrenze ausgeben lassen oder neu setzen
- Einstellungen hierfür sollten genauso wie die initiale PATH-Variable in der Datei /etc/profile festgelegt werden
allgemeine Syntax
ulimit [Optionen] [n]
[n] für Number
Überblick verschaffen, welche Grenzen gesetzt werden können mit:
ulimit -a
Folgende ulimit-Werte werden beispielsweise 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
- 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 ergibt wenig Sinn, da Liste geöffneter Dateien sehr lang => Ergebnisübergabe durch Pipe an andere Programme, beispielsweise an Wc
lsof |wc -l
Welche Prozesse stellen Verbindung zum Netzwerk her?
sudo 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
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
sudo 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
substitute user
- einen Befehl unter anderer Benutzer- oder Gruppenkennung ausführen
allgemeine Syntax
su [Optionen] [-] [Benutzer [Argument]]
ohne Optionen mit root-Password zu root werden
su
Identität eines anderen Benutzers annehmen, um Umgebung dieses Benutzers zu überprüfen
su -l dominik
Sudoer
sudo
- Kommando mit root-Rechten ausführen
- Berechtigungen müssen in der Datei /etc/sudoers definiert werden
- /etc/sudoers sollte mit visudo bearbeitet werden, da dabei ein Syntax-Check durchgeführt wird
- Neue Sudoer können dort direkt angelegt werden
- Praktischer ist eine indirekte Zuweisung über Gruppenzugehörigkeiten, beispielsweise in der Gruppe admin
- Versuche sudo zu verwenden, werden protokolliert und können 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…]
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks
- Buch LPIC1 Version 5 (Kapitel 110.1 S 435-443)
- ubuntuusers
Manpages
- find
- passwd
- chage
- nmap
- netstat
- socket
- ulimit
- lsof
- fuser
- su
- sudo
- w
- who
- last