Skip to content

Документация по управлению правилами брандмауэра MBFireWall

Обзор и введение

Что такое MBfirewall?

MBfirewall (Инструмент управления брандмауэром MB) — это решение корпоративного уровня для управления правилами брандмауэра, разработанное специально для операционной системы Windows. Оно обеспечивает удобное, эффективное и безопасное управление правилами брандмауэра Windows Defender как через графический интерфейс (GUI) так и через командную строку (CLI).

Продукт позиционируется как:

  1. Инструмент корпоративного уровня: предоставляет ИТ-администраторам возможность массового управления правилами брандмауэра.
  2. Компонент интеграции ПО: предоставляет разработчикам программные интерфейсы для настройки правил брандмауэра.
  3. Помощник по безопасности для частных пользователей: упрощает сложные конфигурации брандмауэра Windows для обычных пользователей.
  4. Инструмент автоматизированного развертывания: поддерживает развертывание через скрипты и пакетную конфигурацию, подходит для процессов CI/CD.

Принципы проектирования

Дизайн MBfirewall следует следующим основным принципам:

  • Простота и удобство: как GUI, так и CLI ориентированы на простые и интуитивно понятные действия.
  • Мощный функционал: охватывает все распространенные сценарии управления брандмауэром.
  • Стабильность и надежность: базируется на COM-интерфейсах Windows для обеспечения идеальной совместимости с системой.
  • Расширяемость: предоставляет полноценные API-интерфейсы для интеграции со сторонним ПО.
  • Безопасность прежде всего: все операции требуют прав администратора для обеспечения безопасности системы.

Поддерживаемые версии Windows

MBfirewall полностью поддерживает следующие версии Windows:

  • Windows 7 (SP1 и выше)
  • Windows 8 / 8.1
  • Windows 10 (все редакции)
  • Windows 11 (все редакции)
  • Windows Server 2008 R2 и выше

Примечание: Для обеспечения совместимости с Windows 7 MBfirewall предоставляет специально скомпилированную версию для безупречной работы на этих системах.

Технологический стек

  • Язык программирования: Go 1.21+ (Go 1.21 гарантирует совместимость с Windows 7)
  • GUI-фреймворк: lxn/walk (нативная библиотека GUI для Windows)
  • Системный интерфейс: Windows COM API (INetFwPolicy2, INetFwRules)
  • Метод сборки: нативная компиляция, отсутствие зависимостей расширения

Основные возможности и преимущества

Двухрежимная архитектура

Одной из главных особенностей MBfirewall является одновременная поддержка двух режимов работы для удовлетворения различных потребностей пользователей:

Режим GUI (Графический интерфейс)

Особенности:

  • Интуитивно понятный оконный интерфейс, не нужно помнить команды.
  • Отображение статуса брандмауэра и списка правил в реальном времени.
  • Поддержка визуальных операций, подходящих для обычных пользователей и начинающих администраторов.
  • Поддержка системного трея, возможность работы в фоновом режиме.
  • Автоматическое обновление статуса для отражения изменений брандмауэра в реальном времени.

Применимые сценарии:

  • Ежедневное использование обычными пользователями.
  • Быстрый просмотр и изменение правил ИТ-администраторами.
  • Сценарии, требующие визуального контроля.

Режим CLI (Командная строка)

Особенности:

  • Полная поддержка командной строки для скриптов и автоматизации.
  • Тихий режим (--silent), возвращающий только коды выхода, подходит для пакетных скриптов.
  • Вывод в формате JSON для удобного программного парсинга.
  • Поддержка пакетных операций (управление несколькими правилами одной командой).
  • Богатые возможности фильтрации и запросов.

Применимые сценарии:

  • Скрипты автоматизированного развертывания.
  • Интеграция в конвейеры CI/CD.
  • Массовая конфигурация в нескольких системах.
  • Сценарии удаленного управления.

Полный спектр управления брандмауэром

MBfirewall предоставляет исчерпывающие возможности управления Windows Defender Firewall:

Управление профилями конфигурации

  • Поддержка трех сетевых профилей: Доменный (Domain), Частный (Private), Публичный (Public).
  • Возможность управления каждым профилем по отдельности или всеми сразу.
  • Запрос состояния профиля в реальном времени.

Управление правилами

  • Добавление правил: поддержка всех параметров (путь к программе, порт, протокол, направление).
  • Удаление правил: по пути к программе или по имени правила.
  • Запрос правил: составление списка всех правил с фильтрацией по префиксу.
  • Валидация правил: проверка корректности перед добавлением во избежание невалидных настроек.
  • Пакетные операции: массовое добавление из JSON-файла.

Мониторинг статуса

  • Запрос общего статуса брандмауэра в реальном времени.
  • Проверка наличия правил для конкретной программы и их состояния.
  • Получение подробной информации о правилах.

Импорт/Экспорт

  • Экспорт правил в JSON для резервного копирования и миграции.
  • Импорт JSON-файлов для быстрого восстановления или развертывания.

Глубокая интеграция с MBbrowser (候鸟浏览器)

MBfirewall предоставляет специальные функции интеграции для MBbrowser:

Автоматическое определение пути установки

  • Автоматическое считывание пути установки MBbrowser из реестра.
  • Не требуется ручной ввод пути; настройка всех правил в один клик.

Интеллектуальная настройка правил

  • Автоматическое обнаружение 9 основных исполняемых файлов MBbrowser.
  • Автоматическое добавление входящих и исходящих правил для каждой программы.
  • Настройка различных протоколов и портов в зависимости от программы.

Список поддерживаемых программ:

  1. mbbrowser.exe: основная программа MBbrowser (оба направления, все протоколы)
  2. cdp.exe: Chrome DevTools Protocol (TCP, порт 9222)
  3. mbservice.exe: фоновая служба MBbrowser (оба направления, все протоколы)
  4. apiserver.exe: API-сервер (TCP, порты 80/443)
  5. chrome.exe: ядро браузера Chrome (TCP, порты 80/443)
  6. chrome_proxy.exe: прокси Chrome (TCP, порты 80/443)
  7. chrome_pwa_launcher.exe: запуск Chrome PWA (TCP, порты 80/443)
  8. chromedriver.exe: драйвер автоматизации браузера (TCP, порт 9515)
  9. notification_helper.exe: помощник уведомлений (TCP, порты 80/443)

Команда для завершения настройки:

mbfirewall.exe add-mbbrowser

Эта команда автоматически:

  1. Считает путь установки MBbrowser из реестра
  2. Проверит наличие всех файлов программ
  3. Добавит входящие и исходящие правила для каждой найденной программы (всего 18 правил)
  4. Отобразит подробные результаты выполнения и информацию об ошибках

Гибкая настройка параметров

MBfirewall поддерживает множество опций конфигурации для сложных сценариев:

Направление правила

  • inbound / in: входящее правило (извне в систему)
  • outbound / out: исходящее правило (из системы вовне)
  • both: оба направления (по умолчанию)

Типы протоколов

  • tcp: протокол TCP
  • udp: протокол UDP
  • icmp: протокол ICMP
  • any / all: любой протокол (по умолчанию)

Конфигурация портов

  • Одиночный порт: 80
  • Несколько портов: 80,443,8080
  • Диапазон портов: 8000-9000
  • Все порты: * (по умолчанию)

Типы профилей

  • domain: доменный профиль сети
  • private: частный профиль сети
  • public: общедоступный профиль сети
  • all: все профили (по умолчанию)

Корпоративные возможности

Пакетные операции

  • Поддержка массового добавления из JSON-файлов
  • Пакетное удаление правил
  • Подробные отчеты о результатах пакетных операций

Импорт/Экспорт

  • Экспорт правил в JSON с фильтрацией по префиксу
  • Импорт конфигураций для быстрого развертывания
  • Стандартизированный формат файлов, удобный для контроля версий

Логирование и аудит

  • Опциональное ведение журналов (включается через --enable-log)
  • Разделение лог-файлов по датам
  • Подробная информация об ошибках и отладке

Обработка ошибок

  • Стандартные коды выхода (0-4) для автоматизации
  • Подробные сообщения об ошибках для диагностики
  • Поддержка тихого режима для автоматизированных сценариев

