防火墙即服务 (FWaaS) v2 场景¶
注意
FWaaS v2 目前不支持 OVN。
FWaaS v2 的安装¶
如果可能,您应该依赖于 Linux 和/或 OpenStack 发行版提供的软件包
例如,对于 Ubuntu,您可以安装 Canonical 提供的
neutron-fwaas-common包。
警告
始终检查可用软件包的版本,并查看 https://releases.openstack.org/ 上的发行说明
如果您使用 pip,请按照以下步骤安装 neutron-fwaas
确定与您的 OpenStack 版本匹配的 neutron-fwaas 包的版本
2023.1 Antelope: 最新的 18.0.x 版本
Zed: 最新的 17.0.x 版本
指示 pip (a) 仅安装此版本,以及 (b) 考虑 OpenStack 对软件包版本依赖项的上限约束(例如,对于 Antelope)
pip install -c https://opendev.org/openstack/requirements/raw/branch/stable/2025.2/upper-constraints.txt neutron-fwaas==18.0.0
启用 FWaaS v2¶
在
/etc/neutron/neutron.conf文件中启用 FWaaS 插件service_plugins = firewall_v2 [service_providers] # ... service_provider = FIREWALL_V2:fwaas_db:neutron_fwaas.services.firewall.service_drivers.agents.agents.FirewallAgentDriver:default [fwaas] agent_version = v2 driver = neutron_fwaas.services.firewall.service_drivers.agents.drivers.linux.iptables_fwaas_v2.IptablesFwaasDriver enabled = True
注意
在 Ubuntu 和 Centos 上,修改
/etc/neutron/fwaas_driver.ini文件中的[fwaas]部分,而不是/etc/neutron/neutron.conf。为 L3 代理配置 FWaaS 插件。
在
l3_agent.ini的AGENT部分,确保加载 FWaaS v2 扩展[AGENT] extensions = fwaas_v2
配置 ML2 插件代理扩展。
将以下语句添加到
ml2_conf.ini,该文件通常位于/etc/neutron/plugins/ml2/ml2_conf.ini[agent] extensions = fwaas_v2 [fwaas] firewall_l2_driver = noop
在数据库中创建所需的表
# neutron-db-manage --subproject neutron-fwaas upgrade head
重新启动
neutron-l3-agent、neutron-openvswitch-agent和neutron-server服务以应用设置。
配置防火墙即服务 v2¶
创建防火墙规则并创建一个包含它们的策略。然后,创建一个应用该策略的防火墙。
创建防火墙规则
$ openstack firewall group rule create --protocol {tcp,udp,icmp,any} \ --source-ip-address SOURCE_IP_ADDRESS \ --destination-ip-address DESTINATION_IP_ADDRESS \ --source-port SOURCE_PORT_RANGE --destination-port DEST_PORT_RANGE \ --action {allow,deny,reject}
Networking 客户端需要一个协议值。如果规则与协议无关,您可以使用
any值。注意
当源或目标 IP 地址不是相同的 IP 版本时(例如,IPv6),该命令将返回错误。
创建防火墙策略
$ openstack firewall group policy create --firewall-rule \ "FIREWALL_RULE_IDS_OR_NAMES" myfirewallpolicy
用空格分隔防火墙规则 ID 或名称。您指定规则的顺序很重要。
您可以创建一个没有规则的防火墙策略,稍后添加规则,如下所示
要添加多个规则,请使用 update 操作。
要添加单个规则,请使用 insert-rule 操作。
有关更多详细信息,请参阅 OpenStack 命令行界面参考中的 Networking 命令行客户端。
注意
FWaaS 始终在每个策略的最底优先级添加一个默认的
deny all规则。因此,没有规则的防火墙策略默认情况下会阻止所有流量。创建防火墙组
$ openstack firewall group create --ingress-firewall-policy \ "FIREWALL_POLICY_IDS_OR_NAMES" --egress-firewall-policy \ "FIREWALL_POLICY_IDS_OR_NAMES" --port "PORT_IDS_OR_NAMES"
用空格分隔防火墙策略 ID 或名称。您指定策略的方向很重要。
注意
在您创建一个 Networking 路由器并将其连接到一个接口之前,防火墙将保持 PENDING_CREATE 状态。