全发国际

620 点全场景落地 丨 半导体大厂熙泰科技的云桌面安全与提效实战分享
预约直播
铸数基 · 智运维 丨 全发国际乐享3.0智能运维解决规划颁布会
预约直播
全发国际(中国)有限公司官网
产品
< 返回主菜单
产品中心
产品
解决规划
< 返回主菜单
解决规划中心
行业
合作同伴
返回主菜单
选择区域/说话
全发国际(中国)有限公司官网

您订阅的产品有更新,,,, ,,,,请实时查阅

查看详情

这些防火墙号令都爱说大真话,,,, ,,,,让排障少走弯路 |运维实战家

全发国际(中国)有限公司官网 颁布功夫:2020-11-02
全发国际(中国)有限公司官网

 

 

本文作者:阿昌

 

幼锐时时接到客户的反馈是,,,, ,,,,防火墙部署好了但是业务还是不通,,,, ,,,,往往束手无策。。。。。。今天幼锐,,,, ,,,,不藏着掖着了,,,, ,,,,把珍藏多年的佳酿,,,, ,,,,故障幼窍门拿出来让喜欢幼锐的各人细品细品。。。。。。

 

防火墙的安全查抄个性

 

网络源于生涯却又高于生涯,,,, ,,,,作为网络世界大门的鼎鼎台甫的“安全查抄官“下一代防火墙,,,, ,,,,有他自己特有的“安全属性”,,,, ,,,,遵守网络世界的“安全规定”,,,, ,,,,我们就能更好的在防火墙的故障排查过程中游刃有余。。。。。。这些“安全属性”倒成了我们在执行防火墙过程中的“绊脚石”,,,, ,,,,固然排查故障过程是疾苦的,,,, ,,,,解决问题后的欢乐是始终铭刻值得回味的。。。。。。

 

防火墙为了相信数据包是可信的,,,, ,,,,在收到数据包的时辰设置了两个“安全查抄点”:

 

1 反向蹊径查抄Reverse Path Forwarding (RPF)

 

2 异步查抄(asymroute,,,, ,,,,也就是各人常说的衔接齐全性查抄)

 

两项查抄只有都切合,,,, ,,,,才会持续其他模 ?????椴槌,, ,,,,不然直接抛弃数据包,,,, ,,,,那针对这两个查抄个性我们发展聊聊:

 

反向蹊径查抄

 

所谓反向蹊径查抄,,,, ,,,,单一举例,,,, ,,,,就是若是从内网口port31收到一个数据包,,,, ,,,,反向的回包必须从内网口port31回去,,,, ,,,,也就是要确保源进源出,,,, ,,,,反之以为此数据包为糊弄包执行抛弃作为。。。。。。如果,,,, ,,,,防火墙收到数据包是src_addr_ip->dst_addr_ip为172.16.1.16->219.222.191.72,,,, ,,,,防火墙不会执行其他模 ?????椴槌ㄕ庑┠? ?????榛嵘婕暗皆粗髡诺刂纷弧TM等),,,, ,,,,而是先执行反向蹊径查抄,,,, ,,,,凭据反向流量219.222.191.72->172.16.1.16,,,, ,,,,在查找路由表后若是也是从port31出去的,,,, ,,,,注明流量是正常的,,,, ,,,,持续处置其他模 ?????椴槌;;;; ;若是存在另一个路由通路好比从port32出去或者甚至没有查找到相应路由,,,, ,,,,这个将导致反向蹊径查抄失败防火墙执行抛弃作为。。。。。。

 

使用debug flow抓包号令,,,, ,,,,会发现有个提醒为:reverse path check fail, drop,,,, ,,,,出格显眼,,,, ,,,,这个提醒就是因反向蹊径查抄失败直接执行了抛弃作为了,,,, ,,,,这种情况建议是查一下防火墙上的路由配置问题。。。。。。

 

 

异步路由查抄

 

