Відзначимо: коли на пілоті висить три десятки мережевих інтерфейсів, а правила фаєрвола розповзаються як мурахи через хаос в 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 днів |
Вартість розраховується індивідуально після аудиту вашої інфраструктури.
Процес роботи
- Аналітика — інвентаризація мереж, збір вимог з безпеки, узгодження портів/протоколів.
- Проєктування — схема L3, сегментація на VLAN, план IP, політики доступу.
- Реалізація — установка, конфігурація через API/Terraform, налаштування Zenarmor/Suricata.
- Тестування — пенттест ззовні/всередині, навантажувальне тестування, перевірка failover.
- Деплой — перемикання traffic, моніторинг у перші 48 годин, передача документації.
Типові помилки та як їх уникнути
Неправильне призначення інтерфейсів.
Завжди перевіряйте, який фізичний порт відповідає WAN/LAN. Використовуйте ifconfig на консолі перед wizard. Через цю помилку ми втрачали до 2 годин на кожен проєкт.
Занадто відкриті правила.
Починайте з deny all і відкривайте лише необхідні порти. Винятки описуйте в alias'ах.
Ігнорування оновлень.
OPNsense випускає патчі безпеки кожні два тижні — налаштуйте автоматичне оновлення через API або cron.
У нас за плечима понад 30 впроваджень OPNsense для компаній від 50 до 5000 співробітників. Гарантуємо конфігурацію під ключ, повний комплект документації та навчання вашої команди. OPNsense Documentation. Отримайте консультацію з вашого проєкту вже сьогодні. Зв'яжіться з нами — оцінимо ваш проєкт за один день і підберемо оптимальну конфігурацію.
Заощадьте бюджет — OPNsense безкоштовний, а автоматизація знижує операційні витрати. Замовте впровадження прямо зараз.







