DMZ з'являється без доданого визначення. Пункт у чеклісті перевірки безпеки, речення в документі постачальника про посилення захисту, вимога у вакансії поруч із TLS і принципом найменших привілеїв.
Ви шукаєте це й знаходите схему брандмауера з трьома мережевими кабелями. Один іде в інтернет, другий до ряду серверів, третій до офісної LAN. А адмініструєте ви один орендований сервер з однією публічною IP і без жодного вільного мережевого інтерфейсу.
Перша картинка — це справжня архітектура DMZ. На одному сервері можна відтворити частину її мети безпеки: обмежити те, до чого дотягується інтернет. А от чого на тому самому хості відтворити не вийде, так це окремої мережевої межі, яка й робить DMZ саме DMZ.
Коротко
- DMZ відокремлює сервіси, до яких мають дотягуватися сторонні, від усього іншого, що у вас працює.
- Річ ніколи не була в кабелях: ішлося про те, щоб компрометація на публічному боці на ньому й зупинилася.
- Можна налаштувати брандмауер і все одно не мати DMZ.
- Один сервер з однією публічною IP може зменшити експозицію за допомогою зворотного проксі, правил локального брандмауера та прив'язки до loopback чи приватного інтерфейсу, але окремого сегмента DMZ він не створює.
- Цей варіант ділить ядро з тим, що він захищає, тож рахуйте його як зменшену експозицію, а не як ізоляцію.
Чого ця стаття не охоплює
Обсяг тут — це ментальна модель, і три суміжні теми свідомо залишено осторонь.
- Жодних кроків із налаштування. Тут немає ні конфігурації зворотного проксі, ні синтаксису правил брандмауера, ні порад, який інструмент ставити.
- Жодного налаштування домашніх роутерів. Перемикач «DMZ host» на домашньому маршрутизаторі означає зовсім інше.
- Жодного вердикту щодо zero trust. Чи залишається мережевий периметр правильним основним засобом контролю — це справжня дискусія, і тут вона не вирішується.
Що таке DMZ і для чого вона потрібна?
DMZ, або демілітаризована зона, — це сегмент мережі між недовіреним інтернетом і внутрішньою мережею. У ньому розміщуються сервіси, які мають бути публічно доступними: вебсервери та поштові сервери. Усе інше лишається за другою межею, тож дістатися публічного сервісу не означає дістатися решти.
Стаття глосарію Mozilla про DMZ вкладає дієву половину цього в одне речення: вона відкриває лише певні визначені точки доступу, водночас відмовляючи у доступі до внутрішньої мережі ззовні. У цьому й полягає вся мета проєктування, сформульована без жодної згадки про обладнання.
Типи сервісів, які класично там живуть, випливають із цієї мети. Вебсервери, поштові сервери, FTP-сервери, VoIP-сервери: те, до чого сторонні й мають могти під'єднуватися. Служби каталогів, бази даних, файлові ресурси, внутрішні застосунки та адміністративні інтерфейси до цього списку не входять, бо ззовні до них не має дістатися ніхто.
Тримайтеся властивості, а не картинки. Три мережеві інтерфейси — це один зі способів створити окрему межу довіри. Хмарні та односерверні схеми можуть застосовувати той самий принцип контролю експозиції інакше, але саму DMZ відтворюють лише ті, де є окрема периметрова зона.
Як працює класична DMZ із трьома інтерфейсами?
Класична DMZ будується двома способами. Схема з одним брандмауером дає йому три інтерфейси: в інтернет, у DMZ і у внутрішню мережу. Схема з двома брандмауерами розміщує DMZ між двома окремими брандмауерами. Обидві забезпечують одне й те саме правило. Інтернет дістається DMZ. Інтернет ніколи не дістається внутрішньої мережі.
Модель з одним брандмауером (триногою)
Один брандмауер, три мережеві інтерфейси. Перший дивиться в інтернет. Другий дивиться у DMZ, де живуть публічні сервіси. Третій дивиться у внутрішню мережу. Брандмауер пропускає вхідний трафік з інтернету на конкретні порти в DMZ, пропускає вузький трафік із DMZ усередину там, де цього вимагає застосунок, і відхиляє все інше.
Ця форма зветься триногим брандмауером. Кожен пакет, що перетинає межу зон, проходить через один пристрій, а отже цей брандмауер стає єдиною точкою відмови для міжзонного трафіку. Якщо він відмовить, зв'язність і застосування політик постраждають залежно від режиму відмови брандмауера й тієї надмірності, яку ви передбачили.
Я десять років керував мережевими операціями в інтернет-провайдера, і людей найбільше дивувало в DMZ-інтерфейсі те, наскільки він нічим не примітний. Звичайний ethernet-порт, якому в конфігурації брандмауера присвоїли іншу мітку довіри. Архітектура була не в міді. Вона була в наборі правил і в тому, що хтось як слід продумав, у який бік дозволено кожен потік.
Модель із двома брандмауерами (спина до спини)
Два брандмауери послідовно, а DMZ між ними. Зовнішній брандмауер пропускає інтернет-трафік у DMZ і не далі. Внутрішній пропускає лише той конкретний трафік із DMZ усередину, якого потребує застосунок. Зловмиснику, що дістався DMZ, усе ще треба перетнути межу політик внутрішнього брандмауера, перш ніж дійти до внутрішньої мережі.
Два брандмауери дають вам дві окремо застосовувані межі політик, але водночас додають конфігурації, оновлень і експлуатаційної складності. Відмова чи компрометація зовнішньої межі не прибирає автоматично внутрішню, хоча захист і далі залежить від того, як обидва брандмауери налаштовані та обслуговуються.
Чи DMZ — це те саме, що брандмауер?
Ні. DMZ — це окрема периметрова мережа або сегмент мережі. Брандмауер — один із поширених засобів контролю, яким регулюють трафік між цією зоною, інтернетом і внутрішньою мережею. Правила брандмауера можна налаштувати й у пласкій мережі, не створюючи жодної DMZ, тож різниця тут архітектурна, а не лише питання конфігурації.
Плутанину можна зрозуміти. Брандмауер — це об'єкт, у який ви заходите, річ із конфігураційним файлом, постачальником і договором підтримки, тож він і забирає собі назву того, що створює. А в сегмент не заходить ніхто й ніколи.
Наслідок виявляється в найгірший можливий момент. Припустімо, ваш публічний вебсервер скомпрометовано, бо рано чи пізно так і станеться. У пласкій мережі зловмисник тепер має плацдарм на машині, якій уже дозволено говорити з вашою базою даних, файловим сервером і адміністративними інтерфейсами, а переміщатися між ними означає просто користуватися вже дозволеним доступом. Такий рух убік називають латеральним переміщенням, і саме заради його зупинки існує друга межа. DMZ не заважає вебсерверу бути скомпрометованим. Вона заважає скомпрометованому вебсерверу перетворитися на доступ до всього іншого.
Одне уточнення, поки термін перед очима: налаштування «DMZ host» на домашньому чи малому офісному маршрутизаторі — це інша функція. Воно переспрямовує незапитаний вхідний трафік на один внутрішній пристрій, виставляючи його просто в інтернет, і жодної окремої захищеної мережі DMZ при цьому не створює.
Як застосувати принципи DMZ на одному сервері?
Один сервер з однією публічною IP може відтворити частину мети DMZ щодо контролю експозиції, не відтворюючи її мережевого розділення. Зворотний проксі може стати єдиною публічною точкою входу, вхідні правила брандмауера з відмовою за замовчуванням можуть закрити решту, а внутрішні сервіси можуть слухати на loopback чи на приватному інтерфейсі замість публічної адреси.
Почніть з обмеження, яке припускає цей розділ: один VPS, один публічний інтерфейс і жодного окремого пристрою-брандмауера і жодної підмережі DMZ під вашим контролем. У такій конфігурації класичну триногу топологію на тому самому хості відтворити не вийде. Правила локального брандмауера, вибір інтерфейсу прослуховування для сервісів і зворотний проксі все ще можуть зменшити експозицію, але тієї самої межі ізоляції вони не створять.
Зворотний проксі може зайняти публічний інтерфейс на портах 80 та 443 і стати єдиною точкою входу рівня застосунку для вебтрафіку. Це звужує публічну поверхню атаки, але не дорівнює окремому DMZ-інтерфейсу, бо проксі все одно ділить хост із сервісами, що стоять за ним.
Вхідні правила брандмауера на хості пропускають ці два порти, а решту відкидають. Будь-який інший сервіс на машині може працювати й слухати, але ззовні до нього ніхто не встановить з'єднання. Це наближає політику «доступні лише потрібні порти» в межах одного хоста, але окремої межі з внутрішньою мережею не створює.
Сервери застосунків, бази даних і адмінпанелі не повинні слухати на публічній адресі. Коли проксі працює на тому самому хості, вони можуть слухати на loopback; коли він працює деінде в приватній мережі, вони можуть слухати на приватній адресі. В обох випадках на публічному інтерфейсі для цих сервісів немає слухача, тож відкриття вхідного правила лише на цьому інтерфейсі їх не розкриває.
Адміністративний доступ належить до внутрішнього боку, а не до боку DMZ. Якщо тримати SSH і інтерфейси керування поза публічним шляхом, за VPN або в приватній мережі, прямі підключення до них із публічного інтернету стають неможливими.
Як поняття DMZ лягають на підмережі VPC і групи безпеки?
Класична модель досить близько лягає на хмарні мережеві примітиви, але відповідність тут не один до одного. Сегмент DMZ стає публічною підмережею. Внутрішня мережа стає приватною підмережею без маршруту до інтернет-шлюзу. Набір правил брандмауера розподіляється між групами безпеки, прив'язаними до мережевих інтерфейсів ресурсів, і мережевими списками контролю доступу, прикріпленими до підмереж.
| Класичний елемент | Хмарний відповідник | Що воно забезпечує |
|---|---|---|
| Сегмент DMZ | Публічна підмережа | Дає маршрут в інтернет; ресурсу до того ж потрібні публічна адреса й правила безпеки, що дозволяють трафік |
| Сегмент внутрішньої мережі | Приватна підмережа | Немає прямого маршруту до інтернет-шлюзу, тож інтернет не може ініціювати прямі з'єднання цим шляхом |
| Інтерфейс брандмауера між зонами | Таблиця маршрутизації + під'єднання інтернет-шлюзу | Куди може маршрутизуватися трафік; чи досяжний ресурс, і далі визначають публічна адресація та засоби безпеки |
| Набір правил брандмауера (для зони) | Мережеві списки контролю доступу | Правила дозволу й заборони без збереження стану, які застосовуються на межі підмережі |
| Набір правил брандмауера (для хоста) | Групи безпеки | Дозвільні правила зі збереженням стану, які застосовуються до мережевих інтерфейсів пов'язаних ресурсів |
| Публічно доступний сервіс у DMZ | Балансувальник навантаження або проксі-інстанс у публічній підмережі | Єдина точка входу, через яку має пройти трафік |
Хмарні провайдери самі користуються цим словником, і це непогано доводить, що термін досі актуальний. Мережевий блог AWS описує архітектуру DMZ на Amazon VPC яка ізолює публічно доступні сервіси від внутрішніх мереж і побудована на VPC Block Public Access, засобі контролю рівня Регіону, запущеному в листопаді 2024 року.
Підмережі — це несуча частина цієї відповідності. Публічна підмережа є публічною тому, що її таблиця маршрутизації вказує на інтернет-шлюз. Оскільки таблиці маршрутизації вирішують, куди мандрують пакети, розкладка підмереж формує вашу експозицію раніше за будь-яке окреме правило.
Ця відповідність недосконала в одному конкретному місці. Інтерфейс брандмауера забезпечував межу для цілого сегмента, а група безпеки прив'язана до мережевого інтерфейсу окремого ресурсу. Дві машини в одній приватній підмережі можуть нести цілком різні групи безпеки, тож застосування правил відбувається на дрібнішому рівні, ніж будь-коли давав фізичний інтерфейс. Зазвичай це на краще. Але це також означає, що назва підмережі каже вам про досяжність менше, ніж колись казала мережева схема.
Де односерверний варіант не дотягує
На одному хості публічно доступний процес і внутрішні сервіси ділять ядро й машину. Окремі сегменти змушують зловмисника перетнути мережеву межу, яку інспектує брандмауер; один хост цього не робить. Односерверна схема зменшує експозицію. Розділення вона не відтворює.
Якщо зворотний проксі скомпрометовано так, що зловмисник отримує виконання коду, цей код уже працює на тій самій машині, де працює ваша база даних. Прив'язка до loopback тоді не рятує, бо loopback доступний із самого хоста. Ізоляція контейнерами чи користувачами може підняти потрібні зусилля, але контейнери на тому самому хості все одно ділять його ядро. У класичній моделі наступним кроком зловмисника був пакет по дроту, який щось інспектувало. Тут це локальний сокет.
Практичний наслідок — це поріг, а не вирок. Коли те, що стоїть за проксі, вартує більше, ніж клопіт із другою машиною, візьміть другу машину і приватну мережу між ними. Нічого з цієї статті для цього перевчати не доведеться, бо ніщо в ній ніколи не було про залізо.
Розробляйте на Linux VPS з root-доступом, NVMe та потужністю AMD EPYC.
Переглянути тарифи LinuxПериметр більше не єдине місце, де можна застосовувати політику безпеки. Архітектура zero trust прибирає неявну довіру, засновану на мережевому розташуванні, а приватна зв'язність, побудована на WireGuard або Tailscale може зменшити публічну експозицію. Жоден із цих підходів автоматично не замінює ні сегментації, ні авторизації. Моя позиція щодо вужчого питання однозначна. Як ментальна модель: відділіть те, до чого можна дотягнутися, від того, до чого не можна, і знайте, яка межа втримає компрометацію. Це питання переживає будь-яку названу вище архітектуру, і саме тому на нього досі варто відповідати.
Часті запитання
Чи DMZ — це те саме, що VPN?
Ні. Вони розв'язують різні задачі. DMZ контролює, до чого можуть дотягнутися недовірені сторонні, відкриваючи невеликий набір сервісів і нічого більше. VPN дає довіреним людям ззовні приватний шлях усередину, автентифікуючи їх у мережі, до якої вони інакше б не дісталися. Багато мереж використовують і те, і те, і жодне з них не замінює іншого.
Чи безпечна DMZ?
DMZ не робить відкритий сервіс безпечним. Вона обмежує те, куди дотягнеться компрометація цього сервісу. Публічний сервіс як був публічним, так і лишається, він і далі відкритий усьому інтернету і далі потребує оновлень, моніторингу та посилення захисту сам по собі. DMZ вирішує, що станеться після його падіння, а не чи він упаде.
Чи потрібна мені DMZ, якщо в мене лише один сервер?
Не в класичному сенсі, та й на одному хості її все одно не побудувати. Топологія з трьома інтерфейсами потребує окремих мережевих сегментів, а в сервера з однією публічною IP їх немає жодного. Що ви можете зробити, так це керувати експозицією: зробити зворотний проксі єдиною публічною точкою входу, за замовчуванням заборонити решту вхідних портів і змусити внутрішні сервіси слухати на loopback чи на приватній адресі. Це зменшує те, до чого дотягується інтернет, але не ізолює публічний сервіс від решти хоста. Коли те, що стоїть за проксі, вартує більше за другу машину, візьміть дві машини й приватну мережу між ними.
Чому це називають демілітаризованою зоною?
Термін запозичено з військового значення: буферна зона між двома протилежними силами, де жодна не контролює все. Мережеве вживання зберігає метафору: DMZ не належить цілком ані недовіреному ззовні, ані довіреному всередині.

Обговорення
Коментарі
Увійдіть, щоб долучитися до обговорення.