C.5. Программы для удобной работы с пакетным фильтром

[+]C.5.1. pfstat
[+]C.5.2. pftop
[+]C.5.3. ftpsesame

C.5.1. pfstat

pfstat — небольшая утилита, собирающая статистику при помощи пакетного фильтра и предоставляющая её в графическом виде, подобно широко известной программе mrtg. Устанавливается из порта sysutils/pfstat.

Программа должна регулярно запускаться при помощи cron. Сбор статистики при этом должен быть включён либо командой

# pfctl -i sis0
        

Либо при помощи опции

set loginterface sis0
        

в pf.conf(5). Просмотр отчёта осуществляется из браузера при помощи cgi сценария.

pfstat
interface sis0 pass bytes ipv4, states

pfstat-states
states inserts, removals, searches

pfstat-packets
interface sis0 pass/block packets ipv4

pfstat-queues
interface sis0 queues

pfstat-errors
global counters

Другая аналогичная программа — symon (порт sysutils/symon). symon собирает разнообразную статистику (не только по пакетному фильтру, но так же загруженность CPU и т.п.) и отправляет её на общий сервер, где она хранится в единой базе данных RRDtool (порт net/rrdtool, Round Robin Database). Из этой базы можно строить разнообразные картинки.

C.5.2. pftop

Программа pftop устанавливается из порта sysutils/pftop.

Назначение программы: сбор статистики о коннектах в режиме on-line (подобно программе top(1)). Программа непрерывно изучает таблицу состояний и выводит информацию о её содержимом:

$ pftop
pfTop: Up State 1-46/175, View: default, Order: none, Cache: 10000                                11:59:30

PR   DIR SRC                  DEST                      STATE                AGE       EXP   PKTS    BYTES
tcp  In  172.19.0.34:60730    172.19.0.2:22    ESTABLISHED:ESTABLISHED  02:58:55  23:59:40  22192  3862199
tcp  In  172.19.0.34:34489    172.19.0.2:22    ESTABLISHED:ESTABLISHED  03:04:41  23:08:18    818   123203
tcp  In  172.19.0.34:43768    172.19.0.2:22    ESTABLISHED:ESTABLISHED  01:36:42  22:26:49    837   123931
tcp  In  81.26.141.122:40448  172.19.0.2:80     FIN_WAIT_2:FIN_WAIT_2   00:00:12  00:01:23     18     9917
tcp  In  81.26.141.122:44774  172.19.0.2:80     FIN_WAIT_2:FIN_WAIT_2   00:00:12  00:01:24    111    95323
tcp  In  66.249.72.142:65077  172.19.0.2:80    ESTABLISHED:ESTABLISHED  00:00:09  24:00:00    950   905145
tcp  In  66.249.72.142:63902  172.19.0.2:80     FIN_WAIT_2:FIN_WAIT_2   00:00:20  00:01:16     19     8588
tcp  In  91.192.58.182:2701   172.19.0.2:80     FIN_WAIT_2:FIN_WAIT_2   00:00:02  00:01:28      7      296
tcp  In  91.192.58.182:2708   172.19.0.2:80      TIME_WAIT:TIME_WAIT    00:00:02  00:01:29     17    12235
udp  Out 172.19.0.2:61667     192.129.4.1:53      MULTIPLE:SINGLE       00:00:32  00:00:00      4      620
udp  Out 172.19.0.2:61667     194.105.16.1:53     MULTIPLE:SINGLE       00:00:23  00:00:07      2      214
udp  Out 172.19.0.2:61667     193.231.32.1:53     MULTIPLE:SINGLE       00:00:32  00:00:00      2      211
udp  Out 172.19.0.2:61667     212.118.58.1:53     MULTIPLE:MULTIPLE     00:00:33  00:00:27      8      600
udp  Out 172.19.0.2:61667     193.110.75.1:53     MULTIPLE:MULTIPLE     00:00:57  00:00:13      4      532
...................
        

Внешний вид зависит от ширины терминала. Данный скриншот получен при помощи xterm(1), но если изучать вывод в обычном терминале шириной 80 символов, состояния будут даны лишь цифрами, Направление (DIR) будет дано одной буквой и т.д.

У программы есть опции позволяющие менять формат вывода данных.

См. так же Пример C.3, «Просмотр таблицы состояний».

C.5.3. ftpsesame

Порт ftp/ftpsesame может применяться для проксирования трафика FTP через пакетный фильтр. В последних выпусках пакетного фильтра в OpenBSD функционал этой программы вошёл в программу ftp-proxy, отднако в других системах: FreeBSD, NetBSD, DragonFly BSD, можно использовать ftpsesame для осуществления проброса FTP.

Программа ftpsesame осуществляет управление пакетным фильтром на лету при помощи якорей. См. Раздел C.2.3.3.2, «FTP клиент за брандмауэром» и Раздел C.2.3.3.4, «FTP сервер защищённый внешним пакетным фильтром с запущенным на нём NAT».