Что такое 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 как просто «ещё один файрвол» без объяснения зонирования.