Hướng dẫn thiết lập Chrony làm máy chủ và máy khách NTP trên AlmaLinux 9

theanh

Administrator
Nhân viên
NTP, hay Giao thức thời gian mạng, là một giao thức mạng để đồng bộ hóa thời gian và đồng hồ trên mạng máy tính.

Chrony triển khai NTP hay Giao thức thời gian mạng và là một giải pháp thay thế cho các ứng dụng khác như up. Chrony có thể chạy trên các hệ điều hành giống Unix, được phát hành theo GNU GPL v2. Chrony được sử dụng làm phần mềm máy chủ NTP mặc định cho một số bản phân phối Linux và cũng có sẵn cho nhiều bản phân phối Linux.

Trong hướng dẫn sau, tôi sẽ chỉ cho bạn cách cài đặt Chrony trên máy chủ AlmaLinux 9. Chúng ta sẽ cài đặt Chrony làm máy chủ NTP và máy khách NTP. Hơn nữa, bạn cũng sẽ học cách sử dụng dòng lệnh chronyc để quản lý và giám sát Chrony.

Điều kiện tiên quyết​

Để bắt đầu, hãy đảm bảo bạn có những điều sau:
  • Máy chủ AlmaLinux 9 - Bản demo này sử dụng máy chủ có tên máy chủ alma9 và địa chỉ IP 192.168.10.15.
  • Máy khách Linux cũng sử dụng máy AlmaLinux có tên máy chủ node1 và địa chỉ IP 192.168.10.20.
  • Người dùng không phải root có quyền quản trị viên root.

Thiết lập múi giờ hệ thống​

Để thiết lập múi giờ trên Linux, bạn có thể sử dụng tiện ích timedatectl. Phần sau đây sẽ chỉ cho bạn cách thiết lập và xác minh múi giờ hệ thống trước khi cài đặt máy chủ Chrony NTP.

Trước tiên, hãy kiểm tra danh sách các múi giờ khả dụng bằng lệnh sau và quyết định múi giờ bạn muốn sử dụng.
Mã:
sudo timedatectl list-timezones
Bây giờ hãy chạy lệnh bên dưới để thay đổi múi giờ mặc định trên máy chủ của bạn. Lệnh sau sẽ cấu hình múi giờ mặc định thành Châu Âu/Amsterdam.
Mã:
sudo timedatectl set-timezone Europe/Amsterdam
Tiếp theo, xác minh múi giờ hiện tại bằng lệnh sau.
Mã:
sudo timedatectl
Trong phần Múi giờ, bạn có thể xem múi giờ hiện tại của mình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22608%22%20height=%22255%22%3E%3C/svg%3E


Hoặc, bạn cũng có thể kiểm tra múi giờ mặc định của hệ thống bằng cách kiểm tra tệp /etc/localtime. Hãy đảm bảo rằng tệp là liên kết tượng trưng của múi giờ thích hợp.
Mã:
ls -lah /etc/localtime

Cài đặt Chrony​

Chrony là một triển khai của giao thức NTP có thể được sử dụng như một máy chủ NTP và máy khách NTP. Phần sau sẽ chỉ cho bạn cách cài đặt Chrony và quản lý dịch vụ Chrony thông qua tiện ích systemctl.

Để bắt đầu, hãy chạy lệnh dnf bên dưới để tìm gói chrony trên kho lưu trữ AlmaLinux. Bạn sẽ thấy kho lưu trữ baseos mặc định cung cấp chrony và đã sẵn sàng để cài đặt.
Mã:
sudo dnf search chrony

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22140%22%3E%3C/svg%3E


Cài đặt chrony thông qua lệnh dnf sau. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER.
Mã:
sudo dnf install chrony

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22202%22%3E%3C/svg%3E


Sau khi Chrony được cài đặt, hãy thực hiện lệnh sau để khởi động và kích hoạt dịch vụ chronyd. Chronyd là một dịch vụ systemd dành cho Chrony, với các lệnh này, chronyd sẽ chạy và tự động khởi động khi hệ thống khởi động.
Mã:
sudo systemctl start chronyd
sudo systemctl enable chronyd
Xác minh dịch vụ chronyd bằng lệnh sau để đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status chronyd
Đầu ra sau đây xác nhận rằng chronyd đang chạy, vì đầu ra tin nhắn active (running) được hiển thị.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22283%22%3E%3C/svg%3E

