방화벽(Firewall)이란? 기초 개념 정리

방화벽이 무엇을 보고 무엇을 허용하는지, 종류별로 어디까지 막을 수 있는지를 표준 문서 기준으로 정리했습니다. 아래 카드에서 개념을 먼저 훑고, 이어지는 본문에서 비교표와 사례를 확인하세요.

한눈에 보기

방화벽은 미리 정한 규칙에 따라 네트워크 트래픽을 허용하거나 차단하는 장치 또는 소프트웨어입니다. 미국 국립표준기술연구소(NIST)의 「Guidelines on Firewalls and Firewall Policy」(SP 800-41 Rev.1, 2009년 9월)는 방화벽 기술을 패킷 필터링, 상태 추적(stateful inspection), 애플리케이션 방화벽, 애플리케이션 프록시 게이트웨이 등으로 나누어 설명합니다. 이 글은 그 분류를 뼈대로 각 방식이 무엇을 보는지, 규칙을 어떤 원칙으로 짜는지, 어디까지가 방화벽의 몫이 아닌지를 정리합니다. 일반 정보이며 특정 제품 설정이나 보안 컨설팅을 대신하지 않습니다.

🛡️

방화벽(Firewall)이란

미리 정한 규칙에 따라 네트워크를 드나드는 트래픽을 검사해 허용하거나 차단하는 보안 장치·소프트웨어입니다.

이름 그대로 건물의 방화벽처럼 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부(인터넷) 사이에 놓여, 정해진 규칙(IP 주소, 포트 번호, 프로토콜 등)에 맞지 않는 트래픽을 차단하는 역할을 합니다. 가정용 공유기, 회사 네트워크 장비, 개인 PC의 운영체제 모두 각자의 방화벽 기능을 갖고 있습니다.

📦

패킷 필터링 방화벽 (스테이트리스)

각 패킷을 개별적으로 검사해 출발지·목적지 IP, 포트, 프로토콜이 규칙에 맞으면 통과시키는 가장 단순한 방식입니다.

이전 패킷과의 연관성을 기억하지 않고 패킷 하나하나를 독립적으로 판단하기 때문에 처리 속도가 빠르지만, 정상적인 응답 트래픽인지 새로 시작된 공격 트래픽인지 구분하지 못해 세밀한 보안에는 한계가 있습니다. NIST SP 800-41 Rev.1은 이런 방식을 상태를 추적하지 않는 "스테이트리스" 검사라고 부르며, 접근 제어 목록(ACL)을 쓰는 네트워크 라우터를 순수 패킷 필터링 장치의 가장 흔한 예로 듭니다.

🔗

스테이트풀 방화벽 (연결 상태 추적)

연결이 시작될 때부터 상태 테이블에 기록해두고, 그 연결에 속하는 응답 트래픽만 자동으로 허용하는 더 안전한 방식입니다.

예를 들어 내 PC가 외부 웹사이트에 접속을 요청하면 방화벽이 이 연결을 상태 테이블에 등록하고, 해당 웹사이트에서 돌아오는 응답만 통과시킵니다. 반대로 등록되지 않은 연결로 갑자기 들어오는 트래픽은 응답처럼 보여도 차단되므로, 단순 패킷 필터링보다 훨씬 정교하게 방어할 수 있습니다. NIST SP 800-41 Rev.1(2009)도 상태 추적(stateful inspection)을 패킷 필터링의 개선 방식으로 설명하며, 오늘날 많은 방화벽 제품이 이 기능을 갖추고 있습니다.

🔬

차세대 방화벽(NGFW)과 애플리케이션 계층 검사

IP·포트 정보만 보는 전통적 방화벽을 넘어, 패킷 내용까지 들여다보고 애플리케이션 단위로 제어하는 방화벽입니다.

차세대 방화벽(Next-Generation Firewall)은 딥 패킷 인스펙션(DPI)으로 트래픽의 실제 내용을 분석해 특정 애플리케이션(예: 특정 메신저나 P2P 프로그램)의 사용을 통째로 차단하거나, 침입 탐지·방지 시스템(IDS/IPS) 기능을 결합해 알려진 공격 패턴을 실시간으로 탐지합니다. 기업 환경에서 널리 쓰입니다.

🖥️

네트워크 방화벽과 호스트 기반 방화벽의 차이

네트워크 전체 입구를 지키는 전용 장비(또는 공유기)와, 개별 PC 안에서 동작하는 소프트웨어 방화벽은 보호 범위가 다릅니다.

