Cấu hình và tối ưu hóa NTP trên Ubuntu|Hướng dẫn đồng bộ thời gian chính xác và tăng cường bảo mật

1. Tầm quan trọng của NTP trên Ubuntu

NTP là gì?

NTP (Network Time Protocol) là một giao thức giúp đồng bộ hóa thời gian của hệ thống máy tính một cách chính xác thông qua mạng. Việc duy trì thời gian chính xác rất quan trọng đối với tính nhất quán của nhật ký, xử lý giao dịch và tính chính xác của giao tiếp mạng. Nếu có sự sai lệch về thời gian, có thể xảy ra lỗi mạng hoặc dữ liệu không nhất quán, đặc biệt là trong quản lý máy chủ.

Trên Ubuntu, chrony được khuyến nghị vì nó có thể đồng bộ hóa thời gian chính xác ngay cả trong môi trường mạng không ổn định. Ngoài ra, Chrony có độ trễ thấp và tốc độ đồng bộ nhanh, phù hợp cho cả máy chủ và môi trường máy khách.

2. Cách cấu hình NTP

Cài đặt và cấu hình Chrony

Chrony là client NTP tiêu chuẩn trên Ubuntu từ phiên bản 18.04 trở đi. Hãy làm theo các bước dưới đây để cài đặt và cấu hình đồng bộ hóa thời gian với máy chủ NTP.

Hướng dẫn cài đặt

sudo apt update
sudo apt install chrony

Tiếp theo, khởi động dịch vụ Chrony và thiết lập chế độ tự động khởi động.

sudo systemctl start chrony
sudo systemctl enable chrony

Tệp cấu hình nằm trong /etc/chrony/chrony.conf. Nếu sử dụng máy chủ NTP gần Việt Nam, bạn có thể cấu hình như sau:

server 0.vn.pool.ntp.org iburst
server 1.vn.pool.ntp.org iburst
server 2.vn.pool.ntp.org iburst
server 3.asia.pool.ntp.org iburst

Tham số iburst giúp tăng tốc độ đồng bộ khi kết nối ban đầu.

3. Tối ưu hóa và lựa chọn máy chủ NTP

Sử dụng dự án NTP Pool

Dự án NTP Pool cung cấp các máy chủ NTP tối ưu theo từng khu vực trên thế giới. Việc sử dụng nhiều máy chủ NTP giúp cải thiện độ tin cậy và đảm bảo rằng nếu một máy chủ gặp sự cố, các máy chủ khác vẫn có thể thay thế.

Dưới đây là ví dụ cấu hình sử dụng các máy chủ NTP tại Việt Nam.

server 0.vn.pool.ntp.org iburst
server 1.vn.pool.ntp.org iburst
server 2.vn.pool.ntp.org iburst
server 3.asia.pool.ntp.org iburst

4. Cấu hình múi giờ

Sử dụng lệnh timedatectl

Múi giờ mặc định trên Ubuntu là UTC. Bạn có thể thay đổi thành múi giờ Việt Nam (ICT) bằng lệnh sau:

sudo timedatectl set-timezone Asia/Ho_Chi_Minh

Sau khi thay đổi, bạn có thể kiểm tra lại múi giờ hiện tại bằng lệnh sau:

timedatectl

5. Xử lý sự cố

Khi NTP không đồng bộ

Kiểm tra tường lửa

NTP sử dụng cổng UDP 123. Nếu cổng này bị chặn bởi tường lửa, dịch vụ NTP có thể không hoạt động. Hãy mở cổng 123 bằng lệnh sau:

sudo ufw allow 123/udp

Kiểm tra False-ticker

Sử dụng lệnh ntpq -p để kiểm tra xem máy chủ NTP có hoạt động đúng hay không. Nếu một máy chủ cung cấp thời gian không chính xác, nó sẽ được đánh dấu bằng ký hiệu x. Khi đó, bạn nên chọn một máy chủ khác hoặc điều chỉnh cài đặt.

Lỗi Stratum 16

Nếu máy chủ NTP không thể đồng bộ với các máy chủ cấp trên, lỗi Stratum 16 sẽ xuất hiện. Lỗi này có thể do kết nối mạng hoặc máy chủ không ổn định. Hãy kiểm tra lại cài đặt mạng và thử chọn một máy chủ NTP đáng tin cậy hơn.

Đồng bộ thời gian thủ công

Để đồng bộ thời gian thủ công bằng Chrony, sử dụng lệnh sau:

sudo ntpdate ntp.nict.jp

Bạn cũng có thể kiểm tra nhật ký của Chrony để xác định nguyên nhân lỗi đồng bộ:

sudo journalctl -u chrony

6. Tối ưu hóa NTP trong môi trường tải cao

Điều chỉnh minpollmaxpoll

Trong môi trường yêu cầu độ chính xác cao, bạn có thể điều chỉnh khoảng thời gian polling của NTP để giảm thiểu độ trễ. Dưới đây là ví dụ thiết lập giúp tăng tần suất đồng bộ:

server ntp.nict.jp iburst minpoll 4 maxpoll 10

Quản lý NTP bằng Juju

Trong môi trường điện toán đám mây quy mô lớn, có thể sử dụng Juju để tự động hóa dịch vụ NTP. Juju giám sát tải trên mỗi máy chủ và chọn máy chủ NTP tối ưu nhất. Dưới đây là lệnh triển khai NTP bằng Juju:

juju deploy cs:ntp ntp
juju config ntp auto_peers=true

Việc này giúp tự động hóa quản lý NTP và tối ưu hóa đồng bộ thời gian trên toàn hệ thống.

7. Tăng cường bảo mật

Kiểm soát quyền truy cập vào máy chủ NTP

Để bảo mật hệ thống, bạn có thể giới hạn quyền truy cập vào máy chủ NTP cho một số địa chỉ IP nhất định. Thêm dòng sau vào tệp /etc/chrony/chrony.conf để chỉ cho phép các thiết bị trong mạng nội bộ sử dụng dịch vụ NTP:

allow 192.168.1.0/24

Điều này giúp ngăn chặn các yêu cầu NTP trái phép từ bên ngoài và bảo vệ mạng nội bộ.

侍エンジニア塾