Giới thiệu
Đối với người quản trị máy chủ, điều quan trọng là phải đặt và duy trì thời gian trên máy chủ một cách chính xác. Thời gian được cấu hình sai sẽ gây ra sự hỗn loạn trong môi trường máy chủ, chẳng hạn như sự không nhất quán dữ liệu, lỗi đồng bộ hóa dữ liệu và các vấn đề lập lịch công việc.
Để tránh những sự cố không mong muốn này, trước tiên, bạn cần đặt múi giờ hợp lý trên máy chủ của mình, cung cấp cho máy chủ của bạn thời gian địa phương tương đối chính xác. Thứ hai, cho mục đích giao tiếp, bạn cũng có thể sử dụng NTP (Giao thức thời gian mạng) để đồng bộ hóa thời gian của máy chủ và máy chủ NTP từ xa, giữ cho thời gian trên máy của bạn theo thứ tự hoàn hảo.
Trong bài viết này, tôi sẽ chỉ cho bạn cách đặt múi giờ và cách đồng bộ hóa thời gian bằng NTP trên máy chủ CentOS 6 x64.
Điều kiện tiên quyết
Tôi giả sử rằng bạn đã triển khai một phiên bản máy chủ CentOS 6 x64 Vultr từ đầu và đã đăng nhập bằng root.
Bước 1: Đặt múi giờ
Nhập lệnh sau trong thiết bị đầu cuối của bạn:
date
Như bạn thấy, HĐH Vultr CentOS 6 x64 sử dụng thời gian UTC theo mặc định. Bạn có thể sửa đổi nó thành bất kỳ múi giờ nào bạn muốn, nhưng sử dụng múi giờ địa phương của vị trí thực tế của máy chủ là cách tốt nhất.
Nếu máy chủ của chúng tôi đang chạy ở Trung Quốc, thì chúng tôi sẽ sử dụng múi giờ "Châu Á / Thượng Hải":
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Bạn có thể điều hướng đến thư mục /usr/share/zoneinfo
để tìm múi giờ thích hợp. Có một nguồn tài nguyên tuyệt vời trên Wikipedia cho danh sách múi giờ .
Nhập date
lại, bạn sẽ thấy rằng thời gian hệ thống cục bộ đã thay đổi thành CST (Giờ chuẩn Trung Quốc) GMT + 0800.
Tiếp theo, chúng tôi sẽ viết thông tin thời gian hệ thống vào đồng hồ phần cứng.
vi /etc/sysconfig/clock
Sửa đổi nội dung của tập tin này như dưới đây.
ZONE="Asia/Shanghai"
UTC=false
ARC=false
Lưu và đóng.
:wq
Viết thời gian hệ thống vào đồng hồ phần cứng.
hwclock --systohc --localtime
Nhập liệu hwclock
để xem kết quả.
Bước 2: Nâng cấp NTP
Theo mặc định, chương trình ntp daemon đã được cài đặt và thiết lập để chạy trên phiên bản máy chủ Vultr CentOS 6 x64. Vì mục đích bảo mật, điều đầu tiên mà chúng ta nên làm là nâng cấp nó lên phiên bản mới nhất.
Để xem phiên bản ntpd:
ntpd --version
Tại thời điểm viết, phiên bản cài đặt mặc định là "4.2.6p5".
Dừng dịch vụ ntpd:
service ntpd stop
Tải xuống phiên bản mới nhất của chương trình ntp từ trang web chính thức của nó:
wget http://archive.ntp.org/ntp4/ntp-4.2/ntp-4.2.8p2.tar.gz
Giải nén và đi vào thư mục vừa tạo:
tar -zxvf ntp-4.2.8p2.tar.gz
cd ntp-4.2.8p2
Cài đặt các thành phần cần thiết cho cài đặt của chúng tôi:
yum -y install gcc libcap-devel
Vì chúng tôi sẽ nâng cấp chương trình ntpd hiện có, chúng tôi cần xác định thông tin chủ sở hữu và nhóm:
cat /etc/group
cat /etc/passwd
Như bạn thấy, chương trình ntp thuộc về chủ sở hữu ntp (uid = 38) và nhóm ntp (gid = 38).
Vì mục đích bảo mật, hãy cập nhật cấu hình của tài khoản người dùng ntp:
usermod -c "Network Time Protocol" -d /var/lib/ntp -u 38 -g ntp -s /bin/false ntp
Biên dịch và cài đặt chương trình ntp:
./configure --prefix=/usr --bindir=/usr/sbin --sysconfdir=/etc --enable-linuxcaps --with-lineeditlibs=readline --docdir=/usr/share/doc/ntp-4.2.8p2 && make
make install && install -v -o ntp -g ntp -d /var/lib/ntp
Khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra lại phiên bản ntpd:
ntpd --version
Như bạn thấy, chương trình ntp đã được nâng cấp lên phiên bản mới nhất "4.2.8p2".
Để có hiệu suất và bảo mật tốt hơn, chúng tôi cần sửa đổi cấu hình mặc định:
vi /etc/ntp.conf
Trong ntp.conf
tệp cấu hình, bạn có thể tìm thấy các máy chủ ntp như:
server 1.time.constant.com
server 2.time.constant.com
server 3.time.constant.com
Để có tốc độ đồng bộ hóa nhanh hơn, bạn có thể thay đổi các máy chủ này thành các máy chủ trong khu vực hoặc thậm chí ở quốc gia của trung tâm dữ liệu của bạn. Ví dụ: ở Hoa Kỳ, bạn có thể sử dụng:
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
Có thể tìm thấy nhiều máy chủ thời gian nhóm NTP hơn trên trang web hỗ trợ NTP .
Vì mục đích bảo mật, chúng ta nên hạn chế quyền. Trong khi vẫn ở ntp.conf
tệp cấu hình, tìm hai hàng sau:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
Sửa đổi chúng như dưới đây:
restrict default limited kod nomodify notrap nopeer noquery
restrict -6 default limited kod nomodify notrap nopeer noquery
Ngoài ra, chúng ta cần thêm hai hàng sau:
pidfile /var/run/ntpd.pid
leapfile /etc/ntp.leapseconds
Lưu và đóng:
:wq
Khởi động lại hệ thống:
reboot
Thêm câu sau vào tệp cấu hình iptable /etc/sysconfig/iptables
:
-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
Khởi động lại tường lửa.
service iptables restart
Tại thời điểm này, NTP được cấu hình đầy đủ. Chương trình ntpd sẽ liên tục điều chỉnh thời gian của máy chủ của bạn.
Nếu cần, bạn có thể kiểm tra trạng thái đồng bộ hóa thời gian bằng lệnh sau:
ntpstat