Thiết lập máy chủ NTP trong mạng nội bộ

Khác biệt giữa NTP và Ntpdate

  • Cả hai dịch vụ đều có sẵn trong CentOS (trong CentOS 7 không cài sẵn ntp). Gói cài đặt của ntp là ntp; gói cài đặt của ntpdate là ntpdate. Chúng không được cung cấp bởi cùng một gói cài đặt.
  • Quá trình nền (daemon) của ntp là ntpd, tệp cấu hình là /etc/ntp.conf
  • Ntpdate được sử dụng để đồng bộ thời gian cho máy khách, máy chủ không phải là máy chủ NTP không cần khởi động NTP.

Giới thiệu: NTP (Network Time Protocol)

Máy chủ NTP có thể cung cấp dịch vụ đồng bộ hóa thời gian cho các máy chủ khác.

Chuẩn bị môi trường: Hai máy chủ, một làm máy chủ NTP, máy còn lại làm client để kiểm tra việc đồng bộ hóa thời gian.

Máy chủ NTP: 192.168.1.100

Client: 192.168.1.101

Cài đặt và Cấu hình: Chúng ta sẽ hướng dẫn về cấu hình ntp qua góc nhìn tệp cấu hình

 1 # Để biết thêm thông tin về tệp này, hãy xem các trang manual
 2 # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
 3 
 4 driftfile /var/lib/ntp/drift  # Giữ mặc định. driftfile được dùng để ghi lại tần số sai lệch giữa máy chủ này và NTP server cấp trên. Đơn vị là phần triệu giây.
 5 
 6 # Cho phép đồng bộ hóa thời gian với nguồn thời gian của chúng ta, nhưng không
 7 # cho phép nguồn truy vấn hoặc sửa đổi dịch vụ trên hệ thống này.
 8 restrict default nomodify notrap nopeer noquery
 9 # restrict được dùng để quản lý quyền kiểm soát. Cú pháp là restrict [địa chỉ ip|mạng|mặc định] tham_số
10 # tham_số:
11 # ignore: Từ chối tất cả kết nối ntp
12 # nomodify: Máy khách không thể sử dụng các chương trình ntpc và ntpq để thay đổi thông số thời gian của máy chủ, nhưng máy khách có thể sử dụng máy chủ này để đồng bộ hóa thời gian mạng.
13 # noquery: Máy khách không thể sử dụng các lệnh như ntpc và ntpq để truy vấn máy chủ thời gian, tức là không cung cấp dịch vụ đồng bộ hóa thời gian mạng.
14 # notrap: Không cung cấp chức năng đăng nhập thời gian mạng trap
15 # notrust: Từ chối máy khách không được xác thực
16 # Ví dụ: restrict 192.168.1.101 nomodify
17 
18 # Cho phép tất cả truy cập qua giao diện loopback. Điều này có thể
19 # được siết chặt hơn, nhưng làm vậy sẽ ảnh hưởng đến một số
20 # chức năng quản trị.
21 restrict 127.0.0.1  # Hai dòng mặc định dưới đây, cho phép nguồn từ máy chủ
22 restrict ::1
23 
24 # Máy chủ trên mạng nội bộ ít bị hạn chế hơn.
25 #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
26 
27 # Sử dụng các máy chủ công khai từ dự án pool.ntp.org.
28 # Vui lòng cân nhắc tham gia pool (http://www.pool.ntp.org/join.html).
29 server 0.centos.pool.ntp.org iburst # Bốn dòng dưới đây là mặc định, chỉ cần comment lại
30 server 1.centos.pool.ntp.org iburst
31 server 2.centos.pool.ntp.org iburst
32 server 3.centos.pool.ntp.org iburst
33   server: Dùng để đặt máy chủ NTP cấp trên, nói cách khác là client sẽ yêu cầu đồng bộ hóa thời gian NTP với ai.
34   Đặc biệt, trong môi trường mạng nội bộ do không thể kết nối ra ngoài, vì vậy không thể đồng bộ hóa thời gian với các dịch vụ như Trung tâm Dịch vụ Thời gian Quốc gia 210.72.145.44
35   Chỉ có thể đặt một máy chủ trong mạng nội bộ làm server, để cung cấp dịch vụ NTP cho các máy chủ mạng nội bộ khác.
36   server 127.127.1.0 prefer # Sử dụng thời gian của máy chủ làm dịch vụ thời gian. Trong mạng nội bộ cấu hình này bắt buộc phải thêm, nếu không sẽ dẫn đến dịch vụ NTP không khả dụng
37   #prefer đại diện cho ưu tiên của máy chủ này là cao nhất.
38 
39 #broadcast 192.168.1.255 autokey    # broadcast server
40 #broadcastclient            # broadcast client
41 #broadcast 224.0.1.1 autokey        # multicast server
42 #multicastclient 224.0.1.1        # multicast client
43 #manycastserver 239.255.254.254        # manycast server
44 #manycastclient 239.255.254.254 autokey # manycast client
45 
46 # Kích hoạt mật mã khóa công khai.
47 #crypto
48 
49 includefile /etc/ntp/crypto/pw
50 
51 # Tệp khóa chứa các khóa và định danh khóa được sử dụng khi hoạt động
52 # với mật mã khóa đối xứng. 
53 keys /etc/ntp/keys ## Ngoài restrict để hạn chế kết nối của máy khách, còn có thể sử dụng phương thức khóa để xác thực cho máy khách.
54 
55 # Chỉ định định danh khóa được tin cậy.
56 #trustedkey 4 8 42
57 
58 # Chỉ định định danh khóa để sử dụng với tiện ích ntpdc.
59 #requestkey 8
60 
61 # Chỉ định định danh khóa để sử dụng với tiện ích ntpq.
62 #controlkey 8
63 
64 # Kích hoạt ghi các bản ghi thống kê.
65 #statistics clockstats cryptostats loopstats peerstats
66 
67 # Vô hiệu hóa tính năng giám sát để ngăn chặn các tấn công khuếch đại sử dụng lệnh ntpdc
68 # monlist khi restrict mặc định không bao gồm cờ noquery. Xem
69 # CVE-2013-5211 để biết thêm chi tiết.
70 # Lưu ý: Giám sát sẽ không bị vô hiệu hóa khi cờ hạn chế được áp dụng.
71 disable monitor

