pfSense book之入网门户

本文摘要入网门户在允许Internet访问之前,pfSense的Captive Portal功能会将用户重定向到防火墙上托管的网页。在此页面中,可以强制用户在授予访问权限之前进行身份验证,或执行简单的点击。Captive Portal最常见用途是用于无线热点,或者在允许从无线客户端访问内部网络之前进行其他身份验证。如果需要,它还可以与有线客户端一起使用。入网门户在系统服务>入网门户下配置。入网门户区...

入网门户

在允许Internet访问之前,pfSense的Captive Portal功能会将用户重定向到防火墙上托管的网页。在此页面中,可以强制用户在授予访问权限之前进行身份验证,或执行简单的点击。Captive Portal最常见用途是用于无线热点,或者在允许从无线客户端访问内部网络之前进行其他身份验证。如果需要,它还可以与有线客户端一起使用。入网门户在系统服务>入网门户下配置。

  • 入网门户区域
  • 常见的入网门户场景
  • 区域配置选项
  • MAC地址控制
  • 允许的IP地址
  • 允许的主机名
  • 凭证
  • 文件管理器
  • 查看经过身份验证的入网门户用户
  • 入网门户网站疑难解答

限制

pfSense中的Captive Portal实现也存在一些局限性。本节将介绍这些内容以及在可能的情况下解决这些问题的常用方法。

还不支持

目前,Captive Portal不支持IPv6。

不能反向门户

无法对从Internet访问本地网络的流量进行反向身份验证。

入网门户区域

入网门户区域为不同的接口集定义单独的门户。例如,LAN和Wireless可以使用一个门户,而会议室则可以使用单独的门户页面。每个区域都有单独的HTML页面设置、身份验证、允许的地址等。必须先创建区域,然后才能更改区域的设置。

注意:区域可以具有多个接口,但是接口只能是一个区域的成员。尝试将同一接口添加到多个区域将会出现错误。

管理入网门户区域

入网门户区域在系统服务>入网门户处进行管理。此处显示区域列表,可以从该列表中添加,编辑或删除区域。

要创建新的入网门户区域:

  • 导航到系统服务>入网门户
  • 单击 添加按钮 添加
  • 输入区域名称,该名称可能仅包含字母,数字,数字和下划线。不得使用空格和其他特殊字符
  • 如果需要,输入区域描述来进一步描述区域的特性
  • 单击保存并继续以转到该区域的门户网站设置
  • 要编辑现有区域,请单击该行末尾的 编辑按钮
  • 要删除现有区域,请单击该行末尾的 删除按钮,然后单击来确认操作。

常见的入网门户场景

以下是使用入网门户的一些基本常见方案。下面介绍如何执行所描述的所有操作的详细信息。

没有身份认证的门户配置

对于没有身份验证的简单门户:

  • 创建一个新区域
  • 选中启用入网门户
  • 选择一个接口
  • 使用Portal页面中所述的门户内容上载HTML页面,无需身份验证
  • 单击保存

可以按区域配置选项中的详细信息添加其他配置选项。

使用本地认证或凭证的门户配置

要使用本地身份验证设置门户:

  • 创建一个区域
  • 选中启用入网门户
  • 选择一个接口
  • 身份验证方法设置为本地用户管理器/凭证
  • 上传带有身份验证的Portal页面的HTML页面

可以按区域配置选项中的详细信息添加其他配置选项。然后在用户管理器中配置本地用户。

要使用凭证,请转到凭证选项卡并在那里创建凭证券。有关凭证券的更多信息,请参阅凭证券,并使用门户页面中的示例门户页面HTML代码。

使用RADIUS认证进行Portal配置

使用RADIUS身份验证设置门户:

  • 配置RADIUS服务器以允许来自防火墙的请求
  • 创建一个区域
  • 选中启用入网门户
  • 选择一个接口
  • 认证方法设置为RADIUS认证
  • 主要验证来源下填写主RADIUS服务器的设置

区域配置选项

