DMZ (Demilitarized Zone)란?

2024. 2. 1. 17:07·AWS Cloud School/Linux, Network

출차 : https://www.techtarget.com/searchsecurity/definition/DMZ

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
'AWS Cloud School/Linux, Network' 카테고리의 다른 글
  • Network 주요 기기 및 기술 설명
  • Linux - Shell, alias, 방화벽, 환경설정
  • CentOS에서 보안 회선 VPN 구성 (이론)
  • Linux vi shell 사용
인프라 감자
인프라 감자
  • 인프라 감자
    삶은 인프라
    인프라 감자
  • 전체
    오늘
    어제
    • 분류 전체보기 (243)
      • 클라우드&인프라 (28)
        • 인프라 공부 (4)
        • AWS 구조와 서비스 (18)
        • 클라우드 공부 (4)
        • Terraform (2)
      • AWS Cloud School (13)
        • project (5)
        • Linux, Network (6)
        • Docker (2)
      • BackEnd (162)
        • JAVA 공부 (15)
        • 알고리즘 공부 (71)
        • MySQL 문제 풀기 (8)
        • 스프링 핵심 원리 - 기본편 (18)
        • 스프링 MVC 1편 (4)
        • 자바 ORM 표준 JPA 프로그래밍 (21)
        • 실전! 스프링 부트와 JPA 활용1 (8)
        • 실전! 스프링 부트와 JPA 활용2 (5)
        • 스프링 데이터 JPA (8)
        • Querydsl (4)
      • 혼자하는 프로젝트 (32)
        • 배달의 민족 클론코딩 (7)
        • 나만의 프로젝트 (10)
        • 스프링 부트로 구현한 웹 (15)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Email
    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    조합
    linux
    정렬
    스프링 핵심 원리-기본편
    querydsl
    유니온 파인드
    디팬스 게임
    쿼드 압축
    프로그래머스
    VPN
    이것이 자바다
    자바
    백트래킹
    자동 배포
    완전탐색
    상속
    다이나믹 프로그래밍
    dp
    중첩 선언
    네트워크 기본 용어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
인프라 감자
DMZ (Demilitarized Zone)란?
상단으로

티스토리툴바