Mit diesen Tipps schützen Sie Ihren Root-Server vor Fremdzugriffen
Server, die an das Internet angeschlossen sind, werden routinemässig von Hackern und Cyberkriminellen angegriffen. Einige elementare Gegenmassnahmen helfen, dieses Risiko zu minimieren
Der Autor dieses Artikels ist Sascha Sandi. Er ist Verwaltungsrat der Host Europe Suisse AG.
Wenn Sie Ihren Root-Server das erste Mal in Betrieb genommen haben, vergehen bis zum ersten Angriff meist nur wenige Stunden. Angreifer durchforsten systematisch öffentliche IP-Netze, um neue Angriffsziele zu identifizieren. Haben sie einen neuen Server gefunden, führen sie Standard-Angriffsmuster auf die erreichbaren Serverdienste aus. Schützen Sie sich vor diesen fiesen Angriffen, indem Sie Ihren Server schon vor der Inbetriebnahme vor Fremdzugriffen schützen. Die wichtigsten Schutzmassnahmen zeigen wir Ihnen am Beispiel eines Debian-Root-Servers.
Sicherheitstipp 1: Deaktivieren Sie alle nicht benötigten Serverdienste
Die Absicherung Ihres Root-Servers beginnt mit der Reduzierung der möglichen Angriffsfläche. Es gilt: Alles, was nicht aus dem Internet erreichbar ist, kann auch nicht attackiert werden. Deshalb sollten Sie stets nur eine Minimal-Installation des Betriebssystems durchführen und dann selektiv benötigte Serverdienste nachinstallieren. Welche Serverdienste aktiv sind, prüfen Sie mit dem Kommando «netstat -npl». Je Zeile sehen Sie einen Serverdienst, der auf neue Verbindungen wartet («LISTEN»). Achten Sie besonders auf die Spalte «Local Address». Sie zeigt die IP-Adresse und den Port, unter der ein Serverdienst zu erreichen ist. Entscheidend ist hier die IP-Adresse: Wenn keine lokale IP-Adresse angegeben ist (z.B. 127.0.0.1), nimmt der Dienst prinzipiell Verbindungen aus dem Internet entgegen. Der folgende Eintrag bedeutet also beispielsweise, dass der FTP-Server "proftpd" unter dem Port 21 Verbindungen aus dem Internet entgegennimmt:
# Local Address Foreign Address State PID/Program name
# :::21 :::* LISTEN 24221/proftpd
Deinstallieren Sie am besten alle Dienste, die Sie auf Ihrem Server nicht benötigen. Wenn Sie beispielsweise den FTP-Server «proftpd» deinstallieren möchten, verwenden Sie folgendes Kommando: «apt-get remove --purge proftpd».
Machen Sie Dienste nur dann unter einer öffentlichen IP-Adresse verfügbar, wenn von aussen darauf zugegriffen werden soll. Der Zugriff auf SSH kann beispielsweise auf eine statische IP-Adresse in Ihrem Büro eingeschränkt werden. Solche Einschränkungen legen Sie entweder direkt in der Dienstkonfiguration fest oder sie implementieren diese mit IP-Tables-Regeln.
Sicherheitstipp 2: Verbergen Sie sensible Server-Informationen
Damit Angreifer Ihren Root-Server überhaupt attackieren können, benötigen sie Informationen über die installierten Dienste. Dazu führen sie einen Port-Scan durch und greifen die Meta-Informationen des Dienstes ab. Viele Dienste, wie beispielsweise SSH oder Apache, liefern beim Aufruf des Ports Informationen zur Software und dem Betriebssystem. Sie können dies selbst testen, indem Sie sich mit einem Telnet-Programm zu dem Port eines Serverdienstes verbinden. In der Standardkonfiguration gibt der SSH-Dienst von Debian zum Beispiel Informationen zur eingesetzten SSH-Version und dem Betriebssystem preis.
Die Deaktivierung dieser ungewollten Informationspreisgabe ist abhängig vom jeweiligen Serverdienst. Für den SSH-Dienst deaktivieren Sie die Anzeige der verwendeten Betriebssystem-Version beispielsweise in der Konfigurationsdatei «/etc/ssh/sshd_config». Fügen Sie hier folgende neue Konfigurationszeile hinzu: «DebianBanner no». Beachten Sie: Die OpenSSH-Version lässt sich nicht über die Konfiguration ausblenden.
Wenn Sie den Apache-Webserver beispielsweise über die eigene Version zum Schweigen bringen möchten, fügen Sie folgende Konfigurationszeilen in der «/etc/apache2/conf.d/security» hinzu: «ServerTokens Prod, ServerSignature Off».
Sicherheitstipp 3: Verbieten Sie eine direkte Anmeldung mit dem «root»-Benutzer
Der SSH-Dienst ist für die Fernadministration Ihres Root-Servers unerlässlich und kann deshalb nicht deaktiviert werden. Sie können den Zugang jedoch einschränken. Viele Angriffe zielen beispielsweise auf den administrativen Standardbenutzer «root» ab. Verbieten Sie deshalb eine direkte Anmeldung mit dem Root-Benutzer und führen sie ein zweistufiges Anmeldesystem ein: Zunächst melden Sie sich mit einem herkömmlichen Benutzer per SSH an und wechseln anschliessend in den Rechtekontext des Root-Benutzers. Diese Schutzvorkehrung richten Sie wie folgt ein:
1: Legen Sie ein herkömmliches Benutzerkonto an, das sie nur für die SSH-Anmeldung verwenden. Es darf keine Root-Rechte haben.
2: Anschliessend deaktivieren Sie den Root-Log-in für den SSH-Dienst. Hinterlegen Sie dazu in der Konfigurationsdatei «/etc/ssh/sshd_config» für den Parameter «PermitRootLogin» den Wert «no». Danach starten Sie den SSH-Dienst mit folgendem Kommando neu: «/etc/init.d/ssh restart».
Ab sofort melden Sie sich nur noch mit dem herkömmlichen Benutzer per SSH an und wechseln anschliessend mit dem Kommando «su» zum Root-Benutzer.
Sicherheitstipp 4: Verwenden Sie SSH-Keys anstelle von unsicheren Passwörtern
Um gezielten Angriffen auf Ihre SSH-Zugangsdaten entgegenzuwirken, verwenden Sie am besten ein Schlüsselpaar anstatt einer einfachen Benutzername-Kennwort-Kombination. Das Knacken eines SSH-Schlüssels ist derart komplex, dass Angreifer davon schnell absehen. Um Ihr Anmeldesystem auf SSH-Keys umzustellen, erstellen Sie zunächst mit dem kostenlosen Tool «puttygen» ein Schlüsselpaar auf Ihrem Windows-System.
Den öffentlichen Schlüssel kopieren Sie nun auf Ihren Server. Erstellen Sie dazu im Home-Verzeichnis des anzumeldenden Anwenders das Verzeichnis «.ssh». Dort erstellen Sie die neue Datei «authorized_keys» und hinterlegen dort den generierten öffentlichen Schlüssel. Damit haben Sie serverseitig alle Vorbereitungen abgeschlossen. Jetzt können Sie Ihren privaten Schlüssel dazu verwenden, um sich am Server anzumelden. Starten Sie dazu den SSH-Client puTTY. Unter «Session» -> «Connection» -> «SSH» -> «Auth» wählen Sie über «Browse» Ihren privaten Schlüssel aus. Anschliessend melden Sie sich ohne Abfrage des Benutzernamens und Passwortes am SSH-Server an.
Nachdem Sie die Anmeldung erfolgreich getestet haben, deaktivieren Sie nun die kennwortbasierte Anmeldung auf Ihrem Server. Dazu öffnen Sie die der Datei «/etc/ssh/sshd_config» und ersetzen den Konfigurationseintrag «PasswordAuthentication yes» durch «PasswordAuthentication no».
Sicherheitstipp 5: Blocken Sie Mehrfachattacken mit fail2ban
Angreifer attackieren Ihre Serverdienste häufig mit mehreren Anmeldeversuchen. Erschweren Sie diese Anmeldeversuche, indem Sie Angreifer nach mehreren ungültigen Anmeldeversuchen aussperren. Ein hilfreiches Programm dafür ist fail2ban. Das Tool überwacht die Logfiles Ihrer Serverdienste (z.B. SSH, Proftp oder Apache). Findet es in einem Logfile unzulässige Aufrufe (z.B. Anmeldefehler), blockiert fail2ban die IP-Adressen des Hosts.
Für die konkrete Einrichtung bietet fail2ban mehrere Beispielkonfigurationen, die Sie je nach Bedarf für Ihre Serverdienste aktivieren. Um beispielsweise den SSH-Zugang mit fail2ban zu schützen, installieren Sie fail2ban mit dem Kommando «apt-get install fail2ban» auf Ihrem Root-Server. Dann öffnen Sie die Konfigurationsdatei «/etc/fail2ban/jail.conf.» Im Abschnitt «[ssh]» konfigurieren Sie die in der Tabelle (siehe oben) aufgeführten Parameter.
Sicherheitstipp 6: Halten Sie alle Serverdienste stets up to date
Die Sicherheit Ihres Root-Servers steht und fällt mit der Aktualität der eingesetzten Software. Wenn Sie veraltete Softwareversionen mit Sicherheitslücken verwenden, helfen die besten Schutzmassnahmen nicht. Glücklicherweise bietet Debian mit der integrierten Paketverwaltung einen einfachen Mechanismus, um installierte Softwarepakete zu aktualisieren. Mit dem Kommando «apt-get update» aktualisieren Sie dazu zunächst die Paketliste. Anschliessend führen Sie die Software-Updates mit «apt-get upgrade» aus.
Im Alltag besteht leider häufig das Problem, dass ein regelmässiges Update der Software schlicht vergessen wird. Abhilfe schafft das kostenlose Tool «cron-apt». Das Tool lädt Updates automatisch herunter und benachrichtigt Sie darüber per E-Mail. Dafür wird ein Mail Transfer Agent (MTA) auf Ihrem Root-Server benötigt.
Ob «cron-apt» korrekt funktioniert, testen Sie anschliessend mit dem Kommando «cron-apt –s». Wenn die Konfiguration erfolgreich war, werden Ihnen in der Konsole die Pakete aufgeführt, für die Updates bereitstehen, und Sie erhalten eine E-Mail-Benachrichtigung. Wenn neue Updates vorhanden sind, veranlassen Sie die Installation mit dem Kommando «apt-get upgrade».
Sorgen Sie für eine sichere Dienst-Konfiguration und zusätzlichen Netzwerkschutz
Sie haben in diesem Beitrag essentielle Schutzmassnahmen kennengelernt, um ungewollte Fremdzugriffe auf Ihren Root-Server zu vermeiden. Damit schaffen Sie bereits eine erste hilfreiche Abwehr auf Host-Ebene. Dieser Schutz allein ist jedoch noch nicht ausreichend: Je nach Serverzweck müssen Sie die Konfiguration jedes installierten Serverdienstes kritisch hinterfragen und optimieren. Wertvolle Konfigurationshinweise dazu finden Sie in der jeweiligen Dokumentation des Serverdienstes. Bei besonders kritischen Anwendungen sollten Sie ausserdem einen zusätzlichen Schutz auf Netzwerkebene etablieren. Ein Intrusion Prevention System (IPS) erkennt beispielsweise Angriffsmuster und lässt schädlichen Datentransfer überhaupt nicht zu Ihrem Server.

Martin Bürki wird neuer Comcom-Präsident

So geht Zeitsparen mit KI

Mehr Grips für den Bot

Warum erfundene Programmbibliotheken die Softwarelieferkette bedrohen

Apptiva: Schweizer Pionier für individuelle Softwarelösungen und KI-Chatbots

Zukunftssichere Unternehmenskommunikation durch innovative KI

Wie Unternehmen mit künstlicher Intelligenz im Arbeitsalltag durchstarten

KI-Integration in KMU: Mit lokaler Intelligenz zu mehr Prozesseffizienz

MMTS und Media Solutions bringen Pro-AV zur Home & Professional