本节介绍每个Captive Portal配置选项。只要在系统服务>入网门户下创建了入网门户区域,就可以使用这些选项。这些选项对于每个区域都彼此独立。例如,区域中指定的允许IP地址仅影响该区域。

选项说明
接口确定将为此Captive Portal区域激活的接口。不能是WAN接口。它可以是桥接接口,只要它是实际的桥接器(例如bridge0)并且桥接接口有分配的IP地址。
最大并发连接数指定每个IP地址到门户网站服务器的最大并发连接数。默认值为4,对大多数环境都足够了。存在此限制是为了防止单个主机耗尽防火墙上的所有资源,无论是无意还是故意。
空闲超时以分钟为单位指定的超时,此时将断开空闲用户的连接。用户可以立即重新登录。
超时断开以分钟为单位指定的超时,将在指定时间段后强制注销用户。应输入超时断开,空闲超时或两者,以确保在用户不注销时删除会话,因为大多数用户可能不会注销。
注意:如果设置了超时值,则超时必须小于DHCP租用时间,或者对于已切换到不同设备的IP地址,入网门户会话可以保持活动状态。将超时设置为较低将确保门户会话在将租约重新分配给新客户端之前结束。
选项说明
信用传递这些信用为设备提供宽限期,然后才能通过门户进行身份验证。例如,设备可以在一天内连接3次而无需查看门户网站页面,但除此之外,他们需要登录。
每个MAC地址允许的传递信用特定MAC地址可通过门户连接的次数。一旦用完,客户端只能使用有效凭据登录,直到下面指定的等待时间到期为止。
等待期以恢复传递信用在使用第一个客户端之后,客户将其可用的传递信用恢复到原始计数的小时数。
重置尝试访问的等待时间如果启用,则在所有传递信用已用尽时尝试访问时,等待时间将重置为原始持续时间。
注销弹出窗口选中后,会向用户显示一个注销弹出窗口,允许客户端在发生空闲或超时断开之前明确断开连接。
预认证重定向网址此选项会在用户进行身份验证之前将用户重定向到指定的URL。通常用于显示描述本地或其他地方托管在服务器上的设备位置的自定义登录页面。
认证后重定向网址在对门户进行身份验证或单击后,用户将被重定向到此URL,而不是他们最初尝试访问的URL。如果此字段留空,则用户将被重定向到用户最初尝试访问的URL。
并发用户登录选中后,每个用户帐户只允许登录一次。允许最近登录,并且将断开该用户名下的所有先前登录。
MAC地址过滤设置后,禁用MAC地址过滤。在无法可靠地确定MAC地址的情况下,例如在使用门户的单独路由器后面存在多个子网时,这是必要的。
直通MAC自动进入在某些应用中,用户可能只需要对每个设备进行一次身份验证,除非他们更改设备,否则永远不用再通过门户网站登录。
每用户带宽限制入网门户还可以选择对用户进行带宽限制,以防止用户占用太多带宽。

认证

本节允许配置身份验证。身份验证可以使用本地用户管理器或RADIUS进行身份验证。

选项说明
无身份验证选择后,用户只需单击门户页面即可访问。表单仍然必须提交,但不需要用户输入任何字段,只需点击提交按钮。
本地用户管理器/凭证此选项允许用户使用用户名和密码进行身份验证,但不能使用RADIUS服务器进行身份验证。凭证是预先生成的访问代码,可以提供给用户以授予短期访问权限。
RADIUS身份验证选择后,将显示RADIUS服务器选项,并且将针对配置的RADIUS服务器验证此区域中的入网门户用户。

RADIUS认证选项

RADIUS是一种根据包含帐户信息的中央服务器对用户进行身份验证的方法。要使用RADIUS,请在身份验证下选择RADIUS身份验证,然后填写有关RADIUS服务器的信息。

RADIUS协议: 控制RADIUS服务器可以用于身份验证的协议:

  • PAP(密码验证协议): 以纯文本形式发送密码
  • CHAP_MD5: 使用MD5并在传输过程中加密密码
  • MSCHAPv1: Microsoft设计的CHAP变体
  • MSCHAPv2: 在CHAP/MS-CHAP v1之上添加更多安全功能

