目录
一、数据交换基本原理
1、ARP协议工作原理
数据包如图:
2、二层交换工作原理
简述核心概念:
二层交换原理-VLAN标签
3、三层交换工作原理
二、AF各种部署模式数据转发流程
1、路由模式数据转发流程
三、分层/分组逐一案例讲解
1、问题现象分组说明
2、双向地址转换不生效案例讲解
AF收到请求后未转换数据包,或收到回包后未回包给客户端--AF自身问题判断依据:
外网口是拨号口如何抓包?
3、终端应用客户端访问异常案例讲解
思考:如果是一个应用联网异常,相比于访问公网网站等问题,难点在哪?
4、应用控制策略不生效案例讲解
AF收到请求后未拦截或放通数据--AF自身问题:
5、应用控制策略不生效案例讲解————基于域名
原理
方式
条件
新架构可在命令行中查看域名的对应关系:
封堵恶意域名
僵尸网络防护原理
DNS Snooping
问题
问题1:防火墙有双向地址转换,或者环境中有双向地址转换的情况下,如何判断真实IP是谁,快速溯源到日志。
问题2:如果客户通过双向地址映射内网服务器至公网,但不允许公网源ip:5.5.5.1来访问此服务器,请问NAT、ACL分别需要如何配置 ? 条件:公网ip:1.1.1.2、服务器ip:172.16.1.1、AF内网口ip:192.168.1.1、业务端口8083
一、数据交换基本原理
1、ARP协议工作原理
- 以PC A向PC B发送数据为例:当发送数据时,PC A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了。
- 如果在ARP缓存表中没有找到相对应的IP地址,PCA就会在网络上发送一个广播,目标MAC地址是“FF FF FF FF.FF FF”,这表示向同一网段内的所有主机发出这样的询问:“192.200.121.253的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有PCB接收到这个帧时,才向PC A做出这样的回应。
- “192.200.121.253的MAC地址是28:51:32:04:ff:45”这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了,ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
数据包如图:
- ARP请求包:
- ARP应答包:
2、二层交换工作原理
- 二层交换原理是指在计算机网络中,通过使用二层交换设备(如交换机)来实现数据包的转发和交换的原理。
- 在二层交换原理中,数据包是根据其目标MAC地址进行转发的当一个数据包到达交换机时,交换机会查看数据包中的目标MAC地址,并将其与交换机的转发表进行比对。转发表中记录了与交换机相连的各个接口与对应的MAC地址。如果目标MAC地址在转发表中有对应的记录,交换机就会将数据包转发到相应的接口上;如果没有对应记录,交换机会将数据包广播到所有其他接口上,以便找到目标设备。
- 二层交换原理的核心思想是建立和维护一个“转发表”,通过学习和更新来实现数据包的快速转发。当交换机接收到一个数据包时,它会检查源MAC地址,并将其与转发表进行比对。如果源MAC地址在转发表中没有对应记录,交换机会将该地址添加到转发表中,并将数据包转发到其他接口上。这样,交换机逐渐学习到网络中各个设备的位置,并能够根据目标MAC地址快速转发数据包。
- 二层交换原理的优点是转发速度快、效率高,因为它只关注数据包的MAC地址,不需要进行复杂的网络层或传输层处理。这使得二层交换设备成为构建局域网中的核心设备,提供高速、可靠的数据传输。
简述核心概念:
(1)、数据到了设备,先会记录源MAC与入接口关系,下次转发就会知道这个MAC设备在这个接口下面。
(2)、如果查不到目的MAC往哪转发,就泛洪所有接口(除入接口外),如果收到了这个目前MAC的回包,就会按照第一步记录下来,之后的数据知道MAC与接口的对应关系了。
二层交换原理-VLAN标签
在二层交换中,VLAN (Virtual local Area Network,虚拟局域网)是一种逻辑上划分网络的技术。它可以将一个物理局域网划分为多个逻辑上独立的虚拟局域网,每个VLAN内的设备可以进行通信,而不受其他VLAN的影响。
- Access口(访问口):Access口是用于连接终端设备(如计算机、IP电话、打印机等)的端口。它只能属于一个VLAN(虚拟局域网),并且只能传输属于该VLAN的数据包。Access口通常用于连接终端设备到交换机,并将其划分到相应的VLAN中。当数据包从Access口进入交换机时,交换机会将其标记上对应的VLAN ID,然后将其转发到该VLAN的其他端口。
- Trunk口(干道口):Trunk口是用于连接交换机之间的端口,用于传输多个VLAN的数据包。它可以同时传输多个VLAN的数据,通过使用标记(Tagging)来区分不同的VLAN。Trunk口通常用于连接交换机之间,以实现VLAN的扩展和互联。当数据包从Trunk口进入交换机时,交换机会根据标记的VLAN ID将其转发到相应的VLAN。
上述图中,假如A、B、C都在同一个网段,如何让处于不同VLAN之间的主机互访?
- 方法1:利用Trunk链路的收发标签特性,交换机之前的Trunk口,左边连接A和B的交换机中继本征vlan设置为10,右边连接C的交换机中继本征vlan设置为20,这样由于A和B上来会打上VLAN10的标签,到了中继链路由于本征VLAN是VLAN 10会把vlan 10的Tag剥离发送,到了对端由于数据流没打标签,这边本征VLAN是20,就会打上VLAN 20的Tag发走,最终到达主机C,主机C的回包也是一样。
- 方法2:利用Access链路的收发标签特性,交换机之间设置Access接口,左边连接A和B的交换机的Access设置为10,右边连接C的交换机Access设置为20,这样根据Access收发标签的特性,A交换机左边接口收到了A的流量打上Tag 10的标记,通过Vlan 10的接口发走会剥离掉vlan 10的标签,此时数据流不带标签,到了对端由于没标签,会打了vlan 20的标签,然后最终到达主机C,主机C的回包也是一样。
3、三层交换工作原理
- 三层交换原理是指在计算机网络中,通过使用三层交换设备(如三层交换机或路由器)来实现数据包的转发和交换的原理。
- 在三层交换原理中,数据包是根据其目标IP地址进行转发的。当一个数据包到达三层交换设备时,设备会查看数据包中的目标IP地址并将其与路由表进行比对。路由表中记录了与设备相连的各个网络和对应的下一跳地址。如果目标IP地址在路由表中有对应的记录设备就会将数据包转发到相应的下一跳地址上,如果没有对应记录设备会将数据包丢弃或转发到默认路由。
如图所示,A访问B属于二层交换,A访问C则属于三层交换A访问C具体过程如下:(假设路由器已有相应的ARP表的情况)
(1)、A把自己的IP地址和C的IP地址比较,发现不在同一子网内:由发送给A自己的网关进行处理
(2)、此时数据包源IP为121.235,目的IP为1.1,源MAC为b1-2f目的MAC为34-45
(3)、路由器收到报文后判断出是三层报文,检查报文的目的IP地址,发现是自己的直连网段,则根据路由表中的对应接口(eth1)发送出去,此数据包源IP为121.235,目的IP为1.1,源MAC为00-02,目的MAC为00-01
(4)、C收到数据包后同理回复应答数据包给A
二、AF各种部署模式数据转发流程
1、路由模式数据转发流程
三、分层/分组逐一案例讲解
1、问题现象分组说明
2、双向地址转换不生效案例讲解
思考1:此拓扑中,为什么不能直接使用目的地址映射来实现访问 ?
原因:如只做目的地址映射,那么数据流分别是: 那么是源PC发出的包与收到的包五元组信息不对等,那么就会直接丢弃此包。
如拓扑数据流分析可见:一条目的地址转换+一条源地址转换=双向地址转换
思考2:若AF做了一个双向地址转换,此时在这条双向的前面还有相关的源地址转换(五元组能匹配上),那么这个双向地址转换还能生效吗?以及转换后的源ip是这个双向转换的源ip还是源地址转换的源ip呢?
可以生效,因为不管新架构还是老架构DNAT要优先于SNAT,双向NAT就是等于一条目的地址转换+一条源地址转换=双向地址转换,所以就会直接匹配双向地址转换。
AF收到请求后未转换数据包,或收到回包后未回包给客户端--AF自身问题判断依据:
(1)、从梳理的问题信息中,确认出入接口以及数据流五元组信息,则抓请求数据流是否到AF为以下命令:tcpdump -i eth1(入接口)host 源IP and host 目的IP and port 目的端口 -nn -c 100
(2)、抓出接口,确认AF是否转发请求,并转换信息正确tcpdump -i eth2(出接口)host 转换后源IP and host 转换后目的IP and port 转换后目的端口 -nn -c 100 坑点:新架构85版本以下,源地址转换的情况下,设备会默认转换源端口,导致服务器因会话原因而不响应相关数据
(3)、确认数据到了AF但未转发,则优先确认nat配置是否正常。 坑点:自定义服务中,限制了源端口导致策略无法匹配
(4)、确认nat策略是否勾选的自动放通数据,如勾选手动放通,优先开启定向直通测试。
(5)、确认设备去往服务器的路由配置正确且生效,可以防火墙自己te1net测试服务器看是否能通。
坑点:新架构默认策略路由优先于静态路由,会导致内网通过公网ip访问服务器时,数据包被发到了外网口了
新架构 show session 命令介绍: show session src-ip xx.xx.xx.xx dst-ip xx.xx.xx.xx
外网口是拨号口如何抓包?
有相应的数据流,我们带我们正常ETH1口带上PPPOES。And host就是后面加正常的host就是多一层协议,PPPOES正常就可以抓到。
tcpdump -i eth1(入接口) pppoes and host 源IP and host 目的IP and port 目的端口 -nn -c 100
3、终端应用客户端访问异常案例讲解
思考:如果是一个应用联网异常,相比于访问公网网站等问题,难点在哪?
最大的问题是:应用与公网交互的五元组信息无法确认,或者五元组信息频繁变化无法确认。
使用NM34应用程序可以抓到应用的数据包。
4、应用控制策略不生效案例讲解
AF收到请求后未拦截或放通数据--AF自身问题:
判断依据:
(1)、从梳理的问题信息中,确认出入接口以及数据流五元组信息,则抓请求数据流是否到AF为以下命令:
tcpdump -i eth1(入\出接口)host 源IP and host 目的IP and port 目的端口 -nn -c 100
注意:客户提供的五元组信息,发送到AF时不一定就是原来的五元组,可能在中间经过了NAT 可以让发起方ping一个固定长度的包测试(目的方ping不通也没关系,只要数据包能发到AF即可),抓包时不写host条件,而只抓icmp包,通过包长即可区分数据五元组---windows指定长度是 -l、linux指定长度是 -s。
(2)、确认真实五元组,并且数据确认到AF后,使用AF自带的策略模拟匹配工具测试策略配置是否正确、或因其他ACL策略冲突导致失效。坑点:自定义服务中,限制了源端口导致策略无法匹配、存在基于应用的ACL导致被放通了tcp握手,造成能telnet通的情况。
(3)、查看是否存在对应五元组的黑白名单,可以通过开启定向直通的方式来确认是否存在黑/白名单拦截/放通。坑点:二层模式下放行的数据不会产生直通日志、黑白名单是基于ip来拦截的,所以配置了相关域名的话,可能会被匹配到数据而拦截/放通。
(4)、查看设备是否开启了长连接,开启长连接容易导致设备会话跑满而无法或由于配置了相关nat策略,导致数据被nat后默认放行了。
5、应用控制策略不生效案例讲解————基于域名
原理
原理:基于域名的应用控制策略,实际上依旧是依据ip信息来匹配AF通过记录域名对应ip的信息,当终端解析到ip后,放通ip,此时AF会将之前记录到的域名与ip的信息来对比匹配,从而实现拦截或放通。
方式
(1)、主动查询:配置主动查询后,AF会定期去主动解析此域名的ip
(2)、被动监听:相关此域名的dns流量经过AF时,AF会记录下域名解析结果。
条件
(1)、主动查询:AF的dns与内网dns服务器一致,保证解析结果一致、对应域名解析的结果不能过多或不断变化。
(2)、被动监听:PC的dns解析流量双向经过AF。
新架构可在命令行中查看域名的对应关系:
命令行:show netobj-domain XXX域名
封堵恶意域名
(1)、客户给了恶意域名让封堵,如果不在库里,优先使用自定义僵尸网络。
僵尸网络:基于DNS的流量进行探测并拦截。
(2)、客户给的域名特别多,但是这些域名又有重复(有相同特征),可以基于自定义IPS规则去拦截。
不用URL的原因是僵尸网络检测设备都会检测DNS域名的流量,一般URL防护内容安全这些没办法直接把URL也就是DNS解析的流量给拒绝掉,可能还会被外网通报,唯一能居家DNS解析流量就是基于域名拒绝DNS解析的流量只有僵尸网络。
URL方式
自定义IPS可以针对指定协议拦截
访问恶意域名,一般PC先去解析走DNS协议53端口,这个时候解析的流量就是外网有通报的情况下,他能检测到我们某个PC局域网去解析这个域名,只要解析就通报,拦截域名得想办法把他的DNS解析流量也拦截掉。
应用控制基于域名拦截(不建议):应用控制基于域名去拦截是无法拦截DNS解析的流量,他要放通DNS解析流量记录到DNS解析流量对应的IP以后,应用控制基于域名才能生效。我们开了应用控制策略基于域名主动查询的一个逻辑,可能防火墙会主动去访问这个恶意域名,也会被外网通报。
判断恶意域名的三个网站(两个网站都报那就判断不是误报):微步、VT(virustotal.com)情报社区(x.threatbook.com)、深信服威胁情报中心。
僵尸网络防护原理
僵尸网络防护工作原理:基于DNS流量进行判断,防火墙会判断你解析的域名是谁,是否匹配规则库,域名在规则库就会进行拦截让你解析不到。
DNS Snooping
DNS snooping的工作原理:DNS snooping是通过监视网络上的DNS流量来检测潜在的安全威胁或未经授权的访问尝试。具体来说,DNS snooping会拦截经过网络的DNS请求和响应数据包,并分析其中的内容。这些数据包中包含了域名和与之对应的IP地址,以及相关的查询信息。
当有一个DNS请求需要解析时,DNS snooping会检查该请求的源IP地址、目标IP地址、查询的域名,以及查询的类型等信息。通过分析这些信息,DNS snooping可以识别是否存在异常的查询行为,比如大量频繁的查询、域名伪造、DNS劫持等,从而警示网络管理员可能的安全威胁。
DNS snooping可以帮助网络管理员监测网络上的DNS流量,及时发现潜在的安全问题,并做出相应的应对措施,以提高网络的安全性和防御能力。
问题
问题1:防火墙有双向地址转换,或者环境中有双向地址转换的情况下,如何判断真实IP是谁,快速溯源到日志。
8.0.85版本的应用控制会记录日志,里边有NAT前的源地址和NAT后的地址。
问题2:如果客户通过双向地址映射内网服务器至公网,但不允许公网源ip:5.5.5.1来访问此服务器,请问NAT、ACL分别需要如何配置 ? 条件:公网ip:1.1.1.2、服务器ip:172.16.1.1、AF内网口ip:192.168.1.1、业务端口8083
黑名单:在目的地址转换之后,源地址转换之前匹配,配置防火墙前的公网ip就是居家防火墙映射前的地址,完全断掉服务器的访问就是配置服务器的私网IP地址。