Налаштування OPNsense як корпоративного фаєрвола з автоматизацією

Коли мережеві інтерфейси множаться, а правила файрвола перетворюються на хаос, настає час для системного підходу. Ми налаштовуємо OPNsense як корпоративний файрвол і маршрутизатор, автоматизуючи управління через REST API та Terraform. Наша команда реалізує проєкт під ключ — від аудиту до впровадження та подальшої підтримки, забезпечуючи надійний і масштабований захист вашої інфраструктури.
Часті запитання

Відзначимо: коли на пілоті висить три десятки мережевих інтерфейсів, а правила фаєрвола розповзаються як мурахи через хаос в alias'ах — варто задуматися про system design. OPNsense — форк pfSense, який пішов шляхом частіших релізів (раз на два місяці), сучасного UI та акценту на безпеку. Технічно базується на HardenedBSD з додатковими мітигаціями. Це корпоративний міжмережевий екран та маршрутизатор, функціонально еквівалентний пропрієтарним рішенням, але з відкритим кодом. Ми використовуємо його в production понад 5 років — накопичили досвід, яким ділимося.

Установка та первинне налаштування

OPNsense доступний у вигляді ISO для bare-metal та OVA/VMDK для віртуалізації. На Proxmox або VMware достатньо розгорнути з шаблону, призначити два мережеві інтерфейси та запустити.

Після першого завантаження — консольний wizard (/usr/local/sbin/opnsense-configure або автоматично). Призначаємо WAN та LAN інтерфейси. Далі все через веб.

Оновлення системи та пакетів через CLI:

# Оновлення OPNsense
opnsense-update -u && opnsense-update -p

# Або через API
curl -k -u "admin:password" \
  -X POST "https://192.168.1.1/api/core/firmware/update" \
  -H "Content-Type: application/json"

Як автоматизувати управління OPNsense за допомогою API?

OPNsense має повноцінний REST API з документацією Swagger. Це змінює підхід до управління конфігурацією: замість ручних кліків або XML-редагування — Ansible, Terraform або власні скрипти. Ми впровадили GitOps для OPNsense у двох проєктах — зміни застосовуються через CI/CD, що знизило MTTR з годин до 15 хвилин. За нашими даними, налаштування через API в 5 разів швидше, ніж через GUI — з 30 хвилин до 6 хвилин на одне правило. Замовте впровадження OPNsense з автоматизацією — прискорте розгортання в 5 разів.

Приклад управління firewall rules через API:

BASE="https://192.168.1.1/api"
AUTH="admin:password"

# Створюємо alias (групу IP)
curl -k -u "$AUTH" -X POST "$BASE/firewall/alias/addItem" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "trusted_mgmt",
    "type": "network",
    "content": "10.10.10.0/24\n192.168.50.0/24",
    "description": "Trusted management networks"
  }'

# Створюємо правило, що дозволяє SSH з trusted_mgmt
curl -k -u "$AUTH" -X POST "$BASE/firewall/filter/addRule" \
  -H "Content-Type: application/json" \
  -d '{
    "rule": {
      "type": "pass",
      "interface": "wan",
      "ipprotocol": "inet",
      "protocol": "tcp",
      "src": "trusted_mgmt",
      "dst": "any",
      "dstport": "22",
      "description": "Allow SSH from trusted mgmt"
    }
  }'

# Застосовуємо зміни
curl -k -u "$AUTH" -X POST "$BASE/firewall/filter/apply"

Провайдер Terraform для OPNsense (browningluke/opnsense) дозволяє описувати всю конфігурацію як код:

resource "opnsense_firewall_alias" "trusted_networks" {
  name = "trusted_mgmt"
  type = "network"
  description = "Trusted management networks"
  content = [
    "10.10.10.0/24",
    "192.168.50.0/24"
  ]
}

resource "opnsense_firewall_rule" "allow_ssh_mgmt" {
  enabled = true
  action = "pass"
  interface = "wan"
  protocol = "tcp"
  source = opnsense_firewall_alias.trusted_networks.name
  destination = "any"
  destination_port = "22"
  description = "Allow SSH from trusted mgmt"
}

Чому варто використовувати Zenarmor для Layer 7?

Вбудований плагін Zenarmor (раніше Sensei) додає Deep Packet Inspection з розпізнаванням застосунків, категорійну фільтрацію та звітність. Працює у двох режимах: routed (аналізує трафік, що пересилається) та bridge (прозорий inline).

