LPIC102/110.1 Administrationsaufgaben Sicherheit: Unterschied zwischen den Versionen
| (39 dazwischenliegende Versionen von 3 Benutzern 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 | |||
==Auffinden von Dateien mit gesetztem SUID/SGID-Bit== | * 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 | |||
*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> | <pre> # find / -perm -u+s </pre> | ||
Suche nach Programmen mit setztem SGID: | Suche nach Programmen mit setztem SGID: | ||
<pre> | <pre># find / -perm -g+s</pre> | ||
== Setzen oder Löschen von Passwörtern und Passwort-Verfallszeiten == | |||
=== passwd === | === passwd === | ||
*von '''passw'''or'''d''', ändert die Passwörter eines Benutzers oder einer ganzen Gruppe | * von '''passw'''or'''d''', ändert die Passwörter eines Benutzers oder einer ganzen Gruppe | ||
*passwd greift auf ''/etc/passwd zu | * 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 und weitere) eines Benutzers lautet | |||
Die allgemeine Syntax zum Verwalten (Sperren, Löschen | |||
<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 | * Ändert die Informationen über die Gültigkeit eines Userpassworts | ||
allgemeine Syntax | allgemeine Syntax | ||
<pre>chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E Ablaufdatum] [-W warndays] Benutzername</pre> | <pre>chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E Ablaufdatum] [-W warndays] Benutzername</pre> | ||
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 === | |||
* für '''N'''etwork '''Map'''per ist ein Portscanner | |||
===nmap=== | |||
*für '''N'''etwork '''Map'''per ist ein Portscanner | |||
allgemeine Syntax | allgemeine Syntax | ||
| Zeile 72: | Zeile 53: | ||
<pre>nmap [Art des Scans] <Optionen> Ziel</pre> | <pre>nmap [Art des Scans] <Optionen> Ziel</pre> | ||
===netstat=== | === netstat === | ||
*ist ein Diagnose-Werkzeug um Status der Netzwerkschnittstelle(n) auszulesen | * ist ein Diagnose-Werkzeug um Status der Netzwerkschnittstelle(n) auszulesen | ||
allgemeine Syntax | allgemeine Syntax | ||
| Zeile 80: | Zeile 60: | ||
<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: | Ablauf des Befehls: | ||
*erstellt einen Server-Socket an Port 1938 auf dem | * 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. | * 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. | * 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. | * Die Verbindung wird geschlossen, wenn eine Dateiende-Bedingung an der Standardausgabe des Programms auftritt. | ||
*Dann wird eine neue Verbindung angenommen. | * 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 | ||
| Zeile 108: | Zeile 85: | ||
[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 130: | Zeile 104: | ||
ulimit -S -v 20000</pre> | ulimit -S -v 20000</pre> | ||
==Offene Dateien== | == Offene Dateien == | ||
=== lsof === | |||
* steht für '''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: | 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=== | === fuser === | ||
*Identifizieren von Prozessen mithilfe von Dateien oder Sockets | * Identifizieren von Prozessen mithilfe von Dateien oder Sockets | ||
*Alternative für lsof | * Alternative für lsof | ||
*Besonderheit: kann auch ermitteln, von wem oder was Sockets verwendet werden | * 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 == | |||
=== 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 === | ||
*Berechtigungen müssen in der Datei /etc/sudoers definiert werden. | ==== 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. | |||
* Neue Sudoer könne dort direkt angelegt werden - praktischer ist indirekte Zuweisung über Grupperzugehörigkeiten, beispielsweise in Gruppe admin | |||
* Versuch sudo zu verwenden, wird protokolliert und kann per Mail an root gesendet werden | |||
sudo apt-get install orca | |||
==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'' | |||
====w==== | |||
*zeigt an, wer angemeldet ist und was sie tun, verwendet die Datei ''/var/run/utmp'' | |||
allgemeine Syntax: | allgemeine Syntax: | ||
| Zeile 224: | Zeile 178: | ||
<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 234: | Zeile 188: | ||
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 243: | Zeile 197: | ||
<pre>last [OPTION] [Benutzername…] [TTY…]</pre> | <pre>last [OPTION] [Benutzername…] [TTY…]</pre> | ||
== | == Konfiguration == | ||
Buch LPIC1 Version 5 (Kapitel 110.1 S 435-443) [https://wiki.ubuntuusers.de ubuntuusers] | === Dateien === | ||
{| class="wikitable options big" | |||
|- | |||
! Datei !! Beschreibung | |||
|- | |||
| || | |||
|- | |||
| || | |||
|} | |||
<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 23. Oktober 2025, 12:53 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
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
- 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
- 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 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
- 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.
- Neue Sudoer könne dort direkt angelegt werden - praktischer ist indirekte Zuweisung über Grupperzugehörigkeiten, beispielsweise in Gruppe admin
- Versuch sudo zu verwenden, wird protokolliert und kann per Mail an root gesendet werden
sudo apt-get install orca
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…]
Konfiguration
Dateien
| Datei | Beschreibung |
|---|---|
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