pfctl [-AdeghmNnOoqRrvz] [-a закладка] [-D макрос=значение]
[-F модификатор ] [-f файл] [-i интерфейс] [-k хост] [-p устройство]
[-s модификатор] [-t таблица -T команда [адрес ...]] [-x уровень]
-A
Загружать только правила очередей, содержащиеся в файле правил. Другие правила и опции игнорируются.-a закладка
# pfctl -a foo/bar -t mytable -T add 1.2.3.4 5.6.7.8
-D макрос=значение
Определить указанный макрос и его значение в командной строке. При этом макрос в наборе правил перезаписывается.-d
Деактивировать фильтр пакетов.-e
Активировать фильтр пакетов.-F модификатор
Очистить параметры фильтра, определенные модификатором (можно использовать сокращенный вариант):nat – очистить правила NAT.
queue – очистить правила очередей.
rules – очистить правила фильтрации.
state – очистить таблицу состояний (NAT и фильтрации).
Sources – очистить таблицу отслеживания источника.
info – очистить информацию фильтрации (статистические данные, не связанные с правилами).
Tables – очистить таблицы.
osfp – очистить пассивные отпечатки операционной системы.
all – очистить все вышеуказанные данные.
-f файл
-g
Включать выходные данные ( полезно при отладке).-h
Вывести справочную информацию.-i интерфейс
Ограничить операцию указанным интерфейсом.-k хост
# pfctl -k host
Для уничтожения всех записей состояния между хостами host1 и host2 введите следующее значение:
# pfctl -k host1 -k host2
-m
# echo "set loginterface fxp0" | pfctl -mf -
-N
Загружать только правила NAT, присутствующие в файле правил. Другие правила и опции игнорируются.-n
Фактически не загружать правила; выполнять только синтаксический анализ.-O
(прописная "О") Загружать только опции, присутствующие в файле правил. Другие правила и опции игнорируются.-o
удаляет дублированные правила;
удаляет правила, являющиеся подмножеством другого правила;
объединяет несколько правил в таблицу, если это целесообразно;
переопределяет порядок правил для повышения эффективности выполнения.
-p устройство
Использовать вместо устройства по умолчанию /dev/pf файл устройство.-q
Вывести только ошибки и предупреждения.-R
Загрузить только правила фильтрации, содержащиеся в файле правил. Другие правила и опции игнорируются.-r
Выполнять обратный поиск DNS для выводимых состояний.-s модификатор
Вывести параметры фильтра, определенные модификатором (можно использовать сокращенный вариант):nat – вывести правила NAT, загруженные в настоящий момент.
queue – вывести правила очередей, загруженные в настоящий момент. В случае использования вместе с опцией -v команда pfctl также выводит статистику для каждой очереди. В случае использования вместе с опцией -v -v команда pfctl работает в цикле и раз в пять секунд выводит обновленную статистику очереди, в т.ч. измеренное значение пропускной способности и число пакетов в секунду.
rules – вывести правила фильтрации, загруженные в настоящий момент. В случае использования вместе с опцией -v команда pfctl также выводит статистику для каждого правила (количество реализаций, пакетов и байтов).
Обратите внимание, что при автоматической оптимизации skip step, выполняемой io-pkt, реализация правил пропускается при наличии такой возможности. Учет пакетов, переданных с запоминанием состояния, ведется в правиле, создавшем состояние (даже если реализация правила выполняется только один раз для всего соединения).
Anchors – выводить загруженные в настоящий момент закладки, непосредственно присоединенные к главному набору правил. Если также указана опция -a закладка, вместо этих закладок выводятся закладки, загруженные непосредственно под данной закладкой. Если указана опция -v, все закладки, присоединенные под целевой закладкой, выводятся в рекурсивном режиме.
state – вывести содержимое таблицы состояний.
Sources – вывести содержимое таблицы отслеживания источника.
info – вывести информацию о фильтре (статистику и счетчики). В случае использования вместе с опцией - v также выводится статистика отслеживания источника.
labels – вывести статистику для отдельных правил фильтрации с метками (метка, реализации, пакеты, байты). Эту команду удобно использовать в целях учета.
timeouts – вывести текущие глобальные таймауты.
memory – вывести текущие жесткие ограничения пула памяти.
Tables – вывести список таблиц.
osfp – вывести список отпечатков операционных систем.
Interfaces – вывести список интерфейсов и драйверов интерфейсов, доступных фильтру пакетов. В случае использования вместе с удвоенной опцией -v утилита pfctl также выводит статистику по интерфейсам. С помощью опции -i можно осуществлять выбор интерфейса или группы интерфейсов.
all – вывести все вышеописанные данные кроме списка интерфейсов и отпечатков операционных систем.
-T команда [адрес ...]
Указать команду (можно использовать сокращенный вариант) для применения к таблице. Доступны следующие команды:kill – уничтожить таблицу.
flush – сбросить все адреса таблицы.
add – добавить один или несколько адресов в таблицу. Несуществующая таблица создается автоматически.
delete – удалить один или несколько адресов из таблицы.
replace – заменить адреса в таблице. Несуществующая таблица создается автоматически.
show – вывести содержимое (адреса) таблицы.
test – проверить указанные адреса на совпадение с таблицей.
zero – очистить всю статистику в таблице.
load – загрузить только определения таблицы из файла pf.conf. Эта команда используется вместе с опцией -f, как в следующем примере:
# pfctl -Tl -f pf.conf
A – адрес или сеть добавлены.
C – адрес или сеть изменены (отменены).
D – адрес или сеть удалены.
M – совпадение адреса (только для тестирования).
X – адрес или сеть дублируются и, следовательно, игнорируются.
Y – невозможно добавить адрес или сеть из-за конфликтующих атрибутов !.
Z – адрес или сеть очищены (статистика).
# printf "table { ftp.NetBSD.org }\n \
pass out to keep state\n" | pfctl -f-
# ping -qc10 ftp.NetBSD.org
# pfctl -t test -vTshow
129.128.5.191
Cleared: Thu Feb 13 18:55:18 2003
In/Block: [ Packets: 0 Bytes: 0 ]
In/Pass: [ Packets: 10 Bytes: 840 ]
Out/Block: [ Packets: 0 Bytes: 0 ]
Out/Pass: [ Packets: 10 Bytes: 840 ]
# pfctl -vvsTables
--a-r- test
Addresses: 1
Cleared: Thu Feb 13 18:55:18 2003
References: [ Anchors: 0 Rules: 1 ]
Evaluations: [ NoMatch: 3496 Match: 1 ]
In/Block: [ Packets: 0 Bytes: 0 ]
In/Pass: [ Packets: 10 Bytes: 840 ]
In/XPass: [ Packets: 0 Bytes: 0 ]
Out/Block: [ Packets: 0 Bytes: 0 ]
Out/Pass: [ Packets: 10 Bytes: 840 ]
Out/XPass: [ Packets: 0 Bytes: 0 ]
c – константные таблицы, которые могут быть изменены только в pf.conf.
p – постоянные таблицы, которые не уничтожаются автоматически при отсутствии правил со ссылками на них.
a – таблицы, входящие в активный набор таблиц. Таблицы без этого флага в действительности не существуют, не могут содержать адреса и выводятся только в том случае, если указана опция -g.
i – таблицы, входящие в неактивный набор таблиц. Во время загрузки файла pf.conf этот флаг может использоваться только непродолжительное время.
r – таблицы, ссылки на которые содержатся в правилах.
h – таблица в основном наборе правил, скрытая в одной или нескольких таблицах с одинаковым именем от закладок, присоединенных ниже.
-t таблица
Указать имя таблицы.-v
-x уровень
Установить один из следующих уровней отладки (можно использовать сокращение):none – не создавать сообщения отладки.
urgent – создавать сообщения отладки только для серьезных ошибок.
misc – создавать сообщения отладки для различных ошибок.
loud – создавать сообщения отладки для общих условий.
-z
/etc/pf.conf
Файл правил фильтрации пакетов./etc/pf.os
База данных пассивных отпечатков ОС.