13.11. 管理防火墙规则
防火墙规则在部署过程中自动应用到 overcloud 节点上,旨在仅公开获取 OpenStack 工作所需的端口。您可以根据需要指定额外的防火墙规则。例如,要为 Zabbix 监控系统添加规则:
parameter_defaults:
ControllerExtraConfig:
ExtraFirewallRules:
'301 allow zabbix':
dport: 10050
proto: tcp
source: 10.0.0.8
注意
如果没有设置 action 参数,则结果将 接受。您只能将 action 参数设置为 drop,insert, 或 append。
您还可以添加限制访问的规则。在规则定义中使用的数字将决定规则的优先级。例如,Rabx 的规则号默认为 109。如果要静止它,您可以将其切换为使用较低值:
parameter_defaults:
ControllerParameters
ExtraFirewallRules:
'098 allow rabbit from internalapi network':
dport: [4369,5672,25672]
proto: tcp
source: 10.0.0.0/24
'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 定义中提取端口要求。例如,RabbitMQ 的规则存储在 puppet/services/rabbitmq.yaml 中:
ExtraFirewallRules:
'109 rabbitmq':
dport:
- 4369
- 5672
- 25672
可以为规则设置以下参数:
-
dport:与规则关联的目的地端口。 -
SPORT :与规则关联的源端口。 -
Proto:与规则关联的协议。默认为 tcp -
action:与规则关联的操作策略。默认为 INSERT,并将 jump 设置为 ACCEPTS。 -
State: 与规则关联的状态阵列。默认为 [新增] -
source: 与规则关联的源 IP 地址。 -
Interface: 与规则关联的网络接口。 -
链:与规则关联的链。默认为 INPUT -
Destination: 与规则关联的目的地 cidr。