OPNsense设置强制门户教程

本文摘要强制门户是一种网络安全解决方案,可自动控制和管理用户对公共网络的访问。强制门户通常用于开放访问网络中的访客管理,这些网络可在酒店、医院、机场和公司网络中找到。启用强制门户后,除非用户提供电子邮件、姓名和手机号码等个人信息,或通过填写基于 Web 的注册表单通过凭证进行身份验证,否则对 Internet 的访问将受到限制。OPNsense 是一个基于 FreeBSD 的防火墙和路由平台,它是开源的、...

强制门户是一种网络安全解决方案,可自动控制和管理用户对公共网络的访问。强制门户通常用于开放访问网络中的访客管理,这些网络可在酒店、医院、机场和公司网络中找到。启用强制门户后,除非用户提供电子邮件、姓名和手机号码等个人信息,或通过填写基于 Web 的注册表单通过凭证进行身份验证,否则对 Internet 的访问将受到限制。

OPNsense 是一个基于 FreeBSD 的防火墙和路由平台,它是开源的、易于使用且易于构建,可以轻松配置强制门户,以安全的方式为用户提供 Internet 访问。

本教程将分以下几个部分进行介绍:

  • 配置强制门户的好处
  • 强制门户如何工作
  • 强制门户设置
  • 配置强制门户
  • 使用自定义模板
  • 限制访客网络上的带宽
  • 管理凭证系统
  • 查看强制门户会话

配置强制门户的好处

1. 安全性
强制门户可以帮助企业保持业务符合监管标准和良好实践,通过热点向用户提供 Internet 访问。
强制门户可以向用户显示服务条款,他们必须在使用公司的 Wi‑Fi 热点之前接受这些条款。管理员这样做是为了确保用户对自己的行为负责,并且企业不承担法律责任。业主可以通过要求用户在通过强制门户访问网络之前同意服务条款来保护自己免于法律责任。强制门户通过将任何 Web 请求“重定向”到特定页面来运行,直到用户单击同意服务条款。因此,无论浏览器访问什么地址,当用户启动浏览器时,强制门户页面都会首先出现。

2. 带宽管理
一些用户总是滥用互联网服务,例如每天保持数小时在线、每天访问多次,甚至通过多个终端连接。
强制门户提供了许多措施来确保所有用户都能充分访问:可以控制连接时间、每个用户的终端数量和带宽使用。
可以使用强制门户管理带宽,并创建可配置的时间限制,以确保每个用户都可以保持连接并访问网络。

3. 市场营销
在商业方面,强制门户为无缝营销提供了理想的机会,使用户可以在关键时刻参与其互联网体验,并且是满足各种业务需求的强大媒介。填写调查、观看赞助广告或突出当前促销活动,都可以使用强制门户来实现。

强制门户如何工作

