Die sechs Schutzschichten
Was bereits steht, bevor Ihre Anwendung überhaupt läuft — und die eine Schicht, die Ihnen bleibt.
Firewall (ufw)
Offen sind nur 22, 80, 443.
SSH nur per Schlüssel
Kein Passwort-Login · fail2ban.
Coolify nie öffentlich
Nur über den SSH-Tunnel.
Jede Route gewollt öffentlich oder angemeldet
Zugriff serverseitig. Kein Serverskript kann prüfen, ob Ihre Route die richtige Person durchlässt — dafür gibt es dfx check und Station 02.
Nur als Umgebungsvariablen in Coolify
gitleaks vor dem Commit.
Datenbank nur im internen Netz
Sicherung verschlüsselt und außerhalb des Servers — Station 05.
Die ganze Grafik auf einmal
Warum das unsichtbar bleibt
Sicherheit, die man einrichten muss, wird nicht eingerichtet. Deshalb steht in dieser Umgebung alles, was mechanisch möglich ist, bevor die erste Anwendung läuft — gesetzt von bootstrap.sh, geprüft von check.sh, ohne eine Entscheidung, die jemand treffen müsste.
Für diesen Kurs heißt das: Fünf der sechs Schichten sind bereits gesetzt, wenn Sie aus Kurs 1 kommen. Diese Phase ist deshalb keine Bauanleitung, sondern eine Abnahme — Sie prüfen nach, dass steht, was stehen soll.
sudo bash check.sh --domain apps.example.de
- Prüfliste — nach dem Lauf von check.sh
WarumWarum Coolify nie öffentlich erreichbar ist
Die Coolify-Oberfläche kann alles: Anwendungen starten, Geheimnisse lesen, ein Terminal auf dem Server öffnen. Wer sie erreicht und ein Passwort errät, hat den ganzen Server.
Im Januar 2026 wurden 52.890 öffentlich erreichbare Coolify-Instanzen bekannt, der größte Teil davon angreifbar — zum selben Zeitpunkt, zu dem elf kritische Lücken geschlossen wurden. Der Aufwand, dagegen etwas zu tun, ist ein SSH-Tunnel pro Sitzung.
Das ist der Grund, warum Kurs 1, Station 03 den Tunnel nicht als Umweg beschreibt, sondern als Voreinstellung.
TiefeWas fail2ban tatsächlich tut — und wo es stört
fail2ban liest das SSH-Protokoll mit und sperrt Adressen, von denen mehrere Anmeldeversuche fehlschlagen. Gegen die dauernden automatisierten Versuche aus dem Netz ist das wirksam und kostenlos.
Der Nebeneffekt, den man kennen muss: Coolify verbindet sich intern per SSH mit sich selbst, um den eigenen Server zu verwalten. Diese Verbindungen zählt fail2ban mit — allein das Wechseln zwischen Reitern erzeugt mehrere. Nach vier Versuchen in zehn Minuten ist die Docker-interne Adresse gesperrt, und Coolify meldet „Connection refused“.
Deshalb steht in /etc/fail2ban/jail.d/devenv.conf ein ignoreip für die Docker-internen Bereiche. Öffentliche Adressen bleiben davon unberührt — das sind echte Angreifer.