OPNsense设置强制门户教程

时间:2022-11-07 18:56:32

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

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

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

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

配置强制门户的好处

1.安全性

强制门户可以帮助企业保持业务符合监管标准和良好实践,通过热点向用户提供 Internet 访问。

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

2.带宽管理

一些用户总是滥用互联网服务,例如每天保持数小时在线,每天访问多次,甚至通过多个终端连接。

强制门户提供了许多措施来确保对所有用户的充分访问:可以控制连接时间、每个用户的终端数量、带宽使用。

可以使用强制门户管理带宽,并创建可配置的时间限制,来确保每个用户都可以保持连接,并访问网络。

3.市场营销

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

强制门户如何工作

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

OPNsense强制门户具有以下功能:

  1. 基于类别的Web过滤:通过结合强制门户和缓存代理,可以使用基于Web类别的过滤并阻止用户访问特定的内容,以及通过启用缓存来减少Internet 带宽使用并提高响应时间。
  2. 超时和随时回来:连接可以在设定的时间后终止(空闲超时)和/或在设定的分钟数后强制断开连接,即使用户仍然处于活动状态(硬超时)。如果用户在空闲和/或硬超时内重新连接,则不需要登录,并且可以恢复用户的活动会话。
  3. 带宽管理: 防火墙具有流量整形功能。其内置的流量整形器可用于执行以下操作:
  • 可以优先考虑协议端口号和/或 IP 地址。
  • 均匀分配带宽。
  1. 绕过门户: 可以使用白名单选项来允许某些 IP 地址或 MAC 地址绕过门户。
  2. 模板管理: OPNsense中独特的模板管理器可以轻松创建自己的登录页面。同时,它提供了额外的功能,例如:
  • 创建自己的弹出窗口的选项
  • URL重定向:通过强制门户认证或点击后,可以将用户强制重定向到指定的URL。
  • 自定义起始页
  1. 区域管理:可以在每个接口上配置不同的区域,也可以多个接口共享一个区域配置。每个区域都可以使用自己独特的强制门户模板或与另一个区域共享。
  2. 身份验证: OPNsense强制门户提供 HTTPS 安全身份验证或带有 URL 重定向到特定页面的仅启动门户。要对区域中的用户进行身份验证,可以使用以下来源:
  • 本地用户管理器
  • 代金券/门票
  • Radius
  • LDAP [微软活动目录]
  • 无身份验证(仅限启动页面)
  • 多个(前面的组合)
  1. 优惠券管理器: OPNsense 的强制门户包括一个简单的优惠券创建系统,可以将优惠券导出到为CSV 文件,并与LibreOffice 或 Microsoft Word 模板结合来打印凭证,生成包含您公司徽标和样式的专业外观的卡片。
  2. 平台集成:强制门户应用程序可以使用集成的 REST API 与其他服务集成。
  3. 实时报告: OPNsense强制门户具有基本的实时报告功能,例如:
  • 活跃期
  • 优惠券剩余时间
  • 最高 IP 带宽使用情况(实时图表)

强制门户设置

为保持网络安全,一般应将访客网络与专用 LAN 隔离,然后在访客网络上部署一个强制门户,让访客访问Internet。

在本教程中,我们将为OPNsense上的访客网络启用和配置强制门户,具有三个网络接口/区域:

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

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

第 1 步 - 接口配置

1.1. 导航到​​Interfaces​​​→​​Assignments​​。

1.2. 在字段中输入接口的描述性名称,如GUESTNET

1.3. 按下​​+​​按钮添加新接口。

OPNsense设置强制门户教程

图 1. GuestNetwork 的接口分配

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

OPNsense设置强制门户教程

图 2. 保存新创建的接口

1.5. 在接口列表中单击​​GUESTNET​​更改其设置。

1.6. 选择​​Enable Interface​​。

1.7. 选择​​Block bogon networks​​选项。

1.8. ​​IPv4 Configuration Type​​​选择为​​Static IPv4​

OPNsense设置强制门户教程

图 3. 启用 GuestNet 接口

1.9. 设置静态 IPv4 地址,例如​​172.16.10.1​​​, 掩码为 ​​24​​。

1.10. ​​IPv4 Upstream Gateway​​​选择​​Auto detect​​。

OPNsense设置强制门户教程

图 4. GuestNet 接口上设置 IP 地址

1.11. 单击​​Save​​​,然后单击​​Apply changes​​。

OPNsense设置强制门户教程

图 5. 应用更改

第 2 步 - DHCP 服务器配置

2.1. 导航到​​Services​​​→ ​​DHCPv4​​​→ ​​[GUESTNET]​​。

2.2. 在 GUESTNET 接口上启用DHCP 服务器。

2.3. 设置 DHCP 池范围,例如从​​172.16.10.100​​​到​​172.16.10.200​​。

2.4. 可以指定​​DNS server​​,不指定则默认为接口地址。

