Chuyên mục
Network

pfSense Lab – [Phần 7] Thiết lập Captive Portal trên pfSense

[Phần 7] của series pfSense Lab sẽ hướng dẫn bạn sử dụng một trong những tính năng hấp dẫn nhất của pfSense: Captive Portal – rất quen thuộc trong Wifi Marketing.

1. Captive Portal là gì?

Captive Portal là một tính năng của pfSense yêu cầu người dùng phải xác thực tài khoản trước khi truy cập vào hệ thống mạng. Người dùng sẽ được chuyển hướng về 1 trang web trung gian và phải đăng nhập bằng tài khoản/mật khẩu, bằng mã voucher, hoặc chỉ cần bấm vào nút Đăng nhập, sau đó mới có thể truy cập vào hệ thống mạng (thường là truy cập Internet).

Tính năng này thường được sử dụng phổ biến trong ngành du lịch – nhà hàng – khách sạn, nhằm mục đích Marketing quảng cáo, hoặc trong văn phòng, cửa hàng bán lẻ nhằm hạn chế truy cập trái phép.

2. Kích hoạt Captive Portal

Truy cập vào mục Captive Portal trong menu Services của pfSense. Sau đó bấm vào nút Add để tạo Captive Portal Zone.

Nhập vào tên (Zone name) và chú thích (Zone description). Bấm Save & Continue

Bấm chọn vào ô Enable Captive Portal để kích hoạt.

3. Cấu hình Captive Portal

Sau khi bấm kích hoạt Captive Portal, trang cấu hình sẽ hiện ra yêu cầu bạn tuỳ chỉnh thông số. Dưới đây là giải thích các thông số quan trọng:

  • Interfaces: chọn hệ thống mạng nội bộ bạn muốn áp dụng Captive Portal. Trong điều kiện thực tế, bạn nên tạo 1 VLAN riêng biệt để dùng cho Captive Portal. Mình chọn LAN cho đơn giản.
  • Maximum Concurrent connections: giới hạn số lượt truy cập cùng lúc từ 1 IP, không phải giối hạn số lượng người dùng.
  • Idle timeout (Minutes): tự động ngắt kết nối sau khoảng thời gian không hoạt động.
  • After authentication Redirection URL: tự động chuyển hướng về địa chỉ này sau khi đăng nhập thành công. Mục này thường được thiết lập nếu bạn muốn quảng cáo website cho tất cả người dùng truy cập vào mạng.
  • Concurrent User logins: quy định số lượng truy cập trên mỗi tài khoản
    • Disabled: chỉ cho phép 1 lượt đăng nhập trên mỗi tài khoản / voucher
    • Multiple: không giới hạn lượt đăng nhập trên mỗi tài khoản / voucher
    • Last login: lượt đăng nhập sau sẽ được trao quyền truy cập. Lượt truy cập trước đó sẽ bị ngắt.
    • First login: chỉ lượt đăng nhập đầu tiên có quyền truy cập. Các lượt đăng nhập sau đều không hiệu lực
  • Captive Portal Login Page: bạn có thể thay đổi logo và hình nền và điều khoản sử dụng của trang Portal cho phù hợp với thương hiệu của mình. Mình để mặc định cho đơn giản.
  • Authentication:
    • Authentication method: lựa chọn cách thức xác nhận tài khoản: Authentication backend (sử dụng trang đăng nhập), None (yêu cầu bấm nút xác nhận), Radius MAC Authentication (xác thực bằng MAC address)
    • Authentication Server: chọn Local Database

Mình chọn các xác thực bằng cách sử dụng trang đăng nhập: Authentication backend. Sau đó bấm Save để lưu lại.

4. Tạo Voucher đăng nhập

Khi chọn cách thức xác thực tài khoản, bạn có thể tạo tài khoản pfSense hoặc tạo mã Voucher đăng nhập. Mình chọn cách tạo mã Voucher đăng nhập vì có thể giới hạn thời gian truy cập cho mỗi người dùng.

Bấm qua tab Voucher, kích hoạt mục Enable the creation, generation and activate of rolls with vouchers và bấm Save.

Bấm vào nút Generate new keys để tạo mã bảo mật mới. Các thông số còn lại có thể giữ nguyên. Bấm Save để lưu lại.

Mục Voucher Rolls sẽ hiện ra thêm nút Add. Bấm vào nó để tạo danh sách voucher.

Điền vào các thông số như sau và bấm Save

  • Roll #: điền bất kỳ số nào trong khoảng 0 – 65535
  • Minutes per ticket: giới hạn thời gian truy cập cho mỗi voucher
  • Count: số lượng voucher cần tạo.
  • Comment: chú thích để ghi nhớ

Danh sách voucher đã được tạo thành công. Bấm vào biểu tượng Excel bên trái để tải về danh sách theo định dạng csv.

Danh sách 10 voucher truy cập mạng

5. Điều chỉnh DHCP Server

Tiếp theo, bạn cần truy cập vào dịch vụ DHCP Server của pfSense, chọn đúng Network Interface đã kích hoạt ở bước trên: LAN.

Kéo xuống phần DNS Servers và xoá hết địa chỉ IP nếu có. Captive Portal yêu cầu phải sử dụng DNS Server mặc định của pfSense. Nếu bỏ qua bước này, người dùng sẽ không được tự động chuyển hướng về trang Captive Portal để đăng nhập sử dụng mạng.

6. Thực nghiệm Captive Portal

Do mình đang sử dụng pfSense trong nền tảng ảo hoá nên việc thực nghiệm Captive Portal sẽ được thực hiện trên máy ảo Windows 10 kết nối vào mạng LAN của pfSense.

Mở Edge, truy cập google.com, trình duyệt tự động chuyển hướng qua trang đăng nhập với logo pfSense.

Đăng nhập bằng voucher và bấm Login

Video minh hoạ dưới đây

Bạn có thể kiểm tra danh sách truy cập vào Captive Portal trên giao diện quản lý của pfSense: bấm vào Status –> Captive Portal.

Danh sách người dùng đang đăng nhập.

Bạn có thể kiểm tra danh sách Voucher đang sử dụng, kiểm tra Voucher hay vô hiệu hoá Voucher trong trang quản lý này. Hoặc bấm vào nút Disconnect All Users để kick hết mọi tài khoản ra khỏi mạng.

Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại mời mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!

Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng mò vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!

Bởi Thuận Bùi

Runner at Yêu Chạy Bộ. Blogger at Ba Lô & Dép Lào. Web Developer at TB's Blog.
Follow me: Facebook / Instagram

3 trả lời trong “pfSense Lab – [Phần 7] Thiết lập Captive Portal trên pfSense”

hi anh, liệu rằng captive portal trên pfsense khi sử dụng nhiều vlan, mỗi tài khoản sẽ chỉ được gán cố định với 1 địa chỉ IP được không ạ ?
ví dụ: wifi ABC , người dùng A kết nối thì mặc định cấp ip vlan10: 192.168.10.2
người dùng B kết nối thì mặc định cấp ip vlan20: 192.168.20.2

Theo mình biết thì pfSense chỉ hỗ trợ NAT-based Captive Portal, không hỗ trợ VLAN-based Captive Portal, nên phương án bạn hỏi là không khả thi với pfSense. Bạn có thể tìm hiểu về PacketFence – cái này có hỗ trợ VLAN-based Captive Portal.

Trả lời Minh Đức Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *