Инструменты пользователя

Инструменты сайта


pf

**Это старая версия документа!**

Утилиты для работы с pf

pftop -a ← Вывести подробный мониторинг текущих сессий
pfctl -nf /path/to/filewall.conf ← Проверить на наличие синтаксических ошибок конфигурационный файл с правилами для pf
pfctl -f /path/to/filewall.conf ← Загрузить правила из файла
pfctl -e ← Включить фаервол
pfctl -d ← Отключить фаервол

Основы работы с pf

  1. У pf есть одна особенность в его работе, перед другими фаерволами и это то, что он применяет действие в отношение пакета по его последнему совпадению с правилами а не до первого совпавшего, как в остальных. Т.е. если у вас сначала идёт запрещающее правило а после разрешающее, то будет выполнено последнее совпавшее, т.е. разрешить.
  2. Так же вам необходимо иметь поддержку утилит для работы с pf (описано в Сюды)
  3. Так же pf поддерживает подключаемые таблицы с IP адресами
  4. Для включения фаервола, необходимо приписать его в /etc/rc.conf:
    Прописываем в конфиг такие строки
    pfenable=«YES»
    pf
    rules=«/etc/firewall/pf.conf»
    ← пусть к файлу может быть любой
    pfflags=««
    pflogenable=«YES» ← включаем поддержку ведения логов (по желанию)
    pfloglogfile=»/var/log/firewall/pflog» ← путь к лог файлам
    pflogflags=««
    gateway_enable=«YES» ← включать только, если за нашим хостом находится локальная сеть (необходимо для поддержки NAT)
    Создаём файл с правилами, touch /etc/firewall/pf.conf и включаем pf, kldload pf.ko && /etc/rc.d/pf start && /etc/rc.d/pflog start
    Теперь у нас всё готово для начала того, что бы писать правила для нашего фаервола !
    ====== Правила ====== Открываем наш конфиг vim /etc/firewall/pf.conf
    homenet=«172.16.17.0/24» ← Создаём переменную, где описываем нашу внутреннюю сеть
    vext=«ext0» ← Наш внешний интерфейс, который смотрит в мир
    v17=«vlan17» ← Интерфейс, за которым находится 17я сеть
    v16=«vlan16»
    ms=«modulate state» ← описываем состояние
    kp=«keep state»
    icmp_types=»{echoreq unreach}« ← описываем желаемые типы ICMP
    director=«172.16.17.17»
    admin=«172.16.16.2»
    tcp4=«inet proto tcp» ← описываем желаемые протоколы
    udp4=«inet proto udp»
    icmp=«inet proto icmp»
    esp =«inet proto esp»
    set optimization aggressive
    set skip on lo0
    set block-policy drop
    set limit { states 500000, src-nodes 500000, frags 50000 }
    set limit { table-entries 500000, tables 500000 }
    scrub in on ext0 all fragment reassemble
    scrub in all
    antispoof log quick for ext0 inet
pf.1426587246.txt.gz · Последнее изменение: 2015/03/17 13:14 (внешнее изменение)