sammlung:ufw
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| sammlung:ufw [2026/01/06 10:32] – [Weitere Informationen] Branislav Zeljak | sammlung:ufw [2026/01/31 09:15] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ===== ufw (Uncomplicated | + | ===== UFW Firewall ===== |
| - | ufw ist eine benutzerfreundliche | + | **Kurzfassung: |
| - | ==== Merkmale | + | ==== Übersicht |
| + | UFW ist ein vereinfachtes Frontend für iptables/ | ||
| - | * Einfache Syntax | + | ==== iptables vs. nftables Backend ==== |
| - | * Standardmäßig auf Ubuntu verfügbar | + | |
| - | ==== Wichtige Befehle ==== | + | UFW kann auf zwei verschiedenen Firewall-Backends arbeiten: |
| - | < | + | **iptables (klassisch): |
| + | * Traditionelles Linux-Firewall-System seit Kernel 2.4 | ||
| + | * Besteht aus mehreren Tools: iptables, ip6tables, arptables, ebtables | ||
| + | * Weit verbreitet und bewährt | ||
| + | * Performance-Nachteile bei vielen Regeln | ||
| + | |||
| + | **nftables (modern): | ||
| + | * Nachfolger von iptables seit Kernel 3.13 | ||
| + | * Vereinheitlichte Syntax für IPv4, IPv6, ARP, Bridge | ||
| + | * Bessere Performance und Skalierbarkeit | ||
| + | * Wird zum neuen Standard | ||
| + | |||
| + | === Backend feststellen === | ||
| + | < | ||
| + | # Aktives Firewall-Backend erkennen | ||
| + | sudo update-alternatives --display iptables | ||
| + | |||
| + | # Ausgabe zeigt: | ||
| + | # iptables - auto mode | ||
| + | # link best version is / | ||
| + | # link currently points to / | ||
| + | # Alternativen: | ||
| + | # / | ||
| + | # / | ||
| + | |||
| + | # Alternative Prüfung via Regeln | ||
| + | sudo iptables -V # Version anzeigen | ||
| + | sudo nft list ruleset | ||
| + | |||
| + | # Welche Kernel-Module geladen sind | ||
| + | lsmod | grep -E " | ||
| + | # ip_tables | ||
| + | # nf_tables | ||
| + | </ | ||
| + | |||
| + | === Backend wechseln === | ||
| + | <code bash> | ||
| + | # Zu nftables-Backend wechseln (empfohlen für neue Systeme) | ||
| + | sudo update-alternatives --set iptables / | ||
| + | sudo update-alternatives --set ip6tables / | ||
| + | |||
| + | # Zu klassischem iptables zurück | ||
| + | sudo update-alternatives --set iptables / | ||
| + | sudo update-alternatives --set ip6tables / | ||
| + | |||
| + | # Nach dem Wechsel UFW neu starten | ||
| + | sudo systemctl restart ufw | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | **Hinweis: | ||
| + | </ | ||
| + | |||
| + | ==== Voraussetzungen ==== | ||
| + | * UFW installiert (meist auf Ubuntu/ | ||
| + | * Root-Privilegien oder Sudo-Zugriff | ||
| + | * Kenntnis von Ports und Protokollen (TCP/UDP) | ||
| + | * SSH sollte vor UFW-Aktivierung freigegeben werden! | ||
| + | |||
| + | ==== Anleitung ==== | ||
| + | |||
| + | === Installation und Aktivierung === | ||
| + | <code bash> | ||
| + | # UFW installieren (wenn nicht vorhanden) | ||
| + | sudo apt install ufw | ||
| + | |||
| + | # UFW Status prüfen | ||
| sudo ufw status | sudo ufw status | ||
| - | sudo ufw enable | + | |
| + | # WICHTIG: SSH vor Aktivierung erlauben | ||
| sudo ufw allow 22/tcp | sudo ufw allow 22/tcp | ||
| - | sudo ufw deny 80/tcp | + | |
| + | # UFW aktivieren | ||
| + | sudo ufw enable | ||
| + | |||
| + | # UFW deaktivieren | ||
| sudo ufw disable | sudo ufw disable | ||
| + | |||
| + | # UFW und alle Regeln zurücksetzen | ||
| + | sudo ufw reset | ||
| </ | </ | ||
| - | ==== Beispiel: Freigabe von FTP, HTTP und SSH (reboot-fest) ==== | + | <note warning> |
| - | < | + | **KRITISCH:** Bevor UFW aktiviert wird, IMMER SSH (Port 22) freigeben! Sonst verliert man Zugriff auf Remote-Systeme. |
| - | sudo ufw allow 22/tcp # SSH | + | </ |
| - | sudo ufw allow 80/tcp | + | |
| - | sudo ufw allow 21/tcp | + | === Ports und Services freigeben |
| + | < | ||
| + | # Spezifischen Port freigeben | ||
| + | sudo ufw allow 80/tcp | ||
| + | sudo ufw allow 443/tcp | ||
| + | |||
| + | # Port mit UDP freigeben | ||
| + | sudo ufw allow 53/udp | ||
| + | |||
| + | # Port-Bereich freigeben | ||
| + | sudo ufw allow 6000:6007/tcp | ||
| + | |||
| + | # Service nach Namen freigeben | ||
| + | sudo ufw allow ssh | ||
| + | sudo ufw allow http | ||
| + | sudo ufw allow https | ||
| + | sudo ufw allow dns | ||
| + | |||
| + | # Service auf spezifischem Interface | ||
| + | sudo ufw allow in on eth0 to any port 22 | ||
| </ | </ | ||
| - | Hinweis: ufw-Regeln sind automatisch reboot-fest. | ||
| - | ==== Weitere Informationen ==== | + | === Regeln blockieren und löschen |
| + | <code bash> | ||
| + | # Port blockieren | ||
| + | sudo ufw deny 23/tcp | ||
| + | # Regel löschen | ||
| + | sudo ufw delete allow 80/tcp | ||
| + | |||
| + | # Regel nach Nummer löschen | ||
| + | sudo ufw delete 3 | ||
| + | |||
| + | # Alle Regeln mit Nummern anzeigen | ||
| + | sudo ufw status numbered | ||
| + | |||
| + | # Eingehenden Traffic blockieren (default) | ||
| + | sudo ufw default deny incoming | ||
| + | |||
| + | # Ausgehenden Traffic erlauben | ||
| + | sudo ufw default allow outgoing | ||
| + | </ | ||
| + | |||
| + | === IP-Adressen und Netzwerke === | ||
| + | <code bash> | ||
| + | # Traffic von bestimmter IP erlauben | ||
| + | sudo ufw allow from 192.168.1.100 | ||
| + | |||
| + | # Traffic von IP mit spezifischem Port | ||
| + | sudo ufw allow from 192.168.1.100 to any port 22 | ||
| + | |||
| + | # Traffic vom ganzen Netzwerk erlauben | ||
| + | sudo ufw allow from 192.168.1.0/ | ||
| + | |||
| + | # IPv6-Adresse | ||
| + | sudo ufw allow from 2001:db8::1 | ||
| + | |||
| + | # Traffic von Netzwerk auf Port | ||
| + | sudo ufw allow in on eth0 from 192.168.1.0/ | ||
| + | |||
| + | # Traffic blockieren | ||
| + | sudo ufw deny from 192.168.1.50 | ||
| + | </ | ||
| + | |||
| + | === Firewall-Richtlinien === | ||
| + | <code bash> | ||
| + | # Standardrichtlinie anzeigen | ||
| + | sudo ufw status verbose | ||
| + | |||
| + | # Richtlinie ändern | ||
| + | sudo ufw default deny incoming | ||
| + | sudo ufw default allow outgoing | ||
| + | sudo ufw default reject routed | ||
| + | |||
| + | # Detaillierte Anzeige mit Nummern | ||
| + | sudo ufw status numbered | ||
| + | </ | ||
| + | |||
| + | === Logging und Debugging === | ||
| + | <code bash> | ||
| + | # Logging aktivieren | ||
| + | sudo ufw logging on | ||
| + | |||
| + | # Logging Level ändern | ||
| + | sudo ufw logging high | ||
| + | |||
| + | # Logs anzeigen | ||
| + | sudo tail -f / | ||
| + | |||
| + | # Systemd-Logs | ||
| + | sudo journalctl -u ufw -n 50 | ||
| + | |||
| + | # Raw iptables Regeln | ||
| + | sudo iptables -L -n -v | ||
| + | |||
| + | # Wenn nftables Backend, auch nftables Regeln prüfen | ||
| + | sudo nft list ruleset | ||
| + | </ | ||
| + | |||
| + | === Häufige Anwendungsszenarien === | ||
| + | |||
| + | **Web-Server (HTTP + HTTPS):** | ||
| + | <code bash> | ||
| + | sudo ufw allow ssh | ||
| + | sudo ufw allow http | ||
| + | sudo ufw allow https | ||
| + | sudo ufw enable | ||
| + | </ | ||
| + | |||
| + | **SSH mit beschränktem Zugriff:** | ||
| + | <code bash> | ||
| + | sudo ufw allow from 192.168.1.0/ | ||
| + | sudo ufw deny 22/tcp | ||
| + | sudo ufw enable | ||
| + | </ | ||
| + | |||
| + | **Mail-Server: | ||
| + | <code bash> | ||
| + | sudo ufw allow 25/ | ||
| + | sudo ufw allow 465/ | ||
| + | sudo ufw allow 110/ | ||
| + | sudo ufw allow 143/ | ||
| + | sudo ufw allow 993/ | ||
| + | sudo ufw allow 995/ | ||
| + | </ | ||
| + | |||
| + | **DNS-Server: | ||
| + | <code bash> | ||
| + | sudo ufw allow 53/tcp | ||
| + | sudo ufw allow 53/udp | ||
| + | </ | ||
| + | |||
| + | **Rate Limiting gegen Brute-Force: | ||
| + | <code bash> | ||
| + | sudo ufw limit ssh | ||
| + | sudo ufw limit http | ||
| + | </ | ||
| + | |||
| + | ==== Hinweise ==== | ||
| + | |||
| + | <note tip> | ||
| + | **Best Practices: | ||
| + | - SSH immer vor Aktivierung auf Remote-Systemen freigeben | ||
| + | - Logging aktivieren zur Fehlersuche: | ||
| + | - Regeln mit Nummern anzeigen: '' | ||
| + | - '' | ||
| + | - '' | ||
| + | - Regeln testen, bevor UFW aktiviert wird | ||
| + | </ | ||
| + | |||
| + | <note warning> | ||
| + | **Häufige Fehler vermeiden: | ||
| + | - **Kritisch: | ||
| + | - '' | ||
| + | - '' | ||
| + | - Port-Bereich-Syntax: | ||
| + | - Interface-Namen checken (eth0, wlan0, enp0s3, docker0) | ||
| + | - Keine Unterscheidung: | ||
| + | </ | ||
| + | |||
| + | ==== Siehe auch ==== | ||
| * [[sammlung: | * [[sammlung: | ||
| - | * [[sammlung:firewalld|firewalld]] | + | * [[sammlung:netfilter|netfilter]] |
| + | * [[sammlung: | ||
| + | * [[sammlung: | ||
| + | |||
| + | ==== Quellen ==== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{tag> | ||
| - | {{tag> | + | ---- |
sammlung/ufw.txt · Zuletzt geändert: von 127.0.0.1
