Урок 4 из 5 · 9 мин
Службы, общий доступ и открытые порты
Отключите неиспользуемые службы общего доступа, посмотрите, что на самом деле прослушивает подключения, и включите Файрвол приложений.
Каждая оставленная включённой служба общего доступа — это небольшой сетевой сервер, работающий на вашем Mac и ожидающий, что кто-то к нему подключится. Большинство людей включают такую службу один раз ради одной задачи и никогда больше не выключают. Этот урок посвящён тому, как найти и закрыть такие службы, а затем добавить сверху файрвол в качестве второго уровня защиты.
Службы общего доступа
В текущих версиях macOS службы общего доступа находятся в Системных настройках → Основные → Общий доступ: Общий доступ к файлам, Доступ к экрану, Удалённый вход (SSH), Удалённое управление, Доступ к медиатеке, Кэширование содержимого, Общий доступ к интернету, Общий доступ к принтерам и ещё несколько — в зависимости от модели Mac. Каждая из них по умолчанию отключена и остаётся отключённой, пока вы не включите её ради конкретной причины — например, чтобы отправить файл на другой Mac в той же сети или дать помощнику подключиться удалённо.
- Если вы один раз включили Общий доступ к файлам, чтобы перенести файлы между двумя Mac, или Доступ к экрану, чтобы кто-то вам помог, выключите её обратно в той же панели «Общий доступ», как только закончите.
- Удалённый вход открывает доступ к вашему Mac по SSH. Собственная документация Apple прямо говорит: «разрешение удалённого входа на ваш Mac может снизить его защищённость». Оставляйте её выключенной, если вам не нужно специально подключаться к этому Mac откуда-то ещё.
- Если сразу несколько таких служб показаны как включённые, а вы не помните, чтобы включали их, уже одно это стоит проверить.
Что на самом деле прослушивает порты
Отключение служб общего доступа в Системных настройках закрывает те, для которых Apple предоставляет переключатель, но другое программное обеспечение (медиасервер, инструмент разработчика, драйвер принтера) может открыть собственный прослушивающий порт, ничего не спрашивая. lsof (список открытых файлов, что в Unix включает и сетевые сокеты) может показать каждый процесс, который сейчас ожидает входящее TCP-подключение:
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 «от нежелательных контактов, инициированных другими компьютерами, когда вы подключены к интернету или сети», при этом позволяя разрешить доступ конкретным приложениям или службам.
| Параметр файрвола | Что он делает |
|---|---|
| Блокировать все входящие подключения | Предотвращает входящие подключения к необязательным службам и приложениям, оставляя только базовые службы, нужные Mac, чтобы находить другие компьютеры в сети. |
| Автоматически разрешать подписанное ПО | Позволяет встроенным или загруженным приложениям, подписанным действительным сертификатом, принимать входящие подключения без запроса. Отключение этой опции означает больше запросов, но меньше молчаливых исключений. |
| Включить скрытый режим | Останавливает реакцию Mac на пробные запросы, включая ping (ICMP), которые иначе могли бы использоваться, чтобы обнаружить его присутствие в сети. |
Проверить текущее состояние файрвола можно из Терминала, ничего не меняя:
/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. Что показывает команда `lsof -iTCP -sTCP:LISTEN -n -P`?
- Каждый файл, когда-либо открытый на Mac
- Каждый процесс, который сейчас прослушивает входящие TCP-подключения, вместе с его портом — Верно.
- Список заблокированных IP-адресов
- Пароль от Wi-Fi этого Mac
Именно эта комбинация флагов сужает вывод `lsof` до процессов с открытым прослушивающим TCP-сокетом, показывая сырые адреса и номера портов.
2. Что означает прослушивающий порт, показанный как `127.0.0.1:5432`?
- Он доступен с любого устройства из интернета
- Он доступен только с самого Mac — Верно.
- Это служба Bluetooth
- Он заблокирован файрволом
127.0.0.1 — это адрес обратной петли: подключения к нему могут исходить только с той же самой машины.
3. Что в первую очередь контролирует Файрвол приложений в macOS?
- Исходящие подключения, которые приложения устанавливают с интернетом
- Входящие подключения к приложениям и службам на Mac — Верно.
- Запросы на сопряжение по Bluetooth
- Какие сайты можно посещать
Файрвол приложений для каждого приложения отдельно решает, разрешены ли незапрошенные входящие подключения; он не фильтрует то, что приложения отправляют наружу.
Примените на практике в FireAI
Примените этот урок на своём Mac.
- Режимы безопасности: Дом, Кофейня, Параноидальный, Под атакой — Подстройте строгость FireAI под реальное местоположение вашего Mac одним касанием.
- Находите приложения с известными уязвимостями — Закройте известные бреши прежде, чем ими воспользуются: обновите то единственное приложение, которому это нужно.
- Ответьте на первый запрос о подключении и разберитесь, что означает каждый срок действия — Точно понимайте, что именно вы разрешаете, когда FireAI спрашивает в первый раз.
Источники
- Apple Support: Block connections to your Mac with a firewall
- Apple Support: Change Firewall settings on Mac
- Apple Support: Allow a remote computer to access your Mac (Remote Login)
- Apple Support: Set up file sharing on Mac
Примените это на своём Mac
Все функции бесплатно на 17 дней, без банковской карты.