2.5. 设置​​Gateway IP address​​​,如​​172.16.10.1​​(OPNsense GuestNet i接口 IP

2.6. 其他选项保留为​​default​​。

2.7. 点击​​Save​

OPNsense设置强制门户教程

图 6. DHCP 配置

第 3 步 - 定义防火墙规则

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

3.1. 允许访问 DNS服务

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

OPNsense设置强制门户教程

图 7. 允许 DNS Rule-1

OPNsense设置强制门户教程

图 8. 允许 DNS 规则 2

3.2. 允许强制门户登录

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

OPNsense设置强制门户教程

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

OPNsense设置强制门户教程

图 10. 允许访问强制门户的防火墙规则2

3.3. 阻止对局域网访问

按照下图定义规则来阻止访客访问公司 LAN:

OPNsense设置强制门户教程

图 11. 阻止GuestNet对 LAN的访问1

OPNsense设置强制门户教程

图 12. 阻止GuestNet对 LAN的访问2

3.4. 阻止对防火墙的访问

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

OPNsense设置强制门户教程

图 13. 阻止GuestNet对防火墙的访问1

OPNsense设置强制门户教程

图 14. 阻止GuestNet对防火墙的访问2

3.5. 允许访客访问

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

OPNsense设置强制门户教程

图 15. 允许访客网络访问 Internet1

OPNsense设置强制门户教程

图 16. 允许访客网络访问 Internet2

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

OPNsense设置强制门户教程

图 17.  GuestNet接口防火墙规则

第 4 步 - 强制门户创建

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

4.1. 导航到​​Services​​​→ ​​Captive Portal​​​→ ​​Administration​​。

OPNsense设置强制门户教程

图 18. 创建强制门户

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

OPNsense设置强制门户教程

图 19. 为强制门户设置区域1

4.3. 启用区域。

4.4. 设置​​Interfaces​​​为​​GUESTNET​​。(取消选择局域网)

4.5. 可以设置​​Authenticate using​​为空白不需要身份验证..(删除任何默认设置)

4.5. 设置​​Idle timeout​​为 0。

4.6. 设置​​Hard timeout​​为 0。

4.7. 取消选中​​Concurrent user logins​​,以便用户只能登录一次。

4.8. 可以为HTTPS 选择Web GUI TLS 证书,或者将 SSL 证书保留为​​none​​使用纯 HTTP。

4.9. 保留​​Custom template​​​为​​none​​,以使用默认模板。

4.10. 在描述字段中输入区域描述,例如访客网络。

4.11. 将其他选项保留为默认值。

4.12. 单击​​Save​​。

4.13. 单击​​Apply​​。

OPNsense设置强制门户教程

图 20.  为强制门户设置区域2

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

OPNsense设置强制门户教程

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

测试从访客网络访问internet是否正常

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

OPNsense设置强制门户教程

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

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

测试强制门户防火墙规则是否生效

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

  1. 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.
  1. 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.1. 导航到​​Services​​​→ ​​Captive Portal​​​→​​Templates​​选项卡。

1.2. 点击右下角的下载图标下载默认模板。

OPNsense设置强制门户教程

图 23. 下载强制门户默认模板

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

OPNsense设置强制门户教程

图 24. 解压缩默认模板文件

1.4. 用编辑器打开文件​​index.html​​。

1.5. 将默认徽标(default-logo.png)更改为您的徽标文件名,例如 company-logo.png

1.6. 去掉顶部的导航栏

1.7. 从​​< img >​​标签中删除高度和宽度

1.8. 包括欢迎信息。

1.9. 包括指向您公司网站的链接。

1.10. 找到以下代码段

<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.11. 将上面的代码段更改为下面给出的类似代码段。不要忘记用您自己的替换相关字段

<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 profesional usage</h2>
<h3>See our website for more details: <a href="https://www.opnsense.xxx">My Company</a></h3>
</div>
</header>

1.12. 将公司徽标(company-logo.png) 复制到 image(images) 目录。

1.13.  压缩模板目录。

1.14.  单击模板选项卡上​​+​​ 按钮,上传新创建的模板 zip 文件。

1.15.  输入一个模板名称,例如 MyCompany。

1.16. 单击​​Upload​​图标。

OPNsense设置强制门户教程

图 25. 上传新的强制门户模板

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

OPNsense设置强制门户教程

图 26. 在强制门户上应用新模板

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

1.19. 导航到​​Services​​​→ ​​Captive Portal​​​→​​Zones​​选项卡。

1.20. 单击​​Guest Network​​旁边的铅笔图标。

OPNsense设置强制门户教程

图 27. 编辑Guest Network强制门户

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

OPNsense设置强制门户教程

图 28. 设置强制门户模板

1.22。单击​​Save​​​,然后​​Apply​​应用新设置。

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

OPNsense设置强制门户教程

图 29. 自定义强制门户登录页面

2. 限制访客网络

强制门户可以与流量整形器结合使用,以充分利用其整形功能。

可以按照以下步骤限制来宾网络上的 Internet 带宽。在本示例中,将每个来宾访问的最大下载带宽设置为10 Mbps,上传设置为1Mbps。

2.1. 设置下载和上传带宽

2.1.1. 导航到​​Firewall​​​→ ​​Shaper​​​→ ​​Pipes​​。

OPNsense设置强制门户教程

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

2.1.2. 单击表单右下角的​​+​​ 为下载创建管道

2.1.3. 单击复选框启用。

2.1.4. 带宽设置为​​10​​。

2.1.5. 将带宽单位设置为​​Mbit/s​

2.1.6. 将掩码设置​​Destination​​,为让每个客户端使用 10 Mbps 的下载带宽。

2.1.7. 输入描述,例如​​10Mbps_download​

2.1.8. 单击​​Save​​。

OPNsense设置强制门户教程

图 31.创建10 Mbps下载带宽管道

2.1.9 . 单击表单右下角的 + 为上传流量添加另一个管道。

2.1.10. 单击复选框启用。

2.1.11. 将带宽设置为​​1​​。

2.1.12. 将带宽单位设置为​​Mbit/s​

2.1.13. 将掩码设置为​​Destination​

2.1.14. 输入描述,例如​​1Mbps_upload​

2.1.15 .单击​​Save​​。

OPNsense设置强制门户教程

图 32. 创建1Mbps 上传带宽管道

2.1.16. 单击​​Apply​​应用更改。

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

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

2.2.1. 单击“Rules”选项卡。

OPNsense设置强制门户教程

图 33. 创建流量整形规则

OPNsense设置强制门户教程

图 34. 创建下载流量整形规则1

2.2.2. 单击​​+​​图标。

2.2.3. 切换表单左上角的高级模式。

2.2.4. 设置接口为​​WAN​

2.2.5. 接口 2 设置为​​GUESTNET​

2.2.6. 方向设置为​​in​

2.2.7. 目标设置为​​10Mbps_download​

2.2.8. 描述设置为​​Limit Guests download to 10 Mbps​​。

2.2.9. 其他设置保留为默认值。

2.2.10. 单击​​Save​​。

OPNsense设置强制门户教程

图 35. 为 下载创建流量整形规则2

OPNsense设置强制门户教程

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

2.2.11. 单击​​+​​图标。

2.2.12. 切换表单左上角的高级模式。

2.2.13. 设置接口为​​WAN​

2.2.14. 接口 2 设置为​​GUESTNET​

2.2.15. 方向设置为​​out​

2.2.16 .目标设置为​​1Mbps_upload​

2.2.17. 描述设置为​​Limit Guests upload to 1 Mbps​

2.2.18. 其他设置保留为默认值。

2.2.19. 单击​​Save​​。

OPNsense设置强制门户教程

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

2.2.10. 单击​​Apply​​应用更改。

OPNsense设置强制门户教程

图 38. 在 OPNsense 上应用流量整形规则

2.3. 验证访客网络

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

2.3.1. 将设备连接到访客网络

2.3.2. 打开浏览器。

2.3.3. 输入要浏览的地址,将会看到登录表单。

2.3.4. 点击登录。

2.3.5. 转到速度测试站点,例如​​https://www.speedtest.net​​进行测试。测试完成后,结果应该与下图类似:

OPNsense设置强制门户教程

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

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

OPNsense设置强制门户教程

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

OPNsense设置强制门户教程

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

3. 管理凭证系统

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

3.1. 添加凭证服务器

按照以下步骤添加凭证服务器:

3.1.1. 导航到​​System​​​→ ​​Access​​​→​​Servers​

OPNsense设置强制门户教程

图 42. 添加访问服务器

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

3.1.3. 输入描述性名称,例如​​Vouchers​​。

3.1.4. 将类型设置为​​Voucher​​。

3.1.5. 其他选项保留为默认,或根据需要进行设置。

3.1.6. 点击​​Save​​。

OPNsense设置强制门户教程

图 43. 在 OPNsense 上添加凭证服务器

3.2. 创建优惠券

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

3.2.1. 导航到​​Services​​​→ ​​Captive Portal​​​→ ​​Vouchers​​。

3.2.2. 点击表格右下角的​​Create Vouchers​​ 。

OPNsense设置强制门户教程

图 44. 为强制门户创建凭证

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

OPNsense设置强制门户教程

图 45. 设置优惠券有效期

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

OPNsense设置强制门户教程

图 46. 设置凭证过期

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

OPNsense设置强制门户教程

图 47. 设置生成的凭证数量

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

OPNsense设置强制门户教程

图 48. 设置生成的凭证组的名称

3.2.7. 点击​​Generate​​。

OPNsense设置强制门户教程

图 49. 生成凭证CSV文件

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

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

文件内容包含:

场地

描述

用户名

访客登录时必须使用的用户名

密码

访客登录时必须使用的密码

凭证组

团体名称

有效性

凭证有效时间,以秒为单位

3.3. 启用凭证身份验证

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

3.3.1.导航到​​Services​​​→ ​​Captive Portal​​​→​​Zones​​选项卡。

3.3.2. 单击​​Guest Network​​旁边的铅笔图标。

OPNsense设置强制门户教程

图 50. 编辑访客网络强制门户

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

OPNsense设置强制门户教程

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

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

3.4. 检查凭证状态

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

OPNsense设置强制门户教程

图 52. 在 OPNsense 上查看凭证状态

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

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

当前会话如下所示:

OPNsense设置强制门户教程

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

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

OPNsense设置强制门户教程

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

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

​原文地址​​。