Отслеживание    статистики    для    каждого    правила    с помощью меток (Labels)

Последовательную информацию вы получаете из соответствующих данных журнала

основанных  на  отслеживании  движения  пакета  во  времени.  В  других   контекстах, последовательность  или  история  соединений  менее  важна,  чем  агрегация,  так  как количество пакетов или байтов, соответствующих правилу, в дальнейшем очищаются. В конце главы 2, вы видели, как использовать  pfctl  -s info для просмотра глобальных счётчиков, наряду с прочими  данными.  Для подробной разбивки данных, отслеживание глобального трафика основывается на правиле с несколько иной формой команды pfctl, такой как pfctl -vs rules, для отображения статистики правила, как показано далее:

$ pfctl -vs rules

pass inet proto tcp from any to 192.0.2.225 port = smtp flags S/SA keep state label "mail-in" [ Evaluations: 1664158 Packets: 1601986 Bytes: 763762591 States: 0 ]

[ Inserted: uid 0 pid 24490 ]

pass inet proto tcp from 192.0.2.225 to any port = smtp flags S/SA keep state label "mail-out" [ Evaluations: 2814933 Packets: 2711211 Bytes: 492510664 States: 0 ]

[ Inserted: uid 0 pid 24490 ]

Такой формат вывода легко читаем, и, очевидно, предназначен для контекста в котором вы хотите получить представление о том, что происходит на первый взгляд. Если указать ещё более подробный вывод с pfctl -vvc rules, вы увидите тот же вывод, с добавленными номерами  правил.  С  другой  стороны,  вывод  этой  команды  не  очень  подходит  для передачи в сценарий или программы для дальнейшей обработки Для извлечения данных в формате более удобном для обработки используйте правило labels.

labels  делают  больше, чем  просто  определяют правила  обработки  отдельных  видов трафика, они облегчают извлечение статистики трафика. Добавив labels к правилам, вы можете сохранить некоторые дополнительные данные о части вашего набора правил.

Например, вы можете использовать маркировку (labeling) для измерения  пропускной способности в целях учёта. В следующем примере мы присоединим labels mail-in и mail- out   на   ваши   правила   pass   для   входящего   и   исходящего   почтового   трафика, соответственно.

pass log proto { tcp, udp } to $emailserver port smtp label "mail-in"

pass log proto { tcp, udp } from $emailserver to port smtp label "mail-out"

После загрузки набора правил с метками, можно проверить данные используя  команду pfctl -vsl:

$ sudo pfctl -vsl

1             2             3                4              5

6             7

8

mail-in   1664158 1601986 763762591 887895

682427415 714091

81335176

mail-out 2814933 2711211 492510664 1407278

239776267 1303933

252734397

Этот вывод содержит следующую информацию:

1.  метка

2.  Сколько раз оценивались правила

3.  Общее количество прошедших пакетов

4.  Общее число прошедших байт

5.  Количество пакетов пропущенных в (in)

6.  Количество байт пропущенных в (in)

7.  Количество пакетов пропущенных из (out)

8.  Количество байт пропущенных из (out)

Формат весьма хорошо подходит для разбора скриптами и приложениями.

labels  накапливает  данные  с  момента  загрузки  набора  правил  до  момента  сброса счётчиков. Во многих контекстах, имеет смысл создать  задание cron’а которое будет читать значение меток через фиксированные промежутки времени, а затем помещать их в постоянное хранилище.

Если вы решили запустить сбор данных через определённые промежутки времени, для подсчёта собранных данных используйте команду pfctl -vszl. Опция z сбрасывает счётчики после  их  подсчёта  pfctl,  в  результате  чего   ваш   сборщик  данных  будет  иметь периодические  выборки  данных,  накопленные  последней  запущенной  командой  или сценарием.

Замечание

Правила с макросами и списки расширяются до нескольких правил. Если ваш набор правил содержит списки  или макросы, имеющие метки, результатом в памяти будет ряд правил, разделяемых одинаковыми именами меток прикреплённых к ним. Хотя

это может привести к неожиданным выводам sudo pfctl -vsl, это не должно стать проблемой до тех пор, пока приложение или скрипт получающий данные может их правильно интерпритировать путём суммирования итогов для идентичных меток.

Источник: Книга о PF, by Peter N.M. Hansteen, Перевод выполнил Михайлов Алексей aka iboxjo

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий