使用 Wireshark 分析 NTP 數據包

NTP(Network Time Protocol,網絡時間協議) 用來在分佈式時間服務器和客戶端之間進行時間同步。NTP 基於 UDP 報文進行傳輸,使用的 UDP 端口號爲 123。使用 NTP 的主要目的是對網絡內所有具有時鐘的設備進行時鐘同步,使網絡內所有設備的時鐘保持一致,從而使設備能夠提供基於統一時間的多種應用。對於網絡中的各臺設備來說,時間是很重要的,如果時間不準則可能造成很大的影響,但是如果依靠管理員手工輸入命令來修改系統時鐘是不可能的,不但工作量巨大,而且也不能保證時鐘的精確性。通過 NTP,可以很快將網絡中設備的時鐘進行同步,同時也能保證很高的精度。

如果局域網內設備可以訪問到互聯網需要手工同步時間,可以選用此網站的免費時間服務器進行同步 http://www.ntp.org.cn/pool.php。

NTP 服務器搭建

局域網內的很多設備是不能夠訪問到互聯網的,所以在局域網內搭建一臺時間服務是很有必要。這臺 NTP 服務器首先與互聯網的時間服務器進行同步,然後局域網內的設備與這臺 NTP 服務器進行同步。

  1. 查看本機系統版本。
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
  1. 安裝 NTP 服務端軟件包。
# yum -y install ntp
  1. 修改 NTP 配置文件。默認已經配置 CentOS 的官方時間服務器作爲上游 NTP 服務器,你也可以配置其他 NTP 服務器進行同步。
vi /etc/ntp.conf

  1. 啓動 NTP 服務器並設置開機自啓動。
# systemctl start ntpd
# systemctl enable ntpd
  1. 查看 NTP 是否同步。
ntpq -p

  1. 防火牆開放 ntp 服務或者直接關閉防火牆。
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
  1. 客戶端時間同步。

linux 系統時間同步

ntpdate 192.168.52.100

windows 系統時間同步

思科網絡設備時間同步配置

ntp server 192.168.52.100

Wireshark 抓取 NTP 數據包

有同學學習我的《Wireshark 數據包分析》專欄課程,可以使用 Wireshark 抓取一下 NTP 數據包看看。可以看到 NTP 數據包交互很簡單,這是一次一去一回同步時間的完整數據過程。

客戶端首先向 NTP 服務器發送請求,可以看到 NTP 使用 UDP 協議,端口是 123。並且該報文帶有它離開時的時間戳。

當此 NTP 請求報文到達 NTP 服務器時,服務端加上自己的時間戳向客戶端響應請求。當客戶端收到這個響應報文後,就能夠根據這些信息來設定自己的時鐘,使之與 NTP 服務器的時鐘進行同步。

NTP 數據包在時間同步的時候纔會產生,這種數據不會很頻繁出現,如果頻繁出現的話,有可能是感染上木馬被人利用了,比如 NTP Reply 洪水攻擊,這種時候就要需要特別注意了。

來源:https://blog.csdn.net/weixin_36416921/article/details/113071691

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/AghcJhQhi_LFlJM0s28zkg