Настройка 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
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139