所谓异步路由查抄,,,, ,,,,就是要确保来回蹊径要一致,,,, ,,,,保障数据衔接的齐全性。。。。。。如:tcp的三次握手的数据包都要过防火墙,,,, ,,,,正常的tcp三次握手交互过程如下:

 

 

若是出现来回蹊径不一致的情况,,,, ,,,,防火墙以为报文有问题直接抛弃。。。。。。

 

 

幼锐此刻就说说这流量转发哪里出现问题了,,,, ,,,,从流量转发来看PC1接见服务器的流量tcp syn报文转发蹊径是

 

PC1->RouterA->NGFW->RouterB->internet->Server,,,, ,,,,回包syn+ack的转发蹊径是Internet>RouterB>RouterA->PC1,,,, ,,,,未经过防火墙,,,, ,,,,ack报文PC1->RouterA->NGFW(抛弃报文不转发),,,, ,,,,防火墙发现会话状态不齐全(我没有看到syn+ack,我不信赖你),,,, ,,,,执行抛弃作为。。。。。。

 

使用debug flow号令对数据流分析通常会提醒为:“org dir, ack in state syn_sent, drop”

 

全发国际(中国)有限公司官网

 

当然这里还有更为奇葩的数据转发蹊径,,,, ,,,,若是是syn包转发蹊径不外防火墙,,,, ,,,,syn+ack的回复报文经过防火墙,,,, ,,,,这种情况下防火墙是无法找到对应的会话(我没有看到syn,,,, ,,,,我压根就没有你的会话),,,, ,,,,直接抛弃,,,, ,,,,这种也属于异步路由的一种特殊场景。。。。。。使用debug flow抓包号令,,,, ,,,,会发现有个提醒为:“no session matched”。。。。。。

 

 

还有一种就是来回的二层mac不一致问题也是异步路由查抄的一种特例了,,,, ,,,,通常这种场景常见于防火墙通明模式部署的时辰。。。。。。也就是若是过防火墙的数据包是mac1->mac2[pc1->pc2],,,, ,,,,回包的时辰是mac3->mac1[pc1->pc2],,,, ,,,,这种数据包也是有问题的防火墙不会允许过的。。。。。。

 

那可能各人会问幼锐,,,, ,,,,异步路由查抄能够关关吗,,,, ,,,,现实业务场景不建议关关的,,,, ,,,,做法是找到导致来回蹊径不一致的原因,,,, ,,,,将异步问题终结掉,,,, ,,,,由于防火墙关关异步查抄后,,,, ,,,,多链路出口的场景源进源出职能将不生效,,,, ,,,,代理防护类utm职能将无法正常工作。。。。。。

 

步骤是:

 

#config system settings

#set asymroute enable

#end

 

此号令就是允许防火墙存在异步,,,, ,,,,这样防火墙能够不查抄数据包的衔接齐全性了。。。。。。

 

#config system settings

#set tcp-session-without-syn enable (默认disable)

#end

 

此号令是通知防火墙若是不是syn的报文一样也能够创建会话。。。。。。

 

 

数据包穿越防火墙处置过程详解

 

 

正常的数据包穿越防火墙,,,, ,,,,必要经过哪些过程呢? ?????能够通过debug flow号令查看整个齐全过程。。。。。。

 

#diagnose debug enable   //开启debug

 

#diagnose debug flow show console enable   //启用debug flow显示打印。。。。。,, ,,,,有些版本不必要敲

 

#diagnose debug flow show function-name enable   //显示debug flow 职能名称,,,, ,,,,便于打印信息输出,,,, ,,,,有些版本能够不用敲

 

#diagnose debug flow filter addr 192.168.1.110  //过滤前提,,,, ,,,,预防抓包无用信息过多,,,, ,,,,这里过滤地址,,,, ,,,,filter ? ?????能够查看过滤哪些前提

 

 

#diagnose debug flow trace start 100  //起头抓100条数据流

 

下面是数据包穿越防火墙的全数过程,,,, ,,,,我们一路来看看

 

id=36871 trace_id=1 msg="vd-root received a packet(proto=6, 192.168.

