Группа безопасности для сервера AWS NTP

Я просто пытаюсь синхронизировать время с NTP-сервером на инстансах EC2:

сервер 0.amazon.pool.ntp.org iburst
сервер 1.amazon.pool.ntp.org iburst
сервер 2.amazon.pool.ntp.org iburst
сервер 3.amazon.pool.ntp .org iburst

К сожалению, я не смог синхронизироваться с NTP-сервером. Мой вопрос:

  1. Должны ли мы открывать порты в группе безопасности, чтобы позволить NTP-серверу подключаться к экземплярам EC2?
  2. Если да, то как мы можем узнать, какой IP-адрес amazon.pool.ntp.org (он со временем меняется), и мы не можем открыть Все трафики. >

Заранее спасибо,
Тоан Дао


person Toan Dao    schedule 08.03.2016    source источник


Ответы (4)


Вам необходимо разрешить исходящий трафик на 0.0.0.0/0 через порт 123 в вашей группе безопасности, чтобы NTP работал.

Если ваш экземпляр EC2 находится в общедоступной подсети, вам нужно разрешить это только в вашей группе безопасности.

Но если ваш экземпляр EC2 находится в частной подсети, вам необходимо разрешить входящий и исходящий трафик через порт 123, чтобы ваш NAT мог передавать запросы и ответы. Входящий трафик требуется от вашего экземпляра EC2 (а не от всего мира).

person Matt Houser    schedule 08.03.2016
comment
Не нужно открывать входящий/129 на NAT. - person helloV; 08.03.2016
comment
Спасибо @Matt Houser, я думаю, это должен быть порт 123. У меня это сработало. - person Toan Dao; 08.03.2016
comment
Исправлен порт на 123. Ваш NAT требует входящие данные от экземпляра (а не из мира), иначе NAT будет отклонять запросы, поступающие от экземпляра EC2. - person Matt Houser; 08.03.2016

Согласно документу AWS

Протокол сетевого времени (NTP) настроен по умолчанию в инстансах Amazon Linux; однако для работы стандартной конфигурации NTP экземпляру требуется доступ к Интернету. Группа безопасности вашего экземпляра также должна разрешать исходящий трафик UDP через порт 123 (NTP)
источник: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

Поэтому нам нужно разрешить исходящий трафик на 0.0.0.0/0 через порт 123 в группе безопасности для работы NTP.

person Toan Dao    schedule 08.03.2016

Для тех, кто зашел совсем недавно, у AWS теперь есть собственные серверы времени: https://aws.amazon.com/blogs/aws/keeping-time-with-amazon-time-sync-service/ (и еще раз повторюсь: вам нужно время синхронизировать на виртуальных машинах AWS, в противном случае они будут заметно дрейфовать через пару месяцев).

Чтобы использовать их, вам нужно настроить свой NTP-сервер (ntpd или chronyd) для использования сервера 169.254.169.123 и, конечно же, открыть группы безопасности для исходящего трафика на порту 123/udp. Этот волшебный IP-адрес находится в AWS, поэтому он не выходит за пределы VPC или в Интернет.

Просто отметим, что обычно включают несколько серверов и позволяют вашему клиенту вычислять время со всех из них. В случае с AWS, хотя это всего лишь один IP-адрес, вы общаетесь с несколькими серверами, и поэтому вам не нужно специально использовать несколько IP-адресов. Если вам разрешено использовать интернет-серверы NTP, а также серверы AWS, то нет ничего плохого в настройке нескольких, возможно, с параметром prefer на сервере AWS.

person Ralph Bolton    schedule 09.09.2019

Нет необходимости открывать входящий трафик для NTP, нужен только исходящий доступ. Пока ваш экземпляр может подключаться к Интернету, адрес пула ntp может быть разрешен.

Поэтому откройте свой исходящий адрес/порты и убедитесь, что ваш экземпляр может подключаться к Интернету напрямую, через NAT или каким-либо другим способом.

person helloV    schedule 08.03.2016
comment
Это неправильно. AWS будет отбрасывать пакеты ответов с NTP-сервера (или любого сервера BTW), если соответствующий порт связи не открыт в наборе правил для входящего трафика. Чтобы ответы NTP доходили до вашего клиента Ubuntu, просто откройте порт 1024-65535 udp на вкладке Входящие. Напоминание: сообщение может иметь место только в том случае, если отправитель получит ответ... - person Fabien Haddadi; 23.10.2019