Работа с правилами: #pfctl -f /etc/pf.conf загрузить pf.conf #pfctl -nf /etc/pf.conf анализировать файл, но не загружать #pfctl -Nf /etc/pf.conf загрузить только правила NAT из файла #pfctl -Rf /etc/pf.conf загрузить только правила фильтрации #pfctl -sn показать текущие правила NAT #pfctl -sr показать текущие правила фильтрации #pfctl -ss показать текущее состояние таблиц #pfctl -si показать статистику правил и состояние счетчиков #pfctl -sa показать все
Работа с таблицами: #pfctl -t table -T show показать содержимое таблицы где table - имя таблицы
Редактирование таблиц на лету: #pfctl -t blockedips -T add 192.168.1.1 добавить в таблицу #pfctl -t blockedips -T delete 192.168.1.1 удалить из таблицы
2. Установка Expiretable
Эта утилита, написанная Henrik Gustafsson, просматривает таблицу и удаляет (”истекшие”) записи старше указанного времени.
#cd /usr/ports/sysutils/expiretable
#make && make install clean
Теперь добавим это правило в основной crontab (etc/crontab)
#ee /etc/crontab
*/5 * * * * user /usr/local/sbin/expiretable -t 3600 *table_name_here*
Каждые пять минут, выкидывать записи, которым более одного часа.
3. Установка Pftop
Для более удобного мониторинга работы фильтра можно воспользоваться программой pftop
#cd /usr/ports/sysutils/pftop
#make && make install clean
После того как программа установки закончит копировать файлы, можно воспользоваться командой
#pftop
Она работает аналогично встроенной программе "top" и отображает состояние в реальном времени
На этом все, PF установлен и готов к настройке фильтрации. P.S. На форуме есть примеры рабочих конфигураций с описанием синтаксиса, пользуемся поиском.