Перейти к основному содержанию
Скидка 50% все планы, ограниченное время. Начиная от $2.48/mo
12 min left
Безопасность и сети

Что такое DMZ в сетях?

J Автор: Jonas 12 мин чтения
Diagram comparing a three-interface DMZ firewall with the same isolation pattern arranged inside a single server

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 рядом. Слева трёхногая схема с одним межсетевым экраном: один экран несёт канал WAN в интернет, канал DMZ к веб-серверу и почтовому серверу и канал LAN во внутреннюю сеть с базой данных, рабочей станцией администратора и внутренним приложением, а трафик из интернета во внутреннюю сеть заблокирован. Справа схема с двумя экранами «спина к спине»: 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 на облачные примитивы внутри VPC. Сегмент DMZ становится публичной подсетью с балансировщиком нагрузки или прокси, доступным лишь тогда, когда сходятся интернет-маршрут, публичный адрес и разрешающие правила. Внутренняя сеть становится приватной подсетью с сервером приложений и базой данных без маршрута к интернет-шлюзу. Правила межсетевого экрана для зоны становятся списками контроля доступа сети без сохранения состояния на границе подсети, а правила для конкретного ресурса становятся группами безопасности с сохранением состояния, привязанными к каждому ресурсу.

Классическая модель довольно близко ложится на сетевые примитивы облака, но соответствие здесь не один к одному. Сегмент DMZ становится публичной подсетью. Внутренняя сеть становится приватной подсетью без маршрута к интернет-шлюзу. Набор правил межсетевого экрана разделяется между группами безопасности, привязанными к сетевым интерфейсам ресурсов, и сетевыми списками контроля доступа, прикреплёнными к подсетям.

Классический элементОблачный эквивалентЧто оно обеспечивает
Сегмент DMZПубличная подсетьДаёт маршрут в интернет; ресурсу вдобавок нужны публичный адрес и правила безопасности, разрешающие трафик
Сегмент внутренней сетиПриватная подсетьНет прямого маршрута к интернет-шлюзу, поэтому интернет не может инициировать прямые подключения по этому пути
Интерфейс межсетевого экрана между зонамиТаблица маршрутизации + подключение интернет-шлюзаКуда может быть направлен трафик; публичная адресация и средства безопасности всё ещё определяют, достижим ли ресурс
Набор правил межсетевого экрана (для зоны)Сетевые списки контроля доступаПравила разрешения и запрета без сохранения состояния, применяемые на границе подсети
Набор правил межсетевого экрана (для хоста)Группы безопасностиРазрешающие правила с сохранением состояния, применяемые к сетевым интерфейсам связанных ресурсов
Публично доступный сервис в DMZБалансировщик нагрузки или прокси-инстанс в публичной подсетиЕдинственная точка входа, через которую обязан пройти трафик

Облачные провайдеры сами пользуются этим словарём, что неплохо доказывает: термин по-прежнему актуален. Сетевой блог AWS описывает архитектуру DMZ на Amazon VPC которая изолирует публично доступные сервисы от внутренних сетей и построена на VPC Block Public Access, средстве контроля уровня Региона, запущенном в ноябре 2024 года.

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

Соответствие несовершенно в одном конкретном месте. Интерфейс межсетевого экрана обеспечивал границу для целого сегмента, а группа безопасности привязана к сетевому интерфейсу ресурса. Две машины в одной приватной подсети могут нести совершенно разные группы безопасности, так что применение правил происходит на более тонком уровне, чем физический интерфейс когда-либо мог. Обычно это к лучшему. Но это ещё и значит, что имя подсети говорит вам о доступности меньше, чем когда-то говорила сетевая схема.

Где односерверный вариант не дотягивает

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

Если обратный прокси скомпрометирован так, что атакующий получает выполнение кода, этот код уже работает на той машине, где работает ваша база данных. Привязка к loopback тут не спасает, потому что loopback доступен с самого хоста. Изоляция контейнерами или пользователями может поднять планку усилий, но контейнеры на одном хосте всё равно делят его ядро. В классической модели следующим шагом атакующего был пакет по проводу, который кто-то инспектировал. Здесь это локальный сокет.

