Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第 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 状态。