|
马上注册成为ROSABC会员,随时发帖回复。
您需要 登录 才可以下载或查看,没有账号?会员注册
x
HotSpot 防火墙部分
除了在/ip hotspot 子目录本身的明显的动态规则(像主机及动态用户),一些附加的规则会在激活一个 HotSpot 服务时被添加到防火墙表中。不像 RouterOS 2.8 版本,只有相对较少的防火墙规则添加在防火墙中,因为主要的工作是有一对一nat 算法完成的。
nat 规则
从/ip firewall nat print dynamic 命令你可以获取如下(在每条规则后跟有评注):
0 D chain=dstnat hotspot=from-client action=jump jump-target=hotspot
把对数据包的所有 HotSpot 相关任务从 HotSpot 客户放到一个单独的链中:
1 D chain=hotspot protocol=udp dst-port=53 action=redirect to-ports=64872
2 D chain=hotspot protocol=tcp dst-port=53 action=redirect to-ports=64872
把所有 DNS 请求都重定向到 HotSpot 服务。64872 端口对所有 HotSpot 用户提供 DNS 服务。如果你想要 HotSpot 服务 器也监听其他端口,在这里以同样方式添加规则,改变 dst-port 属性。
3 D chain=hotspot protocol=tcp dst-port=80 hotspot=local-dst action=redirect to-ports=64873
把所有 HTTP 登陆请求定向到 HTTP 登陆 servlet。64873 就是 HotSpot HTTP servlet 端口。
4 D chain=hotspot protocol=tcp dst-port=443 hotspot=local-dst action=redirect to-ports=64875
把所有 HTTPS 登陆请求定向到 HTTPS 登陆 servlet。64875 是 HotSpot HTTPS servlet 端口。
5 D chain=hotspot protocol=tcp action=jump hotspot=!auth jump-target=hs-unauth
所有其他的数据包除了 DNS 及来自未认证客户的登陆请求以外都应该通过 hs-unauth 链。
6 D chain=hotspot protocol=tcp action=jump hotspot=auth jump-target=hs-auth
来自认证用户的数据包通过 hs-auth 链
7 D ;;; www.rosabc.com
chain=hs-unauth dst-address=159.148.147.196 protocol=tcp dst-port=80 action=return
首先在 hs-unauth 链中把所有影响 TCP 协议的东西都放到/ip hotspot walled-garden ip 子目录中。现在我们把
www.rosabc.com 从重定向到登陆页面中排除。
8 D chain=hs-unauth protocol=tcp dst-port=80 action=redirect to-ports=64874
所有其他 HTTP 请求都被定向到监听 64874 的 Walled Garden 代理服务器。如果在/ip hotspot walled-garden 子 目录有一个 HTTP 请求的 allow 条目,它将被转发到目的。否则,请求将会自动被重定向到 HotSpot 登陆 servlet(端口
64873)。
9 D chain=hs-unauth protocol=tcp dst-port=3128 action=redirect to-ports=64874
10 D chain=hs-unauth protocol=tcp dst-port=8080 action=redirect to-ports=64874
默认设置的 HotSpot 假设只有这些端口才能用于 HTTP 代理请求。这两个条目用于“捕捉”客户到未知代理的请求。如: 使的有可能让带有未知代理设置的客户与 HotSpot 系统能够一起工作。这个特性叫做“通用代理”。如果探测到一个客户 正在使用某个代理服务器,系统将自动以 http hotspot 标志对数据包进行标记以便处理未知代理问题。注意已使用的端口(64874)与#8 规则中对 HTTP 请求的一样(所以 HTTP 和 HTTP 代理请求都由相同的代码处理)。
11 D chain=hs-unauth protocol=tcp dst-port=443 action=redirect to-ports=64875
HTTPS 代理监听 64875 端口
12 D chain=hs-unauth protocol=tcp dst-port=25 action=jump jump-target=hs-smtp
对 SMTP 协议的重定向也可以在 HotSpot 配置中定义。如果是这样,那么一个重定向规则将被放在 hs-smtp 链中。这个 完成后以便带有未知 SMTP 配置的用户能通过服务提供商(你们的)的 SMTP 服务器发送邮件,而代替了用户在自己电脑配 置的 SMTP 服务器。
13 D chain=hs-auth protocol=tcp hotspot=http action=redirect to-ports=64874
对认证用户提供 HTTP 代理服务。认证用户的请求可能需要透明的代理(“通用代理”技术以及广告特征)。http 标志会 自动的放在被 HotSpot HTTP 代理探测到的服务器的 HTTP 代理请求(监听 64874 端口的)。这个完成后以便有代理设置 的用户可以使用 HotSpot 网关代替用户在自己电脑上配置的代理服务器。这个标志也会被放在任何概要被配置为透明代理 的用户所做的 HTTP 请求上。
14 D chain=hs-auth protocol=tcp dst-port=25 action=jump jump-target=hs-smtp
对授权用户提供 SMTP 代理(同#12 规则的一样)
包过滤规则
从/ip firewall filter print dynamic 命令,你可以获得:
0 D chain=forward hotspot=from-client,!auth action=jump jump-target=hs-unauth
任何来自未认证且通过路由器的数据包都将被发送到 hs-unauth 链。hs-unauth 执行基于 IP 的 Walled Garden 过滤 器。
1 D chain=forward hotspot=to-client,!auth action=jump jump-target=hs-unauth-to
任何通过路由器到达客户的包都将被重定向到另一个叫做 hs-unauth-to 的链。这个链会拒绝到达客户的未认证请求。
2 D chain=input hotspot=from-client action=jump jump-target=hs-input
任何从客户到达路由器本身的包将重定向到另一个叫 hs-input 的链。
3 D chain=hs-input protocol=udp dst-port=64872 action=accept
4 D chain=hs-input protocol=tcp dst-port=64872-64875 action=accept
允许客户访问本地认证和代理服务。
5 D chain=hs-input hotspot=!auth action=jump jump-target=hs-unauth
所有其他来自未认证客户到路由器本身的数据流都将会与通过路由器的数据流一样的方式被处理。
6 D chain=hs-unauth protocol=icmp action=return
7 D ;;; www.rosabc.com
chain=hs-unauth dst-address=159.148.147.196 protocol=tcp dst-port=80 action=return
不仅在 TCP 协议相关的 Walled Garden 条目被添加的 NAT 列表中,在包过滤器中 hs-unauth 链表也会添加在/ip hotspot walled-garden ip 目录中设置的东西。这就是为什么,尽管你只在 NAT 表中添加了一个条目却有两条规则的 原因。
8 D chain=hs-unauth protocol=tcp action=reject reject-with=tcp-reset
9 D chain=hs-unauth action=reject reject-with=icmp-net-prohibited
任何没有被 Walled Garden 记录在表格上的都将被拒绝。注意拒绝 TCP 连接的 TCP 重启的使用。
10 D chain=hs-unauth-to action=reject reject-with=icmp-host-prohibited
用 ICMP 拒绝信息拒绝所有到达客户的包。
|
|