VPS (Virtual Private Server) ist ein leistungsstarkes Werkzeug, das in einer Vielzahl von Aufgaben Anwendung findet: von Webhosting, Entwicklung und Organisation des persönlichen Cloud-Speichers bis hin zu Penetrationstests (Pentesting), Sicherheitsanalyse oder VPN-Server. Um jedoch Sicherheit und Zuverlässigkeit zu gewährleisten, erfordert ein VPS eine ordnungsgemäße Konfiguration und Härtung. In diesem Artikel werden wir im Detail alle wichtigen Schritte untersuchen, um einen sicheren VPS-Server zu erstellen, der sowohl für allgemeine Aufgaben als auch für spezielle Anforderungen wie Pentesting geeignet ist.
Auswahl eines Anbieters und Betriebssystems
Der erste wichtige Schritt besteht darin, einen zuverlässigen VPS-Anbieter zu wählen. Achten Sie bei der Auswahl eines Anbieters auf folgende Faktoren:
- Unternehmensruf und Kundenbewertungen
- Serverstandort und Netzwerk
- Verfügbare Betriebssystemoptionen
- Leistung und Skalierbarkeit der Tarifpläne
- Niveau des technischen Supports und der Dokumentation
Für das Betriebssystem wird empfohlen, eine der beliebten Linux-Distributionen wie Ubuntu, Debian oder CentOS zu wählen. Sie verfügen über eine breite Community-Unterstützung, häufige Sicherheitsupdates und sind gut für Serveraufgaben geeignet.
Wenn Ihr Ziel Pentesting und Sicherheitsanalyse ist, lohnt es sich, spezialisierte Distributionen in Betracht zu ziehen, die speziell für diese Aufgaben erstellt wurden, wie Kali Linux, ParrotOS oder BlackArch. Diese Distributionen bieten eine Fülle an vorinstallierten Tools für Penetrationstests, Schwachstellenanalyse, Reverse Engineering und andere Cybersicherheitsaufgaben.
Aber selbst wenn Sie sich für eine universelle Distribution wie Ubuntu oder Debian entscheiden, können Sie immer die notwendigen Tools für Pentesting zusätzlich installieren und konfigurieren. Das Wichtigste ist, einen zuverlässigen Schutz des VPS selbst sicherzustellen, damit er nicht Opfer von Angriffen oder Quelle von Bedrohungen für andere Systeme wird.
Die Einrichtung eines VPS umfasst die Auswahl eines geeigneten Anbieters, die Installation des Betriebssystems, die Konfiguration von Diensten und die Absicherung des Servers. Diese Schritte sind sowohl für den allgemeinen Gebrauch als auch für Pentesting-Aufgaben gleichermaßen wichtig.
Ersteinrichtung des Servers
Nach der Erstellung des VPS verbinden Sie sich über SSH mit den vom Anbieter bereitgestellten Anmeldedaten. Führen Sie dann die folgenden Schritte für die Ersteinrichtung durch:
- Aktualisieren Sie alle installierten Pakete auf die neuesten Versionen:
sudo apt update && sudo apt upgrade -y
- Erstellen Sie einen neuen Benutzer mit Sudo-Rechten und richten Sie die SSH-Schlüssel-Authentifizierung ein:
adduser johndoe usermod -aG sudo johndoe mkdir /home/johndoe/.ssh chmod 700 /home/johndoe/.ssh nano /home/johndoe/.ssh/authorized_keys # Fügen Sie Ihren öffentlichen SSH-Schlüssel ein chmod 600 /home/johndoe/.ssh/authorized_keys chown -R johndoe:johndoe /home/johndoe/.ssh
- Deaktivieren Sie die Anmeldung für den Root-Benutzer und die Passwortanmeldung, indem Sie die Datei
/etc/ssh/sshd_config
bearbeiten:PermitRootLogin no PasswordAuthentication no
- Starten Sie den SSH-Dienst neu:
sudo systemctl restart sshd
- Aktualisieren Sie alle installierten Pakete auf die neuesten Versionen:
Jetzt haben Sie die Grundlage für einen sicheren Serverzugriff.
Verstärkung der SSH-Sicherheit
SSH ist die primäre Methode für den Fernzugriff auf einen VPS, daher ist es wichtig, dessen Sicherheit zu verstärken. Hier sind einige Empfehlungen:
- Installieren Sie fail2ban, um sich vor Brute-Force-Angriffen zu schützen:
sudo apt install fail2ban -y
Die Fail2Ban-Protokolle werden normalerweise in der Datei
/var/log/fail2ban.log
gespeichert. Wenn Sie die Anzahl der Anmeldeversuche, die Sperrzeit und andere Parameter ändern möchten, erstellen Sie eine Kopie der Datei jail.conf mit dem Namen jail.local im Verzeichnis/etc/fail2ban
und arbeiten Sie in dieser Datei. Dateien mit .local haben Vorrang vor .conf, sodass Fail2Ban Ihre Einstellungen verwendet. - Verwenden Sie nur die SSH-Schlüssel-Authentifizierung (bereits im vorherigen Schritt eingerichtet).
- Ändern Sie den Standard-SSH-Port (z.B. auf 2222) in der Datei
/etc/ssh/sshd_config
:Port 2222
- Beschränken Sie den SSH-Zugriff auf bestimmte Benutzer, indem Sie in
/etc/ssh/sshd_config
hinzufügen:AllowUsers johndoe
- Aktivieren Sie 2FA (Zwei-Faktor-Authentifizierung) mit Google Authenticator oder anderen Lösungen.
Starten Sie nach den Änderungen SSH neu:
sudo systemctl restart sshd
Einrichtung der Zwei-Faktor-Authentifizierung (2FA)
Die Zwei-Faktor-Authentifizierung erhöht die Sicherheit erheblich, indem bei der Anmeldung über SSH ein zusätzlicher Einmalcode erforderlich ist. Um 2FA mit Google Authenticator einzurichten, führen Sie die folgenden Schritte aus:
- Installieren Sie das Google Authenticator PAM-Modul auf dem Server:
sudo apt install libpam-google-authenticator -y
- Führen Sie google-authenticator als Benutzer aus und folgen Sie den Anweisungen zur Einrichtung:
su - johndoe google-authenticator
Speichern Sie die angezeigten Backup-Codes an einem sicheren Ort.
- Bearbeiten Sie die Datei
/etc/pam.d/sshd
und fügen Sie am Ende hinzu:auth required pam_google_authenticator.so
- Bearbeiten Sie die Datei
/etc/ssh/sshd_config
und fügen Sie hinzu/ändern Sie:ChallengeResponseAuthentication yes AuthenticationMethods publickey,keyboard-interactive
- Starten Sie den SSH-Dienst neu:
sudo systemctl restart sshd
- Installieren Sie das Google Authenticator PAM-Modul auf dem Server:
Jetzt wird bei der Anmeldung über SSH zusätzlich zum SSH-Schlüssel ein Einmalcode von der Google Authenticator App angefordert.
Konfiguration der Firewall
Eine Firewall ist ein wichtiger Bestandteil des Serverschutzes, der es ermöglicht, den Netzwerkzugriff einzuschränken. Es wird empfohlen, UFW (Uncomplicated Firewall) zu verwenden, um Firewall-Regeln zu konfigurieren.
UFW installieren
sudo apt install ufw -y
Regeln einrichten, um notwendige Dienste zu erlauben
Zum Beispiel:
sudo ufw allow 2222/tcp # SSH auf Port 2222 sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS
UFW aktivieren
sudo ufw enable
WICHTIG: Aktivieren Sie UFW nicht, bevor Sie die SSH-Verbindung erlaubt haben. Der Standard-SSH-Port ist 22; wenn Sie den Port für SSH geändert haben, geben Sie Ihren Port an.
Serverüberwachung
Eine regelmäßige Serverüberwachung ermöglicht die rechtzeitige Erkennung potenzieller Probleme und Sicherheitsbedrohungen. Einige Empfehlungen:
- Installieren Sie Überwachungstools wie Prometheus und Grafana zum Sammeln und Visualisieren von Servermetriken.
- Richten Sie eine zentrale Protokollsammlung und -analyse mit Lösungen wie dem ELK-Stack (Elasticsearch, Logstash, Kibana) ein.
- Verwenden Sie Intrusion Detection Tools wie OSSEC oder Suricata, um verdächtige Aktivitäten zu erkennen.
- Überprüfen Sie regelmäßig die Protokolle auf Anomalien und Anzeichen von Kompromittierung.
Übertragung von Dateien zum VPS
Für die sichere Datei- und Ressourcenübertragung zwischen dem lokalen Computer und dem VPS verwenden Sie das SCP-Dienstprogramm. Um beispielsweise das Verzeichnis project
an den Benutzer johndoe
auf dem Server zu übertragen:
scp -P 2222 -i ~/.ssh/vps_key -r ~/project johndoe@vps_ip:~/
Dadurch können Daten über eine verschlüsselte SSH-Verbindung übertragen werden, ohne sie Dritten preiszugeben.
Zusammenfassung
Indem Sie die detaillierten Empfehlungen aus diesem Artikel befolgen, werden Sie in der Lage sein, einen sicheren VPS-Server zu erstellen, der sowohl für allgemeine Aufgaben als auch für Pentesting geeignet ist. Die Hauptpunkte:
- Wählen Sie den Anbieter und das Betriebssystem sorgfältig aus
- Führen Sie die Ersteinrichtung des Servers durch und erstellen Sie einen neuen Sudo-Benutzer
- Verstärken Sie die SSH-Sicherheit mit fail2ban, einem nicht standardmäßigen Port und Benutzerbeschränkungen
- Richten Sie die Zwei-Faktor-Authentifizierung für die SSH-Anmeldung ein
- Konfigurieren Sie die Firewall, um den Netzwerkzugriff einzuschränken
- Installieren Sie Überwachungstools und überprüfen Sie die Protokolle regelmäßig
- Verwenden Sie SCP für den sicheren Dateitransfer
Vergessen Sie nicht, Sicherheitsupdates rechtzeitig zu installieren und die Nachrichten über Schwachstellen zu verfolgen. Bei richtiger Konfiguration, regelmäßiger Überwachung und Wachsamkeit wird Ihr VPS zu einer zuverlässigen und sicheren Plattform für Ihre Projekte und Experimente.