3.14 Der Paketfilter (IPv6)

Wie für IPv4 wird auch für IPv6-Netzwerke eine Firewall benötigt, damit nicht jeder von außen jeden Rechner im lokalen Netz erreichen kann. Dies ist um so wichtiger, als dass jeder Rechner im Normalfall eine weltweit eindeutige IPv6-Adresse erhält, die dem Rechner permanent zugeordnet werden kann, da sie auf der MAC-Adresse der verwendeten Netzwerkkarte aufbaut.3.8 Deshalb verbietet die Firewall erst einmal jegliche Zugriffe von außen und kann dann durch entsprechende Einträge in diesem Abschnitt Stück für Stück – je nach Bedarf – geöffnet werden.

Die Konfiguration der IPv6-Firewall entspricht im Großen und Ganzen der Konfiguration der IPv4-Firewall. Auf Besonderheiten und Unterschiede wird gesondert eingegangen.

PF6_LOG_LEVEL
Für alle folgenden Ketten gilt die in PF6_LOG_LEVEL vorgenommene Einstellung der Protokoll-Stufe, deren Inhalt auf einen der folgenden Werte gesetzt werden kann: debug, info, notice, warning, err, crit, alert, emerg.

PF6_INPUT_POLICY
Diese Variable legt die Standard-Strategie für auf dem Router eingehende Pakete fest (INPUT-Kette). Mögliche Werte sind “REJECT” (Standard, weist alle Pakete ab), “DROP” (verwirft klammheimlich alle Pakete) und “ACCEPT” (akzeptiert alle Pakete). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_INPUT_POLICY.

Standard-Einstellung: PF6_INPUT_POLICY='REJECT'

PF6_INPUT_ACCEPT_DEF
Diese Variable aktiviert die voreingestellten Regeln für die INPUT-Kette der IPv6-Firewall. Mögliche Werte sind “yes” und “no”.

Die voreingestellten Regeln öffnen die Firewall für eingehende ICMPv6-Pings (ein Ping pro Sekunde als Limit) sowie für NDP-Pakete (Neighbour Discovery Procotol), das zur zustandslosen Selbstkonfiguration von IPv6-Netzen benötigt wird. Verbindungen von localhost sowie Antwortpakete zu lokal initiierten Verbindungen werden ebenfalls erlaubt. Schließlich wird die IPv4-Firewall dahingehend angepasst, dass für jeden Tunnel gekapselte IPv6-in-IPv4-Pakete vom Tunnelendpunkt akzeptiert werden.

Standard-Einstellung: PF6_INPUT_ACCEPT_DEF='yes'

PF6_INPUT_LOG
Diese Variable aktiviert das Logging aller zurückgewiesenen eingehenden Pakete. Mögliche Werte sind “yes” und “no”. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_INPUT_LOG.

Standard-Einstellung: PF6_INPUT_LOG='no'

PF6_INPUT_LOG_LIMIT
Diese Variable konfiguriert das Log-Limit der INPUT-Kette der IPv6-Firewall, um die Log-Datei lesbar zu halten. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_INPUT_LOG_LIMIT.

Standard-Einstellung: PF6_INPUT_LOG_LIMIT='3/minute:5'

PF6_INPUT_REJ_LIMIT
Diese Variable stellt das Limit für das Zurückweisen von eingehenden TCP-Paketen ein. Überschreitet ein solches Paket dieses Limit, wird das Paket klammheimlich verworfen (DROP). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_INPUT_REJ_LIMIT.

Standard-Einstellung: PF6_INPUT_REJ_LIMIT='1/second:5'

PF6_INPUT_UDP_REJ_LIMIT
Diese Variable stellt das Limit für das Zurückweisen von eingehenden UDP-Paketen ein. Überschreitet ein solches UDP-Paket dieses Limit, wird es klammheimlich verworfen (DROP). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_INPUT_UDP_REJ_LIMIT.

Standard-Einstellung: PF6_INPUT_UDP_REJ_LIMIT='1/second:5'

