
DMZ (DeMilitarized Zone, 비무장 지대)는 네트워크 보안에서 중요한 개념으로, 외부 네트워크(인터넷)와 내부 네트워크(예: 기업의 사설 네트워크) 사이에 위치하는 보안 영역을 말합니다. DMZ의 주요 목적은 외부에서의 공격으로부터 내부 네트워크를 보호하는 동시에, 제한적이지만 외부 네트워크와의 통신을 허용하는 것입니다.
DMZ의 주요 특징
- 분리된 영역
- DMZ는 보안상의 이유로 내부 네트워크와 완전히 분리된 별도의 네트워크 영역입니다.
- 이는 외부 공격자가 DMZ 내의 시스템에 접근하더라도 내부 네트워크로의 추가 침투를 어렵게 만듭니다.
- 공개 서비스 배치
- 웹 서버, 이메일 서버, DNS 서버와 같이 외부 사용자에게 서비스를 제공하는 시스템은 DMZ에 배치됩니다.
- 이를 통해 이러한 서비스들이 보안 위험에 노출되더라도 내부 네트워크는 안전하게 보호될 수 있습니다.
- 보안 정책 및 장비
- DMZ는 방화벽, IDS/IPS(침입 탐지 및 방지 시스템), VPN 게이트웨이 등과 같은 다양한 보안 장비와 정책에 의해 보호됩니다.
- 일반적으로 내부 네트워크와 외부 네트워크 사이에 최소 두 개의 방화벽(하나는 외부 네트워크와 DMZ 사이, 다른 하나는 DMZ와 내부 네트워크 사이)이 구성됩니다.
- 접근 제어
- DMZ 내의 시스템은 매우 엄격한 접근 제어 정책 하에 운영됩니다.
- 필요한 최소한의 통신 포트와 서비스만이 허용되며, 모든 트래픽은 보안 장비에 의해 검사됩니다.
DMZ 구성의 예
- 이중 방화벽 구성
- 가장 일반적인 DMZ 구성 방식으로, 외부 네트워크와 DMZ 사이에 하나의 방화벽을 배치하고, DMZ와 내부 네트워크 사이에 또 다른 방화벽을 배치합니다.
- 이 방식은 DMZ에 있는 서비스에 대한 보안을 강화하고, 내부 네트워크로의 무단 접근을 방지합니다.
VPN과 DMZ의 차이
- 보안 목적의 차이
- DMZ는 외부에 공개된 서비스를 안전하게 제공하기 위한 것이며, VPN은 원격 위치에서 사설 네트워크에 안전하게 접근하기 위한 것입니다.
- 구현 방식의 차이
- DMZ는 물리적 또는 논리적으로 분리된 네트워크 영역에 서비스를 배치하는 구조를 가지고 있으며, VPN은 암호화된 통신 채널을 통한 네트워크 접근을 제공합니다.
- 함께 사용되는 경우
- DMZ와 VPN은 서로 다른 목적으로 설계되었지만, 함께 사용될 수 있습니다.
- 예를 들어, 조직은 DMZ 내에 위치한 서비스에 대한 안전한 접근을 위해 VPN을 사용할 수 있습니다.
- 이는 외부에서 DMZ 내의 서비스에 접근할 때 추가적인 보안 계층을 제공합니다.
DMZ를 구현할 때 사용하는 iptables에 대해
리눅스의 iptables는 네트워크 트래픽을 관리하고 제어하는 데 사용되는 매우 강력한 도구입니다. iptables는 리눅스 운영 체제의 일부로서, 패킷 필터링 및 네트워크 주소 변환(NAT) 기능을 제공합니다.
주요 특징
- 패킷 필터링
- iptables는 들어오는(incoming), 나가는(outgoing), 그리고 시스템을 통과하는(forwarded) 네트워크 패킷에 대한 규칙을 설정하여 트래픽을 제어합니다.
- 이를 통해 보안을 강화하고 원치 않는 트래픽을 차단할 수 있습니다.
- 다양한 규칙 설정
- 사용자는 특정 소스 또는 목적지 IP 주소, 포트 번호, 프로토콜 타입 등에 기반하여 세부적인 규칙을 설정할 수 있습니다.
- 체인(Chains)과 테이블(Tables)
- iptables는 여러 체인을 사용합니다. 주요 체인으로는 INPUT, FORWARD, OUTPUT이 있으며, 각각의 체인은 특정 종류의 트래픽을 처리합니다.
- 또한, 이러한 체인들은 여러 테이블에 속하는데, 대표적인 테이블로는 filter, nat, mangle 등이 있습니다.
- NAT(Network Address Translation)
- iptables는 NAT 규칙을 설정하여 프라이빗 네트워크가 인터넷과 같은 외부 네트워크와 통신할 수 있도록 합니다. 이는 IP 주소를 변환하는 과정을 통해 이루어집니다.
- 로깅 및 모니터링: 네트워크 활동을 추적하고 로깅하는 기능을 제공하여 보안 모니터링 및 문제 해결에 도움을 줍니다.
Prerouting VS Postrouting
PREROUTING과 POSTROUTING은 리눅스의 iptables 네트워크 라우팅 시스템에서 사용되는 두 개의 중요한 체인입니다. 이들은 패킷이 처리되는 단계에 따라 적용되며, 주로 Network Address Translation (NAT)과 관련된 작업에 사용됩니다.
#iptables 문법 구조
iptables [제어옵션] INPUT -s [발신지] --sport [발신지포트] -d [목적지] --dport [목적지포트] -j [정책]
PREROUTING 체인
- 이 체인은 패킷이 라우팅 결정을 받기 전에 적용됩니다.
- 즉, 패킷이 네트워크 인터페이스를 통해 들어오고, 아직 어떤 목적지로 라우팅될지 결정되기 전에 PREROUTING 규칙이 적용됩니다.
- PREROUTING 체인의 주요 사용 사례는 Destination NAT (DNAT)입니다.
- 예를 들어, 포트 포워딩이나 특정 호스트 또는 서비스로의 트래픽 리디렉션에 사용됩니다.
- 이는 외부에서 들어오는 트래픽의 목적지 IP 주소나 포트를 변경할 때 유용합니다.
POSTROUTING 체인
- POSTROUTING 체인은 패킷이 라우팅 결정을 받고 최종 목적지로 전송되기 직전에 적용됩니다.
- 즉, 패킷이 내부 네트워크에서 외부 네트워크로 나가기 전에 이 체인의 규칙이 적용됩니다.
- POSTROUTING 체인의 주된 사용 사례는 Source NAT (SNAT)입니다. 이는 내부 네트워크의 프라이빗 IP 주소를 공용 IP 주소로 변환하여 외부 네트워크로의 아웃바운드 트래픽을 가능하게 합니다.
- 이는 종종 인터넷에 접속하기 위해 사용되며, 패킷의 소스 주소를 변경하는 데 사용됩니다.

'AWS Cloud School > Linux, Network' 카테고리의 다른 글
Network 주요 기기 및 기술 설명 (0) | 2024.01.30 |
---|---|
Linux - Shell, alias, 방화벽, 환경설정 (2) | 2024.01.21 |
CentOS에서 보안 회선 VPN 구성 (이론) (0) | 2024.01.21 |
Linux vi shell 사용 (0) | 2024.01.20 |
Linux - (1) (0) | 2024.01.20 |