aufgaben:sicherheit:firewall:ufw
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| aufgaben:sicherheit:firewall:ufw [2025/02/23 14:25] – Branislav Zeljak | aufgaben:sicherheit:firewall:ufw [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== UFW - Übungen ====== | ||
| - | |||
| - | ===== Leichte Übungen ===== | ||
| - | |||
| - | **Installation und Statusüberprüfung** | ||
| - | * Installiere ufw, falls es nicht bereits installiert ist: | ||
| - | <hidden Lösung>< | ||
| - | sudo apt install ufw # Für Debian/ | ||
| - | sudo dnf install ufw # Für Fedora | ||
| - | sudo pacman -S ufw # Für Arch Linux | ||
| - | </ | ||
| - | * Überprüfe den aktuellen Status der Firewall: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw status | ||
| - | </ | ||
| - | * Aktiviere ufw und überprüfe erneut den Status: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw enable | ||
| - | sudo ufw status | ||
| - | </ | ||
| - | |||
| - | **Grundlegende Regeln setzen** | ||
| - | * Erlaube eingehenden SSH-Zugriff (`22/tcp`): | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw allow 22/tcp | ||
| - | </ | ||
| - | * Erlaube HTTP (`80/tcp`) und HTTPS (`443/ | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw allow 80/ | ||
| - | sudo ufw allow 443/tcp | ||
| - | </ | ||
| - | * Verbiete explizit alle eingehenden Verbindungen außer denen, die explizit erlaubt wurden: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw default deny incoming | ||
| - | sudo ufw default allow outgoing | ||
| - | </ | ||
| - | * Überprüfe die gesetzten Regeln: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw status verbose | ||
| - | </ | ||
| - | |||
| - | ===== Mittelschwere Übungen ===== | ||
| - | |||
| - | **Regeln mit IP-Adressen und Subnetzen** | ||
| - | * Erlaube nur Verbindungen von der IP-Adresse `192.168.1.100` auf Port `22/tcp`: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw allow from 192.168.1.100 to any port 22 proto tcp | ||
| - | </ | ||
| - | * Erlaube Zugriff auf Port `3306` (MySQL), aber nur aus dem Subnetz `192.168.1.0/ | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw allow from 192.168.1.0/ | ||
| - | </ | ||
| - | * Teste die Regeln: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw status verbose | ||
| - | </ | ||
| - | |||
| - | **Logging aktivieren und testen** | ||
| - | * Aktiviere das Logging: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw logging on | ||
| - | </ | ||
| - | * Erlaube `ICMP`-Pakete für `ping`: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw allow proto icmp | ||
| - | </ | ||
| - | * Blockiere alle anderen eingehenden Verbindungen: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw default deny incoming | ||
| - | </ | ||
| - | * Führe einen Verbindungsversuch durch und überprüfe die Logs: | ||
| - | <hidden Lösung>< | ||
| - | sudo journalctl -xe | grep UFW | ||
| - | </ | ||
| - | |||
| - | ===== Komplexe Übungen ===== | ||
| - | |||
| - | **Benutzerdefinierte Regeln und Skripte** | ||
| - | * Erstelle eine Regel, die nur von Montag bis Freitag zwischen 08:00 und 18:00 Uhr Zugriff auf `22/tcp` erlaubt: | ||
| - | <hidden Lösung>< | ||
| - | echo "0 8 * * 1-5 root ufw allow 22/ | ||
| - | echo "0 18 * * 1-5 root ufw deny 22/ | ||
| - | </ | ||
| - | * Schreibe ein Bash-Skript, | ||
| - | <hidden Lösung>< | ||
| - | # | ||
| - | sudo ufw status numbered > ufw_backup_$(date +%F).txt | ||
| - | sudo ufw deny from 203.0.113.42 | ||
| - | </ | ||
| - | |||
| - | **IPv6-Regeln verwalten** | ||
| - | * Stelle sicher, dass `ufw` IPv6 unterstützt (`/ | ||
| - | <hidden Lösung>< | ||
| - | sudo nano / | ||
| - | </ | ||
| - | * Erstelle eine Regel, die nur IPv6-Verbindungen auf Port `443` erlaubt: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw allow 443/tcp from any to any proto tcp | ||
| - | </ | ||
| - | * Teste den Zugriff mit IPv6: | ||
| - | <hidden Lösung>< | ||
| - | curl -6 https:// | ||
| - | </ | ||
| - | |||
| - | **Erweiterte Logs und Analyse** | ||
| - | * Erstelle eine Regel, die eingehenden `SSH`-Verkehr (`22/tcp`) protokolliert: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw allow log 22/tcp | ||
| - | </ | ||
| - | * Analysiere die Log-Dateien, | ||
| - | <hidden Lösung>< | ||
| - | sudo journalctl -u ufw --no-pager | tail -n 20 | ||
| - | </ | ||
| - | * Erstelle eine Regel, um eine IP zu sperren, die zu viele fehlgeschlagene Verbindungsversuche unternimmt: | ||
| - | <hidden Lösung>< | ||
| - | sudo ufw deny from 192.168.1.200 | ||
| - | </ | ||
