CS
  • CS-Study
  • database
    • B-Tree와 B+Tree
    • DB JOIN
    • DB Lock
    • DB 트래픽
    • DBCP (DB Connection Pool)
    • Flyway
    • Message Broker
    • MySQL InnoDB 스토리지 엔진
    • MySQL 엔진 아키텍처
    • RDB와 NoSQL
    • Redis
    • SQL Injection
    • 스키마 (Schema)
    • Table Scan과 Index Scan
    • Apache Kafka
    • Key
    • 뷰 (View)
    • 인덱스
    • 정규화
    • RDBMS, NoSQL의 클러스터링/리플리케이션 방식
    • 트랜잭션(Transaction)
    • 트랜잭션의 격리성(Transaction Isolation)
    • 프로시저와 트리거
    • DB 정규화 (Normalization)
  • etc
    • MSA
    • REST, REST API, RESTful
    • SOLID 원칙
    • TDD (Test-Driven Development)
    • 서버리스
    • 컨테이너와 도커
  • java
    • Collections
    • Garbage Collection
    • Generic
    • JDBC
    • Java Virtual Machine(JVM)
    • Java Thread
    • Java8 vs Java11 vs Java17
    • 객체지향 프로그래밍 OOP (Object Oriented Programing)
    • Optional
    • RxJava(Reactive Programming)
    • 문자열(String & StringBuffer & StringBuilder)
    • Synchronized
    • Virtual Thread
    • Wrapper Class
    • Equals()와 Hashcode()
    • final
    • Jackson 라이브러리
    • 리플렉션(Reflection)
    • static class와 static method
    • 스트림(Stream)과 람다(Lambda)
    • 스프링 프레임워크에서 사용되는 디자인 패턴
    • 예외처리(Exception)
    • Java Annotation
    • 추상클래스와 인터페이스
  • network
    • 3-way handshake
    • 4-way Handshake
    • DHCP(Dynamic Host Configuration Protocol)
    • DMZ(DeMilitarized Zone)
    • DNS(Domain Name System)
    • HTTP Method
    • HTTP 버전 비교
    • HTTP status code
    • HTTP
    • IP Address
    • Mutiplexing & Demultiplexing
    • OSI 7계층
    • SOP, CORS
    • TCP와 UDP
    • XSS와 CSRF
    • gRPC
    • Stateless와 Connectionless
    • 라우터 Router
    • 로드밸런서(Load Balancer)
    • 브라우저에 URL입력시 네트워크 상 일어나는 일
    • 서브넷 마스크, 게이트웨이
    • 웹 소켓과 소켓 통신
    • 쿠키(Cookie)와 세션(Session)
  • operating-system
    • IPC (Inter Process Communication)
    • 인터럽트
    • TLB
    • 스레싱 Thrashing
    • Thread Pool, Fork-Join
    • Thread Safe
    • 프로세스
    • 가상 메모리
    • 데드락 (DeadLock, 교착 상태)
    • 동기/비동기 & 블로킹/논블록킹
    • 동기화(Synchronization)
    • 메모리 할당과 단편화
    • 뮤텍스와 세마포어, 모니터
    • 세그먼테이션과 페이징
    • 운영체제
    • 캐시 메모리
    • Context switching(문맥 교환)
    • 컴파일
    • 파일 시스템
    • 페이지 교체 알고리즘(Page Replacement Algorithm)
    • 프로세서 스케줄링 알고리즘
    • 프로세스 주소 공간
  • spring
    • @Transactional
    • AOP(Aspect-Oriented Programming)
    • DTO, DAO, VO, Entity
    • DispatcherServlet
    • Hibernate, JPA, Spring Data JPA
    • Ioc와 DI
    • JPA 연관관계 맵핑
    • N+1 Problem
    • ORM
    • Persistence Context
    • SQL Mapper vs ORM vs QueryBuilder
    • Servlet Filter와 Spring Interceptor
    • Servlet
    • Spring MVC와 Spring Boot
    • Tomcat
    • WebFlux
Powered by GitBook
On this page
  • 배경
  • DMZ란?
  • 방화벽(firewall)
  • 방화벽의 기능
  • Ref.
  1. network

DMZ(DeMilitarized Zone)

컴퓨터 보안에서의 비무장지대인 DMZ

배경

  • 컴퓨팅과 네트워크를 사용하는 기관들은 보안 목적으로 근거리 통신망(LAN, Local Area Network)만 사용하여 내부 시스템을 운영함

  • 이 경우, 외부 네트워크와 단절되기 때문에 웹 검색이나 이메일링, DNS 사용, FTP 등 기본적인 인터넷 서비스를 이용할 수 없음

  • 이와 같이 DMZ는 외부에서 접근되어야 할 필요가 있는 서버들을 위해 사용함

    • 외부와 통신해야 하는 서버를 위해서 포트를 열어 사용하다 보면 내부 네트워크까지 노출되어 해킹될 위험이 존재함

    • 이때 DMZ를 구성하여 내부 네트워크를 보호할 수 있음

내부/외부 네트워크

  • 내부 네트워크(내부망): 외부망과 연결되지 않고 특정 단체나 조직원만 접근 가능한 사설망

    • 일정 조직 내에서 인터넷이 아닌 내부 네트워크를 통해 PC끼리 자원을 공유하게 하거나 그룹웨어 등을 사용할 수 있게 하는 근거리 통신망(LAN, Local Area Network)을 말함

  • 외부 네트워크(외부망): 인터넷에 연결된 망

    • 내부망과 반대로 일정 조직을 넘어 정보를 교환할 수 있는, 즉 인터넷을 통한 네트워크

