Gymterview
middle

Что такое DMZ и зачем она нужна?

DMZ (Demilitarized Zone, демилитаризованная зона) — изолированный сегмент сети между внешней (интернет) и внутренней (корпоративной) сетями, содержащий сервисы, которые должны быть доступны извне, но не имеют прямого доступа к внутренней сети.

Аналогия: DMZ — это приёмная в офисе. Посетители (интернет-трафик) попадают в приёмную, где их встречает секретарь (reverse proxy), но пройти дальше в кабинеты (внутренняя сеть) они не могут без разрешения.

Типичная архитектура DMZ

Пример
Интернет
    │
[Внешний Firewall]
    │
┌───────────────────────── DMZ ──────────────────────────────┐
│  Web-сервер (Nginx)    API Gateway    WAF                  │
│  Reverse Proxy         Load Balancer  Публичное API        │
└────────────────────────────────────────────────────────────┘
    │
[Внутренний Firewall]
    │
┌──────────────────── Внутренняя сеть ───────────────────────┐
│  Application Servers   Базы данных   Kafka   Внутренние API│
│  Spring Boot apps      PostgreSQL    Redis                 │
└────────────────────────────────────────────────────────────┘

Правила для DMZ

Направление Правило
Интернет -> DMZ Разрешён только определённый трафик (80, 443)
DMZ -> Внутренняя сеть Разрешён только необходимый трафик (конкретные порты)
Внутренняя сеть -> DMZ Допускается для управления и мониторинга
Интернет -> Внутренняя сеть Полностью запрещён

Что размещается в DMZ

  • Reverse proxy / Load Balancer (Nginx, HAProxy)
  • WAF (Web Application Firewall)
  • API Gateway — точка входа для публичных API
  • DNS-серверы для обслуживания внешних запросов
  • Почтовые серверы для приёма внешней почты

Пример правил iptables для DMZ

Пример
# Разрешить трафик из интернета в DMZ только на 80 и 443
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT

# Разрешить DMZ -> внутренняя сеть только на порт приложения
iptables -A FORWARD -i eth1 -o eth2 -d 10.0.100.10 -p tcp --dport 8080 -j ACCEPT

# Запретить прямой доступ из интернета во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth2 -j DROP

В банках DMZ — обязательное требование регуляторов (PCI DSS). Java-разработчик должен понимать, в каком сегменте работает его приложение, чтобы правильно настраивать подключения к другим сервисам.

На собеседовании: интервьюер хочет услышать про двухуровневую модель файрволов и принцип запрета прямого доступа из интернета во внутреннюю сеть. Частая ошибка — описать DMZ как просто «ещё один файрвол» без объяснения зонирования.