Skip to main content
Inhaltsverzeichnis
Einsteiger14 Min.

Hetzner VPS Setup

Vom leeren Server zur abgesicherten, produktionsreifen Maschine. Wählen Sie aus, wie Sie Ihren Server konfigurieren möchten.

Veröffentlicht:
FÜR KI-AGENTChatGPTClaude
GitHub-Repository

Automatische Einrichtung per KI

Gewähren Sie Ihrem KI-Assistenten Zugriff auf dieses Repository. Er führt automatisch alle Prüfungen durch, konfiguriert die Sicherheit und generiert eine Datei mit allen Zugangsdaten (Credentials Guide) auf Ihrem Computer.

GitHub-Repository öffnen

1. SSH-Schlüssel erstellen (Lokal)

Wird auf Ihrem lokalen Computer (Mac oder Linux) ausgeführt, BEVOR Sie sich mit dem Server verbinden.

bash
ssh-keygen -t ed25519 -C "{username}@{nickname}" -f ~/.ssh/{nickname}_key -N "" cat ~/.ssh/{nickname}_key.pub

Kopieren Sie die Ausgabe des zweiten Befehls (beginnt mit ssh-ed25519 ...). Dies ist Ihr öffentlicher Schlüssel.

2. Anmeldung als Root

Verbinden Sie sich mit dem Server unter Verwendung des Passworts, das Hetzner Ihnen per E-Mail zugesandt hat.

Warnung

Hetzner kann Sie auffordern, das Passwort zu ändern. Geben Sie das aktuelle Passwort ein, gefolgt von zweimal das neue temporäre Passwort. Falls die Verbindung danach abbricht, melden Sie sich einfach erneut mit dem neuen Passwort an.

bash
ssh root@{SERVER_IP}

3. Systemaktualisierung

Aktualisieren aller Pakete im nicht-interaktiven Modus (ohne GRUB-Popup-Fenster).

bash
apt update && DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt upgrade -y

4. Benutzer mit sudo-Rechten erstellen

Die Arbeit als root ist unsicher. Wir erstellen einen regulären Benutzer und verleihen ihm Administratorrechte.

bash
useradd -m -s /bin/bash {username} echo "{username}:YOUR_SECURE_PASSWORD" | chpasswd usermod -aG sudo {username}

5. Deployment des SSH-Schlüssels

Wir schreiben Ihren öffentlichen Schlüssel, den Sie in Schritt 1 kopiert haben, auf den Server.

bash
mkdir -p /home/{username}/.ssh echo "{PUBLIC_KEY_CONTENT}" > /home/{username}/.ssh/authorized_keys chmod 700 /home/{username}/.ssh chmod 600 /home/{username}/.ssh/authorized_keys chown -R {username}:{username} /home/{username}/.ssh

6. Login-Überprüfung

Wichtig

VERPFLICHTENDER CHECKPOINT Schließen Sie die root-Sitzung NICHT! Öffnen Sie ein neues Terminalfenster auf Ihrem PC und versuchen Sie, sich über den Schlüssel anzumelden. Erst nach erfolgreichem Login können Sie fortfahren.

Prüfen Sie, ob sudo funktioniert (das System sollte nach dem Passwort fragen, das Sie in Schritt 4 festgelegt haben, und "root" ausgeben):

bash
ssh -i ~/.ssh/{nickname}_key {username}@{SERVER_IP} sudo whoami

7. Firewall (UFW)

Führen Sie alle folgenden Befehle als Ihr neuer Benutzer aus (mit sudo). Wir konfigurieren die Richtlinie „Alle eingehenden Verbindungen blockieren, außer SSH, HTTP und HTTPS“.

bash
sudo apt install -y ufw sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw --force enable sudo ufw status

8. Kernel-Härtung (sysctl)

Anwendung von Parametern zum Schutz vor Netzwerkangriffen.

bash
sudo tee /etc/sysctl.d/99-security.conf << 'EOF' net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.tcp_syncookies = 1 net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.log_martians = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 EOF sudo sysctl -p /etc/sysctl.d/99-security.conf

9. Basispakete und Zeit

Eine präzise Zeit ist kritisch für Logs, SSL-Zertifikate und fail2ban.

bash
sudo apt install -y chrony curl wget git unzip net-tools sudo systemctl enable chrony

10. Lokale SSH-Konfiguration

Einrichtung eines Shortcuts auf Ihrem lokalen PC, damit Sie sich künftig mit dem kurzen Befehl ssh {nickname} verbinden können.

bash
mkdir -p ~/.ssh && touch ~/.ssh/config && chmod 600 ~/.ssh/config cat >> ~/.ssh/config << 'EOF' Host {nickname} HostName {SERVER_IP} User {username} IdentityFile ~/.ssh/{nickname}_key IdentitiesOnly yes EOF

11. Sicherheitsüberprüfung

Stellen Sie sicher, dass der Shortcut vom lokalen PC aus funktioniert und die grundlegenden Schutzmechanismen aktiviert sind.

bash
ssh {nickname} sudo ufw status sysctl net.ipv4.tcp_syncookies

12. Abschließende Absicherung

Installation von Schutz gegen Brute-Force-Angriffe (fail2ban) sowie endgültige Deaktivierung der Passwort-Login-Methode und des root-Logins.

bash
sudo apt install -y fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo systemctl enable fail2ban sudo systemctl start fail2ban sudo tee /etc/ssh/sshd_config.d/99-hardening.conf << 'EOF' PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes AuthenticationMethods publickey EOF sudo sshd -t && sudo systemctl restart ssh
Tipp

Fertig! Der Server ist vollständig eingerichtet und abgesichert.

Dieser Leitfaden ist komplett kostenlos. Wenn er Ihnen einen Abend erspart hat, können Sie das Wachstum des Projekts unterstützen.
Autor unterstützen