我們正在嘗試 ntp.conf 檔案中的一些 NTP 配置,並希望確定 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來檢索狀態或作業系統資訊來測試我們的conf選項嗎?
答案1
參考 ntpd 實作透過程式公開了它的許多實作變量ntpq(和國家政策發展中心這是只有其作者才會欣賞的東西)。它們利用特殊 NTP 封包中的控制協定。控制通道可能會更改 ntpd 配置,儘管這在現代時代很少使用,在現代時代,您可以自動將設定檔部署到任意數量的主機。
維持ntpd的風險主要是防止 IP 放大到欺騙位址,並保護您的時間同步配置免受網路上未經授權的 IP 位址的變更。
像往常一樣,保持補丁可以減少一些缺陷。透過「monlist」功能的放大攻擊導致CVE-2013-5211。這應該是幾年前的更新,但請檢查一下全部您的主機位於受支援的發行版上,並受到維護人員的關注。
對 monlist 的所有關注導致出現了一些可以輕鬆掃描它的工具。例如,nmap 腳本 ntp-monlist。
完整的函數列表是為 ntpq 記錄的命令。 wiki 的 Choose-your-own-configuration 中的這些行的不同之處在於noquery
,它完全拒絕所有 ntpq 查詢。保持授時服務運作。例如,該 nmap 腳本不會傳回任何內容。與之對比的nomodfy
是僅控制更改配置的命令的存取規則。顯然nomodify
應該受到嚴格限制,可能僅限於本地主機。
與其他地方的範例配置進行比較,例如您最喜歡的 disto 軟體包中的配置。RHEL 7 的 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
。儘管這裡有一些實作細節需要解碼,例如哪個關聯 ID 是有問題的 NTP 主機。
就我個人而言,我不太關心暴露有關 ntpd 的建置資訊。有人得知我的 ntpd 是最新的,還有一些狀態機,他們對此無能為力。攻擊者會向所有可能的主機噴射偽造的 NTP 封包,以期實現放大。