방화벽이란?
네트워크 보안에서 모든 시스템을 개별적으로 보호하는 것은 현실적으로 어렵다. 조직의 모든 서버, PC, IoT 기기에 보안 정책을 일일이 적용하고 관리하는 것은 비용과 복잡도 측면에서 한계가 있다.
이 문제를 해결하기 위해 등장한 것이 **방화벽(Firewall)**이다. 내부 네트워크와 외부 네트워크 사이에 위치하여 **경계 방어(Perimeter Defense)**를 담당한다.
방화벽은 특수한 형태의 네트워크 라우터로, 내부와 외부 네트워크 간의 트래픽을 제어한다. 모든 트래픽이 방화벽을 거쳐야 하므로 **단일 통제 지점(Choke Point)**으로서 모니터링과 제어가 가능하다.
방화벽의 주요 목표
- 트래픽 제한: IP 주소, 포트, 사용자 기준으로 송수신 트래픽 제한
- 접근 제어: 유효하지 않은 트래픽 차단, 인가된 트래픽만 허용
- 내부 구조 은닉: 내부 네트워크 토폴로지와 서비스 정보 숨김
- 프로토콜 오류 방어: 잘못된 SMTP 명령어 등 프로토콜 오류 필터링
- 로깅: 트래픽에 대한 감사(Auditing) 및 접근 제어 기록
방화벽의 종류
방화벽은 동작하는 OSI 계층에 따라 크게 두 가지로 분류된다.
| 종류 | 동작 계층 | 별칭 |
|---|---|---|
| 패킷 필터(Packet Filter) | 네트워크/전송 계층 | Screen Router, Screening Filter |
| 애플리케이션 게이트웨이(Application Gateway) | 애플리케이션 계층 | Proxy Server |
패킷 필터는 IP 헤더와 TCP/UDP 헤더 정보(IP 주소, 포트 번호, 프로토콜 타입)를 기반으로 패킷을 포워딩하거나 차단한다.
애플리케이션 게이트웨이는 메시지 내용 자체를 검사하여 애플리케이션 레벨에서 트래픽을 제어한다.
패킷 필터
패킷 필터는 가장 단순하고 빠른 방화벽 구성요소이다. 헤더 정보만 검사하면 되기 때문이다. 모든 방화벽 시스템의 기반이 되며, 대부분의 라우터가 패킷 필터링 기능을 내장하고 있다.
각 IP 패킷을 개별적으로(Context 없이) 검사하여 규칙에 따라 허용 또는 거부한다.
기본 정책(Default Policy)
패킷 필터의 기본 정책은 두 가지 방식이 있다.
- 명시적으로 허용되지 않은 것은 금지 (Whitelist 방식) - 더 보수적이고 안전한 접근
- 명시적으로 금지되지 않은 것은 허용 (Blacklist 방식)
패킷 필터 규칙 예시
131.34.0.0대역에서 오는 인바운드 패킷 차단- 내부 TELNET(포트 23)으로 향하는 인바운드 패킷 차단
- 내부 전용 호스트
194.78.20.8로 향하는 인바운드 패킷 차단 - HTTP 서버(포트 80)로 향하는 아웃바운드 패킷 차단 - 직원의 웹 브라우징 제한
패킷 필터링의 종류
Stateless 패킷 필터링
1세대 방화벽으로, **ACL(Access Control List)**에 기반한다.
- 패킷 단위로 개별 결정
- 네트워크/전송 계층에서 동작
- 상태 정보를 저장하지 않음
Stateful 패킷 필터링 (Session Filtering)
Dynamic Packet Filter라고도 불린다. 현재 네트워크의 **상태(State)**를 기반으로 패킷을 검사한다. 패킷들의 컨텍스트를 파악하여 연결 상태를 추적한다.
패킷 필터링 활용 예시
IP Spoofing 공격 방어
공격자가 내부 사용자의 IP 주소를 출발지로 위장하여 패킷을 보내는 공격이다. 방화벽 외부에서 들어오는 패킷 중 출발지 주소가 내부 IP인 경우를 모두 차단하면 방어할 수 있다.
Dynamic Packet Filter 활용
Stateful 방식에서는 내부에서 시작된 TCP 연결에 대한 응답 패킷만 허용할 수 있다. 외부에서 먼저 연결을 시도하는 패킷은 차단된다.
애플리케이션 레벨 게이트웨이
애플리케이션별로 전용 게이트웨이, 즉 **프록시(Proxy)**를 두는 방식이다. 프로토콜 전체에 접근할 수 있어 더 세밀한 제어가 가능하다.
동작 방식은 다음과 같다.
- 사용자가 프록시에 서비스 요청
- 프록시가 요청의 유효성 검증
- 검증 통과 시 실제 서버에 요청 후 결과 반환
- 애플리케이션 레벨에서 로그/감사 기록
단점은 서비스마다 별도의 프록시가 필요하다는 것이다.
Circuit Gateway
Circuit Gateway는 각각 별도의 TCP 세션을 맺고 포워딩하는 방식으로 동작한다.
애플리케이션 게이트웨이 vs 패킷 필터
애플리케이션 레벨 게이트웨이는 패킷 필터보다 더 안전한 경향이 있다. 모든 패킷을 검사하는 대신 사용자가 특정 TCP/IP 애플리케이션을 사용할 수 있는지만 판단하면 되기 때문이다.
애플리케이션 레벨에서 로그와 감사가 용이하지만, 추가 오버헤드가 발생한다. 클라이언트와 서버 사이에 하나의 연결만 있는 것처럼 보이게 하는 illusion을 유지해야 하기 때문이다.
Bastion Host
Bastion Host는 애플리케이션 레벨 게이트웨이나 Circuit Gateway가 동작하는 플랫폼이다.
주요 특징은 다음과 같다.
- 네트워크 관리자가 필수라고 판단한 서비스(Telnet, DNS, FTP 등)만 설치
- 각 프록시 모듈은 네트워크 보안에 특화된 작은 소프트웨어 패키지
- 각 프록시는 독립적으로 동작하여, 하나의 프록시에 문제가 생겨도 다른 프록시에 영향 없음
Personal Firewall
개인 방화벽은 PC/워크스테이션과 인터넷 또는 기업 네트워크 간의 트래픽을 제어한다. 개인 컴퓨터에 설치되는 소프트웨어 모듈 형태이거나 가정/사무실의 DSL/케이블/ISP 라우터에 포함된다.
다른 방화벽 유형보다 훨씬 단순한 구조를 가지며, 주요 역할은 다음과 같다.
- 비인가 원격 접근 차단
- 악성코드에 의한 아웃바운드 활동 모니터링
Windows, macOS 등 운영체제에서 제공하는 기본 방화벽이 대표적인 예이다.
DMZ (비무장지대)
**DMZ(Demilitarized Zone)**는 조직이 공개 서버를 안전하게 호스팅하면서 동시에 내부 네트워크를 보호할 수 있게 해주는 방화벽 구성이다.
DMZ는 보호된 네트워크와 비보호 네트워크 사이에 위치한 네트워크 세그먼트이다. 웹 서버, 메일 서버 등 공개 접근이 필요한 서비스를 위한 공간이다.
DMZ의 특징
- 내부 네트워크보다 덜 제한적인 접근 제어 규칙 적용
- 모든 방화벽이 DMZ를 지원하는 것은 아님 (저가형 라우터/방화벽에는 없는 경우가 많음)
- 보안 규칙/정책에 대한 높은 유연성 제공
Distributed Firewall
분산 방화벽은 중앙 집중식이 아닌, 네트워크 전체에 분산되어 배치되는 방화벽 구조이다.
HGU 전산전자공학부 고윤민 교수님의 24-2 컴퓨터 보안 수업을 듣고 작성한 포스트이며, 첨부한 모든 사진은 교수님 수업 PPT의 사진 원본에 필기를 한 수정본입니다.