云服務器實踐:配置安全組(一)
導讀: 云服務器自帶的安全組設置可以提供虛擬防火墻功能,達到重要的安全隔離手段。那么創(chuàng)建ECS云服務器時怎么樣來配置安全組呢?
本文主要介紹如何配置安全組的入網(wǎng)規(guī)則和安全組內網(wǎng)通訊的概念。
在云端安全組提供類似虛擬防火墻功能,用于設置單個或多個 ECS 實例的網(wǎng)絡訪問控制,是重要的安全隔離手段。創(chuàng)建 ECS 實例時,您必須選擇一個安全組。您還可以添加安全組規(guī)則,對某個安全組下的所有 ECS 實例的出方向和入方向進行網(wǎng)絡控制。
在配置安全組的入網(wǎng)規(guī)則之前,您應已經(jīng)了解以下安全組相關的信息:
· 安全組限制
· 安全組默認規(guī)則
· 設置安全組 In 方向的訪問權限
· 設置安全組 Out 方向的訪問權限
安全組實踐的基本建議
在開始安全組的實踐之前,下面有一些基本的建議:
· 最重要的規(guī)則:安全組應作為白名單使用。
· 開放應用出入規(guī)則時應遵循“最小授權”原則,例如,您可以選擇開放具體的端口(如 80 端口)。
· 不應使用一個安全組管理所有應用,因為不同的分層一定有不同的需求。
· 對于分布式應用來說,不同的應用類型應該使用不同的安全組,例如,您應對 Web、Service、Database、Cache 層使用不同的安全組,暴露不同的出入規(guī)則和權限。
· 沒有必要為每個實例單獨設置一個安全組,控制管理成本。
· 優(yōu)先考慮 VPC 網(wǎng)絡。
· 不需要公網(wǎng)訪問的資源不應提供公網(wǎng) IP。
· 盡可能保持單個安全組的規(guī)則簡潔。因為一個實例最多可以加入 5 個安全組,一個安全組最多可以包括 100 個安全組規(guī)則,所以一個實例可能同時應用數(shù)百條安全組規(guī)則。您可以聚合所有分配的安全規(guī)則以判斷是否允許流入或留出,但是,如果單個安全組規(guī)則很復雜,就會增加管理的復雜度。所以,應盡可能地保持單個安全組的規(guī)則簡潔。
· 阿里云的控制臺提供了克隆安全組和安全組規(guī)則的功能。如果您想要修改線上的安全組和規(guī)則,您應先克隆一個安全組,再在克隆的安全組上進行調試,從而避免直接影響線上應用。
說明 調整線上的安全組的出入規(guī)則是比較危險的動作。如果您無法確定,不應隨意更新安全組出入規(guī)則的設置。
·
設置安全組的入網(wǎng)規(guī)則
以下是安全組的入網(wǎng)規(guī)則的實踐建議。
不要使用 0.0.0.0/0 的入網(wǎng)規(guī)則
允許全部入網(wǎng)訪問是經(jīng)常犯的錯誤。使用 0.0.0.0/0 意味著所有的端口都對外暴露了訪問權限。這是非常不安全的。正確的做法是,先拒絕所有的端口對外開放。安全組應該是白名單訪問。例如,如果您需要暴露 Web 服務,默認情況下可以只開放 80、8080 和 443 之類的常用TCP端口,其它的端口都應關閉。
試用
{ "IpProtocol" : "tcp", "FromPort" : "80", "ToPort" : "80", "SourceCidrIp" : "0.0.0.0/0", "Policy": "accept"} ,
{ "IpProtocol" : "tcp", "FromPort" : "8080", "ToPort" : "8080", "SourceCidrIp" : "0.0.0.0/0", "Policy": "accept"} ,
{ "IpProtocol" : "tcp", "FromPort" : "443", "ToPort" : "443", "SourceCidrIp" : "0.0.0.0/0", "Policy": "accept"} ,
關閉不需要的入網(wǎng)規(guī)則
如果您當前使用的入規(guī)則已經(jīng)包含了 0.0.0.0/0,您需要重新審視自己的應用需要對外暴露的端口和服務。如果確定不想讓某些端口直接對外提供服務,您可以加一條拒絕的規(guī)則。比如,如果您的服務器上安裝了 MySQL 數(shù)據(jù)庫服務,默認情況下您不應該將 3306 端口暴露到公網(wǎng),此時,您可以添加一條拒絕規(guī)則,如下所示,并將其優(yōu)先級設為100,即優(yōu)先級最低。
試用
{ "IpProtocol" : "tcp", "FromPort" : "3306", "ToPort" : "3306", "SourceCidrIp" : "0.0.0.0/0", "Policy": "drop", Priority: 100} ,
上面的調整會導致所有的端口都不能訪問 3306 端口,極有可能會阻止您正常的業(yè)務需求。此時,您可以通過授權另外一個安全組的資源進行入規(guī)則訪問。
授權另外一個安全組入網(wǎng)訪問
不同的安全組按照最小原則開放相應的出入規(guī)則。對于不同的應用分層應該使用不同的安全組,不同的安全組應有相應的出入規(guī)則。
例如,如果是分布式應用,您會區(qū)分不同的安全組,但是,不同的安全組可能網(wǎng)絡不通,此時您不應該直接授權 IP 或者 CIDR 網(wǎng)段,而是直接授權另外一個安全組 ID 的所有的資源都可以直接訪問。比如,您的應用對 Web、Database 分別創(chuàng)建了不同的安全組:sg-web 和 sg-database。在sg-database 中,您可以添加如下規(guī)則,授權所有的 sg-web 安全組的資源訪問您的 3306 端口。
試用
{ "IpProtocol" : "tcp", "FromPort" : "3306", "ToPort" : "3306", "SourceGroupId" : "sg-web", "Policy": "accept", Priority: 2} ,
授權另外一個 CIDR 可以入網(wǎng)訪問
經(jīng)典網(wǎng)絡中,因為網(wǎng)段不太可控,建議您使用安全組 ID 來授信入網(wǎng)規(guī)則。
VPC 網(wǎng)絡中,您可以自己通過不同的 VSwitch 設置不同的 IP 域,規(guī)劃 IP 地址。所以,在 VPC 網(wǎng)絡中,您可以默認拒絕所有的訪問,再授信自己的專有網(wǎng)絡的網(wǎng)段訪問,直接授信可以相信的 CIDR 網(wǎng)段。
試用
{ "IpProtocol" : "icmp", "FromPort" : "-1", "ToPort" : "-1", "SourceCidrIp" : "10.0.0.0/24", Priority: 2} ,
{ "IpProtocol" : "tcp", "FromPort" : "0", "ToPort" : "65535", "SourceCidrIp" : "10.0.0.0/24", Priority: 2} ,
{ "IpProtocol" : "udp", "FromPort" : "0", "ToPort" : "65535", "SourceCidrIp" : "10.0.0.0/24", Priority: 2} ,
變更安全組規(guī)則步驟和說明
變更安全組規(guī)則可能會影響您的實例間的網(wǎng)絡通信。為了保證必要的網(wǎng)絡通信不受影響,您應先嘗試以下方法放行必要的實例,再執(zhí)行安全組策略收緊變更。
說明 執(zhí)行收緊變更后,應觀察一段時間,確認業(yè)務應用無異常后再執(zhí)行其它必要的變更。
· 新建一個安全組,將需要互通訪問的實例加入這個安全組,再執(zhí)行變更操作。
· 如果授權類型為 安全組訪問,則將需要互通訪問的對端實例所綁定的安全組 ID 添加為授權對象;
· 如果授權類型為 地址段訪問,則將需要互通訪問的對端實例內網(wǎng) IP 添加為授權對象。
具體操作指引請參見 經(jīng)典網(wǎng)絡內網(wǎng)實例互通設置方法。
阿里云的網(wǎng)絡類型分為 經(jīng)典網(wǎng)絡 和 VPC,它們對安全組支持不同的設置規(guī)則:
· 如果是經(jīng)典網(wǎng)絡,您可以設置以下幾個規(guī)則:內網(wǎng)入方向、內網(wǎng)出方向、公網(wǎng)入方向和公網(wǎng)出方向。
· 如果是 VPC 網(wǎng)絡,您可以設置:入方向 和 出方向。
安全組內網(wǎng)通訊的概念
本文開始之前,您應知道以下幾個安全組內網(wǎng)通訊的概念:
· 默認只有同一個安全組的 ECS 實例可以網(wǎng)絡互通。即使是同一個賬戶下的 ECS 實例,如果分屬不同安全組,內網(wǎng)網(wǎng)絡也是不通的。這個對于經(jīng)典網(wǎng)絡和 VPC 網(wǎng)絡都適用。所以,經(jīng)典網(wǎng)絡的 ECS 實例也是內網(wǎng)安全的。
· 如果您有兩臺 ECS 實例,不在同一個安全組,您希望它們內網(wǎng)不互通,但實際上它們卻內網(wǎng)互通,那么,您需要檢查您的安全組內網(wǎng)規(guī)則設置。如果內網(wǎng)協(xié)議存在下面的協(xié)議,建議您重新設置。
· 允許所有端口;
· 授權對象為 CIDR 網(wǎng)段 (SourceCidrIp):0.0.0.0/0 或者 10.0.0.0/8 的規(guī)則。 如果是經(jīng)典網(wǎng)絡,上述協(xié)議會造成您的內網(wǎng)暴露給其它的訪問。
· 如果您想實現(xiàn)在不同安全組的資源之間的網(wǎng)絡互通,您應使用安全組方式授權。對于內網(wǎng)訪問,您應使用源安全組授權,而不是 CIDR 網(wǎng)段授權。
【阿里云,阿里巴巴集團旗下云計算品牌,全球卓越的云計算技術和服務提供商。海商(westcoastpropertyservices.com)作為阿里云湖南唯一授權服務中心,國內知名商城系統(tǒng)及商城網(wǎng)站建設提供商,專為企業(yè)提供專業(yè)完善電商整體解決方案、微商云、視頻云、醫(yī)療云等,咨詢阿里云服務器詳情可電聯(lián):18684778716(微信同號)】