Практическое следствие — это порог, а не приговор. Когда то, что стоит за прокси, дороже усилий на вторую машину, возьмите вторую машину и приватную сеть между ними. Ничего из этой статьи для этого переучивать не нужно, потому что ничего из этого никогда не было про железо.

Посмотреть тарифы Linux

Разрабатывайте на Linux VPS с root-доступом, NVMe и мощью AMD EPYC.

Посмотреть тарифы Linux

Периметр больше не единственное место, где можно применять политику безопасности. Архитектура zero trust убирает неявное доверие, основанное на сетевом расположении, а приватная связность, построенная на WireGuard или Tailscale может снизить публичную экспозицию. Ни один из этих подходов не заменяет автоматически ни сегментацию, ни авторизацию. Моя позиция по более узкому вопросу однозначна. Как ментальная модель: разделяйте то, до чего можно дотянуться, и то, до чего нельзя, и знайте, какая граница удержит компрометацию. Этот вопрос переживает любую из названных выше архитектур, и потому на него всё ещё стоит отвечать.

Часто задаваемые вопросы

DMZ — это то же самое, что VPN?

Нет. Они решают разные задачи. DMZ контролирует, до чего могут дотянуться недоверенные посторонние, открывая небольшой набор сервисов и ничего больше. VPN даёт доверенным людям снаружи приватный путь внутрь, аутентифицируя их в сети, до которой они иначе не добрались бы. Многие сети используют и то и другое, и одно другого не заменяет.

Безопасна ли DMZ?

DMZ не делает открытый сервис безопасным. Она ограничивает то, до чего дотянется компрометация этого сервиса. Публичный сервис как был публичным, так и остаётся, он по-прежнему открыт всему интернету и по-прежнему нуждается в обновлениях, мониторинге и укреплении сам по себе. DMZ решает, что случится после его падения, а не упадёт ли он.

Нужна ли мне DMZ, если у меня всего один сервер?

Не в классическом смысле, да и построить её на одном хосте всё равно не выйдет. Топология с тремя интерфейсами требует отдельных сетевых сегментов, а у сервера с одним публичным IP их нет ни одного. Что вы можете сделать, так это управлять экспозицией: сделать обратный прокси единственной публичной точкой входа, по умолчанию запретить остальные входящие порты и заставить внутренние сервисы слушать на loopback или на приватном адресе. Это уменьшает то, до чего дотягивается интернет, но не изолирует публичный сервис от остального хоста. Когда то, что стоит за прокси, дороже второй машины, возьмите две машины и приватную сеть между ними.

Почему это называется демилитаризованной зоной?

Термин заимствован из военного значения: буферная область между двумя противостоящими сторонами, где ни одна не контролирует всё. Сетевое употребление сохраняет метафору — DMZ целиком не принадлежит ни недоверенной внешней стороне, ни доверенной внутренней.

Поделиться

Обсуждение

Комментарии

Войдите, чтобы присоединиться к обсуждению.

Ещё в блоге

Читайте дальше.

Длинный список анонимных бесплатных прокси-серверов в противовес одному приватному прокси-серверу, принадлежащему читателю
Безопасность и сети

Лучшие бесплатные прокси-серверы и сайты (и когда вместо них лучше поднять свой)

Бесплатные прокси-серверы, списки и сайты, оценённые по тому, что они реально дают: доступность, обработка HTTPS и логирование. Плюс сколько стоит собственный приватный прокси.

Mir 15 мин чтения
Cloud WAF SaaS and self-hosted WAF request paths compared
Безопасность и сети

Межсетевой экран веб-приложений как услуга: как работает WAF SaaS и когда стоит разместить его самостоятельно

WAF SaaS отсеивает веб-атаки до того, как трафик дойдёт до вашего приложения. Разбираем принцип работы, актуальные модели ценообразования, компромиссы и случаи, когда подходит само

Jonas 16 мин чтения

Готовы к развёртыванию? От $2,48/мес.

Независимое облако с 2008 года. AMD EPYC, NVMe, 40 Gbps. Возврат денег в течение 14 дней.