第 20 章 安全增强
以下小节提供了增强 overcloud 安全性的一些建议。
20.1. 管理 Overcloud 防火墙
每个核心 OpenStack 平台服务都在其相应的可组合服务模板中包含防火墙规则。这会为每个 overcloud 节点自动创建一组默认防火墙规则。
overcloud Heat 模板包含一组有助于其他防火墙管理的参数:
- ManageFirewall
-
定义是否自动管理防火墙规则。设置为
true
,以允许 Puppet 在每个节点上自动配置防火墙。如果要手动管理防火墙,则设置为false
。默认值是true
。 - PurgeFirewallRules
-
定义在配置新防火墙规则前是否清除默认 Linux 防火墙规则。默认值为
false
。
如果 ManageFirewall
设为 true
,则可以在部署时创建额外的防火墙规则。使用配置 hook 设置 tripleo::firewall::firewall_rules
hieradata (请参阅 overcloud 环境文件中的 第 4.5 节 “Puppet:为角色自定义 Hieradata”)。此 hieradata 是一个哈希,包含防火墙规则名称及其对应的参数作为键,它们都是可选的:
- port
- 与该规则关联的端口。
- dport
- 与该规则关联的目的地端口。
- SPORT
- 与该规则关联的源端口。
- proto
-
与该规则关联的协议。默认为
tcp
。 - action
-
与该规则关联的操作策略。默认为
接受
。 - 跳过
-
要跳至的链。如果存在,它会覆盖
操作
。 - state
-
与该规则关联的状态阵列。默认为
['NEW']
。 - source
- 与该规则关联的源 IP 地址。
- iniface
- 与该规则关联的网络接口。
- 链
-
与该规则关联的链。默认为
INPUT
。 - 目的地
- 与该规则关联的目标 CIDR。
以下示例演示了防火墙规则格式的语法:
ExtraConfig: tripleo::firewall::firewall_rules: '300 allow custom application 1': port: 999 proto: udp action: accept '301 allow custom application 2': port: 8081 proto: tcp action: accept
这通过 ExtraConfig
将两个额外的防火墙规则应用于所有节点。
注意
每个规则名称都会成为对应 iptables
规则的注释。另请注意,每个规则名称都以三位前缀开头,以帮助 Puppet 在最终 iptables
文件中定义的所有规则。默认的 OpenStack Platform 规则使用 000 到 200 范围中的前缀。