Мы пробуем несколько конфигураций NTP в файле ntp.conf и хотим убедиться, защищен ли сервер NTP или нет.
Следуя рекомендациям, представленным здесь: https://support.ntp.org/Support/AccessRestrictions#Section_6.5.1.2.1.
мы добавили:
IPV4: restrict -4 default limited kod nomodify notrap nopeer noquery
IPv6: restrict -6 default limited kod nomodify notrap nopeer noquery
Теперь вопрос: основываясь на строке, написанной в документации:
Поскольку вы готовы разрешить другим получать время с вашего ntpd, разрешите ли вы им просматривать информацию о состоянии вашего сервера (даже если это может раскрыть информацию о вашей ОС и версии ntpd)?
Как мы можем быть уверены, что сервер отправляет свой статус или какую-либо другую информацию об ОС или нет?
Далее, в чем разница, если мы не добавляем опцию «noquery» в ограничение, и как мы можем провести тестирование с опцией «noquery» и без нее, т.е. имеет ли добавление такой опции какое-либо отражение или нет? (Мы хотим провести тестирование с точки зрения безопасности)
Можем ли мы использовать Wireshark для получения информации о состоянии или ОС, чтобы протестировать наши параметры конфигурации?
решение1
Реализация эталонного ntpd раскрывает многие из своих переменных реализации через программынтпк(интпдцчто ценит только его автор). Они используют протокол управления в специальных пакетах NTP. Возможно, канал управления может изменять конфигурацию ntpd, хотя это редко используется в современную эпоху, когда можно автоматизировать развертывание файлов конфигурации на любом количестве хостов.
Риски поддержания ntpd в первую очередьпредотвращение распространения IP-адресов на поддельные адресаи защита конфигурации синхронизации времени от изменений с несанкционированных IP-адресов в сетях.
Как всегда, сохранение исправлений смягчает некоторые недостатки. Атака усиления через функцию "monlist" привела кCVE-2013-5211. Это должно было быть обновлением много лет назад, но проверьте этовсеваших хостов работают на поддерживаемом дистрибутиве и получают внимание от специалиста по поддержке.
Все внимание к monlist привело к появлению некоторых инструментов для его легкого сканирования. Например,скрипт nmap ntp-monlist.
Полный список функций:команды, задокументированные для ntpq. Эти строки в вики-конфигурации выбора-вашего-собственного отличаются на noquery
, что полностью запрещает все запросы ntpq. Поддержание работы службы времени. Например, этот скрипт nmap ничего не вернет. Противопоставляется nomodfy
правилу доступа, контролирующему только команды, которые изменяют конфигурацию. Очевидно, nomodify
что должно быть строго ограничено, возможно, только localhost.
Сравните с примерами конфигураций в других местах, например, из пакета вашего любимого дистрибутива.RHEL 7's ntp.confПредлагаю это в качестве отправной точки для контроля доступа:
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Disable the monitoring facility to prevent amplification attacks using ntpdc
# monlist command when default restrict does not include the noquery flag. See
# CVE-2013-5211 for more details.
# Note: Monitoring will not be disabled with the limited restriction flag.
disable monitor
Обратите внимание на смягчение monlist, хотя ntpd уже исправлен. Кроме того, значение по умолчанию для удаленных хостов не может запрашивать или изменять. С небольшими изменениями это может сделать хост NTP готовым к обслуживанию публичного интернета.
Естественно, как только вы узнаете, какой ntp.conf вам нужен, разверните его. Автоматизируйте конфигурацию серверов NTP, получите разумную конфигурацию в образах шаблонов всех хостов.
Все эти обсуждения monlist не охватывают ваш первоначальный вопрос об идентификации ОС и платформы через ntp. Согласно документации ntpq, эта информация о сборке может появляться в системных переменных через readvar
команду управления. Например, на удаленном сервере: ntpq -c readvar time.example.net
. Хотя здесь есть некоторые детали реализации, которые нужно расшифровать, например, какой идентификатор ассоциации является рассматриваемым хостом NTP.
Лично я не очень обеспокоен раскрытием информации о сборке ntpd. Кто-то узнает, что мой ntpd обновлен, и часть машины состояний, они не так уж много могут с этим сделать. Злоумышленник будет распылять поддельные пакеты NTP на каждый хост, на который сможет, в надежде на усиление.