Перейти к содержимомуHisnLabs
← Защита macOS, настройка за настройкой

Урок 4 из 5 · 9 мин

Службы, общий доступ и открытые порты

Отключите неиспользуемые службы общего доступа, посмотрите, что на самом деле прослушивает подключения, и включите Файрвол приложений.

Каждая оставленная включённой служба общего доступа — это небольшой сетевой сервер, работающий на вашем Mac и ожидающий, что кто-то к нему подключится. Большинство людей включают такую службу один раз ради одной задачи и никогда больше не выключают. Этот урок посвящён тому, как найти и закрыть такие службы, а затем добавить сверху файрвол в качестве второго уровня защиты.

Службы общего доступа

В текущих версиях macOS службы общего доступа находятся в Системных настройках → Основные → Общий доступ: Общий доступ к файлам, Доступ к экрану, Удалённый вход (SSH), Удалённое управление, Доступ к медиатеке, Кэширование содержимого, Общий доступ к интернету, Общий доступ к принтерам и ещё несколько — в зависимости от модели Mac. Каждая из них по умолчанию отключена и остаётся отключённой, пока вы не включите её ради конкретной причины — например, чтобы отправить файл на другой Mac в той же сети или дать помощнику подключиться удалённо.

  • Если вы один раз включили Общий доступ к файлам, чтобы перенести файлы между двумя Mac, или Доступ к экрану, чтобы кто-то вам помог, выключите её обратно в той же панели «Общий доступ», как только закончите.
  • Удалённый вход открывает доступ к вашему Mac по SSH. Собственная документация Apple прямо говорит: «разрешение удалённого входа на ваш Mac может снизить его защищённость». Оставляйте её выключенной, если вам не нужно специально подключаться к этому Mac откуда-то ещё.
  • Если сразу несколько таких служб показаны как включённые, а вы не помните, чтобы включали их, уже одно это стоит проверить.

Что на самом деле прослушивает порты

Отключение служб общего доступа в Системных настройках закрывает те, для которых Apple предоставляет переключатель, но другое программное обеспечение (медиасервер, инструмент разработчика, драйвер принтера) может открыть собственный прослушивающий порт, ничего не спрашивая. lsof (список открытых файлов, что в Unix включает и сетевые сокеты) может показать каждый процесс, который сейчас ожидает входящее TCP-подключение:

Terminal
lsof -iTCP -sTCP:LISTEN -n -P
COMMAND     PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
rapportd   1442 admin   15u  IPv4  ...       0t0  TCP *:64654 (LISTEN)
ControlCe  1775 admin    9u  IPv4  ...       0t0  TCP *:7000 (LISTEN)

Каждая строка — один процесс, прослушивающий один порт: имя команды, её ID процесса, адрес, к которому она привязана (* означает все сетевые интерфейсы, 127.0.0.1 — только локальные подключения), и номер порта после двоеточия. Флаги -n и -P указывают lsof показывать сырые адреса и номера портов без преобразования — это быстрее и понятнее. Порт, привязанный только к 127.0.0.1, доступен только с самого Mac; порт, привязанный к *, при определённых сетевых условиях может быть доступен с других устройств. Часть записей — это собственные фоновые службы Apple (например, помощник AirDrop/Handoff rapportd или приёмник AirPlay из Пункта управления); стоит обращать внимание именно на установленные вами приложения, от которых вы не ожидали, что они вообще будут что-то прослушивать.

Файрвол приложений

Файрвол приложений в Системных настройках → Сеть → Файрвол — это второй уровень поверх отключения неиспользуемых служб: вместо блокировки по номеру порта он для каждого приложения отдельно решает, может ли оно вообще принимать входящие подключения. Apple описывает его как защищающий Mac «от нежелательных контактов, инициированных другими компьютерами, когда вы подключены к интернету или сети», при этом позволяя разрешить доступ конкретным приложениям или службам.

Служба поддержки Apple: изменение настроек файрвола на Mac.
Параметр файрволаЧто он делает
Блокировать все входящие подключенияПредотвращает входящие подключения к необязательным службам и приложениям, оставляя только базовые службы, нужные Mac, чтобы находить другие компьютеры в сети.
Автоматически разрешать подписанное ПОПозволяет встроенным или загруженным приложениям, подписанным действительным сертификатом, принимать входящие подключения без запроса. Отключение этой опции означает больше запросов, но меньше молчаливых исключений.
Включить скрытый режимОстанавливает реакцию Mac на пробные запросы, включая ping (ICMP), которые иначе могли бы использоваться, чтобы обнаружить его присутствие в сети.

Проверить текущее состояние файрвола можно из Терминала, ничего не меняя:

Terminal
/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
Firewall is enabled. (State = 1)
/usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
Firewall stealth mode is off

Включение файрвола и скрытого режима требует пароля администратора; приведённые выше команды --get только для чтения ничего не меняют.

Главное

  • Службы общего доступа (Общий доступ к файлам, Доступ к экрану, Удалённый вход и другие) находятся в Системных настройках → Основные → Общий доступ, по умолчанию отключены, и их стоит выключать обратно, как только конкретная задача выполнена.
  • `lsof -iTCP -sTCP:LISTEN -n -P` перечисляет каждый процесс, который сейчас прослушивает входящие TCP-подключения, помогая заметить порты, которые вы не ожидали увидеть открытыми.
  • Порт, привязанный к `127.0.0.1`, доступен только локально; порт, привязанный к `*`, потенциально доступен из сети.
  • Файрвол приложений контролирует входящие подключения для каждого приложения по отдельности; скрытый режим останавливает реакцию Mac на пробные запросы вроде ping.
  • Файрвол приложений не фильтрует исходящие подключения.

Проверьте себя

  1. 1. Что показывает команда `lsof -iTCP -sTCP:LISTEN -n -P`?

    • Каждый файл, когда-либо открытый на Mac
    • Каждый процесс, который сейчас прослушивает входящие TCP-подключения, вместе с его портом — Верно.
    • Список заблокированных IP-адресов
    • Пароль от Wi-Fi этого Mac

    Именно эта комбинация флагов сужает вывод `lsof` до процессов с открытым прослушивающим TCP-сокетом, показывая сырые адреса и номера портов.

  2. 2. Что означает прослушивающий порт, показанный как `127.0.0.1:5432`?

    • Он доступен с любого устройства из интернета
    • Он доступен только с самого Mac — Верно.
    • Это служба Bluetooth
    • Он заблокирован файрволом

    127.0.0.1 — это адрес обратной петли: подключения к нему могут исходить только с той же самой машины.

  3. 3. Что в первую очередь контролирует Файрвол приложений в macOS?

    • Исходящие подключения, которые приложения устанавливают с интернетом
    • Входящие подключения к приложениям и службам на Mac — Верно.
    • Запросы на сопряжение по Bluetooth
    • Какие сайты можно посещать

    Файрвол приложений для каждого приложения отдельно решает, разрешены ли незапрошенные входящие подключения; он не фильтрует то, что приложения отправляют наружу.

Примените на практике в FireAI

Примените этот урок на своём Mac.

Источники

Примените это на своём Mac

Все функции бесплатно на 17 дней, без банковской карты.

Скачать для Mac Документация