Документация по управлению правилами брандмауэра MBFireWall
Обзор и введение
Что такое MBfirewall?
MBfirewall (Инструмент управления брандмауэром MB) — это решение корпоративного уровня для управления правилами брандмауэра, разработанное специально для операционной системы Windows. Оно обеспечивает удобное, эффективное и безопасное управление правилами брандмауэра Windows Defender как через графический интерфейс (GUI) так и через командную строку (CLI).
Продукт позиционируется как:
- Инструмент корпоративного уровня: предоставляет ИТ-администраторам возможность массового управления правилами брандмауэра.
- Компонент интеграции ПО: предоставляет разработчикам программные интерфейсы для настройки правил брандмауэра.
- Помощник по безопасности для частных пользователей: упрощает сложные конфигурации брандмауэра Windows для обычных пользователей.
- Инструмент автоматизированного развертывания: поддерживает развертывание через скрипты и пакетную конфигурацию, подходит для процессов 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.
- Автоматическое добавление входящих и исходящих правил для каждой программы.
- Настройка различных протоколов и портов в зависимости от программы.
Список поддерживаемых программ:
- mbbrowser.exe: основная программа MBbrowser (оба направления, все протоколы)
- cdp.exe: Chrome DevTools Protocol (TCP, порт 9222)
- mbservice.exe: фоновая служба MBbrowser (оба направления, все протоколы)
- apiserver.exe: API-сервер (TCP, порты 80/443)
- chrome.exe: ядро браузера Chrome (TCP, порты 80/443)
- chrome_proxy.exe: прокси Chrome (TCP, порты 80/443)
- chrome_pwa_launcher.exe: запуск Chrome PWA (TCP, порты 80/443)
- chromedriver.exe: драйвер автоматизации браузера (TCP, порт 9515)
- notification_helper.exe: помощник уведомлений (TCP, порты 80/443)
Команда для завершения настройки:
mbfirewall.exe add-mbbrowserЭта команда автоматически:
- Считает путь установки MBbrowser из реестра
- Проверит наличие всех файлов программ
- Добавит входящие и исходящие правила для каждой найденной программы (всего 18 правил)
- Отобразит подробные результаты выполнения и информацию об ошибках
Гибкая настройка параметров
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++):
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) или удаленные скрипты.
Шаги развертывания:
- Подготовьте файл конфигурации (apps.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
}
]
}- Создайте скрипт развертывания (deploy.bat):
@echo off
echo Развертывание правил брандмауэра...
mbfirewall.exe import --input "%~dp0apps.json"
if %ERRORLEVEL% EQU 0 (
echo Правила успешно развернуты
) else (
echo Ошибка развертывания, проверьте логи
exit /b 1
)- Разверните через Групповые политики или удаленное выполнение скрипта.
Преимущества:
- Одноразовая настройка для множества машин
- Единообразие конфигурации
- Поддержка контроля версий и отката к предыдущим состояниям
- Возможность полной автоматизации
Сценарий 3: Упрощение настройки для частных пользователей
Контекст: После установки программы брандмауэр Windows выдает запрос, и пользователи часто не знают, что делать, или им сложно настроить правила вручную.
Решение: Используйте режим GUI MBfirewall для наглядного и интуитивно понятного управления правилами.
Процесс использования:
- Запустите mbfirewall.exe для открытия графического интерфейса
- Просмотрите текущий статус брандмауэра
- Добавьте новое правило для программы:
- Нажмите кнопку «Add Rule»
- Выберите путь к программе
- Укажите имя правила и параметры
- Подтвердите добавление
- Проверьте список правил, чтобы убедиться в успешном завершении
Преимущества:
- Графический интерфейс с простыми операциями
- Обновление статуса в реальном времени
- Не нужно знать команды командной строки
- Дружелюбные сообщения об ошибках
Сценарий 4: Автоматизация CI/CD
Контекст: Конвейерам CI/CD необходима автоматическая настройка правил брандмауэра в тестовых средах для корректного выполнения тестов.
Решение: Используйте MBfirewall CLI в скриптах CI/CD для автоматической конфигурации тестовой среды.
Пример скрипта CI/CD (GitLab CI):
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 для настройки всех правил одной командой.
Шаги использования:
- Убедитесь, что MBbrowser установлен (путь установки записывается в реестр)
- Запустите команду от имени администратора:
mbfirewall.exe add-mbbrowser- Дождитесь автоматического завершения (около 18 правил)
Преимущества:
- Одна команда для полной настройки
- Автоматическое определение пути установки
- Интеллектуальный пропуск несуществующих файлов
- Подробная обратная связь о результатах выполнения
Сценарий 6: Аудит безопасности и комплаенс
Контекст: Предприятиям требуется регулярный аудит правил брандмауэра для обеспечения соответствия политикам безопасности и генерации отчетов.
Решение: Используйте функцию экспорта MBfirewall для регулярного сохранения правил и последующего аудита.
Процесс аудита:
- Регулярный экспорт правил (ежедневно/еженедельно):
@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"Анализ конфигурации правил:
- Проверка наличия несанкционированных правил
- Убедитесь, что настройки правил соответствуют политике безопасности
- Выявление аномальных портов и протоколов
Генерация отчетов аудита:
- Сравнение изменений правил за разные периоды
- Запись истории изменений
- Создание отчетов о соответствии (compliance)
Преимущества:
- Прослеживаемая история конфигураций
- Упрощение процесса проверки комплаенса
- Своевременное обнаружение аномальных настроек
- Поддержка автоматизированного аудита
Сценарий 7: Поиск и устранение неисправностей
Контекст: При возникновении проблем с сетевым подключением необходимо проверить, правильно ли настроены правила брандмауэра.
Решение: Используйте функции запроса MBfirewall для быстрой проверки статуса правил.
Шаги устранения неисправностей:
- Проверьте общий статус брандмауэра:
mbfirewall.exe status- Проверьте правила для конкретной программы:
mbfirewall.exe check --app "C:\\Program Files\\App\\app.exe"- Выведите список всех связанных правил:
mbfirewall.exe list --prefix "App"- Исправьте проблемы на основе результатов проверки:
- Если правило не найдено — добавьте его
- Если правило отключено — включите его
- Если правило настроено неверно — удалите и добавьте заново
Преимущества:
- Быстрая локализация проблем
- Наглядное отображение статуса правил
- Поддержка массовой проверки
- Упрощение процесса удаленной поддержки
Detailed Feature Description
Запрос статуса брандмауэра (status)
Описание: Запрос общего состояния брандмауэра Windows, включая состояние включения каждого профиля и количество правил.
Использование:
Режим GUI:
- После запуска в главном интерфейсе отображается текущее состояние брандмауэра
- В строке состояния отображается состояние каждого профиля
- Нажмите «Refresh» для обновления статуса
Режим CLI:
# Базовый запрос
mbfirewall.exe status
# Тихий режим (только код выхода)
mbfirewall.exe status --silentПример вывода:
{
"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)
Описание: Проверка существования правил брандмауэра для указанной программы и состояния этих правил (включены/отключены).
Использование:
# Проверка статуса правил программы
mbfirewall.exe check --app "C:\\Program Files\\MyApp\\app.exe"
# Проверка в тихом режиме
mbfirewall.exe check --app "C:\\Program Files\\MyApp\\app.exe" --silentПараметр:
--app <path>: Полный путь к исполняемому файлу программы (обязательно)
Пример вывода:
{
"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)
Описание: Добавление правил брандмауэра для указанной программы с поддержкой богатой конфигурации параметров.
Использование:
Добавление правила для одной программы:
# Базовое добавление (оба направления, любой протокол, все порты)
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 / both | both |
--protocol <prot> | Тип протокола | tcp / udp / icmp / any | any |
--ports <ports> | Номера портов | 80 / 80,443 / 8000-9000 / * | * |
--silent | Тихий режим | - | false |
Правила именования правил: Если параметр --name не указан, формат имени правила будет следующим: {префикс_правила} - {имя_файла} ({направление}) Например: MBbrowser - app.exe (inbound)
Пакетное добавление правил: Используйте JSON-файл для массового добавления правил:
mbfirewall.exe add --batch "config\\apps.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)
Описание: Удаление правил брандмауэра для указанной программы; поддерживается удаление по пути к программе или по имени правила.
Использование:
Удаление по пути к программе:
# Удалить все правила для программы (входящие + исходящие)
mbfirewall.exe remove --app "C:\\Program Files\\MyApp\\app.exe"
# Удаление в тихом режиме
mbfirewall.exe remove --app "C:\\Program Files\\MyApp\\app.exe" --silentУдаление по имени правила:
# Удалить конкретное правило
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)
Описание: Вывод списка всех правил или правил, отфильтрованных по определенному префиксу.
Использование:
# Список всех правил
mbfirewall.exe list
# Список правил с определенным префиксом
mbfirewall.exe list --prefix "MBbrowser"
# Список правил, связанных с MBbrowser
mbfirewall.exe list --prefix "MBbrowser"
# Тихий режим
mbfirewall.exe list --prefix "MBbrowser" --silentОписание параметров:
--prefix <prefix>: Фильтр по префиксу имени правила (опционально)--silent: Тихий режим
Пример вывода:
{
"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 для указанных профилей.
Использование:
# Отключить все профили (не рекомендуется)
mbfirewall.exe disable --profile all
# Отключить только публичный профиль
mbfirewall.exe disable --profile publicОписание параметров:
--profile <type>: Тип профиля (обязательно)--silent: Тихий режим
Коды выхода:
- 0: отключение прошло успешно
- 1: ошибка отключения
- 2: недостаточно прав
Предупреждение по безопасности: Отключение брандмауэра значительно снижает безопасность системы и делает ее уязвимой для сетевых атак. Отключайте его только для особых нужд и включайте обратно как можно скорее.
Сценарии использования:
- Временное устранение неисправностей (чтобы проверить, не вызывает ли брандмауэр проблемы)
- Специфические потребности тестовой среды
- Среды во внутренней сети, защищенные другими устройствами брандмауэра
Примечания:
- Требуются права администратора
- Отключение брандмауэра вступает в силу немедленно, и все правила брандмауэра перестают действовать
- Рекомендуется своевременно включать брандмауэр обратно
Экспорт правил (export)
Описание: Экспорт конфигурации правил брандмауэра в JSON-файл; поддерживается фильтрация по префиксу.
Использование:
# Экспорт всех правил
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: Тихий режим
Формат выходного файла:
{
"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.
Использование:
# Импорт из файла резервной копии
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.
Использование:
# Добавление правил MBbrowser (стандартный режим)
mbfirewall.exe add-mbbrowser
# Добавление правил с включенным логированием
mbfirewall.exe --enable-log add-mbbrowserКак это работает:
Считывание пути установки: считывает путь установки MBbrowser из реестра по адресу
HKEY_CURRENT_USER\\SOFTWARE\\MBbrowser\\Path.Проверка файлов программ: проверяет наличие следующих 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 (помощник уведомлений)
Добавление правил: добавляет входящие и исходящие правила для каждой найденной программы (до 18 правил).
Отображение результатов: выводит подробные результаты выполнения, включая успехи и сбои.
Пример вывода:
🔥 Добавление правил брандмауэра 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 установлен корректно
- Отсутствующие файлы будут пропущены
- Существующие правила будут пропущены (не перезаписываются)
Поиск и устранение неисправностей: Если команда не удалась, проверьте:
- Путь в реестре: убедитесь, что
HKEY_CURRENT_USER\\SOFTWARE\\MBbrowser\\Pathсуществует и содержит правильное значение пути. - Пути к файлам: убедитесь, что соответствующие файлы программ существуют в каталоге установки MBbrowser.
- Права администратора: убедитесь, что команда запущена от имени администратора.
- Служба брандмауэра: убедитесь, что служба брандмауэра 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: Запуск исполняемого файла напрямую
Загрузите программу:
- Загрузите последнюю версию
mbfirewall.exeилиmbfirewall_v1.0.43.exe. - Пользователям Windows 7 следует загрузить
mbfirewall_v1.0.43_win7.exe.
- Загрузите последнюю версию
Разместите файл:
- Вы можете поместить файл в любое место (рекомендуется
C:\\Program Files\\MBfirewall\\). - Или поместите его в каталог, указанный в системной переменной PATH, для глобального доступа.
- Вы можете поместить файл в любое место (рекомендуется
Запустите программу:
- Дважды щелкните для запуска в режиме GUI.
- Или запустите из командной строки для использования в режиме CLI.
Примечания:
- При первом запуске потребуется подтверждение прав администратора (запрос UAC).
- Запуск от имени обычного пользователя может ограничить некоторые функции.
Способ 2: Сборка из исходного кода
Предварительные требования:
- Go 1.21 или новее.
- Windows SDK (обычно устанавливается вместе с Visual Studio или Build Tools).
- Git (опционально, для клонирования репозитория).
Этапы сборки:
- Клонирование репозитория (если используете Git):
git clone https://github.com/yourusername/mbfirewall.git
cd mbfirewall/mbfirewallили скачайте и распакуйте архив с исходным кодом.
- Сборка версии GUI (без консольного окна):
go build -ldflags="-H windowsgui" -o mbfirewall.exe- Сборка консольной версии (для CLI):
go build -o mbfirewall_console.exe- Сборка версии, совместимой с Windows 7:
# Используйте Go 1.21
go build -ldflags="-H windowsgui" -o mbfirewall_win7.exeИнтеграция ресурсов: Если вам нужно внедрить иконки и файлы манифеста:
Подготовьте файлы ресурсов:
mbfirewall.ico: иконка программы.manifest.xml: манифест программы (для повышения прав UAC).
Используйте
windresдля компиляции ресурсов (если используете файлы.rc):
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
Настройки по умолчанию:
{
"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 | Автообновление в режиме GUI | true |
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перед командами.
Пример:
mbfirewall.exe --enable-log statusРуководство по использованию GUI
Запуск приложения
Способы запуска:
- Дважды щелкните по
mbfirewall.exeдля запуска в режиме GUI. - Или запустите
mbfirewall.exe(без аргументов) из командной строки.
Первый запуск:
- Если программа запущена не от имени администратора, появится запрос UAC на повышение прав.
- Нажмите «Да», чтобы разрешить повышение прав.
- Программа автоматически создаст каталоги для конфигурации и логов.
Обзор основного интерфейса
Макет:
┌─────────────────────────────────────────────────────┐
│ MB Firewall Management Tool [ Свернуть ][ Закрыть ] │
├─────────────────────────────────────────────────────┤
│ │
│ Статус брандмауэра │
│ ┌─────────┬─────────┬─────────┐ │
│ │ Доменный │ Частный │Публичный │ │
│ │ ✅ Включен │ ✅ Включен │ ❌ Выключен│ │
│ └─────────┴─────────┴─────────┘ │
│ │
│ Всего правил: 150 │
│ │
│ ┌───────────────────────────────────────────────┐ │
│ │ [Обновить] [Добавить] [Удалить] [Экспорт] [Импорт] │ │
│ └───────────────────────────────────────────────┘ │
│ │
│ Список правил │
│ ┌───────────────────────────────────────────────┐ │
│ │ Имя │ Статус │Направление │ Действие │ │
│ ├───────────────────────────────────────────────┤ │
│ │ MBbrowser - app.exe ... │ ✅ │ Входящее │ [Удалить] │ │
│ │ MBbrowser - app.exe... │ ✅ │ Исходящее │ [Удалить] │ │
│ │ ... │ │
│ └───────────────────────────────────────────────┘ │
│ │
│ Поиск: [____________] [ Фильтр ] │
│ │
└─────────────────────────────────────────────────────┘Основные компоненты:
- Строка состояния: отображает состояния трех профилей (доменный / частный / публичный).
- Всего правил: отображает текущее общее количество правил брандмауэра.
- Кнопки действий: Обновить, Добавить, Удалить, Экспорт, Импорт.
- Список правил: отображает все правила брандмауэра.
- Поле поиска: фильтрация списка правил.
Основные операции
Просмотр статуса брандмауэра
При запуске основной интерфейс автоматически отображает текущий статус брандмауэра:
- Зеленый ✅ означает включен.
- Красный ❌ означает отключен. Нажмите «Обновить», чтобы обновить данные вручную.
Добавление правила брандмауэра
Этапы:
- Нажмите кнопку «Добавить правило».
- В диалоговом окне:
- Выберите или введите путь к программе.
- Укажите имя правила (опционально).
- Установите направление (входящее / исходящее / оба).
- Установите протокол (TCP/UDP/ICMP/Любой).
- Установите порты (опционально).
- Нажмите «ОК», чтобы добавить.
Быстрые способы:
- Перетащите файлы программ в интерфейс для добавления.
- Используйте контекстное меню для добавления правил.
Удаление правила брандмауэра
Этапы:
- Выберите правило(а) в списке.
- Нажмите кнопку «Удалить правило».
- Подтвердите удаление.
Массовое удаление:
- Удерживайте
Ctrlдля выбора нескольких правил. - Удерживайте
Shiftдля выбора диапазона. - Нажмите «Удалить правило» для массового удаления.
Поиск и фильтрация правил
Поиск:
- Введите ключевые слова в поле поиска.
- Правила фильтруются в режиме реального времени.
- Поддерживается поиск по имени, пути и описанию.
Фильтр префиксов:
- Фильтрация правил по префиксу.
- Например, префикс «MBbrowser» покажет все правила MBbrowser.
Экспорт правил
Этапы:
- Нажмите кнопку «Экспорт».
- Выберите место для сохранения.
- Опционально: установите фильтр префиксов.
- Нажмите «Сохранить».
Экспортированный файл в формате JSON можно использовать для резервного копирования или импорта на других машинах.
Импорт правил
Этапы:
- Нажмите кнопку «Импорт».
- Выберите JSON-файл.
- Подтвердите импорт.
Импорт отображает прогресс и результаты; неудачные правила помечаются.
Системный трей
Иконка в трее:
- Программа сворачивается в системный трей.
- Щелкните правой кнопкой мыши по иконке, чтобы:
- Показать основное окно.
- Выйти из программы.
- Просмотреть статус брандмауэра.
Автообновление:
- Интервал автообновления настраивается.
- Иконка в трее отображает статус брандмауэра в режиме реального времени.
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 | Добавить правила MBbrowser | mbfirewall.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) скриптах:
@echo off
mbfirewall.exe status --silent
if %ERRORLEVEL% EQU 0 (
echo Брандмауэр включен
) else (
echo Брандмауэр не включен или ошибка проверки
)В PowerShell:
.\mbfirewall.exe status --silent
if ($LASTEXITCODE -eq 0) {
Write-Host "Брандмауэр включен"
} else {
Write-Host "Брандмауэр не включен или ошибка проверки"
}Практические примеры
Пример 1: Скрипт автоматизации развертывания
@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: Массовое добавление нескольких приложений
@echo off
echo Массовое добавление правил брандмауэра ...
mbfirewall.exe add --batch "config\\production_apps.json"
if %ERRORLEVEL% EQU 0 (
echo Все правила успешно добавлены
) else (
echo Произошли частичные сбои, проверьте детали
)Пример 3: Регулярное резервное копирование правил
@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: Интеграция в установщик
@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++
Базовая обертка для вызова
#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;
}Продвинутый класс-обертка
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;
}
};Пример использования
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
# Функция-обертка
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
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 правил.
Использование
Самый простой вариант:
mbfirewall.exe add-mbbrowserИспользование с включенным логированием:
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.exe | Chrome DevTools Protocol |
mbservice.exe | {install_path}\\mbservice.exe | Фоновая служба MBbrowser |
apiserver.exe | {install_path}\\apiserver.exe | API сервер |
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 | Помощник уведомлений |
Интеллектуальная обработка:
- Если файл не существует, он будет пропущен, и обработка продолжится для других файлов.
- Предупреждения отображаются, но не блокируют другие конфигурации.
Конфигурация правил
Для каждой программы будет добавлено по два правила:
- Входящее правило: разрешить внешний доступ к программе.
- Исходящее правило: разрешить программе доступ к внешним сетям.
Конфигурация протоколов и портов:
| Программа | Протокол | Порты | Примечания |
|---|---|---|---|
mbbrowser.exe | any | * | Основной программе нужен полный сетевой доступ |
cdp.exe | tcp | 9222 | Порт отладочной службы CDP |
mbservice.exe | any | * | Фоновой службе нужен полный сетевой доступ |
apiserver.exe | tcp | 80,443 | Стандартные порты API-сервера |
chrome.exe | tcp | 80,443 | Стандартные порты веб-доступа |
chrome_proxy.exe | tcp | 80,443 | Стандартные порты веб-доступа |
chrome_pwa_launcher.exe | tcp | 80,443 | Стандартные порты веб-доступа |
chromedriver.exe | tcp | 9515 | Порт ChromeDriver по умолчанию |
notification_helper.exe | tcp | 80,443 | Порты службы уведомлений |
Отображение результатов выполнения
Пример успешного выполнения:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Результаты выполнения
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Успешно добавлено все 18 правил
Добавлены правила брандмауэра для следующих программ:
• mbbrowser.exe
• cdp.exe
• mbservice.exe
• apiserver.exe
• chrome.exe
• chrome_proxy.exe
• chrome_pwa_launcher.exe
• chromedriver.exe
• notification_helper.exe
Для каждой программы были добавлены входящие и исходящие правила