Opcje są wykorzystywane do kontroli pracy PF. Są one specyfikowane w
pf.conf przy pomocy dyrektywy set.
Uwaga:
W OpenBSD 3.7 i poźniejszych, zachowanie opcji
startowych uległo zmianie.
Poprzednio, gdy opcja została ustawiona nie była resetowana
do wartości domyślnej, nawet jeśli zestaw reguł był przeładowywany.
Począwszy od OpenBSD 3.7, ilekroć ładowany jest zestaw reguł, opcje
startowe są resetowane do wartości domyślnych przed parsowaniem reguł.
Zatem, jeżeli opcja jest ustawiona i później usunięta z reguł, a następnie
reguły przeładowano, opcja ta zostanie zresetowana do wartości domyślnej.
set block-policy opcja
Ustala domyślną akcję dla reguł filtrującychblock w przypadku odrzucenia pakietu.
drop - pakiet jest porzucany (dropped).
return - wysyła TCP RST przy blokowaniu pakietów TCP,
ICMP Unreachable (nieosiągalny) dla wszystkich pozostałych pakietów.
Warto zauważyć, że indywidualne reguły filtrujące mogą wymuszać inne niż
domyślne zachowanie.
Wartością domyślną jest drop
set debug opcja
Ustaw poziom komunikatów o błędach.
none - brak komunikatów o błędach.
urgent - wyświetlaj komunikaty o poważnych błędach.
misc - wyświetlaj komunikaty o różnych błędach (np
powiadamiaj o statusie normalizacji/scrubber`a dla pakietów oraz
błędów podczas ustanawiania połączeń stanowych).
loud - wyświetlaj komunikaty dla typowych działań
(np powiadamiaj o statusie pasywnego rozpoznawania systemów operacyjnych
[ang. OS fingerprinter]).
frags - maksymalna liczba wpisów w puli pamięci (ang.
memory pool) wykorzystywanych do defragmentacji pakietów (reguły
scrub). Domyślnie jest to 5000.
src-nodes - maksymalna liczba wpisów w puli pamięci
wykorzystywanych do śledzenia źródłowych adresów IP (generowanych przez
opcje sticky-address i source-track).
Domyślnie jest to 10000.
states - maksymalna liczba wpisów w puli pamięci
wykorzystywanych przez wpisy tabeli stanów (reguły
filtrujące, które zawierają opcje
keep state). Domyślnie jest to 10000.
tables - maksymalna liczba
tablic które można utworzyć.
Domyślnie jest to 1000.
table-entries - górny limit liczby adresów jakie mogą
być przechowywane we wszystkich tablicach.
Domyslnie jest to 200000.
Jeżeli system posiada mniej niż 100MB pamięci fizycznej, wartość
domyślna ustawiana jest na 100000.
set loginterface interfejs
Ustaw interfejs sieciowy, dla którego PF powinno zbierać statystyki takie
jak ilość wysłanych/odebranych bajtów, liczba przepuszczonych/zablokowanych
pakietów, itp. Statystyki mogą być zbierane tylko dla jednego interfejsu
na raz. Proszę zwrócić uwagę na fakt, że liczniki match,
bad-offset, itp, oraz liczniki tabeli stanów są cały czas aktywne bez
względu na to, czy opcja loginterface jest ustawiona, czy nie.
Aby wyłączyć tą opcję, ustaw ją na none.
Wartością domyślną jest none.
set optimization option
Optymalizacja PF dla jednego z następujących środowisk sieciowych:
normal - właściwe dla prawie wszystkich sieci.
high-latency - środowisko z dużymi opóźnieniami
(takie jak połączenia satelitarne).
aggressive - agresywnego przeterminowywana połączeń w tabeli
stanów. Powoduje to ogólną redukcje zużycia pamięci na obciążonych
firewallach kosztem ryzyka zbyt wczesnego porzucania nawiązanych połączeń.
conservative - bardzo zachowawcze ustawienie, zapobiegające
zrywaniu nawiązanych połączeń kosztem większego zużycia pamięci i przy
nieznacznym wzroście wykorzystania procesora.
Wartością domyślną jest normal.
set ruleset-optimization option
Kontroluje działanie mechanizmu optymalizacji zestawu reguł PF.
usuwa reguły które stanowią fragmenty innej reguły
łączy wiele reguł w tabelę gdy jest to korzystne
zmienia kolejność reguł aby zwiększyć wydajność klasyfikacji
profile - uzywa obecnie załadowanych reguł jako profil
odniesienia do uporządkowania reguł "quick" w zależności od ruchu sieciowego.
Od wersji OpenBSD 4.2 domyślnie używane jest basic.
Bardziej szczegółowy opis znajdziesz na stronie manuala
pf.conf(5).
set skip on interfejs
Opuszcza wszystkie procedury PF dla zadanego interfejsu.
Może być przydatne dla interfejsu loopback dla ktorego filtrowanie,
normalizacja, kolejkowanie, itd., nie jest wymagane.
Opcja ta może być używana wielokrotnie.
Domyślnie nie jest ona ustawiona.
set state-policy opcja
Określa domyślne zachowanie PF odnośnie śledzenia stanów.
Oczywiście, można je nadal określić dla poszczególnych reguł indywidualnie.
Zobacz także Śledzenie stanów.
if-bound - stany są dowiązywane do interfejsów
na których je stworzono.
Jeśli ruch pasuje do wpisów w tabeli stanów, ale przechodzi przez
inny interfejs sieciowy niż zapisany w tabeli stanów, jest odrzucany.
Pakiet musi pasować do innej reguły lub zostanie porzucony i zablokowany
jednocześnie.
group-bound - podobne zachowanie do if-bound
z tym wyjątkiem, że pakiety mogą przechodzić przez różne interfejsy w obrębie
tej samej grupy, np wszystkich interfejsów ppp itp.
floating - stany mogą pasować do pakietów na dowolnym
interfejsie.
Tak długo jak pakiet pasuje do wpisu w tabeli stanów i przechodzi w tym
samym kierunku w jakim przechodził kiedy stan został wygenerowany, nie ma
znaczenia na przez jaki interfejs przechodzi, zostanie przepuszczony.
Opcja domyślna to floating.
set timeout option value
Ustawia różne timeout'y (w sekundach).
interval - odstęp czasu (w sekundach) pomiędzy usunięciem
wygasłych stanów i fragmentów.
Wartością domyślną jest 10.
frag - ilość sekund, po których niezłożone fragmenty tracą ważność.
Wartością domyślną jest 30.
src.track - ilość sekund do przetrzymania wpisu
source tracking w pamięci
po tym jak przedawni się ostatni stan.
Wartością domyślną jest 0 (zero).
Przykład:
set timeout interval 10
set timeout frag 30
set limit { frags 5000, states 2500 }
set optimization high-latency
set block-policy return
set loginterface dc0
set fingerprints "/etc/pf.os.test"
set skip on lo0
set state-policy if-bound