在本课中,你将学习如何使用FortiManager对企业网络中所有FortiGate设备进行集中管理。
通过展示使用FortiManager的能力,你将能够集中管理企业网络中的所有FortiGate设备。
在本节中,你将回顾FortiManager的主要功能。
你什么时候应该在网络中使用FortiManager?
在大型企业和托管安全服务提供商(MSSP)中,网络的规模带来了小型网络所没有的挑战:大规模配置;调度配置更改的推出;以及维护、跟踪和审计许多更改。
通过FortiManager的集中管理可以帮助你更轻松地管理许多设备中的许多部署类型,并降低运营成本。
FortiManager能做什么?
● 在你的网络上配置防火墙策略
● 充当配置修订控制和安全审计的中央存储库
● 部署和管理复杂的网格和星形IPsec VPN
● 充当托管设备的私人FortiGuard分发服务器(FDS)
● 使用JSON APl编写脚本和自动设备配置、策略更改等
FortiManager可以帮助你更好地组织和管理你的网络。FortiManager的主要功能包括:
● 集中管理:你可以使用FortiManager从单个控制台管理它们,而不是单独登录数百台FortiGate设备。
● 管理域 (ADOM):FortiManager可以将设备分组为地理或功能性ADOM,如果你拥有庞大的网络安全管理员团队,这是理想的选择。
● 配置修订控制:你的FortiManager保留所有配置更改的历史记录。你可以安排FortiManager部署新的配置或将托管设备恢复到以前的配置。
● 本地FortiGuard服务配置:为了减少网络延迟并最大限度地减少互联网带宽使用,你的托管设备可以使用FortiManager作为专用FDN服务器。
● 固件管理:FortiManager可以为托管设备安排固件升级。
● 脚本:FortiManager支持基于CLI和基于TCL的脚本进行配置部署。
● 窗格管理器(VPN、FortiAP、FortiSwitch和Fabric View):FortiManager管理窗格简化了VPN、FortiAP、FortiSwitch和Fabric View(Security Fabric)的部署和管理。
● 日志记录和报告:托管设备可以在FortiManager上存储日志。从该日志数据中,你可以生成基于SQL的报告,因为FortiManager具有许多与FortiAnalyzer相同的日志记录和报告功能。
● FortiMeter:允许你根据需要打开和关闭FortiOS-VM和FortiWebOS-VM,仅为你使用的流量和消耗量付费。这些虚拟机有时也被称为现收现付的虚拟机。你必须拥有FortiMeter许可证,并且FortiMeter许可证必须使用FortiCare与FortiManager链接。
在本节中,你将检查FortiManager软件架构。
在FortiManager内部,有管理层在GUl上表示为窗格。例如,设备管理层由设备管理器窗格表示,该窗格执行修订历史记录和脚本。
现在,你将更详细地查看管理层。
为了组织和高效管理大型网络,FortiManager有多个管理层。
全局ADOM层有两个关键部分:全局对象数据库以及页眉和页脚策略包。页眉和页脚策略包包含了每个ADOM的策略。使用策略包的一个例子是在运营商环境中,运营商允许客户流量通过其网络,但不允许客户访问运营商网络基础设施。
ADOM层是在托管设备或设备组上创建、管理和安装策略包的地方。你可以在此处创建多个策略包。ADOM层包括每个ADOM的一个公共对象数据库。通用对象数据库包含地址、服务和安全配置文件等信息。
设备管理器层记录由FortiManager设备集中管理的设备的信息,例如设备名称、设备类型、型号、IP地址、当前安装的固件、修订历史记录和实时状态。
了解FortiManager管理模式的层很重要。
在全局ADOM层中,你可以创建页眉和页脚策略规则。你可以将这些策略规则分配给多个ADOM。如果多个ADOM策略包需要相同的策略和对象,你可以在此层中创建它们,这样你就不必在每个ADOM中维护副本。
在ADOM层中,每个ADOM中的对象和策略包共享一个公共对象数据库。你可以同时在许多托管设备上创建、导入和安装策略包。
在设备管理器层中,你可以为每个设备配置和安装设备设置。如果检测到本地或FortiManager上的配置更改,FortiManager会将当前配置与更改的配置进行比较,并在FortiManager上创建新的配置修订。无论配置更改是大是小,FortiManager都会记录它并保存新配置。这可以帮助管理员审核配置更改,并在需要时恢复到以前的修订。
什么是ADOM?
ADOM使管理员帐户能够创建设备分组,供管理员监控和管理。例如,管理员可以管理特定于其地理位置或业务部门的设备。默认情况下不启用ADOM,必须由管理员启用。
ADOM的目的是通过根据管理标准对设备进行分组来划分设备的管理,并控制(限制)管理访问。管理访问是根据管理员配置文件分配的,该配置文件允许访问设备上的一个或多个ADOM。如果管理员使用虚拟域(VDOM),ADOM可以进一步限制仅从特定设备的VDOM访问数据。可用的ADOM数量因型号而异。
设备管理器窗格提供设备和安装向导,以帮助你完成各种管理和维护任务。使用这些向导可以减少执行许多常见任务所需的时间。设备管理器窗格中有四个主要向导:
● 添加设备用于将设备添加到中央管理并导入其配置。
● 安装向导用于将配置更改从设备管理器窗格或策略与对象窗格安装到托管设备。它允许你预览更改,如果管理员不同意更改,请取消和修改它们。
● 导入配置用于将与托管设备关联的接口映射、策略数据库和对象导入到“策略和对象”窗格下的策略包中。默认情况下,它与添加设备向导一起运行,并且可以随时从托管设备列表中运行。
● 重新安装策略用于执行策略包的快速安装。它提供了预览将安装在托管设备上的更改的能力。
你可以通过在设备管理器中右键单击托管设备来打开导入配置和重新安装策略向导。
在本节中,你将了解FortiManager上可用的脚本选项。
脚本可以对托管设备进行许多更改,对于多个托管设备的批量配置更改和一致性非常有用。FortiManager支持两种类型的脚本:CLI脚本和TCL脚本。
CLI脚本仅包括FortiOS CLI命令,因为它们是在FortiGate设备上的命令行提示符上输入的。TCL是一种动态脚本语言,扩展了CLI脚本的功能。在FortiManager TCL脚本中,脚本的第一行是#!。这是TCL脚本的标准。不要包括通常结束TCL脚本的退出命令,因为它阻止脚本运行。你需要熟悉TCL语言和正则表达式。有关TCL脚本的更多信息,请参阅TCL官方网站:http://www.tcl.tk。
默认情况下启用CLI脚本。
CLI脚本可以以三种不同的方式运行:
● 设备数据库:默认情况下,在设备数据库上运行脚本。建议你在设备数据库上运行更改(默认设置),因为这允许你检查将发送到托管设备哪些配置更改。在设备数据库上运行脚本后,你可以使用安装向导将这些更改安装到托管设备中。
● 策略包,ADOM数据库:如果脚本包含与ADOM级对象和策略相关的更改,你可以更改默认选择以在策略包、ADOM数据库上运行,然后使用安装向导进行安装。
● 直接远程FortiGate(通过CLI):你可以直接在设备上运行脚本,而无需使用安装向导安装这些更改。由于你直接在托管设备上安装了更改,因此系统不提供在执行之前通过FortiManager验证和检查配置更改的选项。
对于TCL脚本,你必须在FortiManager CLI上为TCL脚本启用show命令。
请注意,TCL脚本不像CLI脚本那样通过FGFM隧道运行。TCL脚本使用SSH通过FGFM进行隧道,并且它们需要SSH身份验证才能这样做。如果FortiManager没有在设备管理器中使用正确的管理凭据,则TCL脚本失败。CLI脚本使用FGFM隧道,FGFM隧道使用FortiManager和FortiGate序列号进行身份验证。
你只能直接在远程FortiGate上(通过CLI)运行TCL脚本。与Jinja脚本相比,TCL脚本的主要优势在于它在托管设备上运行,而Jinja脚本仅在FortiManager上运行,然后你将配置更改推送到托管设备。
上图的示例展示了如何从TCL脚本运行CLI命令。任何TCL脚本都必须以#开头!
下一行,exec TCL,运行CLI命令get system status。
仅当TCL解释器在10秒内从FortiGate命令提示符获取#时,CLI命令才会运行。如果不是这样,CLI命令不会运行,脚本会生成错误。
你可以使用TCL命令put将CLI命令的输出保存到FortiManager脚本历史日志中。
上图展示了使用TCL变量的示例。
TCL set命令创建一个新变量(newhostname),并将其值设置为NGF。
然后,你使用变量的值 (前面加$号) 来配置FortiGate主机名。
如果你在脚本中多次运行命令或一组命令,则可以将这些命令添加到TCL过程中以进行简化。你可以将一个或多个参数传递给TCL过程。
上图的示例显示了名为do_cmd的TCL过程的创建。如果10秒内收到#,此过程指示解释器运行CLI命令(通过参数cmd接收)。
之后,脚本调用该过程五次(每次传递不同的参数)以配置端口1上的IP地址。
上图包含一个更复杂的TCL示例,展示了TCL脚本的力量。假设你的网络中有150台主机,你需要创建150个不同的防火墙地址:每个主机一个。这个TCL脚本使用循环来做到这一点。
该脚本使用两个变量。变量numhosts包含要创建的地址数量。变量i从值1开始,并在每次循环后递增。循环运行的次数等于变量numhosts。
在每个循环中,变量i用于设置防火墙地址的名称及其IP地址。FortiGate上实际运行的是150个防火墙地址。
创建CLI脚本时,请遵循以下最佳实践:
● 使用完整的FortiOS CLI命令。你可以使用部分语法;但是,这可能会导致脚本失败。
● 以数字符号(#)开头的评论行不会运行。
● 在FortiGate CLI上,确保将控制台输出设置为标准。否则,长度超过屏幕的脚本和其他输出将无法正确运行或显示。
在本节中,你将了解FortiManager上可用的应用程序编程接口(API)。
FortiManager JSON API允许你在FortiManager设备或虚拟机上执行配置和监控操作。JSON API基于JSON RPC,这是一个用JSON编码的远程过程调用协议。此API允许你使用FortiPortal或其他第三方应用程序在FortiManager GUl上执行许多相同的任务。它允许MSSP和大型企业为FortiManager管理创建定制的品牌门户网站,而无需直接登录FortiManager。这种方法在MSSP环境中非常有用,许多MSSP客户需要自己的门户才能访问FortiManager。
FortiPortal使用REST API与FortiManager通信并收集设备详细信息。RESTful API使用标准HTTP方法(GET、POST、DELETE)进行客户端-服务器交互。当FortiPortal(客户端)提出HTTP请求时,FortiManager或FortiAnalyzer(服务器)通过以XML或JSON格式返回请求的数据来响应。这个过程类似于浏览器从服务器请求网页,然后服务器以HTML格式响应网页的情况。当使用REST APl时,应用程序(FortiPortal)无法以HTML格式解析数据。该应用程序仅适用于XML或JSON格式。
Fortinet开发人员网络(FNDN)提供对工具、示例代码、文档的访问,并在你订阅时访问Fortinet开发人员社区。你还可以从Fortinet文档库获取更多信息。
如本表所示,API返回一个HTTP状态代码来指示请求的状态。
上图的API示例展示了如何从ADOM获取策略包信息。
API示例展示了如何在ADOM中添加策略包。如上图所示,名为“培训”的策略包已添加到ADOM核心中。
在本节中,你将了解FortiManager上可用的元字段。
元字段允许管理员在配置、添加或维护FortiGate设备或添加新管理员时添加额外信息。你可以使元字段为必填或可选字段。当需要元字段时,管理员在创建关联对象时必须提供其他信息。例如,如果你为设备对象创建所需的元字段,管理员必须为所有设备的元字段定义一个值。
当你创建元字段时,会自动创建元字段的变量。你可以配置以下字段来创建新的元字段:
● 对象:允许你选择对象类型,例如管理域、防火墙地址组、防火墙策略、中央NAT、管理员等。这决定了元字段在配置中的使用位置。
● 重要性:允许你在具有元字段选项的对象上强制设置元字段。例如,如果你将联系人电子邮件变量设置为必需,当FortiManager管理员创建新管理员时,他们必须提供联系人电子邮件地址。如果你将此字段设置为可选,则提供联系人电子邮件地址是可选的。
● 状态:确定元字段在对象中是否可用,供管理员配置。如果你禁用此字段,管理员将无法看到或选择元字段。此选项仅适用于非防火墙对象。
在FortiManager中,ADOM级别的元数据变量也可用于脚本、模板和模型设备中的一般用途。上图显示了ADOM级别的元数据变量和系统级别的元字段。在系统级元字段中,你还必须选择对象类型,如设备、系统管理员等。
术语元字段和元数据变量是可以互换的。通常,元字段是一个遗留术语,指的是全局变化,元数据变量指的是ADOM级变量。
当企业拥有全局办公室或分支机构,并且FortiManager管理员必须创建具有相同逻辑名称但值不同的多个对象时,元字段非常有用。管理员可以创建一些逻辑对象,然后映射每个对象以为每个FortiGate创建特定的地址对象,而不是在FortiManager ADOM数据库中创建数百个单独的地址对象或IP池。
在上图显示的示例中,元数据变量branch_id用于防火墙地址对象和IP池。对于每个分支FortiGate,branch_id值是唯一的。
在分配防火墙对象并安装策略包后,FortiGate上的防火墙策略显示变量(branch_id)已替换为其每个设备值3。
在本例中,CLI模板被分配到并安装在FortiGate fgt_vm64上。执行安装时,安装预览显示变量(主机名)已替换为其每个设备值Remote-FortiGate。
1. 创建或编辑元数据变量以映射设备并键入值。在本例中,Remote-FortiGate被设置为值。
2. 在脚本中使用元数据变量。
3. 将脚本分配给目标的FortiGate。
4. 安装以应用设备级配置。
5. 设备主机名更改为定义的元数据变量值。
通过掌握本课所涵盖的目标,你学习了如何使用FortiManager对企业网络中的所有FortiGate设备进行集中管理。