Firewall (UFW)¶
UFW (Uncomplicated Firewall) ist ein benutzerfreundliches Frontend für iptables.
Warum eine Firewall?¶
Offene Ports = Angriffsfläche
Jeder offene Port ist ein potenzieller Angriffspunkt. Die Firewall schließt alle Ports und öffnet nur die tatsächlich benötigten.
flowchart LR
subgraph Internet
A[Angreifer]
B[Legitimer Traffic]
end
subgraph Firewall
C{UFW}
end
subgraph Server
D[SSH :2222]
E[HTTP :80]
F[HTTPS :443]
G[Andere Ports]
end
A -->|Blockiert| C
B -->|Erlaubt| C
C -->|Port 2222| D
C -->|Port 80| E
C -->|Port 443| F
C -.->|Blockiert| G
1. UFW installieren¶
UFW ist bei Ubuntu meist vorinstalliert. Falls nicht:
2. Default-Policies setzen¶
Reihenfolge beachten
Wichtig: Konfiguriere zuerst die SSH-Regel, bevor du UFW aktivierst! Sonst sperrst du dich aus.
Setze die Standard-Policies:
# Alle eingehenden Verbindungen blockieren
sudo ufw default deny incoming # (1)!
# Alle ausgehenden Verbindungen erlauben
sudo ufw default allow outgoing # (2)!
- Standardmäßig wird ALLES blockiert - "Deny by Default"
- Der Server kann nach außen kommunizieren (Updates, etc.)
3. SSH-Regel hinzufügen¶
KRITISCH: VOR dem Aktivieren!
Diese Regel muss vor dem Aktivieren von UFW gesetzt werden!
SSH¶
Aktiviere den Zugriff via SSH:
Warum kein Rate-Limit?
Eigentlich wäre hier ein Rate-Limit sinnvoll, da somit automatisierte Brute-Force-Angriffe gestoppt werden. Jedoch verwendet Coolify selbst den SSH Port für das Management der Server. Dabei werden häufig neue Verbindungen aufgebaut, was dann zur automatisierten Blockierung führt.
TODO: Anfragen aus dem Internet limitieren, aber interne Zugriff von Coolify nicht.
4. HTTP/HTTPS-Regeln hinzufügen¶
Für Coolify und Web-Anwendungen:
# HTTP (für Let's Encrypt und Redirects)
sudo ufw allow 80/tcp comment 'HTTP'
# HTTPS (verschlüsselter Traffic)
sudo ufw allow 443/tcp comment 'HTTPS'
5. UFW aktivieren¶
Letzte Warnung
Stelle sicher, dass die SSH-Regel korrekt konfiguriert ist!
Bestätige mit y:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
6. Status überprüfen¶
Zeige den aktuellen Firewall-Status:
Erwartete Ausgabe:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
2222/tcp ALLOW Anywhere # SSH
80/tcp ALLOW Anywhere # HTTP
443/tcp ALLOW Anywhere # HTTPS
2222/tcp (v6) ALLOW Anywhere (v6) # SSH
80/tcp (v6) ALLOW Anywhere (v6) # HTTP
443/tcp (v6) ALLOW Anywhere (v6) # HTTPS
Zusammenfassung¶
Nach Abschluss dieses Abschnitts:
- UFW installiert und konfiguriert
- Default-Policy: deny incoming, allow outgoing
- SSH-Port erlaubt
- HTTP/HTTPS für Web-Traffic erlaubt
- Firewall aktiviert