* 이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
(pfSense 홈랩 방화벽 ⑩)
방화벽 규칙을 처음 만들면 십중팔구 순서나 방향 때문에 한 번은 헤맨다. 나도 그랬다. 그런데 원리 세 가지만 잡으면 이후가 전부 쉬워진다. 규칙을 만들기 전에 이 편에서 '어떻게 도는지'부터 확실히 잡자.
규칙의 3원칙
- 인터페이스별로 적용된다 — LAN 규칙, WAN 규칙이 따로 있다. 규칙은 그 인터페이스로 들어오는 트래픽에 걸린다.
- 위에서 아래로, 첫 매칭에서 멈춘다 — 맨 위 규칙부터 검사해 처음 맞는 규칙 하나로 결정하고 끝낸다(first match wins). 그래서 순서가 곧 정책이다.
- 기본은 차단 — 어떤 규칙에도 안 걸리면 막는다. WAN은 그래서 아무것도 안 열면 다 막힌다.
graph TD
A[패킷 도착] --> R1{규칙 1 매칭?}
R1 -->|예| D1[허용/차단 후 종료]
R1 -->|아니오| R2{규칙 2 매칭?}
R2 -->|예| D2[허용/차단 후 종료]
R2 -->|아니오| DEF[기본 차단]
stateful — 상태를 기억한다
pfSense는 stateful 방화벽이다. 어떤 연결을 한 번 허용하면, 그 연결의 응답은 규칙을 또 만들 필요 없이 자동으로 통과시킨다. 상태 테이블에 '이 연결은 허용됨'이라고 적어 두기 때문이다. 그래서 LAN에서 나가는 걸 허용하면, 웹서버가 돌려주는 응답은 알아서 되돌아온다. 규칙은 '나가는 방향' 하나만 신경 쓰면 되는 이유다.
| 규칙 요소 | 의미 |
|---|---|
| Action | 허용(Pass)/차단(Block)/거부(Reject) |
| Interface | 어느 인터페이스로 들어오는 트래픽인가 |
| Source / Destination | 출발지 / 목적지 (IP·네트워크·Alias) |
| Port | 목적지 포트 (예: 80, 443) |
직접 해보기 — 규칙과 상태 관찰
- Firewall > Rules > LAN에서 기본 'Default allow LAN to any' 규칙을 확인한다.
- 클라이언트로 웹서핑을 하며 Diagnostics > States에서 상태 테이블이 채워지는 걸 본다.
- 규칙 순서를 위아래로 바꿔 보며 '첫 매칭'의 의미를 감으로 익힌다(테스트 후 되돌리기).
✅ 확인 — '첫 매칭에서 멈춘다'와 'stateful'을 각각 한 줄로 설명할 수 있으면 이 편은 소화한 것이다. 9편의 라우팅과 헷갈리지 않는지도 점검하자.
규칙 하나를 뜯어보기 — 무엇을 채우나
규칙 편집 화면에서 채우는 핵심은 여섯이다. Action(동작), Interface, Protocol, Source(출발지), Destination(목적지)+Port, 그리고 Description. 특히 Action의 block과 reject 차이를 알아두면 좋다.
| Action | 동작 | 언제 |
|---|---|---|
| pass | 통과 | 허용할 트래픽 |
| block | 조용히 버림(무응답) | 외부(WAN) — 스캐너에게 정보 안 줌 |
| reject | ‘거절’ 응답을 보냄 | 내부(LAN) — 앱이 빨리 실패하게 |
순서가 정책이다 — 가장 흔한 실수
first-match(첫 매칭에서 멈춤)라서, 넓은 허용 규칙을 위에 두고 좁은 차단을 아래 두면 그 차단은 영영 안 걸린다. 규칙은 ‘구체적인(좁은) 것을 위로, 일반적인(넓은) 것을 아래로‘가 원칙이다. 예를 들어 ‘이 IP만 차단’은 ‘LAN→any 허용’보다 반드시 위에 있어야 한다. 규칙이 안 먹으면 열에 아홉은 순서 문제다.
Alias로 규칙을 읽기 쉽게
IP·포트를 규칙에 직접 박지 말고 Alias(13편)로 이름을 붙이면, 규칙이 ‘Servers · HTTP 허용’처럼 말로 읽힌다. 대상이 늘어나도 Alias만 고치면 돼서 규칙 자체는 손대지 않는다. 규칙 수가 많아질수록 Alias가 관리의 핵심이 된다.
로그로 확인하는 습관
규칙마다 Log 체크박스가 있다. 켜면 그 규칙에 걸린 트래픽이 Status > System Logs > Firewall에 남는다. ‘왜 막혔지/왜 통했지’를 추측하지 말고 로그로 본다. 특히 맨 아래 기본 차단에 로그를 켜두면 무엇이 막히고 있는지가 전부 보여서, 규칙을 다듬는 데 큰 도움이 된다. 다음 편은 이 규칙을 깔끔하게 해주는 Alias다.
원리를 잡았으니, 다음 편에서 드디어 첫 방화벽 규칙을 직접 만든다. 특정 기기를 막는 것부터 시작한다.
자주 묻는 질문 (FAQ)
방화벽 규칙은 어떤 순서로 적용되나요?
위에서 아래로 검사해 처음 일치하는 규칙에서 멈춥니다(first-match). 그래서 규칙 순서가 매우 중요합니다.
규칙은 어느 인터페이스에 거나요?
트래픽이 들어오는(inbound) 인터페이스에 겁니다. 내부에서 나가는 트래픽은 LAN 탭에 규칙을 만듭니다.

답글 남기기