2023年1月31日 星期二

安全組與網絡ACL介紹及兩者間差異比較

安全組

安全組充當虛擬防火牆,控制允許到達和離開與其關聯的資源的流量。 例如,在將安全組與 EC2 實例關聯后,它將控制該實例的入站和出站流量。它允許你控制哪些流量可以流入計算機,以及哪些流量可以流出。 安全組就是這樣一個防火牆,它可以被關聯到 VPC 內的實例(如 EC2)。 關聯后,這台 EC2 就有了類似 Windows 中那樣的防火牆。 所以可以認為安全組就是實例的防火牆

對於每個安全組,你都可以添加若干入站規則和出站規則。

入站規則

入站規則描述了什麼樣的流量可以流入實例,例如下方的入站規則允許任意一個IP位址通過 HTTPS 協定訪問實例。
源IP協議類型埠號描述
0.0.0.0/0TCP443允許從所有 IPv4 位址進行入站 HTTPS 訪問
源 0.0.0.0/0 表示任意一個 IP 位址,即允許來自所有 IP 位址的流量進入。 HTTPS 運行在 TCP 協定的 443 埠之上,據此設置協定類型和埠號。 下圖表示了該入站規則。

出站規則

出站規則描述了什麼樣的流量可以流出實例,例如下方的出站規則允許實例將流量發送到任何地方。

目的地 IP協議類型埠號描述
0.0.0.0/0TCPAll允許所有的出站 IPv4 流量
和入站規則一樣,0.0.0.0/0 表示任意一個IP位址,即允許流量流出到任何地方。 由於用戶端通常會使用一個隨機的埠接收伺服器的回應,因此該出站規則的埠範圍是 All,這樣才能覆蓋用戶端所有的隨機埠。 下圖表示了該出站規則。



需要注意的是,目的地不僅可以是IP位址,也可以是另一個安全組

連接跟蹤

安全組使用連接跟蹤來跟蹤有關進出實例的流量的資訊。 安全組將基於流量的連接狀態應用規則以確定允許還是拒絕流量。 有了這種方法,安全組就具有狀態。 這意味著無論出站安全組規則如何都允許對入站流量的回應流出實例,反之亦然。

連接跟蹤有助於簡化請求回應模式的出入站規則配置。 請求回應模式常見於網路傳輸協定(如 HTTP),用戶端向伺服器發起一個請求,伺服器將回應返回給客戶端,請求回應總是成對出現。 借助安全組的連接跟蹤特性,可以實現如下兩個效果。

入站跟蹤
如果從源發來的請求流量通過了入站規則進入實例,則隨後的回應流量在出站時會忽略出站規則直接流出。

出站跟蹤
如果從實例發出的請求流量通過了出站規則流出實例,則隨後的回應流量在入站時會忽略入站規則直接流入。
未跟蹤的連接

並不是所有的連接都會被跟蹤(有狀態)。 如果有一個安全組規則允許所有通信(0.0.0.0/0 或 ::/0)的 TCP 或 UDP 流,而另一個方向上存在一個對應的規則允許所有埠(0-65535)的所有回應通信(0.0.0.0/0 或 ::/0),則不會跟蹤該通信流。 下邊的例子展示了其中的一些規律。

入站規則

源IP協議類型埠號
203.0.113.1/32TCP22(SSH)
0.0.0.0/0TCP80(HTTP)
::/0TCP80(HTTP)
0.0.0.0/0ICMPAll

出站規則

目的地 IP協議類型埠號
0.0.0.0/0AllAll
::/0AllAll
  • 1.將會跟蹤埠 22(SSH)上流入和流出實例的 TCP 流量,因為入站規則只允許來自 203.0.113.1/32 的流量,而不是所有 IP 位址(0.0.0.0/0)。
  • 2.不會跟蹤埠 80(HTTP)上流入和流出實例的 TCP 流量,因為入站和出站規則都允許所有流量(0.0.0.0/0 或 ::/0)。
  • 3.無論規則如何,始終跟蹤ICMP流量,因為不是TCP或UDP協定。
  • 4.如果您從安全組刪除出站規則,則將跟蹤往返於實例上的所有流量,包括埠 80(HTTP)上的流量,因為出站規則不再允許所有IP位址。


網路 ACL

網路訪問控制清單(ACL)是 VPC 的一個可選安全層,可用作防火牆來控制進出一個或多個子網的流量。 你可以設置網路 ACL,使其規則與你的安全組相似,以便為你的 VPC 添加額外安全層。
網路 ACL 和安全組極為相似,都可作為防火牆控制流量的進出,且工作在子網級別。 因此可以認為網路 ACL 是子網防火牆

可設置拒絕規則

安全組使用白名單模式設置規則,每條規則都表示允許某種流量通過。 而網路 ACL 還支援黑名單模式,可以設置拒絕哪些流量通過。 例如下邊的入站規則:
規則編號源IP類型協議類型埠號允許/拒絕註釋
1200.0.0.0/0SSHTCP22拒絕拒絕所有 SSH 連接
*0.0.0.0/0All trafficAllAll允許允許所有連接
該入站規則表示拒絕所有 SSH 流量的流入,但是允許其餘所有流量。 由於同時存在允許拒絕兩種規則,因此允許和拒絕規則間可能會存在衝突。 例如某流量在規則 1 中被允許,但在規則 2 中被拒絕。

為了解決這種衝突,網路 ACL 按照規則編號由小到大逐個嘗試。 如果流量遇到了適用的規則,則應用該規則,並停止嘗試後續規則。



安全組與網路 ACL 的差異

網路 ACL 只比安全組多了黑名單模式,拒絕規則
安全組網路 ACL
實例級別運行子網級別運行
僅支援允許規則支援允許規則拒絕規則
有狀態:返回數據流會被自動允許,不受任何規則的影響無狀態:返回數據流必須被規則明確允許
會在決定是否允許數據流前評估所有規則在決定是否允許流量時,按順序處理規則,從編號最低的規則開始
只有在啟動實例的同時指定安全組、或稍後將安全組與實例關聯的情況下,操作才會被應用到實例自動應用於與之關聯的子網中的所有實例(因此,如果安全組規則過於寬鬆,它提供額外的防禦層)

 二者最主要的差別是安全組作用於實例(如EC2),因此每個實例都可以配置不同的安全組。而網絡ACL 作用於子網,相當於是給子網裝了一個防火牆,子網內的所有資源都會被網絡ACL 保護



沒有留言:

張貼留言

搜尋此網誌