Популярные рецепты конфигурации pfSense

В этом разделе собраны наиболее востребованные рецепты конфигурации pfSense. Каждый рецепт включает описание задачи и пошаговую инструкцию. Рецепты рассчитаны на администраторов, знакомых с базовой настройкой pfSense и интерфейсом управления.

Перед выполнением рецептов рекомендуется создать резервную копию конфигурации: Diagnostics - Backup & Restore. Это позволит откатить изменения в случае ошибки.

Прозрачный файрвол (Transparent Bridge)

Прозрачный файрвол работает на втором уровне OSI, фильтруя трафик без изменения IP-адресации сети. pfSense размещается между двумя сегментами сети как невидимый мост, позволяя фильтровать трафик без перенастройки IP-адресов на хостах.

Пошаговая настройка

  1. Перейдите в Interfaces - Assign и убедитесь, что оба интерфейса (например, WAN и LAN) назначены
  2. Перейдите в Interfaces - Bridges и создайте мост:
    • Member Interfaces - выберите оба интерфейса
  3. Перейдите в Interfaces - Assign, назначьте созданный мост как новый интерфейс (например, BRIDGE0)
  4. Настройте IP-адрес на мостовом интерфейсе (для управления pfSense)
  5. Удалите IP-адреса с исходных интерфейсов-членов моста
  6. Перейдите в System - Advanced - System Tunables и установите:
    • net.link.bridge.pfil_member = 0
    • net.link.bridge.pfil_bridge = 1
  7. Создайте правила файрвола на мостовом интерфейсе для фильтрации трафика

Важно: при работе в режиме моста pfSense не выполняет NAT. Маршрутизация остается на вышестоящем маршрутизаторе. Правила файрвола применяются к мостовому интерфейсу, а не к отдельным членам моста.

DNS over TLS (DoT)

DNS over TLS шифрует DNS-запросы между pfSense и вышестоящими DNS-серверами, защищая их от перехвата и модификации провайдером или злоумышленником.

Пошаговая настройка

  1. Перейдите в System - General Setup
  2. Настройте DNS-серверы с поддержкой DoT:
DNS-серверIP-адресHostname (TLS)
Cloudflare1.1.1.1cloudflare-dns.com
Google8.8.8.8dns.google
Quad99.9.9.9dns.quad9.net
  1. Перейдите в Services - DNS Resolver
  2. Включите DNS Resolver, если не включен
  3. Включите DNS Query Forwarding
  4. Включите Use SSL/TLS for outgoing DNS Queries to Forwarding Servers
  5. В разделе Custom Options добавьте (опционально):
server:
  tls-cert-bundle: "/etc/ssl/cert.pem"
  1. Сохраните и примените изменения

DNS over HTTPS (DoH)

pfSense не поддерживает DoH нативно в DNS Resolver. Для реализации DoH используйте пакет dns-over-https-proxy или настройте перенаправление через Unbound на локальный DoH-прокси. DoT является рекомендуемым вариантом для pfSense.

Блокировка по странам (GeoIP)

GeoIP-блокировка позволяет ограничить трафик из определенных стран. Используется для защиты серверов от массовых атак из регионов, с которыми нет деловых отношений.

Пошаговая настройка

  1. Зарегистрируйтесь на MaxMind.com и получите бесплатный ключ GeoLite2
  2. Перейдите в Firewall - Aliases и создайте новый алиас:
    • Name - например, Blocked_Countries
    • Type - URL Table (IPs)
    • URL - укажите URL-файл с IP-диапазонами нужных стран
  3. Альтернативный подход - установите пакет pfBlockerNG:
    • System - Package Manager - Available Packages - pfBlockerNG-devel
    • Настройте GeoIP в Firewall - pfBlockerNG - GeoIP
    • Выберите континенты и страны для блокировки
    • pfBlockerNG автоматически создаст алиасы и правила файрвола
  4. Создайте правило блокировки на WAN:
Action: Block
Interface: WAN
Source: Blocked_Countries (алиас)
Destination: any

Предупреждение: GeoIP-базы не являются точными на 100%. VPN и прокси-серверы позволяют обойти географическую блокировку. Используйте GeoIP как дополнительный уровень защиты, а не единственный.

Port Knocking

Port knocking - метод скрытия сервисов путем требования последовательности подключений к определенным портам перед открытием доступа. Реализуется через серию правил файрвола с отслеживанием состояний.

Пошаговая настройка

  1. Определите последовательность портов (например, TCP 7000, TCP 8000, TCP 9000)
  2. Перейдите в Firewall - Rules - WAN
  3. Создайте правила для каждого этапа последовательности, используя pf anchors через custom rules или пакет knockd:

Вариант с пакетом:

  1. Установите пакет через pkg: подключитесь к консоли pfSense
  2. Создайте файл конфигурации 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
  1. Создайте алиас-таблицу knock_allowed в правилах файрвола
  2. Создайте правило на WAN, разрешающее доступ к SSH с источником из таблицы knock_allowed

Принудительное перенаправление DNS

Перенаправление DNS заставляет все DNS-запросы из LAN проходить через DNS-сервер pfSense, даже если клиенты указали другие DNS-серверы (например, 8.8.8.8 жестко прописан в устройстве).

Пошаговая настройка

  1. Перейдите в Firewall - NAT - Port Forward
  2. Создайте правило перенаправления:
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
  1. Повторите для DNS over TLS (порт 853), если хотите заблокировать прямые DoT-запросы клиентов:
Action: Block
Interface: LAN
Protocol: TCP
Source: LAN net
Destination: any
Destination port: 853
  1. Убедитесь, что DNS Resolver запущен и привязан к LAN-интерфейсу

Несколько публичных IP-адресов

Сценарий: провайдер предоставил блок публичных IP-адресов, и необходимо направить разные IP на разные внутренние серверы.

Пошаговая настройка

  1. Перейдите в Firewall - Virtual IPs и добавьте каждый дополнительный публичный IP:
    • Type - IP Alias (если IP из той же подсети, что и WAN) или Other (для отдельных подсетей)
    • Interface - WAN
    • Address - публичный IP-адрес
  2. Перейдите в Firewall - NAT - 1:1 для создания трансляции один-к-одному:
    • Interface - WAN
    • External subnet IP - публичный IP
    • Internal IP - приватный IP внутреннего сервера
  3. Или используйте Firewall - NAT - Port Forward для перенаправления конкретных портов:
    • Destination - выберите Virtual IP
    • Redirect target IP - внутренний IP сервера
  4. Создайте правила файрвола на WAN для разрешения входящего трафика на Virtual IP

Подробности о настройке NAT описаны в разделе NAT pfSense .

Настройка DMZ

DMZ (Demilitarized Zone) - изолированный сегмент сети для серверов, доступных из интернета. DMZ отделяет публичные серверы от внутренней сети.

Пошаговая настройка

  1. Подключите третий сетевой интерфейс к pfSense (физический или VLAN)
  2. Перейдите в Interfaces - Assign и назначьте новый интерфейс
  3. Настройте интерфейс DMZ:
    • IPv4 Address - например, 10.0.100.1/24
    • Enable Interface - включить
  4. Настройте DHCP для DMZ (опционально): Services - DHCP Server - DMZ
  5. Создайте правила файрвола:

На 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
  1. Настройте NAT Port Forward для проброса портов с WAN на серверы DMZ

Безопасное удаленное администрирование

Удаленный доступ к веб-интерфейсу pfSense через интернет требует дополнительных мер защиты.

Пошаговая настройка

  1. Измените порт веб-интерфейса: System - Advanced - Admin Access, установите нестандартный порт HTTPS (например, 8443)
  2. Ограничьте доступ по IP: создайте алиас с разрешенными IP-адресами администраторов
  3. Создайте правило на WAN:
Action: Pass
Interface: WAN
Protocol: TCP
Source: Admin_IPs (алиас)
Destination: WAN address
Destination port: 8443
  1. Рекомендуемый подход - используйте VPN вместо прямого доступа:

    • Настройте OpenVPN или WireGuard на pfSense (раздел VPN )
    • Подключайтесь к pfSense через VPN-туннель
    • Не открывайте веб-интерфейс на WAN
  2. Включите защиту от перебора: System - Advanced - Login Protection

    • Установите порог блокировки (например, 5 попыток за 5 минут)
    • Время блокировки - 30 минут

Мониторинг трафика по IP

Отслеживание потребления полосы пропускания каждым хостом в сети.

Пошаговая настройка

  1. Встроенный мониторинг - Status - Traffic Graph:

    • Показывает трафик в реальном времени по интерфейсам
    • Ограничен текущим моментом, без исторических данных
  2. Пакет ntopng (рекомендуется для детального мониторинга):

    • Установите: System - Package Manager - Available Packages - ntopng
    • Настройте: Diagnostics - ntopng Settings
    • Укажите интерфейсы для мониторинга (LAN, WAN)
    • Веб-интерфейс ntopng доступен по адресу https://pfSense_IP:3001
  3. Пакет Darkstat (легковесная альтернатива):

    • Установите через Package Manager
    • Настройте интерфейсы для мониторинга
    • Отображает статистику по хостам и протоколам
  4. Пакет BandwidthD:

    • Генерирует графики потребления полосы пропускания по IP
    • Хранит исторические данные
    • Подходит для отчетности

Для комплексного мониторинга pfSense с использованием Prometheus обратитесь к разделу мониторинг .

VPN с Split DNS

Split DNS позволяет разделить разрешение DNS-имен: корпоративные домены разрешаются через внутренний DNS-сервер через VPN, а остальные - через публичные DNS-серверы.

Пошаговая настройка

  1. Настройте OpenVPN-сервер на pfSense (раздел VPN )

  2. В настройках OpenVPN-сервера:

    • Не устанавливайте флаг Redirect IPv4 Gateway (чтобы не направлять весь трафик через VPN)
    • В поле DNS Server укажите IP-адрес DNS-сервера в корпоративной сети
    • В поле DNS Domain укажите корпоративный домен (например, corp.example.com)
  3. Перейдите в Services - DNS Resolver

  4. В разделе Domain Overrides добавьте запись:

    • Domain - корпоративный домен (corp.example.com)
    • IP Address - адрес внутреннего DNS-сервера
  5. Настройте маршрутизацию:

    • В настройках OpenVPN-сервера добавьте IPv4 Local Network - подсети, доступные через VPN
    • Клиент получит маршруты только к указанным подсетям
  6. На стороне клиента убедитесь, что DNS-суффикс корпоративного домена передается через VPN-подключение

Для общей информации по настройке VPN обратитесь к разделу VPN pfSense . Вопросы устранения неполадок рассмотрены в руководстве по диагностике .

Last updated on