熟悉雲平臺的朋友可能都會注意到這樣一個事情:不管公有云仍是私有云,建立虛擬機的時候都須要選擇安全組,來對虛擬機進行安全防禦;有的雲平臺在VPC裏,還能選擇防火牆,ZStack在3.6版本也發佈了VPC防火牆功能。可能有的朋友會有疑惑,防火牆和安全組到底有什麼區別?有了安全組,是否能夠不須要防火牆了?他們是相互替代關係嗎?本文將會給你們作一個詳細介紹,剖析防火牆和安全組的異同以及各自的應用場景。後端
安全組在網絡服務中,在管理界面上選擇網絡服務->安全組,到安全組的配置界面進行安全組配置。安全
輸入安全組名稱,而後選擇網絡、配置規則、加載虛擬機網卡。服務器
安全組做用於虛擬機的虛擬網卡上,給虛擬機提供三層網絡的訪問控制,支持入方向、出方向的過濾;控制TCP/UDP/ICMP等協議進行有效過濾;也能夠直接匹配全部協議;能夠根據數據包的源IP進行過濾。安全組實際上能夠當作是一個分佈式的訪問控制,扁平網絡和VPC網絡均支持安全組。若是須要將更多的虛擬機加入安全組,則能夠動態在安全組中添加虛擬機網卡,每次規則的更新,也會動態的添加/刪除安全組規則,安全組中的全部虛擬機同步更新規則。網絡
安全組中包含了一系列的訪問控制規則,屬於白名單機制,只有在白名單中的數據才容許經過。安全組能夠加載一個或多個三層網絡,虛擬機掛載到三層網絡的網卡能夠加入這些安全組。一個虛擬機的網卡能夠加入多個安全組, 安全組的規則會合並在一塊兒並應用到該網卡上;也就是說,做用到虛擬機網卡上的規則是全部安全組的並集。分佈式
防火牆在網絡資源中,在管理界面上選擇網絡資源->VPC防火牆,到防火牆的配置界面進行防火牆配置spa
輸入防火牆名稱,而後選擇VPC路由器,這樣就將VPC路由器變成了一臺防火牆。blog
爲VPC路由器配置防火牆之後,會自動建立入方向的規則集,規則容許new、related、established狀態的報文以及ICMP報文經過,默認動做爲拒絕。接口
防火牆中有以下幾個概念:資源
規則集:是訪問控制規則的集合,包含了一系列的規則,具體做用到VPC路由器的每一個網卡的出入方向,包含對數據包處理的默認行爲接受、拒絕或者丟棄。路由
規則:訪問控制策略,支持3-4層的過濾;支持配置優先級,優先級越大,生效越早。
防火牆做用在VPC路由器上,屬於集中式的VPC邊緣設備,爲整個VPC提供訪問控制。防火牆的配置也是動態生效的,即時的配置會立刻做用到VPC路由器接口;接口每一個方向只能應用一個規則集。所以,接口每一個方向上的策略是規則集中的全部規則,每一個規則能夠自定義行爲,設置接受、拒絕或者丟棄。數據包進入防火牆時,根據規則集的規則優先級進行逐條匹配,若是匹配上了,則執行規則的行爲;若是沒有匹配上,則執行規則集的默認行爲。
防火牆能夠針對不一樣報文狀態來進行過濾,如new、established、invalid、related;也能夠針對常見的協議,如TCP、UDP、VRRP、ICMP等。同時,若是協議是TCP或者ICMP,防火牆提供了更加細粒度的過濾規則,可以針對ICMP的類型、TCP的flag進行匹配,進一步細化策略,知足更多的使用場景。
從前面的介紹,我們來對安全組和防火牆作一個對比小結,以下圖
從做用範圍來看,安全組做用於虛擬機網卡,而防火牆則是在VPC路由器上,保護整個VPC;
安全組是分佈式部署的,在每一個計算節點上都會存在,而防火牆是集中式,把VPC路由器變成了防火牆;
安全組是白名單機制,僅支持容許策略,防火牆能夠自定義規則行爲是容許仍是拒絕;
安全組規則根據配置順序來定優先級,防火牆則能夠自定義優先級;
安全組規則的匹配內容包括源IP、源端口、協議,防火牆則包括五元組以及TCP flag、ICMP Type、報文狀態。
從上面的分析能夠看到,防火牆的功能是更爲強大的,但可能有朋友要問了,這些都是屬於包過濾的功能,安全組一樣能夠作,這和防火牆是否有功能上的重複?誠然,防火牆的功能主要是包過濾,但後續能夠加入更多的功能。
從流量的角度再來看下,訪問VPC內部虛擬機的流量到公有網絡後,先通過VPC路由器,也就是防火牆,而後是VPC網絡,再到虛擬機端口上,通過安全組過濾最後發給虛擬機。能夠看到,防火牆是在安全組以前生效的。
打一個比方,把VPC看作是企業IT環境,虛擬機就是PC機或者服務器,安全組就比如PC機的軟件防火牆,VPC路由器就是企業出口設備。對於企業來講,出口確定是須要硬件防火牆設備來作防禦的,保證內部環境的安全,不可能只靠PC機的軟件防火牆;對於VPC來講也是一樣的道理,VPC使用防火牆,在更靠近威脅源的地方,將流量阻斷,保證了VPC內部通訊的安全,同時也保證了VPC路由器的安全。若是VPC路由器沒有防火牆功能,那危險流量過來後,VPC路由器就直接被攻破,後端鏈接的全部VPC網絡所有通訊中斷,安全組其實根本沒能發揮出應有的做用。由此能夠看到,VPC路由器是VPC的入口,在入口部署防火牆進行統一的策略防禦,是最好的安全手段。
從配置的角度來看,安全組是做用於虛擬機網卡的,若是虛擬機數量很是多,那麼就須要再一個個將虛擬機選擇出來加入安全組,過程複雜且繁瑣;而用防火牆就方便的多,直接幾條策略便可,防禦整個網段。
固然,防火牆也有沒法觸及之處,防火牆做爲VPC網絡的網關,主要對南北向流量進行過濾,同一個VPC網絡中的虛擬機通訊沒有辦法作控制,這個時候就須要依靠安全組了。
從上面的分析我們能夠看到,防火牆主要是作南北向的訪問控制,做用範圍是整個VPC,安全組主要是作東西向的訪問控制,做用範圍是虛擬機網卡,和防火牆造成互補的關係。固然,安全組也是能夠作南北向的訪問控制的,從安全的角度來看,在離威脅源更近的地方進行防禦是更好的方式,因此南北向交給防火牆來作,安全組做爲防火牆的補充,是雲主機安全的最後防線。
安全組和防火牆不是二者只取其一的關係,他們是相輔相成的,二者有機結合,纔可以更好的作雲主機的安全防禦。