Seminarinhalt
Programm
- Überblick Firewall Architekturen (Lokal, Screening, Gateway, DMZ,...)
- Entwicklung der Linux Firewalls
- Linux Kernel Netfilter Framework
- Überblick Verwaltungswerkzeuge (iptables, ip6tables, arptables, ebtables, nftables)
- iptables-legacy vs. iptables-nft Mode
- Aufbau der Filter, Mangle und NAT-Tabellen
- Anwendungsfälle typischer chains (Ketten)
Protokoll Grundlagen
- TCP 3-Way Handshake
- TCP Header Flags (SYN, ACK, FIN, RST, UG, PSH)
- Connection Tracking (NEW, ESTABLISHED, RELATED, INVALID, UNTRACKED)
- icmpv4 vs. icmpv6
- IPv6 Basis und Extension Headers
- Paketanalyse mit tcpdump und wireshark
- Routing Grundlagen und IP Forwarding
Grundlagen iptables
- iptables Befehlsyntax
- iptables Chain Konzept
- Filterketten: INPUT, OUTPUT und FORWARD
- NAT-Ketten: PREROUTING, OUTPUT, POSTROUTING
- iptables Standardtests
- Match Extensions (multiport, iprange, time, owner, ...)
- Erstellen von Filterregeln
- iptables targets (DROP, REJECT, ACCEPT, LOG, ...)
- Default Policy der chains anpassen
- Speichern und Wiederherstellen von Regeln
Grundlagen nftables
- nft Tabellen Verwaltung (add, delete, list, flush)
- Erstellen von Filter Tabellen für IPv4 und IPv6 (ip, ip6, inet)
- Arten von nftables Ketten (Base Chain vs. Regular Chain)
- Erstellen von Filter Ketten (input, output, forward)
- Default Policy der chains anpassen
- Erstellen von Filter Regeln mit nft (add, insert, delete, replace)
- Arbeiten mit Verdict Statements (accept, drop, ...)
- Verbindungszustände mit Conntrack auswerten (ct state)
- Regelstatistiken aktivieren (anonymous counter, named counter)
- Speichern und Wiederherstellen von Regeln
Arbeiten mit Sets
- anonymous sets und mutable named sets
- Flags (constant, dynamic, interval, timeout, gc-interval, elements, size, policy)
- Komplexere Anwendunsbeispiele von sets (Statische und dynamische Elementen Listen)
- Limits mit meter und limit rate definieren
Arbeiten mit Maps & Verdict Maps (vmaps)
- Anonymous vmap
- Named vmap
Loggen von Regeln
- log statement und Keywords (prefix, level, group,...)
- Auswerten der Log Einträge mit dmesg, rsyslog
Erstellen von nft-Firewall Skripten
- Viele Praktische Beispiele mit HTTP, SSH, MySQL, ICMP und FTP
- Szenario: Lokale Workstation Firewall
- Szenario: Lokale Server Firewall
- Szenario: Gateway Firewall
- Nftables Conntrack Helper (ct helper)
- Firewall Regeln für actives und passives FTP erstellen
- Gemeinsame Regeln für IPv4 und IPv6 erstellen
- Problematik IPv6 Extension Header
- nexthdr, meta l4proto, meta nfproto
Network Address Translation (NAT)
- Source-NAT (SNAT)
- MASQUERADE
- Destination-NAT (DNAT)
- Destination-NAT (DNAT) mit Port Forwarding
- NAT-Ketten: PREROUTING, OUTPUT, POSTROUTING