Безопасность и управление правами

Требования к правам администратора

  • Все операции изменения требуют прав администратора
  • Автоматическое определение прав и дружелюбные подсказки
  • Поддержка повышения прав через UAC

Валидация операций

  • Проверка существования пути перед добавлением правила
  • Проверка наличия дубликатов правил
  • Проверка легальности параметров во избежание некорректных настроек

Принцип наименьших привилегий

  • Операции запроса могут запускаться обычным пользователем (ограниченный функционал)
  • Только операции изменения требуют прав администратора
  • Информация о версии и справка доступны без повышения прав

Сценарии использования

Сценарий 1: Интеграция при разработке ПО

Контекст: Разработчику ПО необходимо автоматически настроить правила брандмауэра во время установки, чтобы программа имела доступ к сети. Ручная настройка слишком сложна для пользователей и часто приводит к ошибкам.

Решение: Интегрируйте MBfirewall CLI в программу установки для автоматического добавления правил брандмауэра при установке.

Пример кода (псевдокод C++):

cpp
void OnInstallComplete() {
    // Вызов MBfirewall для добавления правил
    system("mbfirewall.exe add --app \"C:\\Program Files\\MyApp\\app.exe\" --name \"MyApp\" --silent");
    // Или использование файла пакетной конфигурации
    system("mbfirewall.exe import --input \"install_dir\\config\\firewall_rules.json\"");
}

Преимущества:

  • Пользователям не нужно настраивать брандмауэр вручную
  • Снижение затрат на техподдержку
  • Гарантированный доступ программы к сети
  • Поддержка массовой настройки правил

Сценарий 2: Массовое развертывание в корпоративной ИТ-среде

Контекст: ИТ-отделу предприятия необходимо единообразно настроить правила брандмауэра на сотнях компьютеров. Ручная настройка занимает слишком много времени и подвержена человеческому фактору.

Решение: Используйте MBfirewall CLI с конфигурационными файлами и разворачивайте их через групповые политики (GPO) или удаленные скрипты.

Шаги развертывания:

  1. Подготовьте файл конфигурации (apps.json):
json
{
  "version": "1.0",
  "description": "Правила брандмауэра для корпоративных приложений",
  "apps": [
    {
      "name": "ERP client",
      "path": "C:\\Program Files\\ERP\\client.exe",
      "direction": "both",
      "protocol": "tcp",
      "ports": "8080",
      "enabled": true
    },
    {
      "name": "Database client",
      "path": "C:\\Program Files\\DB\\client.exe",
      "direction": "outbound",
      "protocol": "tcp",
      "ports": "1433",
      "enabled": true
    }
  ]
}
  1. Создайте скрипт развертывания (deploy.bat):
batch
@echo off
echo Развертывание правил брандмауэра...
mbfirewall.exe import --input "%~dp0apps.json"
if %ERRORLEVEL% EQU 0 (
    echo Правила успешно развернуты
) else (
    echo Ошибка развертывания, проверьте логи
    exit /b 1
)
  1. Разверните через Групповые политики или удаленное выполнение скрипта.

Преимущества:

  • Одноразовая настройка для множества машин
  • Единообразие конфигурации
  • Поддержка контроля версий и отката к предыдущим состояниям
  • Возможность полной автоматизации

Сценарий 3: Упрощение настройки для частных пользователей

Контекст: После установки программы брандмауэр Windows выдает запрос, и пользователи часто не знают, что делать, или им сложно настроить правила вручную.

Решение: Используйте режим GUI MBfirewall для наглядного и интуитивно понятного управления правилами.

Процесс использования:

  1. Запустите mbfirewall.exe для открытия графического интерфейса
  2. Просмотрите текущий статус брандмауэра
  3. Добавьте новое правило для программы:
    • Нажмите кнопку «Add Rule»
    • Выберите путь к программе
    • Укажите имя правила и параметры
    • Подтвердите добавление
  4. Проверьте список правил, чтобы убедиться в успешном завершении

Преимущества:

  • Графический интерфейс с простыми операциями
  • Обновление статуса в реальном времени
  • Не нужно знать команды командной строки
  • Дружелюбные сообщения об ошибках

Сценарий 4: Автоматизация CI/CD

Контекст: Конвейерам CI/CD необходима автоматическая настройка правил брандмауэра в тестовых средах для корректного выполнения тестов.

Решение: Используйте MBfirewall CLI в скриптах CI/CD для автоматической конфигурации тестовой среды.

Пример скрипта CI/CD (GitLab CI):

yaml
test_stage:
  script:
    # Настройка правил брандмауэра
    - mbfirewall.exe add --app "C:\\App\\test.exe" --name "Test App" --silent
    # Проверка добавления правил
    - mbfirewall.exe check --app "C:\\App\\test.exe" --silent
    # Запуск тестов
    - run_tests.bat
  after_script:
    # Очистка правил
    - mbfirewall.exe remove --app "C:\\App\\test.exe" --silent

Преимущества:

  • Интеграция в автоматизированные рабочие процессы
  • Поддержка тихого режима, не засоряющего логи
  • Результаты возвращаются в виде кодов завершения
  • Автоматическая очистка среды после тестов

Сценарий 5: Пользователи MBbrowser

Контекст: Пользователям MBbrowser после установки требуется настроить множество правил; ручная настройка утомительна и чревата ошибками.

Решение: Используйте встроенный функционал интеграции MBfirewall для настройки всех правил одной командой.

Шаги использования:

  1. Убедитесь, что MBbrowser установлен (путь установки записывается в реестр)
  2. Запустите команду от имени администратора:
mbfirewall.exe add-mbbrowser
  1. Дождитесь автоматического завершения (около 18 правил)

Преимущества:

  • Одна команда для полной настройки
  • Автоматическое определение пути установки
  • Интеллектуальный пропуск несуществующих файлов
  • Подробная обратная связь о результатах выполнения

Сценарий 6: Аудит безопасности и комплаенс

Контекст: Предприятиям требуется регулярный аудит правил брандмауэра для обеспечения соответствия политикам безопасности и генерации отчетов.

Решение: Используйте функцию экспорта MBfirewall для регулярного сохранения правил и последующего аудита.

Процесс аудита:

  1. Регулярный экспорт правил (ежедневно/еженедельно):
batch
@echo off
set BACKUP_DIR=backup\%date:~0,4%%date:~5,2%%date:~8,2%
mkdir "%BACKUP_DIR%"
mbfirewall.exe export --output "%BACKUP_DIR%\firewall_rules.json"
  1. Анализ конфигурации правил:

    • Проверка наличия несанкционированных правил
    • Убедитесь, что настройки правил соответствуют политике безопасности
    • Выявление аномальных портов и протоколов
  2. Генерация отчетов аудита:

    • Сравнение изменений правил за разные периоды
    • Запись истории изменений
    • Создание отчетов о соответствии (compliance)

Преимущества:

  • Прослеживаемая история конфигураций
  • Упрощение процесса проверки комплаенса
  • Своевременное обнаружение аномальных настроек
  • Поддержка автоматизированного аудита

Сценарий 7: Поиск и устранение неисправностей

Контекст: При возникновении проблем с сетевым подключением необходимо проверить, правильно ли настроены правила брандмауэра.

Решение: Используйте функции запроса MBfirewall для быстрой проверки статуса правил.

Шаги устранения неисправностей:

  1. Проверьте общий статус брандмауэра:
mbfirewall.exe status
  1. Проверьте правила для конкретной программы:
mbfirewall.exe check --app "C:\\Program Files\\App\\app.exe"
  1. Выведите список всех связанных правил:
mbfirewall.exe list --prefix "App"
  1. Исправьте проблемы на основе результатов проверки:
    • Если правило не найдено — добавьте его
    • Если правило отключено — включите его
    • Если правило настроено неверно — удалите и добавьте заново

Преимущества:

  • Быстрая локализация проблем
  • Наглядное отображение статуса правил
  • Поддержка массовой проверки
  • Упрощение процесса удаленной поддержки

Detailed Feature Description

Запрос статуса брандмауэра (status)

Описание: Запрос общего состояния брандмауэра Windows, включая состояние включения каждого профиля и количество правил.

Использование:

Режим GUI:

  • После запуска в главном интерфейсе отображается текущее состояние брандмауэра
  • В строке состояния отображается состояние каждого профиля
  • Нажмите «Refresh» для обновления статуса

Режим CLI:

bash
# Базовый запрос
mbfirewall.exe status

# Тихий режим (только код выхода)
mbfirewall.exe status --silent

Пример вывода:

json
{
  "domain_profile": {
    "profile_type": "domain",
    "enabled": true,
    "last_updated": "2025-11-03T10:30:00Z"
  },
  "private_profile": {
    "profile_type": "private",
    "enabled": true,
    "last_updated": "2025-11-03T10:30:00Z"
  },
  "public_profile": {
    "profile_type": "public",
    "enabled": false,
    "last_updated": "2025-11-03T10:30:00Z"
  },
  "profiles": [
    {
      "type": "domain",
      "enabled": true,
      "last_updated": "2025-11-03T10:30:00Z"
    },
    {
      "type": "private",
      "enabled": true,
      "last_updated": "2025-11-03T10:30:00Z"
    },
    {
      "type": "public",
      "enabled": false,
      "last_updated": "2025-11-03T10:30:00Z"
    }
  ],
  "rule_count": 150,
  "is_admin": true,
  "last_checked": "2025-11-03T10:30:00Z",
  "timestamp": "2025-11-03T10:30:00Z"
}

Коды выхода:

  • 0: запрос выполнен успешно
  • 2: недостаточно прав (требуются права администратора)
  • 1: ошибка выполнения запроса

Сценарии использования:

  • Проверка того, включен ли брандмауэр
  • Мониторинг изменений состояния брандмауэра
  • Использование в автоматизированных скриптах для определения состояния брандмауэра
  • Понимание общего состояния для диагностики проблем

Примечания:

  • Для получения полной информации эта команда требует прав администратора
  • Обычные пользователи могут только просматривать, но не изменять состояние
  • Информация о состоянии обновляется в реальном времени

Проверка правила (check)

Описание: Проверка существования правил брандмауэра для указанной программы и состояния этих правил (включены/отключены).

Использование:

bash
# Проверка статуса правил программы
mbfirewall.exe check --app "C:\\Program Files\\MyApp\\app.exe"

# Проверка в тихом режиме
mbfirewall.exe check --app "C:\\Program Files\\MyApp\\app.exe" --silent

Параметр:

  • --app <path>: Полный путь к исполняемому файлу программы (обязательно)

Пример вывода:

json
{
  "app": "C:\\Program Files\\MyApp\\app.exe",
  "inbound": "enabled",
  "outbound": "enabled",
  "rules": [
    {
      "name": "MBbrowser - app.exe (inbound)",
      "direction": "inbound",
      "enabled": true,
      "protocol": "any",
      "ports": "*"
    },
    {
      "name": "MBbrowser - app.exe (outbound)",
      "direction": "outbound",
      "enabled": true,
      "protocol": "any",
      "ports": "*"
    }
  ]
}

Значения статуса:

  • enabled: правило существует и включено
  • disabled: правило существует, но отключено
  • not_found: правило не найдено

Коды выхода:

  • 0: правило добавлено и включено
  • 1: правило не найдено
  • 2: правило существует, но не включено
  • 4: неверный путь к программе

Сценарии использования:

  • Проверка того, было ли добавлено правило после установки
  • Проверка статуса правила при поиске и устранении неисправностей
  • Валидация конфигурации в автоматизированных скриптах
  • Периодическая проверка целостности правил

Примечания:

  • Путь должен быть абсолютным, а не относительным
  • Путь в некоторых случаях может быть чувствителен к регистру
  • Если для программы существует несколько правил, будут перечислены все связанные правила

Добавление правила (add)

Описание: Добавление правил брандмауэра для указанной программы с поддержкой богатой конфигурации параметров.

Использование:

Добавление правила для одной программы:

bash
# Базовое добавление (оба направления, любой протокол, все порты)
mbfirewall.exe add --app "C:\\Program Files\\MyApp\\app.exe"

# Добавление с пользовательским именем
mbfirewall.exe add --app "C:\\Program Files\\MyApp\\app.exe" --name "MyApp"

# Добавление входящего правила TCP с указанием портов
mbfirewall.exe add --app "C:\\Server\\server.exe" --direction inbound --protocol tcp --ports 80,443

# Добавление исходящего правила UDP
mbfirewall.exe add --app "C:\\Client\\client.exe" --direction outbound --protocol udp --ports 53

# Добавление правила с диапазоном портов
mbfirewall.exe add --app "C:\\Game\\game.exe" --protocol tcp --ports 27015-27030

# Добавление правила в тихом режиме
mbfirewall.exe add --app "C:\\App\\app.exe" --name "App" --silent

Описание параметров:

ПараметрОписаниеЗначенияПо умолчанию
--app <path>Путь к исполняемому файлу программы (обязательно)--
--name <name>Имя правила (опционально)Любая строкаИмя файла
--direction <dir>Направление правилаinbound / in / outbound / out / bothboth
--protocol <prot>Тип протоколаtcp / udp / icmp / anyany
--ports <ports>Номера портов80 / 80,443 / 8000-9000 / **
--silentТихий режим-false

Правила именования правил: Если параметр --name не указан, формат имени правила будет следующим: {префикс_правила} - {имя_файла} ({направление}) Например: MBbrowser - app.exe (inbound)

Пакетное добавление правил: Используйте JSON-файл для массового добавления правил:

bash
mbfirewall.exe add --batch "config\\apps.json"

Формат конфигурационного файла:

json
{
  "name": "My app rule set",
  "description": "Bulk added firewall rules",
  "version": "1.0",
  "apps": [
    {
      "name": "Chrome",
      "path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
      "direction": "both",
      "protocol": "any",
      "ports": "*",
      "enabled": true,
      "description": "Chrome browser firewall rule"
    },
    {
      "name": "Web Server",
      "path": "C:\\Server\\nginx.exe",
      "direction": "inbound",
      "protocol": "tcp",
      "ports": "80,443",
      "enabled": true,
      "description": "Nginx Web Server"
    }
  ]
}

Коды выхода:

  • 0: добавление прошло успешно
  • 1: ошибка добавления (подробности в выводе)
  • 2: недостаточно прав
  • 3: неверные параметры
  • 4: правило уже существует

Сценарии использования:

  • Автоматическое добавление правил во время установки
  • Настройка сетевого доступа серверных приложений
  • Массовое развертывание правил для нескольких программ
  • Временное добавление правил для тестирования

Примечания:

  • Требуются права администратора
  • Если правило уже существует, возвращается ошибка (перезапись не производится)
  • При добавлении правил в обоих направлениях будут созданы два правила (входящее + исходящее)
  • Путь должен быть абсолютным
  • Добавление правил для несуществующих файлов может быть разрешено в зависимости от настроек

Удаление правила (remove)

Описание: Удаление правил брандмауэра для указанной программы; поддерживается удаление по пути к программе или по имени правила.

Использование:

Удаление по пути к программе:

bash
# Удалить все правила для программы (входящие + исходящие)
mbfirewall.exe remove --app "C:\\Program Files\\MyApp\\app.exe"

# Удаление в тихом режиме
mbfirewall.exe remove --app "C:\\Program Files\\MyApp\\app.exe" --silent

Удаление по имени правила:

bash
# Удалить конкретное правило
mbfirewall.exe remove --name "MBbrowser - app.exe (inbound)"

# Удалить конкретное правило (тихий режим)
mbfirewall.exe remove --name "MBbrowser - app.exe (inbound)" --silent

Описание параметров:

  • --app <path>: Путь к исполняемому файлу программы (взаимоисключающий с --name)
  • --name <name>: Имя правила (взаимоисключающий с --app)
  • --silent: Тихий режим

Коды выхода:

  • 0: удаление прошло успешно
  • 1: ошибка удаления
  • 2: недостаточно прав
  • 3: неверные параметры (не указан ни один параметр или указаны оба)
  • 4: правило не найдено

Сценарии использования:

  • Очистка правил при удалении программ
  • Изменение конфигурации правила (удаление старого и добавление нового)
  • Очистка невалидных правил
  • Массовая очистка правил

Примечания:

  • Требуются права администратора
  • Удаление по пути удаляет все правила для этой программы (и входящие, и исходящие)
  • Операции удаления необратимы; действуйте с осторожностью
  • Если правило не существует, возвращается ненулевой код выхода

Список правил (list)

Описание: Вывод списка всех правил или правил, отфильтрованных по определенному префиксу.

Использование:

bash
# Список всех правил
mbfirewall.exe list

# Список правил с определенным префиксом
mbfirewall.exe list --prefix "MBbrowser"

# Список правил, связанных с MBbrowser
mbfirewall.exe list --prefix "MBbrowser"

# Тихий режим
mbfirewall.exe list --prefix "MBbrowser" --silent

Описание параметров:

  • --prefix <prefix>: Фильтр по префиксу имени правила (опционально)
  • --silent: Тихий режим

Пример вывода:

json
{
  "count": 10,
  "rules": [
    {
      "name": "MBbrowser - Chrome (inbound)",
      "display_name": "MBbrowser - Chrome (inbound)",
      "description": "Ядро Chrome - рендеринг и выполнение",
      "enabled": true,
      "direction": "inbound",
      "protocol": "tcp",
      "local_ports": "80, 443",
      "remote_ports": "*",
      "application_path": "C:\\Program Files\\MBbrowser\\MBbrowser\\chrome.exe",
      "profiles": 7
    },
    {
      "name": "MBbrowser - Chrome (outbound)",
      "display_name": "MBbrowser - Chrome (outbound)",
      "description": "Ядро Chrome - рендеринг и выполнение",
      "enabled": true,
      "direction": "outbound",
      "protocol": "tcp",
      "local_ports": "80,443",
      "remote_ports": "*",
      "application_path": "C:\\Program Files\\MBbrowser\\MBbrowser\\chrome.exe",
      "profiles": 7
    }
  ]
}

Коды выхода:

  • 0: запрос выполнен успешно
  • 1: ошибка выполнения запроса
  • 2: недостаточно прав

Use cases:

  • View all firewall rules
  • Check rules for a specific application
  • Audit and compliance checks
  • Troubleshooting

Notes:

  • Requires administrator privileges
  • Rule lists can be very long (hundreds); using prefix filters is recommended
  • Output may include system and other program-created rules

Enable firewall (enable)

Description: Enable Windows Firewall for specified profiles.

Usage:

# Enable all profiles
mbfirewall.exe enable --profile all

#### Включение брандмауэра (enable)

**Описание**: Включение брандмауэра Windows для указанных профилей.

**Использование**:
```bash
# Включить все профили (рекомендуется)
mbfirewall.exe enable --profile all

# Включить только публичный профиль
mbfirewall.exe enable --profile public

# Включить частный профиль
mbfirewall.exe enable --profile private

# Включить доменный профиль
mbfirewall.exe enable --profile domain

# Тихий режим
mbfirewall.exe enable --profile all --silent

Описание параметров:

  • --profile <type>: Тип профиля (обязательно)
    • domain: доменный профиль
    • private: частный профиль
    • public: публичный профиль
    • all: все профили
  • --silent: Тихий режим

Коды выхода:

  • 0: включение прошло успешно
  • 1: ошибка включения
  • 2: недостаточно прав

Сценарии использования:

  • Исправление отключенного брандмауэра
  • Включение брандмауэра для определенных сетей
  • Обеспечение включения брандмауэра при массовом развертывании
  • Соблюдение политик безопасности, требующих включенного брандмауэра

Примечания:

  • Требуются права администратора
  • Включение брандмауэра не влияет на существующие правила
  • В целях безопасности рекомендуется держать брандмауэр включенным

Отключение брандмауэра (disable)

Описание: Отключение брандмауэра Windows для указанных профилей.

Использование:

bash
# Отключить все профили (не рекомендуется)
mbfirewall.exe disable --profile all

# Отключить только публичный профиль
mbfirewall.exe disable --profile public

Описание параметров:

  • --profile <type>: Тип профиля (обязательно)
  • --silent: Тихий режим

Коды выхода:

  • 0: отключение прошло успешно
  • 1: ошибка отключения
  • 2: недостаточно прав

Предупреждение по безопасности: Отключение брандмауэра значительно снижает безопасность системы и делает ее уязвимой для сетевых атак. Отключайте его только для особых нужд и включайте обратно как можно скорее.

Сценарии использования:

  • Временное устранение неисправностей (чтобы проверить, не вызывает ли брандмауэр проблемы)
  • Специфические потребности тестовой среды
  • Среды во внутренней сети, защищенные другими устройствами брандмауэра

Примечания:

  • Требуются права администратора
  • Отключение брандмауэра вступает в силу немедленно, и все правила брандмауэра перестают действовать
  • Рекомендуется своевременно включать брандмауэр обратно

Экспорт правил (export)

Описание: Экспорт конфигурации правил брандмауэра в JSON-файл; поддерживается фильтрация по префиксу.

Использование:

bash
# Экспорт всех правил
mbfirewall.exe export --output "backup\\all_rules.json"

# Экспорт правил с определенным префиксом
mbfirewall.exe export --output "backup\\mbbrowser_rules.json" --prefix "MBbrowser"

# Экспорт в текущий каталог
mbfirewall.exe export --output "firewall_backup.json"

# Тихий режим
mbfirewall.exe export --output "backup.json" --silent

Описание параметров:

  • --output <file>: Путь к выходному файлу (обязательно)
  • --prefix <prefix>: Экспортировать только правила с указанным префиксом (опционально)
  • --silent: Тихий режим

Формат выходного файла:

json
{
  "version": "1.0",
  "description": "Exported firewall rules",
  "created_at": "2025-11-03T10:30:00Z",
  "apps": [
    {
      "name": "MBbrowser - Chrome",
      "path": "C:\\Program Files\\MBbrowser\\MBbrowser\\chrome.exe",
      "direction": "both",
      "protocol": "tcp",
      "ports": "80,443",
      "enabled": true,
      "description": "Ядро Chrome - рендеринг и выполнение"
    }
  ]
}

Коды выхода:

  • 0: экспорт прошел успешно
  • 1: ошибка экспорта
  • 2: недостаточно прав
  • 3: неверные параметры (недопустимый путь вывода)

Сценарии использования:

  • Регулярное резервное копирование правил брандмауэра
  • Миграция правил на другие машины
  • Контроль версий и управление конфигурацией
  • Проверки аудита и комплаенса

Примечания:

  • Требуются права администратора
  • Экспорт перезапишет существующие файлы
  • Формат экспорта совпадает с форматом пакетного добавления и может быть использован напрямую для импорта

Import rules (import)

Импорт правил (import)

Описание: Массовый импорт правил брандмауэра из конфигурационного файла JSON.

Использование:

bash
# Импорт из файла резервной копии
mbfirewall.exe import --input "backup\\all_rules.json"

# Импорт из конфигурационного файла
mbfirewall.exe import --input "config\\default_rules.json"

# Тихий режим
mbfirewall.exe import --input "backup.json" --silent

Описание параметров:

  • --input <file>: Путь к входному файлу (обязательно)
  • --silent: Тихий режим

Формат конфигурационного файла: аналогичен формату, используемому для пакетного добавления (см. раздел «Добавление правила»).

Коды выхода:

  • 0: импорт прошел успешно
  • 1: ошибка импорта (частичный или полный отказ)
  • 2: недостаточно прав
  • 3: неверные параметры (файл не найден или ошибка формата)
  • 4: файл не найден

Сценарии использования:

  • Восстановление правил из резервной копии
  • Массовое развертывание правил на нескольких машинах
  • Миграция правил в новые системы
  • Быстрая настройка из шаблонов

Примечания:

  • Требуются права администратора
  • Существующие правила будут пропущены (не перезаписываются)
  • Ошибки в правилах будут отражены в выводе
  • Перед импортом рекомендуется экспортировать текущие правила в качестве резервной копии

MBbrowser-specific command (add-mbbrowser)

Команда для MBbrowser (add-mbbrowser)

Описание: Автоматическое добавление правил брандмауэра для всех программ MBbrowser.

Использование:

bash
# Добавление правил MBbrowser (стандартный режим)
mbfirewall.exe add-mbbrowser

# Добавление правил с включенным логированием
mbfirewall.exe --enable-log add-mbbrowser

Как это работает:

  1. Считывание пути установки: считывает путь установки MBbrowser из реестра по адресу HKEY_CURRENT_USER\\SOFTWARE\\MBbrowser\\Path.

  2. Проверка файлов программ: проверяет наличие следующих 9 файлов программ:

    • mbbrowser.exe (основная программа)
    • cdp.exe (отладка CDP)
    • mbservice.exe (фоновая служба)
    • apiserver.exe (API-сервер)
    • MBbrowser\chrome.exe (ядро Chrome)
    • MBbrowser\chrome_proxy.exe (прокси Chrome)
    • MBbrowser\chrome_pwa_launcher.exe (запуск PWA)
    • MBbrowser\chromedriver.exe (драйвер браузера)
    • MBbrowser\notification_helper.exe (помощник уведомлений)
  3. Добавление правил: добавляет входящие и исходящие правила для каждой найденной программы (до 18 правил).

  4. Отображение результатов: выводит подробные результаты выполнения, включая успехи и сбои.

Пример вывода:

text
🔥 Добавление правил брандмауэра MBbrowser
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📍 Путь установки: C:\\Program Files\\MBbrowser

Для следующих программ MBbrowser будут добавлены правила брандмауэра:

  • mbbrowser.exe (Основная программа MBbrowser)
  • cdp.exe (Chrome DevTools Protocol)
  • mbservice.exe (Фоновая служба MBbrowser)
  • apiserver.exe (API сервер)
  • chrome.exe (Ядро Chrome)
  • chrome_proxy.exe (Прокси Chrome)
  • chrome_pwa_launcher.exe (Запуск Chrome PWA)
  • chromedriver.exe (Драйвер браузера)
  • notification_helper.exe (Помощник уведомлений)

Для каждой программы будут добавлены входящие и исходящие правила
Всего 18 правил брандмауэра

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📦 Обработка: mbbrowser.exe
   Путь: C:\\Program Files\\MBbrowser\\mbbrowser.exe
   Описание: Основная программа MBbrowser - требуется доступ к сети
   Протокол: any | Порты: *
   [1/2] Добавление входящего правила... ✅ Успешно
   [2/2] Добавление исходящего правила... ✅ Успешно

...

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Результаты выполнения
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ Успешно добавлено все 18 правил

Для следующих программ были добавлены правила брандмауэра:
  • mbbrowser.exe
  • cdp.exe
  • mbservice.exe
  • apiserver.exe
  • chrome.exe
  • chrome_proxy.exe
  • chrome_pwa_launcher.exe
  • chromedriver.exe
  • notification_helper.exe

Коды выхода:

  • 0: все правила добавлены успешно
  • 1: частичный или полный сбой

Сценарии использования:

  • Автоматическая настройка брандмауэра после установки MBbrowser
  • Исправление сетевых проблем MBbrowser
  • Перенастройка правил брандмауэра MBbrowser

Примечания:

  • Требуются права администратора
  • Убедитесь, что MBbrowser установлен корректно
  • Отсутствующие файлы будут пропущены
  • Существующие правила будут пропущены (не перезаписываются)

Поиск и устранение неисправностей: Если команда не удалась, проверьте:

  1. Путь в реестре: убедитесь, что HKEY_CURRENT_USER\\SOFTWARE\\MBbrowser\\Path существует и содержит правильное значение пути.
  2. Пути к файлам: убедитесь, что соответствующие файлы программ существуют в каталоге установки MBbrowser.
  3. Права администратора: убедитесь, что команда запущена от имени администратора.
  4. Служба брандмауэра: убедитесь, что служба брандмауэра Windows запущена.

The following continues to strictly follow the original document structure at ### (h3) and #### (h4) levels; do not add any additional explanations, emoji, symbols, or subjective polishing — keep the content exactly consistent with the original.


Technical Features and Architecture

Architecture Design

MBfirewall uses a layered architecture to ensure maintainability and extensibility:

┌─────────────────────────────────────────┐
│           User Interface Layer (UI/CLI)             │
│  - GUI (ui/)
│  - CLI commands (cmd/)
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│           Business Logic Layer (firewall/)          │
│  - Manager (high-level API)
│  - Rule validation and construction
│  - Batch operations
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│           System Interface Layer (firewall/)          │
│  - COMFirewall (COM interface wrapper)
│  - Windows COM API calls
└─────────────────────────────────────────┘

### Технические особенности и архитектура

#### Архитектурный дизайн

MBfirewall использует многоуровневую архитектуру для обеспечения простоты обслуживания и расширяемости:

```text
┌─────────────────────────────────────────┐
│        Уровень интерфейса (UI/CLI)      │
│  - GUI (ui/)                            │
│  - Команды CLI (cmd/)                   │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│        Уровень бизнес-логики (firewall/)│
│  - Менеджер (высокоуровневый API)       │
│  - Валидация и построение правил        │
│  - Пакетные операции                    │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│        Уровень системного интерфейса    │
│  - COMFirewall (обертка COM-интерфейса) │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│           Системный уровень             │
│  - Брандмауэр Windows Defender          │
│  - INetFwPolicy2 / INetFwRules          │
└─────────────────────────────────────────┘

Основные технологии

Интерфейс Windows COM

MBfirewall использует интерфейсы Windows COM (Component Object Model) для взаимодействия с брандмауэром Windows:

Основные интерфейсы:

  • INetFwPolicy2: интерфейс политики брандмауэра
    • Получение и установка состояний профиля
    • Получение коллекций правил
  • INetFwRules: интерфейс коллекции правил брандмауэра
    • Перечисление всех правил
    • Добавление, удаление, изменение правил
  • INetFwRule: интерфейс правила брандмауэра
    • Все атрибуты правила (имя, путь, направление, протокол и т.д.)

Преимущества:

  • Официальный API, стабильный и надежный
  • Поддержка Windows 7 и выше
  • Отсутствие сторонних зависимостей
  • Отличная производительность

Особенности языка Go

Потокобезопасность:

  • Использует модель конкурентности Go для обеспечения безопасности потоков
  • Вызовы COM-интерфейса выполняются в одном потоке во избежание состояний гонки (race conditions)

Управление памятью:

  • Автоматическая сборка мусора Go избавляет от ручного управления памятью
  • Правильное освобождение объектов COM гарантирует отсутствие утечек ресурсов

Обработка ошибок:

  • Подробные сообщения об ошибках для диагностики проблем
  • Стандартизированный поток обработки ошибок

Модульный дизайн

MBfirewall использует модульный дизайн с четким разделением ответственности:

  • Модуль cmd: парсинг CLI и маршрутизация, валидация параметров, форматирование вывода.
  • Модуль firewall: основная логика операций с брандмауэром, обертка COM-интерфейса, управление правилами.
  • Модуль models: определение моделей данных, преобразование типов и валидация, парсинг конфигурационных файлов.
  • Модуль ui: реализация GUI, обработка событий, обновление статуса.
  • Модуль utils: вспомогательные функции (путь, права доступа, логирование и т.д.).

Оптимизация производительности

Повторное использование объектов COM

  • Повторное использование объектов политики брандмауэра во избежание частого создания.
  • Повторное использование соединений для пакетных операций.

Ленивая загрузка

  • Инициализация объектов COM только при необходимости.
  • Запрос правил по требованию во избежание загрузки всех правил сразу.

Нормализация путей

  • Унификация форматов путей во избежание дублирующих запросов.
  • Кэширование нормализованных результатов.

Быстрый возврат при ошибке

  • Ранняя валидация параметров во избежание ненужных операций.
  • Первоочередная проверка прав доступа.

Дизайн безопасности

Контроль прав доступа

  • Все операции модификации требуют прав администратора.
  • Автоматическое определение прав с дружелюбными подсказками.
  • Поддержка повышения прав через UAC.

Валидация входных данных

  • Строгая валидация параметров.
  • Нормализация путей для предотвращения атак обхода путей (path traversal).
  • Валидация диапазонов протоколов и портов.

Аудит операций

  • Опциональное логирование.
  • Подробные логи операций.
  • Удобство отслеживания и аудита.

Принцип наименьших привилегий

  • Операции запроса запускаются под обычным пользователем (ограниченные возможности).
  • Только операции изменения требуют прав администратора.

Дизайн совместимости

Поддержка Windows 7

  • Использование Go 1.21 для обеспечения совместимости.
  • Предоставление специальной сборки для Windows 7.
  • Покрытие тестами для Windows 7 SP1 и выше.

Кодировка символов

  • Поддержка кодировки UTF-8.
  • Правильная обработка кириллических и китайских путей и имен правил.
  • Автоматическая настройка кодовой страницы вывода консоли.

Обработка путей

  • Поддержка длинных путей (Windows 10+).
  • Правильная обработка путей UNC.
  • Унифицированная нормализация путей.

Установка и настройка

Системные требования

Операционная система:

  • Windows 7 SP1 и выше
  • Windows 8 / 8.1
  • Windows 10 (все редакции)
  • Windows 11 (все редакции)
  • Windows Server 2008 R2 и выше

Права доступа:

  • Права администратора (для изменения правил брандмауэра)
  • Права обычного пользователя (для операций запроса)

Другие требования:

  • Запущенная служба брандмауэра Windows Defender
  • Свободное место на диске (около 10 МБ)

Способы установки

Способ 1: Запуск исполняемого файла напрямую

  1. Загрузите программу:

    • Загрузите последнюю версию mbfirewall.exe или mbfirewall_v1.0.43.exe.
    • Пользователям Windows 7 следует загрузить mbfirewall_v1.0.43_win7.exe.
  2. Разместите файл:

    • Вы можете поместить файл в любое место (рекомендуется C:\\Program Files\\MBfirewall\\).
    • Или поместите его в каталог, указанный в системной переменной PATH, для глобального доступа.
  3. Запустите программу:

    • Дважды щелкните для запуска в режиме GUI.
    • Или запустите из командной строки для использования в режиме CLI.

Примечания:

  • При первом запуске потребуется подтверждение прав администратора (запрос UAC).
  • Запуск от имени обычного пользователя может ограничить некоторые функции.

Способ 2: Сборка из исходного кода

Предварительные требования:

  • Go 1.21 или новее.
  • Windows SDK (обычно устанавливается вместе с Visual Studio или Build Tools).
  • Git (опционально, для клонирования репозитория).

Этапы сборки:

  1. Клонирование репозитория (если используете Git):
bash
git clone https://github.com/yourusername/mbfirewall.git
cd mbfirewall/mbfirewall

или скачайте и распакуйте архив с исходным кодом.

  1. Сборка версии GUI (без консольного окна):
bash
go build -ldflags="-H windowsgui" -o mbfirewall.exe
  1. Сборка консольной версии (для CLI):
bash
go build -o mbfirewall_console.exe
  1. Сборка версии, совместимой с Windows 7:
bash
# Используйте Go 1.21
go build -ldflags="-H windowsgui" -o mbfirewall_win7.exe

Интеграция ресурсов: Если вам нужно внедрить иконки и файлы манифеста:

  1. Подготовьте файлы ресурсов:

    • mbfirewall.ico: иконка программы.
    • manifest.xml: манифест программы (для повышения прав UAC).
  2. Используйте windres для компиляции ресурсов (если используете файлы .rc):

bash
windres -i resource.rc -o resource.syso
go build -ldflags="-H windowsgui" -o mbfirewall.exe

Конфигурационные файлы

MBfirewall использует JSON-файлы для хранения настроек:

Расположение конфигурационных файлов:

  • Настройки: %APPDATA%\\MBfirewall\\config\\settings.json
  • Конфигурация приложений: %APPDATA%\\MBfirewall\\config\\apps.json

Настройки по умолчанию:

json
{
  "auto_refresh": true,
  "refresh_interval": 30,
  "create_both_rules": true,
  "enable_new_rules": true,
  "default_protocol": "any",
  "rule_prefix": "MBbrowser ",
  "log_level": "info",
  "log_retention_days": 30,
  "check_file_exists": false,
  "confirm_on_delete": true,
  "minimize_to_tray": false,
  "start_minimized": false,
  "language": "ru-RU"
}

Описание настроек:

НастройкаОписаниеПо умолчанию
rule_prefixПрефикс имени правила"MBbrowser "
auto_refreshАвтообновление в режиме GUItrue
refresh_intervalИнтервал обновления (секунды)30
check_file_existsПроверка существования файла перед добавлением правилаfalse
log_levelУровень логирования (debug/info/warn/error)"info"
log_retention_daysДни хранения логов30

Изменение конфигурации: Конфигурационный файл автоматически создается при первом запуске. Вы можете отредактировать его вручную для изменения настроек.

Настройка логирования

Расположение лог-файлов: %APPDATA%\\MBfirewall\\logs\\

Формат имени лог-файла: mbfirewall_ГГГГММДД.log

Включение логирования:

  • GUI: запуск с параметром --enable-log.
  • CLI: добавьте --enable-log перед командами.

Пример:

bash
mbfirewall.exe --enable-log status

Руководство по использованию GUI

Запуск приложения

Способы запуска:

  1. Дважды щелкните по mbfirewall.exe для запуска в режиме GUI.
  2. Или запустите mbfirewall.exe (без аргументов) из командной строки.

Первый запуск:

  • Если программа запущена не от имени администратора, появится запрос UAC на повышение прав.
  • Нажмите «Да», чтобы разрешить повышение прав.
  • Программа автоматически создаст каталоги для конфигурации и логов.

Обзор основного интерфейса

Макет:

text
┌─────────────────────────────────────────────────────┐
│  MB Firewall Management Tool                     [ Свернуть ][ Закрыть ] │
├─────────────────────────────────────────────────────┤
│                                                     │
│   Статус брандмауэра      │
│  ┌─────────┬─────────┬─────────┐                   │
│  │ Доменный │ Частный  │Публичный │                   │
│  │ ✅ Включен │ ✅ Включен │ ❌ Выключен│                   │
│  └─────────┴─────────┴─────────┘                   │
│                                                      │
│   Всего правил: 150                                     │
│                                                     │
│  ┌───────────────────────────────────────────────┐ │
│  │ [Обновить] [Добавить] [Удалить] [Экспорт] [Импорт]   │ │
│  └───────────────────────────────────────────────┘ │
│                                                     │
│   Список правил                                        │
│  ┌───────────────────────────────────────────────┐ │
│  │  Имя                      │ Статус   │Направление │ Действие   │ │
│  ├───────────────────────────────────────────────┤ │
│  │  MBbrowser - app.exe ... │ ✅   │ Входящее  │ [Удалить] │ │
│  │  MBbrowser - app.exe... │ ✅   │ Исходящее │ [Удалить] │ │
│  │ ...                                           │ │
│  └───────────────────────────────────────────────┘ │
│                                                      │
│   Поиск: [____________] [ Фильтр ]                      │
│                                                     │
└─────────────────────────────────────────────────────┘

Основные компоненты:

  1. Строка состояния: отображает состояния трех профилей (доменный / частный / публичный).
  2. Всего правил: отображает текущее общее количество правил брандмауэра.
  3. Кнопки действий: Обновить, Добавить, Удалить, Экспорт, Импорт.
  4. Список правил: отображает все правила брандмауэра.
  5. Поле поиска: фильтрация списка правил.

Основные операции

Просмотр статуса брандмауэра

При запуске основной интерфейс автоматически отображает текущий статус брандмауэра:

  • Зеленый ✅ означает включен.
  • Красный ❌ означает отключен. Нажмите «Обновить», чтобы обновить данные вручную.

Добавление правила брандмауэра

Этапы:

  1. Нажмите кнопку «Добавить правило».
  2. В диалоговом окне:
    • Выберите или введите путь к программе.
    • Укажите имя правила (опционально).
    • Установите направление (входящее / исходящее / оба).
    • Установите протокол (TCP/UDP/ICMP/Любой).
    • Установите порты (опционально).
  3. Нажмите «ОК», чтобы добавить.

Быстрые способы:

  • Перетащите файлы программ в интерфейс для добавления.
  • Используйте контекстное меню для добавления правил.

Удаление правила брандмауэра

Этапы:

  1. Выберите правило(а) в списке.
  2. Нажмите кнопку «Удалить правило».
  3. Подтвердите удаление.

Массовое удаление:

  • Удерживайте Ctrl для выбора нескольких правил.
  • Удерживайте Shift для выбора диапазона.
  • Нажмите «Удалить правило» для массового удаления.

Поиск и фильтрация правил

Поиск:

  • Введите ключевые слова в поле поиска.
  • Правила фильтруются в режиме реального времени.
  • Поддерживается поиск по имени, пути и описанию.

Фильтр префиксов:

  • Фильтрация правил по префиксу.
  • Например, префикс «MBbrowser» покажет все правила MBbrowser.

Экспорт правил

Этапы:

  1. Нажмите кнопку «Экспорт».
  2. Выберите место для сохранения.
  3. Опционально: установите фильтр префиксов.
  4. Нажмите «Сохранить».

Экспортированный файл в формате JSON можно использовать для резервного копирования или импорта на других машинах.

Импорт правил

Этапы:

  1. Нажмите кнопку «Импорт».
  2. Выберите JSON-файл.
  3. Подтвердите импорт.

Импорт отображает прогресс и результаты; неудачные правила помечаются.

Системный трей

Иконка в трее:

  • Программа сворачивается в системный трей.
  • Щелкните правой кнопкой мыши по иконке, чтобы:
    • Показать основное окно.
    • Выйти из программы.
    • Просмотреть статус брандмауэра.

Автообновление:

  • Интервал автообновления настраивается.
  • Иконка в трее отображает статус брандмауэра в режиме реального времени.

CLI Usage Guide

Command format

Basic format:

mbfirewall.exe [command] [options]

Enable logging:

mbfirewall.exe --enable-log [command] [options]

Silent mode: Most commands support --silent which:

  • Outputs nothing to console
  • Only returns result via exit code
  • Suitable for scripts

Command quick reference

Краткий справочник по командам

КомандаФункцияПример
statusЗапрос статуса брандмауэраmbfirewall.exe status
checkПроверка правил программыmbfirewall.exe check --app "C:\\app.exe"
listСписок правилmbfirewall.exe list --prefix "MBbrowser"
addДобавить правилоmbfirewall.exe add --app "C:\\app.exe"
add-mbbrowserДобавить правила MBbrowsermbfirewall.exe add-mbbrowser
removeУдалить правилоmbfirewall.exe remove --app "C:\\app.exe"
enableВключить брандмауэрmbfirewall.exe enable --profile all
disableОтключить брандмауэрmbfirewall.exe disable --profile public
exportЭкспорт правилmbfirewall.exe export --output "backup.json"
importИмпорт правилmbfirewall.exe import --input "backup.json"
versionПоказать версиюmbfirewall.exe version
helpПоказать справкуmbfirewall.exe help

Коды выхода

Все команды возвращают стандартные коды выхода:

КодЗначениеПримечания
0УспехОперация успешно завершена
1Общая ошибкаОперация не удалась, проверьте вывод ошибок
2Недостаточно правТребуются права администратора
3Неверные параметрыОшибка в аргументах командной строки
4Не найденоУказанный ресурс не найден

Использование в пакетных (batch) скриптах:

batch
@echo off
mbfirewall.exe status --silent
if %ERRORLEVEL% EQU 0 (
    echo Брандмауэр включен
) else (
    echo Брандмауэр не включен или ошибка проверки
)

В PowerShell:

powershell
.\mbfirewall.exe status --silent
if ($LASTEXITCODE -eq 0) {
    Write-Host "Брандмауэр включен"
} else {
    Write-Host "Брандмауэр не включен или ошибка проверки"
}

Практические примеры

Пример 1: Скрипт автоматизации развертывания

batch
@echo off
echo Настройка правил брандмауэра ...

REM Добавление правила для приложения
mbfirewall.exe add --app "C:\\MyApp\\server.exe" --name "MyApp Server" --direction inbound --protocol tcp --ports 8080
if %ERRORLEVEL% NEQ 0 (
    echo Ошибка: не удалось добавить правило брандмауэра
    exit /b 1
)

echo Конфигурация брандмауэра завершена!

Пример 2: Массовое добавление нескольких приложений

batch
@echo off
echo Массовое добавление правил брандмауэра ...
mbfirewall.exe add --batch "config\\production_apps.json"
if %ERRORLEVEL% EQU 0 (
    echo Все правила успешно добавлены
) else (
    echo Произошли частичные сбои, проверьте детали
)

Пример 3: Регулярное резервное копирование правил

batch
@echo off
set BACKUP_DIR=backup\%date:~0,4%%date:~5,2%%date:~8,2%
mkdir "%BACKUP_DIR%"

echo Экспорт правил брандмауэра ...
mbfirewall.exe export --output "%BACKUP_DIR%\firewall_rules.json"
echo Резервное копирование завершено: %BACKUP_DIR%

Пример 4: Интеграция в установщик

batch
@echo off
echo Установка приложения ...
REM Установка приложения
installer.exe /S

echo Настройка брандмауэра ...
mbfirewall.exe add --app "%ProgramFiles%\MyApp\app.exe" --name "MyApp" --silent
if %ERRORLEVEL% EQU 0 (
    echo Брандмауэр успешно настроен
) else (
    echo Внимание: ошибка настройки брандмауэра, может потребоваться ручная настройка
)

Интеграция по API и разработка

MBfirewall предоставляет комплексный интерфейс командной строки, который можно интегрировать в другие приложения путем вызова процессов.

Пример интеграции на C++

Базовая обертка для вызова

cpp
#include <windows.h>
#include <string>
#include <iostream>

// Выполнить команду mbfirewall.exe
int ExecuteFirewallCommand(const std::wstring& command, std::wstring& output) {
    SECURITY_ATTRIBUTES sa;
    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.lpSecurityDescriptor = NULL;
    sa.bInheritHandle = TRUE;

    // Create pipe for reading output
    HANDLE hReadPipe, hWritePipe;
    if (!CreatePipe(&hReadPipe, &hWritePipe, &sa, 0)) {
        return -1;
    }

    // Убедиться, что дескриптор чтения не наследуется
    SetHandleInformation(hReadPipe, HANDLE_FLAG_INHERIT, 0);

    STARTUPINFOW si = { sizeof(STARTUPINFOW) };
    si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
    si.hStdOutput = hWritePipe;
    si.hStdError = hWritePipe;
    si.wShowWindow = SW_HIDE;

    PROCESS_INFORMATION pi = { 0 };

    std::wstring cmdLine = L"mbfirewall.exe " + command;

    // Создать процесс
    BOOL success = CreateProcessW(
        NULL,
        const_cast<LPWSTR>(cmdLine.c_str()),
        NULL, NULL, TRUE,
        CREATE_NO_WINDOW,
        NULL, NULL,
        &si, &pi
    );

    if (!success) {
        CloseHandle(hReadPipe);
        CloseHandle(hWritePipe);
        return -1;
    }

    CloseHandle(hWritePipe);

    // Чтение вывода
    char buffer[4096];
    DWORD bytesRead;
    std::string result;

    while (ReadFile(hReadPipe, buffer, sizeof(buffer) - 1, &bytesRead, NULL) && bytesRead > 0) {
        buffer[bytesRead] = '\0';
        result += buffer;
    }

    // Дождаться завершения процесса
    WaitForSingleObject(pi.hProcess, INFINITE);

    // Получить код выхода
    DWORD exitCode;
    GetExitCodeProcess(pi.hProcess, &exitCode);

    CloseHandle(hReadPipe);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);

    // Преобразование вывода в wstring
    int len = MultiByteToWideChar(CP_UTF8, 0, result.c_str(), -1, NULL, 0);
    if (len > 0) {
        wchar_t* wbuffer = new wchar_t[len];
        MultiByteToWideChar(CP_UTF8, 0, result.c_str(), -1, wbuffer, len);
        output = wbuffer;
        delete[] wbuffer;
    }

    return exitCode;
}