PF6_INPUT_ICMP_ECHO_REQ_LIMIT
Definiert, wie häufig auf eine ICMPv6-Echo-Anfrage reagiert werden soll. Die Häufigkeit wird analog zur Limit-Einschränkung als `n/Zeiteinheit' mit Bursts beschrieben, also z.B. '3/minute:5'. Ist das Limit überschritten, wird das Paket einfach ignoriert (DROP). Ist dieser Eintrag leer, wird der Standardwert '1/second:5' verwendet; enhält er 'none', wird keine Limitierung durchgeführt.

Standard-Einstellung: PF6_INPUT_ICMP_ECHO_REQ_LIMIT='1/second:5'

PF6_INPUT_ICMP_ECHO_REQ_SIZE
Definiert, wie groß eine empfangene ICMPv6-Echo-Anfrage sein darf (in Bytes). In dieser Angabe sind neben den “Nutzdaten” auch die Paket-Header mit zu berücksichtigen. Der Standard-Wert liegt bei 150 Bytes.

Standard-Einstellung: PF6_INPUT_ICMP_ECHO_REQ_SIZE='150'

PF6_INPUT_N
Diese Variable enthält die Anzahl der IPv6-Firewallregeln für eingehende Pakete (INPUT-Kette). Standardmäßig werden zwei Regeln aktiviert: Die erste erlaubt allen lokalen Hosts Zugriff auf den Router über so genannte Link-Level-Adressen, und die zweite erlaubt die Kommunikation von Hosts aus dem ersten definierten IPv6-Subnetz mit dem Router.

Falls mehrere lokale IPv6-Subnetze definiert werden, muss die zweite Regel entsprechend oft vervielfältigt werden. Siehe hierzu die Konfigurationsdatei.

Beispiel: PF6_INPUT_N='2'

PF6_INPUT_x
Diese Variable spezifiziert eine Regel für die INPUT-Kette der IPv6-Firewall. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_INPUT_x.

Unterschiede zur IPv4-Firewall:

Beispiele:

PF6_INPUT_1='[fe80::0/10] ACCEPT'
PF6_INPUT_2='IPV6_NET_1 ACCEPT'
PF6_INPUT_3='tmpl:samba DROP NOLOG'

PF6_INPUT_x_COMMENT
Diese Variable enthält eine Beschreibung bzw. einen Kommentar zur zugehörigen INPUT-Regel.

Beispiel: PF6_INPUT_3_COMMENT='no samba traffic allowed'

PF6_FORWARD_POLICY
Diese Variable legt die Standard-Strategie für von dem Router weiterzuleitenden Pakete fest (FORWARD-Kette). Mögliche Werte sind “REJECT” (Standard, weist alle Pakete ab), “DROP” (verwirft klammheimlich alle Pakete) und “ACCEPT” (akzeptiert alle Pakete). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_FORWARD_POLICY.

Standard-Einstellung: PF6_FORWARD_POLICY='REJECT'

PF6_FORWARD_ACCEPT_DEF
Diese Variable aktiviert die voreingestellten Regeln für die FORWARD-Kette der IPv6-Firewall. Mögliche Werte sind “yes” und “no”.

Die voreingestellten Regeln öffnen die Firewall für ausgehende ICMPv6-Pings (ein Ping pro Sekunde als Limit). Antwortpakete zu bereits erlaubten Verbindungen werden ebenfalls erlaubt.

Standard-Einstellung: PF6_FORWARD_ACCEPT_DEF='yes'

PF6_FORWARD_LOG
Diese Variable aktiviert das Logging aller zurückgewiesenen weterzuleitenden Pakete. Mögliche Werte sind “yes” und “no”. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_FORWARD_LOG.

Standard-Einstellung: PF6_FORWARD_LOG='no'

PF6_FORWARD_LOG_LIMIT
Diese Variable konfiguriert das Log-Limit der FORWARD-Kette der IPv6-Firewall, um die Log-Datei lesbar zu halten. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_FORWARD_LOG_LIMIT.

Standard-Einstellung: PF6_FORWARD_LOG_LIMIT='3/minute:5'

PF6_FORWARD_REJ_LIMIT
Diese Variable stellt das Limit für das Zurückweisen von weiterzuleitenden TCP-Paketen ein. Überschreitet ein solches TCP-Paket dieses Limit, wird es klammheimlich verworfen (DROP). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_FORWARD_REJ_LIMIT.

Standard-Einstellung: PF6_FORWARD_REJ_LIMIT='1/second:5'

PF6_FORWARD_UDP_REJ_LIMIT
Diese Variable stellt das Limit für das Zurückweisen von weiterzuleitenden UDP-Paketen ein. Überschreitet ein solches UDP-Paket dieses Limit, wird es klammheimlich verworfen (DROP). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_FORWARD_UDP_REJ_LIMIT.

Standard-Einstellung: PF6_FORWARD_UDP_REJ_LIMIT='1/second:5'

PF6_FORWARD_N
Diese Variable enthält die Anzahl der IPv6-Firewallregeln für weiterzuleitende Pakete (FORWARD-Kette). Standardmäßig werden zwei Regeln aktiviert: Die erste verhindert die Weiterleitung aller lokalen Samba-Pakete in nicht-lokale Netze, und die zweite erlaubt letzteres für alle anderen lokalen Pakete aus dem ersten definierten IPv6-Subnetz.

Falls mehrere lokale IPv6-Subnetze definiert werden, muss die letzte Regel entsprechend oft vervielfältigt werden. Siehe hierzu die Konfigurationsdatei.

Beispiel: PF6_FORWARD_N='2'

PF6_FORWARD_x
Diese Variable spezifiziert eine Regel für die FORWARD-Kette der IPv6-Firewall. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_FORWARD_x.

Unterschiede zur IPv4-Firewall:

Beispiele:

PF6_FORWARD_1='tmpl:samba DROP'
PF6_FORWARD_2='IPV6_NET_1 ACCEPT'

PF6_FORWARD_x_COMMENT
Diese Variable enthält eine Beschreibung bzw. einen Kommentar zur zugehörigen FORWARD-Regel.

Beispiel: PF6_FORWARD_1_COMMENT='no samba traffic allowed'

PF6_OUTPUT_POLICY
Diese Variable legt die Standard-Strategie für vom Router ausgehende Pakete fest (OUTPUT-Kette). Mögliche Werte sind “REJECT” (Standard, weist alle Pakete ab), “DROP” (verwirft klammheimlich alle Pakete) und “ACCEPT” (akzeptiert alle Pakete). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_OUTPUT_POLICY.

Standard-Einstellung: PF6_OUTPUT_POLICY='REJECT'

PF6_OUTPUT_ACCEPT_DEF
Diese Variable aktiviert die voreingestellten Regeln für die OUTPUT-Kette der IPv6-Firewall. Mögliche Werte sind “yes” und “no”. Momentan existieren keine voreingestellten Regeln.

Standard-Einstellung: PF6_OUTPUT_ACCEPT_DEF='yes'

PF6_OUTPUT_LOG
Diese Variable aktiviert das Logging aller zurückgewiesenen ausgehenden Pakete. Mögliche Werte sind “yes” und “no”. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_OUTPUT_LOG.

Standard-Einstellung: PF6_OUTPUT_LOG='no'

PF6_OUTPUT_LOG_LIMIT
Diese Variable konfiguriert das Log-Limit der OUTPUT-Kette der IPv6-Firewall, um die Log-Datei lesbar zu halten. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_OUTPUT_LOG_LIMIT.

Standard-Einstellung: PF6_OUTPUT_LOG_LIMIT='3/minute:5'

PF6_OUTPUT_REJ_LIMIT
Diese Variable stellt das Limit für das Zurückweisen von ausgehenden TCP-Paketen ein. Überschreitet ein solches Paket dieses Limit, wird das Paket klammheimlich verworfen (DROP). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_OUTPUT_REJ_LIMIT.

Standard-Einstellung: PF6_OUTPUT_REJ_LIMIT='1/second:5'

PF6_OUTPUT_UDP_REJ_LIMIT
Diese Variable stellt das Limit für das Zurückweisen von ausgehenden UDP-Paketen ein. Überschreitet ein solches UDP-Paket dieses Limit, wird es klammheimlich verworfen (DROP). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_OUTPUT_UDP_REJ_LIMIT.

Standard-Einstellung: PF6_OUTPUT_UDP_REJ_LIMIT='1/second:5'

PF6_OUTPUT_N
Diese Variable enthält die Anzahl der IPv6-Firewallregeln für eingehende Pakete (OUTPUT-Kette). Standardmäßig werden zwei Regeln aktiviert: Die erste erlaubt allen lokalen Hosts Zugriff auf den Router über so genannte Link-Level-Adressen, und die zweite erlaubt die Kommunikation von Hosts aus dem ersten definierten IPv6-Subnetz mit dem Router.

Falls mehrere lokale IPv6-Subnetze definiert werden, muss die zweite Regel entsprechend oft vervielfältigt werden. Siehe hierzu die Konfigurationsdatei.

Beispiel: PF6_OUTPUT_N='1'

PF6_OUTPUT_x
Diese Variable spezifiziert eine Regel für die OUTPUT-Kette der IPv6-Firewall. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_OUTPUT_x.

Unterschiede zur IPv4-Firewall:

Beispiele:

PF6_OUTPUT_1='tmpl:ftp IPV6_NET_1 ACCEPT HELPER:ftp'

PF6_OUTPUT_x_COMMENT
Diese Variable enthält eine Beschreibung bzw. einen Kommentar zur zugehörigen OUTPUT-Regel.

Beispiel: PF6_OUTPUT_3_COMMENT='no samba traffic allowed'

PF6_USR_CHAIN_N
Diese Variable enthält die Anzahl der vom Benutzer definierten IPv6-Firewall-Tabellen. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_USR_CHAIN_N.

Standard-Einstellung: PF6_USR_CHAIN_N='0'

PF6_USR_CHAIN_x_NAME
Diese Variable enthält den Namen der entsprechenden benutzerdefinierten IPv6-Firewall-Tabelle. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_USR_CHAIN_x_NAME.

Beispiel: PF6_USR_CHAIN_1_NAME='usr-myvpn'

PF6_USR_CHAIN_x_RULE_N
Diese Variable enthält die Anzahl der IPv6-Firewallregeln in der zugehörigen benutzerdefinierten IPv6-Firewall-Tabelle. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_USR_CHAIN_x_RULE_N.

Beispiel: PF6_USR_CHAIN_1_RULE_N='0'

PF6_USR_CHAIN_x_RULE_x
Diese Variable spezifiziert eine Regel für die benutzerdefinierte IPv6-Firewall-Tabelle. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_USR_CHAIN_x_RULE_x.

Unterschiede zur IPv4-Firewall:

PF6_USR_CHAIN_x_RULE_x_COMMENT
Diese Variable enthält eine Beschreibung bzw. einen Kommentar zur zugehörigen Regel.

Beispiel: PF6_USR_CHAIN_1_RULE_1_COMMENT='some user-defined rule'

PF6_POSTROUTING_N
Diese Variable enthält die Anzahl der IPv6-Firewallregeln fürs Maskieren (POSTROUTING-Kette). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_POSTROUTING_N.

Beispiel: PF6_POSTROUTING_N='2'

PF6_POSTROUTING_x PF6_POSTROUTING_x_COMMENT

Eine Liste der Regeln, die beschreiben, welche IPv6-Pakete vom Router maskiert werden (bzw. unmaskiert weitergeleitet werden). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_POSTROUTING_x.

PF6_PREROUTING_N
Diese Variable enthält die Anzahl der IPv6-Firewallregeln fürs Weiterleiten an ein anderes Ziel (PREROUTING-Kette). Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_PREROUTING_N.

Beispiel: PF6_PREROUTING_N='2'

PF6_PREROUTING_x PF6_PREROUTING_x_COMMENT

Eine Liste der Regeln, die beschreiben, welche IPv6-Pakete vom Router an ein anderes Ziel weitergeleitet werden sollen. Für eine genauere Beschreibung siehe die Dokumentation der Variable PF_PREROUTING_x.

<<15212>>

Footnotes

... aufbaut.3.8
Eine Ausnahme existiert, wenn auf den LAN-Hosts die so genannten “Privacy Extensions” aktiviert werden, weil dann ein Teil der IPv6-Adresse zufällig generiert wird. Diese Adressen sind jedoch per Definition nicht nach außen hin bekannt und somit für die Firewall-Konfiguration nur bedingt bis gar nicht relevant.