네트워크 방화벽은 회사나 가정의 인터넷 출입구 한 곳에서 모든 기기의 트래픽을 한꺼번에 검사하는 반면, 윈도우 방화벽 같은 호스트 기반 방화벽은 설치된 기기 하나만 보호합니다. 두 가지를 함께 쓰면 외부 공격뿐 아니라 이미 내부에 들어온 위협이 다른 기기로 퍼지는 것(수평 이동)까지 줄일 수 있어 다중 방어(Defense in Depth)에 유리합니다.

🔀

인바운드 규칙과 아웃바운드 규칙

외부에서 들어오는 트래픽을 막는 인바운드 규칙과, 내부에서 밖으로 나가는 트래픽을 통제하는 아웃바운드 규칙은 목적이 다릅니다.

인바운드 규칙은 외부의 공격이나 무단 접속 시도를 막는 데 초점이 있고, 아웃바운드 규칙은 내부 기기가 악성코드에 감염되었을 때 외부의 공격자 서버(C2 서버)로 정보를 유출하거나 명령을 받는 것을 차단하는 역할을 합니다. 가정용 방화벽은 보통 인바운드 위주로 엄격하고 아웃바운드는 대부분 허용하지만, 기업 환경에서는 아웃바운드 규칙도 세밀하게 관리하는 경우가 많습니다.

⚠️

방화벽으로 막을 수 없는 위협

방화벽은 네트워크 경계를 지키는 장치일 뿐, 피싱 메일이나 정상 트래픽으로 위장한 암호화된 공격까지 완벽히 막지는 못합니다.

이용자가 스스로 피싱 사이트에 개인정보를 입력하거나 악성 첨부파일을 실행하는 경우, 또는 HTTPS로 암호화되어 내용을 들여다보기 어려운 트래픽 안에 숨은 공격은 전통적인 방화벽만으로 막기 어렵습니다. 이 때문에 최근 보안 전략은 방화벽 하나에 의존하기보다, 내부와 외부를 가리지 않고 모든 접근을 검증하는 "제로 트러스트(Zero Trust)" 원칙과 백신·이메일 필터링 등을 함께 사용하는 방향으로 나아가고 있습니다.

방화벽은 어떻게 발전해 왔나

위키백과(Firewall)의 역사 항목은 1980년대 라우터가 이미 네트워크를 구분하고 패킷을 거를 수 있었기 때문에 이를 방화벽의 전신으로 봅니다. 1987년 디지털 이큅먼트(DEC)의 엔지니어들이 패킷 필터 방식의 방화벽을 개발했고, AT&T 벨 연구소의 빌 체스윅과 스티브 벨로빈이 패킷 필터링 연구를 이어갔다고 합니다. 1989~1990년에는 벨 연구소의 데이브 프레소토 등이 연결 단위로 대화를 추적하는 회로 수준 게이트웨이를 개발했고, 1993년 10월 마커스 래넘 등이 공개한 방화벽 툴킷(FWTK)은 애플리케이션 계층 방화벽의 바탕이 되었습니다. 위키백과는 2012년 기준으로 차세대 방화벽이 웹 필터링, 침입 방지, TLS 검사까지 확장되었다고 정리합니다. 다만 해당 위키백과 문서에는 일부 내용이 검증되지 않았을 수 있다는 유지보수 안내가 붙어 있으므로, 이 연표는 대략적인 흐름을 보는 참고용으로만 읽어 주세요.

방식별 비교표

아래 표는 NIST SP 800-41 Rev.1의 2장 설명을 요약한 것입니다.

방식무엇을 보나강점한계
패킷 필터링 (스테이트리스)출발지·목적지 IP, 포트, 프로토콜 등 패킷 헤더단순하고 대부분의 라우터·운영체제에 내장세션 상태를 기억하지 않아 같은 세션의 여러 요청을 서로 연관짓지 못함
상태 추적 (스테이트풀)헤더 + 연결 상태 표(IP, 포트, TCP 연결 상태)연결 상태와 맞지 않는 패킷을 걸러냄애플리케이션 내용까지는 보지 못함
애플리케이션 방화벽상태 추적 + 애플리케이션 계층 프로토콜 분석(제조사에 따라 DPI라고도 부름)허용되지 않은 첨부 파일, 80번 포트로 위장한 메신저 등 식별처리 부담이 커지고, 암호화된 내용은 이해하지 못함
애플리케이션 프록시 게이트웨이두 호스트 사이의 직접 연결을 끊고 중계하며 내용을 검사일부 애플리케이션에서 더 높은 보안 수준 가능패킷을 깊이 읽는 만큼 느려 고대역폭·실시간 용도에는 부적합한 경우가 있음

