* 이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
(pfSense 홈랩 방화벽 ㉓)
카페 와이파이에 붙으면 뜨는 그 로그인/약관 페이지, 그게 Captive Portal이다. pfSense는 이걸 기본 제공한다. 게스트 VLAN에 붙여 두면, 방문자는 인증을 거쳐야 인터넷을 쓰고, 그 전엔 아무 데도 못 간다.
무엇을 할 수 있나
- 인증 요구 — 아이디/비번, 바우처(1회용 코드), 또는 단순 약관 동의.
- 시간·대역 제한 — 세션당 사용 시간이나 속도를 제한.
- 접속 현황 — 지금 누가 몇 명 붙어 있는지 확인.
동작 원리는 간단하다. 포털이 걸린 인터페이스에 붙은 기기는, 인증 전까지 모든 웹 요청이 로그인 페이지로 강제 리다이렉트된다. 인증을 통과하면 그 기기의 MAC/IP가 '허용됨'으로 등록돼 정상 통신이 열린다.
설정 흐름
Services > Captive Portal에서 새 포털 존을 만들고, 대상 인터페이스(게스트 VLAN)를 지정한다. 인증 방식을 고르고(가장 간단한 건 '클릭해서 동의'), 필요하면 로그인 페이지 HTML을 커스터마이즈한다. 바우처를 쓰면 카페처럼 1회용 코드를 뽑아 나눠 줄 수 있다.
직접 해보기
- 게스트용 인터페이스(랩에선 여분 VLAN/인터페이스)에 Captive Portal 존을 만든다.
- 인증 방식을 '약관 동의' 정도로 켠다.
- 그 망에 붙은 클라이언트가 로그인 페이지로 리다이렉트되는지 확인한다.
✅ 확인 — 게스트망 기기가 인증 전엔 포털 페이지로 튕기고, 통과 후 인터넷이 되면 성공이다. 포털이 '인증 전 모든 요청을 리다이렉트'하는 원리를 설명해 보자.
흔히 막히는 지점 — 요즘 사이트는 대부분 HTTPS라, Captive Portal이 인증 전 HTTPS 요청을 가로채 로그인 페이지로 리다이렉트하기가 까다롭다(인증서 경고가 뜬다). 그래서 기기들은 보통 captive.apple.com 같은 HTTP 감지 URL로 포털을 띄운다. 포털이 안 뜨면 임의의 HTTP 사이트를 한 번 열어보게 안내하자.
인증 방식 고르기 — 홈랩엔 바우처
인증은 세 갈래다. 아이디/비번, 바우처(1회용 코드), 단순 약관 동의. 가정·에어비앤비·소규모 매장이라면 바우처가 제일 실용적이다. 코드를 미리 뽑아 손님에게 건네면 와이파이 비밀번호를 공유하거나 주기적으로 바꿀 필요가 없고, 코드마다 유효기간·사용 시간을 따로 걸 수 있다. 계정 기반이 필요하면 RADIUS를 붙일 수 있지만 홈랩엔 대개 과하다.
HTTPS 시대의 포털 — 인증서 경고를 피하려면
요즘 기기는 캡티브 포털을 스스로 감지한다. 애플은 captive.apple.com, 안드로이드는 connectivitycheck.gstatic.com 같은 주소를 찔러보고, 응답이 이상하면 “로그인이 필요하다”며 포털 창을 자동으로 띄운다. 이 덕에 와이파이에 붙으면 로그인 페이지가 저절로 뜬다. 다만 포털에 HTTPS 리디렉션을 켜면 인증서 경고가 나기 쉽다 — 기기가 접속하려던 주소와 포털 인증서의 이름이 안 맞기 때문이다. 홈랩에선 HTTP 리디렉션으로 두거나, 포털 호스트네임에 맞는 정식 인증서를 붙이는 게 깔끔하다.
로그인 창을 못 띄우는 기기 — MAC 우회
크롬캐스트·프린터·IoT 센서처럼 브라우저가 없는 기기는 포털에 걸리면 그냥 먹통이 된다. 로그인 창을 띄울 방법이 없어서다. 이런 기기는 Allowed MAC Addresses에 등록해 인증 없이 통과시킨다. 반대로 약관·결제 페이지처럼 인증 전에도 열려 있어야 할 주소는 Allowed Hostnames/IP에 넣는다.
가장 중요한 것 — 게스트를 내부망과 격리하라
놓치기 쉬운 보안 핵심이다. 캡티브 포털은 ‘인증‘이지 ‘격리‘가 아니다. 손님이 로그인했다고 내 NAS·CCTV·pfSense 관리 화면까지 봐도 되는 건 아니다. 게스트를 진짜로 막으려면 게스트 VLAN(8편)에서 내부 LAN과 방화벽 관리 대역으로 가는 트래픽을 방화벽 규칙으로 차단해야 한다. ‘인터넷만 열고 나머지는 다 막기’ — 이게 게스트망 규칙의 기본형이다.
포털로 ‘누가 쓰는지’를 통제하고 VLAN·규칙으로 ‘어디까지 가는지’를 막으면, 손님 와이파이를 안심하고 열어줄 수 있다.
여기까지가 보안·서비스 모듈이다. 다음 편부터는 운영·심화로 넘어간다. 먼저, 내부 여러 서비스를 도메인으로 공개하는 리버스 프록시(HAProxy)다.
자주 묻는 질문 (FAQ)
Captive Portal이 뭔가요?
게스트 와이파이 접속 시 로그인·약관 동의 페이지를 띄우는 기능입니다. 카페·사무실 게스트망에 흔히 씁니다.
게스트에게 시간·속도 제한을 걸 수 있나요?
네, 세션 시간·대역폭 제한, 바우처(쿠폰) 인증 등을 설정할 수 있습니다.

답글 남기기