Zum Inhalt springen

LPIC102/110.1 Administrationsaufgaben Sicherheit: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „z. B.“ durch „z. B. “
 
(30 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==Auffinden von Dateien mit gesetztem SUID/SGID-Bit==
'''LPIC102/110.1 Administrationsaufgaben Sicherheit''' - Administrationsaufgaben für Sicherheit durchführen
 
 
 
*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


== 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


=== [[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_.2Fetc.2Fpasswd 'Die Datei /etc/passwd']
[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 etc.) eines Benutzers lautet  
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  
Ändert die Informationen über die Gültigkeit eines Userpassworts
 
 
allgemeine Syntax
 
<pre>chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E Ablaufdatum] [-W warndays] Benutzername</pre>


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


==nmap, netstat und socket==
; allgemeine Syntax
 
nmap [Art des Scans] <Optionen> Ziel
 
===nmap===
*für '''N'''etwork '''Map'''per ist ein Portscanner
 
 
allgemeine Syntax
 
<pre>nmap [Art des Scans] <Optionen> Ziel</pre>
 
===netstat===
*ist ein Diagnose-Werkzeug um Status der Netzwerkschnittstelle(n) auszulesen


=== 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===
socket -wslqvp "echo Socket!" 1938
*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
 
<pre>user@ubuntu-server:~$ socket -wslqvp "Echo Socket!" 1938</pre>
 
Ablauf des Befehls:
*erstellt einen Server-Socket an Port 1938 auf dem local host 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==


; 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.


===ulimit===
== Ressourcenverwendung kontrollieren ==
*Ressourcengrenze ausgeben lassen oder neu setzen
*Einstellungen hierfür sollten genauso wie die initiale PATH-Variable in der Datei ''/etc/profile'' festgelegt werden


=== [[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]
<pre>ulimit [Optionen] [n]</pre>


[n] für Number
[n] für Number


Überblick verschaffen, welche Grenzen gesetzt werden können mit:
  ulimit -a


*Überblick verschaffen, welche Grenzen gesetzt werden können mit:
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># ulimit -a</pre>
 
 
*folgende ulimit-Werte werden z.&nbsp;B.&nbsp; 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===
*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:
 
<pre>lsof [Option] <Format></pre>


=== 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


Nutzung von lsof ohne Option macht wenig Sinn, da Liste geöffneter Dateien sehr lang
; allgemeine Syntax
=> Ergebnisübergabe durch Pipe an andere Programme, z.&nbsp;B.&nbsp; an Wc
lsof [Option] <Format>


<pre>root@archangel:/# lsof |wc -l</pre>
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?


<pre>root@archangel:~# lsof -i :80</pre>
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 ===
* Identifizieren von Prozessen mithilfe von Dateien oder Sockets
* Alternative für lsof
* Besonderheit: kann auch ermitteln, von wem oder was Sockets verwendet werden


<pre>root@fedora ~# fuser -m -u /home/harald/test
fuser -m -u /home/harald/test
/home/harald/test: 12915(harald)</pre>
/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


*Ermittlung des verwendeten Programms ist nun kein Problem mehr
== Arbeiten mit erhöhten Rechten ==


<pre>[root@fedora ~]# ps aux | grep 12915
=== Superuser ===
harald 12915 0.0 0.1 13664 4204 pts/6 S+ 10:42 0:00 vi test</pre>
 
==Arbeiten mit erhöhten Rechten==
 
 
===Superuser===
 
 
====su====
*für '''s'''ubstitute '''u'''ser
*einen Befehl unter anderer Benutzer- oder Gruppenkennung ausführen


==== su ====
'''s'''ubstitute '''u'''ser
* einen Befehl unter anderer Benutzer- oder Gruppenkennung ausführen


allgemeine Syntax
allgemeine Syntax
 
su [Optionen] [-] [Benutzer [Argument]]
<pre>su [Optionen] [-] [Benutzer [Argument]]</pre>
 


ohne Optionen mit root-Password zu root werden
ohne Optionen mit root-Password zu root werden
su


<pre>user@ubuntu-server:~$ su
Identität eines anderen Benutzers annehmen, um Umgebung dieses Benutzers zu überprüfen
Password:</pre>
su -l dominik




Identität eines anderen Benuters annehmen, um Umgebung diesses Buntzers zu überprüfen
=== [[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 Gruppen­zugehörigkeiten, beispielsweise in der Gruppe admin
* Versuche sudo zu verwenden, werden protokolliert und können per Mail an root gesendet werden


<pre>root@archangel:~# su -l dominik
==Feststellen, wer an einem System angemeldet ist oder war ==
dominik@archangel:~$</pre>


===Sudoer===
=== w, who, last ===


====sudo====
==== w ====
*ein einziges Kommando mit root-Rechten ausführen
* zeigt an, wer angemeldet ist und was sie tun, verwendet die Datei ''/var/run/utmp''
 
*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, z.B. in Gruppe admin
 
*Versuch sudo zu verwenden, wird protokolliert und kann per Mail an root gesendet werden
 
<pre>harald@archangel:~$ sudo apt-get install orca
[sudo] password for harald:</pre>
 
==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:
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>


==Quellen==
 
Buch LPIC1 Version 5 (Kapitel 110.1 S 435-443) [https://wiki.ubuntuusers.de ubuntuusers][https://de.wikipedia.org Wikipedia] Manpages von find, passwd, chage, nmap, netstat, socket, ulimit, lsof, fuser, su, sudo, w, who, last
<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/LPIC/102]]
[[Kategorie:Linux/Sicherheit]]
[[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 Gruppen­zugehö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