Ví dụ

Máy chủ cần sửa đổi /etc/ntp.conf, thêm nội dung sau:

server 127.127.1.0 prefer  # Đặt máy chủ này làm máy chủ NTP<br>
restrict 192.168.1.101        # Cho phép máy khách 192.168.1.101 yêu cầu đồng bộ hóa thời gian với máy chủ này<br>
restrict 192.168.1.0 mask 255.255.255.0 # Cho phép tất cả máy chủ trong mạng 192.168.1.0 yêu cầu đồng bộ hóa thời gian với máy chủ này

Máy khách cần sửa đổi /etc/ntp.conf, thêm nội dung sau:

server 192.168.1.100 # Chỉ định máy chủ NTP cấp trên
restrict 192.168.1.100 # Cho phép 192.168.1.100

Kiểm tra

Đầu tiên, kiểm tra dịch vụ có khởi động thành công không

Khởi động dịch vụ: service ntpd start

Kiểm tra dịch vụ có khởi động không: netstat -tunlp |grep ntp; ntp mặc định lắng nghe trên cổng UDP 123

Thứ hai, kiểm tra NTP có hoạt động bình thường không

Tại đây cần sử dụng máy chủ Client 192.168.1.101, trên máy chủ này có thể sử dụng các lệnh ntpstat hoặc ntpq -p.

ntpstat: Lệnh này có thể xem máy khách (ở đây là 192.168.1.101) có kết nối thành công với máy chủ (192.168.1.100) hay không.

Nội dung hiển thị tương tự nghĩa là: Máy chủ này đã đồng bộ hóa thời gian với máy chủ NTP cấp 7 tại 192.168.1.100, thời gian chính xác trong vòng 36ms. Đồng bộ hóa thời gian mỗi 512s một lần.

ntpq -p: Lệnh này có thể liệt kê trạng thái NTP hiện tại của máy chủ và NTP cấp trên.

remote: Địa chỉ IP hoặc tên máy chủ của máy chủ NTP cấp trên. Chú ý dấu * ở bên trái

*: Đại diện cho máy chủ FTP cấp trên hiện đang được sử dụng

+: Đã kết nối thành công, và có thể là ứng cử viên tiếp theo để cung cấp dịch vụ thời gian.

refid: Nó đề cập đến máy chủ cung cấp đồng bộ hóa thời gian cho máy chủ từ xa (192.168.1.100), máy chủ cấp trên cấp hai của máy chủ này.

Tại sao lại hiển thị LOCAL(0)?

Vì đây là môi trường mạng nội bộ, không thể kết nối đến các máy chủ công cộng bên ngoài, vì vậy chúng ta đặt 192.168.1.100 làm máy chủ thời gian đồng thời sử dụng server 127.127.1.0 prefer chỉ định NTP cấp trên của nó là chính nó.

st: Là tầng stratum. Tương tự như DNS, NTP có cấu trúc tầng, có máy chủ ở đỉnh, tối đa 15 tầng. Để giảm tải và tắc nghẽn mạng,原则上 nên tránh kết nối trực tiếp với các máy chủ có cấp độ 1.

when: Cách đây vài giây đã đồng bộ hóa thời gian

poll: Thời gian để đồng bộ hóa lại

reach: Số lần đã đồng bộ hóa thời gian

delay: Độ trễ trong quá trình truyền mạng, đơn vị là 10^-6 giây.

offset: Giá trị điều chỉnh thời gian, đây là giá trị quan trọng nhất, nó cho biết sự khác biệt về thời gian giữa máy chủ địa phương và máy chủ. Đơn vị là 10^-3 giây.

jitter: Thời gian khác biệt giữa thời gian hệ thống (phần mềm) và thời gian BIOS (phần cứng), đơn vị là 10^-6 giây. Sau khi máy chủ và máy chủ NTP đồng bộ hóa thời gian, có thể sử dụng hwclock -w để ghi thời gian hệ thống vào BIOS.

Thẻ: NTP time-sync network-time-protocol server-configuration CentOS

Đăng vào ngày 5 tháng 6 lúc 02:04