Kerio Control 防火墙启用 IPv6 方法及相关问题

小助手读文章 00:00 / 00:00

温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。

介绍过 Kerio Control,在 IPv4 环境下是蛮强大的一款集路由、交换、行为管理等为一体的防火墙系统,为什么要特别指明 IPv4 环境呢,这是因为在 IPv6 环境下还是不太完善,当然也可能是我配置的问题,欢迎指正!

相关文章

开启 IPv6 分配

在《潘多拉(PandoraBox | OpenWRT)二级路由旁路由 IPv6 PD 分发设置》中,已经成功启用了 IPv6 PD 分发,所以这里的开启 IPv6 分配是指在旁路由(本文是 Kerio Control)中实施。

Kerio Control 中,IPv6 工作模式只支持无状态。

首先在界面可信 / 本地接口启用 IPv6,配置为自动即可:

启用 IPv6.jpg

然后启用 IPv6 路由公告就可以了:

启用路由公告.jpg

如果只有一条 IPv6 PD 的 WAN 线路,到此就算配置完成。

多个 IPv6 配置问题

当有多条具有 IPv6 PD 的 WAN 线路,内网分配 IPv6 时,每一条线路都会为内网分配一个 IPv6,比如我有三条就给我分配了三个 IPv6:

root@222-cu:~# ifconfig |grep inet6
        inet6 2408:*  prefixlen 64  scopeid 0x0<global>
        inet6 2409:*  prefixlen 64  scopeid 0x0<global>
        inet6 240e:*  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::*  prefixlen 64  scopeid 0x20<link>
        inet6 ::1  prefixlen 128  scopeid 0x10<host>

如果只打算用一条而不用负载均衡,那么实际生效的是在流量规则中指定的线路,如果要用负载均衡,那么首先要在 流量规则 指定出口接口(新建规则):

流量规则.jpg

PS:好在三大运营商 IPv6 的前缀是固定的,如果不是确定的规则设置估计工作量也不小~

到此,对于 Kerio Control 配置完成。

客户端配置

前面讲到,Kerio 给客户端分配了三个 IPv6,对于客户端来说,三个 IPv6 并没有区别,因此如果要负载均衡,也需要在客户端指定出口 IPv6。

Linux

以 Ubuntu 为例,利用 ip6tables 新增 NAT 规则:

root@222-cu:~# ip6tables -t nat -I POSTROUTING -o ens33 -d ::/0 -j SNAT --to-source 2408:*

参数说明

  • -o:指定出口接口
  • -d:指定目标
  • --to-source:指定出口 IP

然后就可以测试一下看看生效的 IPv6 了:

root@222-cu:~# curl http://ipv6.lookup.test-ipv6.com -6
{"ip":"2408:*","type":"ipv6","subtype":"","via":"","padding":"","asn":"4837","asnlist":"4837","asn_name":"CHINA169-BACKBONE CHINA UNICOM China169 Backbone","country":"CN","protocol":"HTTP/1.0"}

如果安装了 jq(Shell 下的 Json 处理命令),还可以加上条件使结果更直观:

root@222-cu:~# curl http://ipv6.lookup.test-ipv6.com -6 -sS | jq -r '"\nIP地址:\(.ip)\n运营商:\(.asn_name)\n"'

IP地址:2408:*
运营商:CHINA169-BACKBONE CHINA UNICOM China169 Backbone
shell 下查询 IPv4 地址命令

同样的,也可以查询 IPv4 地址:

root@222-cu:~# curl http://ipv4.lookup.test-ipv6.com -4 -sS | jq -r '"\nIP地址:\(.ip)\n运营商:\(.asn_name)\n"'

IP地址:*
运营商:CHINA169-BACKBONE CHINA UNICOM China169 Backbone

Windows

方法与 Linux 类似,主要思路就是利用命令行工具删除临时 IPv6 和不需要的 IPv6 地址。

首先删除临时 IPv6 地址,不删除的话分配到的 IPv6 地址翻倍,而实际上并不可用,所以建议删除:

C:\Users\Administrator> netsh interface ipv6 set privacy state=disable

然后查询网卡接口名称:

C:\Users\Administrator> netsh interface ip show interfaces
Idx     Met         MTU          状态                名称
---  ----------  ----------  ------------  ---------------------------
  3          25        1500  connected     10.2.0.139

