C++, CS

[Network] 방화벽이란? 트래픽 검사와 접근 제어 정리

dhlee-dev 2026. 6. 4. 19:10

이전에 TCP와 UDP, Socket 통신 흐름을 정리하면서
네트워크 통신은 IP 주소, 포트 번호, 프로토콜 등을 기준으로 이루어진다는 것을 알게 되었다.

그렇다면 네트워크를 통해 들어오고 나가는 데이터가 모두 허용되어야 할까?

실제로는 외부에서 들어오는 모든 요청을 그대로 허용하면
불필요한 접근이나 위험한 트래픽까지 내부 네트워크로 들어올 수 있다.

이런 트래픽을 검사하고, 보안 정책에 따라 허용하거나 차단하는 장치 또는 소프트웨어가 방화벽이다.

이번 글에서는 방화벽이 무엇인지, 네트워크 트래픽이란 무엇인지,
그리고 방화벽이 어떤 방식으로 트래픽을 검사하고 제어하는지 정리해보려고 한다.


방화벽이란?

방화벽은 네트워크 보안을 지키기 위해 사용되는 장치 또는 소프트웨어이다.

들어오거나 나가는 네트워크 트래픽을 검사하고, 정해진 보안 정책에 따라 허용하거나 차단한다.

보통 방화벽은 신뢰 수준이 다른 네트워크 사이에 위치한다.
예를 들어 신뢰 수준이 낮은 외부 네트워크에서 신뢰 수준이 높은 내부 네트워크로 들어오는 트래픽을 검사하고,
불필요하거나 위험한 접근을 막는 역할을 한다.

즉, 방화벽은 네트워크의 입구에서 어떤 통신을 허용하고 어떤 통신을 차단할지 판단하는 보안 장치라고 볼 수 있다.


네트워크 트래픽이란?

네트워크 트래픽은 네트워크를 통해 오고 가는 데이터 흐름 전체를 의미한다.
예를 들어 웹 사이트에 접속하거나, 게임 서버와 통신하거나, 파일을 다운로드할 때도 네트워크 트래픽이 발생한다.

방화벽은 이런 트래픽을 검사해서 정해진 조건에 맞는 통신만 허용하고, 위험하거나 불필요한 통신은 차단할 수 있다.


방화벽이 필요한 이유

네트워크에 연결된 컴퓨터나 서버는 외부와 데이터를 주고받을 수 있다.
하지만 모든 트래픽을 그대로 허용하면 허가되지 않은 접근이나 공격 시도도 내부로 들어올 수 있다.

예를 들어 외부에서 사용하지 않는 포트로 접근하거나,
허용되지 않은 IP에서 서버에 접속하려는 요청이 들어올 수 있다.

방화벽은 이런 접근을 검사하고 차단해서 내부 네트워크나 개별 컴퓨터를 보호한다.


방화벽의 주요 역할

방화벽의 주요 역할은 다음과 같다.

  • 트래픽 검사
  • 접근 제어
  • 악의적 접근 방지
  • 로깅 및 모니터링

트래픽 검사

방화벽은 네트워크로 들어오고 나가는 트래픽을 검사한다.

검사 범위는 방화벽의 종류나 설정에 따라 달라질 수 있다.
기본적으로는 IP 주소, 포트 번호, 프로토콜 같은 정보를 기준으로 검사할 수 있다.

더 깊게 검사하는 경우에는 응용 계층의 데이터까지 확인할 수도 있다.

OSI 7계층 기준으로 보면 방화벽은 보통 L3, L4 수준의 정보를 기준으로 트래픽을 검사할 수 있고,
더 깊은 검사를 수행하는 경우 L7 수준의 데이터까지 확인할 수 있다.


접근 제어

방화벽은 정해진 보안 정책에 따라 트래픽을 허용하거나 차단한다.
예를 들어 다음과 같은 기준을 사용할 수 있다.

  • IP 주소
  • 포트 번호
  • 프로토콜
  • 연결 상태
  • 응용 프로토콜

예를 들어 특정 서버에서 80번 포트와 443번 포트만 열어두고, 나머지 포트로 들어오는 요청은 차단할 수 있다.
또는 특정 IP 대역에서 들어오는 요청만 허용하고, 나머지는 차단하는 방식도 가능하다.


악의적 접근 방지

방화벽은 허가되지 않은 접근이나 의심스러운 네트워크 트래픽을 차단해 내부 네트워크를 보호한다.

예를 들어 사용하지 않는 포트로 반복적으로 접근하는 요청이나,
내부 네트워크로 들어오면 안 되는 트래픽을 차단할 수 있다.

이를 통해 내부 시스템이 불필요하게 외부에 노출되는 것을 줄일 수 있다.


로깅 및 모니터링

방화벽은 허용되거나 차단된 트래픽의 기록을 남길 수 있다.
이 기록은 나중에 보안 분석이나 문제 추적에 활용할 수 있다.

예를 들어 특정 IP에서 계속 차단된 요청이 발생한다면, 해당 IP가 비정상적인 접근을 시도하고 있는지 확인할 수 있다.

즉, 방화벽은 단순히 트래픽을 막는 역할뿐만 아니라 네트워크 상태를 관찰하고 분석하는 데도 도움을 줄 수 있다.


방화벽의 작동 방식

방화벽의 대표적인 작동 방식은 다음과 같다.

  • 패킷 필터링
  • 상태 기반 검사
  • 애플리케이션 / 프록시 방화벽

패킷 필터링

