DigitalOcean云防火墙介绍

DigitalOcean Cloud Firewalls可在所有地区免费提供,为您的DigitalOcean Droplet提供基于网络的状态防火墙服务。它们阻止规则未明确允许的所有流量。它们的设计是易于配置,快速应用和自动化友好。 在本指南中,我们将探讨如何创建和管理DigitalOcean Cloud Firewalls。

介绍

DigitalOcean Cloud Firewalls可在所有地区免费提供,为您的DigitalOcean Droplet提供基于网络的状态防火墙服务。 它们阻止规则未明确允许的所有流量。 它们的设计是易于配置,快速应用和自动化友好。

在本指南中,我们将探讨如何创建和管理DigitalOcean Cloud Firewalls。

DigitalOcean云防火墙一览无余

  • 价格 :不需要额外费用。
  • 区域可用性:每个区域都有防火墙。
  • 管理:规则可应用于个别Droplet或标签。 然后,应用于标签的规则将应用于共享标签的所有Droplet。
  • 成员资格要求:防火墙的规则可以包括来自任何地区组合的服务器。
  • 限制
    • 每个防火墙的传入和传出规则总数 :50
    • 每个防火墙的个别Droplet :10
    • 每滴防水墙:无限
    • 每个防火墙的标签 5。
    • 每个标签的Droplet :无限制

在控制面板中管理云端防火墙

通过按照顶部菜单中的网络连接,然后选择防火墙 ,DigitalOcean控制面板中提供防火墙。 当不存在防火墙时,您将进入介绍屏幕。

没有防火墙创建时的防火墙页面。

创建防火墙后,“防火墙”选项卡将作为主要概述页面,并提供摘要信息,包括受保护的“数量”,“规则数量”和“防火墙创建日期”。

创建防火墙

当您单击创建防火墙按钮时,您将到达创建表单。 由于云防火墙的默认状态不允许流量进出,所以在从控制面板创建防火墙时,建议使用四个预先配置的规则来允许一些基本流量:

默认规则的屏幕截图,如下所述。

这些规则定义了防火墙策略的以下例外:

  • 允许所有传入TCP流量从任何IPv4或IPv6地址到端口22(允许SSH访问)
  • 允许所有出站的ICMP流量到任何IPv4或IPv6地址
  • 允许所有端口上的所有出站TCP流量到任何IPv4或IPv6地址
  • 允许所有端口上的所有出站UDP流量到任何IPv4或IPv6地址

您可以删除或编辑这些规则以满足您的需要,但您必须命名防火墙并定义至少一个规则才能创建它。 请注意,单个防火墙可以包含不超过50个规则。

配置入站规则

入站规则定义什么样的流量将被允许来自哪些端口。 如果没有配置入站规则,则不允许接收流量。

建议的入站规则:SSH

因为服务器的妥协通常是通过入站连接开始的,所以默认入站连接完全受到一个例外限制。 建议的规则允许任何地方的端口22上的SSH连接,以便用户能够从终端管理服务器。

默认入站规则

当您安装新软件并配置新服务时,您将添加新的规则来打开所需的端口。

从预设创建新的入站规则

通过打开新建规则选择列表添加入站规则。 几种常见的协议是可用的,并将自动填充“ 协议端口范围 ”字段,例如,选择HTTP将使用TCP和“端口范围”自动填充“协议”,HTTP默认端口为80。

键入下拉列表,具有以下选项:SSH,HTTP,HTTPS,MySQL,DNS TCP,DNS UDP,所有TCP,ALL UDP,ICMP,自定义
如果其中一个服务正在监听非标准端口,则可以通过创建自定义规则进行配置。

限制来源

使用任何协议,您可以通过限制允许哪些主机连接来减少攻击向量。 你可以加:

  • 按名称或IP地址滴下
  • DigitalOcean负载均衡器按名称或IP地址
  • Droplet或负载平衡器通过标签
  • 非DigitalOcean服务器通过IP地址

Droplet
您可以限制进入一个或多个Droplet的连接。 例如,不是允许Internet上的任何主机连接到端口5432上的数据库服务器,您可以为数据库服务器创建防火墙,打开端口5432,然后通过在其中选择其名称来限制对单个Web服务器的TCP访问“来源”字段。

在此输入图像说明

请注意,您还可以粘贴一个Droplet的IP地址,该IP地址将查找其名称,并在短暂暂停后将其显示在下拉列表中。 Droplet的名字出现在列表中后,您可以按Enter键或单击名称进行选择。

负载平衡器
除了Droplet之外,您还可以限制DigitalOcean负载平衡器的流量。 假设您使用名为webserver-lb的负载均衡器来平衡监听端口443的多个Web服务器之间的HTTPS流量。您可以通过将负载平衡器添加到防火墙的“源”字段来限制对负载平衡器的访问,从而保护这些Web服务器。

入站规则仅限于webhead-lb负载平衡器 这将允许负载平衡器将流量发送到Web服务器,并阻止用户直接访问它们。

