13.12. 管理防火墙规则
防火墙规则在部署过程中自动应用到 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
。如果要 restrainit,请将其切换为使用较低值:
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
:与规则关联的状态阵列。默认为 [NEW] -
source
: 与规则关联的源 IP 地址。 -
接口
:与规则关联的网络接口。 -
链
:与规则关联的链。默认为 INPUT -
目的地
:与规则关联的目的地 cidr。