Thứ năm, 11/05/2017 | 00:00 GMT+7

Cách cấu hình NTP để sử dụng trong Dự án NTP Pool trên CentOS 7

Giữ thời gian chính xác là rất quan trọng đối với hầu hết mọi dịch vụ hoặc phần mềm. Email, trình ghi log , hệ thống sự kiện và bộ lập lịch, cơ chế xác thực user và dịch vụ chạy trên nền tảng phân tán đều cần dấu thời gian chính xác để ghi lại các sự kiện theo thứ tự thời gian. Các dịch vụ này sử dụng Giao thức thời gian mạng, hoặc NTP, để đồng bộ hóa đồng hồ hệ thống với một nguồn bên ngoài tin cậy . Nguồn này có thể là đồng hồ nguyên tử, bộ thu GPS hoặc một server thời gian khác đã sử dụng NTP.

Đây là lúc dự án NTP Pool Project phát huy tác dụng. Đó là một cụm server thời gian khổng lồ trên toàn thế giới cung cấp khả năng truy cập dễ dàng vào “thời điểm tốt” cho hàng chục triệu khách hàng trên khắp thế giới. Đây là server thời gian mặc định cho Ubuntu và hầu hết các bản phân phối Linux lớn khác, cũng như nhiều thiết bị và ứng dụng phần mềm nối mạng.

Trong hướng dẫn này, bạn sẽ cài đặt NTP trên server của bạn và cấu hình nó thành một phần của Dự án NTP Pool, do đó, nó cung cấp thời gian chính xác cho những user khác của Dự án NTP Pool. Cung cấp chu kỳ CPU dự phòng và băng thông không sử dụng của bạn là một cách hoàn hảo để trả lại thứ gì đó cho cộng đồng.

Băng thông yêu cầu tương đối thấp và có thể được điều chỉnh tùy thuộc vào số lượng bạn có thể cung cấp và nơi server của bạn đặt. Mỗi client sẽ chỉ gửi một vài gói UDP mỗi 20 phút, vì vậy hầu hết các server chỉ nhận được khoảng chục gói NTP mỗi giây, với mức tăng đột biến vài lần một ngày lên đến một trăm gói mỗi giây. Điều này nghĩa là sử dụng băng thông 10-15Kb / giây với mức tăng đột biến là 50-120Kb / giây.

Có ba yêu cầu cơ bản bạn phải đáp ứng trước khi tham gia Dự án NTP Pool:

  1. Server của bạn phải có địa chỉ IP tĩnh.
  2. Server của bạn phải có kết nối internet ổn định và lâu dài.
  3. Địa chỉ IP của bạn hầu hết không thay đổi, hoặc chỉ thay đổi không thường xuyên (mỗi năm một lần hoặc ít hơn).

Đối với hầu hết các server dựa trên cloud , hai yêu cầu đầu tiên thường được đáp ứng tự động. Yêu cầu thứ ba nhấn mạnh rằng việc tham gia Dự án NTP Pool là một commit lâu dài. Tất nhiên, nếu hoàn cảnh của bạn thay đổi, bạn có thể lấy một server ra khỏi group , nhưng sẽ mất một thời gian dài (chủ yếu là vài tuần, nhưng đôi khi vài tháng hoặc thậm chí nhiều năm) trước khi lưu lượng truy cập hoàn toàn biến mất.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần :

Bước 1 - Cài đặt NTP

Gói NTP không được cài đặt theo mặc định, vì vậy bạn sẽ sử dụng trình quản lý gói để cài đặt nó. Trước tiên, hãy cập nhật các gói của bạn:

  • sudo yum update

Sau đó cài đặt NTP:

  • sudo yum install ntp

Khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ và cấu hình dịch vụ để nó tự động khởi động mỗi khi server khởi động:

  • sudo systemctl start ntpd
  • sudo systemctl enable ntpd

Nếu bạn đã cấu hình firewall như được chỉ định trong yêu cầu , bạn phải cho phép lưu lượng UDP cho dịch vụ NTP để giao tiếp với group NTP:

  • sudo firewall-cmd --permanent --add-service=ntp
  • sudo firewall-cmd --reload

Để biết thêm về FirewallD, hãy tham khảo Cách cài đặt Firewall bằng FirewallD trên CentOS 7 .

NTP hiện đã được cài đặt, nhưng nó được cấu hình để sử dụng các server thời gian chung NTP mặc định. Thay vào đó, hãy chọn một số server thời gian cụ thể.

Bước 2 - Chọn một server thượng nguồn phù hợp