참고로 NIST는 순수한 스테이트리스 패킷 필터링만 하는 제품은 오늘날 많지 않지만, 패킷 필터링은 대부분 현대 방화벽의 핵심에 들어 있다고 적습니다. 즉 "하나만 고르는" 구조가 아니라 위 기능들이 겹쳐 쌓여 있습니다.

규칙은 어떤 원칙으로 짜나: 기본 차단

NIST는 방화벽이 정책에서 명시적으로 허용되지 않은 인바운드·아웃바운드 트래픽을 모두 막아야 한다고 권고하며, 이를 deny by default라고 부릅니다. 변화가 빠른 호스트·프로토콜·애플리케이션 환경에서는 "금지한 것만 막는" 방식보다 "필요한 것만 여는" 방식이 더 안전하다는 설명입니다. TCP·UDP 인바운드에도 같은 원칙을 쓰되, 아웃바운드는 상대적으로 완화된 정책을 쓰는 경우가 많다고 덧붙입니다. 규칙의 평가 순서나 문법은 제품마다 다르므로 해당 제품 문서를 확인해야 합니다.

가상 예시: 작은 사무실의 규칙표

아래는 개념을 설명하기 위해 만든 가상 예시이며 실제 제품의 문법이 아닙니다. 사내에 웹 서버 한 대(내부 주소 192.0.2.10, 문서용 예약 주소 대역)가 있다고 가정합니다.

방향조건동작이유
인바운드목적지 192.0.2.10, TCP 443허용공개해야 하는 서비스만 명시적으로 열기
인바운드이미 맺어진 연결의 응답허용상태 추적이 있으면 별도 규칙 없이 처리
인바운드그 밖의 모든 트래픽차단기본 차단
아웃바운드업무상 필요한 목적지·프로토콜허용필요한 것만 열기, 감염 시 외부 통신 억제 효과

NAT와 방화벽은 같은 것일까: NIST의 정리

많은 사람이 "공유기의 NAT 덕분에 외부 접속이 막힌다"고 알고 있습니다. NIST SP 800-41 Rev.1의 3.2절은 이를 대중적인 오해로 규정하며 "NAT는 방화벽의 보안 기능에 속하지 않는다"고 적습니다. NAT가 주는 보안상 이점, 즉 외부 호스트가 내부 호스트에 먼저 접속하지 못하게 하는 효과는 스테이트풀 방화벽으로도 얻을 수 있고, 오히려 NAT에서 잘 동작하지 않는 프로토콜에 대한 영향도 줄일 수 있다는 것입니다. 다만 NIST는 NAT를 켜는 쪽이 정책을 올바르게 구성하는 것보다 쉬워서 보안 기능으로 오인되기 쉽다는 점도 함께 인정합니다. 가정용 공유기에서 NAT와 상태 추적이 한 장비 안에서 함께 동작하는 경우가 많지만, 개념상 둘은 분리해서 이해하는 것이 정확합니다. 포트포워딩이나 DMZ를 열면 해당 호스트는 그만큼 노출되므로 필요한 포트만 최소한으로 여는 것이 좋습니다.

실제 기록으로 보는 사례

사례 1: FTP가 방화벽 설정을 어렵게 하는 이유

NIST SP 800-41 Rev.1은 포트 규칙을 설명하면서 FTP가 최소 두 개의 포트를 쓰고 그중 하나는 예측하기 어렵다고 적습니다. 위키백과(FTP)에 따르면 능동 모드에서는 서버가 클라이언트로 되접속하는데 방화벽과 NAT가 이를 막는 경우가 많았고, 이를 개선한 패시브(수동) 모드가 RFC 1579(1994)에서 방화벽 친화적 방식으로 소개되었습니다. 교훈은 "허용할 포트 번호 하나만 열면 끝나는 프로토콜이 아니다"입니다. 프로토콜의 동작 방식을 모르고 규칙을 만들면 연결이 되다 말다 하는 현상으로 이어질 수 있습니다. FTP 자체의 차이는 FTP와 SFTP 차이 가이드에서 다룹니다.

사례 2: 암호화 트래픽 앞에서의 한계

NIST 2.3절은 방화벽이 이해하지 못하는 트래픽은 제대로 처리할 수 없다고 말합니다. IPsec, TLS, SSH 등으로 내용이 암호화되어 있거나 S/MIME·OpenPGP로 보호된 데이터는 읽을 수 없고, 알려지지 않은 터널링 방식(예: IPv4 안에 IPv6를 담는 여러 방식)도 해석하기 어렵습니다. 이런 경우 방화벽 규칙이 "이해하지 못한 트래픽"을 어떻게 다룰지를 결정하므로, 조직은 허가되지 않은 암호화 트래픽을 허용할지 막을지 정책으로 정해 두어야 한다고 NIST는 설명합니다. 특정 사건의 이름보다는 표준 문서가 명시한 구조적 한계라는 점이 중요합니다.

내 환경에서 점검해 보기

흔한 오해와 정정

한계와 더 알아볼 점

방화벽은 자신이 볼 수 있는 트래픽에만 효과적입니다. 암호화된 트래픽을 중간에서 복호화해 검사할지는 조직마다 정책 판단이 다릅니다. 또한 사용자가 직접 입력한 자격 증명(피싱)이나 허용된 경로를 통한 공격은 경계 장치만으로 막기 어렵기 때문에, 경계 안팎을 구분하지 않고 접근을 검증하는 접근이 논의됩니다. 이에 대해서는 제로 트러스트 가이드와 IDS/IPS 가이드를 함께 보면 좋습니다. 이 글은 일반 정보이며, 운영 중인 시스템의 정책 변경은 해당 장비 문서와 보안 담당자의 확인이 필요합니다.

윈도우 방화벽 설정 방법이 궁금하다면

내 PC의 호스트 기반 방화벽에서 특정 프로그램을 허용하는 방법이 궁금하다면윈도우 방화벽에서 프로그램 허용하는 방법을 참고해보세요.

홈 네트워크 보안을 더 강화하고 싶다면

방화벽 외에 공유기 보안 설정까지 함께 점검하고 싶다면홈 네트워크 보안 설정하는 방법도 확인해보세요. NAT 자체의 동작은 NAT 기초 가이드에서 볼 수 있습니다.

자주 묻는 질문

방화벽만 켜두면 백신 프로그램은 필요 없나요?

아닙니다. 방화벽은 네트워크 경계에서 트래픽을 걸러내는 역할이고, 백신은 이미 기기에 들어온 파일이나 실행 중인 프로그램의 악성 행위를 탐지합니다. 두 가지는 서로 다른 층위를 방어하므로 함께 사용하는 것이 안전합니다.

가정용 공유기의 방화벽 기능은 따로 켜야 하나요?

제품마다 다르므로 공유기 설명서와 관리 화면에서 확인해야 합니다. 가정용 공유기는 NAT와 연결 상태 추적이 함께 동작하는 경우가 많아 외부에서 먼저 시작한 접속을 대체로 막아 주지만, NIST는 NAT 자체를 보안 기능으로 보지 않습니다. 포트포워딩이나 DMZ를 열어 두면 해당 장치는 그만큼 노출되므로 주의가 필요합니다.

스테이트풀 방화벽과 패킷 필터링 방화벽의 가장 큰 차이는 무엇인가요?

NIST의 설명으로는 패킷 필터링이 각 패킷을 규칙에 대조하는 반면, 스테이트풀 방식은 연결을 상태 표에 기록하고 새 패킷이 그 연결의 예상 상태와 맞는지까지 확인합니다. 그래서 "이미 맺어진 연결의 일부인 척하는" 패킷을 가려낼 수 있습니다.

인바운드를 모두 막으면 인터넷 사용이 안 되지 않나요?

내가 먼저 시작한 연결(웹 접속 등)의 응답은 상태 추적 덕분에 허용됩니다. 막히는 것은 외부에서 먼저 시작하는 연결입니다. 서버를 운영하는 경우에만 해당 포트를 명시적으로 열면 됩니다.

ICMP(핑)까지 모두 막는 것이 좋은가요?

NIST는 외부에서 들어오는 핑이 내부 구조 파악에 쓰일 수 있어 막는 정책이 흔하지만, ICMP는 경로 MTU 탐색 등 성능과 진단에 필요한 유형도 있어 전면 차단은 문제를 일으킬 수 있다고 설명합니다. 필요한 유형만 허용하는 방식이 권장됩니다.