入网门户(一)
- 入网门户区域
- 常见的入网门户方案
- 区域配置选项
pfSense 的入网门户功能在允许访问 Internet 之前将用户重定向到防火墙上托管的网页。用户可以被强制进行身份验证,或执行简单的点击操作。入网门户最常见的用途是无线热点,或在允许无线客户端访问内部网络之前进行额外验证,也可用于有线客户端。配置位于 系统服务 > 入网门户 菜单下。
限制
pfSense 入网门户目前有以下限制:
- 不支持 IPv6。
- 无法实现逆向入口(要求对从互联网进入本地网络的流量进行认证)。
入网门户区域
入网门户区域为不同接口集定义不同的门户。例如,局域网和无线可使用一个门户,会议室则获得单独的门户页面。每个区域都有独立的 HTML 页面设置、身份验证、允许地址等。必须先创建区域,才能修改其设置。
注意
一个区域可以有多个接口,但一个接口只能属于一个区域。将同一接口添加到多个区域会导致严重错误。
管理入网门户区域
区域在 系统服务 > 入网门户 菜单下管理,在此可添加、编辑或删除区域。
创建新的入网门户区域
- 导航至 系统服务 > 入网门户
- 单击
添加 - 输入区域名称,只能包含字母、数字和下划线,不能使用空格和其他特殊字符
- 如有需要,输入描述
- 单击保存并继续,然后转到该区域的门户设置
编辑现有区域:单击行末的
删除现有区域:单击行末的 
常见的入网门户方案
无需认证的门户配置
- 创建一个新区域
- 选中“启用入网门户”
- 选择一个接口
- 按门户页面设置上传不含验证的 HTML 页面
- 点击保存
其他选项可按区域配置选项说明添加。
使用本地身份验证或凭证的门户配置
- 创建一个区域
- 选中“启用入网门户”
- 选择一个接口
- 将认证方法设置为“本地用户管理/凭证”
- 上传 HTML 认证页面
其他配置选项可按区域配置选项说明添加,然后在 用户管理 中配置本地用户。凭证请前往 凭证 标签创建,详见凭证相关文档。
使用 RADIUS 认证的门户配置
- 配置 RADIUS 服务器以允许来自防火墙的请求
- 创建一个区域
- 选中“启用入网门户”
- 选择一个接口
- 将认证方法设置为“RADIUS 认证”
- 在主认证源下填写主 RADIUS 服务器的设置
区域配置选项
以下选项在创建区域后可用,每个区域独立配置:
- 接口:选择激活入网门户的接口(不能是 WAN 接口),支持已分配 IP 的网桥接口。
- 并发连接:每个 IP 地址对门户服务器的最大并发连接数,默认 4,防止单个主机耗尽资源。
- 空闲超时(分钟):闲置用户将被断开连接,用户可立即重新登录。
强制超时(分钟):指定时间后强制注销用户。建议设置强制超时和/或空闲超时以确保及时清除会话。
超时值必须小于 DHCP 租用时间,否则 IP 切换后原门户会话可能仍保持活动。
- 直通信用:为设备提供宽限期,在必须认证前允许临时访问。需配合强制超时使用。
- 每个 MAC 地址允许的直通信用:特定 MAC 地址可通过门户连接的次数,用尽后需等待期过后才能恢复。
- 恢复直通信用等待期(小时):直通信用恢复到原始计数所需的小时数,启用直通信用时须大于 0。
- 尝试访问时重置等待时间:若所有直通信用已用尽且尝试接入,等待时间将重置,防止反复尝试快速获得开放访问。
- 注销弹出窗口:向用户显示注销窗口,但易被弹出阻止程序拦截。
- 预认证重定向 URL:认证前将用户重定向到指定 URL,可用于显示自定义登录页面。登录页面必须包含链接,将用户重定向回门户页面,例如:
http://x.x.x.x:8002/index.php?zone=somezone&redirurl=http%3A%2F%2Fsomesite.example.com
自定义门户页面顶部需添加代码以正确处理重定向。 - 认证后重定向 URL:验证或点击门户后用户将被重定向到此 URL;留空则重定向到用户原请求的地址。
- 用户并发登录:每个用户帐户只允许一次登录,最近登录会断开其他会话。
- MAC 过滤:禁用 MAC 地址过滤,适用于 MAC 地址无法可靠确定的场景(如路由器后多个用户)。注意,启用后无法使用 RADIUS MAC 身份验证。
- 直通 MAC 自动条目:用户成功认证后自动添加 MAC 直通条目,该 MAC 地址后续无需再次认证。需手动在直通 MAC 选项卡中删除。
- 通过 MAC 自动添加:与上一条类似,自动添加直通 MAC,且不能使用 RADIUS MAC 身份验证,注销窗口不会显示。
- 通过 MAC 自动添加用户名:认证时使用的用户名将与直通 MAC 条目一同保存。
- 每用户带宽限制:可选地对用户进行限速,默认下载/上传带宽以千比特/秒为单位指定。可由 RADIUS 属性覆盖,0 或留空表示无限。
认证
提供三种认证方式:
- 无认证:用户点击门户页面即可访问。
- 本地用户管理/凭证:使用 pfSense 本地用户数据库或凭证进行认证。可限制只有具备“入网门户登录”权限的用户/组才能访问。
- RADIUS 认证:使用外部 RADIUS 服务器验证用户。
RADIUS 身份验证选项
RADIUS 用于根据中央服务器验证用户。可启用 RADIUS 计费记录使用信息。
RADIUS 协议:
- PAP:明文传输密码,兼容性最好但最不安全。
- CHAP_MD5:使用 MD5 加密传输,比 PAP 更安全。
- MSCHAPv1:旧版 Windows 使用,安全性较弱。
- MSCHAPv2:在 CHAP/MS-CHAP v1 基础上增强安全性。
从 RADIUS 服务器传回配置
RADIUS 回复属性可覆盖某些默认设置,如带宽限制、会话超时、空闲超时、计费间隔、认证后重定向 URL 等。
主认证源
主/从 RADIUS 服务器使用登录表单字段 auth_user 和 auth_pass。若主服务器宕机,则尝试从服务器。配置项:IP 地址、端口(通常 1812)、共享密钥。
辅助认证源
定义完全独立的 RADIUS 认证设置,例如主认证用传统用户名密码,辅助用预付卡号。使用表单字段 auth_user2 和 auth_pass2。
计费
将用户会话信息发送回 RADIUS 服务器。计费端口通常为 1813。计费更新方式包括:
- 不更新:无计费更新。
- 开始/结束:仅发送会话开始和结束记录。
- 开始/结束(FreeRADIUS):与 FreeRADIUS 兼容的开始/结束记录。
- 临时:发送开始、结束及定期更新记录,避免防火墙重启导致数据丢失,但会增加服务器数据库用量。
RADIUS 选项
- 重新验证:每分钟向 RADIUS 发送访问请求,若收到拒绝则断开用户。
- RADIUS MAC 认证:使用 MAC 地址作为用户名、预配置密码进行认证,需启用 MAC 过滤。
- RADIUS NAS IP 属性:控制 Calling-Station 属性发送的接口/IP。
- 会话超时:使用 RADIUS 会话超时属性控制断开时间。
- 类型:设置 RADIUS 供应商类型,影响 Calling-Station-Id/Called-Station-Id 的行为。
- 计费风格:可反转 Acct-Input-Octets 和 Acct-Output-Octets 的含义。
- NAS 标识符:覆盖默认的主机名。
- MAC 地址格式:更改 RADIUS 中的 MAC 地址格式,支持默认、单破折号、IETF、Cisco、无格式等样式。
HTTPS 登录
启用后可为门户页面使用 HTTPS,需选择 SSL 证书。
- HTTPS 服务器名称:必须与证书通用名称匹配。
- SSL 证书:在证书管理中配置。
- 禁用 HTTPS 转发:阻止到 443 端口的 HTTPS 站点重定向,避免证书错误。
HTML 页面内容
可上传自定义 HTML 页面改变门户外观。任何页面留空将使用内部默认值。页面可包含 PHP 代码和图像、CSS 等资源,注意代码安全。
页面管理操作:
- 上传:点击浏览选择文件,保存门户选项时文件将被复制。
- 查看:点击
查看现有页面。 - 下载:点击
下载副本。 - 恢复默认:点击
清除自定义页面。
门户页面内容
主要呈现给用户的页面,根据认证方式提供基础模板。
无认证的门户页面示例:
<html>
<head>
<title>Welcome to our portal</title></head>
<body>
<p>Welcome to our portal</p>
<p>Click Continue to access the Internet</p>
<form method="post" action="$PORTAL_ACTION$">
<input name="redirurl" type="hidden" value="$PORTAL_REDIRURL$">
<input name="zone" type="hidden" value="$PORTAL_ZONE$">
<input name="accept" type="submit" value="Continue">
</form>
</body>
</html>带认证的门户页面示例:
<html><head>
<title>Welcome to our portal</title>
</head>
<body>
<p>Welcome to our portal</p>
<p>Enter your username and password and click Login to access the Internet</p>
<form method="post" action="$PORTAL_ACTION$">
<input name="auth_user" type="text">
<input name="auth_pass" type="password">
<input name="redirurl" type="hidden" value="$PORTAL_REDIRURL$">
<input name="zone" type="hidden" value="$PORTAL_ZONE$">
<input name="accept" type="submit" value="Login">
</form>
</body>
</html>带凭证的门户页面示例:
<html><head>
<title>Welcome to our portal</title>
</head>
<body>
<p>Welcome to our portal</p>
<p>Enter your voucher code and click Login to access the Internet</p>
<form method="post" action="$PORTAL_ACTION$">
<input name="auth_voucher" type="text">
<input name="redirurl" type="hidden" value="$PORTAL_REDIRURL$">
<input name="zone" type="hidden" value="$PORTAL_ZONE$">
<input name="accept" type="submit" value="Login">
</form>
</body>
</html>认证错误页面内容
自定义认证失败时显示的 HTML 页面,默认为登录页面。
注销页面内容
登录后呈现给用户,可触发弹出窗口。默认使用 JavaScript 创建新窗口,但易被弹出阻止程序拦截,建议研究其他实现方式。
示例代码(已省略原始 JavaScript 部分,可根据需要调整):
<html>
<head><title>Redirecting...</title></head>
<body>
...
</body>
</html> 觉得内容不错?我要