Zum Inhalt springen

LPIC102/110.1 Administrationsaufgaben Sicherheit: Unterschied zwischen den Versionen

Aus Foxwiki
Robertquies (Diskussion | Beiträge)
 
(81 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=110.1 Administrationsaufgaben für Sicherheit durchführen=
'''LPIC102/110.1 Administrationsaufgaben Sicherheit''' - 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


== 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> root@ubuntu-server:~# find / -perm -u+s </pre>
<pre> # find / -perm -u+s </pre>
 


Suche nach Programmen mit setztem SGID:
Suche nach Programmen mit setztem SGID:


<pre>root@ubuntu-server:~# 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'':
[https://wiki.itw-berlin.net/index.php?title=Passwd:_Die_Datei_/etc/passwd#Die_Datei_.2Fund weitere2Fpasswd 'Die Datei /etc/passwd']


=== passwd ===
Die allgemeine Syntax zum Verwalten (Sperren, Löschen und weitere) eines Benutzers lautet
**von password, ändert die Passwörter eines Benutzers oder einer ganzen Gruppe
 
 
Die allgemeine Syntax zum Verwalten (Sperren, Löschen etc.) 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


<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, netstat und socket ==


=== [[nmap]] ===
'''N'''etwork '''Map'''per ist ein Portscanner


===nmap===
; allgemeine Syntax
- für "Network Mapper" ist ein Portscanner
nmap [Art des Scans] <Optionen> Ziel


allgemeine Syntax
=== netstat ===
 
* ist ein Diagnose-Werkzeug um Status der Netzwerkschnittstelle(n) auszulesen
<pre>nmap [Art des Scans] <Optionen> Ziel</pre>
 
===netstat===
ist ein Diagnose-Werkzeug um Status der Netzwerkschnittstelle(n) auszulesen


allgemeine Syntax
allgemeine Syntax
Zeile 65: Zeile 57:
<pre>netstat [OPTIONEN]</pre>
<pre>netstat [OPTIONEN]</pre>


===socket===
=== socket ===
- Linux Socket Interface
; 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==  
== Ressourcenverwendung kontrollieren ==


===ulimit===
=== [[ulimit]] ===
- Ressourcengrenze ausgeben lassen oder neu setzen
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:
Überblick verschaffen, welche Grenzen gesetzt werden können mit:
  ulimit -a


<pre>root@ubuntu-server:~# ulimit -a</pre>
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
 
*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


<pre># Core Dumps verhindern
<pre># Core Dumps verhindern
Zeile 100: Zeile 100:
ulimit -S -v 20000</pre>
ulimit -S -v 20000</pre>


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


==Offene Dateien==
; allgemeine Syntax
 
lsof [Option] <Format>
===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


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


allgemeine Syntax:
lsof |wc -l
 
<pre>lsof [Option] <Format></pre>
 
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
 
<pre>root@archangel:/# lsof |wc -l</pre>


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===
=== fuser ===
- Identifizieren von Prozessen mithilfe von Dateien oder Sockets, Alternative für lsof
* Identifizieren von Prozessen mithilfe von Dateien oder Sockets
Besonderheit: kann auch ermitteln, von wem oder was Sockets verwendet werden
* 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


*Ermittlung des verwendeten Programms ist nun kein
sudo ps aux | grep 12915
Problem mehr
harald 12915 0.0 0.1 13664 4204 pts/6 S+ 10:42 0:00 vi test


<pre>[root@fedora ~]# ps aux | grep 12915
== Arbeiten mit erhöhten Rechten ==
harald 12915 0.0 0.1 13664 4204 pts/6 S+ 10:42 0:00 vi test</pre>


=== Superuser ===


==Arbeiten mit erhöhten Rechten==
==== su ====
 
'''s'''ubstitute '''u'''ser
===Superuser===
* einen Befehl unter anderer Benutzer- oder Gruppenkennung ausführen
 
====su====
- 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
 
<pre>root@archangel:~# su -l dominik
dominik@archangel:~$</pre>
 
===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
=== [[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 ==


==Feststellen, wer an einem System angemeldet ist oder war==
=== w, who, last ===


===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 188: 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 198: 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, greift je nach Distribution auf Datei /var/log/wtmp (bei Debian) oder /var/log/btmp, falls keine vorhanden mit touch einfach jweilige Datei erzeugen, wird dann nach Neustart automatisch befüllt
* 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
allgemeine Syntax
Zeile 205: 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] 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/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