Newton部署firewall_v1

  • FWaas(防火牆即服務)是基於neutron組件實現的L4-L7層的服務
  • Firewall 以extension的方式與neutron-L3-agent 集成一塊兒
  • 社區 Firewall的driver都是基於 iptables
  • newton 不支持 firewall_v2,(neutronclient還不支持firewall_v2的api)

部署Firewall

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全部進出訪問。

 

安全組與Firewall

  • 安全組由L2 Agent來實現,也就是說L2 Agent,好比neutron_openvswitch_agent和 neutron_linuxbridge_agent,會將安全組規則轉換成IPTables規則,並且通常發生在全部計算節點上。

    防火牆由L3 Agent來實現,它的規則會在租戶的Router所在的L3 Agent節點上轉化 成IPTables規則。

  • 防火牆保護只能做用於跨網段的網絡流量,而安全組則能夠做用於任何進出虛擬機的流量。

  • 防火牆做爲高級網絡服務,將被用於服務鏈中,而安全組則不能。在Neutron中同時部署防火牆和安全組能夠達到雙重防禦。

    外部惡意訪問能夠被防火牆過濾掉,避免了計算節點的安全組去處理惡意訪問所形成的資源損失。

    即便防火牆被突破,安全組做爲下一到防線還能夠保護虛擬機。最重要的是,安全組能夠過濾掉來自內部的惡意訪問。

 

參考文檔:

      https://access.redhat.com/documentation/en/red-hat-enterprise-linux-openstack-platform/7/paged/networking-guide/chapter-16-configure-firewall-as-a-service-fwaas

      http://niusmallnan.com/_build/html/_templates/openstack/fwaas_setup.html

      https://docs.openstack.org/newton/networking-guide/misc.html

相關文章
相關標籤/搜索