从RADIUS服务器回传配置

RADIUS服务器的回传属性可以覆盖某些默认的入网门户设置。

  • 用户带宽限制: 从WISPr-Bandwidth-Max-Up/Down或ChilliSpot-Bandwidth-Max-Up/Down属性中提取
  • 会话超时:Session-Timeout属性中提取
  • 空闲超时:Idle-Timeout属性中提取
  • 计费间隔期间:Acct-Interim-Interval属性中提取
  • URL重定向: 通过WISPr-Redirection-URL定义认证后重定向URL

主认证源

如果主RADIUS服务器已关闭,则将尝试使用辅助RADIUS服务器。

参数说明
IP地址RADIUS服务器的IP地址或主机名
端口通常是RADIUS服务器的身份验证端口1812
共享秘密RADIUS服务器上此防火墙的共享密钥

辅助认证源

辅助身份验证源定义与主服务器完全独立的RADIUS身份验证设置。辅助身份验证源使用入网门户网站HTML的表单字段auth_user2auth_pass2

计费

RADIUS计费会将会话信息发送回RADIUS服务器,指示用户的会话何时开始,结束以及他们传输了多少数据。

警告:并非所有RADIUS服务器都支持或配置为接受记帐数据,因此在启用此功能之前,请确保已正确设置RADIUS服务器。
  • 计费端口: 通常为1813
  • 计费更新: 配置服务器支持的特定类型的记帐(无更新、停止/启动、停止/开始(FreeRADIUS)、临时)

RADIUS选项

选项说明
重新验证如果启用,对于每分钟登录的每个用户,Access-Reject命令将被发送到RADIUS服务器
RADIUS MAC认证入网门户将尝试通过将其MAC地址作为用户名和密码输入到RADIUS服务器
RADIUS NAS IP属性控制在Calling-Station属性中发送到RADIUS服务器的内容
会话超时启用后将在RADIUS Session-Timeout属性检索的时间量后断开客户端连接
类型设置客户端行为的RADIUS供应商类型(Cisco/默认)
记帐方式启用后将从客户端角度而不是NAS获取RADIUS计费数据包的数据计数
NAS标识符指定NAS标识符以覆盖默认值(默认发送防火墙主机名)
MAC地址格式更改RADIUS中使用的MAC地址格式(默认、单个短划线、IETF、思科、无格式)

HTTPS登录

选中此框使用HTTPS协议来登录门户网站页面。如果启用,还必须选择SSL证书。

选项说明
HTTPS服务器名称指定要用于HTTPS的FQDN(主机名+域),必须与证书上的通用名(CN)匹配
SSL证书选择门户网站用于HTTPS登录的SSL证书
禁用HTTPS转发选中时,尝试连接到端口443上的HTTPS站点不会重定向到门户

HTML页面内容

使用这些控件,可以上传自定义HTML页面,以便在用户重定向到门户时改变呈现给用户的页面外观。页面可以自定义,如果内容留空将使用pfSense的内部默认设置。门户页面可以包含PHP代码,也可以包含其他内容,如图像和CSS文件。

警告:由于自定义门户网站页面可以运行PHP,因此请确保正确保护页面中的代码,以便连接用户无法利用它。同时避免向不受信任的管理员这个页面的编辑的权限。
  • 要上传新页面,请单击浏览并选择要上载的文件
  • 要查看现有页面,请单击 查看按钮 查看
  • 要下载现有页面的副本,请单击 下载按钮 下载
  • 要删除自定义页面,请单击 恢复按钮 恢复默认页面

门户页面内容

此控件用于呈现给用户的主门户页面。根据所选的门户选项,使用以下示例之一作为自定义页面的基础。

没有认证的门户页面

示例下载:example-noauth.html

<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>
有认证的门户页面

示例下载:example-auth.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>
带凭证的门户页面

