Урок 2 з 4 · 9 хв
Брандмауери: фільтрація з урахуванням стану та параметри macOS
Як брандмауер із збереженням стану вирішує, що пропускати, різниця між вхідною та вихідною фільтрацією та інструменти, які macOS надає вам для кожного.
Робота брандмауера звучить просто: пропускати хороший трафік, не пропускати поганий. Цікава частина полягає в тому, як він приймає рішення та на якому рівні. У цьому уроці розглядається фільтрація з урахуванням стану як концепція, а потім окремі окремі інструменти, які пропонує macOS, кожен з яких працює на іншому рівні.
Фільтрування стану: запам'ятовування розмови
Ранній брандмауер без стану перевіряє кожен пакет ізольовано за фіксованим набором правил. Брандмауер із збереженням стану натомість відстежує відкриті з’єднання, і, як це описано в мережевому глосарії Cloudflare, «зберігає інформацію про відкриті з’єднання та використовує цю інформацію для аналізу вхідного та вихідного трафіку, а не для перевірки кожного пакета» з нуля. На практиці це означає, що брандмауер із збереженням стану може ефективно тримати порти закритими, доки з’єднання, яке ви ініціювали, не запитає відповіді, а потім дозволити цій конкретній відповіді повернутися, не відкриваючи порт для чогось іншого. Майже кожен брандмауер споживача та операційної системи, який використовується сьогодні, включаючи macOS, підтримує стан.
Вхідна та вихідна фільтрація
Фільтрація вхідних повідомлень контролює підключення, які надходять на машину без запрошення ззовні: хтось або щось намагається отримати доступ до служби, яка на ній працює. Вихідна (вихідна) фільтрація контролює з’єднання, які сама машина або програма на ній намагається встановити назовні. Ці два важливі з різних причин. Вхідна фільтрація запобігає доступу до машини та її зондуванню. Фільтрування виходу має значення після того, як щось пішло не так: шкідливе програмне забезпечення, яке потрапляє на комп’ютер, все одно має зателефонувати додому, отримати інструкції чи надіслати дані, і кожному з них потрібне вихідне з’єднання. Машина з потужним вхідним брандмауером і взагалі без фільтрації вихідного потоку все ще може витікати все на ній, одне вихідне з’єднання за раз.
Що насправді дає вам macOS
| Інструмент | Шар | Напрямок | Примітки |
|---|---|---|---|
| Брандмауер програми | Для кожної програми в системних налаштуваннях → Мережа → Брандмауер | Вхідний | Вирішує, чи може кожна програма взагалі приймати вхідні з’єднання; не фільтрує те, що програми надсилають назовні. Охоплено командами, щоб перевірити це в курсі зміцнення macOS на цьому сайті. |
| pf (фільтр пакетів) | Фільтрація пакетів на рівні ядра, успадкована від BSD | Обидва, на основі правил | Потужний брандмауер загального призначення, який Apple використовує внутрішньо (наприклад, для спільного використання Інтернету), задокументований для адміністраторів на сторінках посібника pfctl та pf.conf, а не на графічній панелі налаштувань. Написані від руки правила pf є застарілим брандмауером BSD, а не продуктом Apple зі сторінкою підтримки, і macOS офіційно не документує їх редагування для захисту кінцевого користувача. |
| Фільтри вмісту розширення мережі | На рівні додатка через структуру Apple NetworkExtension | Вихідний (та вхідний для потоків, яким задано фільтр) | Додатки сторонніх розробників використовують структуру для перевірки або блокування мережевого трафіку для кожної програми чи домену з дозволу користувача; це те, що робить можливим вихідний брандмауер для кожної програми на macOS взагалі, а не лише вхідний. |
Практичне тлумачення цієї таблиці полягає в тому, що вбудований підтримуваний брандмауер macOS (брандмауер програм) добре покриває вхідні з’єднання, але нічого не говорить про те, що залишає машину. Технічно pf може виконувати і те, і інше, але це низькорівневий інструмент на основі сценаріїв, призначений для зручного редагування адміністраторами конфігураційних файлів і міркування про порядок правил, а не те, що цей курс розглядатиме через налаштування, оскільки помилка в рукописному наборі правил може мовчки не відкрити або повністю заблокувати доступ до мережі, і Apple не розглядає його як першокласний, підтримуваний кінцевим користувачем налаштування, як це робить брандмауер програм. Посібники з посилення безпеки спільноти, які публікують готові pf набори правил або сценарії, які завантажують сторонні списки заблокованих IP-адрес, йдуть далі, ніж рекомендує цей курс: ці списки потрібно довіряти та хтось постійно оновлювати, а несправне оновлення може порушити зв’язок без чіткого повідомлення про помилку.
Цю прогалину, вбудований брандмауер лише для вхідних повідомлень без простого підтримуваного способу перегляду або контролю вихідних з’єднань для кожної програми, є саме те, що існує в структурі Apple Network Extension, яка дозволяє стороннім розробникам заповнювати її за допомогою явного дозволу користувача під час встановлення.
Головне
- Брандмауер із збереженням стану відстежує відкриті з’єднання та дозволяє зворотний трафік для з’єднання, яке ви ініціювали, не перевіряючи кожен пакет за фіксованим списком правил.
- Вхідна фільтрація запобігає доступу до машини ззовні; Вихідна (вихідна) фільтрація має значення, коли щось уже є на машині та намагається з’єднатися.
- Брандмауер програм macOS фільтрує вхідні з’єднання для кожної програми; він не фільтрує вихідний трафік.
- `pf` — це потужний брандмауер BSD на рівні ядра, який macOS використовує внутрішньо, але він не є підтримуваним, задокументованим налаштуванням захисту кінцевого користувача, як брандмауер програм.
- Платформа Apple Network Extension — це те, що дозволяє програмам сторонніх розробників забезпечувати фільтрацію вихідних повідомлень для кожної програми, прогалину, яку залишає відкритим вбудований брандмауер.
Перевірте себе
1. Чим міжмережевий екран із збереженням стану відрізняється від простого фільтра пакетів без збереження стану?
- Він блокує весь трафік за замовчуванням без винятків
- Він відстежує відкриті з’єднання та використовує цей контекст, щоб дозволити очікуваний зворотний трафік — Правильно.
- Він працює лише в мережах Wi-Fi
- Він шифрує весь мережевий трафік
Брандмауери з підтримкою стану запам’ятовують стан відкритих з’єднань, а не оцінюють кожен пакет окремо, що дозволяє їм безпечно дозволяти відповіді на з’єднання, які ви почали.
2. Чому вихідна (вихідна) фільтрація має значення, враховуючи потужний вхідний брандмауер?
- Немає значення, чи сильна вхідна фільтрація
- Оскільки програмне забезпечення, яке вже встановлено на машині, все ще потребує вихідного з’єднання для надсилання даних або отримання інструкцій — Правильно.
- Вихідні з’єднання завжди безпечні
- Це має значення лише для веб-серверів
Фільтрація вхідних повідомлень запобігає небажаним підключенням до машини, але нічого не робить, коли щось уже запущено на ній і намагається зв’язатися назовні.
3. Чого НЕ робить брандмауер програм macOS?
- Вирішіть, чи може програма приймати вхідні з’єднання
- Фільтрувати вихідні з’єднання, створені програмою — Правильно.
- Працюйте окремо для кожної програми
- Працювати без додаткового програмного забезпечення
Брандмауер програм призначений лише для вхідних повідомлень; щоб контролювати те, що програми надсилають назовні, потрібен інший механізм, наприклад механізм, побудований на основі мережевого розширення Apple.
Застосуйте на практиці з FireAI
Застосуйте цей урок на своєму Mac.
- Правила: застосунок, сайт, домен, IP чи діапазон, назавжди або до перезавантаження — Напишіть правило точне, як одна адреса, або широке, як цілий домен.
- Аварійний вимикач — Відріжте свій Mac від інтернету в один клік, коли щось здається не так.
- Дослідіть з’єднання — Вирішуйте, маючи факти перед собою, а не розпливчасте попередження.
- Активність: кожен застосунок, що виходив в мережу, і пошук за історією звичайною мовою — Побачте кожен застосунок, що виходив у мережу сьогодні, і дійте щодо будь-якого з них в один клік.
Джерела
- Cloudflare Learning: What is a firewall?
- Apple Support: Block connections to your Mac with a firewall
- Apple Developer: Network Extension framework
Застосуйте це на своєму Mac
Усі функції безкоштовно на 17 днів, без банківської картки.