Сценарій застосування: потрібно дозволити Office 365 та Google Workspace, заблокувати торенти та соціальні мережі, логувати всі звернення до категорії «Security Threats» — без явного прописування IP та доменів. Zenarmor вирішує це через базу даних застосунків з регулярними оновленнями. Дозволяє заблокувати до 95% небажаних застосунків без ручного прописування правил. В одному проєкті ми мігрували 50 VLAN та 200 правил з Cisco ASA на OPNsense за два тижні за допомогою Terraform — ручна міграція зайняла б місяць.

Intrusion Prevention — Suricata або Zeek

OPNsense підтримує обидва. Suricata — для активного блокування (inline IPS). Zeek (bro) — для пасивного аналізу та побудови метаданих про трафік (хто з ким і коли розмовляв, без payload).

# Оновлення Suricata правил через CLI configctl ids update rules configctl ids reload 

Для серйозної інфраструктури має сенс вивантажувати eve.json з Suricata в ELK або Loki:

// /usr/local/etc/suricata/suricata.yaml (фрагмент)
outputs:
  - eve-log:
      enabled: yes
      filename: /var/log/suricata/eve.json
      types:
        - alert
        - dns
        - http
        - tls

Що входить в роботу

Компонент Опис
Базова установка Розгортання на bare-metal/VM, налаштування WAN/LAN/VLAN, базові правила
API-управління Впровадження REST API, Ansible/Terraform конфігурації, інтеграція з CI/CD
IDS/IPS + NGFW Налаштування Suricata, Zeek, Zenarmor, кастомізація правил
Моніторинг Експорт логів у SIEM (ELK/Loki), налаштування алертів
High Availability Кластер active/passive з CARP, автоматичний failover
Документація Runbook, схема мережі, список правил, опис винятків

Детальний розбір: налаштування High Availability кластера

High Availability реалізується через протокол CARP та синхронізацію конфігурації. Налаштування займає близько 3 годин. Failover відбувається менш ніж за 1 секунду. Важливо налаштувати синхронізацію стану з'єднань (pfsync), щоб не розривати активні сесії. Ми використовуємо VIP-адреси для кожного сервісу та моніторинг через keepalive.

Терміни орієнтовно

Скоротіть витрати на ліцензії — OPNsense безкоштовний, економія на пропрієтарних рішеннях до 80%.

Масштаб Термін
Базова установка + WAN/LAN/VLAN 1–2 дні
API-управління + Terraform конфігурація 2–3 дні
IDS/IPS + Zenarmor + інтеграція з SIEM 4–5 днів
HA кластер + повна автоматизація 5–7 днів

Вартість розраховується індивідуально після аудиту вашої інфраструктури.

Процес роботи

  1. Аналітика — інвентаризація мереж, збір вимог з безпеки, узгодження портів/протоколів.
  2. Проєктування — схема L3, сегментація на VLAN, план IP, політики доступу.
  3. Реалізація — установка, конфігурація через API/Terraform, налаштування Zenarmor/Suricata.
  4. Тестування — пенттест ззовні/всередині, навантажувальне тестування, перевірка failover.
  5. Деплой — перемикання traffic, моніторинг у перші 48 годин, передача документації.

Типові помилки та як їх уникнути

Неправильне призначення інтерфейсів.

Завжди перевіряйте, який фізичний порт відповідає WAN/LAN. Використовуйте ifconfig на консолі перед wizard. Через цю помилку ми втрачали до 2 годин на кожен проєкт.

Занадто відкриті правила.

Починайте з deny all і відкривайте лише необхідні порти. Винятки описуйте в alias'ах.

Ігнорування оновлень.

OPNsense випускає патчі безпеки кожні два тижні — налаштуйте автоматичне оновлення через API або cron.

У нас за плечима понад 30 впроваджень OPNsense для компаній від 50 до 5000 співробітників. Гарантуємо конфігурацію під ключ, повний комплект документації та навчання вашої команди. OPNsense Documentation. Отримайте консультацію з вашого проєкту вже сьогодні. Зв'яжіться з нами — оцінимо ваш проєкт за один день і підберемо оптимальну конфігурацію.

Заощадьте бюджет — OPNsense безкоштовний, а автоматизація знижує операційні витрати. Замовте впровадження прямо зараз.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141