Cấu hình Firewalld​

Sau khi Chrony được cài đặt, bạn phải mở cổng NTP trên máy chủ NTP. Bây giờ, bạn sẽ thêm dịch vụ NTP vào firewalld thông qua dòng lệnh firewall-cmd.

Nếu bạn đang chạy máy chủ NTP công cộng, hãy thực hiện lệnh firewall-cmd bên dưới để cho phép bất kỳ ai truy cập vào cài đặt máy chủ NTP của bạn.
Mã:
sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload
Nhưng nếu bạn đang chạy máy chủ NTP cho mạng cục bộ của mình, hãy thực hiện lệnh firewall-cmd bên dưới để chỉ định mạng con mạng thông qua firewalld rich-rule.
Mã:
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.5.0/24' service='ntp' accept"
sudo firewall-cmd --reload
Nếu mọi thứ đã hoàn tất, hãy xác minh danh sách các quy tắc firewalld bằng lệnh sau.
Mã:
sudo firewall-cmd --list-all
Bạn sẽ nhận được dịch vụ ntp được thêm vào danh sách dịch vụ firewalld.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22604%22%20height=%22260%22%3E%3C/svg%3E

Thiết lập Chrony làm Máy chủ NTP​

Máy chủ NTP là đích đến mà máy khách của bạn có thể đồng bộ hóa thời gian hệ thống. Để thiết lập Chrony làm máy chủ NTP, bạn cần thay đổi hai cấu hình chính:
  • Thêm nhóm NTP làm nguồn: truy cậphttps://www.ntppool.org/en/ để lấy các máy chủ NTP khả dụng có thể được sử dụng làm nguồn.
  • Cho phép mạng nội bộ: thêm các mạng con mạng nội bộ của bạn sẽ được phép truy cập và sử dụng máy chủ NTP của bạn. Bằng cách này, bạn có thể tạo máy chủ NTP riêng/cục bộ cho môi trường của mình.
Mở cấu hình mặc định chrony /etc/chrony.conf bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/chrony.conf
Truy cậphttps://www.ntppool.org/en/ và chọn máy chủ NTP công khai có sẵn sẽ được sử dụng làm nguồn. Hầu hết, điều này phụ thuộc vào vị trí máy chủ của bạn, hãy chọn các máy chủ NTP gần đó làm nguồn.

Sau đó thêm vào tham số máy chủ như sau:
Mã:
# list servers
server 0.nl.pool.ntp.org iburst
server 1.nl.pool.ntp.org iburst
server 2.nl.pool.ntp.org iburst
server 3.nl.pool.ntp.org iburst
Thêm tham số cho phép và chỉ định mạng con của bạn. Bất kỳ mạng con nào trong tham số allow đều được phép truy cập vào cài đặt máy chủ NTP của bạn.
Mã:
# allowed clients
allow 192.168.10.0/24
Ngoài ra, bạn cũng có thể cần điều chỉnh các tùy chọn sau:
Mã:
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Specify the file containing keys for NTP authentication.
keyfile /etc/chrony.keys

# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC
Khi hoàn tất, hãy lưu và đóng trình chỉnh sửa.

Bây giờ hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ chronyd và áp dụng thay đổi.
Mã:
sudo systemctl restart chronyd
Sau khi chronyd khởi động lại, hãy thực hiện lệnh chronyc bên dưới để xác minh các nguồn máy chủ NTP hiện tại. chronyc là tiện ích dòng lệnh do Chrony cung cấp để quản lý cả máy chủ NTP và máy khách.
Mã:
chronyc sources
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy danh sách nguồn máy chủ NTP gần nhất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22742%22%20height=%22188%22%3E%3C/svg%3E


Ngoài ra, bạn cũng có thể nhận phiên bản chi tiết của báo cáo bằng cách thêm tùy chọn -v, nghĩa là đầu ra chi tiết.
Mã:
chronyc sources -v

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22737%22%20height=%22394%22%3E%3C/svg%3E

Thiết lập Chrony làm Máy khách NTP​

Ở trên cùng, bạn có đã học cách tạo máy chủ NTP với Chrony. Bạn sẽ học cách thiết lập Chrony như một máy khách NTP. Gói Chrony được cài đặt trên máy khách với tên máy chủ node1 và địa chỉ IP 192.168.10.20 trong ví dụ sau.

