在 Lightsail 中使用防火墙控制实例流量 - Amazon Lightsail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Lightsail 中使用防火墙控制实例流量

Amazon Lightsail 控制台中的防火墙充当虚拟防火墙,用于控制允许通过其公有 IP 地址连接到您的实例的流量。您在 Lightsail 中创建的每个实例都有两个防火墙;一个用于IPv4地址,另一个用于地址。IPv6每个防火墙均包含一组规则来过滤进入实例的流量。两个防火墙彼此独立;必须为IPv4和IPv6分别配置防火墙规则。可以通过添加和删除允许或限制流量的规则,来随时编辑实例的防火墙。

Lightsail 防火墙

每个 Lightsail 实例都有两个防火墙;一个用于IPv4地址,另一个用于地址。IPv6所有进出您的 Lightsail 实例的互联网流量都要通过其防火墙。实例的防火墙控制允许流入实例的 Internet 流量。但是,防火墙不控制流出实例的流量,而是允许所有出站流量。可以通过添加和删除允许或限制传入流量的规则,来随时编辑实例的防火墙。请注意,两个防火墙彼此独立;必须为IPv4和IPv6分别配置防火墙规则。

防火墙规则始终是允许型的;您无法创建拒绝访问的规则。可以向实例的防火墙添加规则以允许流量到达实例。向实例的防火墙添加规则时,您可以指定要使用的协议、要打开的端口以及允许连接到您的实例的IPv4和IPv6地址,如以下示例(对于IPv4)所示。您还可以指定应用层协议类型,这是一种预设,根据您计划在自己实例上使用的服务来为你指定协议和端口范围。

IPv4Lightsail 控制台中的防火墙
重要

防火墙规则仅影响通过实例的公有 IP 地址传入的流量。它不会影响通过实例私有 IP 地址流入的流量,该地址可以来自您账户中的 Lightsail 资源,也可以来自 AWS 区域同一个对等虚拟私有云中的资源 VPC ()。 AWS 区域

本指南接下来的几个部分将说明防火墙规则及其可配置的参数。

创建防火墙规则

您可以创建防火墙规则,以使客户端能够与您的实例或其上运行的应用程序建立连接。例如,要使所有 Web 浏览器都能连接到您的实例上的 WordPress 应用程序,您需要配置一条防火墙规则,允许从任何 IP 地址通过端口 80 使用传输控制协议 (TCP)。如果您的实例的防火墙上已经配置了此规则,则可以将其删除以阻止 Web 浏览器连接到您的实例上的 WordPress 应用程序。

重要

您可以使用 Lightsail 控制台一次最多添加 30 个源 IP 地址。要一次最多添加 60 个 IP 地址,请使用 Lightsail API、 AWS Command Line Interface (AWS CLI) 或。 AWS SDK对于IPv4规则和IPv6规则,此配额是单独实施的。例如,防火墙可以有 60 条入站IPv4流量规则和 60 条入站IPv6流量规则。我们建议您将单个 IP 地址合并到多个CIDR范围中。有关更多信息,请参阅本指南的指定源 IP 地址部分。

您还可以配置防火墙规则,仅允许通过需要建立连接的计算机的 IP 地址通过端口 22,从而使SSHTCP客户端能够连接到您的实例,在服务器上执行管理任务。在这种情况下,您不希望允许任何 IP 地址与您的实例建立SSH连接;因为这样做可能会给您的实例带来安全风险。

注意

此部分中描述的防火墙规则示例可能默认存在于您实例的防火墙中。有关更多信息,请参阅本指南后面的默认防火墙规则

如果特定端口有多条规则,我们会使用最宽松的规则。例如,如果您添加一条允许从 IP 地址 192.0.2.1 访问TCP端口 22 (SSH) 的规则。然后,您可以添加另一条规则,允许所有人访问TCP端口 22。因此,每个人都可以访问TCP端口 22。

指定协议

协议是在两台计算机之间传输数据的格式。Lightsail 允许您在防火墙规则中指定以下协议:

  • 传输控制协议 (TCP) 主要用于在客户端与您的实例上运行的应用程序之间建立和维护连接,直到数据交换完成。它是一种广泛使用的协议,您可能经常在防火墙规则中指定该协议。TCP保证不丢失任何传输的数据,并且所有发送的数据都发送给预期的接收者。它最适用于需要高可靠性且传输时间相对不太重要的网络应用程序,例如 Web浏览、金融交易和文本消息传递。这些使用情形中,如果部分数据丢失,将造成重大价值损失。

  • 用户数据报协议 (UDP) 主要用于在客户端和您的实例上运行的应用程序之间建立低延迟和可容忍丢失的连接。它最适用于所感知的延迟至关重要的网络应用程序,例如游戏、语音和视频通信。这些使用情形可承受某种程度的数据丢失,而不会对所感知的质量产生负面影响。

  • Internet 控制消息协议 (ICMP) 主要用于诊断网络通信问题,例如确定数据是否及时到达其预定目的地。它最适用于 Ping 实用程序,可以使用该实用程序来测试本地计算机和实例之间的连接速度。它会报告数据到达实例并返回到本地计算机所花费的时间。

    注意

    当您使用 Lightsail 控制台向实例的IPv6防火墙添加ICMP规则时,该规则会自动配置为使用。ICMPv6有关更多信息,请参阅维基百科IPv6上的互联网控制消息协议

  • 所有用于允许所有协议流量流入实例。当不确定要指定哪个协议时,请指定此协议。这包括所有 Internet 协议;而不仅仅是上面指定的协议。有关更多信息,请参阅互联网编号分配机构网站上的协议编号

