Популярные рецепты конфигурации pfSense
В этом разделе собраны наиболее востребованные рецепты конфигурации pfSense. Каждый рецепт включает описание задачи и пошаговую инструкцию. Рецепты рассчитаны на администраторов, знакомых с базовой настройкой pfSense и интерфейсом управления.
Перед выполнением рецептов рекомендуется создать резервную копию конфигурации: Diagnostics - Backup & Restore. Это позволит откатить изменения в случае ошибки.
Прозрачный файрвол (Transparent Bridge)
Прозрачный файрвол работает на втором уровне OSI, фильтруя трафик без изменения IP-адресации сети. pfSense размещается между двумя сегментами сети как невидимый мост, позволяя фильтровать трафик без перенастройки IP-адресов на хостах.
Пошаговая настройка
- Перейдите в Interfaces - Assign и убедитесь, что оба интерфейса (например, WAN и LAN) назначены
- Перейдите в Interfaces - Bridges и создайте мост:
- Member Interfaces - выберите оба интерфейса
- Перейдите в Interfaces - Assign, назначьте созданный мост как новый интерфейс (например, BRIDGE0)
- Настройте IP-адрес на мостовом интерфейсе (для управления pfSense)
- Удалите IP-адреса с исходных интерфейсов-членов моста
- Перейдите в System - Advanced - System Tunables и установите:
net.link.bridge.pfil_member= 0net.link.bridge.pfil_bridge= 1
- Создайте правила файрвола на мостовом интерфейсе для фильтрации трафика
Важно: при работе в режиме моста pfSense не выполняет NAT. Маршрутизация остается на вышестоящем маршрутизаторе. Правила файрвола применяются к мостовому интерфейсу, а не к отдельным членам моста.
DNS over TLS (DoT)
DNS over TLS шифрует DNS-запросы между pfSense и вышестоящими DNS-серверами, защищая их от перехвата и модификации провайдером или злоумышленником.
Пошаговая настройка
- Перейдите в System - General Setup
- Настройте DNS-серверы с поддержкой DoT:
| DNS-сервер | IP-адрес | Hostname (TLS) |
|---|---|---|
| Cloudflare | 1.1.1.1 | cloudflare-dns.com |
| 8.8.8.8 | dns.google | |
| Quad9 | 9.9.9.9 | dns.quad9.net |
- Перейдите в Services - DNS Resolver
- Включите DNS Resolver, если не включен
- Включите DNS Query Forwarding
- Включите Use SSL/TLS for outgoing DNS Queries to Forwarding Servers
- В разделе Custom Options добавьте (опционально):
server:
tls-cert-bundle: "/etc/ssl/cert.pem"- Сохраните и примените изменения
DNS over HTTPS (DoH)
pfSense не поддерживает DoH нативно в DNS Resolver. Для реализации DoH используйте пакет dns-over-https-proxy или настройте перенаправление через Unbound на локальный DoH-прокси. DoT является рекомендуемым вариантом для pfSense.
Блокировка по странам (GeoIP)
GeoIP-блокировка позволяет ограничить трафик из определенных стран. Используется для защиты серверов от массовых атак из регионов, с которыми нет деловых отношений.
Пошаговая настройка
- Зарегистрируйтесь на MaxMind.com и получите бесплатный ключ GeoLite2
- Перейдите в Firewall - Aliases и создайте новый алиас:
- Name - например, Blocked_Countries
- Type - URL Table (IPs)
- URL - укажите URL-файл с IP-диапазонами нужных стран
- Альтернативный подход - установите пакет pfBlockerNG:
- System - Package Manager - Available Packages - pfBlockerNG-devel
- Настройте GeoIP в Firewall - pfBlockerNG - GeoIP
- Выберите континенты и страны для блокировки
- pfBlockerNG автоматически создаст алиасы и правила файрвола
- Создайте правило блокировки на WAN:
Action: Block
Interface: WAN
Source: Blocked_Countries (алиас)
Destination: anyПредупреждение: GeoIP-базы не являются точными на 100%. VPN и прокси-серверы позволяют обойти географическую блокировку. Используйте GeoIP как дополнительный уровень защиты, а не единственный.
Port Knocking
Port knocking - метод скрытия сервисов путем требования последовательности подключений к определенным портам перед открытием доступа. Реализуется через серию правил файрвола с отслеживанием состояний.
Пошаговая настройка
- Определите последовательность портов (например, TCP 7000, TCP 8000, TCP 9000)
- Перейдите в Firewall - Rules - WAN
- Создайте правила для каждого этапа последовательности, используя pf anchors через custom rules или пакет knockd:
Вариант с пакетом:
- Установите пакет через pkg: подключитесь к консоли pfSense
- Создайте файл конфигурации knockd:
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 10
command = /sbin/pfctl -t knock_allowed -T add %IP%
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 10
command = /sbin/pfctl -t knock_allowed -T delete %IP%
tcpflags = syn- Создайте алиас-таблицу
knock_allowedв правилах файрвола - Создайте правило на WAN, разрешающее доступ к SSH с источником из таблицы
knock_allowed
Принудительное перенаправление DNS
Перенаправление DNS заставляет все DNS-запросы из LAN проходить через DNS-сервер pfSense, даже если клиенты указали другие DNS-серверы (например, 8.8.8.8 жестко прописан в устройстве).
Пошаговая настройка
- Перейдите в Firewall - NAT - Port Forward
- Создайте правило перенаправления:
Interface: LAN
Protocol: TCP/UDP
Source: LAN net
Source port: any
Destination: any (Invert Match отключен)
Destination: NOT "LAN Address" (чтобы исключить запросы к самому pfSense)
Destination port: 53
Redirect target IP: 127.0.0.1
Redirect target port: 53- Повторите для DNS over TLS (порт 853), если хотите заблокировать прямые DoT-запросы клиентов:
Action: Block
Interface: LAN
Protocol: TCP
Source: LAN net
Destination: any
Destination port: 853- Убедитесь, что DNS Resolver запущен и привязан к LAN-интерфейсу
Несколько публичных IP-адресов
Сценарий: провайдер предоставил блок публичных IP-адресов, и необходимо направить разные IP на разные внутренние серверы.
Пошаговая настройка
- Перейдите в Firewall - Virtual IPs и добавьте каждый дополнительный публичный IP:
- Type - IP Alias (если IP из той же подсети, что и WAN) или Other (для отдельных подсетей)
- Interface - WAN
- Address - публичный IP-адрес
- Перейдите в Firewall - NAT - 1:1 для создания трансляции один-к-одному:
- Interface - WAN
- External subnet IP - публичный IP
- Internal IP - приватный IP внутреннего сервера
- Или используйте Firewall - NAT - Port Forward для перенаправления конкретных портов:
- Destination - выберите Virtual IP
- Redirect target IP - внутренний IP сервера
- Создайте правила файрвола на WAN для разрешения входящего трафика на Virtual IP
Подробности о настройке NAT описаны в разделе NAT pfSense .
Настройка DMZ
DMZ (Demilitarized Zone) - изолированный сегмент сети для серверов, доступных из интернета. DMZ отделяет публичные серверы от внутренней сети.
Пошаговая настройка
- Подключите третий сетевой интерфейс к pfSense (физический или VLAN)
- Перейдите в Interfaces - Assign и назначьте новый интерфейс
- Настройте интерфейс DMZ:
- IPv4 Address - например, 10.0.100.1/24
- Enable Interface - включить
- Настройте DHCP для DMZ (опционально): Services - DHCP Server - DMZ
- Создайте правила файрвола:
На WAN - разрешить входящий трафик к серверам DMZ:
Action: Pass
Interface: WAN
Destination: DMZ net (конкретные серверы и порты)На DMZ - разрешить серверам выход в интернет, запретить доступ к LAN:
Action: Block
Interface: DMZ
Source: DMZ net
Destination: LAN net
Action: Pass
Interface: DMZ
Source: DMZ net
Destination: anyНа LAN - разрешить доступ из LAN в DMZ (опционально):
Action: Pass
Interface: LAN
Source: LAN net
Destination: DMZ net- Настройте NAT Port Forward для проброса портов с WAN на серверы DMZ
Безопасное удаленное администрирование
Удаленный доступ к веб-интерфейсу pfSense через интернет требует дополнительных мер защиты.
Пошаговая настройка
- Измените порт веб-интерфейса: System - Advanced - Admin Access, установите нестандартный порт HTTPS (например, 8443)
- Ограничьте доступ по IP: создайте алиас с разрешенными IP-адресами администраторов
- Создайте правило на WAN:
Action: Pass
Interface: WAN
Protocol: TCP
Source: Admin_IPs (алиас)
Destination: WAN address
Destination port: 8443Рекомендуемый подход - используйте VPN вместо прямого доступа:
- Настройте OpenVPN или WireGuard на pfSense (раздел VPN )
- Подключайтесь к pfSense через VPN-туннель
- Не открывайте веб-интерфейс на WAN
Включите защиту от перебора: System - Advanced - Login Protection
- Установите порог блокировки (например, 5 попыток за 5 минут)
- Время блокировки - 30 минут
Мониторинг трафика по IP
Отслеживание потребления полосы пропускания каждым хостом в сети.
Пошаговая настройка
Встроенный мониторинг - Status - Traffic Graph:
- Показывает трафик в реальном времени по интерфейсам
- Ограничен текущим моментом, без исторических данных
Пакет ntopng (рекомендуется для детального мониторинга):
- Установите: System - Package Manager - Available Packages - ntopng
- Настройте: Diagnostics - ntopng Settings
- Укажите интерфейсы для мониторинга (LAN, WAN)
- Веб-интерфейс ntopng доступен по адресу https://pfSense_IP:3001
Пакет Darkstat (легковесная альтернатива):
- Установите через Package Manager
- Настройте интерфейсы для мониторинга
- Отображает статистику по хостам и протоколам
Пакет BandwidthD:
- Генерирует графики потребления полосы пропускания по IP
- Хранит исторические данные
- Подходит для отчетности
Для комплексного мониторинга pfSense с использованием Prometheus обратитесь к разделу мониторинг .
VPN с Split DNS
Split DNS позволяет разделить разрешение DNS-имен: корпоративные домены разрешаются через внутренний DNS-сервер через VPN, а остальные - через публичные DNS-серверы.
Пошаговая настройка
Настройте OpenVPN-сервер на pfSense (раздел VPN )
В настройках OpenVPN-сервера:
- Не устанавливайте флаг Redirect IPv4 Gateway (чтобы не направлять весь трафик через VPN)
- В поле DNS Server укажите IP-адрес DNS-сервера в корпоративной сети
- В поле DNS Domain укажите корпоративный домен (например, corp.example.com)
Перейдите в Services - DNS Resolver
В разделе Domain Overrides добавьте запись:
- Domain - корпоративный домен (corp.example.com)
- IP Address - адрес внутреннего DNS-сервера
Настройте маршрутизацию:
- В настройках OpenVPN-сервера добавьте IPv4 Local Network - подсети, доступные через VPN
- Клиент получит маршруты только к указанным подсетям
На стороне клиента убедитесь, что DNS-суффикс корпоративного домена передается через VPN-подключение
Для общей информации по настройке VPN обратитесь к разделу VPN pfSense . Вопросы устранения неполадок рассмотрены в руководстве по диагностике .