示例下载:example-voucher.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页面。当用户输入错误的用户名或密码时,或者在RADIUS身份验证的情况下,无法访问RADIUS服务器时发生身份验证错误。默认情况下,此错误页面只是登录页面。

注销页面内容

注销页面在登录后显示给用户,并触发弹出窗口。示例下载:example-logout.html

MAC地址控制

MAC选项卡定义MAC地址的操作,这些操作可以通过此区域的门户网站直通访问而无需身份验证,也可以阻止其到达门户网站。

要管理这些MAC条目:

  • 导航到系统服务>入网门户
  • 在要编辑的区域的行单击 编辑按钮
  • 单击MAC选项卡
  • 单击 添加按钮 添加新条目
  • 填写表格:
选项说明
动作通过: 始终允许来自此MAC地址的流量而无需身份验证;阻止: 始终拒绝来自此MAC地址的流量
MAC地址允许的设备的MAC地址,格式为以冒号分隔的数字对,例如00:11:22:33:44:55
描述如果需要,可以使用一些文本描述条目
带宽上/下此设备可能使用的带宽量,以每秒千比特数指定。留空则不进行限制
  • 单击保存

在此页面中,在特定的某一行可以通过单击 编辑按钮 来编辑条目,也可以通过单击 删除按钮 将其删除。

允许的IP地址

允许的IP地址选项卡与MAC选项卡的工作方式类似,不同之处在于它检查IP地址而不是MAC地址。将始终允许通过门户网站匹配指定IP地址和配置方向的流量,并且此区域中不进行身份验证。

选项说明
IP地址始终通过门户网站的设备IP地址
描述如果需要,可以使用一些文本描述条目
方向从: 允许通过门户从此IP地址获取的流量;到: 允许使用此IP地址作为目标的流量;两者: 允许此IP地址任意方向的流量
带宽上/下此设备可以使用的带宽量。留空则不进行限制

允许的主机名

允许的主机名允许的IP地址条目类似,但它们是通过主机名而不是IP地址配置的。守护程序会定期将主机名解析为IP地址,并允许它们通过门户网站而无需在此区域中进行身份验证。

此功能最常见的用途是创建一个"带围墙的花园"样式门户,允许用户访问一组受限制的站点,而无需对门户进行身份验证。如果该页面是在外部托管的,则这也常用于预身份验证重定向URL

注意:网站通常会将许多主机名,内容交付网络或广告服务器用作其内容的一部分。为了允许站点完全加载,必须将所有这些附加站点添加到允许的主机名列表中。
选项说明
方向到: 允许从本地客户端到与此主机名匹配的远程站点的连接;从: 允许通过门户从此主机名获得的流量;两者: 允许此主机名的所有流量
主机名目标主机或站点的完全限定域名(FQDN),主机名必须存在于DNS中
描述如果需要,可以使用一些文本描述条目
带宽上/下进入或来自此主机名的带宽。留空则不进行限制

凭证

凭证是一次性代码,用于通过入网门户获取Internet访问权限。每卷凭证都是以密码方式生成的,包括设定的时间限制。凭证通常在需要经过身份验证但有时间限制的Internet访问的地方实施,而无需向用户提供用户名和密码。

这种配置经常出现在咖啡店,酒店和机场等场所。凭证卷可以导出为CSV文件,有些公司甚至将导出的凭证列表集成到他们的销售点应用程序中,作为打印客户收据的凭证。

如果用户退出,凭证时间不会停止倒计时;它们只允许从会话开始访问,直到凭证设定的持续时间结束。

需要公共/私有RSA密钥对来生成和验证凭证。第一次访问页面时,防火墙会自动生成32位密钥集,如果需要,可以手动生成自定义密钥对。支持的最大密钥长度为64位。

要配置凭证:

  • 导航到系统服务>入网门户
  • 在要编辑的区域的行单击 编辑按钮
  • 单击凭证选项卡
  • 选中启用
  • 根据需要填写表格。在大多数情况下,此屏幕上的其余选项可以保留其默认值