OPNsense 提供了一个强制门户,用于强制请求网络访问的客户端进行身份验证或将他们重定向到点击页面。该解决方案通常用于热点网络,但也广泛用于企业网络,为 Internet 或无线访问提供额外的安全层。
OPNsense 强制门户具有以下功能:

  • 基于类别的 Web 过滤: 通过结合强制门户和缓存代理,可以使用基于 Web 类别的过滤并阻止用户访问特定的内容,以及通过启用缓存来减少 Internet 带宽使用并提高响应时间。
  • 超时和随时回来: 连接可以在设定的时间后终止(空闲超时)和/或在设定的分钟数后强制断开连接,即使用户仍然处于活动状态(硬超时)。如果用户在空闲和/或硬超时内重新连接,则不需要登录,并且可以恢复用户的活动会话。
  • 带宽管理: 防火墙具有流量整形功能。其内置的流量整形器可用于执行以下操作:

    • 可以优先考虑协议端口号和/或 IP 地址。
    • 均匀分配带宽。
  • 绕过门户: 可以使用白名单选项来允许某些 IP 地址或 MAC 地址绕过门户。
  • 模板管理: OPNsense 中独特的模板管理器可以轻松创建自己的登录页面。同时,它提供了额外的功能,例如:

    • 创建自己的弹出窗口的选项
    • URL 重定向:通过强制门户认证或点击后,可以将用户强制重定向到指定的 URL。
    • 自定义起始页
  • 区域管理: 可以在每个接口上配置不同的区域,也可以多个接口共享一个区域配置。每个区域都可以使用自己独特的强制门户模板或与另一个区域共享。
  • 身份验证: OPNsense 强制门户提供 HTTPS 安全身份验证或带有 URL 重定向到特定页面的仅启动门户。要对区域中的用户进行身份验证,可以使用以下来源:

    • 本地用户管理器
    • 代金券/门票
    • Radius
    • LDAP [微软活动目录]
    • 无身份验证(仅限启动页面)
    • 多个(前面的组合)
  • 优惠券管理器: OPNsense 的强制门户包括一个简单的优惠券创建系统,可以将优惠券导出为 CSV 文件,并与 LibreOffice 或 Microsoft Word 模板结合来打印凭证,生成包含您公司徽标和样式的专业外观的卡片。
  • 平台集成: 强制门户应用程序可以使用集成的 REST API 与其他服务集成。
  • 实时报告: OPNsense 强制门户具有基本的实时报告功能,例如:

    • 活跃期
    • 优惠券剩余时间
    • 最高 IP 带宽使用情况(实时图表)

强制门户设置

为保持网络安全,一般应将访客网络与专用 LAN 隔离,然后在访客网络上部署一个强制门户,让访客访问 Internet。
在本教程中,我们将为 OPNsense 上的访客网络启用和配置强制门户,具有三个网络接口/区域:

  • 局域网
  • 广域网
  • 访客网

按照下面的 4 个步骤在 OPNsense 防火墙上设置强制门户。

第 1 步 – 接口配置

  1. 导航到 Interfaces → Assignments。
  2. 在字段中输入接口的描述性名称,如 GUESTNET。
  3. 按下 + 按钮添加新接口。

OPNsense 上 GuestNetwork 的接口分配

  1. 单击 Save。新接口将被调用。

在 OPNsense 上保存新创建的接口

  1. 在接口列表中单击 GUESTNET 更改其设置。
  2. 选择 Enable Interface。
  3. 选择 Block bogon networks 选项。
  4. IPv4 Configuration Type 选择为 Static IPv4。

在 OPNsense 上启用 GuestNet 接口

  1. 设置静态 IPv4 地址,例如 172.16.10.1,掩码为 24。
  2. IPv4 Upstream Gateway 选择 Auto detect。

在 OPNsense 的 GuestNet 接口上设置 IP 地址

  1. 单击 Save,然后单击 Apply changes。

应用更改

第 2 步 – DHCP 服务器配置

  1. 导航到 Services → DHCPv4 → [GUESTNET]。
  2. 在 GUESTNET 接口上 启用 DHCP 服务器。
  3. 设置 DHCP 池范围,例如从 172.16.10.100 到 172.16.10.200。
  4. 可以指定 DNS server,不指定则默认为接口地址。
  5. 设置 Gateway IP address,如 172.16.10.1(OPNsense GuestNet 接口 IP)。
  6. 其他选项保留为 default。
  7. 点击 Save。

OPNsense 上的 DCHP 配置

第 3 步 – 定义防火墙规则

按给定顺序定义以下防火墙规则:

3.1. 允许访问 DNS 服务
按照下图定义规则以允许内部 DNS 服务器访问。

允许 DNS 规则 1

允许 DNS 规则 2

3.2. 允许强制门户登录
按照下图定义规则来允许访客访问强制门户:

允许访问强制门户的防火墙规则1

在 OPNsense-2 上允许 Captive Portal 防火墙规则

3.3. 阻止对局域网访问
按照下图定义规则来阻止访客访问公司 LAN:

在 OPNsense-1 上阻止来自 GuestNet 的 LAN 访问

