Вопрос или проблема
Если неподписанное приложение получило разрешение на прослушивание входящих сетевых подключений, как можно изменить свое решение и больше не давать разрешение?
Я создал очень простое веб-серверное приложение из терминала и запустил его. Как и ожидалось, macOS представила диалоговое окно Вы хотите, чтобы приложение 'cpp-web-server' принимало входящие сетевые подключения? Нажатие «Запретить» может ограничить поведение приложения. Этот параметр можно изменить на панели брандмауэра в настройках сети.
для этого приложения. Я нажал Разрешить
. Приложение работает отлично и успешно прослушивает сетевые подключения.
Затем я перешел в Системные настройки > Сеть > Брандмауэр > Параметры
, но разрешение здесь нигде не найдено.
Кроме того, следующая команда также не перечисляет правило брандмауэра:
$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps
Как я могу отменить разрешение?
Ответ или решение
Управление входящими сетевыми подключениями и отмена ранее предоставленных разрешений является важной составляющей безопасности любой операционной системы, включая macOS. Нередко пользователи сталкиваются с ситуацией, когда необходимо изменить ранее предоставленные права доступа приложению, особенно если это касается небезопасных или разрабатываемых программ, таких как самодельные веб-серверы. Давайте подробно рассмотрим, как можно отозвать разрешение на принятие входящих сетевых подключений.
Теория
В macOS безопасность и работа с сетевыми подключениями организована через встроенный брандмауэр (Firewall). Этот инструмент позволяет контролировать, какие приложения могут принимать входящие соединения. При первоначальном запуске приложения без цифровой подписи система отображает всплывающее окно с вопросом о разрешении на принятие соединений. Если пользователь соглашается, приложение получает временное разрешение в текущей сессии. Однако это разрешение может не отображаться в списке постоянных правил, таких как те, что можно увидеть через системные параметры или командную строку с использованием socketfilterfw
.
Пример
Вы уже столкнулись с данной ситуацией: запустили простой веб-сервер из терминала на macOS и дали ему разрешение на входящие соединения через всплывающее окно. Однако, когда вы пытаетесь отозвать это разрешение, заходя в System Settings > Network > Firewall > Options
, его там не оказывается. Попытка использовать команду sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps
также не показывает никаких правил, связанных с вашим приложением.
Применение
Чтобы отозвать это разрешение, выполните следующие шаги:
-
Перезапуск системы: Иногда простое перезапускание вашей macOS может сбросить временные разрешения на сетевые соединения для приложений без цифровой подписи.
-
Удаление приложений из списка брандмауэра:
- Распахните меню яблока в верхнем левом углу экрана и выберите "Системные настройки".
- Перейдите в раздел "Сеть".
- Нажмите на "Брандмауэр", затем "Параметры".
- Выберите приложение, если оно видно, и нажмите "Удалить" (иконка
-
).
-
Сброс временных правил: Используйте командную строку для сброса незаслуженного доверия через команду:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --reset
Эта команда сбрасывает временные правила и заставляет систему запрашивать разрешение повторно при следующем запуске приложения.
-
Редактирование списков через Terminal:
- Иногда информация о сетевых разрешениях можно просмотреть и изменить в бинарных plist-файлах, которые могут быть отредактированы по пути
/Library/Preferences/com.apple.alf.plist
с использованием инструментовplist
. - Важно создать резервную копию до внесения изменений в эти файлы.
- Иногда информация о сетевых разрешениях можно просмотреть и изменить в бинарных plist-файлах, которые могут быть отредактированы по пути
-
Политика системных администраторов: Используйте MDM (Mobile Device Management) решения, если это необходимо, для управления сетевыми доступами приложений в корпоративной среде.
-
Использование дополнительных утилит безопасности: Некоторые решения сторонних разработчиков предлагают более детальный контроль и управление сетевой активностью приложений. Их использование может дополнить встроенный брандмауэр macOS.
Альтернативный подход
Если ваше приложение необходимо для работы, но вы сомневаетесь в его безопасности, возможно стоит заняться подписью вашего приложения с использованием личного или корпоративного сертификата. Это сложная, но важная процедура, которая повышает доверие системы к вашему приложению и корректно отображается в списках настроек безопасности.
Важно помнить, что безопасное управление приложениями и их доступом к сети является одной из основ предотвращения нежелательных вторжений и обеспечения конфиденциальности данных. При каждом шаге вносите изменения предельно аккуратно и осознанно, чтобы избежать случайной блокировки важного приложения или нарушения системной конфигурации.