KVM的行爲管理 nwfilter規則

KVM的行爲規則管理

比如 IP的黑名單白名單 以及端口的黑名單白名單

nwfilter目的是讓管理員在host上控制vm的每塊網卡。同一個nwfilter規則可以被不同vm重複使用,也可以每個VM創建不同的filter規則。

它的默認路徑在/etc/libvirt/nwfilter/

默認libvirt安裝好後會加載一些規則,用戶也可以自定義規則。

自定義的規則編寫好後使用下面命令加載

virsh nwfilter-define 規則文件路徑

取消規則(有虛擬機使用時無法取消)

virsh nwfilter-undefine 規則名

查看已經加載的nwfilter規則

virsh nwfilter-list

virsh nwfilter-list

編譯規則:

virsh nwfilter-edit + 規則名 (編輯保存後就立刻生效)

virsh nwfilter-edit rc-8

也可以vi 直接編輯規則的xml的文件,編輯完成後nwfilter-define後生效

vi /etc/libvirt/nwfilter/rc-8

 

 IP的限制,如下圖 是IP的白名單設置 只允許桌面訪問10.28.18.90以及10.28.18.90訪問這個桌面

<filter name='rc-8_IpRule' chain='root'>  
  <uuid>b7a92793-cbb6-432f-b24c-b8db58fbdef5</uuid>
  <rule action='accept' direction='inout' priority='100'> 
    <tcp srcipfrom='10.28.18.90' srcipto='10.28.18.90'/>
  </rule>
  <rule action='accept' direction='inout' priority='100'>
    <udp srcipfrom='10.28.18.90' srcipto='10.28.18.90'/>
  </rule>
  <rule action='accept' direction='inout' priority='100'>
    <icmp srcipfrom='10.28.18.90' srcipto='10.28.18.90'/>
  </rule>
</filter>

// name      規則名  
// chain     協議 規則鏈支持的協議:root,stp,mac,vlan,ipv4,ipv6,arp,rarp
// action    drop 丟棄數據包  reject 返回ICMP包並拒絕 accept 允許 return 返回規則鏈上級繼續下一項檢查 continue 直接繼續下一條規則的檢測
// direction in 進入 out 流出 inout 進和出
// priority  優先級的值越小優先級越高 如果不指定默認爲500
// srcipfrom 起始IP 
// srcipto   結束IP

端口的限制

<filter name='rc-8_PortRule' chain='root'>
  <uuid>623287c2-be7c-4b64-b2dd-34dfd76f87fc</uuid>
  <rule action='drop' direction='in' priority='100'>
    <ip protocol='tcp' dstportstart='50400' dstportend='50700'/>
  </rule>
  <rule action='drop' direction='in' priority='100'>
    <ip protocol='udp' dstportstart='50400' dstportend='50700'/>
  </rule>
</filter>

// name      規則名  
// chain     協議 規則鏈支持的協議:root,stp,mac,vlan,ipv4,ipv6,arp,rarp
// action    drop 丟棄數據包  reject 返回ICMP包並拒絕 accept 允許 return 返回規則鏈上級繼續下一項檢查 continue 直接繼續下一條規則的檢測
// direction in 進入 out 流出 inout 進和出
// priority  優先級的值越小優先級越高 如果不指定默認爲500
// protocol  協議 如 tcp udp
// dstportstart 起始端口號
// dstportend   結尾端口號

注意:端口的限制,是限制桌面的本地端口
如遠程桌面的3389端口,是我們本地的端口,設置的時候可以直接設置爲3389 這樣他們就無法直接遠程連接桌面了

但是我們要訪問外網的80端口等 直接在白名單中設置80是不行的,因爲訪問的時候,我們本地調用的並不是80端口

如訪問10.28.18.59:8000時,我們本地的端口調用爲50494-50496。我們設置的是本地端口,這個時候在配置文件中把50494-50496寫入黑名單中,我們就無法訪問8000端口了

注:這個端口一直在改變,但是在一定的範圍內,我們可以直接把那一個範圍禁用了

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章