[OpenBSD]

[Předchozí: Konfigurace] [Obsah] [Dále: Tabulky]

PF: Seznamy a makra


Obsah


Seznamy

Seznamy umožňují specifikovat vícenásobná podobná kriteria v jednom pravidle. Například vícenásobné protokoly, čísla portů, adresy apod. Takže místo psaní zvláštního pravidla pro každou IP adresu, která má být blokována, může být napsáno jedno pravidlo specifikující IP adresy v seznamu. Seznamy se definují vyjmenování položek mezi složenými závorkami { }.

Když pfctl(8) narazí při zpracovávání sady pravidel na seznam, vytvoří více pravidel, jedno pro každou položku seznamu. Například:

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

je expandováno na:

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

Je možné specifikovat více seznamů v jednom pravidle a jejich použití není omezeno pouze na pravidla filtru:

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 }

Všimněte si, že čárky mezi položkami seznamu jsou nepovinné.

Makra

makra jsou uživatelsky definované proměnné, které mohou obsahovat IP adresy, čísla portů, názvy rozhraná apod. Makra mohou snížit složitost sady pravidel a také velmi usnadnit jejich správu.

Makro musí začínat písmenem a může obsahovat písmena, čísla a podtržítka. Název makra nemůže být rezervované slovo jako pass, out, nebo queue.

ext_if = "fxp0"

block in on $ext_if from any to any

Tím je vytvořeno makro pojmenované ext_if. Při odkazování se na makro po jeho vytvoření přidáváme před jeho jméno znak $.

Makro může být také expandováno na seznam, jako třeba:

friends = "{ 192.168.1.1, 10.0.2.5, 192.168.43.53 }"

Makra mohou být definována rekurzivně. Protože makra nejsou expandována uvnitř uvozovek, musí být použita následující syntaxe:

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

Makro $all_hosts bude nyní expandováno na 192.168.1.1, 192.168.1.2.

[Předchozí: Konfigurace] [Obsah] [Dále: Tabulky]


[back] www@openbsd.org
Originally [OpenBSD: macros.html,v 1.6 ]
$Translation: macros.html,v 1.3 2003/11/10 13:34:59 horacio Exp $
$OpenBSD: macros.html,v 1.3 2003/11/10 14:42:48 horacio Exp $