$ man 8 pfctl
-s modifier
Show the filter parameters specified by modifier (may be abbrevi-
ated):
-s labels Show per-rule statistics (label, evaluations,
packets total, bytes total, packets in, bytes in,
packets out, bytes out) of filter rules with la-
bels, useful for accounting.
-z Clear per-rule statistics.
pf w OpenBSD może gromadzić statystyki dla każdej reguły z osobna. Możliwe to jest po dodaniu słowa kluczowego label i nazwy do reguły. Np.
pass in log on $int_if inet proto tcp from any to <web_hosts> flags S/SA modulate state label web_hosts
Statystyki wyświetlić możemy za pomocą pfctl (stosowny wycinek z podręcznika u samej góry). Wyniki pokazują: nazwę etykiety, ilość ewaluacji danej reguły (ile razy pakiet był do niej dopasowywany), ogólną ilość pakietów, ogólną ilość bajtów pakiety i bajty przychodzące oraz wychodzące (we wcześniejszej wersji tylko liczba dopasowań, pakietów oraz bajtów). Poniżej przykład:
# pfctl -s labels
web_hosts 127242 3955855 3814318564 1422110 83633676 2533745 3730684888
Uwaga! Czasami wynik może być zdublowany:
# pfctl -s labels
klnt001 127242 3955855 3814318564 1422110 83633676 2533745 3730684888
klnt001 63327 0 0 0 0 0 0
Dzieje się tak, gdy w etykietowanej regule używamy list (nawiasów klamrowych). Każda reguła (z listą) rozwiązywana jest na dwie lub więcej osobnych reguł, ale nazwa etykiety pozostaje taka sama. Stąd sugestia, by rozdzielić reguły już przy definicji – pozwoli to ‘połapać’ się w statystykach.
Do poczytania (oprócz wspomnianych FAQ i podręcznika):