pfSense как корпоративный UTM: от закупки железа до отказоустойчивой пары
Семёнов Евгений Сергеевич, директор АйТи Фреш. 15+ лет опыта в корпоративной инфраструктуре. pfSense я ставлю с 2012 года и за это время развернул больше сотни шлюзов — от простых замещений MikroTik RB в маленьких офисах до серьёзных CARP-пар на десятитысячных сетях. В 2025 году pfSense остаётся одним из лучших выборов для офисного шлюза — бесплатный, гибкий, поддерживающий всё что нужно UTM. В статье — личный опыт: железо, конфигурация, IDS, VPN, HA и грабли.
Почему pfSense в 2025
Когда клиент приходит с запросом «нам нужен периметр», я предлагаю три варианта: pfSense, OPNsense или корпоративный UTM (FortiGate, Check Point). Выбор зависит от бюджета, требований ИБ и компетенций админов. pfSense выигрывает там, где:
- Бюджет ограничен (лицензий нет вообще — бесплатный софт + железо).
- Нужна гибкость: VLAN, несколько WAN, policy-based routing, сложные NAT.
- Есть внутренняя экспертиза или адекватный IT-аутсорсер.
- Не нужна сертификация ФСТЭК — для продакшн-сетей с ПДн придётся смотреть на сертифицированные МЭ (UserGate, Континент).
Подбор железа
Основное правило: 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 РМ:
- WAN1 — основной провайдер (оптика 1 Гбит/с, статический IP).
- WAN2 — резервный провайдер (LTE-роутер или 500 Мбит/с), failover.
- LAN — 10.10.10.0/24, основной пользовательский сегмент.
- VLAN 20 Servers — 10.10.20.0/24, контроллеры домена, файловые серверы.
- VLAN 30 VoIP — 10.10.30.0/24, АТС и IP-телефоны.
- VLAN 99 Guest — 10.10.99.0/24, гостевой Wi-Fi без доступа в корпоратив.
- VLAN 100 IoT — 10.10.100.0/24, камеры видеонаблюдения, принтеры.
- VPN — 10.10.200.0/24, OpenVPN-клиенты удалённых сотрудников.
Установка и базовая настройка
# Скачиваем 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. Первым делом:
- Меняем пароль admin.
- System → General Setup: правильный hostname, домен, DNS 10.10.20.10, 1.1.1.1.
- System → Advanced: NTP-серверы, часовой пояс Europe/Moscow.
- System → Routing: проверяем default gateway на WAN.
- Interfaces → Interface Assignments: добавляем VLAN (Parent em0, VLAN 20, 30, 99, 100).
- Interfaces → VLAN 20: включаем, статический IP 10.10.20.1/24.
- 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. Базовая настройка:
- Services → Suricata → Global Settings: качаем ET Open, Snort VRT Community, Abuse.ch.
- Interfaces → добавляем WAN и LAN, на них запускаем инстансы.
- Для WAN — режим IPS (Block Offenders) с ET Malware, Botnet, Exploit.
- Для LAN — режим IDS (только alert), чтобы ловить боковое перемещение без блокировки.
На 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 конфигурации.
- Два идентичных хоста с одинаковыми сетевыми интерфейсами.
- Отдельный SYNC-интерфейс между ними (crossover кабель или отдельный VLAN).
- Virtual IP (CARP) на каждом LAN/WAN — именно этот IP становится gateway для клиентов.
- XMLRPC-синхронизация firewall-правил, алиасов, VPN, DHCP reservations.
- State sync через pfsync — при переключении TCP-сессии не рвутся.
# 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. Список внедрённых компонентов:
- pfSense 2.7.2, 6 VLAN на офис, двойной провайдер с failover.
- Suricata IPS на WAN + IDS на LAN с отправкой alert в корпоративный Wazuh.
- OpenVPN для 40 удалённых сотрудников с RADIUS-аутентификацией в корпоративный NPS.
- pfBlockerNG для фильтрации malware-доменов и категорийной блокировки.
- Traffic Shaping с выделением QoS для VoIP и видеоконференций.
- Ежедневный бэкап конфигурации на FTP в дата-центре МТС.
Миграция прошла за 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
- Один WAN без резерва. Для бизнес-офиса — минимум два провайдера с failover, иначе любой обрыв оптики кладёт всех.
- Правила в обратном порядке. «BLOCK any any» в самом начале — и ничего не работает.
- Нет Floating rules. Floating rules применяются ко всем интерфейсам, удобно для централизованных политик.
- Suricata без тюнинга. Дефолтные наборы правил срабатывают на всё подряд, через неделю админ перестаёт смотреть алерты.
- Нет регулярных бэкапов. При смерти железа без бэкапа конфиги собираются с нуля сутки. Ежедневный экспорт обязателен.
- Прошивка без тестирования. В редких случаях новая версия ломает совместимость с железом. Всегда обновляю сначала на backup-ноде, потом на мастере.
Внедрим 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 секунд. Для критичных офисов рекомендую именно такую схему.