在本课中,你将学习与FortiGate相关的故障排除概念。
完成本课程后,你应该能够实现上图显示的目标。
通过展示对故障排除概念的熟练理解,你将能够设置基线,并确定你应该用于监控和诊断FortiGate问题的GUI工具和CLI命令。
优秀的管理员了解他们的网络。这种网络知识包括了解与流量、网络应用程序、流量流以及CPU和内存使用率相关的正常行为。因此,当问题发生时,管理员可以识别异常行为发生在哪里。拥有这些知识可以加快故障排除过程,并帮助管理员查明问题的原因。
FortiGate设备在OSI模型的所有层上运行。出于这个原因,故障排除问题可能很复杂。如果你在问题发生之前确定正常操作参数或为系统建立基线,这将有助于在故障排除时降低问题的复杂性。
当网络正常运行时,你可以使用许多不同的工具来收集统计数据和信息:SNMP、日志记录和位于FortiGate GUI上的监视器。
保持网络文档的更新也是一个好主意。网络图应包括物理连接、接口名称和子网。良好的网络文档还包括更改控制记录,以跟踪与网络更改相关的细节,例如谁进行了更改,何时进行更改,以及更改的内容。
如果出现问题,第一步是精确地定义它。例如,如果问题被定义为“网络过滤不起作用”,范围太不准确了。潜在原因太多,故障排除可能需要很长时间。因此,你必须提出问题来收集和理解问题的细节。一个问题发生在一个网站上吗?是否所有用户都遇到了这个问题?这是随机发生的吗?你能重现这个问题吗?
如果你提出并回答了正确的问题,你可以用细节来精确地定义问题。例如,你可以将问题细化为“网络过滤没有阻止用户Y的网站X”。有了这个级别的详细信息,你就可以更好地开始故障排除过程。
以下问题可以帮助确定问题的范围并隔离它:
● 有什么问题?
● 配置是否有效?
● 你能随时重现这个问题吗?或者它是间歇性的?
● 更改过什么?
● 这个问题会影响哪些应用程序、用户或操作系统?
对网络问题进行故障排除的一般方法是遵循TCP/IP模型,从顶层到底层,或从底层到顶层解决问题。
当你从下到上工作时,首先检查物理层。在确定一层运行正常后,继续移动到下一层,以此类推,直到发现问题的那一层。
当你从上到下处理问题时,首先检查应用层。如果某一层无法正常工作,你可以移动到下一层,以排除下层的问题。
在典型的网络中,你可以通过系统地审查网络每层的设置来进行故障排除。使用TCP/IP模型或OSI模型解决问题是你在审查问题时可以采取的一种方法。随着你获得更多经验,你可以尝试通过形成假设来解决问题,然后逐步解决问题。
问题通常非常具体。例如,在路由问题中,静态路由优先于动态路由协议。在这种情况下,在对问题进行故障排除时,充分了解路由流程图将非常重要。当然,了解路由协议的细微差别也非常重要。当使用OSPF时,hello计时器和死亡间隔必须在两端匹配,以形成邻居关系。此外,MTU大小必须匹配。在FortiOS中,必须正确配置其他独特的参数和设置,才能使某些功能按预期工作。
缩小问题范围并确定来源的另一个步骤是分析可能引发问题的原因。弄清楚如何重现这个问题可以成为收集数据的非常有用的工具。
在确定如何触发问题后,作为下一步,你可以分析可以使用哪些工具来收集调试数据,例如嗅探器和CLI调试命令、日志、GUl小部件等。
在本节中,你将了解GUl上可用的故障排除工具。
状态仪表板是FortiGate GUI欢迎屏幕。状态仪表板上的一些小部件包含对故障排除有用的信息,例如CPU、内存和会话小部件。
其他默认仪表板包括安全、网络、用户&认证以及无线WiFi。你也可以配置自定义小部件。这些小部件可以为FortiGate的监控和故障排除提供有用的信息。
除了仪表板外,GUl还包括FortiView,你可以在其中监控特定功能的屏幕。
例如,FortiView策略监控列出了最活跃的防火墙策略。另一个例子是路由监控,它列出了路由表中活跃的路由。
另一个重要的故障排除工具是FortiGate日志。日志查看器包括一个过滤器设置,你可以使用该设置仅显示与特定用户名、IP地址、URL或事件类型相关的日志条目。
其他日志,如系统事件,可以在执行FortiGate分析时提供有关FortiGate状态的数据来源。
上面表格列出了与不同日志设置相关的预期日志行为。
从左到右,第一列显示防火墙策略中日志设置的可能值:无日志、记录安全事件或记录所有会话。第二列指示是否启用或禁用了反病毒、网络过滤或电子邮件过滤日志设置。请记住,DLP和IPS配置文件始终在安全日志部分生成日志。最后一列显示了预期的行为。
如果你在策略启用了任何配置文件,并且你的日志记录未启用,即使配置文件阻止了流量,你也不会获得任何类型的日志。因此,如果你应用安全配置文件,考虑日志设置很重要。
在本节中,你将了解CLI故障排除命令,你可以使用这些命令收集数据来诊断FortiGate上的问题。
FortiGate包括许多CLI命令,可帮助你监控FortiGate的当前状态并开始诊断问题。
在收集调试数据时,execute tac report是收集初始数据的非常有用的命令。
一些命令,如diagnose sys top,对于实时监控进程活动非常有用。
对于管理员来说,熟悉故障排除会话中使用的基本调试命令非常有用。
有助于加快FortiGate的诊断和故障排除。
实时调试命令实时生成有关特定FortiGate进程或功能正在做什么的信息。
调试级别是一个位掩码值,指定显示哪些类型的消息。这取决于每个过程。然而,在所有情况下,0的调试级别意味着没有输出(禁用),而-1的调试级别意味着启用所有可能的消息类型。
上图显示了两个命令,你可以使用这两个命令来启用所有IPsec实时调试输出。你还可以启用将系统时间预先添加到每个调试行的选项。
使用后禁用任何实时调试应用程序很重要。调试应用程序消耗FortiGate资源,有些可能是CPU密集型的。
应用程序层测试命令不会实时显示信息。它们显示有关功能或进程的统计信息和配置信息。
你还可以使用其中一些命令来重新启动进程或执行其操作的更改。
在对入侵防御系统(IPS)问题进行故障排除时,此命令非常有用。
你可以使用该命令显示IPS引擎信息,打开或关闭IPS引擎,绕过IPS引擎,或重新启动所有IPS引擎。
FortiGate包括嗅探器命令,当你需要更深入地挖掘以诊断问题的根源时,这是一个有用的工具。
嗅探器命令可以在物理或虚拟接口上嗅探数据包。如果你将嗅探器命令设置为any,它可以同时嗅探所有可用的接口。
你可以使用过滤器自定义和缩小要捕获的数据包。嗅探器过滤器使用伯克利分组过滤器语法。
上图的示例显示了数据包嗅探器的过滤示例,该嗅探器捕获了带有SYN标志的所有TCP数据包。你可以通过在TCP标头中找到标志位位置并将其与tcpdump组合来创建此过滤器。你可以通过访问此上图底部的链接找到其他过滤选项。
数据包嗅探器命令末尾的数字4表示详细程度。在本例中,数据包捕获打印数据包的标题以及接口名称。你可以选择六种详细级别。
你将在后面的课程中学习这些详细级别和其他高级数据包捕获选项。
一些CLI调试命令会产生大量输出。如果你知道所需信息包含在输出的一个特定行中,并且如果你知道可用于查找该行的关键字,则可以使用GREP实用程序。
GREP实用程序仅显示与文本字符串匹配的输出行。使用GREP实用程序,你可以将输出减少到仅一行(正好包含你需要的信息),而不是长长的条目列表。上图列出了使用GREP实用程序时可用的所有选项。
当你使用CLI显示FortiGate配置时,你可以使用带有选项-f的GREP实用工具。它将只显示文本字符串至少匹配一个值的配置部分或表格。例如,当你需要找到对特定对象的所有引用时,这很有用。
在上图显示的示例中,-f选项用于查找对port1接口的所有引用。输出显示引用prot1的两个表:接口本身的定义,以及一个表态路由,其中port1是分配的设备接口。
上图的命令将打印diagnose sys session list包含在其输出中的所有本地会话。
GREP实用工具过滤local,这是一个会话标志,然后打印每次出现的前导行和尾行。
在对上图显示的场景进行故障排除时,你会采取哪种方法?
FortiGate A正试图与FortiGate B建立一个IPSec VPN隧道。你可以访问两台FortiGate设备。
尝试按照TCP/IP模型来解决这个问题。
你的第一步应该是确认从FortiGate A发送的IKE数据包到达FortiGate B,并且有双向通信。为此使用的最佳工具是数据包嗅探器。
如果来自FortiGate A的IKE数据包正在到达FortiGate B,那么你的第二步应该是使用实时应用程序IKE调试。
在这个场景中,你可以看到快速模式选择器配置中可能存在不匹配。确保快速模式选择器在两台FortiGate设备上匹配。
为了保存资源,请务必在完成故障排除后禁用调试。
完成本课程后,你应该能够实现上图显示的目标。
通过展示对故障排除概念的熟练理解,你将能够设置基线,并确定你应该用于监控和诊断FortiGate问题的GUI工具和CLI命令。