第 13 章 安全增强
以下小节提供了强化 overcloud 安全性的建议。
13.1. 管理 Overcloud 防火墙
OpenStack Platform 核心服务各自包含防火墙规则,它们对应的可组合服务模板。这会自动为每个 overcloud 节点创建一组默认的防火墙规则。
overcloud Heat 模板包含一组参数,以帮助进行额外的防火墙管理:
- ManageFirewall
-
定义是否自动管理防火墙规则。设置为
true
,以允许 Puppet 在每个节点上自动配置防火墙。如果要手动管理防火墙,则设置为false
。默认值是true
。 - PurgeFirewallRules
-
定义在配置新之前是否清除默认的 Linux 防火墙规则。默认值为
false
。
如果 ManageFirewall
设为 true
,您可以在部署时创建额外的防火墙规则。使用 overcloud 的环境文件中的配置 hook (请参阅 第 4.5 节 “Puppet:为角色自定义 Hieradata”)设置 tripleo::firewall::firewall_rules
hieradata。这个 hieradata 是一个哈希值,其中包含防火墙规则名称,它们对应的参数作为键,所有这些参数都是可选的:
- port
- 与规则关联的端口。
- dport
- 与规则关联的目的地端口。
- 重要信息
- 与规则关联的源端口。
- Proto
-
与规则关联的协议。默认为
tcp
。 - action
-
与规则关联的操作策略。默认为
accept
。 - jump
-
要跳到的链。如果存在,它将覆盖
操作
。 - 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 范围的前缀。