Reihenfolge ist alles
Die meisten Aussperrungen passieren, weil jemand die Firewall aktiviert, bevor der SSH-Zugang gesichert ist. Deshalb hier eine Reihenfolge, bei der das nicht passieren kann.
1. System aktualisieren
apt update && apt upgrade -y
Das Image ist selten taggenau aktuell. Erst updaten, dann alles andere.
2. Zeitzone und Uhrzeit
timedatectl set-timezone Europe/Berlin
timedatectl
Klingt nebensächlich, ist es nicht: Alle Logeinträge tragen diese Zeit. Wer später einen Vorfall nachvollziehen will, ist froh über Zeitstempel in der eigenen Zeitzone.
3. Benutzer anlegen statt als root arbeiten
adduser max
usermod -aG sudo max
Danach mit dem neuen Benutzer arbeiten und sudo nutzen, wenn Rechte nötig sind. Das verhindert, dass ein Tippfehler gleich das System zerlegt.
4. SSH-Schlüssel hinterlegen — und testen
Den öffentlichen Schlüssel in ~/.ssh/authorized_keys des neuen Benutzers eintragen. Und jetzt der wichtigste Schritt: Öffne ein zweites Terminal und melde dich damit an, bevor du irgendetwas anderes änderst. Erst wenn das funktioniert, geht es weiter.
5. Passwort-Login abschalten
Jetzt — und keinen Schritt früher — kannst du in /etc/ssh/sshd_config setzen:
PasswordAuthentication no
PermitRootLogin prohibit-password
Danach prüfen und neu laden, wieder mit offener zweiter Sitzung:
sshd -t && systemctl reload ssh
6. Firewall
Zuerst SSH erlauben, dann erst aktivieren. Diese Reihenfolge ist nicht verhandelbar:
ufw allow OpenSSH
ufw allow 80,443/tcp
ufw enable
Wer den Firewall-Schalter im Nytrix-Panel nutzt, hat es einfacher: Die Regeln greifen dort auf Host-Ebene, und du kannst dich über das Panel nicht dauerhaft aussperren.
7. Automatische Sicherheitsupdates
apt install unattended-upgrades
dpkg-reconfigure --priority=low unattended-upgrades
Die meisten Server werden nicht durch raffinierte Angriffe übernommen, sondern durch Lücken, für die seit Monaten ein Update bereitliegt.
8. Fail2ban
apt install fail2ban
systemctl enable --now fail2ban
Auch mit Schlüssel-Login sinnvoll: Es hält die Logs sauber und bremst automatisierte Scanner aus.
9. Erst jetzt die eigentliche Anwendung
Webserver, Datenbank, Docker — was auch immer der Server tun soll, kommt zum Schluss. Ein Server, der abgesichert ist, bevor der erste Dienst läuft, hat nie ein offenes Zeitfenster.
10. Notieren, was du getan hast
Ein paar Zeilen in einer Textdatei: welche Dienste laufen, welche Ports offen sind, wo die Konfiguration liegt. In sechs Monaten wirst du dir dafür dankbar sein.