在 OPNsense-2 上阻止来自 GuestNet 的 LAN 访问

3.4. 阻止对防火墙的访问
按照下图定义规则来阻止来宾访问防火墙:

在 OPNsense-1 上阻止来自 GuestNet 的防火墙访问

在 OPNsense-2 上阻止来自 GuestNet 的防火墙访问

3.5. 允许访客访问
按照下面的定义配置允许访客访问 Internet 的规则:

允许访客网络在 OPNsense-1 上访问 Internet

允许访客网络在 OPNsense-2 上访问 Internet

为 GUESTNET 接口重新排序新创建的防火墙规则,类似于下图,然后单击 Apply changes 来激活规则。

OPNsense 上 GuestNet 的防火墙规则

第 4 步 – 强制门户创建

按照以下说明为访客网络创建强制门户。

  1. 导航到 Services → Captive Portal → Administration。

在 OPNsense 上创建强制门户

  1. 单击表格右下角的 + 添加新区域。

在 OPNsense-1 上为 Captive Portal 设置区域

  1. 启用区域。
  2. 设置 Interfaces 为 GUESTNET(取消选择局域网)。
  3. 可以设置 Authenticate using 为空白不需要身份验证(删除任何默认设置)。
  4. 设置 Idle timeout 为 0。
  5. 设置 Hard timeout 为 0。
  6. 取消选中 Concurrent user logins,以便用户只能登录一次。
  7. 可以为 HTTPS 选择 Web GUI TLS 证书,或者将 SSL 证书保留为 none 使用纯 HTTP。
  8. 保留 Custom template 为 none,以使用默认模板。
  9. 在描述字段中输入区域描述,例如访客网络。
  10. 将其他选项保留为默认值。
  11. 单击 Save。
  12. 单击 Apply。

在 OPNsense-2 上设置强制门户的区域

现在 OPNsense 上的强制门户已安装完成并可以使用了。

在 OPNsense 防火墙上创建访客网络强制门户

测试从访客网络访问 Internet 是否正常
当将设备连接到访客网络并打开您喜欢的浏览器时,您将被重定向到类似于下图的强制门户启动页面。由于我们在上面的示例中没有配置任何身份验证方法,因此您可以通过单击 Sign in 按钮开始冲浪而无需任何身份验证。

没有任何身份验证的 OPNsense 强制门户默认启动页面

提示:OPNsense 强制门户支持多种身份验证方法,例如本地、LDAP、Radius、优惠券或其中的多个。应该在强制门户上至少使用一种身份验证方法。

测试强制门户防火墙规则是否生效
如果可以从访客网络访问 Internet,则表示允许 GUESTNET 访问 Internet 和 DNS 服务器的相关防火墙规则正在工作。可以测试拒绝从 GUESTNET 访问防火墙和 LAN 的阻止规则。要验证这些强制门户防火墙规则,可以从连接到访客网络的设备运行以下命令。如果 ping 请求对于防火墙和 LAN 访问都超时,则防火墙规则正常工作。

  • ping 防火墙 GuestNet 地址
ping 172.16.10.1

Pinging 172.16.10.1 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
  • ping 到 LAN 上的设备或防火墙 LAN 地址
ping 10.10.10.1

Pinging 10.10.10.1 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

配置强制门户

可以按照以下说明配置强制门户。

1. 为强制门户使用自定义模板

要制作自定义登录页面,可以按照以下步骤操作。

  1. 导航到 Services → Captive Portal → Templates 选项卡。
  2. 点击右下角的下载图标下载默认模板。

在 OPNsense 上下载 Captive Portal 默认模板

  1. 解压下载的模板文件。

解压缩默认模板文件

  1. 用编辑器打开文件 index.html。
  2. 将默认徽标(default-logo.png)更改为您的徽标文件名,例如 company-logo.png。
  3. 去掉顶部的导航栏。
  4. 从 <img> 标签中删除高度和宽度。
  5. 包括欢迎信息。
  6. 包括指向您公司网站的链接。
  7. 找到以下代码段:
