第 17 章 配置 Firewall-as-a-Service(FWaaS)
Firewall-as-a-Service (FWaaS) 插件为 OpenStack Networking (neutron) 添加了边界防火墙(perimeter firewall)管理功能。FWaaS 使用 iptables 在一个项目的所有虚拟路由上应用防火墙规则,并支持在一个项目中使用一个防火墙策略和逻辑防火墙实例。
FWaaS 在网络边界进行操作,它会对 OpenStack Networking (neutron) 的路由进行过滤。这一点和安全组有所不同,安全组在实例一级进行操作。
FWaaS 当前还是一个技术预览,我们不推荐您在未经测试的情况下使用它。
以下示图展示了 VM2 实例的出站和入站的网络数据:

图 1. FWaaS 结构
17.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 文件中(通常位于 Controller 节点上)启用这个选项:
/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py 'enable_firewall' = True
5. 重启 neutron-server 服务以使所做的改变生效:
# systemctl restart neutron-server
17.2. 配置 FWaaS
先创建防火墙规则以及包括它们的防火墙策略,然后再创建防火墙来应用这个防火墙策略:
1. 创建一个防火墙规则:
$ neutron firewall-rule-create --protocol <tcp|udp|icmp|any> --destination-port <port-range> --action <allow|deny>
CLI 需要一个协议值,如果防火墙规则与协议无关,则可以使用任何值。
2. 创建一个防火墙策略:
$ neutron firewall-policy-create --firewall-rules "<firewall-rule IDs or names separated by space>" myfirewallpolicy
以上指定的规则顺序非常重要。您可以先创建一个空的防火墙规则,以后再添加规则(使用 update 操作来添加多个规则,或使用 insert-rule 操作来添加一个规则)。
请注意: FWaaS 总会在每个策略的最后添加一个默认禁用所有网络数据的规则。因此,没有任何规则的防火墙策略会在默认情况下阻止所有网络流量。
17.3. 创建一个防火墙
$ neutron firewall-create <firewall-policy-uuid>
在 OpenStack Networking 路由器被创建、接口被添加前,防火墙会处于 PENDING_CREATE 状态。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.