首頁 >運維 >linux運維 >如何設定安全群組的入網規則以及與安全群組相關的訊息

如何設定安全群組的入網規則以及與安全群組相關的訊息

坏嘻嘻
坏嘻嘻原創
2018-09-19 11:51:302231瀏覽

本文在介紹如何配置安全群組的入網規則以及安全群組相關的資訊的基礎上,重點探討了其具體步驟,本文內容很緊湊,希望大家耐心學習。

在雲端安全群組提供類似虛擬防火牆功能,用於設定單一或多個 ECS 執行個體的網路存取控制,是重要的安全隔離手段。建立 ECS 實例時,您必須選擇一個安全群組。您也可以新增安全群組規則,對某個安全群組下的所有 ECS 執行個體的出方向和入方向進行網路控制。

本文主要介紹如何設定安全群組的入網規則。

安全群組相關的資訊

在設定安全群組的入網規則之前,您應該已經了解以下安全群組相關的資訊:

安全群組限制

安全群組預設規則

設定安全性群組In 方向的存取權限

設定安全群組Out 方向的存取權限

安全性群組實踐的基本建議

在開始安全性群組的實踐之前,以下有一些基本的建議:

最重要的規則:安全群組應作為白名單使用。

開放應用程式出入規則時應遵循「最小授權」原則,例如,您可以選擇開放特定的連接埠(如 80 連接埠)。

不應該使用一個安全群組來管理所有應用,因為不同的分層一定有不同的需求。

對於分散式應用程式來說,不同的應用程式類型應該使用不同的安全性群組,例如,您應對 Web、Service、Database、Cache 層使用不同的安全性群組,暴露不同的出入規則和權限。

沒有必要為每個實例單獨設定一個安全性群組,控制管理成本。

優先考慮 VPC 網路。

不需要公有網路存取的資源不應提供公網 IP。

盡可能保持單一安全群組的規則簡潔。因為一個實例最多可以加入 5 個安全群組,一個安全群組最多可以包含 100 個安全群組規則,所以一個實例可能同時套用數百個安全群組規則。您可以聚合所有指派的安全規則以判斷是否允許流入或留出,但是,如果單一安全群組規則很複雜,就會增加管理的複雜度。所以,應盡可能保持單一安全群組的規則簡潔。

調整線上的安全群組的出入規則是比較危險的動作。如果您無法確定,不應隨意更新安全性群組出入規則的設定。阿里雲的控制台提供了複製安全群組和安全群組規則的功能。如果您想要修改線上的安全群組和規則,您應該先複製一個安全群組,然後在複製的安全群組上進行偵錯,從而避免直接影響線上應用。

設定安全群組的入網規則

以下是安全群組的入網規則的實務建議。

不要使用 0.0.0.0/0 的入網規則

允許全部入網存取是經常犯的錯誤。使用 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"} ,

關閉不需要的入網規則

如果您目前使用的入規則已經包含了0.0.0.0/0,您需要重新審視自己的應用程式需要對外暴露的連接埠和服務。如果確定不想讓某些連接埠直接對外提供服務,您可以加一條拒絕的規則。例如,如果您的伺服器上安裝了MySQL 資料庫服務,預設情況下您不應該將3306 連接埠暴露到公網,此時,您可以新增一條拒絕規則,如下所示,並將其優先權設為100,即優先權最低。

{ "IpProtocol" : "tcp", "FromPort" : "3306", "ToPort" : "3306", "SourceCidrIp" :
          "0.0.0.0/0", "Policy": "drop", Priority: 100} ,

上面的調整會導致所有的端口都不能訪問 3306 端口,極有可能會阻止您正常的業務需求。此時,您可以透過授權另外一個安全群組的資源進行入規則存取。

授權另外一個安全群組入網存取

不同的安全群組依照最小原則開放對應的出入規則。對於不同的應用分層應該使用不同的安全群組,不同的安全群組應有相應的出入規則。

例如,如果是分散式應用,您會區分不同的安全群組,但是,不同的安全群組可能網路不通,此時您不應該直接授權IP 或CIDR 網段,而是直接授權另外一個安全群組ID 的所有的資源都可以直接存取。例如,您的應用程式對 Web、Database 分別建立了不同的安全性群組:sg-web 和 sg-database。在sg-database 中,您可以新增以下規則,授權所有的 sg-web 安全群組的資源存取您的 3306 連接埠。

  { "IpProtocol" : "tcp", "FromPort" : "3306", "ToPort" : "3306", "SourceGroupId" : "sg-web", "Policy": 
               "accept", Priority: 2} ,

授權另一個 CIDR 可以入網存取

經典網路中,因為網段較不可控,建議您使用安全群組 ID 來授信入網規則。

VPC 网络中,您可以自己通过不同的 VSwitch 设置不同的 IP 域,规划 IP 地址。所以,在 VPC 网络中,您可以默认拒绝所有的访问,再授信自己的专有网络的网段访问,直接授信可以相信的 CIDR 网段。

    { "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} ,

变更安全组规则步骤和说明

变更安全组规则可能会影响您的实例间的网络通信。为了保证必要的网络通信不受影响,您应先尝试以下方法放行必要的实例,再执行安全组策略收紧变更。

注意:执行收紧变更后,应观察一段时间,确认业务应用无异常后再执行其它必要的变更。

新建一个安全组,将需要互通访问的实例加入这个安全组,再执行变更操作。

如果授权类型为 安全组访问,则将需要互通访问的对端实例所绑定的安全组 ID 添加为授权对象;

如果授权类型为 地址段访问,则将需要互通访问的对端实例内网 IP 添加为授权对象。

以上是如何設定安全群組的入網規則以及與安全群組相關的訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn