오늘은 방화벽에 대해 공부해보고 실습해보도록 하겠습니다.
방화벽은 미리 정의된 보안 규칙을 기반으로 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크 사이의 데이터 트래픽을 모니터링하고 제어하여, 악성 트래픽을 차단하고, 네트워크를 보호하는 보안 솔루션입니다.
방화벽은 설치 위치에 따라 하드웨어 형태로 동작하는 것도 있고, 소프트웨어 형태로 동작하는 것도 있습니다.

다 생략하고 방화벽만 보겠습니다.
방화벽은 개인 PC 혹은 서버와 광역 망인 WAN 사이에서의 패킷을 필터링 합니다
하드웨어 방화벽의 경우에는 다음과 같이 생겼는데.

보안이 중요한 기업에서는 라우터의 앞이나 뒤에 배치하여 패킷을 검사합니다.
저번의 IDS/IPS할때도 NIDS NIPS가 있던것처럼 방화벽도 Host-based로 설치 가능합니다.
ufw나 iptables가 여기에 해당합니다.

윈도우에도 기본적으로 방화벽이 설치되어 있는데, 방화벽의 종류에 대해 살펴보면서 하나씩 확인해보겠습니다.
먼저 방화벽은 분류 기준에 따라 여러 종류로 나뉩니다.
저번에 IDS,IPS했던 것처럼 Network 기반이냐 혹은 Host 기반이냐에 따라 2가지로 나눠지고, 기술도 세대별로 다릅니다.
Network&Host 분류부터 살펴보겠습니다.
Network 기반 방화벽입니다.

네트워크 방화벽의 경우 일반적으로 라우터와 스위치 사이에 존재하며, L3~L4 레이어에 존재합니다.
WAN에서 들어오는 모든 패킷에 대한 필터링을 수행합니다.
조금 확장된 구성에서는 DMZ라는 외부 노출 서버를 두고, 그 앞뒤로 방화벽이 존재하기도 합니다.

외부망에서 들어오는 패킷이 CDN이나 CloudFlare에서 WAF나 DDOS 방어에 막히고, 외부 라우터를 거쳐 방화벽에서 1차로 필터링됩니다. 그 이후 DMZ 영역 ( 외부망과 내부망 사이의 완충 지대 ) 이후 방화벽에서 2차로 필터링을 진행해서 내부망을 보호합니다.
Host 기반 방화벽입니다.

PC안에서 설치되어서 커널 안의 netfilter에서 동작합니다. 이때 내부는 동작기준에 따라 조금씩 다르지만 보통 승인/폐기/거절 중 하나를 선택하여, 승인된 패킷만 프로세스에 전달합니다.
다음은 세대별 분류입니다. 세대별 분류는 방화벽 기술 발전에 따라 방식이 바뀌기에 그 기준으로 나눠집니다.
- 1세대 - 패킷 필터링 : IP,Port,프로토콜만 보고 판단합니다. 각 패킷을 독립적으로 처리합니다 (ex: 초기 iptables)
- 2세대 - Stateful 검사 : 연결 상태를 추적하고, ESTABLISHED, NEW, RELATED등 상태 기반 필터링을 진행합니다. ( ufw, iptables)
- 3세대 애플리케이션 레이어 : OSI 7계층까지 분석합니다. HTTP 내용, DNS 쿼리, 사용자 식별 까지 가능합니다. (AWS WAF)
이런 방화벽 기술에 대해 알아보기 전에 먼저 서버와 클라이언트가 통신하는 방식에 대해 알아야 합니다.

서버와 클라이언트는 처음 연결을 하기 전 3-way handshake라는 과정을 거칩니다.
처음 client측에서 SYN을 보내고, 서버가 SYN-ACK를 보내면, client가 그때서야 ACK를 보내고 연결이 수립됩니다.
그 후의 데이터는 ACK와 데이터를 같이 주고 받습니다.
1세대 방화벽 방식의 stateless 방식은, 이런 SYN, ACK 연결과정을 확인하지 않고, 각각의 패킷만 확인하기 때문에, 첫 패킷으로 ACK 패킷이 오더라도 Source IP(출발주소)와 Dst IP(목적지)만 이상이 없으면 패킷을 바로 통과시킵니다.
2세대 방화벽은 커널에서 모든 연결을 테이블에 기록하고 관리합니다.

여기서 IP에 대한 state에 따라서 방화벽의 Rule을 다르게 적용하는 방식입니다.
근데 이러면 이거 무조건 2세대 방화벽을 써야되겠네? 싶을 수도 있습니다.
아이러니하게도 1세대만이 가지는 장점이 있습니다.
먼저 속도입니다. 2세대는 연결 테이블을 읽고 쓰는 작업이 추가되기에, 패킷이 많이 들어오는 상황에서는 속도에서 차이가 많이 발생할 수 있습니다.

2번째로 DDOS 공격에 대한 강점입니다.
2세대 방화벽에 DDOS 공격으로 SYN 수백만 개 전송시, 전부 테이블에 등록하기에 table이 꽉차서 다른 정상 이용자가 등록을 받을 수가 없습니다.
1세대오 SYN 난사 공격에 취약하긴 하지만, 2세대 방화벽에서만 나타나는 공격 벡터가 있다는 단점이 있습니다.
따라서 용도에 따라 사용하지만, 일반적으론 아까 그림처럼 방화벽을 여러개 세워서 계층에 맞게 차단합니다.
3세대 방화벽은 패킷의 내용, 쿼리까지 검사합니다. 확실히 방화벽에 따라 무거워지는게 느껴지시나요?
3세대 방화벽을 NGFW라고도 합니다. New Generation Firewall의 약자인데 좀 MZ 스럽네요
WAF도 마찬가지로 3세대 방화벽의 기술을 쓰지만 NGFW에 포함되진 않고 보호 범위와 목적이 조금 다릅니다.

3세대 방화벽을 보면 HTTPS 패킷이 오면 그 암호화된 패킷을 복호화해서, 세부 내용을 검사한 뒤, 악성 payload가 없으면 다시 암호화를 해서 서버로 보냅니다. 이 과정에서 방화벽에서 클라이언트로 인증서를 보내기 때문에 client 입장에서는 방화벽이 서버처럼 느껴질 수 있습니다.
또한 3세대 방화벽은 IPS기능을 어느정도 내장하고 있기에, 새로운 CVE를 데이터베이스에 업데이트해서 대응합니다.
당연히도 매우매우 무겁습니다. 이런 패킷 검사에 상당한 자원을 사용하는 경우는 검사하는 패킷을 최대한 줄여야 합니다.
그래서 보통 앞단에 1세대 방화벽으로 대용량 트래픽을 1차적으로 걸러내고 내부망과의 경계에 방화벽을 설치하는 경우가 많습니다(2세대,3세대 통합하여 사용)

보통 하드웨어 장비 형태로 존재하는데, 이런 경우 일반적인 CPU 대신 전용 칩을 사용해서 부하를 줄인다고 합니다.
NGFW와는 별개로 WAF는 목적성이 조금 다릅니다. WAF는 HTTP/HTTPS 패킷에 대해서 특화해서 차단합니다.
NGFW는 L3~L7계층을 전부 본다면 WAF는 L7계층의 HTTP 상세 내용만 확인합니다. 그렇기에 대부분은 소프트웨어/클라우드형이 매우 많습니다.

aws에서도 aws WAF를 지원하는데, 저는 아쉽게도 free tier로 이용중이라 사용이 안되네요.
이 정도면 크게 어려운 내용 없이 방화벽에 이해가 됐을거라 생각합니다. 이제 실습을 진행해보겠습니다.
실습
먼저 방화벽을 설치해보겠습니다. 방화벽도 많은 종류가 있는데, 하드웨어 방화벽 제외 소프트웨어 방화벽중 설치 가능한 제품을 찾아봤습니다.
일단 Linux에서 설치할 수 있는 방화벽은 대표적으로 UFW랑 iptables입니다.
추가로 저번에 xss 원데이 분석을 하면서 pfsense를 설치했었습니다.

https://poiri3r.tistory.com/111
[One-day] CVE-2024-46538 취약점 분석
새로운 카테고리로 원데이 취약점 분석을 가져왔습니다.지금부터 하나의 취약점에 대해 공부를 하면, 관련 취약점 관련해서 최신에 발생했던 취약점 사례들을 살펴보면서 취약점이 어떻게 실
poiri3r.tistory.com
그때는 그냥 방화벽이구나 했는데, 해당 OS가 네트워크 기반 방화벽 역할을 수행하는 방화벽이라고 합니다.
비싼 네트워크 방화벽 하드웨어 장비 대신 pc에 해당 OS를 설치해서 대체한다고 하네요. 이건 나중에 제대로 구성을 해볼 때 참고해서 해봐야 할 것 같습니다. 2세대 방화벽이라고 하네요
일단 linux 서버에서 설치할 수 있는 방화벽중 설정이 쉬운 ufw를 먼저 설치해보겠습니다.
ufw는 iptables처럼 일일히 Rule을 설치할 필요가 없고 이미 ubuntu에 내장되어 있기에 설치가 쉽습니다.
sudo ufw active로 확인해보겠습니다.

먼저 방화벽을 키기 전에 기본적인 Rule만 추가해줍니다
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

그 후 sudo ufw enable로 활성화 시켜줍니다

다시 sudo ufw status를 확인해주면

근데 차단 되는걸 실습을 해봐야 하니 http 포트를 꺼보겠습니다.
sudo ufw deny 80/tcp를 해주겠습니다


이렇게 http로 접근하면 차단이 됩니다.
로그 기능을 켜놓고 확인해보면

이렇게 UFW BLOCK까지 확인 가능합니다.
다시 허용을 해준 뒤 접속하면

접속이 가능합니다.
이상으로 방화벽에 및 ufw 실습에 대한 공부를 마치겠습니다.
읽어주셔서 감사합니다!!
'취약점분석 (Blue Team) > Network' 카테고리의 다른 글
| [Network] Wazuh 룰 설정 및 모니터링 (0) | 2026.03.23 |
|---|---|
| [Network] SIEM & Wazuh 설치 실습 (0) | 2026.03.22 |
| [Network] 3/16일 IDS 동작 분석 및 규칙 변경 (0) | 2026.03.16 |
| [Network] IDS,IPS 침입 탐지/방지 시스템 (CrowdSec 설치) (0) | 2026.03.15 |
| [Network] Hipervisor & VPS ( Virtual Private Server ) (0) | 2026.03.13 |