一个强制网络门户允许您通过网页强制认证,或重定向到指定网页。这通常用于热点网络,但也广泛用于企业网络,以便在无线或Internet访问上获得额外的安全层。

典型应用

  • 访客网络

  • 酒店和公共区域无线上网

  • 其他需要的场景

模板管理

OPNsense独特的模板管理器使您可以轻松设置自己的登录页面。同时它还提供其他功能,例如:

  • URL重定向

  • 自定义弹出窗口的选项

  • 自定义启动页面

区域管理

可以在每个接口上设置不同的区域,或者多个接口可以共享一个区域设置。每个区域可以使用不同的强制门户模板或与其他区域共享。

认证

通过HTTPS或仅限splash的门户网站进行安全身份验证,并将URL重定向到指定页面,可以使用不同的源来验证区域中的用户:

  • LDAP [Microsoft Active Directory]

  • Radius

  • 本地用户管理

  • 优惠券/门票

  • 不认证(仅限启动画面)

  • 多个(以上组合)

凭证管理

OPNsense的Captive Portal有一个简单的凭证创建系统,可以将凭证导出到csv文件,以便与您喜欢的应用程序一起使用。

超时和重连接

用户空闲一段时间后(空闲超时),可以终止连接和/或即使用户仍然处于活动状态(硬超时),也会在几分钟后断开连接。如果用户在空闲超时和/或硬超时内重新连接,则不需要登录,用户可以恢复其活动会话。

带宽管理

内置流量×××器可用于:

  • 均匀分享带宽

  • 优先考虑协议端口号和/或IP地址

门户旁路

可以将指定MAC和IP地址列为白名单,以绕过门户网站。

实时报告

集成了实时报告系统,提供:

  • 带宽使用IP地址排名(流量图)

  • 活跃的会话

  • 优惠券剩余时间

基于类别的Web过滤

通过将强制门户与高速缓存代理相结合,可以利用类别Web过滤并为用户阻止某些内容,并通过启用高速缓存来减少带宽并缩短响应时间。另请参见:高速缓存代理

平台集成

通过集成的REST API,强制门户应用程序可以与其他服务集成。请参阅:使用API

设置访客网络

访客网络广泛用于允许客人在酒店,房车公园或企业中控制互联网访问。

注意:对于本示例,我们希望GUESTNET接口与您的实际访客网络交换机或接入点连接。本教程未说明如何设置无线网络。

高级

强制门户也可以与代理的基于类别的Web过滤相结合。本教程将介绍如何组合这两个功能。

先决条件

我们将使用全新的OPNsense安装开始配置,更新到最新的补丁版本(在我们的示例中为16.1.5_1)。本示例的防火墙需要3个网络端口(LAN / WAN / GUESTNET)。

第1步 - 配置接口

对于访客网络,我们将添加一个新接口。转到接口-> 分配并使用+添加新接口。点击保存。新接口将被称为OPT1,单击左侧菜单中的[OPT1]来更改设置。

选择启用接口,并填写以下数据:

描述 GUESTNET 接口的描述性名称
阻止专用网络 不选
阻止bogon网络 不选
IPv4配置类型 静态IPv4
IPv6配置类型 没有
MAC地址 (留空)
MTU (留空)
MSS (留空)
速度和双工 默认
静态IPv4地址 192.168.200.1/24
IPv4上游网关 没有

点击保存,然后点击应用更改

第2步 - 配置DHCP服务器

转到服务-> DHCPv4->,然后单击GUESTNET选项卡。

  • 填写以下内容为(其他选项保留默认设置):

启用 选中 在GUESTNET上启用DCHP服务器
范围 192.168.200.100-192.168.200.200
DNS服务器 192.168.200.1 提供带租约的DNS
网关 192.168.200.1 提供租约的网关

单击保存

第3步 - 添加防火墙规则

转到防火墙 - >规则,添加新规则。

现在添加以下规则(按执行顺序排列):

1.允许DNS

允许访客访问DNS转发器。规则内容(保留所有其他选项默认):

操作 放行 允许此流量
接口 GUESTNET GuestNet接口
协议 TCP / UDP
GUESTNET 网络
目标 GUESTNET 地址
目标端口范围 DNS / DNS 从DNS到DNS
类别 GuestNet Basic Rules 用于分组规则的类别
描述 Allow DNS

单击保存

2.允许强制门户登录

操作 放行 允许此流量
接口 GUESTNET GuestNet接口
协议 TCP
GUESTNET网络
目标 GUESTNET地址
目标端口范围 8000/10000
类别  GuestNet Basic Rules 用于分组规则的类别
描述 Allow Captive Portal Login

单击保存

3.阻止本地网络

操作 阻止 阻止此流量
接口 GUESTNET GuestNet接口
协议 任何
GUESTNET网络
目标 LAN
类别 GuestNet Basic Rules 用于分组规则的类别
描述 Block Local Networks

