[OpenBSD]

[Wstecz: Pierwsze kroki] [Spis treści] [Dalej: Tabele]

PF: Listy i makra


Spis treści


Listy

Listy pozwalają na podawanie wielu podobnych kryteriów w jednej regule. Na przykład, wielu protokołów, numerów portów, adresów, itp. Dzięki temu, zamiast pisać regułę filtrującą dla każdego adresu IP, który ma być blokowany, można zapisać te adresy IP w postaci listy. Listy są definiowane poprzez wymienienie elementów w nawiasach klamrowych ({ }).

Gdy pfctl(8) napotyka listę podczas ładowania zestawu reguł, tworzy wiele regułek, po jednej dla każdego elementu z listy. Na przykład:

block out on fxp0 from { 192.168.0.1, 10.5.32.6 } to any

jest rozwijane do:

block out on fxp0 from 192.168.0.1 to any
block out on fxp0 from 10.5.32.6 to any

Wiele list może być wyspecyfikowanych w jednej regule. Listy nie są ograniczone jedynie do reguł filtrujących:

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 }

Zwróć uwagę, że przecinki pomiędzy elementami list są opcjonalne.

Makra

Makra są definiowanymi przez użytkownika zmiennymi które mogą przechowywać adresy IP, numery portów, nazwy interfejsów sieciowych, itp. Makra mogą ograniczyć komplikację zestawu reguł PF, a także powodują, że wprowadzanie zmian jest znacznie prostsze.

Nazwy makr muszą zaczynać się od litery i mogą zawierać: litery, cyfry oraz podkreślniki. Nazwy makr nie mogą być zarezerwowanymi słowami, takimi jak pass, out, queue, itp.

ext_if = "fxp0"

block in on $ext_if from any to any

W tym przykładzie utworzono makro ext_if. Gdy odwołuje się do makra po jego zdefiniowaniu, robi się to poprzedzając jego nazwę znakiem $.

Makra mogą być także listami, jak np:

friends = "{ 192.168.1.1, 10.0.2.5, 192.168.43.53 }"

Makra mogą być definiowane rekursywnie. Ponieważ makra nie są rozszerzane pomiędzy nawiasami, stosuje się następującą składnię:

host1 = "192.168.1.1"
host2 = "192.168.1.2"
all_hosts = "{" $host1 $host2 "}"

Makro $all_hosts jest teraz rozszerzane do 192.168.1.1, 192.168.1.2.

[Wstecz: Pierwsze kroki] [Spis treści] [Dalej: Tabele]


[wstecz] www@openbsd.org
Originally [OpenBSD: macros.html,v 1.9 ]
$Translation: macros.html,v 1.5 2004/01/12 17:37:45 pl-team Exp $
$OpenBSD: macros.html,v 1.5 2004/01/16 21:01:34 jufi Exp $