标签
而不是使用Droplet或DigitalOcean Load Balancer的名称作为来源,您也可以使用标签。 指定标签时,与该标签相关联的任何DigitalOcean资源都将被允许访问。

例如,如果要允许多个Web服务器访问单个数据库服务器,则可以使用webheads对每个Web服务器进行标记,然后将该标签添加到数据库防火墙的“Sources”字段中:

入网规则受webheads Tag限制

已经标记的任何Droplet或Load Balancer都将被允许建立一个连接,并且一旦标记了新的或现有的Droplet。

外部IP地址或范围
许多用户都有非DigitalOcean机器需要访问Droplet。 您可以通过IP地址选择这些资源。 就像指定一个Droplet一样,您可以键入或粘贴IP,然后暂时暂停。

在此输入图像说明

出现“无匹配”响应后,按Enter键,然后添加IP:

在此输入图像说明

访问可以由特定的IP地址,子网或无类域间路由(CIDR范围)定义

创建新的自定义规则

要添加自定义规则,请选择“自定义”,它允许您选择协议和端口范围。

协议

选择自定义后,您可以从协议列表中选择TCP或UDP。
请注意,因为ICMP没有端口抽象,为了允许ICMP流量,您可以直接从“新建规则”下拉列表中选择它。

端口范围

对于TCP和UDP协议,您可以指定:

  • 一个单一的端口
  • 通过输入开始和结束端口的一系列端口,用破折号分隔-没有空格,例如3000-4000。
  • 所有端口将字段留空。

在此输入图像说明
要打开多个非顺序端口,请为每个端口创建一个单独的规则。

配置出站规则

出站规则定义允许什么样的流量离开服务器,哪些端口可以限制到特定的目的地。 如果没有配置出站规则,则不允许出站流量。

建议的出境规则:允许所有流量

许多基础服务依靠出站通信。 像PPP这样的工具需要出站ICMP DNS查找,VoIP和NTP都依赖于出站UDP 数据同步,软件包列表更新,Web请求和电子邮件等任务需要出站TCP连接。

因此,建议的出站规则允许在任何端口上的任何目的地的所有流量。 这些默认设置使得更容易设置新服务器,而不会引入可能会阻止预期功能的限制。

在此输入图像说明

虽然这些默认值在大多数情况下是合适的,但是当服务器遭到入侵时,脚本可能会尝试从Internet下载更多危险的漏洞,或将受感染的服务器用作垃圾邮件转发或DDoS控制主机。 一旦漏洞发生,限制出站流量就可以减轻影响。 为了遵守特定的安全策略或减少在妥协情况下的影响,用户可能希望更改这些规则以限制出站流量。

创建新的出站规则

创建出站规则在大多数方面类似于创建入站规则与一个重要的区别:由于建议的规则允许所有类型的流量离开主机,您必须编辑或删除建议的规则才能限制流量。

例如,假设您有一个使用专用Postgres服务器的Web应用程序,该服务器只能被允许连接到其Web服务器,并且要严格限制出站流量。 在应用于数据库的Cloud Firewall中,您可以:

  1. 删除ICMP规则来阻止所有传出的ICMP流量。 出发的呼叫和跟踪路由将不再起作用。
  2. 删除TCP规则,然后添加自定义规则以阻止除5432之外的所有端口,并将目标限制为标记为“webheads”的Droplet。 这将阻止所有其他TCP流量,导致普通管理任务失败。 例如,数据库服务器将无法再从Internet获取新的软件包或安全更新。 这也将阻止DigitalOcean监控
  3. 删除UDP规则以阻止所有UDP流量。 这将导致DNS查找失败。

自定义出站规则打开TCP,限制为端口5432和目标标记的Web头。

由于DNS是大多数主机的关键服务,具体取决于用例,您可能需要添加DNS预设:

在此输入图像说明

重要提示:当多个防火墙应用于Droplet时,规则是相加的,不能再用其他规则限制。 例如,如果一个防火墙在上面的示例中使用了建议的传出规则和其他应用规则,则所有出站流量都将被允许。 有关详细信息,请参阅“多个防火墙”部分。

注意:为了阻止单个端口(如SMTP),并允许所有其他传出流量,我们将创建两个规则:一个允许端口1-24,另一个允许26-65535。 然而,大多数用户可能接受建议的规则,并允许所有传出流量。

将云防火墙应用到Droplet

可以通过在“应用于滴滴”字段中添加单独的“滴液”名称,标签或两者的组合来应用防火墙规则。

注意:创建防火墙时需要“名称”和至少一条规则,您可以将“应用于滴滴”字段留空,创建防火墙,并稍后分配“Droplet”。

添加个别Droplet

可以在“应用于Droplet”字段中将多达十个独立的Droplet添加到防火墙。 要添加它们,请开始键入Droplet名称,然后按Enter键或从列表中选择它:

使用postgres-server应用于Droplet

