教程篇(7.6) 15. 诊断和故障排除 & FortiGate管理员 ❀ Fortinet网络安全专家 NSE4

在本课程中,你将学习如何使用诊断命令和工具。

在这节课中,你将学习上图显示的主题。

完成本部分后,你应该能够实现上图显示的目标。
通过展示整体诊断能力,你将能够发现有关FortiGate状态的一般信息。

诊断是找到问题根本原因的过程。
为了定义任何问题,首先你必须知道你的网络的正常行为是什么。
在上图显示的图表中,表示正常的范围以蓝色显示。这条蓝线到底是什么?它表示平均值,我们的基线。粗黑线是什么?这是当前的行为。当当前行为(黑线)离开正常范围时,就会发生异常事件。
常态以多种方式进行测量和定义。它可以是性能:预期的CPU和内存利用率、带宽和流量。但是,它也可以是你的网络拓扑:哪些设备通常连接到每个节点。这也是行为:交通流量方向,哪些协议被阻止或代理,以及在一天、一周或一年中的特定时间使用的协议和应用程序的分布。

定义网络正常的第一个方法是什么?
流和其他正常行为的规范来自拓扑结构。因此,在故障诊断过程中,网络图是必不可少的。如果你使用Fortinet技术支持创建票据,你首先应该附上网络图。
网络图有时会结合两种类型的图:
● 物理
● 逻辑
物理图表显示了电缆、端口和设备如何在建筑物和柜子之间连接。逻辑图显示了虚拟局域网、IP子网和路由器之间的关系(通常在OSI第3层)。它还可以显示HTTP或DHCP等应用程序协议。
当你配置设备并将其添加到安全架构中时,这些物理和逻辑拓扑结构在FortiGate设备的安全架构部分中可用。

定义正常值的另一种方法是了解平均性能范围。持续收集显示正常使用的数据。
例如,如果流量处理突然变慢,而FortiGate CPU使用率为75%,这表明了什么?如果CPU使用率通常为60-69%,那么75%可能仍然是正常的。但如果正常值是12-15%,可能会有问题。
获取时间和日期的典型最大值和最小值的数据。也就是说,在工作日或节假日,网络图中的每个接口每秒应该输入或输出多少位?
FortiGate提供了一系列监控流量和资源使用情况的工具,包括FortiView监视器和仪表板小部件。例如,你可以监控接口带宽,并将时间框架调整为一小时、一天或一周。

我们如何获取有关当前状态的信息?首先,看看CLl命令;即使网络问题使GUl访问缓慢或不可能,你也可以通过本地控制台使用它们。
一些命令提供系统状态。get system status命令主要提供通用信息。输出显示:
● 型号
● 序列号
● 固件版本
● 主机名称
● FortiGuard许可证状态
● 系统时间
● FortiGuard反病毒、IPS和IP声誉数据库等版本

假设FortiGate可以通过port1联系一些主机,但不能联系其他主机。问题是物理层还是链路层?两者都不是。至少部分网络的连接性已被证明。相反,你应该检查网络层。要测试这一点,像往常一样,从ping和traceroute开始。
对于IPv6也有相同的命令:例如,executeping变成executeping6。
记住:地点很重要。只有当你使用与要排除故障的通信流相同的路径时,测试才准确。要从FortiGate(例如到FortiAnalyzer或FortiGuard)进行测试,请使用FortiGate执行ping和执行traceroute CLI命令。但是,要通过FortiGate测试路径,还可以从端点(从Windows、Linux或Mac OSX计算机)使用ping和tracert或traceroute,而不仅仅是从FortiGate命令行。
由于NAT和路由,你可能需要指定不同的ping源IP地址,默认地址是出站接口的IP。如果没有响应,请验证目标是否配置为回复ICMP回声请求。

非常好!你已经了解了一般诊断。接下来你将了解数据包嗅探器和调试流。

完成本部分后,你应该能够实现上图显示的目标。
通过展示数据包嗅探器和调试流的能力,你将能够诊断连接问题。

FortiGate 包含嗅探器命令,当故障排除需要你进一步挖掘以诊断问题的根源时,这是一个有用的工具。
嗅探器命令可以嗅探物理或虚拟接口上的数据包。如果嗅探器命令设置为any,它可以同时嗅探所有可用的接口。
你可以使用过滤器自定义并缩小想要捕获的数据包的范围。嗅探器过滤器使用伯克利包过滤(BPF)语法。
1:打印报文头
2:打印报文头和IP头中的数据
3:打印报文头和以太网头中的数据
4:用接口名称打印数据包的标题
5:打印带有接口名的报文的报头和IP数据
6:打印带有接口名的报文头和来自以太网的数据

