Best Practice zur Serveradministration: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „=Physische Systemsicherheit= *Physischen Konsolenzugriff von Linux-Servern schützen. *Konfigurieren Sie das BIOS so, dass das Booten von CD/DVD, externen Ger…“) |
|||
| (9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | =Updates= | ||
| + | *Updates sind enorm wichtig für die Sicherheit von Servern, Anwendungen und natürlich Netzwerken. | ||
| + | *Im besten Fall bringt ein Softwarehersteller umgehend nach der Entdeckung einer Schwachstellen ein Update heraus, | ||
| + | *So werden Sicherheitslücke geschlossenund somit Angriffe verhindert. | ||
| + | *Das funktioniert leider nur, solange diese Updates auch installiert werden. | ||
| + | *Ein Großteil der Schwachstellen, die wir in Penetrationstests entdecken sind keine neuen Sicherheitslücken. | ||
| + | *Sondern alte Bekannte, denen wir immer wieder über den Weg laufen. | ||
| + | |||
=Physische Systemsicherheit= | =Physische Systemsicherheit= | ||
*Physischen Konsolenzugriff von Linux-Servern schützen. | *Physischen Konsolenzugriff von Linux-Servern schützen. | ||
| Zeile 6: | Zeile 14: | ||
*Verwenden Sie ein sicheres Medium, um Dateien wie scp, sftp usw. zu übertragen und andere Dienste wie ftp, telnet usw. zu löschen. | *Verwenden Sie ein sicheres Medium, um Dateien wie scp, sftp usw. zu übertragen und andere Dienste wie ftp, telnet usw. zu löschen. | ||
*apt löschen xinetd ypserv tftp-server telnet-server rsh-server | *apt löschen xinetd ypserv tftp-server telnet-server rsh-server | ||
| − | =Löschen Sie unnötige Pakete | + | =Löschen Sie unnötige Pakete, um Schwachstellen zu minimieren= |
*Es ist wichtig, unnötige Pakete zu löschen, um die Schwachstelle zu minimieren. | *Es ist wichtig, unnötige Pakete zu löschen, um die Schwachstelle zu minimieren. | ||
| + | |||
=Deaktivieren Sie unerwünschte Dienste vom Server= | =Deaktivieren Sie unerwünschte Dienste vom Server= | ||
*Deaktivieren Sie alle unnötigen Dienste und Daemons (Dienste, die im Hintergrund ausgeführt werden). | *Deaktivieren Sie alle unnötigen Dienste und Daemons (Dienste, die im Hintergrund ausgeführt werden). | ||
| − | * | + | *systemctl list-units --type=service --state=running |
| − | |||
| − | |||
Geben Sie Folgendes ein, um den Dienst zu deaktivieren: | Geben Sie Folgendes ein, um den Dienst zu deaktivieren: | ||
| + | *systemctl stop xyz.service | ||
| + | *systemctl disable xyz.service | ||
| − | + | =Überprüfen Sie die Listening Network Ports= | |
| − | + | *Mit Hilfe des Netzwerkbefehls „netstat“ können Sie alle offenen Ports und zugehörigen Programme anzeigen. | |
| − | + | *Wie ich oben sagte, verwenden Sie den Befehl „chkconfig“, um alle unerwünschten Netzwerkdienste vom System zu deaktivieren. | |
| − | + | *netstat -tulpn | |
| − | + | oder | |
| − | Mit Hilfe des Netzwerkbefehls „netstat“ können Sie alle offenen Ports und zugehörigen Programme anzeigen. Wie ich oben sagte, verwenden Sie den Befehl „chkconfig“, um alle unerwünschten Netzwerkdienste vom System zu deaktivieren. | + | *ss -tulpn |
| − | + | oder | |
| − | + | *nmap -sT -O localhost | |
| − | + | *Schalten Sie SELinux oder Apparmor ein | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | nmap -sT -O | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | =Schalten Sie IPv6 aus= | ||
| + | *Wenn Sie kein IPv6-Protokoll verwenden, sollten Sie es deaktivieren | ||
| + | =Iptables aktivieren (Firewall)= | ||
| + | *Für Best Practices wird empfohlen, die Server-Firewall so zu aktivieren und zu konfigurieren | ||
| + | *Es sollten nur nur bestimmte Ports zugelassen werden, die erforderlich sind, und alle verbleibenden Ports blockiert werden. | ||
| + | =Behalte /boot als schreibgeschützt= | ||
| + | *Der Linux-Kernel und die zugehörigen Dateien befinden sich im /boot-Verzeichnis, das standardmäßig nicht schreibgeschützt ist. | ||
| + | *Wenn Sie es auf schreibgeschützt ändern, verringert sich das Risiko einer nicht autorisierten Änderung kritischer Boot-Dateien. | ||
| + | =ICMP- oder Broadcast-Anfrage ignorieren= | ||
| + | *Fügen Sie die folgende Zeile in der Datei „/etc/sysctl.conf“ hinzu, um Ping- oder Broadcast-Anforderungen zu ignorieren. | ||
| + | ==ICMP-Anfrage ignorieren== | ||
net.ipv4.icmp_echo_ignore_all = 1 | net.ipv4.icmp_echo_ignore_all = 1 | ||
| − | + | ==Broadcast-Anfrage ignorieren== | |
| − | Broadcast-Anfrage ignorieren | ||
| − | |||
net.ipv4.icmp_echo_ignore_broadcasts = 1 | net.ipv4.icmp_echo_ignore_broadcasts = 1 | ||
| + | ==Laden Sie neue Einstellungen oder Änderungen, indem Sie den folgenden Befehl ausführen== | ||
| + | *sysctl -p | ||
| + | =Backup wichtiger Dateien= | ||
| + | *In einem Produktionssystem ist es notwendig, wichtige Dateien zu sichern | ||
| + | *Dies sollte man für die Notfallwiederherstellung in einem Sicherheitstresor, an einem entfernten Standort oder extern aufzubewahren. | ||
| + | =Überprüfen von Konten auf leere Passwörter= | ||
| + | *Sie müssen sicherstellen, dass alle Konten starke Passwörter haben und niemand autorisierten Zugriff hat. | ||
| + | *Leere Passwortkonten sind Sicherheitsrisiken und können leicht gehackt werden. | ||
| + | *cat /etc/shadow | awk -F: '($2==""){print $1}' | ||
| − | + | =Überwachung der Benutzeraktivitäten psacct oder acct= | |
| − | + | *[[psacct oder acct]] | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | =Erzwingen stärkerer Passwörter= | |
| + | *[[Libpam cracklib]] | ||
| − | + | =Quelle= | |
| + | *https://www.folio3.com/19-best-practices-and-recommendations-for-linux-server | ||
Aktuelle Version vom 7. November 2022, 17:01 Uhr
Updates
- Updates sind enorm wichtig für die Sicherheit von Servern, Anwendungen und natürlich Netzwerken.
- Im besten Fall bringt ein Softwarehersteller umgehend nach der Entdeckung einer Schwachstellen ein Update heraus,
- So werden Sicherheitslücke geschlossenund somit Angriffe verhindert.
- Das funktioniert leider nur, solange diese Updates auch installiert werden.
- Ein Großteil der Schwachstellen, die wir in Penetrationstests entdecken sind keine neuen Sicherheitslücken.
- Sondern alte Bekannte, denen wir immer wieder über den Weg laufen.
Physische Systemsicherheit
- Physischen Konsolenzugriff von Linux-Servern schützen.
- Konfigurieren Sie das BIOS so, dass das Booten von CD/DVD, externen Geräten im BIOS deaktiviert wird.
- Aktivieren Sie als Nächstes das BIOS-Passwort und schützen Sie auch GRUB mit einem Passwort, um den physischen Zugriff auf Ihr System einzuschränken.
Vermeiden Sie die Verwendung von FTP-, Telnet- und Rlogin/Rsh-Diensten
- Verwenden Sie ein sicheres Medium, um Dateien wie scp, sftp usw. zu übertragen und andere Dienste wie ftp, telnet usw. zu löschen.
- apt löschen xinetd ypserv tftp-server telnet-server rsh-server
Löschen Sie unnötige Pakete, um Schwachstellen zu minimieren
- Es ist wichtig, unnötige Pakete zu löschen, um die Schwachstelle zu minimieren.
Deaktivieren Sie unerwünschte Dienste vom Server
- Deaktivieren Sie alle unnötigen Dienste und Daemons (Dienste, die im Hintergrund ausgeführt werden).
- systemctl list-units --type=service --state=running
Geben Sie Folgendes ein, um den Dienst zu deaktivieren:
- systemctl stop xyz.service
- systemctl disable xyz.service
Überprüfen Sie die Listening Network Ports
- Mit Hilfe des Netzwerkbefehls „netstat“ können Sie alle offenen Ports und zugehörigen Programme anzeigen.
- Wie ich oben sagte, verwenden Sie den Befehl „chkconfig“, um alle unerwünschten Netzwerkdienste vom System zu deaktivieren.
- netstat -tulpn
oder
- ss -tulpn
oder
- nmap -sT -O localhost
- Schalten Sie SELinux oder Apparmor ein
Schalten Sie IPv6 aus
- Wenn Sie kein IPv6-Protokoll verwenden, sollten Sie es deaktivieren
Iptables aktivieren (Firewall)
- Für Best Practices wird empfohlen, die Server-Firewall so zu aktivieren und zu konfigurieren
- Es sollten nur nur bestimmte Ports zugelassen werden, die erforderlich sind, und alle verbleibenden Ports blockiert werden.
Behalte /boot als schreibgeschützt
- Der Linux-Kernel und die zugehörigen Dateien befinden sich im /boot-Verzeichnis, das standardmäßig nicht schreibgeschützt ist.
- Wenn Sie es auf schreibgeschützt ändern, verringert sich das Risiko einer nicht autorisierten Änderung kritischer Boot-Dateien.
ICMP- oder Broadcast-Anfrage ignorieren
- Fügen Sie die folgende Zeile in der Datei „/etc/sysctl.conf“ hinzu, um Ping- oder Broadcast-Anforderungen zu ignorieren.
ICMP-Anfrage ignorieren
net.ipv4.icmp_echo_ignore_all = 1
Broadcast-Anfrage ignorieren
net.ipv4.icmp_echo_ignore_broadcasts = 1
Laden Sie neue Einstellungen oder Änderungen, indem Sie den folgenden Befehl ausführen
- sysctl -p
Backup wichtiger Dateien
- In einem Produktionssystem ist es notwendig, wichtige Dateien zu sichern
- Dies sollte man für die Notfallwiederherstellung in einem Sicherheitstresor, an einem entfernten Standort oder extern aufzubewahren.
Überprüfen von Konten auf leere Passwörter
- Sie müssen sicherstellen, dass alle Konten starke Passwörter haben und niemand autorisierten Zugriff hat.
- Leere Passwortkonten sind Sicherheitsrisiken und können leicht gehackt werden.
- cat /etc/shadow | awk -F: '($2==""){print $1}'