Міжмережевий екран: як працює і які завдання вирішує
Міжмережевий екран: що це, як працює фільтрація трафіку, з чого складається правило, чим різняться пакетна і stateful-фільтрація та що робить екран у мережі.
Міжмережеве екранування — це контроль трафіку між мережами за наперед заданими правилами, а засіб, який виконує цю роботу, називають міжмережевим екраном (англійською — firewall). Що це за технологія загалом і від яких загроз вона рятує — у статті Firewall: що це і від чого захищає. Тут — механіка: за якими ознаками ухвалюється рішення, у якому порядку читаються правила, чим різняться типи фільтрації та які завдання все це закриває.
Міжмережевий екран — що таке і що він робить
- Розмежовує доступ. Служба видима лише тим, кому призначена: база даних — застосунку, панель адміністрування — кільком робочим адресам.
- Сегментує мережу. Бухгалтерія, виробництво й гостьовий Wi-Fi живуть у різних сегментах, тож зламаний ноутбук лишає зловмиснику доступ лише до свого сегмента.
- Контролює вихідні з'єднання. Шкідливій програмі, яка вже всередині, важче зв'язатися зі своїм сервером керування чи вивантажити дані.
- Приховує внутрішню структуру. Ззовні видно один вузол і кілька опублікованих служб, а не карту адрес.
- Веде журнал. Хто, куди й коли намагався підключитися — основа для розбору інцидентів. Журнал працює і як зворотний зв'язок: якщо потрібний сервіс регулярно потрапляє в заблоковані, значить, його опис неточний.
Якщо стисло, міжмережевий екран дозволяє відкривати доступ точково: рівно стільки, скільки потрібно для роботи, і нічого понад це.
Часто цю функцію плутають із трансляцією адрес (NAT). NAT лише підміняє адреси й побічно приховує внутрішні вузли, але сам собою нічого не забороняє: рішення про доступ ухвалюють правила екрана.
З чого складається правило
Кожне правило — це набір ознак і дія, яку застосовують до трафіку, що під ці ознаки підпадає:
- джерело — адреса чи підмережа, звідки йде з'єднання;
- призначення — вузол, до якого звертаються;
- порт і протокол — до якої саме служби (TCP чи UDP, номер порту);
- напрямок — вхідний, вихідний чи транзитний трафік;
- стан — нове з'єднання чи продовження вже дозволеного сеансу;
- дія — що з цим робити.
Наміри відправника екран ігнорує: рішення ухвалюється за формальними ознаками, і саме тому воно швидке.
Три дії: пропустити, тихо відкинути, відхилити
- Пропустити (accept) — з'єднання відповідає правилу й проходить далі.
- Тихо відкинути (drop) — пакет зникає без жодної відповіді. Той, хто сканує адресу, не отримує підтвердження, що за нею взагалі хтось є, тож розвідка дає порожній результат.
- Відхилити (reject) — відправникові надсилають повідомлення про відмову. Застосунок одразу бачить помилку, а не чекає таймаут.
Через це на межі з інтернетом типово застосовують тихе відкидання, а всередині мережі — відхилення: там важливіше, щоб свій-таки сервіс швидко зрозумів, що доступу немає.
Порядок обробки: перше збігання виграє
Правила читаються згори вниз, і спрацьовує перше, під яке підпадає з'єднання, — решту екран уже не перевіряє. Тому виняток («цьому серверу можна») має стояти вище за загальну заборону, інакше він просто ніколи не спрацює. Наприкінці списку стоїть політика за замовчуванням: усе, що не описано явно, блокується. Порядок впливає й на швидкість: перевірка йде послідовно, тож найчастіші випадки тримають угорі списку, а рідкісні винятки — нижче. Як це розписують на практиці — у статті Як налаштувати фаервол у Windows і на сервері.
Типи фільтрації: від пакета до сеансу
- Пакетна (stateless). Кожен пакет оцінюється окремо, без пам'яті про попередні. Швидко й невибагливо до ресурсів, але наївно: підроблений пакет, який вдає відповідь на ніким не надісланий запит, має шанс пройти.
- Stateful. Екран веде таблицю станів: пам'ятає відкриті сеанси й пропускає лише ті пакети, що логічно до них належать. Відповідь із сервера проходить тому, що ви самі почали розмову, — окреме правило для неї зайве. Це сучасна норма.
- Прикладного рівня (проксі, шлюз). З'єднання розривається на посереднику: він сам звертається до сервера від імені клієнта, тож сторони ніколи не спілкуються напряму. Повільніше й вимогливіше до ресурсів, зате контроль глибший. Для вебзастосунків цю ідею розвиває WAF, який розуміє структуру HTTP-запитів.
Зони: локальна мережа, DMZ, інтернет
Правила зручно задавати не для окремих вузлів, а для зон. У класичній схемі міжмережевий екран розділяє три:
- локальна мережа — робочі станції та внутрішні сервіси, назовні недоступні;
- DMZ — «демілітаризована зона» для сервісів, які мусять приймати запити ззовні: сайт, пошта, VPN-шлюз;
- інтернет — усе інше, апріорі недовірене.
Сенс DMZ у тому, що зламаний вебсервер не відкриває прямого шляху до бухгалтерії: між зонами діють окремі правила, і з DMZ усередину відкривають якнайменше.
Чого міжмережевий екран не робить
Фільтрація з'єднань не бачить змісту зашифрованих сеансів і логіки застосунку теж не розбирає, тож атаку на сам сайт вона не спинить. Ще одна річ, яку варто пам'ятати: набір правил старіє. Тимчасові дозволи лишаються назавжди, служби змінюють порти, а журнал ніхто не читає — і формально бездоганний захист перетворюється на декорацію. Тому перегляд правил закладають у регулярні процедури, як це передбачає система управління інформаційною безпекою.
До речі, «фаервол», «брандмауер» і «файрвол» у текстах означають те саме — чому назв стільки, пояснюємо окремо.