分享配置underlay网络时碰到的一个防火墙问题
这段时间碰到了几个网络问题,引发了一次关于来回路径不一致问题的讨论。大概整理了一下,供大家参考。
1、概念解释
所谓来回路径不一致,就是网络访问报文和回包报文经过的路径不同,或者说上行流量和下行流量所经过的设备和路径不一致。如下图所示:
服务器A访问服务器B的时候,是通过防火墙A,服务器B回包的时候经过防火墙-B
2、问题描述
这一次我们碰到的问题是在一台防火墙内部的来回不一致,如下图:
1、 用户去访问服务器的备份网IP,服务器从业务网回包。用户的访问报文从防火墙的untrust zone进入防火墙,从backup出去,访问到服务器;服务器回包从trust zone进入防火墙,从untrust zone出去。
2、 用户访问服务器,上行流量先经过路由器,然后从防火墙的trust zone进去,从DMZ出来,访问到服务器;服务器回包依然是从 DMZ zone进入防火墙,但是要从untrust zone出去。
问题:这样的组网,用户是否可以正常访问到服务?
当然,这里面涉及到的都是需要三次握手的TCP协议,UDP协议并不太在乎来回路径问题
3、知识寻解
这其中涉及到相关的防火墙知识点有三个:
1、 首包检测
2、 反向路由探测
3、 跨安全域转发限制
我们一个一个看一下
3.1 首包检测
众所周知,TCP连接要建立三次握手,第一次是发起者发送syn,然后响应者回复syn + ack,最后发起者发送ACK确认。
在来回路径一致时,syn包先经过防火墙,触发session建立,后续报文走session通过,不需要查找policy。
防火墙的policy是针对于原地址、目的地址、端口做的一个限制,不管是syn包还是后续的报文,都应该是可以匹配策略的,即来回不一致的组网中,syn+ack的报文从另外一台防火墙经过的时候,虽然没有session,但是应该是可以通过查找policy而通过的。
但是防火墙有一个首包检测规定:只有syn包才能触发查找policy创建session的动作,而syn+ack、ack报文达到防火墙只查找session,若没有查到对应的session,防火墙会直接丢弃该报文。
所以在来回不一致的组网中,若防火墙开启了首包检测功能,TCP肯定是无法建立连接的。在现网的设备中,我们是要求关闭首包检测的。
Eudemon | undo firewall session link-state check |
hillstone | no tcp-syn-check |
3.2 反向路由探测
反向路由探测是基于一种防攻击机制而制作的一项功能。若有黑客想要攻击某一台服务器,他知道了这台服务器的IP以后,就伪造这个IP发起访问,后续回包都会直接回给被攻击的服务器。若黑客使用这个IP同时给数以万记的服务器发包,光是回包就能把服务器带宽堵死。
firewall defend ip-spoofing enable | 设备对报文的源IP地址进行路由表反查,如果反查下一条最佳出口和报文的入接口不相等,则视为IP欺骗攻击,丢弃该数据包。 |
在下图的场景中,用户的源地址假设为10.10.10.10,则防火墙上面的路由应该是指向10.10.10.10从untrust出去。当访问的数据包从trust口进来的时候,防火墙识别为,他应该是从untrust口进来,不一致,就会直接丢弃此报文。
这个场景在现网的组网中,也会经常出现,故现网是要求关闭的。关闭命令如下:
Eudemon | 不开启defend ip-spoofing就是关闭 |
hillstone | 在zone中配置no reverse-route |
3.3 跨安全域转发限制
访问报文和回包报文经过的zone不一样,正如我们前面描述的问题一样。访问报文从untrust到backup,回包报文从trust到untrust。
这样的访问是否可以通过?是否有开关控制?
在产品文档里面并没有明确的说法,不过经过我们的测试发现:
1、 Eudemon防火墙是没有限制的,可以正常使用。
2、 Hillstone是不允许这样访问的,并且没有开关可以关闭这种设置。
3、 Juniper防火墙也是不允许如此访问的,是否有开关?还有待供应商答复
由于这样的限制,我们前面碰到的问题是否能解决,关键就看什么防火墙了。如果是hillstone的防火墙,那基本是没希望的。解决办法可以调整路由,或者替换成Eudemon。
4、问题启发
知道了这样的限制以后,我们有哪些地方要注意,以规避此问题?
1、 对于防火墙上的zone 大于等于3 个的网络分区,若使用hillstone防火墙,路由的设置就要注意不能跨zone转发。哪怕不是hillstone防火墙,建议也不要跨安全域,不确定以后替换防火墙,新防火墙就限制转发了。毕竟从安全上来说,限制转发也是一种安全保护措施。
2、 对于业务网和备份网共用防火墙的组网里面,特别是SR,业务量少,特地增加一对备份网防火墙也不必要。那这个时候防火墙就不应该选择hillstone防火墙,不然备份网的IP可能在大网ping不通,回包都走业务网就都被丢了。
3、 后续引进防火墙应该要测试这个功能,是否有这个限制。若有,应提需求设置一个开关,避免潜在的风险。
- 点赞
- 收藏
- 关注作者
评论(0)