7.png

上一节应用了无规则的虚拟防火墙,不允许任何流量通过。

今天我们会在防火墙中添加一条规则,允许 ssh。
最后我们会对安全组和 FWaaS 作个比较。

下面我们添加一条 firewall rule:允许 ssh。

在 Firewall Rules 标签页面点击 “Add Rule” 按钮。

将新 rule 命名为 “allow ssh”, Protocal 选择 “TCP”, Action 为 “ALLOW”, Destination Port/Port Range 为 “22”,

点击 “Add” ,rule 创建成功。

接下来将 rule 添加到 policy 中。

点击 Firewall Policies 标签页面,然后点击 “test_policy” 后面的 “Insert Rule” 按钮。

在下拉框中选择 Rule “allow ssh”,点击 “Save Changes”。

可以看到,“allow ssh” 已经成功添加到 “test_policy” 中。

通过 vimdiff 查看 router namespace 的 iptables-save 发生了什么变化。

iptables 添加了两条规则:

-A neutron-***-agen-iv4e85f4601 -p tcp -m tcp --dport 22 -j ACCEPT
-A neutron-***-agen-ov4e85f4601 -p tcp -m tcp --dport 22 -j ACCEPT

其含义是进出 router 的 tcp 数据包,如果目的端口为 22(ssh)ssh,则一律 ACCEPT。

测试一下,cirros-vm1 已经可以 ssh cirros-vm2,但 ping 还是不通,这与预期一致。

“allow ssh” 已经起作用。 同时我们也发现,firewall rule 对进出流量同时生效,不区分方向。

小节

FWaaS 用于加强 Neutron 网络的安全性,与安全组可以配合使用。
下面将 FWaaS 和安全组做个比较。

相同点:
1. 底层都是通过 iptables 实现。

不同点:
1. FWaaS 的 iptables 规则应用在 router 上,保护整个租户网络;
安全组则应用在虚拟网卡上,保护单个 instance。

2. FWaaS 可以定义 allow 或者 deny 规则;安全组只能定义 allow 规则。

3. 目前 FWaaS 规则不能区分进出流量,对双向流量都起作用;
安全组规则可以区分 ingress 和 egress。

FWaaS 学习完毕,下节我们继续学习 Neutron 的另一个服务 Load Balancing as a Service.

blob.png