2.3: Given a scenario, implement and configure firewalls

────────────────────────────────────────────
🔥 Firewall Use Cases
────────────────────────────────────────────
Doel Uitleg / Voorbeeld
Openen/sluiten van poorten : Verkeer toestaan of blokkeren op specifieke poorten (bijv. poort 22 voor SSH openstellen).
Configuratie controleren : Bekijk actieve regels met firewall-cmd --list-all, iptables -L, of nft list ruleset.
IP forwarding inschakelen/uitschakelen : Belangrijk voor routers/firewalls. Instellen via: sysctl net.ipv4.ip_forward=1 of via /etc/sysctl.conf.

────────────────────────────────────────────
🧱 Veelgebruikte Firewalltechnologieën
────────────────────────────────────────────
Tool Beschrijving
firewalld : Dynamische firewall beheerd met firewall-cmd, zonegebaseerd, gebruikt op moderne RHEL/Fedora-systemen.
iptables : Traditionele packet filtering tool; regelgebaseerd (stateless of stateful).
nftables : Opvolger van iptables, efficiënter en beter gestructureerd (nft CLI).
UFW (Uncomplicated Firewall) : Simpele wrapper rond iptables; veel gebruikt op Ubuntu (bijv. ufw allow 22).

────────────────────────────────────────────
🧩 Kernconcepten en Begrippen
────────────────────────────────────────────
🌍 Zones (Firewalld)
────────────────────────────────────────────
Groepeert interfaces/regels per vertrouwensniveau.
Voorbeelden: public, home, trusted.
Instellen: firewall-cmd --set-default-zone=home.

────────────────────────────────────────────
🔧 Services
────────────────────────────────────────────
Gedefinieerde sets poorten voor bekende services (bijv. ssh, http, https).
Voorbeeld: firewall-cmd --add-service=ssh --permanent.

────────────────────────────────────────────
🔁 Stateful firewall
────────────────────────────────────────────
Houdt de status van verbindingen bij. Verkeer wordt toegestaan als het onderdeel is van een legitieme sessie.
Voorbeeld: poort wordt automatisch opengehouden voor antwoordverkeer.

────────────────────────────────────────────
🧱 Stateless firewall
────────────────────────────────────────────
Beoordeelt elk pakket los; minder intelligent, maar sneller.
Gebruikt in sommige embedded systemen of als basisfilter.

────────────────────────────────────────────
🧪 Voorbeeldcommando’s per tool
────────────────────────────────────────────
🔥 firewalld
────────────────────────────────────────────
firewall-cmd --get-active-zones
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

────────────────────────────────────────────
🧱 iptables
────────────────────────────────────────────
iptables -L # Lijst actieve regels
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables-save > rules.v4

────────────────────────────────────────────
🕸️ nftables
────────────────────────────────────────────
nft list ruleset
nft add rule inet filter input tcp dport 22 accept

────────────────────────────────────────────
🧼 ufw
────────────────────────────────────────────
ufw enable
ufw allow 22/tcp
ufw status

────────────────────────────────────────────
✅ Samenvatting
────────────────────────────────────────────
Aspect Voorbeelden / Tools
Firewalltypes : firewalld, iptables, nftables, ufw
Taken : Poorten openen, forwarding instellen
Staat : Stateful (firewalld), Stateless (iptables klassiek)
Configuratiebestanden : /etc/firewalld/, /etc/nftables.conf, /etc/ufw/