[pfSense] 10. 원리 : pfSense 방화벽 규칙 동작 원리 완전 이해

pfSense 홈랩 방화벽 10편 - 규칙은 어떻게 도나

작성자

카테고리:

* 이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

(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 탭에 규칙을 만듭니다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다