第20章 Firewall-as-a-Service (FWaaS) の設定
Firewall-as-a-Service (FWaaS) プラグインは、OpenStack Networking (neutron) に境界ファイアウォール管理を追加します。FWaaS は iptables を使用して、プロジェクト内の全 Networking ルーターにファイアウォールポリシーを適用し、プロジェクトごとにファイアウォールポリシーと論理ファイアウォールインスタンス 1 つをサポートします。
FWaaS は、OpenStack Networking (neutron) ルーターでトラフィックをフィルタリングして、境界で動作します。これは、セキュリティーグループとは異なり、インスタンスレベルで動作します。
FWaaS は現在テクノロジープレビューとなっており、テストされていない操作は推奨されません。
以下のサンプル図では、VM2 インスタンスの送信/受信トラフィックのフローを示しています。
![fwaas](https://access.redhat.com/webassets/avalon/d/Red_Hat_OpenStack_Platform-12-Networking_Guide-ja-JP/images/04c5553f76df636ce6e90d9f6d0b1725/fwaas.png)
図 1. FWaaS アーキテクチャー
20.1. FWaaS の有効化
1. FWaaS パッケージをインストールします。
# yum install openstack-neutron-fwaas python-neutron-fwaas
2. neutron.conf
ファイルで FWaaS プラグインを有効化します。
service_plugins = neutron.services.firewall.fwaas_plugin.FirewallPlugin
3. fwaas_driver.ini
ファイルで FWaaS を設定します。
[fwaas] driver = neutron.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver enabled = True [service_providers] service_provider = LOADBALANCER:Haproxy:neutron_lbaas.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
4. FWaaS 管理オプションは、OpenStack Dashboard で利用できます。通常、コントローラーノードに設置されている local_settings.py
ファイルで、これらのオプションを有効化します。
/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py 'enable_firewall' = True
5. neutron-server
を再起動して変更を適用します。
# systemctl restart neutron-server
20.2. FWaaS の設定
まず、ファイアウォールルールを作成して、これらのルールを含めるポリシーを作成します。次に、ファイアウォールを作成して、ポリシーを適用します。
1. ファイアウォールルールを作成します。
$ neutron firewall-rule-create --protocol <tcp|udp|icmp|any> --destination-port <port-range> --action <allow|deny>
CLI では、プロトコルの値が必要です。ルールがプロトコルに依存しない場合は、any の値を使用することができます。
2. ファイアウォールポリシーを作成します。
$ neutron firewall-policy-create --firewall-rules "<firewall-rule IDs or names separated by space>" myfirewallpolicy
上記で指定したルールの順番は重要です。ルールなしで、ファイアウォールポリシーを作成して、update 操作 (複数のルールの追加時) または insert-rule 操作 (単一ルールの追加時) のいずれかを使用してから、後でルールを追加することができます。
注記: FWaaS は常に、各ポリシーの最も低い優先順位で、「default deny all」ルールを追加します。そのため、デフォルトでは、ルールを持たないファイアウォールポリシーは全トラフィックをブロックします。
20.3. ファイアウォールの作成
$ neutron firewall-create <firewall-policy-uuid>
ファイアウォールは、OpenStack Networking のルーターが作成され、インターフェースが接続されるまで、PENDING_CREATE の状態に留まります。