请注意,您还可以粘贴一个Droplet的IP地址,该IP地址将查找其名称,并在短暂暂停后将其显示在下拉列表中。 Droplet的名字出现在列表中后,您可以按Enter键或单击名称进行选择。

创建防火墙后,要添加更多的“滴滴”,请单击其名称以返回到“规则”页面。

使用postgres-server应用于Droplet

在“规则”页面中,单击“Droplet”:

滴滴页面
使用Cloud Firewalls,您可以单独添加一些Droplet和其他标签。

添加标记的Droplet

最多可以添加五个标签到防火墙,并且无限制的“滴滴”可以与标签相关联,从而允许您超过单个十滴滴限制。 这是组织您的防火墙的几个优势之一与标签:

  • 无限数量的Droplet可以与标签相关联由于可以与标签相关联的Droplet数量没有限制,使用标签可以帮助您扩展基础设施。 您可以了解更多关于如何使用标签来促进“ 如何组织DigitalOcean Cloud Firewalls”指南的扩展
  • Droplet可以在创作时被标记。 通过使用与防火墙相关联的标签创建Droplet,从开始就到位的规则通过标签添加资源意味着一旦创建了防火墙,大多数资源管理将在“Drople”(Drople)屏幕上进行。 当您创建它们或添加标签到现有标签时,您可以标记Droplet。 请参阅文章如何标记DigitalOcean Droplet更多的细节。

组合多个防火墙

Droplet可以由多个Cloud Firewall进行保护,并且当它们是时,应用规则的联合。 例如,如果名为default-fw的防火墙实现默认建议规则,另一个名为postgres-fw的配置只允许端口5432上的传入和传出流量,规则的并集意味着:

入站

  • 端口22上的SSH允许从任何地方
  • webheads上的TCP只允许从webheads

出站

  • 允许所有ICMP,TCP和UDP流量。

规则的并集还显示了自定义的出站TCP规则,但来自所有目的地的更宽容的“所有TCP”都会覆盖该限制。

Postgres服务器的网络页面

如果postgres-fw规则的意图是限制端口5432的出站流量,那么删除允许的default-fw并应用更特定的东西,例如只允许传入SSH的admin-fw可能更合适。

Postgres服务器的网络页面受限制的规则

同一个联盟适用于来源或目的地。 如果一个规则允许TCP来自任何Source,另一个规则允许TCP从受限制的范围内,则两者的并集意味着可以从任何地方允许TCP流量。 指南[如何组织您的DigitalOcean Cloud Firewalls]提供有关如何使用多个防火墙使您的安全策略更加明确和灵活的详细指导。

管理现有防火墙

在本节中,我们将介绍管理现有防火墙的三个关键组件:

  • 如何添加,编辑和删除现有防火墙的规则
  • 如何查看哪个Droplet由个别防火墙保护
  • 如何看到防火墙和防火墙规则被应用到特定的Droplet

添加,编辑或删除防火墙的规则

要管理现有的防火墙,请从网络导航到防火墙 ,然后单击防火墙的名称。 您将到达其规则标签。 在这里,您可以在“新规则”选项下添加新规则。

现有规则

要编辑或删除规则,请使用“更多菜单:”

使用更多菜单编辑和删除规则

查看防火墙保护的Droplet

要查看防火墙保护什么Droplet,请访问防火墙的“Droplet”选项卡。 哪里有滴滴单独添加,它们显示在自己的线上。 由于标签已添加,因此标签下方显示:

Droplet单独添加和通过标签的截图

从防火墙中删除Droplet或标签

要从防火墙中删除Droplet或标签,请使用其“更多”菜单:

删除链接

从防火墙的Droplet,您可以看到哪些Droplet受到您正在查看的防火墙的影响。 要查看影响特定Droplet的所有规则,您需要查看单个Droplet的网络页面。

查看适用于Droplet的规则

要查看什么规则应用于Droplet,请单击Droplet的名称,然后访问其左侧菜单中链接的网络页面。

你会看到三个州之一。

当没有应用防火墙时,该页面显示一条消息并提供“管理防火墙”按钮:
在此输入图像说明

该按钮直接引导到防火墙概述页面,您可以在其中创建新的防火墙或编辑现有的防火墙。

当应用一个防火墙时,其名称将显示在防火墙部分标题下方,其后是其规则:
单一云防火墙规则

单击防火墙的名称来管理其规则。

当应用了多个防火墙时,每个防火墙的名称将显示在防火墙头部下,并显示所有规则的并集。
多云防火墙规则

注意:如果两个防火墙包含相同的规则,表中只会出现一个。 如果从一个防火墙中删除该规则,则在另一个防火墙应用规则时,该规则将继续显示。

要返回到特定的防火墙规则页面,请单击其名称。

从哪里走

在本文中,我们概述了如何使用DigitalOcean控制面板来管理云端防火墙。 有关使用Cloud Firewall保护DigitalOcean基础架构的更多信息,请参阅以下指南之一: