Betrieb von SSH Server aufsetzen nach IT-Grundschutz
Zur Navigation springen
Zur Suche springen
Ziel der Schulung
Diese Schulung zeigt, wie ein SSH-Server auf einem Linux-System gemäß den IT-Grundschutz-Richtlinien des BSI sicher aufgesetzt und betrieben wird. Ziel ist es, eine sichere und robuste Remote-Verwaltung des Servers zu ermöglichen, die den Anforderungen an Vertraulichkeit und Integrität entspricht.
Annahmen
- Betriebssystem: Ubuntu Server 20.04 LTS
- SSH-Server: [OpenSSH](https://www.openssh.com/)
- Nutzung: Remote-Verwaltung durch Administratoren
- Sicherheitsanforderungen: Hohe Priorität auf Vertraulichkeit und Integrität, da über SSH kritische Verwaltungszugriffe erfolgen.
Planung und Vorbereitung
Sicherheitsanforderungen definieren
- Vertraulichkeit: Die SSH-Verbindungen müssen verschlüsselt sein, um vor Abhören geschützt zu sein.
- Integrität: Die Datenübertragung und Befehle müssen unverändert bleiben.
- Verfügbarkeit: Der SSH-Dienst muss jederzeit für Administratoren erreichbar sein.
Rollen und Verantwortlichkeiten
- Systemadministrator: Verantwortlich für die Installation, Konfiguration und Wartung des SSH-Servers.
- Sicherheitsbeauftragter: Überprüfung der Sicherheitsmaßnahmen und regelmäßige Sicherheitsaudits.
IT-Grundschutz-Bausteine anwenden
Netzwerkinfrastrukturen (NET)
- **NET.1: Netzwerksicherheit**
- SSH-Kommunikation wird durch eine Firewall auf den benötigten Port (standardmäßig 22) beschränkt, um unautorisierte Zugriffe zu minimieren.
- **NET.2: Sicherer Betrieb von Servern**
- Der SSH-Server wird so konfiguriert, dass nur sichere Authentifizierungsverfahren und Protokolle verwendet werden.
Systemhärtung
Grundlegende Anforderungen an Applikationen (APP.1.2.A1)
- Deaktivieren von unnötigen Diensten:
- Beispiel: `sudo systemctl disable --now telnet` - Telnet wird deaktiviert, um sicherzustellen, dass nur verschlüsselte Verbindungen erlaubt sind.
- Regelmäßige Updates:
- Beispiel: `sudo apt update && sudo apt upgrade -y`
- Grund: Um bekannte Sicherheitslücken schnell zu schließen.
SSH-Server-Härtung
- Entfernen von unsicheren Protokollen:
- Beispiel: In der SSH-Konfiguration (`/etc/ssh/sshd_config`): `Protocol 2` - Nur das sichere Protokoll 2 wird zugelassen.
- Sicherheitsmodule und Optionen:
- Beispiel: SSH-Banner konfigurieren (`Banner /etc/issue.net`), um Administratoren an die Sicherheitsrichtlinien zu erinnern.
Sichere Konfiguration des SSH-Servers
Benutzerzugang beschränken
- Nur autorisierte Benutzer:
- Beispiel: In der SSH-Konfigurationsdatei (`/etc/ssh/sshd_config`):
AllowUsers adminuser
- Grund: Reduziert das Risiko von unbefugtem Zugriff durch Beschränkung auf spezifizierte Benutzer.
Passwortauthentifizierung deaktivieren
- Nur Schlüsselbasierte Authentifizierung:
- Beispiel: In der SSH-Konfiguration (`/etc/ssh/sshd_config`):
PasswordAuthentication no PubkeyAuthentication yes
- Grund: Verhindert Brute-Force-Angriffe auf Passwörter und erzwingt die Nutzung sicherer SSH-Schlüssel.
Root-Login deaktivieren
- Root-Login ausschalten:
- Beispiel: In der SSH-Konfiguration (`/etc/ssh/sshd_config`):
PermitRootLogin no
- Grund: Verhindert direkte Root-Zugriffe, um die Gefahr von Kompromittierung zu reduzieren. Administratoren sollten sich mit Benutzerkonten anmelden und dann `sudo` verwenden.
Port ändern
- Standardport ändern:
- Beispiel: In der SSH-Konfiguration (`/etc/ssh/sshd_config`):
Port 2222
- Grund: Erschwert automatisierte Angriffe, die den Standardport 22 anvisieren.
Monitoring und Protokollierung
Log-Management
- Aktivieren und Überwachen der SSH-Logs:
- Beispiel: Logs finden sich unter `/var/log/auth.log`. Konfiguriere `rsyslog` oder ein anderes Logging-Tool für gezielte Überwachung.
- Grund: Überwachung sicherheitsrelevanter Ereignisse, wie fehlgeschlagene Anmeldeversuche.
Automatische Überwachung
- Tools zur Überwachung:
- Beispiel: [Fail2Ban](https://www.fail2ban.org/) installieren und konfigurieren, um nach mehreren fehlgeschlagenen Anmeldeversuchen die IP zu sperren: `sudo apt install fail2ban`
- Konfigurationsdatei: `/etc/fail2ban/jail.local` mit Regeln für SSH anpassen:
[sshd] enabled = true port = 2222 filter = sshd logpath = /var/log/auth.log maxretry = 3
- Grund: Schutz vor Brute-Force-Angriffen.
Regelmäßige Sicherheitsüberprüfungen und Patches
Schwachstellenmanagement
- Beispiel: Regelmäßige Nutzung von [Lynis](https://cisofy.com/lynis/) zur Sicherheitsprüfung: `sudo apt install lynis && sudo lynis audit system`
- Grund: Erkennung und Behebung von Schwachstellen.
Penetrationstests und Audits
- Regelmäßige Sicherheitstests durchführen:
- Beispiel: Internes Audit-Tool oder externe Penetrationstests einsetzen.
- Grund: Sicherstellung, dass der Server keine neuen Schwachstellen hat.
Notfallmanagement
Incident Response Plan
- Verfahren zur Reaktion auf Sicherheitsvorfälle entwickeln:
- Beispiel: Eine Checkliste für Sicherheitsvorfälle erstellen und regelmäßig testen.
- Grund: Schnelle und effektive Reaktion bei Sicherheitsvorfällen.
Dokumentation
- Alle Maßnahmen und Konfigurationen dokumentieren:
- Beispiel: Eine Wiki-Seite für die Konfigurationsdokumentation und Sicherheitsprotokolle pflegen.
- Grund: Gewährleistung der Nachvollziehbarkeit und Unterstützung bei der Fehlersuche.
Quellen
- [BSI IT-Grundschutz-Kompendium 2022](https://www.bsi.bund.de/IT-Grundschutz)
- [OpenSSH Documentation](https://www.openssh.com/manual.html)
- [Fail2Ban](https://www.fail2ban.org/)
- [Lynis](https://cisofy.com/lynis/)
Fazit
Durch die Anwendung dieser Schritte und Maßnahmen stellen wir sicher, dass der SSH-Server nach den Richtlinien des IT-Grundschutzes sicher betrieben wird. Die Einhaltung dieser Standards schützt den Server vor bekannten Bedrohungen und trägt zu einer stabilen und sicheren IT-Infrastruktur bei.