PF Опции
Различные опции для управления поведением PF.
# ee /usr/src/tools/tools/tinybsd/conf/wireless/etc/pf.conf ... # Options: tune the behavior of pf, default values are given. # Указаны значения по умолчанию #set timeout { interval 10, frag 30 } #set timeout { tcp.first 120, tcp.opening 30, tcp.established 86400 } #set timeout { tcp.closing 900, tcp.finwait 45, tcp.closed 90 } #set timeout { udp.first 60, udp.single 30, udp.multiple 60 } #set timeout { icmp.first 20, icmp.error 10 } #set timeout { other.first 60, other.single 30, other.multiple 60 } #set timeout { adaptive.start 0, adaptive.end 0 } #set limit { states 10000, frags 5000 } #set loginterface none #set optimization normal #set block-policy drop #set require-order yes #set fingerprints "/etc/pf.os" ...
set limit states 250000 # Менять пришлось т.к. переполнялась таблица NAT и правила с keep state set optimization aggressive # изменяет тайминги, которые можно посмотреть pfctl -st.
После изменения предельные значения можно проверить так
> pfctl -sm states hard limit 250000 src-nodes hard limit 10000 frags hard limit 5000 tables hard limit 1000 table-entries hard limit 200000
set loginterface interface
Задать интерфейс для которого пакетный фильтр собирает статистическую информацию: количество прошедших пакетов, количество заблокированных пакетов, сколько байт вошло, сколько вышло. Статистику можно собирать одновременно только на одном интерфейсе. При этом, счётчики match, bad-offset и т.п., а также счётчики в таблице состояний, работают независимо от этой опции. Чтобы отключить сбор статистики следует выставить опцию в none. Значение по умолчанию — none.
Просмотреть статистику можно при помощи команды pfctl с опцией -s info.
set block-policy option
Установить поведение по умолчанию для правил фильтра, когда срабатывает правило block. Возможные варианты:
- drop — пакет молча отбрасывается;
- return — для отброшенных пакетов TCP отсылается пакет TCP RST, для прочих ICMP Unreachable.
В конкретных правилах значение опции может быть переопределено. Умолчание — drop
set limit option value
Установить предел для различных опций:
- frags — Максимальное количество записей в пуле отвечающем за нормализацию трафика (scrub). По умолчанию — 100.
- src-nodes — Максимальное количество записей в пуле отвечающем за отслеживание исходящих IP адресов. (Пул генерируется правилами с ключевыми словами sticky-addressи source-track). Умолчание — 10000.
- states — Максимальное количество вхождений в пул отвечающий за состояние таблицы состояний соединений (Которая заводится при помощи правил с ключевой фразой keep state). Умолчание 10000.
Допустим синтаксис: set limit { states 20000, frags 20000, src-nodes 2000 }
set optimization value
Установить оптимизацию пакетного фильтра для различного поведения сети:
- normal — подходит ко всем сетям.
- high-latency — подходит для сетей работающих с большими задержками, например через спутник.
- aggressive — агрессивно очищать таблицу состояний. Это может существенно уменьшить требования к памяти на загруженном брандмауэре, однако связано с риском преждевременного разрыва соединений.
- conservative — крайне консервативный брандмауэр. Предотвращает разрыв соединений, однако приводит к большому расходу памяти.
Умолчание —normal
set debug option
Установить уровень отладки для пакетного фильтра:
- none — не показывать отладочных сообщений;
- urgent — отладочные сообщения показываются для серьёзных ошибок.
- misc — отладочные сообщения выводятся для различных ошибок (помогает узнать состояние системы нормализации трафика (scrub) и ошибки в работе таблицы состояний);
- loud — oтладочные сообщения общего плана (позволяет изучать сообщения от системы osfp).
Умолчание — urgent. Уровень отладки можно также изменять при помощи команды pfctl (опция -x). Например:
> pfctl -x loud debug level set to 'loud'
set state-policy value
Поведение пакетного фильтра при использовании таблицы состояний. Это поведение может быть переопределено в конкретных правилах фильтрации:
- if-bound — Состояние привязывается к конкретному интерфейсу, через который прошёл первый пакет. Если ответ пришёл через другой интерфейс, он не будет соответствовать данному соединению.
- group-bound — то же, но привязано к группе интерфейсов (в OpenBSD, но не в FreeBSD, интерфейсы можно объединять в группы).
- floating — Записи в таблице состояний не привязаны к интерфейсам.
Умолчание — floating
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах