보안
Captive Portal
Captive Portal
Captive Portal은 네트워크에 접속한 사용자를 인증 및 동의 페이지로 강제 유도한 뒤, 조건을 충족해야 실제 인터넷 접근을 허용하는 웹 기반 접근 제어 방식이다. 카페, 호텔, 공항의 게스트 Wi-Fi에 연결했을 때 자동으로 뜨는 로그인/약관 동의 화면이 대표적이다.
802.1X나 MAB가 접속 시점에 단말 차원에서 인증한다면, Captive Portal은 사용자가 브라우저에서 직접 로그인하거나 동의하게 한다. 그래서 별도 클라이언트나 사전 등록이 없어도 되는 게스트와 방문자 접속에 주로 쓰인다.
동작 흐름
핵심은 인증 전 단말을 제한된 상태에 두고, HTTP 요청을 가로채 포털 페이지로 리다이렉트하는 것이다.
[단말] --웹 접속 시도--> [게이트웨이/컨트롤러] --포털로 리다이렉트--> [로그인/동의 페이지]
(미인증 상태) HTTP 가로채기 인증 후 접근 허용
- 단말이 Wi-Fi에 연결되면 DHCP로 IP는 받지만, 게이트웨이는 이 단말을 미인증 상태로 두고 외부 트래픽을 차단한다.
- 사용자가 브라우저로 아무 웹사이트에 접속을 시도한다.
- 게이트웨이/무선 컨트롤러가 이 HTTP 요청을 가로채 포털 페이지로 리다이렉트한다.
- 사용자가 페이지에서 로그인하거나 약관에 동의한다.
- 인증이 확인되면 게이트웨이가 해당 단말(보통 MAC/IP 기준)을 허용 목록에 올리고, 이후 트래픽을 통과시킨다.
미인증 단말을 잡아두는 방법
단말은 연결 직후 스스로 인터넷 연결 여부를 확인하려 특정 URL을 조회한다. Captive Portal은 이 요청까지 가로채 포털로 돌려보내며, 운영체제는 "로그인이 필요한 네트워크"로 인식해 포털 화면을 자동으로 띄운다.
HTTPS 사이트는 인증서 불일치로 리다이렉트가 매끄럽지 않기 때문에, 사용자가 HTTPS 사이트에 접속하기 전에 OS가 자동으로 보내는 감지 요청(평문 HTTP)을 가로채 포털을 먼저 띄우는 방식이 일반적이다.
인증 방식
포털 페이지에서 요구하는 조건은 운영 목적에 따라 다르다.
- 약관 동의만(Click-through) — 로그인 없이 동의 버튼만으로 허용. 공공 Wi-Fi에서 흔하다.
- 계정 로그인 — 사번/사원 계정, 소셜 로그인 등으로 인증. 사내 게스트망에 쓰인다.
- 일회용 코드(Voucher/SMS/OTP) — 프런트에서 발급한 코드나 문자로 받은 코드를 입력. 방문자 임시 접속에 적합하다.
- 스폰서 승인(Sponsor Approval) — 방문자가 요청하면 담당 직원이 승인해야 접속을 여는 방식.
계정 로그인 방식은 뒷단에서 RADIUS 서버로 자격 증명을 검증하는 경우가 많아, 802.1X나 MAB와 같은 인증 인프라를 공유하기도 한다.
다른 인증 방식과의 비교
세 방식 모두 접근 제어(NAC)이지만 인증 계층과 대상이 다르다.
| 구분 | 802.1X | MAB | Captive Portal |
|---|---|---|---|
| 인증 계층 | L2 (포트 인증) | L2 (포트 인증) | L3 이상 (웹) |
| 자격 증명 | 사용자 계정/인증서 | MAC 주소 | 웹 로그인/동의 |
| 단말 요건 | Supplicant 필요 | 불필요 | 웹 브라우저만 있으면 됨 |
| 인증 시점 | 접속 즉시 | 접속 즉시 | 브라우저 첫 접속 |
| 주 대상 | 내부 직원 단말 | 프린터, IoT | 게스트, 방문자 |
운영 시 고려사항
- 사전 인증 허용 대상 — 포털, DNS, 인증 서버로 가는 트래픽은 미인증 상태에서도 열려 있어야 로그인 페이지가 뜬다. 이 경로를 ACL로 명시적으로 허용한다.
- 게스트망 분리 — 게스트 트래픽은 내부망과 분리된 VLAN에 두고, 인증 후에도 내부 자원 접근은 차단한다.
- 세션 만료 정책 — 인증 유지 시간(재로그인 주기)을 정해 장기 무단 사용을 막는다. MAC 주소로 세션을 유지하는 방식은 위조 가능성도 함께 고려한다.
- HTTPS 리다이렉트 한계 — 최신 브라우저나 OS는 HTTPS 사용과 인증서 검증으로 강제 리다이렉트를 어렵게 만든다. OS의 Captive Portal 감지 기능에 맞춰 구성하는 것이 안정적이다.