单击保存

4.阻止访问防火墙

操作 阻止 阻止此流量
接口 GUESTNET GuestNet接口
协议 any
GUESTNET网络
目标 GUESTNET地址
类别 GuestNet Basic Rules 用于分组规则的类别
描述 Block Firewall Access

单击保存

注意:这些规则用于阻止访问我们的本地LAN网络和访客访问防火墙。如果您有多个本地网络,则需要使用多个规则阻止它们中的每一个,或者使用更大的子网来覆盖它们。

1.允许访客网络

操作 放行 允许此流量
接口 GUESTNET GuestNet接口
协议 any
GUESTNET网络
目的地 any
目标端口范围 any
类别 GuestNet Basic Rules 用于分组规则的类别
描述 Allow Guest Network

单击保存,然后单击应用更改

完成后的规则列表应如下图所示:

第4步 - 创建强制门户

转到服务 - >强制门户 - >管理

要添加新区域,请按表单右下角的+

注意:当使用多个接口与强制网络门户时,每个接口可以有自己的区域,或者多个接口可以共享区域。

本示例的设置如下:

启用 选中
接口 GUESTNET 删除默认值并添加GUESTNET
使用认证 (留空) 删除任何默认设置
空闲超时 0 禁用空闲超时
强制超时 0 没有硬超时
并发用户登录 不选 用户只能登录一次
SSL证书 none 使用普通的http
主机名 (留空) 用于重定向登录页面
允许的地址 (留空)
自定义模板 none 使用默认模板
描述 Guest Network 选择区域的说明

保存应用

第5步 - 创建模板

模板功能是OPNsense强制门户解决方案最强大的功能之一,它非常容易使用。让我们创建一个自定义登录页面,单击选项卡模板,然后单击右下角的下载图标()。

现在下载默认模板,我们将使用它来创建自己的模板。解压缩模板zip文件,文件如下所示:

可以修改模板的大多数文件,有些是默认文件不能修改。上传后,将忽略对exclude.list中列出的文件所做的任何更改。目前这些包括bootstrap java脚本和一些字体。

启用强制门户后,默认屏幕如下所示:

让我们使用新的徽标和欢迎文本来更改这个默认设置,例如:

使用编辑器打开index.html文件进行修改。

让我们对模板进行以下修改:

  1. 将徽标更改为company-logo.png

  2. 删除顶部的导航栏

  3. <img>标记中删除高度和宽度

  4. 添加欢迎文本

  5. 建立公司网站的链接

找到以下部分:

并改为:

将公司徽标复制到图像目录。现在压缩模板目录并单击模板选项卡上的+上传新模板。

Download the example Template (full)

输入模板名称,在这里我们使用Company。点击上传

要在GUESTNET接口上启用强制网络门户,只需单击“ 应用”

第6步 - 限制访客带宽

在本示例中,我们将为访客网络的Internet访问保留10Mbps的下载和1Mbps的上传带宽。这个带宽将在连接的客户端之间平均分配。

注意:通过均匀分享,我们的意思是如果10个用户同时尝试使用尽可能多的带宽,那么每个人都会得到1/10。因此,在本例子中,每个客户端设置为1Mbps下载带宽。

转至:Firewall->Traffic Shaper->Settings(防火墙 - >流控 - >设置)

单击表单右下角的+,为下载创建管道,并输入以下详细信息:

启用 选中
带宽 10
单位 Mbit / s
掩码 目标
描述 pipe_10Mbps_down

单击保存更改。并为上传流量添加另一个管道。

启用 选中
带宽 1
单位 Mbit / s
掩码 目标
描述 pipe_1Mbps_up

单击保存更改

创建流量×××器规则。单击规则选项卡,然后按 + 执行操作。

首先切换高级模式(表单的左上角),然后填写以下详细信息(其他设置保留默认值):

序列 (保留默认值)
接口 WAN
接口2 GUESTNET
方向
目标 pipe_10Mbps_down
描述 Limit Guests download to 10Mbps

单击保存更改

序列 (保留默认值)
接口 WAN
接口2 GUESTNET
方向
目标 pipe_1Mbps_up
描述 Limit Guests upload to 1Mbps

单击保存更改

现在单击“ 应用”来应用更改。

第7步-测试GuestNet

将您的PC或笔记本电脑连接到访客网络并启动您喜欢的浏览器。输入要浏览的地址,您将看到我们在上一步中使用模板创建的登录表单。单击登录并开始浏览。

要测试您的流量带宽,请访问速度测试站点,例如http://www.speedtest.net/ 。测试的结果应如下图所示:

注意:请记住,在此测试中我们只有一个连接的客户端,因此所有预留带宽都可供我们的客户使用。

×××酒店示例

