Einen VPS absichern
Informationen zur Übersetzung
Diese Übersetzung wurde durch unseren Partner SYSTRAN automatisch erstellt. In manchen Fällen können ungenaue Formulierungen verwendet worden sein, z.B. bei der Beschriftung von Schaltflächen oder technischen Details. Bitte ziehen Sie im Zweifelsfall die englische oder französische Fassung der Anleitung zu Rate. Möchten Sie mithelfen, diese Übersetzung zu verbessern? Dann nutzen Sie dazu bitte den Button "Beitragen" auf dieser Seite.
Ziel
Wenn Sie Ihren VPS bestellen, können Sie eine Distribution oder ein Betriebssystem auswählen, das Sie vorinstallieren möchten. Der Server kann also nach der Auslieferung direkt verwendet werden. Es ist jedoch Ihre Aufgabe als Administrator, Maßnahmen umzusetzen, die die Sicherheit und Stabilität Ihres Systems gewährleisten.
In dieser Anleitung werden allgemeine Hinweise zur Absicherung eines GNU/Linux-basierten Servers erläutert.
OVHcloud stellt Ihnen Dienstleistungen zur Verfügung, für deren Konfiguration und Verwaltung Sie verantwortlich sind. Es liegt somit bei Ihnen, sicherzustellen, dass diese ordnungsgemäß funktionieren.
Diese Anleitung soll Sie bei allgemeinen Aufgaben bestmöglich unterstützen. Wir empfehlen jedoch, einen spezialisierten Dienstleister zu kontaktieren oder Ihre Fragen an die OVHcloud Community zu richten, wenn Sie bei der Administration Ihres Systems Hilfe benötigen. Zusätzliche Informationen finden Sie im am Ende dieser Anleitung.
Voraussetzungen
- Sie haben einen VPS in Ihrem Kunden-Account.
- Sie haben administrativen Zugriff (sudo) auf Ihren VPS über SSH.
In der praktischen Anwendung
Beachten Sie, dass dies eine allgemeine Anleitung ist, basierend auf Ubuntu, Debian und CentOS Distributionen. Einige Befehle müssen an die von Ihnen verwendete Distribution oder das Betriebssystem angepasst werden. Wir empfehlen gelegentlich die Verwendung externer Tools. Wenn Sie dazu Hilfe benötigen, lesen Sie die offizielle Dokumentation dieser Anwendungen.
Wenn Sie Ihren ersten OVHcloud VPS konfigurieren, empfehlen wir, zum Einstieg unsere Anleitung zur Ersteinrichtung eines VPS zu nutzen.
Die folgenden Beispiele setzen voraus, dass Sie als Benutzer mit erhöhten Berechtigungen eingeloggt sind.
Inhaltsübersicht
- Systemupdate
- Erstellen und verwenden Sie einen SSH-Schlüssel
- Standard-SSH-Listening-Port ändern
- Erstellen eines Benutzers mit eingeschränkten Rechten
- Konfiguration der internen Firewall (iptables)
- Fail2ban installieren
- Konfiguration der OVHcloud Network Firewall
- Ihr System und Ihre Daten sichern
Systemupdate
Entwickler von Distributionen und Betriebssystemen veröffentlichen regulär Softwarepaket-Updates, sehr oft aus Sicherheitsgründen.
Regelmäßige Aktualisierung Ihrer Distribution oder Ihres Betriebssystems mittels Herunterladen und Installation von Updates ist somit ein wichtiger Punkt, um Ihren VPS zu sichern.
Dieses Update wird in zwei Schritten durchgeführt.
- Aktualisieren der Paketliste:
- Aktualisierung der Pakete:
Der Befehl entspricht Ubuntu, da sowohl Debian als auch Ubuntu apt verwenden.
Bei CentOS verwendet der Befehl zum Aktualisieren des Betriebssystems je nach Version entweder yum oder dnf.
Dieser Vorgang muss regelmäßig durchgeführt werden, um ein System auf dem neuesten Stand zu halten.
Erstellen und verwenden eines SSH-Schlüssels
Die Authentifizierung mit SSH-Schlüsseln ist eine der effektivsten Methoden, um den Zugriff auf Ihren VPS zu sichern.
Im Gegensatz zur Passwortauthentifizierung basiert sie auf einem Paar kryptografischer Schlüssel und reduziert erheblich das Risiko von Brute-Force-Angriffen.
Wir empfehlen Ihnen dringend, einen SSH-Schlüssel bei Ihrer ersten Verbindung zu Ihrem Server einzurichten und anschließend diese Methode für Ihren administrativen Zugriff zu priorisieren.
Abhängig von Ihrem Umfeld und dem Tool, das Sie verwenden, um sich mit Ihrem VPS zu verbinden, konsultieren Sie eine der folgenden Anleitungen:
- Wie man Authentifizierungsschlüssel für SSH-Verbindungen zu OVHcloud-Servern erstellt und verwendet
- Tutorial – Wie man PuTTY für SSH-Verbindungen und -Authentifizierungen verwendet
Diese Anleitungen beschreiben die Schritte, um:
- Ein SSH-Schlüsselpaar zu generieren.
- Den öffentlichen Schlüssel auf Ihrem Server bereitzustellen.
- Sich über SSH sicher zu verbinden.
Sobald die SSH-Schlüsselauthentifizierung eingerichtet ist, können Sie weitergehen und die SSH-Dienstkonfiguration verbessern, z. B. durch Ändern des Port oder durch Deaktivieren der Passwortauthentifizierung.
Standard-SSH-Listening-Port ändern
Bevor Sie Änderungen am SSH-Dienst vornehmen, stellen Sie sicher, dass Sie über einen funktionierenden SSH-Schlüsselzugriff verfügen, um den Zugriff auf Ihren Server nicht zu verlieren.
Für diesen Abschnitt gelten die Befehlszeilen für Ubuntu, Debian und CentOS.
Eine der ersten Aktionen auf Ihrem Server sollte die Konfiguration des Listening-Ports des SSH-Dienstes sein. Er ist standardmäßig auf Port 22 eingestellt, deshalb zielen Hacking-Attacken von Bots auf diesen Port. Die Änderung dieser Einstellung zu einem individuellen Port ist eine einfache Maßnahme, um den Schutz Ihres Servers vor automatisierten Angriffen zu verbessern.
Ändern Sie hierzu die Konfigurationsdatei des Dienstes mit einem Texteditor Ihrer Wahl (nano wird in diesem Beispiel verwendet):
Sie sollten diese oder ähnliche Zeilen vorfinden:
Ersetzen Sie die Nummer 22 mit der Port-Nummer Ihrer Wahl.
Geben Sie keine bereits auf Ihrem System verwendete Port-Nummer ein. Um sicher zu gehen, verwenden Sie eine Zahl zwischen 49152 und 65535.
Sie können die Ihrem System zugewiesenen Ports auch mit dem folgenden Befehl anzeigen:
Wenn die Zeile "auskommentiert" ist (d. h. wenn ihr ein "#" vorangestellt ist) wie im Beispiel oben zu sehen, achten Sie darauf, das "#" vor dem Speichern der Datei zu entfernen, damit die Änderung wirksam wird. Beispiel:
Wenn auf Ihrem Betriebssystem eine Firewall konfiguriert ist (UFW oder iptables), müssen Sie deren Einstellungen anpassen, um den Datenverkehr auf dem neuen Port zuzulassen, bevor Sie den Dienst neu starten. Wenn Sie iptables verwenden, lesen Sie diese Anleitung: Konfiguration der Linux Firewall mit iptables. Wenn standardmäßig keine Firewall konfiguriert ist, starten Sie den Dienst neu.
Speichern und schließen Sie die Konfigurationsdatei.
Starten Sie den Dienst neu:
Dies sollte ausreichen, um die Änderungen umzusetzen. Sie können alternativ den VPS neu starten (sudo reboot).
Für Ubuntu 24.04 und höher
Für die neuesten Ubuntu Versionen wird die SSH-Konfiguration in der Datei ssh.socket verwaltet.
Um den SSH-Port zu aktualisieren, bearbeiten Sie die Zeile ListenStream in der Konfigurationsdatei mit einem Texteditor Ihrer Wahl (nano in diesem Beispiel verwendet):
Ihre Datei sollte je nach der von Ihnen installierten Ubuntu-Version wie in den folgenden Beispielen aussehen:
oder
Speichern Sie die Änderungen, und führen Sie die folgenden Befehle aus:
Starten Sie den Dienst neu:
Denken Sie daran, dass Sie nun den neuen Port immer angeben müssen, wenn Sie eine SSH-Verbindung mit Ihrem Server aufbauen:
Beispiel:
Wenn Sie aus Ihrem System ausgesperrt sind, können Sie unsere Rescue-Modus verwenden, um Ihre Änderungen wiederherzustellen.
Erstellen eines Benutzers mit eingeschränkten Rechten
Im Allgemeinen sollten Aufgaben, die keine Root-Rechte erfordern, über einen Standardbenutzer ausgeführt werden. Weitere Informationen finden Sie in dieser Anleitung.
Konfiguration der internen Firewall (iptables)
GNU/Linux Distributionen werden mit einem Firewall-Dienst bereitgestellt, der als iptables bezeichnet wird. Er hat standardmäßig keine aktiven Regeln. Sie können dies überprüfen, indem Sie den folgenden Befehl eingeben:
Weitere Informationen zu iptables finden Sie in unserer Anleitung.
Wir empfehlen Ihnen, Regeln für diese Firewall zu erstellen und an Ihre Nutzung anzupassen. Weitere Informationen zu den möglichen Einstellungen finden Sie in der offiziellen Dokumentation der verwendeten Distribution.
Fail2ban installieren
Fail2ban ist ein Sicherheitsframework zur Prävention unbefugter Zugriffe. Es dient dazu, IP-Adressen zu blockieren, von denen aus Bots oder Angreifer versuchen, in Ihr System einzudringen.
Dieses Paket wird empfohlen und ist in einigen Fällen sogar unerlässlich, um Ihren Server vor Angriffen der Typen Brute Force oder Denial of Service zu schützen.
Um das Softwarepaket zu installieren verwenden Sie folgenden Befehl:
Installieren Sie auf CentOS 7 und CentOS 8 (oder RHEL) zuerst das EPEL-Repository (Extra Packages for Enterprise Linux), dann Fail2ban:
Sie können die Fail2ban-Konfigurationsdateien personalisieren, um Dienste, die dem öffentlichen Internet ausgesetzt sind, vor wiederholten Verbindungsversuchen zu schützen.
Wie von Fail2ban empfohlen, erstellen Sie eine lokale Konfigurationsdatei für Ihre Dienste, indem Sie die Datei "jail.conf" kopieren:
Öffnen Sie anschließend die Datei mit einem Texteditor:
Beachten Sie auf jeden Fall die Informationen am Dateianfang, insbesondere die Kommentare unter [DEFAULT].
Die Parameter von [DEFAULT] sind global und gelten daher für alle Dienste, die in dieser Datei aktiviert sind (enabled = true).
Es ist wichtig zu wissen, dass die globalen Parameter nur dann berücksichtigt werden, wenn in den Abschnitten weiter unten in der Datei (JAILS) keine davon abweichenden Werte definiert sind.
Betrachten Sie etwa diese Zeilen unter [DEFAULT]:
Dies bedeutet, dass eine IP-Adresse, von der aus sich ein Host zu verbinden versucht, nach dem fünften gescheiterten Verbindungsversuch für 10 Minuten gesperrt wird.
Allerdings bleiben alle durch [DEFAULT] und in den darauf folgenden Abschnitten spezifizierten Parameter deaktiviert, es sei denn, die Zeile enabled = true wird für einen Dienst hinzugefügt (aufgelistet unter # JAILS).
Anwendungsbeispiel: Die folgenden Zeilen im Abschnitt [sshd] aktivieren Einschränkungen ausschließlich für den Dienst OpenSSH:
In diesem Fall wird jeglicher Verbindungsversuch über SSH, der innerhalb von fünf Minuten dreimal fehlschlägt, zu einer Sperrzeit von 30 Minuten für die betroffene IP-Adresse führen.
Sie können "ssh" mit Ihrer SSH-Portnummer ersetzen, falls Sie diese geändert haben.
Der beste Ansatz besteht darin, Fail2ban nur für die Dienste zu aktivieren, die tatsächlich auf dem Server ausgeführt werden. Jeder unter # JAILS hinzugefügte individuelle Parameter hat dann Vorrang vor den Standardwerten [DEFAULT].
Sobald Ihre Bearbeitungen abgeschlossen sind, speichern Sie die Datei und schließen Sie den Editor.
Starten Sie den Dienst neu, um sicherzustellen, dass er mit den individualisierten Änderungen ausgeführt wird:
1. Empfohlener Befehl mit systemctl:
2. Befehl mit service (veraltete Methode, noch kompatibel):
Fail2ban verfügt über zahlreiche Einstellungen und Filter für die Individualisierung sowie vordefinierte Optionen, zum Beispiel wenn Sie einem Nginx Webserver eine zusätzliche Sicherheitsebene hinzufügen möchten.
Weitere Informationen und Empfehlungen zu Fail2ban finden Sie in der offiziellen Dokumentation dieses Tools.
Konfiguration der OVHcloud Network Firewall
Bei OVHcloud Diensten besteht die Möglichkeit, am Eingangspunkt der Infrastruktur die so genannte Network Firewall zu aktivieren. Eine korrekte Konfiguration dieser Firewall ermöglicht es, Verbindungen zu blockieren, bevor diese überhaupt auf Ihrem Server ankommen.
Wenn Sie die OVHcloud Network Firewall aktivieren möchten, folgen Sie dieser Anleitung.
Ihr System und Ihre Daten sichern
Das Sicherheitskonzept beschränkt sich nicht auf den Schutz eines Systems vor Angriffen.
Die Sicherung Ihrer Daten ist ebenso essenziell, deshalb bietet Ihnen OVHcloud mehrere Backup-Optionen als Zusatzdienste:
- Mit der
SnapshotOption können Sie manuelle Snapshots erstellen. Automatische Backupsermöglichen es, regelmäßige Backups Ihres VPS zu speichern (mit Ausnahme zusätzlicher Disks).
Alle Informationen zu den für Ihren Dienst verfügbaren Backup-Lösungen finden Sie auf der Produktseite und in den zugehörigen Anleitungen.
Weiterführende Informationen
Firewall auf einem Windows Server konfigurieren
Konfiguration der Linux Firewall mit iptables
Für den Austausch mit unserer User Community gehen Sie auf https://community.ovh.com/en/
-
Secure Shell (SSH) : un protocole de réseau sécurisé utilisé pour établir des connexions entre un client et un serveur. Il permet d'exécuter des commandes à distance de manière sécurisée. ↩