Benutzer-Werkzeuge

Webseiten-Werkzeuge


sammlung:ufw

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
sammlung:ufw [2026/01/06 10:32] – [Weitere Informationen] Branislav Zeljaksammlung:ufw [2026/01/31 09:15] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-===== ufw (Uncomplicated Firewall=====+===== UFW Firewall =====
  
-ufw ist eine benutzerfreundliche Oberfläche für iptables, ideal für Einsteiger.+**Kurzfassung:** UFW (Uncomplicated Firewall) ist eine benutzerfreundliche Schnittstelle zur iptables/netfilterl Firewall unter Linux. Sie ermöglicht das einfache Erstellen von Firewall-RegelnFreigaben von Ports und Kontrolle des Netzwerkverkehrs. Zielgruppe: Systemadministratoren zur Netzwerksicherheit.
  
-==== Merkmale ====+==== Übersicht ==== 
 +UFW ist ein vereinfachtes Frontend für iptables/netfilter oder nftables, das besonders auf Ubuntu standardmäßig mitgeliefert wird. Im Gegensatz zu direkter iptables-Bearbeitung bietet UFW eine intuitive Befehlszeilenschnittstelle. UFW arbeitet nach dem Prinzip "alles blockieren, außer explizit erlaubt" und ist daher sehr sicher für Anfänger geeignet.
  
-  * Einfache Syntax +==== iptables vs. nftables Backend ====
-  * Standardmäßig auf Ubuntu verfügbar+
  
-==== Wichtige Befehle ====+UFW kann auf zwei verschiedenen Firewall-Backends arbeiten:
  
-<code>+**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 === 
 +<code bash> 
 +# Aktives Firewall-Backend erkennen 
 +sudo update-alternatives --display iptables 
 + 
 +# Ausgabe zeigt: 
 +# iptables - auto mode 
 +#   link best version is /usr/sbin/iptables-nft  → nftables Backend 
 +#   link currently points to /usr/sbin/iptables-nft 
 +# Alternativen: 
 +#   /usr/sbin/iptables-legacy → klassisches iptables 
 +#   /usr/sbin/iptables-nft    → nftables Backend 
 + 
 +# Alternative Prüfung via Regeln 
 +sudo iptables -V          # Version anzeigen 
 +sudo nft list ruleset     # nftables Regeln (wenn leer, kein nftables aktiv) 
 + 
 +# Welche Kernel-Module geladen sind 
 +lsmod | grep -E "ip_tables|nf_tables" 
 +# ip_tables  → iptables Backend 
 +# nf_tables  → nftables Backend 
 +</code> 
 + 
 +=== Backend wechseln === 
 +<code bash> 
 +# Zu nftables-Backend wechseln (empfohlen für neue Systeme) 
 +sudo update-alternatives --set iptables /usr/sbin/iptables-nft 
 +sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-nft 
 + 
 +# Zu klassischem iptables zurück 
 +sudo update-alternatives --set iptables /usr/sbin/iptables-legacy 
 +sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy 
 + 
 +# Nach dem Wechsel UFW neu starten 
 +sudo systemctl restart ufw 
 +</code> 
 + 
 +<note> 
 +**Hinweis:** UFW funktioniert mit beiden Backends transparent. Ein Backend-Wechsel ändert nichts an den UFW-Befehlen. 
 +</note> 
 + 
 +==== Voraussetzungen ==== 
 +  * UFW installiert (meist auf Ubuntu/Debian standard) 
 +  * 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
 </code> </code>
  
-==== BeispielFreigabe von FTPHTTP und SSH (reboot-fest) ==== +<note warning> 
-<code> +**KRITISCH:** Bevor UFW aktiviert wirdIMMER SSH (Port 22freigeben! Sonst verliert man Zugriff auf Remote-Systeme. 
-sudo ufw allow 22/tcp   # SSH +</note> 
-sudo ufw allow 80/tcp   HTTP + 
-sudo ufw allow 21/tcp   FTP+=== Ports und Services freigeben === 
 +<code bash> 
 +# 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
 </code> </code>
-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
 +</code>
 +
 +=== 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/24
 +
 +# 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/24 to any port 22
 +
 +# Traffic blockieren
 +sudo ufw deny from 192.168.1.50
 +</code>
 +
 +=== 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
 +</code>
 +
 +=== Logging und Debugging ===
 +<code bash>
 +# Logging aktivieren
 +sudo ufw logging on
 +
 +# Logging Level ändern
 +sudo ufw logging high
 +
 +# Logs anzeigen
 +sudo tail -f /var/log/ufw.log
 +
 +# 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
 +</code>
 +
 +=== Häufige Anwendungsszenarien ===
 +
 +**Web-Server (HTTP + HTTPS):**
 +<code bash>
 +sudo ufw allow ssh
 +sudo ufw allow http
 +sudo ufw allow https
 +sudo ufw enable
 +</code>
 +
 +**SSH mit beschränktem Zugriff:**
 +<code bash>
 +sudo ufw allow from 192.168.1.0/24 to any port 22
 +sudo ufw deny 22/tcp
 +sudo ufw enable
 +</code>
 +
 +**Mail-Server:**
 +<code bash>
 +sudo ufw allow 25/tcp    # SMTP
 +sudo ufw allow 465/tcp   # SMTPS
 +sudo ufw allow 110/tcp   # POP3
 +sudo ufw allow 143/tcp   # IMAP
 +sudo ufw allow 993/tcp   # IMAPS
 +sudo ufw allow 995/tcp   # POP3S
 +</code>
 +
 +**DNS-Server:**
 +<code bash>
 +sudo ufw allow 53/tcp
 +sudo ufw allow 53/udp
 +</code>
 +
 +**Rate Limiting gegen Brute-Force:**
 +<code bash>
 +sudo ufw limit ssh
 +sudo ufw limit http
 +</code>
 +
 +==== Hinweise ====
 +
 +<note tip>
 +**Best Practices:**
 +- SSH immer vor Aktivierung auf Remote-Systemen freigeben
 +- Logging aktivieren zur Fehlersuche: ''sudo ufw logging on''
 +- Regeln mit Nummern anzeigen: ''sudo ufw status numbered''
 +- ''limit'' für Port-Scanning-Schutz nutzen: ''sudo ufw limit ssh''
 +- ''allow'' vor ''deny'' setzen (Reihenfolge matters)
 +- Regeln testen, bevor UFW aktiviert wird
 +</note>
 +
 +<note warning>
 +**Häufige Fehler vermeiden:**
 +- **Kritisch:** SSH MUSS freigegeben sein, bevor UFW aktiviert wird!
 +- ''ufw reset'' löscht ALLE Regeln - es gibt kein Backup!
 +- ''default deny incoming'' ist restriktiv - alle Services einzeln erlauben
 +- Port-Bereich-Syntax: ''6000:6007'' nicht ''6000-6007''
 +- Interface-Namen checken (eth0, wlan0, enp0s3, docker0)
 +- Keine Unterscheidung: ''allow from IP'' erlaubt auf allen Ports
 +</note>
 +
 +==== Siehe auch ====
   * [[sammlung:iptables|iptables]]   * [[sammlung:iptables|iptables]]
-  * [[sammlung:firewalld|firewalld]]+  * [[sammlung:netfilter|netfilter]] 
 +  * [[sammlung:firewall|Firewall]] 
 +  * [[sammlung:ssh|SSH]] 
 + 
 +==== Quellen ==== 
 +  * [[https://wiki.ubuntu.com/UncomplicatedFirewall|Ubuntu UFW Wiki]] 
 +  * [[https://manpages.ubuntu.com/manpages/focal/man8/ufw.8.html|UFW Manual Page]] 
 +  * [[https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands|DigitalOcean UFW Guide]] 
 + 
 +---- 
 + 
 +{{tag>firewall ufw security iptables netzwerk}}
  
-{{tag>cli firewall netzwerk basics advanced}}+----
  
sammlung/ufw.txt · Zuletzt geändert: von 127.0.0.1