如果您需要拒絕或允許特定IP訪問網路型負載平衡NLB執行個體,您可以通過NLB安全性群組功能來實現流量的存取控制。通過設定NLB安全性群組,您可以實現黑白名單的存取原則,以便對流量進行更精確的控制。
情境說明
當NLB執行個體未加入安全性群組時,NLB監聽連接埠預設對所有請求放通。
當NLB執行個體加入安全性群組且未設定任何拒絕策略時,NLB監聽連接埠預設對所有請求放通。如果您需要只允許特定IP訪問NLB,請注意添加一條拒絕策略進行兜底。
當您的NLB執行個體有存取控制的訴求,希望控制NLB執行個體的入流量時,您可以選擇為NLB執行個體添加安全性群組,同時可基於業務設定相應的安全性群組規則。
負載平衡的出方向流量為使用者請求的回包,為了保證您的業務正常運行,NLB的安全性群組對出流量不做限制,您無需額外配置安全性群組出方向規則。
本文從以下2種情境為例介紹NLB安全性群組的黑白名單存取原則。關於安全性群組規則的排序策略,請參見安全性群組規則排序策略。
黑名單:NLB安全性群組對指定IP地址的拒絕存取原則
白名單:NLB安全性群組對指定IP地址的允許存取原則
使用限制
分類 | 安全性群組類型 | 說明 |
NLB支援加入的安全性群組 |
|
關於普通安全性群組和企業安全性群組的介紹,請參見普通安全性群組與企業級安全性群組。 |
NLB不支援加入的安全性群組 | 託管安全性群組 | 關於託管安全性群組的介紹,請參見託管安全性群組。 |
前提條件
您已建立4台ECS執行個體。關於如何建立ECS執行個體,請參見自訂購買執行個體。
ECS01和ECS02執行個體作為NLB執行個體的後端伺服器,且ECS01和ECS02執行個體中部署了應用服務。
本文ECS01與ECS02部署測試應用樣本如下:
ECS03和ECS04執行個體為公網執行個體,用於訪問NLB執行個體。您也可以使用已有的Linux伺服器訪問NLB執行個體,這種情況下無需建立ECS03和ECS04執行個體。
您已註冊網域名稱並完成備案,且通過自有網域名稱為NLB配置CNAME解析。
下表列出了本文ECS執行個體的相關配置,僅供參考。
分類
ECS配置
所屬VPC
IP
說明
ECS01
執行個體規格:ecs.u1-c1m1.large
CPU&記憶體:2核(vCPU) 2 GiB
作業系統:Alibaba Cloud Linux 3.2104 LTS 64位更換作業系統
網路類型:Virtual Private Cloud
VPC01
私網:192.168.0.24
公網:無
作為NLB執行個體後端伺服器。
ECS02
私網:192.168.0.37
公網:無
ECS03
VPC02
私網:192.168.0.25
公網:47.XX.XX.55
作為訪問NLB執行個體的用戶端。
ECS04
私網:192.168.0.26
公網:101.XX.XX.251
步驟一:建立伺服器組
- 登入網路型負載平衡NLB控制台。
在頂部功能表列,選擇伺服器組所屬的地區。本文選擇華東1(杭州)。
在左側導覽列,選擇 。
在伺服器組頁面,單擊建立伺服器組。
在建立伺服器組對話方塊中,完成以下配置,然後單擊建立。
此處僅列出部分配置項,其餘參數可保持預設值。更多資訊,請參見建立伺服器組。
配置
說明
伺服器群組類型
選擇一種伺服器群組類型。本文選擇伺服器類型。
伺服器組名稱
輸入伺服器組名稱。本文輸入RS01。
VPC
從VPC下拉式清單中選擇一個VPC。本文選擇VPC1,與ECS01、ECS02執行個體所屬VPC保持一致。
選擇後端協議
選擇一種後端協議。本文選擇TCP。
在伺服器組建立成功對話方塊中單擊添加後端伺服器。
在後端伺服器頁簽單擊添加後端伺服器。
在添加後端伺服器面板,選擇已建立的ECS01、ECS02執行個體,然後單擊下一步。
為已添加的伺服器設定連接埠和權重,然後單擊確定。本文連接埠輸入80,權重保持預設值。
步驟二:建立NLB執行個體並配置監聽
在左側導覽列,選擇
,在執行個體頁面,單擊建立網路型負載平衡。在網路型負載平衡(隨用隨付)購買頁面,完成以下配置。
此處僅列出部分配置項。其餘參數的配置,請參見建立執行個體。
地區:本文選擇華東1(杭州)。
執行個體網路類型:本文選擇公網。
VPC:本文選擇VPC01。
單擊立即購買,然後根據控制台提示完成執行個體購買。
返回執行個體頁面,找到已建立的NLB執行個體,單擊該NLB執行個體ID。
單擊監聽頁簽,在監聽頁簽單擊快速建立監聽。在快速建立監聽對話方塊中,配置以下參數,完成TCP 80監聽的建立,然後單擊確定。
監聽配置
說明
選擇負載平衡協議
選擇監聽的協議類型。本文選擇TCP。
監聽連接埠
輸入監聽連接埠,本文輸入80。
轉寄的後端伺服器組
選擇伺服器類型及伺服器類型下的伺服器組。
本文選擇步驟一:建立伺服器組建立的伺服器組。
NLB執行個體未加入安全性群組時,驗證訪問結果。驗證過程中執行的
curl -s http://whatismyip.akamai.com/
命令是為了擷取當前用戶端的公網IP地址,以方便您識別當前用戶端。登入ECS03執行個體,執行
telnet 網域名稱 80
命令,測試ECS03執行個體是否可以訪問NLB執行個體。收到如下所示的回複報文,則表示訪問成功。
登入ECS04執行個體。執行
telnet 網域名稱 80
命令,測試ECS04執行個體是否可以訪問NLB執行個體。收到如下所示的回複報文,則表示訪問成功。
驗證結果表明:NLB執行個體未加入安全性群組時,ECS03和ECS04可正常訪問NLB執行個體。
步驟三:建立安全性群組
在NLB執行個體加入安全性群組前,您需要先至ECS管理主控台建立安全性群組,按照以下訪問規則建立2個安全性群組。
實現黑名單策略的安全性群組1
新增拒絕策略的規則。本文以拒絕ECS03執行個體的公網IP(47.XX.XX.55)訪問為例,添加一條拒絕策略的規則,預設的安全性群組規則可保留。
授權策略
優先順序
協議類型
連接埠範圍
授權對象
拒絕
1
全部
目的:-1/-1
源:47.XX.XX.55
實現白名單策略的安全性群組2
新增允許和拒絕的規則。本文以允許ECS03執行個體的公網IP(47.XX.XX.55)訪問為例,添加一條允許策略的規則,並增加一條拒絕策略的規則,如下表。
授權策略
優先順序
協議類型
連接埠範圍
授權對象
允許
1
全部
目的:-1/-1
源:47.XX.XX.55
拒絕
100
全部
目的:-1/-1
源:0.0.0.0/0
步驟四:NLB執行個體加入安全性群組並驗證結果
實現黑名單存取原則
NLB執行個體加入步驟三:建立安全性群組建立的安全性群組1,並驗證安全性群組1中規則對NLB執行個體的存取控制是否生效。
- 登入網路型負載平衡NLB控制台。
在頂部功能表列,選擇NLB執行個體所屬的地區。本文選擇華東1(杭州)。
在NLB執行個體頁面,找到步驟二:建立NLB執行個體並配置監聽建立的NLB執行個體,單擊執行個體ID。在執行個體詳情頁簽,單擊安全性群組頁簽。
在安全性群組頁簽,單擊添加安全性群組,在彈出的NLB執行個體加入安全性群組對話方塊中,選擇步驟三:建立安全性群組建立的安全性群組,然後單擊確定。
在左側列表框單擊目標安全性群組ID,可單擊入方向或出方向頁簽分別查看安全性群組規則。
此處僅列出與本文強相關的安全性群組規則。
授權策略
優先順序
協議類型
連接埠範圍
授權對象
拒絕
1
全部
目的:-1/-1
源:47.XX.XX.55
NLB執行個體加入安全性群組後,測試訪問結果。驗證過程中執行的
curl -s http://whatismyip.akamai.com/
命令是為了擷取當前用戶端的公網IP地址,以方便您識別當前用戶端。登入ECS03執行個體。執行
telnet 網域名稱 80
命令,測試ECS03執行個體是否可以訪問NLB執行個體。收到如下所示的回複報文,則表示訪問失敗。
登入ECS04執行個體,執行
telnet 網域名稱 80
命令,測試ECS04執行個體是否可以訪問NLB執行個體。收到如下所示的回複報文,則表示訪問成功。
驗證結果表明:NLB執行個體加入實現黑名單策略的安全性群組1後,安全性群組內拒絕規則中的IP地址不能訪問該NLB執行個體,不在安全性群組拒絕規則中的IP可以正常訪問。
實現白名單存取原則
NLB執行個體加入步驟三:建立安全性群組建立的安全性群組2,並驗證安全性群組2中規則對NLB執行個體的存取控制是否生效。
- 登入網路型負載平衡NLB控制台。
在頂部功能表列,選擇NLB執行個體所屬的地區。本文選擇華東1(杭州)。
在NLB執行個體頁面,找到步驟二:建立NLB執行個體並配置監聽建立的NLB執行個體,單擊執行個體ID。在執行個體詳情頁簽,單擊安全性群組頁簽。
在安全性群組頁簽,單擊添加安全性群組,在彈出的NLB執行個體加入安全性群組對話方塊中,選擇步驟三:建立安全性群組建立的安全性群組2,然後單擊確定。
在左側列表框單擊目標安全性群組ID,可單擊入方向或出方向頁簽分別查看安全性群組規則。
授權策略
優先順序
協議類型
連接埠範圍
授權對象
允許
1
全部
目的:-1/-1
源:47.XX.XX.55
拒絕
100
全部
目的:-1/-1
源:0.0.0.0/0
NLB執行個體加入安全性群組後,測試訪問結果。驗證過程中執行的
curl -s http://whatismyip.akamai.com/
命令是為了擷取當前用戶端的公網IP地址,以方便您識別當前用戶端。登入ECS03執行個體。執行
telnet 網域名稱 80
命令,測試ECS03執行個體是否可以訪問NLB執行個體。收到如下所示的回複報文,則表示訪問成功。
登入ECS04執行個體,執行
telnet 網域名稱 80
命令,測試ECS04執行個體是否可以訪問NLB執行個體。收到如下所示的回複報文,則表示訪問失敗。
驗證結果表明:NLB執行個體加入實現白名單策略的安全性群組2時,安全性群組內僅允許規則中的IP地址可以訪問該NLB執行個體。
相關文檔
關於NLB加入安全性群組和解除綁定安全性群組等操作,請參見NLB加入安全性群組。
如何配置安全性群組實現NLB基於監聽/連接埠粒度的存取控制,請參見配置安全性群組實現NLB基於監聽/連接埠粒度的存取控制。
關於安全性群組的詳細介紹,請參見安全性群組。