Управление фильтром пакетов PF производится с помощью pfctl(8). Если правила не содержат ошибок, pfctl(8) не выводит никаких сообщений - эта утилита осуществляет вывод на экран только при наличии ошибок. Так как ошибки в брандмауэре могут причинить немало бед, лучше тщательно проверить их перед активизацией. Правила проверяются только на наличие грамматических ошибок, так как активизация правил с грамматическими ошибками либо оставит систему незащищенной, либо заблокирует доступ к ней. Для проверки файла с правилами на наличие проблем используется ключ -п, чтобы указать имя файла, используется ключ -f.
# pfctl -nf /etc/pf.conf
Если были обнаружены ошибки - исправьте их и повторите попытку. Если программа не вывела никаких сообщений, можно активизировать набор правил, убрав ключ -п.
# pfctl -f /etc/pf.conf
Изменение настроек PF выполняется очень быстро, таким образом, у вас могут быть несколько наборов правил для различных ситуаций. Например, вы можете разрешать доступ к определенным службам только в определенное время суток, для чего достаточно запланировать запуск pfctl для активизации соответствующего набора правил в заданный момент времени. У вас также может иметься набор правил, специально предназначенный для установки на период ликвидации аварийных ситуаций, или специальные правила на случай потери соединения с Интернетом. Реализовать все это с помощью pfctl(8) не составляет большого труда.
При желании, использовав команду pfctl -sr, можно увидеть текущий набор правил.
# pfctl -sr
О No ALTQ support in kernel ALTQ related functions disabled scrub in all ©fragment reassemble block drop in on ©emO all
pass in on wiO inet proto tcp from 192.168.1.0/24 to 192.168.1.201 port = ssh flags S/SA keep state
На запуске PF сообщает о недоступности чего-то, что называется ALTQ О. Что это такое, вы узнаете в следующем разделе. Затем выводятся правила с дополнительными параметрами, используемыми по умолчанию ©. При выводе правил на место макроопределений pfctl(8) подставляет истинные значения ©, которые были указаны в конфигурации, затем утилита подтверждает, что эти правила используются уже несколько недель или месяцев с момента, когда они были загружены.
Наконец, чтобы удалить все правила, используются ключи -Fa (flush all - очистить все).
# pfctl -Fa
Вам время от времени придется наблюдать, как PF очищает все правила, настройки NAT и все остальное. Не требуется очищать наборы правил перед загрузкой новых наборов - достаточно просто загрузить новые правила, и старые автоматически будут удалены.
Фильтр пакетов PF обладает очень широкими возможностями и может нарушить работу TCP/IP любыми способами, которые вам понравятся (и некоторыми, которые вам точно не понравятся). Мы лишь слегка коснулись того, что лежит на поверхности.
Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2009. - 864 е., ил.

November 21st, 2011
admin
Опубликовано в рубрике