방화벽이란 무엇인가
방화벽(Firewall)은 네트워크 트래픽을 감시하고, 사전에 정의된 보안 규칙에 따라 허용 또는 차단하는 보안 시스템이다. 서버와 외부 네트워크 사이에 위치하여 비인가 접근을 차단하는 1차 방어선 역할을 한다. 서버에 어떤 서비스를 올리든, 방화벽 설정 없이 외부에 노출하는 것은 문을 열어두고 외출하는 것과 같다.
패킷 필터링 방화벽
가장 기본적인 방화벽 유형이다. 네트워크 계층(L3)과 전송 계층(L4)에서 동작하며, 각 패킷의 출발지 IP, 목적지 IP, 출발지 포트, 목적지 포트, 프로토콜(TCP/UDP/ICMP)을 검사하여 규칙에 부합하면 통과시키고 아니면 차단한다. 리눅스의 iptables와 그 후속인 nftables가 대표적인 패킷 필터링 방화벽이다. UFW(Uncomplicated Firewall)는 iptables의 프론트엔드로, 복잡한 iptables 규칙을 간단한 명령어로 관리할 수 있게 해준다.
상태 추적 방화벽
패킷 필터링 방화벽의 한계는 각 패킷을 독립적으로 판단한다는 점이다. TCP 연결은 SYN, SYN-ACK, ACK의 흐름이 있는데, 단순 패킷 필터링은 이 흐름의 맥락을 모른다. 상태 추적(Stateful Inspection) 방화벽은 연결의 상태를 기억한다. 내부에서 외부로 나간 요청의 응답 패킷은 자동으로 허용하고, 외부에서 일방적으로 들어오는 패킷은 차단하는 식이다. iptables의 conntrack 모듈이 이 기능을 제공하며, 현대 방화벽은 거의 모두 상태 추적을 기본으로 지원한다.
애플리케이션 레벨 방화벽
L3/L4 방화벽은 포트와 IP만 보지, 패킷 내부의 데이터 내용은 검사하지 않는다. 웹 애플리케이션을 대상으로 하는 SQL 인젝션, XSS(Cross-Site Scripting), CSRF 같은 공격은 HTTP 프로토콜 위에서 정상적인 포트(80, 443)를 통해 들어오므로 L3/L4 방화벽으로는 막을 수 없다. WAF(Web Application Firewall)는 HTTP 요청의 내용(URL 파라미터, 헤더, 바디)을 분석하여 악의적인 패턴을 탐지하고 차단한다. AWS WAF, Cloudflare WAF, ModSecurity가 대표적이다.
방화벽 규칙 설계 원칙
방화벽 규칙은 화이트리스트(Whitelist) 방식이 원칙이다. 기본 정책을 모든 인바운드 트래픽 차단(Default Deny)으로 설정하고, 필요한 포트만 명시적으로 허용하는 방식이다. 웹서버라면 80, 443만 열고, SSH 접속이 필요하면 22번(또는 변경된 포트)을 특정 IP 대역에서만 허용한다. 아웃바운드는 기본 허용으로 두되, 보안 수준이 높은 환경에서는 아웃바운드도 필요한 목적지만 허용하는 이그레스 필터링(Egress Filtering)을 적용한다.
클라우드 환경의 방화벽
클라우드에서는 OS 레벨 방화벽 외에 플랫폼 레벨의 방화벽이 추가로 존재한다. AWS의 Security Group은 인스턴스 단위의 상태 추적 방화벽이며, Network ACL은 서브넷 단위의 패킷 필터링 방화벽이다. 두 계층을 조합하여 다중 방어를 구성하는 것이 표준 설계다. GCP의 VPC Firewall Rules, Azure의 NSG(Network Security Group)도 동일한 역할을 한다.
답글 남기기