Giới thiệu về NTP Trong thế giới máy tính, thời gian là một yếu tố cực kỳ quan trọng. Ví dụ, trong các hoạt động nghiên cứu như phóng tên lửa, việc đồng bộ hóa thời gian giữa các hệ thống phải được thực hiện một cách chính xác và nhất quán. NTP (Network Time Protocol - Nghị định thư Thời gian Mạng) được thiết kế để giải quyết vấn đề này. NTP là một giao thức cho phép các máy tính trong mạng đồng bộ hóa giờ của chúng với giờ協 định thế giới (UTC). Độ chính xác của NTP có thể đạt đến 0,1毫 giây trong mạng nội bộ và từ 1 đến 50毫 giây trong mạng internet.
Ngoài việc cung cấp đồng bộ hóa thời gian chính xác, NTP còn có thể sử dụng xác thực để chống lại các cuộc tấn công dựa trên giao thức này.
Chuẩn bị Môi trường
- Hệ điều hành: CentOS 6.5 x86_64
- Địa chỉ IP: 10.0.0.1
Install NTP
- Kiểm tra xem NTP đã được cài đặt chưa:
[root@server ~]# rpm -q ntp
Nếu chưa cài đặt, kết quả sẽ là:
package ntp is not installed
- Cài đặt NTP nếu chưa được cài đặt:
[root@server ~]# yum install -y ntp
Nếu không thêm bất kỳ tùy chọn nào, điều này có nghĩa là "IP hoặc subnet này không bị giới hạn".
- Sửa đổi file cấu hình /etc/ntp.conf bằng cách thêm dòng sau:
[root@server ~]# vim /etc/ntp.conf
restrict 10.0.0.0 mask 255.255.255.0 nomodify noquery
Khởi động Dịch vụ NTP
- Khởi động服务:
[root@server ~]# systemctl start ntpd
- Thêm vào danh sách khởi động自 động:
[root@server ~]# systemctl enable ntpd
- Thêm quy tắc phòng lửa:
[root@server ~]# vim /etc/nftables.conf
add rule inet filter INPUT tcp dport 123 accept
- Kiểm tra xem cổng udp 123 có đang监听 không:
[root@server ~]# ss -unlp | grep "ntpd"
Kết quả mong đợi:
UNCONN 0 0 10.0.0.1:123 *:* users:(("ntpd",1234,5))
- Kiểm tra trạng thái của dịch vụ NTP:
[root@server ~]# ntpstat
Kết quả mong đợi:
synchronised to NTP server (.pool.ntp.org) at stratum 2
time correct to within 10 ms
polling server every 64 s
Đồng bộ Hóa Thời gian Từ Client
- Đồng bộ hóa thời gian手動:
[root@client ~]# ntpdate 10.0.0.1
Ví dụ kết quả:
29 Sep 22:59:31 ntpdate[1234]: adjust time server 10.0.0.1 offset 0.034930 sec
- Thêm công việc lịch tự động:
[root@client ~]# crontab -e
Thêm dòng sau để đồng bộ hóa thời gian mỗi 15 phút:
*/15 * * * * /usr/sbin/ntpdate 10.0.0.1 >> /var/log/ntp_sync.log 2>&1