Dự án NTP Pool yêu cầu các nhà khai thác muốn tham gia group chọn các server thời gian local mạng tốt hơn là sử dụng các server pool.ntp.org mặc định. Điều này đảm bảo Dự án NTP Pool vẫn tin cậy , nhanh chóng và lành mạnh. Khi chọn nguồn thời gian của bạn , bạn cần một kết nối mạng ổn định, không bị mất gói và càng ít bước nhảy càng tốt giữa các server .

Giao thức NTP nhiều tầng và phân cấp phân tách các bên liên quan thành server chính, server phụ và client . Các server chính được gọi là Tầng 1 và được kết nối trực tiếp với nguồn thời gian, được gọi là Tầng 0 . Nguồn này có thể là đồng hồ nguyên tử, máy thu GPS hoặc hệ thống định vị vô tuyến. Các server thứ cấp trong chuỗi được gọi là Stratum 2 , Stratum 3 , v.v.

Mỗi server cũng là một client . Máy khách Stratum 2 nhận thời gian từ server Stratum 1 ngược dòng và cung cấp thời gian cho server Stratum 3 hạ lưu hoặc các client khác. Để các thành viên NTP Pool Project hoạt động bình thường, daemon NTP cần ít nhất ba server được cấu hình. Dự án đề xuất tối thiểu bốn nguồn và không quá bảy nguồn.

Dự án NTP Pool cung cấp danh sách các server thời gian Stratum 1 và Startum 2 công khai. Danh sách chỉ định server thời gian NTP có sẵn để truy cập theo các hạn chế đã nêu. Bạn sẽ tìm thấy ba loại:

  • OpenAccess : Server thời gian này mở cho bất kỳ client nào tuân theo các khuyến nghị sử dụng NTP Pool.
  • RestrictedAccess : Server thời gian này có một số hạn chế truy cập ngoài các khuyến nghị sử dụng NTP Pool.
  • ClosedAccess : Server thời gian này đã đóng hoặc yêu cầu sắp xếp trước.

Cảnh báo : Không sử dụng các server không được liệt kê là OpenAccess trừ khi bạn được chấp thuận để thực hiện .

Truy cập danh sách Server cấp 1 lần . Bạn sẽ thấy một danh sách như sau:

 Server  tầng 1

Sắp xếp danh sách theo cột mã ISO và tìm một hoặc hai server gần về mặt địa lý với trung tâm dữ liệu của server của bạn. Khi cột Chính sách truy cập của server cho biết OpenAccess , bạn có thể sử dụng nó mà không gặp vấn đề gì. Nếu nó cho biết “RestrictedAccess”, hãy nhấp để mở mục nhập và đọc hướng dẫn được ghi chú trong trường AccessDetails . Thông thường, bạn sẽ thấy rằng NotificationMessage được đặt thành , nghĩa là bạn phải tạo một email không chính thức được chuyển hướng đến địa chỉ được cung cấp trong ServerContact , thông báo cho nhà điều hành server về mong muốn sử dụng server thời gian này làm nguồn thời gian cho NTP Pool của bạn Thành viên dự án.

Khi bạn đã xác định được các server bạn muốn sử dụng, hãy nhấp vào liên kết cho từng server trong cột ISO và sao chép tên server hoặc địa chỉ IP của nó. Bạn sẽ sử dụng các địa chỉ này trong Bước 3.

Tiếp theo, chọn ba hoặc bốn server từ danh sách Stratum 2 , theo cùng một quy trình.

Khi bạn đã chọn server thời gian của bạn , đã đến lúc cấu hình client NTP của bạn để sử dụng chúng.

Bước 3 - Cấu hình NTP để tham gia group

Để sử dụng server của bạn với group NTP và cấu hình server thời gian mới, bạn cần thực hiện một số sửa đổi đối với cấu hình NTP daemon của bạn . Để làm như vậy, hãy chỉnh sửa file /etc/ntp.conf :

  • sudo vi /etc/ntp.conf

Đầu tiên, hãy đảm bảo tệp trôi dạt được cấu hình . Một file trôi dạt lưu trữ độ lệch tần số giữa đồng hồ hệ thống đang chạy ở tần số danh định của nó và tần số cần thiết để duy trì đồng bộ hóa với thời gian chính xác. Nó giúp đạt được thời gian ổn định và chính xác. Bạn sẽ thấy điều này ở đầu file cấu hình của bạn trên cài đặt mặc định:

/etc/ntp.conf
# For more information about this file, see the man pages # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).  driftfile /var/lib/ntp/drift  ... 

Tiếp theo, xóa các mục nguồn thời gian mặc định khỏi cấu hình. Bạn đang tìm kiếm tất cả các dòng thuộc server 0.centos.pool.ntp.org iburst mẫu server 0.centos.pool.ntp.org iburst . Nếu bạn đang sử dụng cấu hình mặc định, hãy xóa các dòng được đánh dấu như trong ví dụ sau:

