Что такое DMZ в контексте сетевой безопасности?

«Что такое DMZ в контексте сетевой безопасности?» — вопрос из категории Сети, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

DMZ (Demilitarized Zone) — это сегмент сети, изолированный от внутренней (LAN) и внешней (WAN) сетей с помощью межсетевых экранов. В DevOps мы используем её для размещения публично доступных сервисов, таких как веб-серверы, API-шлюзы или почтовые ретрансляторы.

Архитектурная роль в DevOps:

  • Изоляция риска: Даже при компрометации сервера в DMZ (например, через уязвимость в веб-приложении), злоумышленник не получит прямого доступа к критической внутренней инфраструктуре (базам данных, системам управления, CI/CD-агентам).
  • Контроль потока трафика: Правила на межсетевых экранах строго регламентируют, какой трафик и куда может проходить. Например, из интернета разрешён только HTTPS (порт 443) к веб-серверу в DMZ, а из DMZ во внутреннюю сеть — только специфические подключения к порту БД для бэкапов.

Практическая реализация (на примере AWS): Чаще всего DMZ реализуется не на уровне роутера, а с помощью архитектуры облачных сетей.

# Пример структуры VPC в Terraform
# Публичная подсеть (DMZ) для балансировщиков нагрузки
resource "aws_subnet" "public" {
  vpc_id            = aws_vpc.main.id
  cidr_block        = "10.0.1.0/24"
  map_public_ip_on_launch = true
}

# Приватная подсеть (LAN) для внутренних сервисов
resource "aws_subnet" "private" {
  vpc_id            = aws_vpc.main.id
  cidr_block        = "10.0.2.0/24"
}

# Network ACL для публичной подсети (базовый набор правил DMZ)
resource "aws_network_acl" "public_nacl" {
  vpc_id = aws_vpc.main.id
  subnet_ids = [aws_subnet.public.id]

  # Разрешить входящий HTTP/HTTPS из интернета
  ingress {
    protocol   = "tcp"
    rule_no    = 100
    action     = "allow"
    cidr_block = "0.0.0.0/0"
    from_port  = 80
    to_port    = 80
  }
  # ... другие правила
}

Важный нюанс: Современный подход (Zero Trust) часто предполагает отказ от классической DMZ в пользу микросегментации, где каждый сервис изолирован с помощью security groups или service mesh, но DMZ остаётся ключевым паттерном для периметровой защиты унаследованных или публичных систем.