Kapitel 3 · 3.4
Eine Firewall mit ufw (oder nftables)
Im Netzwerk von WebOké ist der gesamte eingehende Datenverkehr zu Ihrem VPS offen. Was hereinkommt, bestimmen Sie selbst mit einer Firewall auf Ihrem Server. Damit lassen Sie nur zu, was nötig ist, zum Beispiel SSH und Ihre Website.
Hinweis: Geben Sie SSH frei, bevor Sie die Firewall einschalten. Andernfalls sperren Sie sich selbst aus. Passiert es trotzdem, schalten Sie die Firewall über die Konsole aus (siehe Ausgesperrt: Sie kommen nicht mehr auf Ihren Server).
ufw unter Debian und Ubuntu
ufw ist eine einfache Schicht über der Firewall von Linux. Unter Ubuntu ist ufw bereits vorhanden, unter Debian installieren Sie es:
anna@web1:~$ sudo apt install ufw
anna@web1:~$ sudo ufw allow OpenSSH
anna@web1:~$ sudo ufw allow 80,443/tcp
anna@web1:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
anna@web1:~$ sudo ufw status verbose
Status: active
Default: deny (incoming), allow (outgoing), disabled (routed)
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80,443/tcp ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
80,443/tcp (v6) ALLOW IN Anywhere (v6)
Alles, was Sie nicht erlauben, wird abgewiesen. Die Regeln gelten automatisch auch für IPv6. Die Ports 80 und 443 benötigen Sie nur für eine Website (Kapitel 5). Verwenden Sie Caddy mit HTTP/3, geben Sie auch sudo ufw allow 443/udp frei.
Nützliche ufw-Befehle
| Befehl | Was bewirkt er? |
|---|---|
sudo ufw status numbered | Die Regeln mit Nummer anzeigen |
sudo ufw delete 3 | Regel 3 entfernen |
sudo ufw allow from 198.51.100.7 to any port 22 proto tcp | Einen Port nur für eine IP-Adresse freigeben |
sudo ufw limit OpenSSH | Eine Adresse, die innerhalb von 30 Sekunden 6 oder mehr Verbindungen aufbaut, vorübergehend abweisen |
sudo ufw disable | Die Firewall ausschalten (zum Beispiel über die Konsole, wenn Sie ausgesperrt sind) |
Ohne ufw: nftables
Unter Debian ist nftables die Firewall unter der Haube. Möchten Sie ufw nicht verwenden, schreiben Sie die Regeln selbst in /etc/nftables.conf. Eine kleine Grundlage für IPv4 und IPv6 gemeinsam:
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
ct state established,related accept
iif "lo" accept
meta l4proto { icmp, ipv6-icmp } accept
tcp dport { 22, 80, 443 } accept
}
}
anna@web1:~$ sudo nft -c -f /etc/nftables.conf
anna@web1:~$ sudo systemctl enable --now nftables
Mit nft -c prüfen Sie die Datei zuerst. Verwenden Sie ufw oder nftables, nicht beide gleichzeitig.
Unter AlmaLinux und Rocky Linux ist firewalld bereits vorhanden: sudo firewall-cmd --permanent --add-service=http --add-service=https und sudo firewall-cmd --reload. SSH ist dort standardmäßig freigegeben.
Tipp: Verwenden Sie Docker? Ports, die Sie mit Docker veröffentlichen, umgehen ufw. Lesen Sie deshalb Docker und die Firewall: Ports sicher veröffentlichen.
