[Zurück: Konfiguration] [Inhalt] [Weiter: Tabellen]
Wann immer pfctl(8) während des Einlesens der Regeln auf eine Liste trifft erzeugt es mehrfache Regeleinträge daraus, einen für jeden Eintrag in der Liste. zB.:
block out on fxp0 from { 192.168.0.1, 10.5.32.6 } to any
wird erweitert zu:
block out on fxp0 from 192.168.0.1 to any
block out on fxp0 from 10.5.32.6 to any
Innerhalb einer Regel können mehrfache Listen vorkommen. Listen sind nicht darauf beschränkt nur in Filterregeln vorzukommen:
rdr on fxp0 proto tcp from any to any port { 22 80 } -> \
192.168.0.6
block out on fxp0 proto { tcp udp } from { 192.168.0.1, \
10.5.32.6 } to any port { ssh telnet }
Die Kommata zwischen den Listeneinträgen sind optional.
Makronamen müssen mit einem Buchstaben beginnen und können außer Buchstaben noch Zahlen und Unterstriche enthalten. Reservierte Bezeichnungen wie pass, out oder queue dürfen nicht als Makroname verwendet werden.
ext_if = "fxp0"
block in on $ext_if from any to any
Dieser Eintrag erzeugt ein Makro mit dem namen ext_if. Wird ein definiertes Makro später aufgerufen, wird dem Namen ein $ vorangestellt.
Makros können auch aus Listen bestehen, wie zB.:
friends = "{ 192.168.1.1, 10.0.2.5, 192.168.43.53 }"
Es ist möglich Makros rekursiv zu definieren. Da die Werte der Makros die innerhalb von Anführungszeichen stehen nicht ausgelesen werden, muss die folgende Syntax verwendet werden:
host1 = "192.168.1.1"
host2 = "192.168.1.2"
all_hosts = "{" $host1 $host2 "}"
Das Makro $all_hosts enthält nun den Wert 192.168.1.1, 192.168.1.2.
[Zurück: Konfiguration] [Inhalt] [Weiter: Tabellen]