13.12. ファイアウォールルールの管理
ファイアウォールルールは、デプロイメント時にオーバークラウドノードに自動的に適用され、OpenStack の運用に必要なポートのみを公開することを目的としています。必要に応じて、追加のファイアウォールルールを指定できます。たとえば、Zabbix モニタリングシステムのルールを追加するには、以下を実行します。
parameter_defaults:
ControllerExtraConfig:
ExtraFirewallRules:
'301 allow zabbix':
dport: 10050
proto: tcp
source: 10.0.0.8
action パラメーターを設定しない場合、結果は accept になります。action パラメーターは、drop、insert、または append のみに設定できます。
アクセスを制限するルールを追加できます。ルール定義に使用する数字は、このルールの優先順位を決定します。アクセスを制限するルールを適用するには、小さい値を指定する必要があります。たとえば、RabbitMQ のルール番号は、デフォルトでは 109 です。restrain に追加するルールには、小さい値が必要です。この例では、98 と 099 が任意に小さい数字です。
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
ルールの数を確認するには、適切なノードで 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で、ジャンプをACCEPTSに設定します。 -
state: ルールの状態の配列。デフォルトは[NEW]です。 -
source: ルールの送信元 IP アドレス。 -
interface: ルールのネットワークインターフェイス。 -
chain: ルールのチェーンで、デフォルトはINPUTです。 -
destination: ルールの宛先cidr。