<header class="page-head">
<nav class="navbar navbar-default">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="#">
                <img class="brand-logo" src="images/default-logo.png" height="30" width="150">
            </a>
        </div>
    </div>
</nav>
</header>
  1. 将上面的代码段更改为下面给出的类似代码段。不要忘记用您自己的替换相关字段:
<header class="page-head">
    <div align="center">
      <a href="#">
          <img class="brand-logo" src="images/company-logo.png">
      </a>
      <h1>Welcome to My Company Guest Network.</h1>
      <h2>Feel free to use the guest network for professional usage</h2>
      <h3>See our website for more details: <a href="https://www.opnsense.org">My Company</a></h3>
    </div>
</header>
  1. 将公司徽标 (company-logo.png) 复制到 images 目录。
  2. 压缩模板目录。
  3. 单击模板选项卡上 + 按钮,上传新创建的模板 zip 文件。
  4. 输入一个模板名称,例如 MyCompany。
  5. 单击 Upload 图标。

在 OPNsense 上上传新的 Captive Portal 模板

  1. 要在 GUESTNET 接口上启用新的强制门户模板,单击 Apply。

在 Captive Portal 上应用新模板

  1. 要启用新上传的模板,可以按照下面给出的步骤进行操作:

    • 导航到 Services → Captive Portal → Zones 选项卡。
    • 单击 Guest Network 旁边的铅笔图标。

编辑 Guest Network 强制门户

  1. 将 Custom template 字段从 none 更改为 MyCompany。

设置强制门户模板

  1. 单击 Save,然后 Apply 应用新设置。

现在打开浏览器来测试新的强制门户模板。启动页面应该类似于下面给出的页面。

自定义强制门户登录页面

2. 限制访客网络

强制门户可以与流量整形器结合使用,以充分利用其整形功能。
可以按照以下步骤限制来宾网络上的 Internet 带宽。在本示例中,将每个来宾访问的最大下载带宽设置为 10 Mbps,上传设置为 1 Mbps。

2.1. 设置下载和上传带宽

  1. 导航到 Firewall → Shaper → Pipes。

在 OPNsense 上创建流量整形器管道

  1. 单击表单右下角的 + 为下载创建管道。

    • 单击复选框启用。
    • 带宽设置为 10。
    • 带宽单位设置为 Mbit/s。
    • 掩码设置为 Destination,为让每个客户端使用 10 Mbps 的下载带宽。
    • 输入描述,例如 10Mbps_download。
    • 单击 Save。

创建10 Mbps下载带宽管道

  1. 单击 + 为上传流量添加另一个管道。

    • 单击复选框启用。
    • 带宽设置为 1。
    • 带宽单位设置为 Mbit/s。
    • 掩码设置为 Destination。
    • 输入描述,例如 1Mbps_upload。
    • 单击 Save。

创建 1 Mbps 上传带宽管道

  1. 单击 Apply 应用更改。

2.2. 添加下载和上传限制规则

按照以下说明为访客网络上的下载和上传流量限制创建整形规则。

  1. 单击 “Rules” 选项卡。

在 OPNsense 上创建流量整形器规则

  1. 单击 + 图标,切换表单左上角的高级模式。

    • 设置接口为 WAN。
    • 接口 2 设置为 GUESTNET。
    • 方向设置为 in。
    • 目标设置为 10Mbps_download。
    • 描述设置为 Limit Guests download to 10 Mbps。
    • 其他设置保留为默认值。
    • 单击 Save。

创建下载流量整形规则1

创建下载流量整形规则2

  1. 再次单击 + 图标,以类似方式创建上传规则:

    • 设置接口为 WAN。
    • 接口 2 设置为 GUESTNET。
    • 方向设置为 out。
    • 目标设置为 1Mbps_upload。
    • 描述设置为 Limit Guests upload to 1 Mbps。
    • 单击 Save。

为 上传创建流量整形规则1

为 上传创建流量整形规则2

  1. 单击 Apply 应用更改。

在 OPNsense 上应用流量整形规则

2.3. 验证访客网络

测试流量整形策略是否真正限制了访客网络上的带宽,可以按照以下说明进行操作:

  1. 将设备连接到访客网络。
  2. 打开浏览器,输入地址后会看到登录表单,点击登录。
  3. 转到速度测试站点,例如 https://www.speedtest.net 进行测试。测试完成后,结果应该与下图类似:

在访客网络上应用流量整形后的带宽限制测试结果

还可以在应用流量整形之前和之后比较带宽速度测试结果。

下载速度测试结果对比(流量整形前后)

上传速度测试结果对比(流量整形前后)

3. 管理凭证系统

OPNsense 的强制门户提供了一个对酒店网络特别有用的简单凭证创建系统。可以按照以下步骤在 OPNsense 防火墙上管理凭证系统。

3.1. 添加凭证服务器

  1. 导航到 System → Access → Servers。

在 OPNsense 上添加访问服务器

  1. 单击屏幕右上角 + 的按钮添加服务器。

    • 输入描述性名称,例如 Vouchers。
    • 将类型设置为 Voucher。
    • 其他选项保留为默认,或根据需要进行设置。
    • 点击 Save。

在 OPNsense 上添加凭证服务器

3.2. 创建优惠券

为访客网络创建优惠券,可以按照以下步骤操作。

  1. 导航到 Services → Captive Portal → Vouchers。
  2. 点击表格右下角的 Create Vouchers。

在 OPNsense 上为强制门户创建凭证

  1. 选择有效期,例如 1 day。

在 OPNsense 上设置优惠券有效期

  1. 根据需要选择 Expiration time(过期时间)。

在 OPNsense 上设置凭证过期

  1. 选择要生成的凭证数量,例如 10。

设置生成的凭证数量

  1. 设置组名,例如 Wi-Fi daily pass。

设置生成的凭证组的名称

  1. 点击 Generate。

生成凭证 CSV 文件

将生成一个名为 Wi-Fi daily pass.csv 的凭证文件。

注意:出于安全原因,优惠券的密码不会保存在 OPNsense 防火墙上。

文件内容包含:

字段描述
用户名访客登录时必须使用的用户名
密码访客登录时必须使用的密码
凭证组团体名称
有效性凭证有效时间,以秒为单位

3.3. 启用凭证身份验证

在 OPNsense 防火墙上启用凭证身份验证,可以按照下面的步骤进行操作。

  1. 导航到 Services → Captive Portal → Zones 选项卡。
  2. 单击 Guest Network 旁边的铅笔图标。

编辑访客网络强制门户

  1. 将 Authenticate using 空字段更改为 Vouchers。

使用Vouchers设置强制门户身份验证

  1. 单击 Save changes 和 Apply 应用新设置。

3.4. 检查凭证状态

要检查凭证的有效性和活动状态,导航至 Services → Captive Portal → Vouchers。选择正确的数据库,例如 Wi-Fi daily pass。

在 OPNsense 上查看凭证状态

4. 在 OPNsense 上查看强制门户会话

要检查活动会话,请导航至 Services → Captive Portal → Sessions,从右上角的选择框中选择适当的区域。当前会话如下所示:

检查 OPNsense 上的活动强制门户会话

提示:要删除活动会话,可以单击垃圾桶图标。

删除强制门户上的活动会话

OPNsense 提供了一个非常强大的 CLI,可以使用 CLI 获取所有活动会话状态的列表。
在 shell 环境下,可以输入以下命令,查看区域 id 0 上的活动会话:

root@OPNsense:~ # configctl captiveportal list_clients 0 
sessionid username ip_address mac_address total_bytes idletime totaltime acc_session_timeout 
ivN8tfSozem614bkXzeZXQ== Q$)49ZHm 172.16.10.100 8c:16:45:6d:76:28 2086815 2 240 86400

原文地址

觉得内容不错?我要

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