1.110:51661->119.253.62.131:80) from internal. "id=36871 trace_id=1 msg="allocate a new session-00016920" //internal口收到数据,,,, ,,,,成立新会话

 

id=36871 trace_id=1 msg="find a route: gw-192.168.118.1 via wan1"  //查找到路由表

 

id=36871  trace_id=1 msg="find SNAT: IP-192.168.118.28, port-43333" //检测存在NAT配置

 

id=36871  trace_id=1 msg="Allowed by Policy-1: SNAT" //匹配战术,ID1

 

id=36871  trace_id=1 msg="SNAT 192.168.1.110->192.168.118.28:43333"//做NAT    

 

id=36871 trace_id=3 msg="vd-root received a packet(proto=6,

 

119.253.62.131:80->192.168.118.28:43333) from wan1."  // Wan1口收到返回数据包

 

id=36871 trace_id=3 msg="Find an existing session, id-00016920, reply     direction" //数据包匹配会话id-0001692

 

id=36871 trace_id=3 msg="DNAT 192.168.118.28:43333->192.168.1.110:51661"  //做反向的DNAT

 

id=36871 trace_id=3 msg="find a route: gw-192.168.1.110 via internal"  //查找路由,,,, ,,,,发送到internal口              

 

id=36871 trace_id=5 msg="vd-root received a packet(proto=6,192.168.1.110:51661->119.253.62.131:80) frominternal." //internal口收到后续数据包

 

id=36871 trace_id=5 msg="Find an existing session, id-00016920, original     direction" //匹配会话id-0001692  

 

id=36871 trace_id=5 msg="enter fast path" //直接转发    

 

id=36871 trace_id=5 msg="SNAT 192.168.1.110->192.168.118.28:43333"  //NAT

 

抓完数据流后能够通过以下号令关关。。。。。。

 

#diagnose debug flow trace stop      //终场

#diagnose debug disable             //关关

#diagnose debug reset               //沉置

#diagnose debug flow filter clear     //能够清空debug的过滤前提设置

 

通过debug flow号令我们能够看到一个数据包流入防火墙后,,,, ,,,,各个模 ?????榈木咛宕χ们榭觯,, ,,,,整顿成数据包处置流程图如下:

 

 

下面也一并介绍一些幼锐时时遇到的debug flow关键信息提醒,,,, ,,,,现总结如下:

 

若是是战术回绝了数据包接见,,,, ,,,,会看到“Denied by forward policy check”,,,, ,,,,必要沉点确认是否是安全战术拦截所致。。。。。。    

 

全发国际(中国)有限公司官网

 

若是无法正常治理防火墙的时辰,,,, ,,,,debug flow往往会出现提醒,,,, ,,,,msg="iprope_in_check() check failed, drop",,,, ,,,,通常会有下列三种可能原因所致:

 

1、当接见NGFW进行远程治理(ping, telnet, ssh ...)时,,,, ,,,,在接见的服务未在接口上启用。。。。。。

2、当接见NGFW进行远程治理时(ping, telnet, ssh ...),,,, ,,,,在接见的服务在接口上启用,,,, ,,,,但是配置了受信赖的主机,,,, ,,,,这些主机与入站数据包的源IP不匹配;;;; ;

3、当通过统一NGFW的另一个接口接见用于远程治理的NGFW接口(ping,,,, ,,,,telnet,,,, ,,,,ssh ...)时,,,, ,,,,不存在防火墙战术。。。。。。

 

战术作为回绝,或射中隐含战术, 数据包被回绝,,,, ,,,,通常会提醒:msg="Denied by forward policy check"

 

若是涉及ALG有关会话(这类流量通常是动态多通路和谈如ftp、sip等,,,, ,,,,此类和谈较复杂,,,, ,,,,幼锐下次再跟各人分享,,,, ,,,,嘻嘻)将送至 session-helper 模 ?????榇χ茫,, ,,,,通常会提醒:msg="run helper-ftp(dir=original)"    

 

