외부 인터넷 사용자가 접근해야 하는 서버를 내부 네트워크와 분리하여 배치하는 중간 네트워크 영역
인터넷
↓
DMZ
↓
내부망
의 구조를 만들어 “외부 사용자는 서비스를 이용할 수 있지만, 내부망까지는 직접 접근하지 못하도록 만드는 보안 영역”이다.
DMZ는 Demilitarized Zone의 약자로 "비무장지대"를 의미한다.
원래 군사 용어로는 서로 적대적인 두 지역 사이에 위치한 완충지대를 의미한다.
정보보안에서는 인터넷과 내부망 사이에 위치한 중간 영역이라는 의미로 사용된다.
즉 DMZ는 인터넷도 아니고 내부망도 아닌 중간 보안 영역이라고 볼 수 있다.
초기 네트워크는 아래와 같은 구조를 가졌다.
인터넷
↓
방화벽
↓
내부망
이러한 구조는 내부망을 보호할 수 있지만 기업이 웹 서비스, 메일 서비스, DNS서비스 등을 운영하면서
외부 사용자가 접속할 수 있는 서버를 운영해야 하는 상황이 발생했다.
만약 이러한 서버들을 내부망에 직접 배치한다면, 하나라도 해킹당하게 되었을 때, 내부망에 있는 다른 자원들에게도 침투할 수 있게 되어버린다.
웹 서버 장악
↓
내부망 이동
↓
DB 서버 접근
↓
개인정보 탈취
이러한 문제를 해결하기 위해 나온 DMZ이다.
DMZ의 목적은 “외부에 공개해야 하는 서버만 따로 빼놓자”이다.
즉, 인터넷과 내부망 사이에 별도의 네트워크 영역을 만들어 외부 서비스와 내부 자산을 분리하는 것이 목적이다.
그리고 외부 사용자가 접근하면 안되는 중요 자산은 내부망에 위치시킨다.
사용자들이 접속하는 인터넷영역
접근 정책을 제어하고 관리하는 장치 및 소프트웨어
- 특정 IP들에 대해 HTTP 허용, HTTPS허용 , SSH차단
외부 공개 서버
- 웹서버, 메일 서버, DNS서버, 리버스 프록시 서버등
기업의 핵심 자산들이 위치하는 곳
- DB서버, 파일 서버, AD server, ERP등


예를 들어 사용자가 회사 웹사이트에 접속하는 경우
1. 사용자 접속
2. 방화벽 통과
3. DMZ에 있는 웹 서버 도착
4. 웹 서버가 사용자 요청을 처리하기 위해 내부 DB를 조회 (허용된 포트만 가능)
5. DB 응답
6. 웹 서버가 응답 페이지 생성
7. 사용자에게 결과 전달
DMZ와 내부망은 완전히 분리된 네트워크가 아니다.
필요한 경우 웹 서버가 내부 DB를 조회하는 것처럼 통신이 발생할 수 있다.
다만 이러한 통신은 방화벽 정책에 의해 최소한으로 허용된다.
예시
Web Server → DB Server : 허용
Web Server → AD Server : 차단
Mail Server → DB Server : 차단
즉 DMZ와 내부망 사이의 통신은 반드시 필요한 경우에만 허용하는 것이 원칙이다.
DMZ는 공격을 막는 영역이 아니라 공격을 감수하는 영역이다.
인터넷에 공개된 서버는 공격받을 수밖에 없기 때문에,
DMZ의 목적은 공격을 막는 것이 아니라,
외부에 공개된 서버가 공격받더라도 피해가 내부망으로 확산되지 않도록 격리하는 것이다.
DMZ
↓
Reverse Proxy
↓
WAF
↓
Load Balancer
↓
Application
과거에는 물리적으로 DMZ를 분리하는 경우가 많았지만,
최근에는 클라우드의 Public Subnet이나 Reverse Proxy 기반 구조를 DMZ처럼 활용하는 경우가 많다.
DMZ는 인터넷과 내부망 사이에 위치한 중간 보안 영역으로, 외부에 공개해야 하는 서버를 배치하여 내부망을 보호하기 위한 네트워크 구조이다.