这一节我们将实施×××酒店访客网络解决方案。先按照上面1-7的步骤选择您想要为客人使用的模板。

第8步 - 添加凭证服务器

转到:System->Access->Servers(系统 - >访问- >服务器),然后单击页面右上角的添加服务器

填写:

描述性名称 Vouchers 凭证服务器的名称
类型 优惠券

单击“ 保存”

第9步 - 创建优惠券

返回强制门户并选择优惠券(服务 - >强制门户 - >凭证)。单击表单右下角的“ 创建凭证 ”。

让我们为客人创造1天的优惠券:

输入有效期(1天),凭证数量和组名称(Wifi day pass)。例如,我们创建了10张优惠券。单击Generate(生成)

将生成一个名为wifi day pass.csv的文件。该文件的内容如下所示:

username,password,vouchergroup,validity"IgJw@Pqf","MLi+Sb7Ak#","Wifi day pass","86400""++?f[@i[","!m*)e(@;F,","Wifi day pass","86400""bbtK9mBk","f/jCDL3:)b","Wifi day pass","86400""iD%L[jLJ","I#FoZ#g!AY","Wifi day pass","86400""+4bA\E[I","CNavt@0ck+","Wifi day pass","86400""+,fg/\Sv","#22iIL-iQA","Wifi day pass","86400"":;Pc\N#s","Y\HuG9vAN$","Wifi day pass","86400""00nLb=0Q","0*C_\_Nb_x","Wifi day pass","86400""PA$J0YHF","kp!q%9;m)g","Wifi day pass","86400""a,mCxbya","LcnCb#g/di","Wifi day pass","86400"

内容如下:

Username 访客需要登录的用户名
password 客人需要登录的密码
vouchergroup 您创建的组的名称
validity 优惠劵在几秒钟内有效的时间

注意:出于安全原因,优惠劵的纯文本密码不会存储在防火墙上。

通过将cvs数据与word、open office或任何其他dtp / text编辑器合并,此文件可填写在访客凭证(在纸上)。

例如:

注意:激活优惠券后,无论用户是否登录或注销,都将使用该时间。对于“使用时间”的解决方案,可以通过设置FreeRADIUS进行记帐来处理。

第10步 - 凭证认证

通过更改区域设置启用凭证身份验证。转到选项卡区域,然后单击旁边的铅笔图标选择访客网络。

将原来身份验证栏的留空字段改为Vouchers

完成后,单击“ 保存更改”,然后单击“ 应用”以应用新设置。

现在,用户将看到登录表单作为模板的一部分:

检查会话

要检查活动会话,请转到服务 - >强制门户 - >会话 ,我们当前的会话如下所示:

您可以通过单击垃圾箱来删除活动会话。

注意:注意右上角的选择框,您可以在配置多个区域时选择正确的区域。

检查凭证状态

您可以通过转到强制网络门户的凭证页面(服务 - >强制门户 - >凭证)来检查凭证的有效性和活动状态,并选择正确的数据库(在我们的示例中为Wifi day pass )。

注意:状态有效意味着它已激活且仍然有效。

高级功能 - 会话弹出窗口

让我们创建一个会话弹出窗口,这样用户就可以看到有关会话和注销的一些细节。我们可以使用OPNsense的内置api来调用。

使用以下api调用(对于区域ID 0):

/api/captiveportal/access/status/0/

此api调用的响应如下所示(对于活动会话):

{"userName":"IgJw@Pqf","macAddress":"10:dd:b1:bc:75:46","acc_session_timeout":14095,"authenticated_via":"Vouchers","packets_out":2834,"bytes_in":512869,"last_accessed":1457527526,"zoneid":0,"sessionId":"npd5bd6SIVQeMfIbWBdong==","startTime":1457526930.1719,"bytes_out":1322351,"ipAddress":"192.168.200.100","packets_in":3181,"clientState":"AUTHORIZED"}

你可以点击下面的链接下载完整的演示模板:

Download the example Template (with popup)

该演示包括一个名为session_popup.html的新文件,其中包含显示凭证上剩余时间和注销按钮的所有逻辑。以及对index.html页面的简单更新,以便在成功登录时调用弹出窗口。后者看起来像这样(用一点上下文显示):

高级功能 - CLI会话状态

OPNsense有一个非常强大的CLI,对于调试目的特别有用。在本示例中,我们将使用cli列出所有活动会话的状态。

在cli提示符下输入以下内容(对于区域ID 0):

configctl captiveportal list_clients 0

输出将类似于此:

转载于:https://blog.51cto.com/fxn2025/2309198

