controller節點:html
1 # Install package 2 yum install openstack-neutron-fwaas python-neutron-fwaas 3 4 # Edit /etc/neutron/neutron.conf 5 [DEFAULT] 6 service_plugins = router,firewall 7 8 # Create firewall database table 9 neutron-db-manage --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf \ 10 --config-file /etc/neutron/plugin.ini upgrade head 11 12 # Restart neutron-server 13 systemctl restart neutron-server
network節點:python
# Install package yum install openstack-neutron-fwaas python-neutron-fwaas # Edit /etc/neutron/l3_agent.ini [agent] extensions = fwaas # Edit /etc/neutron/fwaas_driver.ini [fwaas] driver = iptables enabled = true agent_version = v1 # Restart neutron-l3-agent (注 fwaas_driver.ini) systemctl restart neutron-l3-agent
firewall sample:linux
# Create firewall rule neutron firewall-rule-create --name allow-ssh --protocol tcp --destination-port 22 --ip-version 4 --action allow --enabled True # Create firewall policy neutron firewall-policy-create --firewall-rules allow-ssh --audited my_firewall_policy # Create firewall neutron firewall-create --name my_firewall --router $router_id my_firewall_policy
FWaas做用在三層的Router上的Iptables,因此若是要讓防火牆生效,網絡必須有網關,並且要有和網關鏈接的Router。api
網絡狀況以下:安全
Ext-Net 192.168.80.0/24, 192.168.80.2網絡
Sub-Net 192.168.0.0/24, 192.168.0.1ssh
Router 192.168.80.237 – 192.168.0.1tcp
Router對應的namespace以下:ide
建立FW時會在Router的namespace上看到以下IPTables規則:ui
具體的就是在每一個Router的interface設備qr{xxx}裝上入向和出向兩個IPTables規則鏈, 在每一個鏈上都有相應的IPTables規則來實現防火牆的規則,neutron-l3-agent-iv4890abe79和neutron-l3-agent-ov4890abe79就是這兩個規則鏈,neutron-l3-agent-fwaas-defau是默認規則鏈,能夠看出默認狀況他會Drop全部進出訪問。
安全組由L2 Agent來實現,也就是說L2 Agent,好比neutron_openvswitch_agent和 neutron_linuxbridge_agent,會將安全組規則轉換成IPTables規則,並且通常發生在全部計算節點上。
防火牆由L3 Agent來實現,它的規則會在租戶的Router所在的L3 Agent節點上轉化 成IPTables規則。
防火牆保護只能做用於跨網段的網絡流量,而安全組則能夠做用於任何進出虛擬機的流量。
防火牆做爲高級網絡服務,將被用於服務鏈中,而安全組則不能。在Neutron中同時部署防火牆和安全組能夠達到雙重防禦。
外部惡意訪問能夠被防火牆過濾掉,避免了計算節點的安全組去處理惡意訪問所形成的資源損失。
即便防火牆被突破,安全組做爲下一到防線還能夠保護虛擬機。最重要的是,安全組能夠過濾掉來自內部的惡意訪問。
參考文檔:
http://niusmallnan.com/_build/html/_templates/openstack/fwaas_setup.html
https://docs.openstack.org/newton/networking-guide/misc.html