Để thiết lập Chrony làm máy khách NTP, bạn phải thêm máy chủ NTP của mình vào tham số máy chủ trong tệp cấu hình Chrony /etc/chrony.conf.

Trước tiên, hãy thực hiện lệnh sau để đảm bảo rằng dịch vụ chronyd đang chạy trên máy khách của bạn.
Mã:
sudo systemctl status chronyd
Nếu đang chạy, đầu ra sau sẽ được hiển thị:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22251%22%3E%3C/svg%3E


Bây giờ hãy mở tệp cấu hình chrony /etc/chrony.conf bằng trình soạn thảo nano.
Mã:
sudo nano /etc/chrony.conf
Thêm máy chủ NTP của bạn vào tham số máy chủ. Bạn có thể sử dụng địa chỉ IP hoặc fqdn của máy chủ NTP.

Một tham số bổ sung iburst cho phép dịch vụ Chronyd thực hiện bản cập nhật đầu tiên của đồng hồ ngay sau khi bắt đầu và tham số prefer sẽ ưu tiên nguồn Máy chủ NTP trong số các máy chủ khác mà không có tùy chọn prefer.
Mã:
server 192.168.10.15 iburst prefer
Bây giờ hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ chronyd và áp dụng các thay đổi. Sau đó, hãy xác minh chronyd để đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl restart chronyd
sudo systemctl status chronyd

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22293%22%3E%3C/svg%3E


Cuối cùng, hãy nhập lệnh sau để xác minh nguồn máy chủ NTP trên máy khách của bạn máy.
Mã:
chronyc sources
chronyc sources -v
Nếu thành công, bạn sẽ thấy máy chủ NTP của mình được sử dụng làm nguồn máy chủ NTP trên máy khách.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22431%22%3E%3C/svg%3E

Cách sử dụng cơ bản của Chronyc Lệnh​

Chronyc là giao diện dòng lệnh để quản lý Chrony, cho dù là máy chủ NTP hay máy khách NTP. Trong phần cuối cùng ở đây, bạn sẽ tìm hiểu một số lệnh chronyc cơ bản để quản lý cài đặt NTP của mình.

Tham số theo dõi sẽ hiển thị cho bạn hiệu suất của đồng hồ hệ thống.
Mã:
chronyc tracking
Trong phần ID tham chiếu, bạn sẽ thấy nguồn máy chủ NTP hiện đang được đồng bộ hóa.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22523%22%20height=%22349%22%3E%3C/svg%3E


Với tham số ntpdata, bạn có thể đo lường và kiểm tra nguồn NTP.
Mã:
chronyc ntpdata
Trên Địa chỉ từ xa, bạn có thể thấy địa chỉ IP của nguồn máy chủ NTP. Trong phần Cổng từ xa, bạn sẽ nhận được cổng máy chủ NTP mặc định hiện đang được sử dụng. Cuối cùng, trong phần Địa chỉ cục bộ, bạn sẽ thấy địa chỉ IP của máy khách là ID tham chiếu tương ứng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22426%22%20height=%22540%22%3E%3C/svg%3E


Tiếp theo, sử dụng tham số hoạt động để hiển thị số lượng máy chủ NTP trên đối tác.
Mã:
chronyc activity
Bạn có thể thấy đầu ra trực tuyến nếu máy chủ NTP có thể truy cập và chỉ có, và trạng thái ngoại tuyến nếu máy chủ ngang hàng ngoại tuyến.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22397%22%20height=%22187%22%3E%3C/svg%3E


Cuối cùng, bạn cũng có thể cho phép/từ chối mạng con trên Chrony thông qua dòng lệnh chronyc.

Sử dụng tham số cho phép để cho phép các mạng con truy cập và sử dụng Chrony NTP máy chủ.
Mã:
chronyc allow IP/subnet
Để từ chối các mạng con truy cập vào máy chủ Chrony NTP của bạn, hãy sử dụng tham số từ chối như sau:
Mã:
chronyc deny IP/subnet

Kết luận​

Làm tốt lắm! Bây giờ bạn đã cài đặt thành công Chrony trên máy chủ AlmaLinux 9. Bạn cũng đã học cách thiết lập máy chủ NTP với Chrony và cách thiết lập máy khách NTP bằng Chrony. Ngoài ra, bạn cũng đã cấu hình múi giờ hệ thống thông qua timedatectl và học một số dòng lệnh chronyc cơ bản để quản lý cài đặt Chrony.
 
Back
Bên trên