Debian-vServer einrichten und absichern: Schritt-für-Schritt für Einsteiger (Teil 1 von 3)
Serie „Eigener Server – von 0 auf sicher" · 3 Teile:
- Debian-vServer einrichten & absichern ← Sie sind hier
- Froxlor installieren & konfigurieren
- E-Mail richtig einrichten: SPF, DKIM & DMARC
Diese Anleitung ist Teil 1. Sie bringt Ihren frisch gemieteten Server auf einen sicheren Grundzustand. Auf diesem Server installieren wir in Teil 2 das Verwaltungs-Panel Froxlor und richten in Teil 3 den E-Mail-Versand ein.

Inhalt
- Voraussetzungen
- Schritt 1: Per SSH mit dem Server verbinden
- Schritt 2: Das System aktualisieren
- Schritt 3: Hostname, Zeitzone und Sprache einstellen
- Schritt 4: Einen Benutzer mit sudo-Rechten anlegen
- Schritt 5: SSH absichern (Root-Login aus, Key-Login)
- Schritt 6: Firewall einrichten (ufw)
- Schritt 7: Brute-Force-Schutz mit Fail2ban
- Schritt 8: Automatische Sicherheitsupdates
- Checkliste: Ist Ihr Server sicher?
- Häufige Fragen (FAQ)
- Wie geht es weiter?
- Quellen
Sie haben gerade einen vServer (VPS) gemietet und sich gefragt: „Und jetzt?" Genau da setzen wir an. Diese Anleitung ist für absolute Einsteiger geschrieben. Wir erklären in einfachen Worten, was wir tun und warum – und Sie können jeden Befehl einfach kopieren und einfügen. Am Ende haben Sie einen aktuellen, gegen die häufigsten Angriffe geschützten Server.
Wir verwenden Debian 12 (Bookworm), eines der beliebtesten und stabilsten Server-Betriebssysteme. Wenn Sie Ubuntu nutzen, funktionieren fast alle Befehle identisch.
Wichtig: Ersetzen Sie in allen Befehlen die Platzhalter durch Ihre echten Werte –
SERVER-IPdurch die IP-Adresse Ihres Servers (steht in der Bestätigungs-E-Mail Ihres Anbieters) undbenutzernamedurch einen Namen Ihrer Wahl.
Voraussetzungen
- Ein gemieteter vServer/VPS mit Debian 12. Falls Sie noch keinen haben: Anbieter sind z. B. IONOS, Hetzner oder webtropia.
- Die IP-Adresse und das Root-Passwort Ihres Servers (vom Anbieter per E-Mail erhalten).
- Ein Terminal auf Ihrem eigenen Computer: unter macOS und Linux ist es vorinstalliert („Terminal"), unter Windows nutzen Sie die PowerShell (vorinstalliert) oder PuTTY.
Mehr brauchen Sie nicht. Los geht's.
Schritt 1: Per SSH mit dem Server verbinden
„SSH" ist eine verschlüsselte Fernverbindung zu Ihrem Server – Sie tippen Befehle auf Ihrem Computer, ausgeführt werden sie auf dem Server. Öffnen Sie Ihr Terminal und verbinden Sie sich als Benutzer root:
ssh root@SERVER-IP
Beim ersten Mal werden Sie gefragt, ob Sie dem Server vertrauen – tippen Sie yes und drücken Sie Enter. Danach geben Sie das Root-Passwort ein (die Eingabe ist unsichtbar, das ist normal). Sind Sie verbunden, sieht die Zeile etwa so aus:
root@ihr-server:~#
Glückwunsch – Sie sind drauf. (Eine ausführliche Einführung zu SSH gibt es im Debian-Wiki.)
Schritt 2: Das System aktualisieren
Ein frisch installierter Server enthält oft veraltete Pakete mit bekannten Sicherheitslücken. Der allererste Schritt ist deshalb immer: alles aktualisieren. Mit diesem Befehl lädt der Server die Liste verfügbarer Updates, installiert sie, entfernt nicht mehr benötigte Pakete und räumt auf:
apt update && apt full-upgrade -y && apt autoremove -y && apt clean
Das kann ein paar Minuten dauern. Falls dabei ein Hinweis erscheint, dass ein Neustart nötig ist, starten Sie den Server neu:
reboot
Nach dem Neustart sind Sie kurz getrennt. Warten Sie ~30 Sekunden und verbinden Sie sich erneut mit ssh root@SERVER-IP.
Schritt 3: Hostname, Zeitzone und Sprache einstellen
Damit Logs korrekte Zeitstempel haben und der Server einen sauberen Namen trägt, stellen wir drei Kleinigkeiten ein.
Hostname (ein Name für Ihren Server, z. B. web01):
hostnamectl set-hostname web01
Zeitzone auf Deutschland setzen:
timedatectl set-timezone Europe/Berlin
Sprachpakete (Locales) installieren und Deutsch/UTF-8 erzeugen:
apt install -y locales
sed -i 's/# de_DE.UTF-8/de_DE.UTF-8/' /etc/locale.gen
locale-gen
Prüfen Sie das Ergebnis mit:
timedatectl
Dort sollte „Time zone: Europe/Berlin" stehen.
Schritt 4: Einen Benutzer mit sudo-Rechten anlegen
Dauerhaft als root zu arbeiten ist gefährlich – ein Tippfehler kann das ganze System beschädigen. Besser: ein normaler Benutzer, der nur bei Bedarf mit dem vorangestellten Wort sudo Administrator-Rechte bekommt.
Legen Sie den Benutzer an (ersetzen Sie benutzername) und vergeben Sie ein starkes Passwort, wenn Sie danach gefragt werden:
adduser benutzername
Die weiteren Abfragen (Name, Telefon …) können Sie mit Enter überspringen. Jetzt geben Sie dem Benutzer sudo-Rechte:
usermod -aG sudo benutzername
Testen Sie es, bevor Sie weitermachen. Öffnen Sie ein zweites Terminal-Fenster und melden Sie sich mit dem neuen Benutzer an:
ssh benutzername@SERVER-IP
Prüfen Sie, ob sudo funktioniert:
sudo whoami
Wenn nach Passworteingabe root erscheint, ist alles korrekt. Lassen Sie dieses zweite Fenster offen – wir brauchen es im nächsten Schritt als Sicherheitsnetz.
Schritt 5: SSH absichern (Root-Login aus, Key-Login)
Jetzt machen wir den Fernzugang deutlich sicherer. Zwei Maßnahmen: Login per SSH-Schlüssel statt Passwort und kein direkter Root-Login mehr.
Achtung – Aussperr-Gefahr: In diesem Schritt verändern wir den SSH-Zugang. Lassen Sie das funktionierende Fenster aus Schritt 4 unbedingt offen. So kommen Sie wieder rein, falls etwas schiefgeht.
Windows-Hinweis – brauche ich PuTTY und Pageant? Nicht zwingend. Windows 10/11 bringt OpenSSH bereits mit, die folgenden Befehle (
ssh-keygen,ssh) funktionieren direkt in der PowerShell – genau wie unter macOS/Linux. Wenn Sie lieber die PuTTY-Werkzeuge nutzen (oder ein älteres Windows haben), geht es so:
>
1. Schlüssel erzeugen mit PuTTYgen: „Type of key" auf EdDSA → Ed25519 stellen, Generate klicken, die Maus bewegen. Den privaten Schlüssel als
.ppkspeichern; den angezeigten öffentlichen Schlüssel (Feld „Public key for pasting…") in die Zwischenablage kopieren. 2. Den öffentlichen Schlüssel auf dem Server in die Datei~/.ssh/authorized_keysIhres Benutzers eintragen (eine Zeile). 3. Den privaten Schlüssel mit Pageant (dem PuTTY-Schlüssel-Agenten) laden – so müssen Sie ihn nicht bei jeder Verbindung erneut auswählen. 4. Mit PuTTY verbinden (Host:benutzername@SERVER-IP).
>
PuTTYgen und Pageant sind im PuTTY-Paket enthalten: putty.org. Funktional ist beides gleichwertig – wir bleiben unten beim eingebauten OpenSSH, weil es weniger Schritte braucht.
5.1 Schlüssel auf Ihrem eigenen Computer erzeugen. Führen Sie diesen Befehl in einem Terminal auf Ihrem PC aus (nicht auf dem Server) und bestätigen Sie die Fragen mit Enter:
ssh-keygen -t ed25519 -C "mein-server"
5.2 Den öffentlichen Schlüssel auf den Server kopieren (ebenfalls von Ihrem PC):
ssh-copy-id benutzername@SERVER-IP
Unter Windows ohne ssh-copy-id nutzen Sie stattdessen:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh benutzername@SERVER-IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
5.3 Testen: Melden Sie sich neu an – jetzt sollte kein Passwort mehr abgefragt werden:
ssh benutzername@SERVER-IP
5.4 Passwort-Login und Root-Login abschalten. Bearbeiten Sie auf dem Server die SSH-Konfiguration mit dem Editor nano:
sudo nano /etc/ssh/sshd_config
Suchen Sie die folgenden Zeilen (oder fügen Sie sie hinzu) und setzen Sie sie genau so:
PermitRootLogin no
PasswordAuthentication no
Speichern mit Strg+O, Enter, schließen mit Strg+X. Danach den SSH-Dienst neu laden:
sudo systemctl restart ssh
Wichtig: Schließen Sie Ihr aktuelles Fenster noch nicht. Öffnen Sie ein neues und testen Sie, dass der Login als benutzername weiterhin klappt – und dass ssh root@SERVER-IP jetzt abgelehnt wird. Erst dann ist der Schritt geschafft. Hintergründe dazu im Debian-Wiki zu SSH.
Schritt 6: Firewall einrichten (ufw)
Eine Firewall blockiert alle Netzwerk-Ports außer den wenigen, die Sie wirklich brauchen. Wir nutzen ufw („Uncomplicated Firewall") – einfach und einsteigerfreundlich.
Installieren und Grundregeln setzen (alles eingehende blocken, ausgehend erlauben):
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
Den SSH-Zugang vor dem Aktivieren erlauben – sonst sperren Sie sich aus:
sudo ufw allow OpenSSH
Für den späteren Webserver (Froxlor in Teil 2) öffnen wir auch Web-Ports:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Jetzt die Firewall aktivieren und den Status prüfen:
sudo ufw enable
sudo ufw status verbose
Bestätigen Sie die Nachfrage mit y. In der Statusliste sollten nur SSH (22), 80 und 443 als erlaubt auftauchen. Details zu ufw stehen im Ubuntu-Server-Guide.
Schritt 7: Brute-Force-Schutz mit Fail2ban
Angreifer probieren automatisiert tausende Passwörter durch. Fail2ban erkennt zu viele Fehlversuche und sperrt die angreifende IP-Adresse vorübergehend. Installieren und aktivieren:
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
Wir legen eine eigene Konfiguration an, damit Updates sie nicht überschreiben:
sudo nano /etc/fail2ban/jail.local
Fügen Sie folgenden Inhalt ein (sperrt eine IP nach 5 Fehlversuchen für 1 Stunde):
[sshd]
enabled = true
maxretry = 5
bantime = 1h
findtime = 10m
Speichern (Strg+O, Enter, Strg+X) und den Dienst neu starten:
sudo systemctl restart fail2ban
Den Status können Sie jederzeit ansehen mit:
sudo fail2ban-client status sshd
Schritt 8: Automatische Sicherheitsupdates
Sicherheitslücken werden laufend entdeckt. Damit Ihr Server wichtige Patches automatisch einspielt, richten wir unattended-upgrades ein:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Wählen Sie in der Abfrage „Yes". Das war's – ab jetzt installiert der Server Sicherheitsupdates selbstständig. Mehr dazu im Debian-Wiki zu UnattendedUpgrades.
Checkliste: Ist Ihr Server sicher?
Gehen Sie vor dem Weitermachen kurz durch:
- [ ] System ist aktuell (
apt update && apt full-upgrade) - [ ] Hostname, Zeitzone (
Europe/Berlin) und Locale gesetzt - [ ] Eigener Benutzer mit
sudo-Rechten funktioniert - [ ] Login per SSH-Schlüssel funktioniert, Passwort-Login ist aus
- [ ]
ssh root@SERVER-IPwird abgelehnt - [ ] Firewall (ufw) aktiv, nur 22/80/443 offen
- [ ] Fail2ban läuft
- [ ] Automatische Sicherheitsupdates aktiv
Häufige Fragen (FAQ)
Ich habe mich ausgesperrt – was nun? Fast jeder Anbieter bietet eine „VNC-" oder „Konsolen"-Funktion im Kundenbereich, mit der Sie sich auch ohne SSH direkt anmelden und Einstellungen zurücknehmen können.
Muss ich SSH-Schlüssel nutzen oder reicht ein Passwort? Schlüssel sind deutlich sicherer und werden dringend empfohlen. Wenn Sie unbedingt beim Passwort bleiben, lassen Sie PasswordAuthentication auf yes – nutzen Sie dann aber ein sehr langes Passwort und unbedingt Fail2ban.
Funktioniert das auch unter Ubuntu? Ja, nahezu identisch. Lediglich bei sehr alten Versionen können einzelne Paketnamen abweichen.
Brauche ich Vorkenntnisse in Linux? Nein. Wenn Sie die Befehle kopieren und die Platzhalter ersetzen, kommen Sie durch. Etwas Geduld beim ersten Mal hilft.
Wie geht es weiter?
Ihr Server steht jetzt sicher da. Im nächsten Teil installieren wir Froxlor, ein kostenloses Verwaltungs-Panel, mit dem Sie Domains, Webseiten, SSL-Zertifikate und Datenbanken bequem über eine Oberfläche verwalten – ganz ohne Konsole:
👉 Teil 2: Froxlor installieren & konfigurieren
Und in Teil 3: E-Mail richtig einrichten: SPF, DKIM & DMARC sorgen wir dafür, dass Ihre E-Mails sicher zugestellt werden.
Übrigens: Wenn Sie lieber Software entwickeln lassen oder individuelle Server-/Web-Lösungen brauchen, hilft Ihnen PepperTools gern weiter.
Quellen
- Debian 12 (Bookworm) – offizielle Seite
- Debian-Wiki: SSH
- Debian-Wiki: UnattendedUpgrades
- Ubuntu Server Guide: Firewalls (ufw)
- Fail2ban (offizielles Projekt)
Stand: Juni 2026. Befehle und Paketnamen können sich mit neuen Versionen ändern – maßgeblich ist die jeweils offizielle Dokumentation.
Rechnungen einfacher erledigen
Easy Invoice bündelt Angebote, Rechnungen und Kundenverwaltung in der Cloud.
Easy Invoice testen