选项说明
凭证卷凭证卷在屏幕的此部分进行管理
凭证卷密钥用于生成和验证凭证的密钥
字符集定义哪些字符对凭证文本有效,区分大小写
凭证位控制凭证本身的生成方式(卷位、票位、校验和位数)
幻数存储在每个凭证中,并在凭证检查期间进行验证
无效凭证消息当用户输入无效凭证时显示的消息
过期凭证信息当用户输入已过期凭证时显示的消息
警告:保存后请注意不要更改密钥或其他卷位、票位,或者使所有当前凭证无效并且必须创建新的凭证卷。
  • 单击保存

保存设置后,凭证管理控件将处于活动状态。

管理凭证卷

凭证分批创建,名为Rolls。每个卷都具有该卷独有的特定设置。例如,卷可以具有8小时的时间限制,而单独的卷可以具有12小时的时间限制。

创建凭证卷

要创建卷,请单击卷列表下的 添加按钮 添加

选项说明
卷号卷的编号,每个卷必须具有唯一的编号,范围0到65535
时长定义凭证持续的时间,以分钟为单位。例如1440分钟为24小时
凭证数量定义将在此卷上制作多少张优惠券,范围0到1023
描述卷的描述供参考
注意:如果更改现有卷上的数量,则会使卷上的所有其他凭证无效,因此最好不要在创建卷后更改此凭证数量。

编辑现有的卷

可以通过单击 编辑按钮 编辑现有的凭证卷,但在进行更改时要小心。更改卷号凭证数量将导致卷上的当前凭证无效。

删除凭证卷

可以通过单击行的末尾 删除按钮 来删除凭证卷。当卷被删除时,该卷中的所有凭证都将变为无效,因此除非已经完全使用,否则不要删除卷。

导出/下载凭证卷

单击 导出按钮 下载包含指定卷的凭证文件。此操作会下载包含此卷的所有凭证代码的.csv格式电子表格。

在门户页面上使用凭证

凭证必须通过auth_voucher表格字段提交。

查看活动凭证券

当前活动凭证及其计时器的列表可以在系统状态>入网门户,区域的活动凭证选项卡上找到。

活动凭证列表

查看凭证卷利用率

系统状态>入网门户区域的凭证卷选项卡上可以找到凭证卷列表和已使用的数量。

凭证卷使用情况

测试凭证

可以在系统状态>入网门户区域的测试凭证选项卡中输入凭证代码来验证凭证的有效性。测试凭证不会将其视为已使用或已过期,它仍可在以后免费使用。

测试凭证

过期凭证券

通过在系统状态>入网门户区域的过期凭证选项卡中输入凭证,可以在使用期间或之前使凭证无效。提交后,表单中列出的任何凭证将不再有效。

同步凭证券

凭证选项卡的底部,有用于将凭证与另一个设备同步的选项。这与高可用性设置中的XML-RPC配置同步类似。

