AWS NTP 服务器的安全组

Security group for AWS NTP Server

我只是尝试与 EC2 实例上的 NTP 服务器同步时间:

server 0.amazon.pool.ntp.org iburst
server 1.amazon.pool.ntp.org iburst
server 2.amazon.pool.ntp.org iburst
server 3.amazon.pool.ntp.org iburst

很遗憾,我无法与 NTP 服务器同步。我的问题是:

  1. 我们是否必须在安全组中打开端口以允许 NTP-Server 连接到 EC2 实例?
  2. 如果是,那我们怎么知道哪个 IP 是 amazon.pool.ntp.org它随时间变化)而我们不能打开所有流量

提前致谢,
环岛

不需要开通NTP入站流量,只需要出站访问即可。只要你的实例能上网,就可以解析ntp池地址。

因此打开您的出站 address/ports 并确保您的实例可以直接或通过 NAT 或其他方式访问互联网。

您需要在安全组的端口 123 上允许流向 0.0.0.0/0 的出站流量,NTP 才能正常工作。

如果您的 EC2 实例位于 public 子网中,那么您只需要在您的安全组上允许它。

但是如果您的 EC2 实例位于私有子网中,则您需要允许端口 123 上的入站和出站流量,以便您的 NAT 传递请求和响应。需要来自您的 EC2 实例(而不是世界)的入站。

根据 AWS 的文档

Network Time Protocol (NTP) is configured by default on Amazon Linux instances; however, an instance needs access to the Internet for the standard NTP configuration to work. Your instance's security group must also allow outbound UDP traffic on port 123 (NTP)
source: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

因此我们需要允许出站流量到安全组上的端口 123 上的 0.0.0.0/0 以便 NTP 工作

对于最近访问过的任何人,AWS 现在有自己的时间服务器:https://aws.amazon.com/blogs/aws/keeping-time-with-amazon-time-sync-service/(并且只是重申:您确实需要在 AWS VM 上进行时间同步,否则它们会出现明显的偏差几个月后)。

要使用它们,您需要将 NTP 服务器(ntpd 或 chronyd)配置为使用服务器 169.254.169.123,当然还要为端口 123/udp 上的出站打开安全组。这个神奇的 IP 在 AWS 中,所以不会离开 VPC 或进入 Internet。

请注意,通常包括多个服务器并让您的客户端计算所有服务器的时间。在 AWS 案例中,即使它只是一个 IP,您也在与多个服务器通信,因此不需要特别使用多个 IP。如果您被允许使用 Internet NTP 服务器以及 AWS 服务器,那么配置多个也没有什么坏处,也许在 AWS 上使用 prefer 选项。