教程篇(7.2) 19. 诊断 & FortiGate基础设施 ❀ Fortinet网络安全专家 NSE4

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

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

  通过展示一般诊断能力,你将能够发现有关FortiGate状态的一般信息。

  诊断是找到问题的根本原因的过程。

  为了定义任何问题,首先必须知道网络的正常行为是什么。

  在上图所示的图表中,表示正常的范围用蓝色表示。这条蓝线到底是什么?它表示平均值——我们的基线。这条粗黑线是什么?是当前的行为。当当前行为(黑线)离开正常范围,就说明发生了异常事件。 

  衡量和定义正常的方式有很多。它可以是性能:预期的CPU和内存利用率、带宽和流量。但是,它也可以是你的网络拓扑结构:在每个节点上通常连接的设备。它也可以是行为:流量流向,哪些协议被阻止或代理,以及在一天、一周或一年的特定时间使用的协议和应用程序的分布。

  定义网络正常的第一种方法是什么?

  正常行为的流动和其他规范来自拓扑。因此,在故障排除期间,网络拓扑至关重要。如果你使用Fortinet技术支持创建票证,则首先应附加网络拓扑。

  网络拓扑有时结合了两种类型的图:

  ● 物理

  ● 逻辑

  建筑物与机柜之间的线缆连接、端口连接、设备连接示意图。逻辑图显示虚拟局域网、IP子网和路由器之间的关系(通常在OSI第3层)。它还可以显示HTTP或DHCP等应用协议。

  定义正常的另一种方法是了解平均性能范围。在持续的基础上,收集显示正常使用情况的数据。

  例如,如果流量处理突然变慢,并且FortiGate CPU使用率为75%,这表明什么?如果CPU使用率通常是60-69%,那么75%可能仍然是正常的。但如果正常是12-15%,那可能就有问题了。

  获取时间和日期的典型最大值和最小值的数据。也就是说,在工作日或节假日,在你的网络图中,每秒钟应该有多少比特进出每个接口?

  我们如何获得有关当前状态的信息?首先,查看CLI命令;你可以通过本地控制台使用它们,即使网络问题导致GUl访问缓慢或无法使用。

  一些命令提供系统状态。get system status命令主要提供通用信息。输出显示:

  ● 型号

  ● 序列号

  ● 固件版本

  ● 主机名称

  ● FortiGuard许可状态

  ● 系统信息

  ● FortiGuard反病毒、IPS、IP信誉等数据库版本

  在物理层,故障排除分析哪些端口被插入、介质容量、协商速度和双工模式。

  在数据链路层,诊断通常分析由于CRC错误或冲突而丢失了多少帧。

  get hardware nic命令用于查询FortiGate接口的硬件和状态信息。根据型号和网卡驱动版本的不同,输出结果可能有所不同。

  上图的输出显示了驱动程序名称、硬件地址、管理状态和链接状态,以及发送和接收数据包和错误。

  如果你怀疑存在IP地址冲突,或者IP地址分配给了错误的设备,你可能需要查看ARP表。get system arp命令就是用于这个目的的。显示FortiGate接口、IP地址和关联的MAC地址。该命令列出连接FortiGate的同一局域网段的所有外部设备的信息。不包括FortiGate当前的IP地址和MAC地址。

  假设FortiGate可以通过port1联系某些主机,但不能联系其他主机。问题出在物理层还是链路层?都不是。至少部分网络的连通性已得到证实。相反,你应该检查网络层。要测试这一点,像往常一样,从ping和traceroute开始。

  同样的命令也适用于IPv6:例如,execute ping变成execute ping6。

  记住:地点很重要。只有当你使用与要排除故障的流量相同的路径时,测试才准确。要从FortiGate(例如到FortiAnalyzer或FortiGuard)进行测试,请使用FortiGate执行ping和执行traceroute CLI命令。但是,要通过FortiGate测试路径,也可以从端点(从Windows、Linux或Mac OS X计算机)使用ping和tracert或traceroute,而不仅仅是从FortiGate命令行。

  由于NAT和路由的关系,你可能需要指定不同的ping源IP地址——默认地址是出接口的IP地址。如果没有响应,请验证目标是否配置为回复ICMP echo请求。

  答案:A

 答案:B

  干得漂亮!你已经了解了一般诊断。现在,你将了解调试流程。

  通过演示调试流程的能力,你将能够诊断连接问题。

  如果FortiGate正在丢弃数据包,可以使用数据包捕获(嗅探器)来识别原因吗?要找到原因,应该使用调试(包)流。

  调试流一步一步地展示了CPU如何处理每个数据包。

  要使用调试流,请遵循以下步骤:

  1. 定义一个过滤器。

  2. 启用调试输出。

  3. 开始追踪。

  4. 追踪完成后停止。

  上图显示了上述诊断调试流命令的调试流输出示例,它捕获了TCP三次握手的第一个数据包,即SYN数据包。它显示:

  ● 到达FortiGate的报文,指明源、目的IP地址、端口号和入接口

  ● FortiGate创建会话,表示会话ID

  ● 到达目的地址的路由,指明下一跳地址和出接口

  ● 匹配并允许此流量的策略ID

  ● 源NAT如何应用

  上图显示了SYN/ACK数据包的输出,它来自与上一图片中显示的相同的诊断调试命令。它显示:

  ● 数据包到达,再次指出源和目的IP地址、端口号和入站接口

  ● 此流量的现有会话ID。该编号与SYN报文中创建的会话ID相匹配。这个ID对于每个会话都是唯一的,对于跟踪会话的请求/应答报文很有用。

  ● 目的NAT是如何应用的

  ● 到达目的地址的路由,再次指明下一跳IP地址和出接口。

  如果数据包被FortiGate丢弃,这个调试将显示该操作的原因。

  此工具对于许多其他故障排除情况都很有用,包括当你需要了解为什么数据包采用特定路由或为什么应用特定NAT IP地址时。

  通过调试流工具,你可以实时查看调试流在GUl上的输出,直到停止调试进程为止。

  该工具可帮助你直接在GUl上查看数据包流的详细信息。

  在停止调试流之后,你可以查看完成的输出,并根据时间、消息或功能对其进行过滤。还可以将输出导出为CSV文件。

  你可以将调试流工具设置为使用基本或高级筛选器选项。Basic允许你使用基本条件进行过滤,例如主机地址、端口号和协议名称。高级过滤:按源IP地址、源端口、目的IP地址、目的端口、协议进行过滤。

  启动调试流后,GUI开始根据过滤器显示捕获的数据包。

  当你停止调试流时,FortiGate将显示一个数据包跟踪输出,你可以下载并将其保存为CSV文件。

  这两种输出之间的主要区别是显示实时消息以进行实时分析,但是你可以保存数据包跟踪输出并下载它们以供将来参考。

  答案:A

  答案:A

  干得漂亮!你已经了解了调试流程。现在,你将了解FortiGate CPU和内存诊断。

  通过演示CPU和内存方面的能力,你将能够诊断最常见的CPU和内存问题。

  并非所有问题都是网络连接故障。有时,设备中存在资源问题。

  还有什么可能导致延迟?在你消除了物理介质和带宽使用的问题之后,你应该检查FortiGate资源使用情况:CPU和内存。

  如果使用率很高,有一些工具可以识别哪个特性消耗了最多的CPU。此外,如果你准确地知道哪个更改(如果有的话)与问题开始的时间相对应,则可以更快地进行故障排除。

  接下来,检查diagnose sys top的输出。它列出了使用最多CPU或内存的进程。一些常见的进程包括:

  ● ipsengine、scanunit等检测进程

  ● reportd

  ● 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 fail-open设置不仅仅是用于保护模式——每当IPS失败时,它就会启动。大多数故障是由于高CPU问题或高内存(保护模式)问题。启用该设置,以便数据包仍然可以在保护模式(或任何其他IPS故障期间)传输,但不会被IPS检查。禁用该设置,以便为新的传入会话丢弃数据包,但允许FortiOS尝试使现有会话以与非保护模式相同的方式工作。

  请记住,IPS引擎用于所有类型的基于流量的检查。当FortiGate必须识别网络应用程序时,也使用IPS引擎,无论目标TCP/UDP端口如何(例如,用于应用程序控制)。请注意,NTurbo不支持fail-open设置。如果触发故障打开,即使启用了fail-open设置,通常使用NTurbo加速的新会话也会被删除。

  av-failopen设置定义了应用于任何基于代理的被检查流量的操作,而单元处于保护模式(并且只要内存使用不超过极端阈值)。此设置也适用于基于流量的反病毒检测。可以配置三种不同的动作:

  ● off:所有启用了内容扫描的新会话都不通过,但FortiGate会处理当前的活动会话。

  ● pass(默认):在FortiGate切换回非保护模式之前,所有新会话都不进行检查而通过。

  ● 一次性通过:类似于流量不经检查就通过。但是,即使在离开保护模式后,它也会继续绕过反病毒代理。管理员必须更改此设置,或者重新启动设备以重新启动反病毒扫描。

  但是,如果内存使用超过极限阈值,无论FortiGate配置如何,新会话总是被丢弃。

  diagnose hardware sysinfo conserve命令用于判断是否FortiGate设备当前处于内存保护模式。

  FortiGate的另一个不希望的状态是fial-open会话模式。此模式不是在高内存情况下启动的,而是在FortiGate上的代理耗尽可用套接字以处理更多基于代理的被检查流量时启动的。

  如果av-failopen-session开启,FortiGate允许所有会话。否则,默认情况下,它会阻止需要基于代理的检查的新会话,直到新的套接字可用为止。

  答案:A

  答案:B

  干得漂亮!你已经了解了FortiGate CPU和内存诊断。现在,你将了解FortiGate固件和硬件诊断。

  通过展示固件和硬件方面的能力,你将能够诊断最常见的固件和硬件问题。

  在FortiGate BIOS中,管理员可以对flash和固件镜像执行一些操作。连接console口时,必须重启设备才能进入BIOS菜单。在启动过程中,有一次会显示以下消息:

  Press any key to display configuration menu

  在提示符出现时,按任意键中断启动过程,进入BIOS菜单。在BIOS菜单中,你可以看到上图显示的选项。

  重新格式化闪存后,必须从BlOS菜单中安装固件映像。请按照以下步骤操作:

  1. 运行TFTP服务器。

  2. 在TFTP服务器上配置固件镜像文件所在的文件夹。

  3. 将PC的以太网口连接到FortiGate TFTP安装接口。

  4. 在BIOS菜单中选择get firmware image。

  指定为TFTP安装接口的接口取决于型号。但是,在大多数情况下,它要么是port1,要么是internal接口。

  在BIOS菜单中选择F,对闪存进行格式化。

  如果固件已损坏,或者管理员希望重新安装新固件,则可能需要执行此操作。但请记住,格式化闪存会删除存储在其中的所有信息,如固件映像、配置和数字证书。

  在BIOS菜单中选择C,配置TFTP参数。使用菜单选项配置参数,如本地IP地址、子网掩码、网关地址、固件文件名等。

  按R键查看TFTP配置设置。配置完TFTP参数后,按Q键返回配置主菜单。

  在BIOS菜单中,按T键启动TFTP固件传输。

  BIOS要求输入:  

  ● TFTP服务器的IP地址

  ● FortiGate IP地址(必须与TFTP服务器在同一个c类子网内)

  ● 固件镜像的名称

  如果一切正常,你应该看到一系列井号,表明设备正在下载图像。然后BIOS会验证文件的完整性,并给出以下三个选项:

  ● Save it as the default firmware

  ● Save it as the backup firmware

  ● Run the image without saving it

  如果固件将用于生产,选择第一个选项:将其保存为默认固件。

  最后一个选项(运行映像而不保存它)允许你在不覆盖内存中任何现有固件的情况下运行和测试固件。在完成测试并准备回滚更改后,必须重新启动设备,并且将使用先前存在的固件。

  与任何其他电子设备一样,内存损坏可能导致间歇性崩溃。

  如果怀疑硬件故障,可以运行硬件测试。

  如何运行硬件测试?这取决于FortiGate的型号。

  对于某些FortiGate E、F和D系列型号,可以直接从FortiOS CLI运行硬件测试。

  对于其他型号,你必须从Fortinet技术支持网站下载专用的HQIP硬件测试映像。

  上传硬件测试镜像的步骤与上传固件镜像的步骤相同。你可以运行硬件测试映像而不将其保存在闪存中,因此任何现有的固件映像都不会被覆盖。

  对于某些型号,diagnose hardware test suit all命令从FortiOS运行硬件测试。硬件测试在运行时需要用户交互。用户可以跳过一些步骤。一些测试需要将外部设备(如USB闪存驱动器)或网线连接到FortiGate。

  你可能想要监视的另一个纯粹用于诊断的领域是崩溃日志。可以通过CLI查看崩溃日志。

  任何时候进程因任何原因关闭,崩溃日志都会将其记录为崩溃。崩溃日志中的大部分日志都是正常的。例如,任何时候防病毒定义包更新,scanunit进程需要关闭才能应用新包。这是正常的关闭。崩溃日志中的一些日志显示它们是由用户发起的,这表明管理员手动重新启动了一个进程。

  崩溃日志中的某些日志可能会指出问题。因此,Fortinet技术支持部门经常要求提供崩溃日志以进行故障排除。上图展示了获取崩溃日志必须使用的命令。崩溃日志输出显示管理员重新启动了http进程。

  有两个命令可以显示崩溃日志中的信息:

  ● diagnose debug crashlog history列出了崩溃的进程的摘要、发生了多少次崩溃以及最后一次崩溃的时间。

  ● diagnose debug crashlog read提供了除其他系统事件(如保存模式进入和退出时间)外的关于每次崩溃的详细信息。

  上图显示了当FortiGate进入和退出内存保护模式时在崩溃日志中生成的条目。

  答案:A

  答案:B

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

  通过掌握本课所涵盖的目标,你学习了如何使用诊断命令和工具。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值