PF-Paketfilter

Sichere Netzwerke mit der PF-Firewall

Die PF-Firewall ist eine der leistungsfähigsten Open-Source Firewall-Systeme. Diese Firewall ist Bestandteil von OpenBSD, NetBSD und FreeBSD und seit Version 10.7 'Lion' auch in Apple MacOS X anzutreffen.

Dieses Training gibt eine Einführung in das Design von Netzwerken mit Firewall-Systemen anhand der Firewall 'pf'. Dabei werden auch fortgeschrittene Techniken wie redundante Firewall-Cluster und Load-Balancing mittels der PF-Firewall vermittelt.

Der Kurs behandelt den Einsatz der PF-Firewall in IPv4 und IPv6 Netzwerken.

Voraussetzungen

Diese Schulung wendet sich an Systemadministratoren, die bereits Erfahrung mit Unix/Linux/BSD-Systemen und IP-Netzwerken (IPv4 oder IPv6) haben.

Fast alle unten aufgeführten Themen werden anhand von praktischen Beispielen behandelt, und jeder Teilnehmer kann auf seinem Notebook selbst mitarbeiten. Beachten Sie bitte, dass Sie beim komplexen Thema Sicherheit schon einige Übung im Umgang mit Unix/Linux/BSD brauchen, um die besprochenen Techniken innerhalb der Schulungszeit umsetzen zu können. Das notwendige Netzwerk-Wissen für die Teilnahme kann u.A. im Kurs

Entsprechende Betriebssystem-Kenntnisse können in den Kursen

erworben werden.

Inhalt

Übersicht Firewall Technologien

  • Paket Filter
  • Application Level Gateway
  • Zustandsorientierte Paketüberprüfung (Stateful Packet Inspection)

Einsatzszenarien für Firewall Systeme

  • Perimeter Firewall
  • interne Firewall
  • Host-Firewall

Installation einer OpenBSD PF-Firewall

  • Vorbereitung
  • Erstellen einer virtuellen Maschine
  • OpenBSD Installationsmedien vorbereiten
  • Den Installationsprozess starten
  • Das OpenBSD Installations-Skript
  • Starten des installierten OpenBSD Systems
  • System-Dokumentation einsehen
  • System-Logs einsehen

Initiale Konfiguration der PF-Firewall

  • Nutzerkontos hinzufügen
  • Root Zugang gewähren
  • Installation zusätzlicher nützlicher Software (z.b. Text-Editor)
  • Nutzer-spezifische Einstellungen vornehmen
  • SSH Passwort-Authentifizierung ausschalten
  • Netzwerk-Schnitstellen konfigurieren
  • Ein einfaches PF-Regelwerk
  • Block Policy: 'drop' oder 'return'
  • Makros und Listen
  • Von der Kunst, verständliche Firewall-Regelwerke zu erstellen
  • Dokumentation der Firewall Regeln
  • Firewall Regeln prüfen, laden und löschen
  • Datenpackete mit tcpdump beobachten
  • PF-Log Informationen einsehen
  • Erweiterung des simulierten Netzwerks
    • IPv4-Forwarding aktivieren
    • eine weitere Virtuelle Machine installieren
  • NAT (Network-Address-Translation) einschalten
    • PF-Anweisungen 'nat-to' und 'match'
    • NAT im PF-Regelwerk aktvieren
  • Statische Routen setzen
  • Routing mit traceroute analysieren
  • IPv6 Addressen konfigurieren
  • ICMP / ICMPv6 / Neighbour Discovery / Link-Local Addressen
  • Multicast

Application-Layer Gateway

  • HTTP Server einrichten
  • Port-Weiterleitung einrichten
  • NTP Server einrichten
  • TLS-Proxy einrichten

Redundante PF-Firewalls mit CARP

  • Eine weitere Firewall installieren
  • CARP konfiguieren
  • PF-Konfiguration anpassen
  • TLS-Proxy Konfiguration anpassen
  • Firewall-Synchronisation einrichten (pfsync)
  • CARP im internen Netzwerk
  • CARP failover testen

Datenverkehr protokollieren und überwachen

  • Pflow konfigurieren
  • Installation von nfsen
  • Firewall-Logs auf einem zentralen Server speichern

IPsec VPN

  • IPsec konfigurieren
  • IPsec und CARP im gemeinsamen Betrieb

Wireguard VPN

Automatisierung der Firewall-Installation

  • Auto-Install vorbereiten
  • Firewall automatisiert installieren
  • Konfiguration nach der Installation

Traffic-Shaping

  • Vorbereitung zum Traffic-Shaping
  • Daten-Durchsatz limitieren
  • TCP ACK Pakete priorisieren
  • Faire Paket-Warteschlangen einrichten

Netzwerkpakete markieren: PF-Tagging

Regelwerk mit PF-Ankern dynamisch anpassen

Tabellen als dynamische Datenquelle für das PF-Regelwerk

Lastverteilung und Quality of Service

  • Layer-3 Lastverteilung
  • Layer-7 Lastverteilung

Paket-Normalisierung

  • Fragmentierte IP-Pakete
  • IP Metadaten normalisieren
  • IP-Spoofing verhindern

Denial of Service Angriffe abwehren (SYN-Proxy)

Filter basierend auf dem Betriebsystemen (OS-Fingerprinting)

Mit dem eingebauten PF Regelwerk-Optimierer arbeiten

DNS (Domain Name System) mit NSD und Unbound bereitstellen

  • DNS Zonen für NSD konfigurieren
  • Einen DNS Haupt-Server einrichten (NSD)
  • Einen DNS Secondary-Server einrichten (NSD)
  • DNS Zonen aktuell halten
  • Unbound konfigurieren

DHCP Server einrichten

Email von der Firewall verschicken

  • SMTP Server mit Authentifizierung einrichten
  • SMTP Smarthost verwenden

Firewall Backups

  • Backup Konzept
  • Backup Nutzerkonto hinzufügen
  • OpenBSD System-Backup mit dump/restore

Anpassung der installierten Firewall Software

  • Firewall-Installation mit eigenen Daten anreichern
  • Eigene Software-Ports und Pakete erstellen

Firewallsystem aktuell halten

  • Errata mit syspatch installieren
  • Errata via Quellcode Patch installieren
  • Auf die nächste OpenBSD Version wechseln
  • Software Pakete aktualisieren

Die OpenBSD Network-Shell (NSH)

  • NSH Kommando Syntax
  • NSH Installation und Konfiguration
  • Netzwerk-Schnittstellen mit NSH verwalten
  • PF-Firewall mit NSH verwalten
  • Systemdienste mit NSH verwalten

Knobelaufgaben

  • Das Root-Passwort zurücksetzen
  • tmux
  • Abbrechende SSH Verbindungen
  • Vor langer Zeit in einer fernen Galaxie...
  • Eine transparente Firewall
  • Verschlüsselte Festplatte
  • OpenBSD auf einem Laptop installieren

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.