- Сведения о брандмауэре для приложений
- Настройка брандмауэра для приложений в OS X 10.6 и более поздних версий
- Настройка брандмауэра для приложений в Mac OS X 10.5
- Дополнительные параметры
- Блокировать все входящие подключения
- Разрешения для отдельных приложений
- Автоматически разрешать подписанному ПО входящие подключения
- Включение невидимого режима
- Ограничения брандмауэра
- Изменение настроек брандмауэра на Mac
- Настройка брандмауэров в OC Apple macOS 10
Сведения о брандмауэре для приложений
В состав ОС OS X входит брандмауэр для приложений, с помощью которого можно контролировать подключения к вашему компьютеру с других компьютеров в сети.
С помощью брандмауэра для приложений в OS X 10.5.1 и более поздних версий можно управлять подключениями на уровне приложений (а не портов). Это повышает эффективность защиты с помощью брандмауэра, а также помогает закрыть нежелательным приложениям доступ к сети через порты, которые используют разрешенные приложения.
Настройка брандмауэра для приложений в OS X 10.6 и более поздних версий
Чтобы включить брандмауэр для приложений, выполните приведенные ниже действия.
- Выберите в меню Apple пункт «Системные настройки».
- Щелкните значок «Безопасность» или «Конфиденциальность и безопасность».
- Перейдите на вкладку «Брандмауэр».
- Щелкните значок замка в левом нижнем углу и введите имя и пароль администратора, чтобы разблокировать панель.
- Нажмите кнопку «Включить брандмауэр» или «Запустить», чтобы включить брандмауэр.
- Нажмите кнопку «Дополнительно», чтобы настроить параметры брандмауэра.
Настройка брандмауэра для приложений в Mac OS X 10.5
Убедитесь, что Mac OS X обновлена до версии 10.5.1 или более поздней. Затем выполните приведенные ниже действия, чтобы включить брандмауэр для приложений.
- Выберите в меню Apple пункт «Системные настройки».
- Щелкните значок «Безопасность».
- Перейдите на вкладку «Брандмауэр».
- Выберите режим работы брандмауэра.
Дополнительные параметры
Блокировать все входящие подключения
Выбрав параметр «Блокировать все входящие подключения», вы заблокируете прием входящих подключений всеми службами общего доступа, такими как «Общий доступ к файлам» и «Общий экран». Системные службы по-прежнему смогут принимать следующие входящие подключения:
- configd для реализации DHCP и других служб для настройки сети;
- mDNSResponder для реализации Bonjour;
- racoon для реализации IPSec.
Чтобы использовать службы общего доступа, отключите параметр «Блокировать все входящие подключения».
Разрешения для отдельных приложений
Чтобы разрешить определенному приложению принимать входящие подключения, добавьте его в меню «Параметры брандмауэра».
- Откройте программу «Системные настройки».
- Щелкните значок «Безопасность» или «Конфиденциальность и безопасность».
- Перейдите на вкладку «Брандмауэр».
- На панели настроек щелкните значок замка, затем введите имя и пароль администратора.
- Нажмите кнопку «Параметры брандмауэра».
- Нажмите кнопку добавления приложения (+).
- Выберите приложение, для которого вы хотите разрешить прием входящих подключений.
- Нажмите кнопку «Добавить».
- Нажмите кнопку «ОК».
Вы также можете запретить прием входящих подключений для любого приложения из этого списка, нажав кнопку удаления приложения (–).
Автоматически разрешать подписанному ПО входящие подключения
Приложения, подписанные надежным центром сертификации, автоматически добавляются в список разрешенных, не требуя подтверждения от пользователя. Приложения, входящие в состав OS X, подписаны компанией Apple. Они могут принимать входящие подключения, если этот параметр включен. Например, приложению iTunes по умолчанию разрешено принимать входящие подключения через брандмауэр, поскольку оно уже подписано компанией Apple.
При запуске приложения, у которого нет цифровой подписи и которое не включено в список брандмауэра, открывается диалоговое окно, где для него можно разрешить или запретить подключения. Если нажать кнопку «Разрешить», OS X подпишет приложение и автоматически добавит его в список брандмауэра. Если нажать кнопку «Отказать», OS X добавит это приложение в список, но будет отклонять для него входящие подключения.
Чтобы заблокировать входящие подключения для приложения с цифровой подписью, необходимо добавить его в список, а затем настроить для него блокировку.
Некоторые приложения, в которых не используется цифровая подпись для кода, при запуске выполняют самопроверку. Если брандмауэр распознает такое приложение, он его не подписывает. Вместо этого при каждом последующем запуске приложения будет отображаться диалоговое окно с запросом на разрешение или отклонение входящих подключений. Эта проблема устраняется путем обновления приложения до версии, подписанной разработчиком.
Включение невидимого режима
Если включить невидимый режим, компьютер не будет отвечать на проверочные запросы. Но он по-прежнему будет отвечать на запросы от авторизованных приложений. Неожиданные запросы, например ICMP (ping), игнорируются.
Ограничения брандмауэра
Брандмауэр для приложений работает с самыми распространенными в приложениях интернет-протоколами — TCP и UDP. Настройки брандмауэра не влияют на подключения AppleTalk. В брандмауэре можно настроить блокировку входящих ICMP-запросов (ping), включив в дополнительных параметрах невидимый режим. Предыдущая технология ipfw по-прежнему доступна из командной строки (в приложении «Терминал»), а правила ipfw имеют более высокий приоритет по сравнению с правилами брандмауэра для приложений. Все входящие пакеты, заблокированные ipfw, не обрабатываются брандмауэром для приложений.
Источник
Изменение настроек брандмауэра на Mac
В панели «Брандмауэр» в разделе Системных настроек «Защита и безопасность» можно включить брандмауэр macOS, чтобы предотвратить нежелательные подключения из Интернета и других сетей. Узнайте, как заблокировать подключение к Mac с помощью брандмауэра.
Чтобы изменить эти настройки на Mac, выберите меню Apple
> «Системные настройки», нажмите «Защита и безопасность», затем нажмите «Брандмауэр».
Примечание. Если в левом нижнем углу панели отображается закрытый замок , нажмите его, чтобы разблокировать панель настроек.
Если брандмауэр выключен, нажмите «Включить брандмауэр», чтобы включить защиту с его помощью.
Нажмите «Параметры брандмауэра», чтобы изменить параметры брандмауэра.
Блокировать все входящие подключения
В «Параметрах брандмауэра» выберите запрет входящих подключений к несущественным службам и приложениям.
Основные интернет-службы — это набор приложений, которые позволяют Mac находить службы, предоставляемые другими компьютерами в сети. Этот настройка предотвращает подключения всех других служб общего доступа.
Добавление
Чтобы добавить приложение или службу, в разделе «Параметры брандмауэра» нажмите кнопку «Добавить» , выберите объект в списке, затем нажмите «Добавить».
Удаление
Чтобы удалить приложение, выберите его в списке в «Параметрах брандмауэра» и нажмите кнопку «Удалить» .
Автоматически разрешать встроенному ПО входящие подключения
В разделе «Параметры брандмауэра» укажите, что Вы разрешаете встроенным приложениям и службам, которые подписаны действительным бюро сертификации, автоматически добавляться в список разрешенных приложений без Вашего подтверждения.
Автоматически разрешить загруженным подписанным программам принимать входящие подключения
В «Параметрах брандмауэра» укажите, что Вы разрешаете загруженным приложениям и службам, подписанным доверенным бюро сертификации, автоматически добавляться в список разрешенных приложений без подтверждения с Вашей стороны.
Включить режим невидимости
В «Параметрах брандмауэра» выберите, чтобы предотвратить реагирование Вашего Mac на проверочные запросы, которые используются для проверки наличия системы. При этом Mac отвечает на запросы авторизованных приложений, а неавторизованные запросы, например запросы ICMP (ping), остаются без ответа.
Нажмите, чтобы повысить безопасность компьютера Mac с помощью настроек, описанных в разделе Изменение дополнительных настроек.
Некоторые службы, к которым предоставлен общий доступ, могут подключаться через брандмауэр, если они включены в настройках общего доступа. Для дополнительной защиты можно запретить подключение к этим внешним службам, отключив эти службы в настройках общего доступа. Предоставление доступа к экрану, файлам или службам на компьютере Mac другим пользователям Вашей сети.
Источник
Настройка брандмауэров в OC Apple macOS 10
Графическая оболочка брандмауэра в операционной системе Apple macOS у любого более или менее подготовленного пользователя вызывает вопросы из-за отсутствия возможности тонкой настройки собственных правил. Она как «рубильник», имеющий лишь два пограничных состояния «ВКЛ» и «ВЫКЛ». О том, что с этим делать и как настроить собственные правила, например, открывающие тот или иной порт в macOS, мы и поговорим в данной заметке.
Под капотом графической оболочки этого упрощённого брандмауэра в ОС Apple macOS скрывается демон socketfilterfw, известный также как «Application Firewall» или «Socket Firewall».
Помимо socketfilterfw в ОС есть ещё один, более мощный и функциональный, брандмауэр, скрытый от глаз обычного пользователя — Packet Filter (PF), который пришёл ещё в OS X Lion (10.7) из OpenBSD.
Как в macOS включать pf автоматически во время загрузки ОС?
После внедрения System Integrity Protection (SIP) в OS X El Capitan (10.11) важные для системы каталоги и файлы пользователю доступны только в режиме чтения, поэтому файл демона /System/Library/LaunchDaemons/com.apple.pfctl.plist отредактировать без отключения SIP возможным не представляется. Однако, отключать защиту целостности системы для модифицирования системных файлов затея, сама по себе, не очень правильная. Поэтому мы не будем рассматривать такой метод.
Мне известно два способа заставить pf загружаться по умолчанию при старте системы – запускать pf скриптом из собственного домена или запускать в режиме обработки rc.server
Запуск pf в качестве демона
Суть этого способа заключается в том, чтобы создать собственного демона, который будет запускать pf напрямую, либо через скрипт:
В примере будем использовать скрипт, который будет включать pf и загружать кастомную конфигурацию:
Разрешим выполнение скрипта:
Дополнительная конфигурация /etc/pf.custom.conf необходима из-за того, что файл /etc/pf.conf каждый раз при обновлении macOS переписывается на дефолтный, так же как и подключаемые в нём правила /etc/pf.anchors/com.apple , поэтому и редактировать их напрямую не имеет смысла. Скорее всего, подобное поведение связано с параметрами «Блокировать все входящие подключения» и «включить режим невидимости» в графическом брандмауэре. Включение этих параметров включает pf и добавляет правила в » com.apple/250.ApplicationFirewall «.
Создадим файл кастомной конфигурации pf:
Настроим правила файрвола под свои нужды:
Обратите внимание на то, что в нашем примере таблица «Temp» пустая. Она необходима для динамического управления правилами, без перезапуска PF.
По умолчанию pf работает с /etc/services , поэтому для открытия ssh не обязательно указывать порт 22, можно указать имя сервиса.
Проверим конфигурацию на наличие ошибок:
Если ошибок нет, загрузим службу в систему:
Проверим состояние pf:
Если по какой-то причине нет желания связываться с запуском скрипта из демона и хочется запускать PF напрямую, например, без правил Apple, то можно изменить контент XML таким образом, чтобы запускался не скрипт, а pfctl с указанным конфигом.
В этом случае какие-либо параметры из /etc/pf.conf загружены не будут.
Запуск pf в режиме обработки rc.server
Суть второго способа запуска pf сводится к созданию файла /etc/rc.server , который обрабатывается системой в процессе каждой загрузки.
Ситуация в этом случае аналогичная, после запуска macOS выполняется скрипт, который запускает pfctl с указанной конфигурацией.
Скрипт можно запустить вручную командой вида:
Таким образом каждый раз при загрузке macOS файрвол pf будет загружаться в систему с настроенными правилами автоматически.
Базовые примеры работы с pfctl
Далее небольшая шпаргалка с примерами использования разных ключей pfctl, которые могут пригодится в работе.
Перезапуск pf с указанной конфигурацией:
Просмотр всех подключенных правил:
Просмотр системных подключенных правил для работы Bonjour:
Добавить 10.185.62.15 в таблицу Temp:
Просмотреть адреса в таблице Temp:
Удалить 10.175.62.15 из таблицы Temp:
Удалить все записи в таблице Temp:
Просмотр статистики по всем таблицам:
Просмотр активных соединений:
Для тех, кто не хочет использовать окно терминала, но хочет испробовать pf, можно взять на вооружение приложение Murus. Murus Lite бесплатен для некоммерческого использования.
Демон адаптивного брандмауэра
Если Вы устанавливаете Server.app из AppStore, то pf будет включаться автоматически, как уже было сказано выше. Так же появится несколько дополнительных подключаемых конфигураций с правилами и демон адаптивного файрвола /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl . Для переопределения параметров запуска pf используется конфиг /Library/Server/Firewall/Anchors/combined_anchor.txt .
Настраивать pf или подключать свои правила нужно именно через конфиг /Library/Server/Firewall/Anchors/combined_anchor.txt .
В /etc/pf.anchors/com.apple подключится адаптивный файрвол
Так же добавится конфигурация правил /etc/pf.anchors/com.apple.server-firewall , которая подключает пустые дочерние конфиги правил, которые так же можно использовать:
Демон адаптивного файрвола afctl необходим для автоматических блокировок хостов с подозрительной активностью: неправильные запросы, большое число неудачных попыток входа и тому подобное. Блокировки по умолчанию на 15 минут. Полезно использовать при публикации macOS напрямую в интернет. В локальной сети в нём нет особого смысла, только если для экспериментов.
Так как демон afctl располагается в нестандартном месте, добавим его путь для быстрого вызова в профиль
/.zprofile текущего пользователя или глобально для всех пользователей в /etc/zprofile .
Посмотреть временный чёрный список можно двумя способами:
Через afctl, получим просто список
Или прочитать файл /var/db/af/blacklist
В файле дополнительно содержится информация о времени удаления из чёрного списка в формате Unix timestamp — количество секунд от 01.01.1970 00:00 UTC. Для преобразования Unix timestamp в понятный для человека формат:
При необходимости, хосты можно блокировать вручную и на больший срок, например, на 90 минут:
Командное управление socketfilterfw
Управлять фаерволом удобнее с графического интерфейса, но можно и с терминала. Для удобства можно аналогичным образом можно добавить путь в
/.zprofile или /etc/zprofile
Рассмотрим доступные ключи.
- Firewall is disabled. (State = 0) — Файрвол выключен
- Firewall is enabled. (State = 1) — Файрвол включен
- Firewall is enabled. (State = 2) — Файрвол выключен, запрещены все входящие соединения.
Включить или выключить:
Запретить или запретить все входящие соединения:
Разрешить или запретить встроенным приложениям взаимодействовать с сетью:
Разрешить или запретить подписанным приложениям взаимодействовать с сетью:
Разрешить или запретить ICMP:
Включить или отключить логирование:
Уровень детализации лога:
Добавить приложение в фаервол, по умолчанию трафик разрешается:
Заблокировать входящий трафик приложения:
Разрешить входящий трафик приложения:
Удалить приложение из фаервола:
Сосуществование socketfilterfw и pf
Разумеется, лучшей практикой является комбинирование двух решений: Packet Filter и socketfilterfw.
Все входящие соединения сперва обрабатываются pf, затем socketfilterfw.
Если требуется создать правило для организации NFS сервера, добавим правило в socketfilterfw:
Затем добавим в правило в pf и перезапустим его:
Таким образом мы не просто откроем TCP и UDP порты в системе, но и ограничим приложения, которые могут принимать соединения.
Диагностика и отладка
В решении проблем, которые могут возникнуть при работе с брандмауэрами, можно воспользоваться их логированием.
Для настройки логирования pf в файле правил /etc/pf.anchors/FilterRules добавим правила логирования, которые должны находится над разрешающими правилами.
Читаем интерфейс с помощью tcpdump:
Лог с интерфейса можно просматривать и другими средствами, например wireshark.
После завершения диагностики, можно удалить интерфейс (либо он будет удалён при последующей перезагрузке ОС):
Если необходимо, чтобы интерфейс pflog0 автоматически создавался при старте системы, необходимо добавить «ifconfig pflog0 create» в /etc/pf.start.sh или в /etc/rc.server , в зависимости от того, что используется.
Если с логированием PF всё более или менее ясно, то с логированием socketfilterfw всё несколько иначе, и, я бы даже сказал, странно. При включении лога файл создаётся /var/log/appfirewall.log , но он всегда пустой. В форумах обсуждают проблему уже достаточно давно (apple, macrumors, stackexchange), но решения нет. Если кто-то знает, как заставить socketfilterfw писать лог, прошу поделится этим тайным знанием
Источник