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

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».


Обновлено: 12.03.2015