看到这里,,,, ,,,,幼锐相信您也和幼锐一样get 了不少防火墙的抓包号令了吧? ?????那么接下来我们持续深刻看下进阶版案例分析吧。。。。。。

 

 

进阶案例展示一下号令有多么神奇^-^

 

现场反馈的拓扑单一描述如下:

 

 

全新下一代防火墙做端口映射,,,, ,,,,部门ISP专网IP接见端口映射的业务不通。。。。。;;;; ;〉呐渲貌槌裁挥锌闯鑫侍獾氐悖,, ,,,,那接下来使用壮大的debug flow对其数据流进行捕获,,,, ,,,,在信息输出中发现防火墙本地回复了RST报文(也就是图中的...from local. flag [R]),,,, ,,,,这点甚是可疑,,,, ,,,,注明问题还是出在防火墙的哪个模 ?????榇χ没方谏稀。。。。。

 

 

那我们一路开动脑筋思虑一下什么情况下防火墙会自动发送RST包? ?????

 

从数据包转发上我们把稳到tcp syn将通过防火墙,,,, ,,,,但是当接管到tcp syn / ack时,,,, ,,,,NGFW会将tcp rst发送回tcp syn / ack的始发者。。。。。。

 

即便存在允许流量通过NGFW的战术,,,, ,,,,配置谬误的IPpool或VIP[l7] 也会为TCP衔接造成衔接问题。。。。。。(名词诠释:这里的ippool通常是用在上网做源地址转换的时辰,,,, ,,,,一个地址不够用,,,, ,,,,能够把内网的源地址转换成一个地址段领域内的地址,,,, ,,,,VIP是防火墙的端口映射,,,, ,,,,也就是各人常说的主张地址转换关系)

 

通常这种问题的可能性是:本地有相应的IP地址(好比是源地址)了,,,, ,,,,由于没有对应的服务在监听,,,, ,,,,会去响应RST报文,,,, ,,,,依照这种排查思路去查抄配置。。。。。。

 

那我们把问题点锁定在IPPool或VIP上沉点排查,,,, ,,,,通过配置查看找到了这个始作俑者。。。。。。将对应谬误的战术配置删除问题解决。。。。。。

 

 

经确认现场源地址10.85.40.3也加到了虚构ip映射里了。。。。。。对于防火墙配置不太熟悉的往往可能会出现这衷戽怪的配置,,,, ,,,,有时辰战术一多真的用肉眼很不好看出问题出在哪儿。。。。。。

 

通常出现防火墙回复...from local. flag [R]的情况有如下三种:

 

1、将服务器地址配置到了IPpool里;;;; ;

2、将客户端IP地址配置到了IPpool里;;;; ;

3、将客户端IP地址配置到了VIP里。。。。。。

 

总结

 

Debug flow号令是防火墙执行部署过程中使用频率极高,,,, ,,,,并且故障诊断问题定位率可达80%左右,,,, ,,,,真的是算上是爱说大真话的号令了,,,, ,,,,提醒什么原因通常故障就定位出来 了,,,, ,,,,是幼锐力荐需把握的号令,,,, ,,,,学会了就是把握了上乘武功了哦,,,, ,,,,一路建炼起来吧。。。。。。

 

关注全发国际
关注全发国际官网微信
随时相识公司最新动态
全发国际(中国)有限公司官网

返回顶部

收起
全发国际(中国)有限公司官网 文档AI副手
全发国际(中国)有限公司官网 文档评价
该资料是否解决了您的问题? ?????
您对当前页面的中意度若何? ?????
不咋滴
极度好
您中意的原因是(多选。。。。。 ?????
您对文档是否还有其它的问题或建议? ?????
为尽快解决问题,,,, ,,,,请您留下联系方式以便回复
邮箱
手机号
感激您的反馈。。。。。
全发国际(中国)有限公司官网
全发国际(中国)有限公司官网
全发国际(中国)有限公司官网
请选择服务项目
关关征询页
售前征询 售前征询
售前征询
售后服务 售后服务
售后服务
定见反馈 定见反馈
定见反馈
更多联系方式
【网站地图】【sitemap】