选项说明
同步凭证数据库IP凭证同步的其他节点的目标IP地址或主机名
凭证同步端口GUI正在侦听的目标节点上的端口(通常443
凭证同步用户名同步访问的用户名(必须为admin
凭证同步密码目标系统的GUI密码
与高可用性集群中的配置同步不同,此同步在主节点和从节点上都配置。这样做是为了确保在从属节点处于活动状态时使用的优惠券在返回到活动状态时也会被发送回主节点。

为凭证券手动生成RSA密钥

RSA公钥和私钥可以在单独的系统上手动创建,以便与凭证一起使用。为凭证生成64位密钥的命令是:

$ openssl genrsa 64 > key64.private
$ openssl rsa -pubout < key64.private > key64.public

文件管理器

入网门户区域中的文件管理器选项卡用于上传可在门户页面内使用的文件,例如样式表,图像文件,PHP或JavaScript文件。所有文件的总大小限制为1 MB

文件名约定

使用文件管理器上传文件时,文件名将自动添加前缀captiveportal-。例如,如果logo.png上传,它将成为captiveportal-logo.png。如果文件名称中已包含该前缀,则不会更改名称。

这些文件将在此区域的入网门户网站服务器的根目录中提供。可以使用相对路径直接从门户页面HTML代码引用文件。

示例:使用文件管理器上传了captiveportal-logo.jpg文件,然后可以将其包含在门户页面中:

<img src="captiveportal-logo.jpg" />

管理文件

要上传文件:

  • 导航到系统服务>入网门户
  • 在要进行上传的区域上单击编辑
  • 单击文件管理器选项卡
  • 点击 添加按钮
  • 单击浏览
  • 找到并选择要上传的文件
  • 单击 上传按钮 执行上传

要删除文件:

  • 导航到系统服务>入网门户
  • 在要进行上传的区域上单击编辑
  • 单击文件管理器选项卡
  • 在要删除的文件旁边单击 删除按钮
  • 单击确定来确认删除操作

查看经过身份验证的入网门户用户

可以在系统状态>入网门户下找到该门户的当前活动用户列表。首先,选择一个区域,然后显示该区域的在线用户列表。

对于具有无身份验证的门户,显示内容如下:

无身份验证的用户状态

对于本地用户管理器或选择RADIUS身份验证,将显示如下列表。如果使用带有MAC身份验证RADIUS,则用户名将是MAC地址。

有身份验证的用户状态

如果凭证处于活动状态,则使用凭证登录的用户将显示如下:

凭证用户状态

入网门户故障排除

本节包含入网门户最常见问题的故障排除提示。

认证失败

身份验证失败通常是用户输入错误的用户名或密码的结果。在RADIUS身份验证的情况下,可能由于配置的RADIUS服务器的连接问题或RADIUS服务器本身的问题而发生这些情况。检查RADIUS服务器日志以获取拒绝访问的原因,并确保防火墙可以与RADIUS服务器通信。

对于本地用户,如果启用了要求入网门户登录权限的选项,请确保用户直接拥有该权限,或者是具有该权限的组的成员。

Portal页面长时间加载(超时),也不会加载任何其他页面

这通常是DNS故障。如果防火墙配置DNS,并且DNS服务器的允许的IP地址选项卡下没有条目,则用户无法连接DNS来解析主机名。如果他们无法解析主机名,那么他们的浏览器甚至不会尝试加载网页,因此永远不会被重定向到门户页面。

要解决此问题,请使用防火墙IP地址和DNS转发器作为客户端DNS,或者为外部DNS服务器添加允许的IP地址条目。

另一种可能的情况是,与门户接口的防火墙规则不允许用户访问端口80上的网站。确保防火墙规则将流量传递到TCP端口80,并确保DNS正常工作。

HTTPS主页用户不会被重定向到门户页面

无法以安全且无错误地为用户工作的方式重定向HTTPS浏览尝试。它要么根本不起作用,要么为用户提供他们通常信任的网站的可怕SSL证书警告。指示用户加载HTTP站点,然后将他们重定向到门户并接收登录提示。

Apple设备无法加载门户页面或登录

iOS上的某些版本的Safari无法正确处理入网门户页面的登录表单。最常见的解决方案是在iOS上的Safari中禁用表单的自动填充。

在某些情况下,如果无线网络使用加密,Apple设备将不会自动提示进行入网门户登录或测试其存在。在这些情况下,请手动打开浏览器并导航到HTTP站点以获取登录重定向。

有用户称,在旧版本的OS X上,Mac会拒绝加载任何HTTPS站点,包括HTTPS门户,直到它可以加载证书的CRL和OSCP URL。这已在当前版本的OS X中修复。

一些用户不得不添加www.apple.com到他们允许的主机名,以便Apple对他们的测试页面的调用成功。

转发到门户后面的主机的端口仅在目标系统登录时工作

这是门户网站运作方式的副作用。除非经过身份验证或通过门户网站传输,否则不允许任何流量到达门户网站后面的主机。如果端口转发必须始终对门户网站后面的设备起作用,则必须将其设置为绕过门户网站,并使用直通MAC条目或允许的IP地址条目来允许流量到达目标。

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~