OPNsense用户手册-强制网络门户相关推荐

  1. OPNsense用户手册-多WAN设置

    多WAN场景通常用于故障转移或负载平衡,但OPNsense也可以进行组合. WAN故障转移 如果主ISP的连接丢失(或高延迟),WAN故障转移会自动在多个WAN连接之间切换.只要连接不好,所有流量都将 ...

  2. OPNsense用户手册-Netflow导出和分析

    Netflow导出和分析 Netflow是一种由Cisco发明的监控功能,它使用ng_netflow(Netgraph)在FreeBSD内核中实现.由于Netgraph是一个内核实现,因此与softf ...

  3. 11、安全网络架构和保护网络组件

    目录 11.1 OSI模型 11.1.1 OSI模型的历史 11.1.3 封装/解封 11.1.4 OSI模型层次 1.物理层 2.数据链路层 3.网络层 4.传输层 5.会话层 6.表示层 7.应用 ...

  4. 上海贝尔2452交换机_通信网络-OmniSwitch 6250可堆叠的快速以太网交换机系列.pdf

    通信网络-OmniSwitch 6250可堆叠的快速以太网交换机系列 阿尔卡特朗讯OmniSwitch 6250 可堆叠的快速以太网交换机系列 阿尔卡特朗讯OmniSwitchTM 6250 是应用于 ...

  5. HTTPS下强制重定向认证

    网络安全准入对终端设备最开始和直接的就是强制其认证合法性. 原有基于HTTP重定向认证已失效,因为HTTP不安全.且浏览器都强制HSTS技术只能HTTPS. 怎么在HTTPS下还能重定向来认证? 住宿 ...

  6. [朝气蓬勃][22H2]Win11.0.22622.450专工-微创-优化

    终于,22621上了22H2通道,比22000性能好很多也稳定很多,于是乎出一个优化微创版.如果这个作品合你心意,那么我感到荣幸至极. 部分集成来源于MSMG,部分优化来源于MDL和论坛,感谢各位坛友 ...

  7. aruba无线轻轨项目

    在无线网络管理方面,必须具有无线的集中控管.智能调控.自动恢复.负载均衡等实用功能,所建无线网络可以适应多种环境的变化,可动态地保证良好的应用效果.还应具有远端AP数据进行采集.远程监控.终端定位等功 ...

  8. 第三方机构能获取我的MAC地址吗?

    有关浏览器指纹识别,我们最常被问到的问题是,我们是否可以隐藏MAC地址?对注重隐私的业务来说,这意味着什么?换一种更直接的说法--网站或第三方机构是否可以获取我的MAC地址?就这一问题,我们展开了调查 ...

  9. 思博伦OpenFlow性能测试白皮书下篇

    OpenFlow性能测试目前依然处于起步阶段,虽然有少数的开源工具用于测试OpenFlow性能,但是比较OpenFlow产品的性能还没有一个标准.思博伦测试仪提出了对这些SDN产品的一个测试标准,作者 ...

  10. pythonweb渗透工具_python web渗透测试工具学习2Web应用交互2访问web工具requests

    Requests是Python基于Apache2 Licensed许可证的人性化HTTP库. Python标准库中urllib2提供了不少HTTP 功能,但API不系统.它有点过时,完成最简单的任务也 ...

最新文章

  1. mysql中int时间和datetime时间的互相转换
  2. xpath的数据和节点类型以及XPath中节点匹配的基本方法
  3. 于ubuntu配置hadoop当问题
  4. 关于java同步包中ConcurrentLinkedQueue类的深入分析与理解
  5. redhat挂载镜像软件包
  6. Python读取Excel文件统计演员参演电影
  7. xercesimpl做什么用的_一体化泵站是用来做什么的有什么用
  8. 匿名对象,String类
  9. php针探,php针探代码,这款针探可以检测你机器的(1/7)
  10. ad20中如何在pcb里查找器件_技巧:Altium Designer中快速定位器件
  11. 统计学基础12-秩和检验
  12. 问题1038:宋小胖买切糕
  13. 在 word 中加入 Mathtype 公式编辑器 解决办法
  14. 华为众高管解读任正非《一江春水向东流》
  15. 如何在互联网上虚度人生?
  16. xxxxxxxxxxxxx
  17. 期货开户加一分高交返靠谱吗?
  18. Leetcode刷题笔记-字符串总结
  19. Python模拟登陆大连交通大学教务在线
  20. 写完博客发现无法用百度搜到?为什么百度搜索资源平台的“链接提交”无法提交链接?教你如何让百度快速收录自己的博客?

热门文章

  1. GIMP制作电子签名
  2. 智慧农业项目建设体系之精准饲喂系统及数据分析
  3. linux无法登录重置密码问题
  4. JavaScript模拟出一个input用于添加本地文件
  5. 使用lgtm发现开源项目安全漏洞
  6. 台达PLC与紫金桥监控组态软件的连接
  7. vue中使用iview修改Cascader的默认数据
  8. 摩登天空音乐节,谁去?(更新4个舞台演出时间表)
  9. 南无阿弥陀佛是什么意思呢
  10. python调用m文件