指定端口

与计算机上的物理端口(允许计算机与键盘和鼠标等外围设备进行通信)类似,网络端口将充当实例的 Internet 通信终端节点。当计算机寻求与您的实例连接时,它会公开一个端口来建立通信。

可在防火墙规则中指定的端口范围是 0 到 65535。在创建防火墙规则以允许客户端与实例建立连接时,可以指定将使用的协议(本指南前面已介绍)以及可用于建立连接的端口号。还可以指定允许使用协议和端口建立连接的 IP 地址;本指南的下一部分将介绍这一点。

以下是一些常用端口以及使用它们的服务:

  • 通过文件传输协议 (FTP) 传输的数据使用端口 20。

  • 命令控制FTP使用端口 21。

  • 安全外壳 (SSH) 使用端口 22。

  • Telnet 远程登录服务,以及未加密的文本消息使用端口 23。

  • 简单邮件传输协议 (SMTP) 电子邮件路由使用端口 25。

    重要

    要SMTP在您的实例上启用,您还必须DNS为实例配置反向配置。否则,您的电子邮件可能会受到TCP端口 25 的限制。有关更多信息,请参阅在 Amazon Lightsail 实例上DNS为电子邮件服务器配置反向配置

  • 域名系统 (DNS) 服务使用端口 53。

  • Web 浏览器用于连接网站的超文本传输协议 (HTTP) 使用端口 80。

  • 电子邮件客户端用来从服务器检索电子邮件的邮局协议 (POP3) 使用端口 110。

  • 网络新闻传输协议 (NNTP) 使用端口 119。

  • 网络时间协议 (NTP) 使用端口 123。

  • 用于管理数字邮件的互联网消息访问协议 (IMAP) 使用端口 143。

  • 简单网络管理协议 (SNMP) 使用端口 161。

  • HTTP网络浏览器SSL用于建立与网站的加密连接的 Secure (HTTPS) HTTP 使用端口 443。TLS

有关更多信息,请参阅互联网编号分配机构网站上的服务名称和传输协议端口号注册表

指定应用层协议类型

可以在创建防火墙规则时指定应用层协议类型,它是一种预设,用于根据要在实例上启用的服务为您指定规则的协议和端口范围。这样,您就不必搜索常用协议和端口来获取SSH、RDPHTTP、等服务了。您只需选择这些应用层协议类型即可为您指定协议和端口。如果您想指定自己的协议和端口,则可以选择自定义规则应用层协议类型,这样您便能控制这些参数。

注意

您只能使用 Lightsail 控制台来指定应用层协议类型。您无法使用 Lightsail API、 AWS Command Line Interface (AWS CLI) 或来指定应用层协议类型。SDKs

Lightsail 控制台中提供了以下应用层协议类型:

  • 自定义 - 选择此选项可指定您自己的协议和端口。

  • 所有协议 - 选择此选项可指定所有协议,并指定您自己的端口。

  • 全部 TCP — 选择此选项可使用TCP协议,但不确定要打开哪个端口。这将启用所有端口 (0-65535)。TCP

  • 全部 UDP — 选择此选项可使用UDP协议,但不确定要打开哪个端口。这将启用所有端口 (0-65535)。UDP

  • 全部 ICMP-选择此选项可指定所有ICMP类型和代码。

  • 自定义 ICMP-选择此选项可使用ICMP协议并定义ICMP类型和代码。有关ICMP类型和代码的更多信息,请参阅维基百科上的控制消息

  • DNS— 当您要在实例DNS上启用时,请选择此选项。这将启用端口 53 TCP 并UDP通过端口 53。

  • HTTP— 如果您想让 Web 浏览器连接到托管在您的实例上的网站,请选择此选项。这将启用TCP端口 80。

  • HTTPS— 如果您想让 Web 浏览器与您的实例上托管的网站建立加密连接,请选择此选项。这将TCP通过端口 443 启用。

  • 我的 SQL /Aurora — 选择此选项可让客户端连接到您的实例上托管的 My SQL 或 Aurora 数据库。这将启用TCP通过端口 3306。

  • Oracle-RDS — 选择此选项可使客户端能够连接到您的实例上托管的 Oracle 或RDS数据库。这将允许TCP通过端口 1521。

  • Ping (ICMP)-选择此选项可使您的实例能够使用 Ping 实用程序响应请求。在IPv4防火墙上,这将启用ICMP类型 8(回声)和代码 -1(所有代码)。在IPv6防火墙上,这将启用ICMP类型 129(回声回复)和代码 0。

  • RDP— 选择此选项以使RDP客户端能够连接到您的实例。这将TCP通过端口 3389 启用。

  • SSH— 选择此选项以使SSH客户端能够连接到您的实例。这将TCP通过端口 22 启用。

指定源 IP 地址

默认情况下,防火墙规则允许所有 IP 地址通过指定的协议和端口连接到实例。这非常适合网络浏览器之类的流量HTTPS。HTTP但是,这会给SSH和等流量带来安全风险RDP,因为您不希望允许所有 IP 地址都能够使用这些应用程序连接到您的实例。因此,您可以选择将防火墙规则限制为IPv4或IPv6地址或 IP 地址范围。

  • 对于IPv4防火墙-您可以指定单个IPv4地址(例如,203.0.113.1)或地址范围。IPv4在 Lightsail 控制台中,可以使用破折号(例如 192.0.2.0-192.0.2.255)或方块表示法(例如 192.0.2.0/24)来指定范围。CIDR有关CIDR区块表示法的更多信息,请参阅维基百科上的无类域间路由

  • 对于IPv6防火墙-您可以指定单个IPv6地址(例如,2001:0 db 8:85 a 3:0000:00:8 a2e: 0370:7334)或地址范围。IPv6在 Lightsail 控制台中,只能使用CIDR方块表示法来指定IPv6范围(例如,2001:db8:: /32)。有关IPv6CIDR方块表示法的更多信息,请参阅维基百科上的IPv6CIDR方块

Lightsail 的默认防火墙规则

创建新实例时,其IPv4和IPv6防火墙会预先配置以下一组默认规则,允许对您的实例进行基本访问。默认规则因您创建的实例的类型而异。这些规则将以应用程序、协议、端口和源 IP 地址的方式列出(例如,应用程序 - 协议 - 端口 - 源 IP 地址)。

AlmaLinux、亚马逊 Linux 2、亚马逊 Linux 2023、CentOS、Debian、Fre BSD e、open SUSE 和 Ubuntu(基础操作系统)

SSH-TCP-22-所有 IP 地址

HTTP-TCP-80-所有 IP 地址

WordPress,幽灵,Joomla! PrestaShop、和 Drupal(CMS应用程序)

SSH-TCP-22-所有 IP 地址

HTTP-TCP-80-所有 IP 地址

HTTPS-TCP-443-所有 IP 地址

cPanel &WHM(CMS应用程序)

SSH-TCP-22-所有 IP 地址

DNS(UDP)-UDP-53-所有 IP 地址

DNS(TCP)-TCP-53-所有 IP 地址

HTTP-TCP-80-所有 IP 地址

HTTPS-TCP-443-所有 IP 地址

自定义-TCP-2078-所有 IP 地址

自定义-TCP-2083-所有 IP 地址

自定义-TCP-2087-所有 IP 地址

自定义-TCP-2089-所有 IP 地址

LAMP、Django、Node.js、MEAN GitLab、和 Nginx(开发堆栈)

SSH-TCP-22-所有 IP 地址

HTTP-TCP-80-所有 IP 地址

HTTPS-TCP-443-所有 IP 地址

Magento(应用程序)eCommerce

SSH-TCP-22-所有 IP 地址

HTTP-TCP-80-所有 IP 地址

HTTPS-TCP-443-所有 IP 地址

Redmine(项目管理应用程序)

SSH-TCP-22-所有 IP 地址

HTTP-TCP-80-所有 IP 地址

HTTPS-TCP-443-所有 IP 地址

Plesk(托管堆栈)

SSH-TCP-22-所有 IP 地址

HTTP-TCP-80-所有 IP 地址

HTTPS-TCP-443-所有 IP 地址

自定义-TCP-53-所有 IP 地址

自定义-UDP-53-所有 IP 地址

自定义-TCP-8443-所有 IP 地址

自定义-TCP-8447-所有 IP 地址

Windows Server 2022、Windows Server 2019 和 2016 年 Windows 服务器

SSH-TCP-22-所有 IP 地址

HTTP-TCP-80-所有 IP 地址

RDP-TCP-3389-所有 IP 地址

SQLServer Express 2022、SQL Ser SQL ver Express 2019

SSH-TCP-22-所有 IP 地址

HTTP-TCP-80-所有 IP 地址

RDP-TCP-3389-所有 IP 地址