· 16 мин чтения

pfSense как корпоративный UTM: от закупки железа до отказоустойчивой пары

Семёнов Евгений Сергеевич, директор АйТи Фреш. 15+ лет опыта в корпоративной инфраструктуре. pfSense я ставлю с 2012 года и за это время развернул больше сотни шлюзов — от простых замещений MikroTik RB в маленьких офисах до серьёзных CARP-пар на десятитысячных сетях. В 2025 году pfSense остаётся одним из лучших выборов для офисного шлюза — бесплатный, гибкий, поддерживающий всё что нужно UTM. В статье — личный опыт: железо, конфигурация, IDS, VPN, HA и грабли.

Почему pfSense в 2025

Когда клиент приходит с запросом «нам нужен периметр», я предлагаю три варианта: pfSense, OPNsense или корпоративный UTM (FortiGate, Check Point). Выбор зависит от бюджета, требований ИБ и компетенций админов. pfSense выигрывает там, где:

Подбор железа

Основное правило: pfSense упирается в процессор при IDS/IPS и VPN, а не в память. Мой рабочий подбор:

Размер офисаКаналЖелезо
10–30 РМдо 200 Мбит/сProtectli FW2B, J3160, 8 ГБ RAM
30–80 РМдо 500 Мбит/сProtectli FW4B/FW6B, N5105, 16 ГБ RAM
80–200 РМ1 Гбит/сDell R240/R340, Xeon E-2124, 16 ГБ RAM, Intel i350 4x1G
200+ РМдо 10 Гбит/сDell R650, Xeon Silver 4310, 32 ГБ, Intel X710 4x10G

В одном из последних проектов мы ставили pfSense на Dell R740 с dual Xeon Platinum 8280 — это overkill для офиса, но железо досталось клиенту в наследство после миграции с VMware. На таком процессоре pfSense с включённым Suricata IDS на 10G-канале работает без задержек при 2000 пакетов/с.

Планирование сети

Прежде чем запускать pfSense, на бумаге рисуем сеть. Типовая схема для офиса 80 РМ:

Установка и базовая настройка

# Скачиваем ISO
wget https://atxfiles.netgate.com/mirror/downloads/pfSense-CE-2.7.x-RELEASE-amd64.iso

# Ставим на USB с Rufus или Ventoy, грузимся
# Install → ZFS RAID0 на одном диске или RAID1 на двух

После первой загрузки по консоли настраиваем WAN и LAN, заходим по веб-интерфейсу https://192.168.1.1. Первым делом:

  1. Меняем пароль admin.
  2. System → General Setup: правильный hostname, домен, DNS 10.10.20.10, 1.1.1.1.
  3. System → Advanced: NTP-серверы, часовой пояс Europe/Moscow.
  4. System → Routing: проверяем default gateway на WAN.
  5. Interfaces → Interface Assignments: добавляем VLAN (Parent em0, VLAN 20, 30, 99, 100).
  6. Interfaces → VLAN 20: включаем, статический IP 10.10.20.1/24.
  7. Services → DHCP Server: включаем на LAN и VLAN, настраиваем пулы.

Firewall: правила

Правила — главное в pfSense. Важное правило: pfSense обрабатывает правила сверху вниз на каждом интерфейсе, по первому совпадению. Default — deny. Порядок правил критичен.

# Пример правил для VLAN 20 Servers (Interfaces → Rules → VLAN 20)
1. PASS from VLAN 20 Net to LAN Net (ответы клиентам)
2. PASS from VLAN 20 Net to VLAN 30 Net (serv->VoIP для логирования)
3. BLOCK from VLAN 20 Net to VLAN 99 Net (гости не нужны)
4. PASS from VLAN 20 Net to WAN (обновления, NTP, DNS)

# Для VLAN 99 Guest — только в интернет, никуда больше
1. BLOCK from VLAN 99 to RFC1918 (no internal access)
2. PASS from VLAN 99 to WAN:53 (DNS)
3. PASS from VLAN 99 to !RFC1918 (only to internet)

# Для VLAN 100 IoT — принтеры из LAN доступны
1. PASS from LAN to VLAN 100:9100 (печать)
2. PASS from LAN to VLAN 100:80,443 (web-UI принтеров)
3. BLOCK from VLAN 100 to any (IoT не ходит никуда кроме обновлений)

Я всегда именую правила осмысленно («Allow clients to file server», а не «Pass TCP 445»). Комментарии помогают через полгода понять, что именно делает правило.

IDS/IPS: Suricata

Package Manager → Suricata. Базовая настройка:

На 500 Мбит/с Suricata съедает примерно 40–60% одного ядра Pentium N5105. На 10G и более высокой загрузке — нужны Intel Xeon и offload через netmap/iflib.

VPN

Для удалёнки ставлю OpenVPN server на pfSense (встроенный мастер генерит всё за 5 минут): сертификаты, клиентский экспорт, user management через Local Database или связку с AD через RADIUS.

# VPN → OpenVPN → Wizards → Add
1. Type of Server — Local User Access (или RADIUS)
2. Certificate Authority — Create new (или выбрать существующий)
3. Server Certificate — Create new
4. Tunnel Network — 10.10.200.0/24
5. Local Network — 10.10.10.0/24, 10.10.20.0/24
6. DNS Server — 10.10.20.10

# Клиентские конфиги генерируются через
# VPN → OpenVPN → Client Export (package)

Для IPsec site-to-site с филиалом или MikroTik — VPN → IPsec → Add. Предпочитаю IKEv2 с сертификатами, но клиентам с MikroTik часто приходится использовать PSK из-за ограничений.

CARP: отказоустойчивая пара

Для офисов, где простой шлюза — миллионы потерь, ставим два pfSense в схеме CARP (Common Address Redundancy Protocol). Один мастер, один backup с auto-sync конфигурации.

# Firewall → Virtual IPs → Add
Type: CARP
Interface: LAN
IP: 10.10.10.1/24
VHID: 1
Skew: 0 (мастер) или 100 (backup)
Password: <общий секрет>

# System → High Availability Sync
XMLRPC Sync: mmmm (все галки)
Synchronize States: yes
Synchronize Interface: SYNC
pfsync Synchronize Peer IP: <IP второго pfSense>

Мини-кейс: pfSense для банка

В августе 2025 года клиент — небольшая банковская группа с 140 сотрудниками в двух офисах. Требование — замена устаревшего Cisco ASA с истёкшей поддержкой на open-source решение без потери функционала. Сроки миграции — один ночной маневр в выходные.

Решение: две пары Dell R450 в каждом офисе (2×Xeon Silver 4314, 32 ГБ RAM, Intel X710 4x10G). В основном ЦОДе — CARP-пара с SYNC-линком 10G Mellanox. Между офисами — IPsec site-to-site через WAN2. Список внедрённых компонентов:

Миграция прошла за 4 часа (01:00–05:00 в субботу), downtime — 12 минут на переключение LAN, VIP. За последующие 6 месяцев — 0 инцидентов с шлюзом, одно плановое переключение на backup для обновления прошивки мастера. Стоимость проекта — 380 000 руб. плюс железо.

Мониторинг и бэкап

В System → Routing настраиваю gateway monitoring с пингами, чтобы при деградации WAN1 автоматически переключаться на WAN2. В Diagnostics → Backup & Restore настраиваю ежедневный экспорт конфигурации:

# Package Manager → AutoConfigBackup (для pfSense+)
# Или самодельный скрипт, запускаемый cron

curl -k --data "__csrf_magic=$CSRF_TOKEN" \
  "https://10.10.10.1/diag_backup.php?download=" \
  -o /backup/pfsense-$(date +%Y%m%d).xml

Для мониторинга я использую telegraf + InfluxDB + Grafana. pfSense умеет отправлять метрики через SNMP (Services → SNMP), далее дашборд показывает загрузку интерфейсов, CPU, количество состояний в state table, алерты IDS.

Типичные ошибки при внедрении pfSense

Внедрим pfSense в вашем офисе

Проектирование, закупка железа, установка, настройка, миграция с существующих шлюзов. Для офисов от 10 до 500 рабочих мест. CARP-отказоустойчивость, OpenVPN/IPsec, IDS Suricata, pfBlockerNG. Сопровождение 24/7 с SLA.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы про pfSense

Что такое pfSense?
pfSense — open-source firewall/маршрутизатор на базе FreeBSD, с веб-интерфейсом и поддержкой пакетов. Включает NAT, VPN (IPsec/OpenVPN/WireGuard), IDS/IPS (Suricata), прокси (Squid), content filter (pfBlockerNG), traffic shaping.
Какое железо нужно для офиса 50 РМ?
Для 50 рабочих мест и канала до 500 Мбит/с — appliance с Intel Celeron/Pentium N5105, 4–8 ГБ RAM, 128 ГБ SSD и минимум 4 × 1 GbE портов. Готовые платформы — Protectli, Sophos SG, старые Dell R210. На 10 Гбит/с и 200+ РМ — Xeon + Intel X710.
pfSense или OPNsense?
Функционально близки, OPNsense чуть более активно развивается и имеет более современный UI, но pfSense стабильнее и привычнее. Для большинства задач разница не принципиальна, опытные админы выбирают тот, с которым работали раньше.
Можно ли в виртуалке?
Да, pfSense прекрасно живёт на VMware, Hyper-V, Proxmox, KVM. Для production — выделенная виртуалка с passthrough сетевых карт для максимальной производительности. При обычной виртуализации пропускная способность ограничена скоростью виртуального коммутатора.
Как обеспечить отказоустойчивость?
pfSense поддерживает CARP — два хоста с синхронизацией конфигурации и виртуальным IP. При падении мастера backup-нода автоматически перехватывает VIP за 2–5 секунд. Для критичных офисов рекомендую именно такую схему.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.