前面咱們學習了安全組,今天學習另外一個與安全相關的服務 -- FWaaS。linux
Firewall as a Service(FWaaS)是 Neutron 的一個高級服務。
用戶能夠用它來建立和管理防火牆,在 subnet 的邊界上對 layer 3 和 layer 4 的流量進行過濾。安全
傳統網絡中的防火牆通常放在網關上,用來控制子網之間的訪問。 FWaaS 的原理也同樣,是在 Neutron 虛擬 router 上應用防火牆規則,控制進出租戶網絡的數據。網絡
FWaaS 有三個重要概念: Firewall、Policy 和 Rule。ssh
Firewall
租戶可以建立和管理的邏輯防火牆資源。 Firewall 必須關聯某個 Policy,所以必須先建立 Policy。學習
Firewall Policy
Policy 是 Rule 的集合,Firewall 會按順序應用 Policy 中的每一條 Rule。spa
Firewall Rule
Rule 是訪問控制的規則,由源與目的子網 IP、源與目的端口、協議、allow 或 deny 動做組成。
例如,咱們能夠建立一條 Rule,容許外部網絡經過 ssh 訪問租戶網絡中的 instance,端口爲 22。router
與 FWaaS 容易混淆的概念是安全組(Security Group)。對象
安全組的應用對象是虛擬網卡,由 L2 Agent 實現,好比 neutron_openvswitch_agent 和 neutron_linuxbridge_agent。
安全組會在計算節點上經過 iptables 規則來控制進出 instance 虛擬網卡的流量。
也就是說:安全組保護的是 instance。ip
FWaaS 的應用對象是 router,能夠在安全組以前控制外部過來的流量,可是對於同一個 subnet 內的流量不做限制。
也就是說:FWaaS 保護的是 subnet。資源
因此,能夠同時部署 FWaaS 和安全組實現雙重防禦。
由於 FWaaS 是在 router 中實現的,因此 FWaaS 沒有單獨的 agent。 已有的 L3 agent 負責提供全部 FWaaS 功能。
要啓用 FWaaS,必須在 Neutron 的相關配置文件中作些設置。
Neutron 在 /etc/neutron/fwaas_driver.ini 文件中設置 FWaaS 使用的 driver。 以下圖所示:
這裏 driver 爲 iptables。若是之後支持更多的 driver,能夠在這裏替換。
在 Neutron 配置文件 /etc/neutron/neutron.conf 中啓用 FWaaS plugin。
配置完畢!下節咱們開始建立 Firewall。