/etc/ntp.conf
... # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst 

Thay thế các dòng bạn đã xóa bằng các server được chọn thủ công mà bạn đã chọn ở bước trước.

/etc/ntp.conf
... server ntp_server_hostname_1 iburst server ntp_server_hostname_2 iburst server ntp_server_hostname_3 iburst server ntp_server_hostname_4 iburst server ntp_server_hostname_5 iburst ... 

Ta sử dụng tùy chọn iburst cho từng server , theo khuyến nghị của NTP Pool. Bằng cách đó, nếu server không thể truy cập được, điều này sẽ gửi một loạt tám gói thay vì một gói thông thường. Sử dụng tùy chọn burst trong Dự án NTP Pool được coi là lạm dụng vì nó sẽ gửi tám gói đó mỗi khoảng thời gian thăm dò, trong khi iburst gửi tám gói trong lần đầu tiên.

Tiếp theo, hãy đảm bảo cấu hình mặc định không cho phép các truy vấn quản lý. Nếu không, server của bạn có thể bị sử dụng trong các cuộc tấn công phản ánh NTP hoặc có thể dễ bị tấn công bởi các truy vấn ntpqntpdc cố gắng sửa đổi trạng thái của server . Kiểm tra xem noquery tùy chọn được thêm vào mặc định restrict dòng. Ngoài ra hãy chắc chắn rằng bạn thêm các tùy chọn kodlimited khi họ hạn chế khách hàng quá háo hức hỏi và thực thi các giới hạn tốc độ.

/etc/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 kod limited  # 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 

Bạn có thể tìm thêm thông tin về các tùy chọn khác trong tài liệu chính thức .

Tệp cấu hình daemon NTP của bạn bây giờ sẽ trông giống như sau, mặc dù file của bạn có thể có comment bổ sung mà bạn có thể bỏ qua một cách an toàn:

/etc/ntp.conf
 driftfile /var/lib/ntp/ntp.drift  restrict default nomodify notrap nopeer noquery kod limited  restrict 127.0.0.1 restrict ::1  server ntp_server_hostname_1 iburst server ntp_server_hostname_2 iburst server ntp_server_hostname_3 iburst server ntp_server_hostname_4 iburst server ntp_server_hostname_5 iburst 

Lưu file và thoát khỏi editor .

Bây giờ khởi động lại dịch vụ NTP và để server thời gian của bạn đồng bộ hóa đồng hồ của nó với các server ngược dòng.

  • sudo systemctl restart ntpd

Sau một vài phút, hãy kiểm tra tình trạng của server thời gian của bạn bằng lệnh ntpq :

  • ntpq -p

Đầu ra sẽ giống như sau:

Output
remote refid st t when poll reach delay offset jitter ============================================================================== mizbeaver.udel. .INIT. 16 u - 64 0 0.000 0.000 0.000 montpelier.ilan .GPS. 1 u 25 64 7 55.190 2.121 130.492 +nist1-lnk.binar .ACTS. 1 u 28 64 7 52.728 23.860 3.247 *ntp.okstate.edu .GPS. 1 u 31 64 7 19.708 -8.344 6.853 +ntp.colby.edu .GPS. 1 u 34 64 7 51.518 -5.914 6.669

Cột từ xa cho bạn biết tên server của server mà daemon NTP đang sử dụng và cột refid cho bạn biết nguồn mà server đang sử dụng. Vì vậy, đối với các server Stratum 1, trường refid sẽ hiển thị GPS , PPS , ACTS hoặc PTB và các server Stratum 2 trở lên sẽ hiển thị địa chỉ IP của server ngược dòng. Cột st hiển thị tầng và độ trễ , độ lệchđộ chập chờn cho bạn biết về chất lượng của nguồn thời gian. Giá trị thấp hơn sẽ tốt hơn cho ba trường này.

Server thời gian của bạn hiện có thể phục vụ thời gian cho công chúng. Bạn có thể xác minh điều này bằng cách gọi ntpdate từ một server khác:

  • ntpdate -q your_server_ip

Kết quả kết quả sẽ trông tương tự như thế này và nó cho bạn biết nó đã điều chỉnh server thời gian và độ lệch:

Output
server your_server_ip, stratum 2, offset 0.001172, delay 0.16428 2 Mar 23:06:44 ntpdate[18427]: adjust time server your_server_ip offset 0.001172 sec

Đến đây bạn đã sẵn sàng đăng ký server NTP của bạn với Dự án NTP Pool để những người khác có thể sử dụng nó.

Bước 4 - Thêm server vào NTP Pool

