Вступ
Передумови
Крок 1. Установіть часовий пояс
Крок 2: Оновіть NTP
Крок 3: Налаштуйте ntp
Крок 4: Налаштуйте брандмауер
Вступ
Для адміністраторів серверів важливо правильно встановлювати й підтримувати час на серверах. Неправильно налаштований час спричинить хаос у середовищі сервера, наприклад, неузгодженість даних, збої синхронізації даних та проблеми з плануванням завдань.
Щоб уникнути цих небажаних проблем, по-перше, вам потрібно встановити розумний часовий пояс на вашому сервері, надавши вашому серверу відносно точний місцевий час. По-друге, для цілей зв’язку ви також можете використовувати NTP (протокол мережевого часу), щоб синхронізувати час ваших серверів і віддалених серверів NTP, зберігаючи час на ваших машинах в ідеальному порядку.
У цій статті я покажу вам, як встановити часовий пояс і як синхронізувати час за допомогою NTP на сервері CentOS 6 x64.
Передумови
Я припускаю, що ви розгорнули екземпляр сервера CentOS 6 x64 Vultr з нуля і ввійшли як root.
Крок 1. Установіть часовий пояс
Введіть таку команду у свій термінал:
date
Як бачите, ОС Vultr CentOS 6 x64 за замовчуванням використовує час UTC. Ви можете змінити його на будь-який часовий пояс за бажанням, але найкращою практикою є використання локального часового поясу фізичного розташування сервера.
Якби наш сервер працював у Китаї, ми б використовували часовий пояс «Азія/Шанхай»:
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Ви можете перейти до каталогу, /usr/share/zoneinfo
щоб знайти відповідний часовий пояс. У Вікіпедії є чудовий ресурс для переліку часових поясів .
date
Знову ввівши , ви побачите, що місцевий системний час змінився на CST (Китайський стандартний час) GMT+0800.
Далі ми запишемо інформацію про системний час в апаратний годинник.
vi /etc/sysconfig/clock
Змініть вміст цього файлу, як показано нижче.
ZONE="Asia/Shanghai"
UTC=false
ARC=false
Збережіть і вийдіть.
:wq
Запишіть системний час в апаратний годинник.
hwclock --systohc --localtime
Введіть, hwclock
щоб побачити результат.
Крок 2: Оновіть NTP
За замовчуванням програму-демона ntp було встановлено та налаштовано для роботи на екземплярі сервера Vultr CentOS 6 x64. З міркувань безпеки перше, що ми повинні зробити, це оновити його до останньої версії.
Щоб переглянути версію ntpd:
ntpd --version
На момент написання статті за замовчуванням встановлена версія «4.2.6p5».
Зупиніть службу ntpd:
service ntpd stop
Завантажте останню версію програми ntp з її офіційного сайту:
wget http://archive.ntp.org/ntp4/ntp-4.2/ntp-4.2.8p2.tar.gz
Розпакуйте і перейдіть у щойно створений каталог:
tar -zxvf ntp-4.2.8p2.tar.gz
cd ntp-4.2.8p2
Встановіть необхідні компоненти для нашого монтажу:
yum -y install gcc libcap-devel
Оскільки ми збираємося оновити існуючу програму ntpd, нам потрібно визначити власника та інформацію про групу:
cat /etc/group
cat /etc/passwd
Як бачите, програма ntp належить власнику ntp (uid=38) і групі ntp (gid=38).
З метою безпеки оновіть конфігурацію облікового запису користувача ntp:
usermod -c "Network Time Protocol" -d /var/lib/ntp -u 38 -g ntp -s /bin/false ntp
Скомпілюйте та встановіть програму 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
Після завершення встановлення ви можете знову перевірити версію ntpd:
ntpd --version
Як бачите, програма ntp була оновлена до останньої версії «4.2.8p2».
Для кращої продуктивності та безпеки нам потрібно змінити конфігурацію за замовчуванням:
vi /etc/ntp.conf
У ntp.conf
файлі конфігурації ви можете знайти сервери ntp, такі як:
server 1.time.constant.com
server 2.time.constant.com
server 3.time.constant.com
Для більшої швидкості синхронізації ви можете змінити ці сервери на сервери в регіоні або навіть у країні вашого центру обробки даних. Наприклад, у Сполучених Штатах ви можете використовувати:
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
Більше серверів часу пулу NTP можна знайти на веб-сайті підтримки NTP .
З міркувань безпеки ми повинні обмежити дозволи. Перебуваючи у ntp.conf
файлі конфігурації, знайдіть наступні два рядки:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
Змініть їх, як показано нижче:
restrict default limited kod nomodify notrap nopeer noquery
restrict -6 default limited kod nomodify notrap nopeer noquery
Крім того, нам потрібно додати наступні два рядки:
pidfile /var/run/ntpd.pid
leapfile /etc/ntp.leapseconds
Збережіть і вийдіть:
:wq
Перезавантажте систему:
reboot
Додайте таке речення до файлу конфігурації iptable /etc/sysconfig/iptables
:
-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
Перезапустіть брандмауер.
service iptables restart
На цьому етапі NTP повністю налаштовано. Програма ntpd буде постійно коригувати час вашого сервера.
За потреби ви можете перевірити стан синхронізації часу за допомогою такої команди:
ntpstat