查询分配到的 IPv6 地址,并删除不需要的 IPv6 地址来实现指定 IPv6 地址:

C:\Users\Administrator>netsh interface ipv6 show addresses
接口 3: 10.2.0.139

地址类型   DAD 状态    有效寿命   首选寿命   地址
---------  ----------- ---------- ---------- ------------------------
公用         首选项        29d23h52m1s 6d23h52m1s 2408:*
公用         首选项        29d23h52m1s 6d23h52m1s 2409:*
公用         首选项        29d23h52m1s 6d23h52m1s 240e:*

C:\Users\Administrator> netsh interface ipv6 delete address interface="10.2.0.139" address="2409:*" store="persistent"

C:\Users\Administrator> netsh interface ipv6 delete address interface="10.2.0.139" address="240e:*" store="persistent"

操作过程中若提示参数错误,说明命令打错了,确认一下重新打即可。
同样也可以用 curl 命令来看看生效的 IPv6 地址,或者跑一下路由跟踪:

C:\Users\Administrator>tracert ipv6.lookup.test-ipv6.com

通过最多 30 个跃点跟踪
到 ipv6.lookup.test-ipv6.com [2001:470:1:18::223:250] 的路由:

  1     1 ms    <1 毫秒   <1 毫秒 2408:*
  2     5 ms     4 ms     4 ms  2408:*
  3     5 ms     5 ms     5 ms  2408:*
  4     *       10 ms     9 ms  2408:*
  5    41 ms    46 ms    40 ms  2408:*
  6     *        *        *     请求超时。
  7     *        *        *     请求超时。
  8   193 ms     *        *     2408:*
  9     *        *        *     请求超时。
 10     *        *        *     请求超时。
 11   178 ms   178 ms   178 ms  2001:470:0:30::1
 12   171 ms   171 ms   171 ms  nagios4.gigo.com [2001:470:1:18::223:250]

跟踪完成。

可以看到前面几跳就是我们指定的运营商。

这里需要注意的是,实际生效的 IPv6 是我们指定的,但是在系统设置里,仍然可以看到被删除的其他 IPv6 地址,不影响使用。

其它系统

后续有空再来补充。

这里存在一个问题点,也不能叫问题点,就是当 IPv6 地址重新获取之后,会变,然后需要重新配置出口。

其实还有一个思路,就是类似 IPv4 内网 IP 方案,IPv6 应该也是可以的,只是不知道对于 Kerio Control 要怎么配置~

附录:ip6tables 简要用法

  • 查看生效的 NAT 规则:
root@222-cu:~# ip6tables -t nat -vnL POSTROUTING --line-number

注:IPv4 命令则是 iptables

  • 添加 NAT 规则:
root@222-cu:~# ip6tables -t nat -I POSTROUTING -o ens33 -d ::/0 -j SNAT --to-source 2408:*
  • 查看生效的 filter 表:
root@222-cu:~# ip6tables -L -n --line-number
  • 添加 filter 规则:
root@222-cu:~# ip6tables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

注:其实在新版操作系统中,比如 Ubuntu 使用的是 ufw,CentOS 使用的是 firewalliptables 作为补充使用。

  • 删除 iptables 规则
root@222-cu:~# ip6tables -D INPUT 3  //删除 filter 表 INPUT 的第 3 条规则  
  
root@222-cu:~# ip6tables -t nat -D POSTROUTING 1  //删除 nat 表中 postrouting 的第一条规则  
  
root@222-cu:~# ip6tables -F INPUT   //清空 filter 表 INPUT 所有规则  

root@222-cu:~# ip6tables -t nat -F POSTROUTING   //清空 nat 表 POSTROUTING 所有规则  
  
root@222-cu:~# ip6tables -F    //清空所有规则  
  • 保存规则
root@222-cu:~# ip6tables-save

ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 部署教程防火墙安装ipv6病毒方法ipv4更新企业级网络安全行为管理keriokerio controlkero connect 的文章

 本文最后更新于 2023/04/21 12:07:33,可能因经年累月而与现状有所差异

 引用转载请注明: VirCloud's Blog > 运维 > Kerio Control 防火墙启用 IPv6 方法及相关问题