8.10. 管理防火墙规则
防火墙规则会在部署期间自动应用到 overcloud 节点上,旨在仅公开 OpenStack 工作所需的端口。您可以根据需要指定额外的防火墙规则。例如,要为 Zabbix 监控系统添加规则:
parameter_defaults:
ControllerExtraConfig:
tripleo::firewall::firewall_rules:
'301 allow zabbix':
dport: 10050
proto: tcp
source: 10.0.0.8
action: accept
您还可以添加限制访问的规则。规则定义期间使用的数字将决定规则的优先级。例如,Rabx 的规则号默认为 109。如果要其余使用它,请将其切换为使用较低值:
parameter_defaults:
ControllerExtraConfig:
tripleo::firewall::firewall_rules:
'098 allow rabbit from internalapi network':
dport: [4369,5672,25672]
proto: tcp
source: 10.0.0.0/24
action: accept
'099 drop other rabbit access':
dport: [4369,5672,25672]
proto: tcp
action: drop
在本例中,098 和 099 是随机选择的,它小于 RabbitMQ 的规则号 109。要确定规则的数量,您可以检查适当的节点上的 iptables 规则;对于 RabbitMQ,您可以检查控制器:
iptables-save
[...]
-A INPUT -p tcp -m multiport --dports 4369,5672,25672 -m comment --comment "109 rabbitmq" -m state --state NEW -j ACCEPT
或者,您还可以从 puppet 定义中提取端口要求。例如,Rabx 的规则存储在 puppet/services/rabbitmq.yaml 中:
tripleo.rabbitmq.firewall_rules:
'109 rabbitmq':
dport:
- 4369
- 5672
- 25672
可以为规则设置以下参数:
-
端口:与规则关联的端口。弃用了puppetlabs-firewall。 -
dport:与规则关联的目标端口。 -
sport:与规则关联的源端口。 -
Proto:与规则关联的协议。默认为 tcp -
action:与规则关联的操作策略。默认为 accept -
跳跳:要跳到的链。 -
State: 与规则关联的状态数组。默认为 [NEW] -
Source:与规则关联的源 IP 地址。 -
iniface:与规则关联的网络接口。 -
链:与规则关联的链。默认为 INPUT -
destination:与规则关联的目标 cidr。 -
Extras:puppetlabs-firewall模块支持的任何其他参数哈希。