如果需要对所有接口进行流量嗅探,则使用关键字any作为接口名称。
通过按ctrl+C停止嗅探器,并检查丢弃的数据包。如果在嗅探期间有丢弃的数据包,这意味着并不是所有匹配嗅探过滤器的流量都可以被捕获。因此,你可能需要使用更严格的过滤器再次捕获流量。
如果没有为时间戳指定选项,则调试将显示从它开始运行以来的时间(以秒为单位)。你可以预先添加本地系统时间,以便轻松地将数据包与另一个记录的事件关联起来。

通过抓包工具,你可以实时查看GUl上的抓包输出,直到停止抓包过程。
该工具可帮助你直接在GUl上查看抓包的详细信息。
在设置抓包时,可以启用Filter,使用主机地址、端口号、协议名称等基本条件进行过滤。
停止抓包后,可以将输出结果导出为pcap文件。

如果FortiGate正在丢弃数据包,可以使用数据包捕获(嗅探器)来识别原因吗?要找到原因,应该使用调试(包)流。
调试流一步一步地展示了CPU如何处理每个数据包。
要使用调试流,请遵循以下步骤:
1. 定义一个过滤器。
2. 启用调试输出。
3. 启动跟踪。
4. 跟踪完成后停止跟踪。

上图显示了关于diagnose debug flow命令的调试流程输出示例,该命令捕获了TCP三方握手的第一个数据包,即SYN数据包。它显示:
● 到达FortiGate的数据包,指示源和目标IP地址、端口号和传入接口
● FortiGate创建会话,表示会话ID
● 到达目的地址的路由,指明下一跳地址和出接口
● 匹配并允许此流量的策略ID
● 源NAT如何应用

上图显示了SYN/ACK数据包的输出,该数据包来自与上一张幻灯片上显示的相同的诊断调试命令。它显示:
● 数据包到达,再次指示源和目标IP地址、端口号和传入接口
● 此流量的现有会话ID。此编号与SYN数据包期间创建的会话ID相匹配。ID对每个会话都是唯一的,可用于跟踪会话的请求/回复数据包。
● 目的NAT是如何应用的。
● 到达目的地址的路由,再次指明下一跳IP地址和出接口。
如果数据包被FortiGate丢弃,这个调试将显示该操作的原因。
此工具对于许多其他故障排除情况都很有用,包括当你需要了解为什么数据包采用特定路由或为什么应用特定NAT IP地址时。

通过调试流工具,你可以实时查看调试流在GUl上的输出,直到停止调试进程为止。
此工具可帮助你直接在GUI上检查数据包流详细信息。
在停止调试流之后,你可以查看完成的输出,并根据时间、消息或功能对其进行过滤。你也可以将输出导出为CSV文件。
你可以将调试流工具设置为使用基本或高级筛选器选项。基本允许你使用主机地址、端口号和协议名称等基本条件进行过滤。高级允许你根据源IP地址、源端口、目的IP地址、目的端口和协议进行过滤。

打开调试流后,GUl会根据过滤器显示抓包。
当你停止调试流时,FortiGate将显示一个数据包跟踪输出,你可以下载并将其保存为CSV文件。
这两种输出之间的主要区别是显示实时消息以进行实时分析,但是你可以保存数据包跟踪输出并下载它们以供将来参考。

调试流工具显示了对数据包的处理,上图总结了会话的第一个数据包在进入、通过和退出FortiGate时所经历的步骤。
FortiGate首先执行一些安全检查,例如ACL、HPE和IP完整性头检查,以确保数据包在可接受的参数范围内,然后才允许它们通过其余的进程。这些检查由网络处理器(NP)处理,以尽量减少对FortiGate CPU的影响。
每个版本的NP都有定义哪些流量可以卸载的标准。NP通过在会话建立并将会话密钥安装到NP中后,允许卸载会话绕过FortiGate CPU,从而提高了整体性能。NP还可以处理IPsec VPN的加解密操作,硬件支持配置的加密和哈希算法。
内容处理器(CP)的功能就像FortiGate CPU的协处理器一样,通过卸载某些任务来提高整体系统性能,例如使用入侵防御系统(IPS)引擎进行基于流量的UTM检查的模式匹配,用于深度SSL检查的SSL/TLS解密和加密,以及支持算法的IPsec加密和解密操作。
请注意,虚拟FortiGate设备的数据包处理是相同的,唯一的区别是cpu处理所有进程,而不是将其中一些进程卸载给NP和CP。