패킷 필터링은 IP 주소, 포트 번호, 프로토콜 등을 기준으로 트래픽을 허용하거나 차단하는 방식이다.
가장 기본적인 방화벽 방식이라고 볼 수 있다.

예를 들어 다음과 같은 규칙을 만들 수 있다.

외부에서 들어오는 22번 포트 접근 차단
특정 IP에서 들어오는 443번 포트 접근 허용
UDP 트래픽 일부 차단

패킷 필터링은 비교적 단순하고 빠르지만,
패킷의 내용이나 실제 응용 계층 데이터까지 깊게 분석하기는 어렵다.


상태 기반 검사

상태 기반 검사는 연결 상태를 기억해서 트래픽을 판단하는 방식이다.
단순히 패킷 하나만 보는 것이 아니라 이 트래픽이 기존에 허용된 연결의 일부인지 확인한다.

예를 들어 내부에서 외부 서버로 TCP 연결을 만들었다면, 그 연결에 대한 응답 트래픽은 허용할 수 있다.
반대로 기존에 허용된 연결과 관계없는 외부 요청은 차단할 수 있다.

즉, 상태 기반 검사는 현재 패킷이 정상적인 연결 흐름에 속하는지를 함께 판단하는 방식이다.


애플리케이션 방화벽과 프록시 방화벽

애플리케이션 방화벽은 패킷의 IP 주소나 포트 번호만 보는 것이 아니라,
HTTP, DNS, FTP 같은 응용 계층 데이터를 분석해 트래픽을 허용하거나 차단하는 방화벽이다.

프록시 방화벽은 클라이언트와 서버 사이에서 중계 역할을 하며 트래픽을 검사하는 방식이다.
프록시 방식으로 동작하면 응용 계층 데이터를 직접 확인할 수 있기 때문에,
애플리케이션 방화벽의 역할을 수행할 수 있다.

예를 들어 HTTP 요청의 URL, 헤더, 요청 방식 같은 정보를 보고,
정해진 정책에 따라 특정 요청을 허용하거나 차단할 수 있다.

이 방식은 더 정밀한 제어와 보안을 제공할 수 있지만,
패킷 필터링이나 상태 기반 검사보다 처리 비용이 커질 수 있다.


방화벽의 종류

방화벽은 형태에 따라 크게 다음과 같이 나눌 수 있다.

  • 하드웨어 방화벽
  • 소프트웨어 방화벽

하드웨어 방화벽

하드웨어 방화벽은 독립된 물리 장비로 구성된 방화벽이다.

보통 회사나 기관의 네트워크 입구에 배치되어 내부 네트워크로 들어오고 나가는 트래픽을 관리한다.
기업용 방화벽 장비나 네트워크 보안 장비가 여기에 해당한다.

하드웨어 방화벽은 여러 장비가 사용하는 네트워크 전체를 보호하는 데 적합하다.


소프트웨어 방화벽

소프트웨어 방화벽은 운영체제나 개별 컴퓨터에 설치되어 동작하는 방화벽이다.
Windows 방화벽이나 리눅스의 iptables 같은 것이 여기에 해당한다.

소프트웨어 방화벽은 특정 컴퓨터 단위로 들어오고 나가는 트래픽을 제어하는 데 사용된다.

즉, 하드웨어 방화벽이 네트워크 전체의 입구를 보호하는 역할이라면,
소프트웨어 방화벽은 개별 컴퓨터를 보호하는 역할에 가깝다.


정리

방화벽은 네트워크 보안을 위해 들어오거나 나가는 트래픽을 검사하고 제어하는 장치 또는 소프트웨어이다.
네트워크 트래픽은 네트워크를 통해 오고 가는 데이터 흐름 전체를 의미한다.

방화벽은 IP 주소, 포트 번호, 프로토콜, 연결 상태, 응용 프로토콜 등을 기준으로
트래픽을 허용하거나 차단할 수 있다.

대표적인 작동 방식에는 패킷 필터링, 상태 기반 검사, 애플리케이션 / 프록시 방화벽이 있다.

패킷 필터링은 IP 주소, 포트 번호, 프로토콜을 기준으로 트래픽을 검사하고,
상태 기반 검사는 연결 상태를 기억해 정상적인 흐름의 트래픽인지 확인한다.

애플리케이션 / 프록시 방화벽은 응용 계층의 데이터까지 분석해 더 정밀한 제어를 할 수 있다.

방화벽은 형태에 따라 하드웨어 방화벽과 소프트웨어 방화벽으로 나눌 수 있다.

하드웨어 방화벽은 네트워크 입구에서 전체 네트워크를 보호하는 데 사용되고,
소프트웨어 방화벽은 개별 컴퓨터에서 트래픽을 제어하는 데 사용된다.


마무리

이번에 방화벽에 대해 정리하면서 네트워크 통신에서 데이터를 주고받는 것만큼,
어떤 트래픽을 허용하고 차단할지도 중요하다는 것을 알게 되었다.

TCP와 UDP, Socket을 공부할 때는 IP 주소, 포트 번호, 프로토콜을 기준으로 통신 대상을 구분하는 것에 집중했다.
방화벽은 이 정보를 바탕으로 트래픽을 검사하고 보안 정책에 따라 네트워크 접근을 허용하거나 차단한다.

특히 게임이나 서버 프로그램을 만들 때
필요한 포트와 프로토콜이 방화벽에서 차단되어 있으면 정상적으로 연결되지 않을 수 있다.

앞으로 네트워크 문제를 확인할 때는 코드나 서버 상태뿐만 아니라,
방화벽 설정이나 포트 허용 여부도 함께 확인해야겠다.