如果您需要拒絕或允許特定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部署測試應用示例如下:
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! This is ECS01." > index.html
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! This is ECS02." > index.html
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位更換操作系統
網絡類型:專有網絡VPC
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基于監聽/端口粒度的訪問控制。
關于安全組的詳細介紹,請參見安全組。