非常好!你已经了解了数据包嗅探器和调试流。接下来你将了解FortiGate CPU和内存诊断。


完成本部分后,你应该能够实现上图显示的目标。
通过展示对CPU和内存使用情况的熟练理解,你将能够诊断最常见的CPU和内存问题。


并非所有问题都是网络连接故障。有时,设备会出现资源问题。
还有什么可能导致延迟?在消除了物理介质和带宽使用问题之后,应该检查FortiGate资源使用情况:CPU和内存。
如果使用率很高,有一些工具可以识别哪个特性消耗了最多的CPU。此外,如果你确切地知道哪个更改(如果有的话)与问题开始的时间相对应,则可以更快地进行故障排除。


你可以使用该进程来查看正在运行的进程及其CPU和内存使用水平。你可以在进程监视器中应用过滤器、排序和终止进程。


接下来,检查diagnose sys top的输出。它列出了使用最多CPU或内存的进程。一些常见的过程包括:
● ipsengine、scanunit等巡检进程
● fgfmd用于FortiGuard和FortiManager连接
● forticron用于调度
● 管理流程(newcli、miglogd、cmdb、sshd和httpsd)
要按最高CPU使用率对列表进行排序,请按Shift+P。要按最高RAM使用情况排序,请按Shift+M。


如果内存使用率过高,FortiGate可能会进入内存保存模式。当FortiGate处于内存保存模式时,它必须采取措施防止内存使用增加,这可能导致系统变得不稳定和不可访问。
内存保存模式从来都不是理想的状态,因为它会影响用户流量。
三个不同的可配置阈值定义了FortiGate何时进入和退出保护模式。如果内存使用量超过定义为红色阈值的总RAM百分比,FortiGate将进入保护模式。设备采取的操作取决于设备配置。
如果内存使用持续增加,可能会超过极限阈值。当内存使用超过这个最高阈值时,所有新会话都将被丢弃。
第三个配置设置是绿色阈值。如果内存使用量低于这个阈值,FortiGate退出保护模式。


在保护模式下,FortiGate采取什么行动来保护内存?
● FortiGate不接受配置更改,因为它们可能会增加内存使用量。
● FortiGate不运行任何隔离措施,包括将可疑文件转发到FortiSandbox。
● 通过配置config ips global下的fail-open设置,控制IPS引擎在IPS套接字缓冲区满时的行为。
如果IPS引擎没有足够的内存来构建更多会话,故障打开设置将决定FortiGate是否应该在不检查的情况下丢掉会话或绕过会话。
重要的是要明白,IPS故障打开设置不仅仅是用于保护模式,每当IPS失败时,它就会启动。大多数故障是由于高CPU问题或高内存(保护模式)问题造成的。启用该设置,以便在保护模式(或任何其他IPS故障期间)数据包仍然可以传输,但不会被IPS检查。禁用该设置,以便丢弃新的传入会话的数据包。
请记住,IPS引擎用于所有类型的基于流量的检查。当FortiGate必须识别网络应用程序时,无论目标TCP/UDP端口如何(例如,用于应用程序控制),也会使用IPS引擎。请注意,NTurbo不支持故障打开设置。如果触发失败打开,即使启用了失败打开设置,通常会使用NTurbo加速的新会话也会被丢弃。


av-failopen设置定义了应用于任何基于代理的被检查流量的操作,而单元处于保存模式(并且只要内存使用不超过极端阈值)。该配置同样适用于基于流程的防病毒检测。可以配置三种不同的操作:
● off:所有启用了内容扫描的新会话都不通过,但FortiGate会处理当前会话。
● pass(默认):在FortiGate切换回非保护模式之前,所有新会话都不进行检查而通过。
● one-shot:类似于流量不经检查就通过。然而,它将继续绕过反病毒代理,即使它离开保护模式。管理员必须更改此设置,或者重新启动单元以重新启动反病毒扫描。
但是,如果内存使用超过极限阈值,无论FortiGate配置如何,新会话总是被丢弃。


diagnostic hardware sysinfo conserve命令用于检测FortiGate设备当前是否处于内存保护模式。


答案:A


答案:A


答案:A


恭喜你!你已经完成了这节课。
现在,你将回顾本课所涉及的目标。


上图展示了你在本课中所涉及的目标。
通过掌握本课所涵盖的目标,你学习了如何使用诊断命令和工具,并了解了有关FortiGate状态和操作的更多信息。
更多推荐

所有评论(0)