Продвинутый класс-обертка

cpp
class MBFirewallManager {
private:
    std::wstring exePath;

    int Execute(const std::wstring& args, std::wstring& output) {
        std::wstring fullCmd = args;
        return ExecuteFirewallCommand(fullCmd, output);
    }

public:
    MBFirewallManager(const std::wstring& path = L"mbfirewall.exe")
        : exePath(path) {}

    // Проверка статуса брандмауэра
    bool IsFirewallEnabled() {
        std::wstring output;
        return Execute(L"status --silent", output) == 0;
    }

    // Добавление правила для программы
    bool AddProgramRule(const std::wstring& appPath, const std::wstring& name) {
        std::wstring output;
        std::wstring cmd = L"add --app \"" + appPath + L"\" --name \"" + name + L"\" --dir both --silent";
        return Execute(cmd, output) == 0;
    }

    // Удаление правила для программы
    bool RemoveProgramRule(const std::wstring& appPath) {
        std::wstring output;
        std::wstring cmd = L"remove --app \"" + appPath + L"\" --silent";
        return Execute(cmd, output) == 0;
    }

    // Проверка статуса правила для программы
    bool IsProgramRuleEnabled(const std::wstring& appPath) {
        std::wstring output;
        std::wstring cmd = L"check --app \"" + appPath + L"\" --silent";
        return Execute(cmd, output) == 0;
    }

    // Включение брандмауэра
    bool EnableFirewall(const std::wstring& profile = L"all") {
        std::wstring output;
        std::wstring cmd = L"enable --profile " + profile + L" --silent";
        return Execute(cmd, output) == 0;
    }

    // Отключение брандмауэра
    bool DisableFirewall(const std::wstring& profile = L"all") {
        std::wstring output;
        std::wstring cmd = L"disable --profile " + profile + L" --silent";
        return Execute(cmd, output) == 0;
    }

    // Пакетное добавление правил (с использованием конфигурационного файла)
    bool ImportRules(const std::wstring& configPath) {
        std::wstring output;
        std::wstring cmd = L"import --input \"" + configPath + L"\" --silent";
        return Execute(cmd, output) == 0;
    }
};

Пример использования

cpp
int main() {
    MBFirewallManager fw;

    // Проверка брандмауэра
    if (fw.IsFirewallEnabled()) {
        std::wcout << L"Брандмауэр включен" << std::endl;
    }

    // Добавление правила MBbrowser
    if (fw.AddProgramRule(L"C:\\Program Files\\MBBrowser\\mbbrowser.exe", L"MBbrowser")) {
        std::wcout << L"Правило успешно добавлено" << std::endl;
    }

    // Проверка статуса правила
    if (fw.IsProgramRuleEnabled(L"C:\\Program Files\\MBBrowser\\mbbrowser.exe")) {
        std::wcout << L"Правило включено" << std::endl;
    }

    return 0;
}

Интеграция с PowerShell

powershell
# Функция-обертка
function Add-FirewallRule {
    param(
        [string]$AppPath,
        [string]$Name
    )

    $result = & "mbfirewall.exe" add --app $AppPath --name $Name --silent
    return $LASTEXITCODE -eq 0
}

function Check-FirewallStatus {
    $result = & "mbfirewall.exe" status --silent
    return $LASTEXITCODE -eq 0
}

# Примеры использования
if (Check-FirewallStatus) {
    Write-Host "Брандмауэр включен"
}

if (Add-FirewallRule -AppPath "C:\\App\\app.exe" -Name "MyApp") {
    Write-Host "Правило успешно добавлено"
}

Интеграция с Python

python
import subprocess
import json

class MBFirewallManager:
    def __init__(self, exe_path="mbfirewall.exe"):
        self.exe_path = exe_path

    def execute(self, args, silent=True):
        cmd = [self.exe_path] + args
        if silent:
            cmd.append("--silent")
        result = subprocess.run(cmd, capture_output=True, text=True)
        return result.returncode == 0, result.stdout, result.stderr

    def add_rule(self, app_path, name=None):
        args = ["add", "--app", app_path]
        if name:
            args.extend(["--name", name])
        return self.execute(args)[0]

    def check_status(self, app_path):
        args = ["check", "--app", app_path]
        return self.execute(args)[0]

    def enable_firewall(self, profile="all"):
        args = ["enable", "--profile", profile]
        return self.execute(args)[0]

# Пример использования
fw = MBFirewallManager()
if fw.add_rule("C:\\App\\app.exe", "MyApp"):
    print("Правило успешно добавлено")

Интеграция с MBbrowser

MBfirewall предоставляет функции глубокой интеграции для MBbrowser, которые делают настройку правил брандмауэра MBbrowser чрезвычайно простой.

Обзор функций интеграции

Основные возможности:

  • Автоматическое определение пути установки (чтение из реестра).
  • Настройка всех правил одним щелчком мыши (18 правил).
  • Интеллектуальный пропуск несуществующих файлов.
  • Подробная обратная связь о результатах выполнения.

Поддерживаемые программы: 9 основных программных файлов MBbrowser; для каждой программы будут добавлены входящие и исходящие правила, итого 18 правил.

Использование

Самый простой вариант:

bash
mbfirewall.exe add-mbbrowser

Использование с включенным логированием:

bash
mbfirewall.exe --enable-log add-mbbrowser

Детали работы

Определение пути установки

MBfirewall считывает путь установки MBbrowser из реестра: HKEY_CURRENT_USER\\SOFTWARE\\MBbrowser\\Path

Если в реестре нет этого пути, команда завершится с четким сообщением об ошибке.

Обнаружение программных файлов

MBfirewall проверяет наличие следующих файлов программ:

Программный файлРасположение путиОписание
mbbrowser.exe{install_path}\\mbbrowser.exeОсновная программа MBbrowser
cdp.exe{install_path}\\cdp.exeChrome DevTools Protocol
mbservice.exe{install_path}\\mbservice.exeФоновая служба MBbrowser
apiserver.exe{install_path}\\apiserver.exeAPI сервер
chrome.exe{install_path}\\MBbrowser\\chrome.exeЯдро Chrome
chrome_proxy.exe{install_path}\\MBbrowser\\chrome_proxy.exeПрокси Chrome
chrome_pwa_launcher.exe{install_path}\\MBbrowser\\chrome_pwa_launcher.exeЗапуск Chrome PWA
chromedriver.exe{install_path}\\MBbrowser\\chromedriver.exeДрайвер автоматизации браузера
notification_helper.exe{install_path}\\MBbrowser\\notification_helper.exeПомощник уведомлений

Интеллектуальная обработка:

  • Если файл не существует, он будет пропущен, и обработка продолжится для других файлов.
  • Предупреждения отображаются, но не блокируют другие конфигурации.

Конфигурация правил

Для каждой программы будет добавлено по два правила:

  1. Входящее правило: разрешить внешний доступ к программе.
  2. Исходящее правило: разрешить программе доступ к внешним сетям.

Конфигурация протоколов и портов:

ПрограммаПротоколПортыПримечания
mbbrowser.exeany*Основной программе нужен полный сетевой доступ
cdp.exetcp9222Порт отладочной службы CDP
mbservice.exeany*Фоновой службе нужен полный сетевой доступ
apiserver.exetcp80,443Стандартные порты API-сервера
chrome.exetcp80,443Стандартные порты веб-доступа
chrome_proxy.exetcp80,443Стандартные порты веб-доступа
chrome_pwa_launcher.exetcp80,443Стандартные порты веб-доступа
chromedriver.exetcp9515Порт ChromeDriver по умолчанию
notification_helper.exetcp80,443Порты службы уведомлений

Отображение результатов выполнения

Пример успешного выполнения:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Результаты выполнения
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Успешно добавлено все 18 правил
Добавлены правила брандмауэра для следующих программ:
  • mbbrowser.exe
  • cdp.exe
  • mbservice.exe
  • apiserver.exe
  • chrome.exe
  • chrome_proxy.exe
  • chrome_pwa_launcher.exe
  • chromedriver.exe
  • notification_helper.exe
Для каждой программы были добавлены входящие и исходящие правила