在本节课中,你将了解防火墙策略以及如何应用它们来允许和拒绝通过FortiGate的流量。就其核心而言,FortiGate是一个防火墙,因此它对你的流量所做的几乎所有事情都与你的防火墙策略相关联。
这节课,你将学习上图显示的主题。
通过展示识别防火墙策略的不同组件的能力,以及认识到FortiGate如何将流量与防火墙策略匹配并采取适当的操作,你将更好地理解防火墙策略如何与网络流量交互。
首先,你将了解什么是防火墙策略。
任何通过FortiGate的流量都必须与防火墙策略相关联。策略是控制通过FortiGate的流量的一组指令。这些指令决定了流量的去向、如何处理,以及是否允许它通过FortiGate。总之,防火墙策略是一组规则,用于指定允许哪些流量通过FortiGate,以及当流量匹配策略时,FortiGate应该做什么。
应该允许流量通过吗?FortiGate基于简单的标准做出这个决定。FortiGate对流量的源、目的IP地址和业务进行分析。如果策略没有阻止流量,FortiGate会开始计算成本更高的安全配置文件检查,通常称为统一威胁管理(UTM),例如反病毒、应用程序控制和web过滤等,前提是你在策略中选择了它。如果存在安全风险,例如,如果流量包含病毒,这些检查将阻断流量。否则,流量允许通过。
是否会应用网络地址转换(NAT) ?是否需要认证?防火墙策略也决定了这些问题的答案。处理完成后,FortiGate将数据包转发到目的地。
FortiGate从上到下查找匹配的防火墙策略,如果匹配,则根据防火墙策略对流量进行处理。如果没有匹配到,流量将被默认的隐式拒绝防火墙策略丢弃。
每个策略通过引用你已经定义的对象(如地址和配置文件)来匹配流量并应用安全性。
常见的策略类型有:
● 防火墙策略:防火墙策略由一系列规则组成,用于控制通过FortiGate的流量。
● 防火墙虚似链路对策略:虚拟链路对策略用于控制虚拟链路对中接口之间的流量。
● 组播策略:组播策略允许组播报文从一个接口到另一个接口。
● 本地策略:本地策略策略控制访问FortiGate接口的流量,可用于限制管理员访问。
● DoS策略:拒绝服务(DoS)策略检查到达FortiGate接口的网络流量中的异常模式。
缺省情况下,策略&对象下只有防火墙策略可见。根据接口配置和通过可见功能启用的高级功能,可以选择其他策略。在本节课中,你将了解IPv4防火墙策略,因为它们是最常用的策略。
当数据包到达时,FortiGate如何找到匹配的策略?每个策略都有匹配条件,可以使用以下对象定义:
● 流入接口
● 流出接口
● 源地址:IP地址、用户、internet服务
● 目标地址:IP地址或internet服务
● 服务:IP协议和端口号
● 计划任务:应用策略的具体时间
如果流量匹配到防火墙策略,则按照防火墙策略中的动作执行:
● 如果动作被设置为拒绝, FortiGate将丢弃会话。
● 如果动作为接受,则表示允许该会话通过,并应用其他配置设置对报文进行处理,如用户认证、源NAT、反病毒扫描、web过滤等。
当FortiGate收到流量时,它会评估报文的源IP地址、目标IP地址和请求的服务(协议和端口号)。它还检查需要使用的流入接口和流出接口。基于这些信息,FortiGate识别防火墙策略并评估流量。如果流量匹配策略,则FortiGate应用策略中定义的动作(接受/拒绝)。例如,如果要阻断所有进入FTP服务器的流量,可以将FTP服务器的地址定义为目的地址,并选择FTP作为服务。你可能不会指定一个源(通常允许在internet上的任何位置)或计划(FTP服务器通常总是可用的,白天或晚上)。最后,将动作设置为接受。
为了开始描述FortiGate如何为每个数据包查找策略,让我们从接口开始。
数据包从一个流入接口到达。路由决定流出接口。在每个策略中,必须设置源地址和目标地址;即使其中一个或两个都设置为any。为了成功匹配,两个接口都必须匹配策略的接口标准。
例如,如果你在port3 (LAN)入接口和port1 (WAN)出接口之间配置了策略,当数据包到达port2时,该数据包将不符合你的策略,因此将因为列表末尾的隐式拒绝策略而被丢弃。即使策略是从port3 (LAN)流入接口到任何流出接口,数据包仍然会被丢弃,因为它与流入接口不匹配。
为了简化策略的配置,可以将接口划分为逻辑分区。例如,你可以将port4到port7分组为一个DMZ。你可以在接口页面创建区域。但是,应该注意不能单独引用区域中的接口,如果需要将接口添加到区域,则必须删除对该接口的所有引用(例如,防火墙策略、防火墙地址等)。如果你认为可能需要单独引用接口,则应该在防火墙策略中设置多个源接口和目标接口,而不是使用区域。
默认情况下,只能选择一个流入接口和一个流出接口。这是因为在GUI上防火墙策略禁用了选择多个接口或any接口的选项。
但是,你可以在可见功能页面上启用多接口策略选项来禁用单个接口限制。
如果在CLI上配置防火墙策略,也可以指定多个接口,或者使用any选项,而不考虑默认的GUl设置。
另外值得一提的是,当你选择any接口选项时,你不能为该接口选择多个接口。在上图所示的示例中,因为any被选择为流出接口,所以不能添加任何其他接口,因为any接口意味着已经选择了所有接口。
FortiGate考虑的下一个匹配条件是数据包的来源。
在每个防火墙策略中,必须选择一个源地址对象。此外,你还可以通过选择用户或用户组来细化源地址的定义,这将提供更细粒度的匹配,从而提高安全性。你还可以在防火墙策略中选择ISDB对象作为源,这将在本课后面学习。
当选择完全限定域名(FQDN)作为源地址时,FQDN必须通过DNS解析,并缓存在FortiGate中。确保为FortiGate配置了正确的DNS设置。如果FortiGate无法解析FQDN地址,它将显示警告消息,并且配置了该FQDN的防火墙策略可能无法正常工作。
如果用户被添加为源地址的一部分,在允许或拒绝访问之前,FortiGate必须根据防火墙策略验证该用户。用户可以通过不同的方式进行身份验证。
对于本地用户,用户名和密码在FortiGate本地配置。当本地用户进行身份验证时,他们输入的凭据必须与在FortiGate上本地配置的用户名和密码匹配。
对于远程用户(例如LDAP或RADIUS), FortiGate接收远程用户的用户名和密码,并将此信息传递给认证服务器。认证服务器验证用户登录凭证并更新FortiGate。在FortiGate接收到该信息后,它会根据防火墙策略授予对网络的访问权。
从域控制器检索Fortinet单点登录(FSSO)用户的信息。根据FortiGate上的组信息授予访问权限。
在上图所示的示例中,源地址选择标识特定的子网和用户组。记住,用户是可选对象。这里使用用户对象使策略更加具体。如果你希望策略匹配更多的流量,你可以不定义用户对象。
还可以在防火墙策略中使用internet服务(ISDB)对象作为源。防火墙策略中的internet服务对象和源地址对象是非此即彼的关系。这意味着你可以选择源地址或internet服务,但不能同时选择两者。
与数据包的源地址一样,FortiGate也会检查目标地址是否匹配。
你可以在防火墙策略中使用地址对象或ISDB对象作为目标。地址对象可以是主机名、IP子网或范围。如果输入FQDN作为地址对象,请确保已将FortiGate设备配置为DNS服务器。FortiGate使用DNS将这些FQDN主机名解析为IP地址,这些地址出现在IP头中。
你还可以选择地理地址,即分配给某个国家的地址组或范围。FortiGuard用于更新这些对象。
为什么没有选择用户的选项?在流入接口确定用户身份,认证通过后报文直接转发到流出接口。
Internet服务是一个数据库,它包含最常见的Internet服务使用的IP地址、IP协议和端口号的列表。FortiGate会定期从FortiGuard下载该数据库的最新版本。可以在防火墙策略中源地址或目标地址中选择。
如果你只需要允许一些知名的公共互联网目的地(如Dropbox或Facebook)的流量,会发生什么?
在配置防火墙策略时,可以使用Internet服务作为防火墙策略中的目标地址,其中包含该服务使用的所有IP地址、端口和协议。出于同样的原因,不能将常规地址对象与ISDB对象混合使用,也不能在防火墙策略上选择服务。ISDB对象已经拥有硬编码的服务信息。
与需要经常检查地址对象以确保没有任何IP地址被更改或允许使用适当端口的地址对象相比,internet服务有助于使这种类型的部署更加容易和简单。
基于地理的ISDB对象允许用户定义国家、地区和城市。这些对象可以在防火墙策略中使用,以更细粒度地控制父ISDB对象的位置。
ISDB对象在策略中按名称引用,而不是按ID引用。
你可以禁用ISDB更新,以便它们只在更改控制窗口期间发生。一旦禁用了ISDB更新,针对IPS、AV等的其他预定FortiGuard更新就不会更新ISDB。默认情况下,ISDB更新是启用的。
计划任务向策略添加时间元素。例如,你可以使用策略允许备份软件在夜间激活,或者为允许用于测试目的的远程地址创建测试窗口。
计划任务可以配置并使用24小时时钟。这里有一些配置设置值得一提:
● 循环:如果启用all day,流量将在选定的日期内24小时内被允许。在配置循环时间段时,如果设置的停止时间早于开始时间,则停止时间将发生在第二天。例如,选择星期日,开始时间为10:00,结束时间为09:00,则计划任务将在周一的09:00停止。如果开始和停止时间相同,计划将运行24小时。
● 单次:开始日期和时间必须早于结束日期和时间。你还可以启用生成事件日志,它将在计划到期前生成事件日志N天,其中N可以是1到100天。
FortiGate用来匹配策略的另一个标准是数据包的服务。
在IP层,协议号(例如TCP、UDP、SCTP等)以及源和目标端口定义了每个网络服务。通常,只定义一个目标端口(即服务器的侦听端口)。一些遗留应用程序可能使用特定的源端口,但在大多数现代应用程序中,源端口是在传输时随机识别的,因此不是定义服务的可靠方法。
例如,预定义服务对象HTTP为TCP的目的端口80,预定义服务对象HTTPS为TCP的目的端口443。源端口的持续时间较短,因此不定义源端口。
默认情况下,服务被分组在一起,以按类别简化管理。如果预定义的服务不能满足你的组织需求,你可以创建一个或多个新的服务、服务组和类别。
答案:A
答案:A
干得漂亮!你已经了解了防火墙策略中使用的组件以及FortiGate使用的匹配条件。现在,你将学习如何配置防火墙策略。
通过展示配置防火墙策略的能力,你将能够将正确的设置(例如安全配置文件、日志记录和流量整形)应用到FortiGate上的防火墙策略,并使你的网络更加安全。
在界面方式下配置防火墙策略时,由于防火墙策略默认启用需要指定唯一的名称,而在命令行方式下可选。这有助于管理员快速识别他们正在寻找的策略。但是,你可以通过启用允许未命名的策略,在可见功能页面上的GUl上使此功能可选。
注意,如果在CLI上配置的策略没有策略名,并且在GUl上修改了该现有策略,则必须指定唯一的名称。FortiGate平面GUl视图允许您通过单击或从右侧填充的列表中拖放来选择接口和其他对象。
可以选择Internet服务作为源。Internet服务是一个或多个地址和一个或多个与互联网上的服务相关联的服务的组合,例如软件更新服务。
你可以在防火墙策略中配置许多其他选项,例如防火墙和网络选项、安全配置文件、日志记录选项以及启用或禁用策略。
在创建防火墙对象或策略时,添加一个通用唯一标识符(UUID)属性,以便在与FortiManager或FortiAnalyzer集成时记录这些UUID并改进功能。
在创建防火墙策略时,请记住,FortiGate是一个有状态防火墙。因此,你只需创建一个与发起会话的流量方向匹配的防火墙策略。FortiGate将自动记住源目标对并允许回复。
防火墙策略可以应用的最重要的功能之一是安全配置文件,例如IPS和反病毒。安全配置文件检查流量中的每个数据包,其中会话已经被防火墙策略有条件地接受。
流量检测有两种方式:基于流量的检测和基于代理的检测。每种巡检类型支持不同的安全功能。
请注意,默认情况下,视频过滤器、VOIP和Web应用程序防火墙安全配置文件选项在GUI的策略页面中不可见。你需要在可见功能页面上启用它们。
如果在策略中开启了日志功能,当防火墙策略关闭IP后,FortiGate会生成流量日志会话。
默认缺省情况下,记录许可流量为安全事件,只对防火墙策略中应用的安全配置文件产生日志。但是,你可以将该设置更改为全部会话,即为全部会话生成日志。
如果启用了会话开始时生成日志,则FortiGate会在会话开始时生成流量日志。FortiGate还会在会话关闭时为同一会话生成第二个日志。但是请记住,增加日志记录会降低性能,所以只在必要时使用它。
在会话过程中,如果安全配置文件检测到违规行为,会立即记录攻击日志。为了减少日志消息的产生,提高性能,可以启用会话表丢弃流量项。这将在会话表中创建被拒绝的会话,如果会话被拒绝,该会话的所有报文也将被拒绝。这确保了FortiGate不必为每个匹配拒绝会话的新数据包执行策略查找,从而减少了CPU占用和日志生成。
这个选项在CLI中,称为ses-deny-traffic。你还可以设置阻止会话的持续时间。它通过在CLI中设置block-session-timer来决定会话在会话表中保留的时间。缺省值为30秒。如果GUI选项会话启动时生成日志不显示,这意味着你的FortiGate设备没有内部存储。该选项在CLI中,与内部存储无关,称为set logtraffic-start enable。
你可以配置两种类型的流量整形:共享和每IP。
共享整形器对使用该整形器的所有流量应用总带宽。范围可以是每个策略,也可以是所有引用该整形器的策略。FortiGate可以统计进出流量的数据包速率。
FortiGate支持创建三种类型的流量整形策略:
● 共享策略整形:安全策略的带宽管理
● 每IP整形:对用户IP地址进行带宽管理
● 应用控制整形:按应用进行带宽管理
创建流量整形策略时,匹配条件必须与需要整形的防火墙策略一致。请注意,这些同样适用于TCP和UDP, UDP协议可能无法从数据包丢失中优雅地恢复。
默认情况下,IPv4和IPv6策略被合并为一个统一的策略,而不是为IPv4和IPv6创建和维护两个不同的策略集。
流入接口、流出接口、计划任务和服务字段可以同时与IPv4和IPv6共享。源地址、目标地址和IP地址池需要同时选择IPv4地址和IPv6地址。
在配置统一防火墙策略时,可以在策略中配置IPv4源地址、IPv4目标地址和IPv4 IP池,而不需要指定任何IPv6引用。IPv6也可以配置相同行为的策略。如果需要同时配置IPv4地址和IPv6地址,则防火墙策略中的源地址和目标地址必须同时选择IPv4地址和IPv6地址。源IP版本和目的IP版本必须匹配。例如,一个策略不能只有IPv4源和IPv6目的。GUl中的策略表可以被过滤,以显示IPv4、IPv6或IPv4和IPv6源和目标的策略。
请注意,默认情况下,IPv6选项在GUI的策略表中是不可见的。必须在可见功能页面启用IPv6。
答案:B
答案:B
干得漂亮!现在你已经了解了如何在FortiGate上配置防火墙策略。接下来,你将学习如何管理和微调防火墙策略的设置。
通过展示管理防火墙策略的能力,你将能够理解防火墙策略的策略ID的使用。此外,你将能够精确地确定对象的使用情况,并使用对象组简化策略。
防火墙策略显示在一个有组织的列表中。该列表以接口对视图或通过顺序组织。
默认情况下,在接口对视图中显示策略列表。每个部分都包含策略,按照策略匹配流量的顺序进行评估,并按照入接口-出接口对进行排列。或者,通过选择页面顶部的通过顺序,你可以将策略作为单一的综合列表来查看。在这个视图中,策略也按照流量匹配评估的顺序列出,但它们没有分组。
在某些情况下,你不能选择视图。例如,如果在防火墙策略中使用多个源接口或目标接口,或者any接口,则不能通过接口对将策略划分为部分(有些可能是三胞胎或更多)。在这种情况下,策略总是出现在单个列表中(通过顺序)。
为了帮助你记住每个接口的用法,你可以通过在网络页面上编辑接口来添加别名。例如,将port1称为ISP1。这有助于使你的策略列表更容易理解。
在编辑策略时,策略信息将可见。
如果管理员希望检查策略使用情况,例如最后使用、第一次使用、命中计数、活动会话等,则此功能非常有用。
了解防火墙策略如何工作的一个重要概念是优先顺序,或者,如果你更喜欢一个更容易识别的术语,即先到先得。
策略ID是标识符。默认情况下,策略ID不在策略列表GUl中显示。你可以使用配置表设置图标添加策略ID列。
当你在GUl上创建一个新的防火墙策略时,FortiGate自动分配一个策略ID。策略ID永远不会改变,即使你在顺序中向上或向下移动规则。
如果启用了策略高级选项,则可以在创建新策略时手动分配策略ID。如果发现重复的条目,系统将产生错误,因此你可以分配不同的可用策略ID号。
默认情况下,策略高级选项在GUl上不可用,你必须在可见功能页面上启用它。
为了简化管理,可以对服务和地址对象进行分组。这样,你就可以在防火墙策略中引用该组,而不必每次都选择多个对象或制定多个策略。
上图显示了用于配置策略的四个服务:HTTP、HTTPS、FTP和DNS。浏览器使用DNS将URL解析为IP地址,因为人们记住的是网站的域名而不是IP地址。如果你需要为web和FTP流量制定许多策略,那么创建一个名为web_FTP的服务对象是有意义的。这样,你就不必在每次制定策略时都手动选择所有四种服务。策略可以直接引用Web-FTP服务组。
此外,还可以在源组中合并源地址。
你已经看到了几个可以在制定策略时重用的组件对象。如果你想删除一个对象怎么办?
如果一个对象正在被使用,则不能删除它。首先,你必须重新配置当前正在使用它的对象。GUI提供了一种简单的方法来查找FortiGate配置中的对象被引用的位置。看看关联项栏中的数字。它们是物体被使用的地方的数量。这个数字实际上是一个链接,所以如果你点击它,你可以看到哪些对象正在使用它。
在上图所示的示例中,all地址对象正由Training地址组和三个防火墙策略使用。如果选择了防火墙策略,可以使用编辑、查看列表和查看属性。
● 编辑:对选中对象进行编辑。在本例中,它显示防火墙策略ID 1的编辑页面。
● 查看列表:查看所属类别下的已选对象。在本例中,它将显示所有防火墙策略的列表。
● 视图属性:显示该对象在该配置中使用的位置。在此例中,地址对象all被用于该防火墙策略的目的地址和源地址。
你可以右键单击任何防火墙策略,以查看用于编辑或修改策略的不同菜单选项。包括启用或禁用防火墙策略、插入防火墙策略(上面或下面)、复制和粘贴策略、反向克隆(仅当该策略禁用NAT时)。
单击在CLI中编辑将打开所选防火墙策略或对象的CLI控制台。可以直接在CLI控制台中修改所选防火墙策略或对象。
你可以在GUI上使用每个列中的过滤器过滤防火墙策略。添加ID列后,单击ID列过滤图标,根据策略ID号对策略进行过滤和搜索。
单击名称过滤器图标,可以根据策略名称等搜索策略。
答案:A
干得漂亮!你已经了解了如何在FortiGate上管理防火墙策略。现在,你将了解与防火墙策略相关的最佳实践和故障排除。
通过展示了解防火墙策略限制和使用策略匹配技术的能力,你将能够在使用防火墙策略时应用最佳实践和基本故障排除技术。
配置防火墙对象名称时,只支持特定字符。例如, Training(LAN)不是地址对象的有效名称,因为它包含不受支持的特殊字符。虽然名称中支持空格,但作为最佳实践,请避免在名称中使用空格。相反,应该使用连字符或下划线。使用空格可能会导致在CLI上修改或故障排除时出现问题。
但是,在密码、注释、替换消息等中支持许多特殊字符。
在对生产网络进行配置变更之前,应始终规划维护窗口,并为少数IP地址和用户创建测试用例。通过GUI或CLI方式进行的配置更改立即生效,且可能导致业务中断。
作为最佳实践,尽量配置防火墙策略。这有助于限制对这些资源的访问。例如,配置地址对象时,请使用正确的子网。
另一个值得一提的设置是安全配置文件。安全配置文件有助于为你的网络提供适当的安全性。正确的日志配置还可以帮助你分析、诊断和解决常见的网络问题。
还记得只应用第一个匹配策略吗?把你的策略安排在正确的位置很重要。它会影响哪些流量被阻止或允许。在适用接口对的部分中,FortiGate从顶部开始查找匹配策略。所以,你应该把更具体的政策放在上面;否则,更一般的策略将首先匹配流量,而更细粒度的策略将永远不会应用。
在上图所示的示例中,你正在将只匹配FTP流量的Block_FTP策略(ID 2)移动到更通用的Full_Access(接受来自所有地方的所有内容)策略之上。否则,FortiGate将始终在适用的接口对中应用第一个匹配策略Full_Access,并且永远不会到达Block_FTP策略。
在策略列表中移动策略时,策略ID保持不变。
注意,在创建策略时,FortiGate会分配下一个最高的可用ID号。
注意,策略ID是标识符,默认情况下不会显示在策略列表GUl上。你可以使用配置表设置图标添加策略ID列。
为了优化和巩固防火墙策略,请始终检查所有配置的设置。在上图所示的示例中,这两种防火墙策略在服务、安全配置文件和日志记录设置方面存在差异。你可以通过组合服务和选择适当的日志记录设置来合并这两种防火墙策略。
如果你日志设置选择安全事件(UTM),则ALL_ICMP协议不生成流量日志流量。
请注意,ALL_ICMP服务不受web过滤器和反病毒扫描的影响,这意味着对ICMP流量应用这些安全配置文件将导致流量通过而不被检查。
你可以根据策略查找输入条件找到匹配的防火墙策略。策略查找在FortiGate上创建一个没有实际流量的包流。因此,策略查找可以从流跟踪中提取策略ID,并在GUI策略配置页面中突出显示它。
根据你选择的协议(例如TCP、UDP、IP、ICMP等等),你需要定义其他输入条件。例如,选择TCP协议时,需要定义源地址、源端口(可选)、目标端口和目标地址。当选择ICMP协议时,需要定义ICMP类型/编码、源地址和目标地址。
当FortiGate执行策略查找时,它会从上到下对匹配防火墙策略的入口、有状态检查和出口进行一系列检查,然后为匹配策略提供结果。
注意,如果防火墙策略状态设置为禁用,则策略查找将跳过禁用的策略,并在列表中检查下一个匹配策略。
透明模式下,不支持策略查找功能。
根据输入条件,单击搜索后,跟踪结果将被选中,并在防火墙策略页面中高亮显示。
为什么策略ID 1或ID 2不匹配输入条件?
由于策略ID 1状态设置为禁用,策略查找将跳过禁用的策略。对于防火墙策略ID 2,它与策略查找匹配条件中指定的目标端口不匹配。
答案:A
答案:A
恭喜你!你已经完成了这节课。现在,你将回顾本节课中涉及到的目标。
上图展示了你在这节课中涉及到的目标。通过掌握本课所涵盖的目标,你学习了如何配置、使用和管理防火墙策略。