LPIC102/110.1 Administrationsaufgaben für Sicherheit durchführen: Unterschied zwischen den Versionen

Aus Foxwiki
Robertquies (Diskussion | Beiträge)
K Textersetzung - „  “ durch „ “
 
(52 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=110.1 Administrationsaufgaben für Sicherheit durchführen=
==Auffinden von Dateien mit gesetztem SUID/SGID-Bit==  


==Auffinden von Dateien mit gesetztem SUID/SGID-Bit==




Zeile 15: Zeile 14:
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==
Zeile 27: Zeile 25:


=== passwd ===
=== passwd ===
**von password, ä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
 
 
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']




Zeile 40: Zeile 43:


===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>
<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, netstat und socket==
Zeile 52: Zeile 61:


===nmap===
===nmap===
- für "Network Mapper" ist ein Portscanner  
*für '''N'''etwork '''Map'''per ist ein Portscanner  
 


allgemeine Syntax
allgemeine Syntax
Zeile 59: Zeile 69:


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


<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


<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==  
==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
Zeile 81: Zeile 105:
[n] für Number
[n] für Number


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


<pre>root@ubuntu-server:~# ulimit -a</pre>
*Überblick verschaffen, welche Grenzen gesetzt werden können mit:


*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># 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 100: Zeile 126:
ulimit -S -v 20000</pre>
ulimit -S -v 20000</pre>


==Offene Dateien==


==Offene Dateien==


===lsof===
===lsof===
 
*steht für '''L'''i'''s'''t '''O'''pen '''F'''iles,
- steht für List Open Files,
*gibt Informationen über geöffnete Dateien ausführen, wichtig bei Problemen beim Aushängen von Datenträgern,  
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
kann auch zur Überprüfung von Netzwerkdiensten genutzt werden




Zeile 114: Zeile 138:


<pre>lsof [Option] <Format></pre>
<pre>lsof [Option] <Format></pre>


Nutzung von lsof ohne Option macht wenig Sinn, da Liste geöffneter Dateien sehr lang
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
=> Ergebnisübergabe durch Pipe an andere Programme, z.&nbsp;B.&nbsp;an Wc


<pre>root@archangel:/# lsof |wc -l</pre>
<pre>root@archangel:/# lsof |wc -l</pre>


Welche Prozesse stellen Verbindung zum Netzwerk her?
Welche Prozesse stellen Verbindung zum Netzwerk her?
Zeile 125: Zeile 151:


===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
<pre>root@fedora ~# fuser -m -u /home/harald/test
Zeile 133: Zeile 161:
=> 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 Problem mehr


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


==Arbeiten mit erhöhten Rechten==


==Arbeiten mit erhöhten Rechten==


===Superuser===
===Superuser===


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




Zeile 157: Zeile 187:
<pre>user@ubuntu-server:~$ su  
<pre>user@ubuntu-server:~$ su  
Password:</pre>
Password:</pre>


Identität eines anderen Benuters annehmen, um Umgebung diesses Buntzers zu überprüfen
Identität eines anderen Benuters annehmen, um Umgebung diesses Buntzers zu überprüfen
Zeile 166: Zeile 197:


====sudo====
====sudo====
- ein einziges Kommando mit root-Rechten ausführen
*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“
*Berechtigungen müssen in der Datei /etc/sudoers definiert werden.


Neue Sudoer könne dort direkt angelegt werden – praktischer ist indirekte Zuweisung über Grupperzugehörigkeiten, z.B. in Gruppe admin
*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.&nbsp;B.&nbsp;in Gruppe admin


Versuch sudo zu verwenden, wird protokolliert und kann per Mail an root gesendet werden
*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==
==Feststellen, wer an einem System angemeldet ist oder war==
Zeile 182: Zeile 214:


====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 189: Zeile 221:


====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 199: Zeile 231:


====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 206: Zeile 240:


==Quellen==
==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
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
[[Kategorie:Linux/LPIC/102]]
[[Kategorie:Linux/Sicherheit]]

Aktuelle Version vom 28. Mai 2023, 11:30 Uhr

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: 'Die Datei /etc/passwd'


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
  • 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
user@ubuntu-server:~$ socket -wslqvp "Echo Socket!" 1938

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

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

  • für 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

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.
  • 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
harald@archangel:~$ sudo apt-get install orca
[sudo] password for harald:

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) ubuntuusersWikipedia Manpages von find, passwd, chage, nmap, netstat, socket, ulimit, lsof, fuser, su, sudo, w, who, last