13.12. ファイアウォールルールの管理

ファイアウォールルールは、デプロイメント時にオーバークラウドノードに自動的に適用され、OpenStack の運用に必要なポートのみを公開することを目的としています。必要に応じて、追加のファイアウォールルールを指定できます。たとえば、Zabbix モニタリングシステムのルールを追加するには、以下のようにします。

parameter_defaults:
  ControllerExtraConfig:
    ExtraFirewallRules:
      '301 allow zabbix':
      dport: 10050
      proto: tcp
      source: 10.0.0.8
注記

action パラメーターを設定しない場合、結果は accept になります。action パラメーターは、dropinsert、または append のみに設定できます。

アクセスを制限するルールを追加することもできます。ルールの定義時に使用される数字は、ルールの優先順位を決定します。たとえば、RabbitMQ のルール番号は、デフォルトでは 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

この例では、098099 は、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 であり、ジャンプを ACCEPTS に設定します。
  • state: ルールに関連付けられた状態の配列。デフォルトは [NEW] です。
  • source: ルールに関連付けられた送信元の IP アドレス
  • interface: ルールに関連付けられたネットワークインターフェイス
  • chain: ルールに関連付けられたチェーン。デフォルトは INPUT です。
  • destination: ルールに関連付けられた宛先の cidr