DMZ란?

  • 개념

    • 내부망과 외부망의 중간지점으로, 내부 네트워크에 존재하지만 외부에서 접근할 수 있는 특수한 네트워크 영역

    • 외부 네트워크와 내부 네트워크 사이에서 외부 네트워크 서비스를 제공하면서 내부 네트워크를 보호하는 서브넷, 즉 외부에 오픈된 서버 영역

  • 사용 목적

    • 웹서비스, 메일 서비스, DNS 등 외부에 서비스를 운영함에 따라 불가피하게 Open 되어야 하는 Well-known Port가 존재함

      • Well-known Port: 잘 알려진 포트로 HTTPS(443), DNS(53), SMTP(25), SSH(22) 등이 존재함

    • DMZ는 이 Well-known Port를 통한 공격에 대비하며, 이 공격을 통해 내부자원의 탈취, 훼손등을 예방하고자 내부와 외부 간 접근제한을 수행하는 역할을 함

  • 형태

    • 내부망 - (방화벽) - DMZ - (방화벽) - 인터넷망

DMZ 특징

  • 내부의 트래픽이 외부로 나가는 Outbound 설정은 허용하며, 외부 사용자의 접근은 DMZ까지만 허용함

    • 접속 가능(Allow): 내부 ➜ DMZ ➜ 외부, 외부 ➜ DMZ

    • 접속 불가능(Deny): DMZ ➜ 내부, 즉 외부망에서 내부망까지 접근 불가

      • DMZ에서 내부로의 연결을 불가능하게 하여 DMZ의 호스트로부터 내부 네트워크를 보호함

  • DMZ의 앞 뒤로 방화벽을 설치함

    • 방화벽은 DMZ를 구성하기 위해 내부 보안 정책에 따라 내부에서 외부나 DMZ로 가는 것을 제한하는 역할을 함

  • 외부 공격자의 침입으로부터 안전하게 보호 되어야하는 서버(메일 서버, 웹 서버 , DNS 서버 등)가 DMZ에 위치함

  • 외부 네트워크에서 DMZ로 가는 연결은 일반적으로 포트 주소 변환(PAT, Port Address Translation)을 통해 제어됨

    • 포트 주소 변환(PAT): 내부 네트워크 상의 호스트 및 포트와 외부 네트워크 상의 호스트 및 포트 간의 이루어지는 TCP(UDP) 통신을 변환해주는 네트워크 장비의 기능

방화벽(firewall)

  • 미리 정의된 보안 규칙에 기반하여 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템

  • 일반적으로 내부 네트워크와 외부 네트워크 간 구성되며, 서로 다른 네트워크를 지나는 데이터를 검열하여 허용하거나 거부하는 역할을 함

    • 신뢰받지 못하는 외부 네트워크로부터 내부망을 보호함

방화벽의 기능

  1. 접근 통제(Access Control)

    • 허용된 서비스나 특정 호스트를 제외하고, 외부에서 내부 네트워크로 접근하는 것을 패킷필터링을 통해 통제하는 기능

    • 패킷필터링: 내부 네트워크로 접근하는 패킷의 IP, Port 등을 검열하여 내/외부 네트워크에 대한 접근을 통제함

  2. 인증(Authentication)

    • 메시지 인증: VPN과 같은 신뢰할 수 있는 통신선을 통해 전송되는 메시지 신뢰성 보장

    • 사용자 인증: 방화벽을 지나가는 트래픽에 대한 사용자가 누군지에 대해 증명하는 기능

      • OTP, 토큰기반 인증, 패스워드 인증 등

    • 클라이언트 인증: 모바일 사용자처럼 특수한 경우에 접속을 요구하는 호스트에 대해 인가된 호스트인지 확인

  3. 감사 및 로깅(Auditing / Loggging)

    • 정책 설정 및 변경, 관리자 접근, 네트워크 트래픽 허용 또는 차단과 관련한 사항 등 접속정보를 로그로 남김

  4. 프라이버스 보호

    • 이중 DNS, 프록시(Proxy) 기능, NAT 기능 등을 제공함으로써 내부 네트워크와 외부 네트워크 간의 중개자 역할을 함으로써 내부 네트워크의 정보 유출을 방지함

      • 프록시(Proxy) 기능: 보안 정책에 따라 실제 서비스를 수행하는 서버로, 클라이언트의 서비스 요청을 받아 전달하고 결과를 수신하여 사용자에게 전달하는 기능

      • 주소변환(NAT) 기능: 외부 호스트의 IP나 목적지 호스트 IP를 전송단계에서 변환하여 전달하는 기능으로, 네트워크에서 외부망과 내부망을 나눠주는 기능을 가능하게 함

  5. 데이터 암호화(Data Encryption)

    • 방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화하여 보내는 것으로, 보통 VPN의 기능을 이용

Ref.

PreviousDHCP(Dynamic Host Configuration Protocol)NextDNS(Domain Name System)

Last updated 1 year ago

[네트워크] DMZ(DeMilitarized Zone) 의미와 뜻
[네트워크] DMZ(DeMilitarized Zone)