Để thêm server của bạn để những người khác có thể sử dụng nó, hãy truy cập management.ntppool.org và đăng ký account . Bạn sẽ nhận được email từ NTP Pool help@ntppool.org yêu cầu bạn xác minh account của bạn . Xác nhận account của bạn theo hướng dẫn trong email, sau đó đăng nhập vào management.ntppool.org .

Sau khi đăng nhập, bạn sẽ thấy giao diện đơn giản để thêm server :

Thêm  server

Nhập địa chỉ IP của server của bạn và nhấp vào Gửi .

Màn hình tiếp theo yêu cầu bạn xác minh nó đã xác định vùng server của bạn. Nếu nó hiển thị server của bạn ở một khu vực khác với bạn mong đợi, hãy sử dụng hộp Comment để cho họ biết.

Màn hình xác minh

Nếu bạn hài lòng, hãy xác nhận mục nhập bằng cách nhấp vào Có, đây là server của tôi, hãy thêm nó!

Server của bạn hiện là một phần của Dự án NTP Pool. Truy cập http://www.pool.ntp.org/scores/ your_server_ip để xem thông tin mà hệ thống giám sát của NTP Pool đã thu thập về server của bạn. Nó kiểm tra server của bạn một vài lần mỗi giờ và hiển thị dữ liệu bù đắp, thông báo với điểm số của hệ thống . Miễn là server của bạn đang giữ thời gian tốt và có thể truy cập được, điểm số sẽ tăng lên cho đến khi nó đạt 20 điểm. Chỉ những server có điểm cao hơn 10 mới được sử dụng trong group .

Khắc phục sự cố kết nối

Nếu bạn gặp sự cố trong việc đồng bộ hóa server của bạn , bạn có thể có một firewall gói tại chỗ làm rơi các gói gửi đi của bạn trên cổng 123 . Hãy xem Cách cài đặt firewall bằng FirewallD trên CentOS 7 để tìm hiểu cách kiểm tra trạng thái của firewall .

Nếu trạm giám sát của Dự án NTP Pool không thể kết nối với server NTP của bạn và điểm server của bạn đang giảm hoặc bạn không thể sử dụng server của bạn để đồng bộ một số đồng hồ khác, bạn có thể có một firewall gói làm giảm lưu lượng đến của bạn trên cổng 123 . Kiểm tra trạng thái firewall của bạn.

Nếu bạn chắc chắn rằng bạn không có firewall tại chỗ hoặc bạn đã mở cổng 123 cho cả lưu lượng đến và đi, nhà cung cấp server của bạn hoặc nhà cung cấp dịch vụ chuyển tuyến khác có thể đang bỏ các gói tin của bạn. Nếu bạn không có kiến thức để tự mình giải quyết những vấn đề đó, tốt nhất bạn nên hướng tới cộng đồng và tìm kiếm sự giúp đỡ. Diễn đàn NTP Pool Projects là một nơi tốt để tham khảo . Bạn cũng có thể tham gia danh sách gửi thư hoặc gửi emaill đến nhà điều hành Dự án NTP Pool. Chỉ cần đảm bảo bạn có thể hiển thị tất cả các bước bạn đã cố gắng giải quyết vấn đề trước khi yêu cầu trợ giúp.

Kết luận

Trong hướng dẫn này, bạn đã cài đặt thành công server thời gian của riêng mình và biến nó thành thành viên của Dự án NTP Pool, phục vụ thời gian cho cộng đồng. Để giữ liên lạc với cộng đồng giữ thời gian. tham gia diễn đàn Dự án NTP Pool hoặc danh sách gửi thư . Đảm bảo theo dõi điểm server của bạn và thực hiện bất kỳ điều chỉnh nào cần thiết.


Tags:

Các tin liên quan

Cách lưu trữ một trang web với Caddy trên CentOS 7
2017-05-10
Cách cài đặt và cấu hình Ghost trên CentOS 7
2017-04-10
Cách cấu hình một client FreeIPA trên CentOS 7
2017-03-24
Cách theo dõi các chỉ số hệ thống bằng TICK Stack trên CentOS 7
2017-03-12
Cách thiết lập xác thực đa yếu tố cho SSH trên CentOS 7
2017-03-08
Cách cài đặt và bảo mật message broker MQTT Mosquitto trên CentOS 7
2017-01-23
Cách thay đổi thư mục dữ liệu MariaDB thành vị trí mới trên CentOS 7
2016-12-19
Cách cài đặt và cấu hình Ansible trên CentOS 7
2016-12-19
Cách cài đặt MariaDB trên CentOS 7
2016-12-01
Cách thu thập số liệu cơ sở hạ tầng với Packetbeat và ELK trên CentOS 7
2016-11-28