introduzione
Per gli amministratori dei server, è importante impostare e mantenere correttamente l'ora sui server. Il tempo configurato in modo errato causerà caos all'interno dell'ambiente server, come incoerenza dei dati, errori di sincronizzazione dei dati e problemi di pianificazione dei lavori.
Per evitare questi problemi indesiderati, in primo luogo, è necessario impostare un fuso orario ragionevole sul server, fornendo al server un orario locale relativamente preciso. In secondo luogo, ai fini della comunicazione, è anche possibile utilizzare NTP (Network Time Protocol) per sincronizzare l'ora dei server e dei server NTP remoti, mantenendo l'ora sui computer in perfetto ordine.
In questo articolo, ti mostrerò come impostare il fuso orario e come sincronizzare l'ora usando NTP su un server CentOS 6 x64.
Prerequisiti
Presumo che tu abbia distribuito da zero un'istanza del server Vultr CentOS 6 x64 e abbia effettuato l'accesso come root.
Passaggio 1: imposta il fuso orario
Inserisci il seguente comando nel tuo terminale:
date
Come vedi, il sistema operativo Vultr CentOS 6 x64 utilizza l'ora UTC per impostazione predefinita. È possibile modificarlo in qualsiasi fuso orario come desiderato, ma è consigliabile utilizzare il fuso orario locale della posizione fisica del server.
Se il nostro server fosse in esecuzione in Cina, utilizzeremmo il fuso orario "Asia / Shanghai":
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
È possibile accedere alla directory /usr/share/zoneinfoper trovare il fuso orario appropriato. C'è una risorsa eccellente su Wikipedia per gli elenchi di fuso orario .
Inserendo datenuovamente, si noterà che l'ora del sistema locale è stata cambiata in CST (China Standard Time) GMT + 0800.
Successivamente, scriveremo le informazioni sull'ora del sistema nell'orologio hardware.
vi /etc/sysconfig/clock
Modifica il contenuto di questo file come di seguito.
ZONE="Asia/Shanghai"
UTC=false
ARC=false
Salva ed esci.
:wq
Scrivi l'ora di sistema nell'orologio hardware.
hwclock --systohc --localtime
Inserisci hwclockper vedere il risultato.
Passaggio 2: aggiornare NTP
Per impostazione predefinita, il programma daemon ntp è stato installato e configurato per essere eseguito sull'istanza del server Vultr CentOS 6 x64. Per motivi di sicurezza, la prima cosa che dovremmo fare è aggiornarlo all'ultima versione.
Per vedere la versione ntpd:
ntpd --version
Al momento della scrittura, la versione installata predefinita è "4.2.6p5".
Interrompere il servizio ntpd:
service ntpd stop
Scarica l'ultima versione del programma ntp dal suo sito ufficiale:
wget http://archive.ntp.org/ntp4/ntp-4.2/ntp-4.2.8p2.tar.gz
Decomprimi e vai nella directory appena creata:
tar -zxvf ntp-4.2.8p2.tar.gz
cd ntp-4.2.8p2
Installa i componenti necessari per la nostra installazione:
yum -y install gcc libcap-devel
Poiché aggiorneremo il programma ntpd esistente, dobbiamo determinare le informazioni sul proprietario e sul gruppo:
cat /etc/group
cat /etc/passwd
Come vedi, il programma ntp appartiene al proprietario ntp (uid = 38) e al gruppo ntp (gid = 38).
Per motivi di sicurezza, aggiorna la configurazione dell'account utente ntp:
usermod -c "Network Time Protocol" -d /var/lib/ntp -u 38 -g ntp -s /bin/false ntp
Compilare e installare il programma 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
Una volta completata l'installazione, è possibile controllare nuovamente la versione ntpd:
ntpd --version
Come vedi, il programma ntp è stato aggiornato all'ultima versione "4.2.8p2".
Per prestazioni e sicurezza migliori, è necessario modificare la configurazione predefinita:
vi /etc/ntp.conf
Nel ntp.conffile di configurazione, puoi trovare i server ntp come:
server 1.time.constant.com
server 2.time.constant.com
server 3.time.constant.com
Per una maggiore velocità di sincronizzazione, è possibile modificare questi server con quelli della regione o persino del paese del centro dati. Ad esempio, negli Stati Uniti, è possibile utilizzare:
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
Altri server time pool NTP sono disponibili sul sito Web di supporto NTP .
Per motivi di sicurezza, dovremmo limitare le autorizzazioni. Mentre sei ancora nel ntp.conffile di configurazione, trova le seguenti due righe:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
Modificali come di seguito:
restrict default limited kod nomodify notrap nopeer noquery
restrict -6 default limited kod nomodify notrap nopeer noquery
Inoltre, dobbiamo aggiungere le seguenti due righe:
pidfile /var/run/ntpd.pid
leapfile /etc/ntp.leapseconds
Salva ed esci:
:wq
Riavvia il sistema:
reboot
Aggiungi la seguente frase al file di configurazione iptable /etc/sysconfig/iptables:
-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
Riavvia il firewall.
service iptables restart
A questo punto, NTP è completamente configurato. Il programma ntpd regola continuamente l'ora del tuo server.
Se necessario, è possibile verificare lo stato della sincronizzazione dell'ora con il comando seguente:
ntpstat