Chrony NTP Server Nedir?

chrony, Ağ Zaman Protokolünün (NTP) bir uygulamasıdır . NTP'nin referans uygulaması olan ntpd'ye bir alternatiftir . Unix benzeri işletim sistemlerinde ( Linux ve macOS dahil) çalışır ve GNU GPL v2 altında yayınlanır. Red Hat Enterprise Linux 8 ve SUSE Linux Enterprise Server 15'te varsayılan NTP istemcisi ve sunucusudur ve Ubuntu Bionic ile başlayarak , hızlı ve doğru zaman senkronizasyonu için tercih chrony'dir.
Ntpd'nin güncellenmiş bir çatalı olan NTPsec'in aksine , chrony sıfırdan uygulandı. Kesintili ağ bağlantıları ( dizüstü bilgisayarlar gibi ) ve sıkışık ağlar gibi zor koşullarda bile zamanı senkronize etmek için tasarlanmıştır. ntpd'den farklı olarak , sistem saatinin donanım zaman damgası aracılığıyla eşitlenmesini destekleyerek, bir LAN üzerindeki makineler arasındaki zaman eşitlemesinin doğruluğunu artırır. Ayrıca manuel giriş ile senkronizasyonu destekler ve yalıtılmış bir ağ içinde zaman düzeltmesi gerçekleştirebilir. Zamanın doğru tutulması bilgisayarların iletişim kurması, sistem bileşenlerini çalıştırması ve daha fazlası için çok önemlidir ve chrony bu sorunlarınıza yardımcı olabilir.
chrony'nin diğer zaman senkronizasyonu uygulamalarıyla karşılaştırması için chrony sitesine bakabilirsiniz.
Doğru zaman işleyişi, ağ tabanlı bilgisayarlar arasında güvenilir iletişim için gereken en önemli yapılandırmalardan biridir. Ayrıca sistem zamanlayıcıları ve cronjobs dahil olmak üzere sistem bileşenlerinin doğru zamanda çalışmasını sağlamak için gereklidir. Bilgisayarlar, doğru zamanı korumak için zamanlarını bir yukarı akış zaman sunucusuna veya bir sunucu havuzuna senkronize etmek için Ağ Zaman Protokolünü (NTP) kullanabilir. RHEL, chrony paketi tarafından sağlanan chronyd arka plan programı, varsayılan NTP istemcisidir. Alternatif olarak, chronyd arka plan programı, dahili ağınızdaki bilgisayar sistemlerine doğru zaman sağlamak için bir sunucu olarak yapılandırılabilir.
Önemli
UTC+0 kelimesi İngilizce bir kelime olarak bilinmektedir. Açılımı ise 'Universal Time Coordinate' şeklinde yapılmaktadır. Standart zaman başlangıcını ifade etmek için kullanılmakta olan bir kısaltmadır. UTC, Greenwich'de yer alan sıfır derece boylamını esas almaktadır. UTC, eş güdümlü evrensel zaman anlamında kullanılmakta olan bir kelime olarak ifade edilebilir. UTC, İngiltere tabanlı olarak belirlenmiş bir saattir. Türkiye saati ise UTC+3 olarak bilinmektedir.
Bir ntp sunucu kurarken ilk aşamada timezone doğru ayarlamanız gerekmektedir. Aksi halde ntp sunucusunu eşleşme yaparken her zaman UTC+0 baz alacaktır. https://www.ntppool.org/zone gibi ntp sunucuları her zaman UTC+0 baz aldığını bilmekte fayda var. Buda demek oluyor türkiye değil farklı bir sunucuyu seçilse bile eğer timezone doğru ise saatiniz doğru olacaktır. Ancak türkiye'yi seçmek her zaman doğru olandır. Aşağıdaki örnekte fransa sunucusu ayarlandığı halde UTC+0 baz alındığı için saatin doğru olduğunu görebilirsiniz.

Chrony Install
Chrony paketinin en iyi özelliklerinden biri, yetkili bir zaman sunucusunu kolayca yapılandırabilmenizdir. İlk adım olarak, chrony kurulumunu gerçekleştirelim.
[Debian/Ubuntu]
apt -y install chrony
[CentOS/RHEL]
yum -y install chrony

Firewall NTP Hizmetine İzin Verilmesi
Güvenlik duvarını önkoşullarda belirtilen şekilde yapılandırdıysanız, NTP havuzuyla iletişim kurmak için UDP trafiğine izin vermelisiniz.
[Firewalld]
sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload
[UFW]
Güvenlik duvarını önkoşullarda belirtilen şekilde yapılandırdıysanız, 123 bağlantı noktasında NTP havuzuyla iletişim kurmak için UDP trafiğine izin vermelisiniz.
sudo ufw allow 123/udp

Chrony'yi bir NTP sunucusu olarak yapılandırın
Şimdi, sunucunun kendi zaman kaynağını yapılandıralım. NTP havuzu projesi, havuza katılmak isteyen operatörlerden varsayılan sunucuları kullanmak yerine iyi ağ-yerel saat sunucularını seçmelerini ister. pool.ntp.org projesi , NTP Havuz Projesinin güvenilir, hızlı ve sağlıklı kalmasını sağlar. Zaman kaynağınızı seçerken, paket kaybı olmayan ve sunucular arasında mümkün olduğunca az atlama olan istikrarlı bir ağ bağlantısı isteyeceksiniz.
pool.ntp.org projesi güvenilir, kolay kullanılır, milyonlarca kullanıcıya NTP hizmeti veren büyük sanal zaman sunucularının kümesidir. Aşağıdaki link üzerinden türkiye için sunucuları kullanabilirsiniz.
Chrony yapılandırma dosyası ilk olarak yedekleyelim.
sudo cp /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak
Şimdi /etc/chrony/chrony.conf yapılandırma dosyasını editör ile açalım ve sunucu bilgilerini girelim.
sudo vim /etc/chrony/chrony.conf

Yukarıdaki yapılandırma aşağıdaki bilgileri sağlar.
- server/pool – bu direktif, senkronize edilecek bir NTP sunucusunu tanımlamak için kullanılır.
- stratumweight – senkronizasyon kaynağına katman başına ne kadar mesafe eklenmesi gerektiği. Varsayılan değer 0.0001'dir .
- driftfile – sürüklenme verilerini içeren dosyanın konumu ve adı.
- Makestep – bu yönerge, krony'nin saati gerektiği gibi hızlandırarak veya yavaşlatarak herhangi bir zaman farkını kademeli olarak düzeltmesine neden olur.
- logdir – chrony'nin günlük dosyasına giden yol.
Ek olarak allow yönergesi , NTP istemcilerinin bilgisayara bir NTP sunucusu olarak erişmesine izin verilen belirli bir alt ağı belirlemek için kullanılır. Sunucuda NTS etkinleştirildiğinde, NTS-KE istemcilerinin erişimini de denetler. Varsayılan ayar, hiçbir istemcinin erişimine izin verilmemesidir, yani chronyd yalnızca bir NTP istemcisi olarak çalışır. allow yönergesi kullanılırsa , chronyd hem sunucularının istemcisi hem de diğer istemcilerin sunucusu olacaktır.
Direktifin kullanımına ilişkin örnekler aşağıdaki gibidir.
Aşağıdaki örnek, allow yönergesini 192.168.0.0/24 alt ağından bağlantıları kabul edecek şekilde yapılandırır.
allow 192.168.0.0/24
Aşağıdaki örnek, allow yönergesini tüm ipv4 ve ipv6 ağından bağlantıları kabul edecek şekilde yapılandırabilirsiniz.
allow 0/0
allow ::/0
deny yönergesi, allow yönergesine benzer , ancak NTP ve NTS-KE istemcisinin belirli bir alt ağa veya ana bilgisayara erişimine izin vermek yerine onu reddetmesini sağlar. Sözdizimi aynıdır ve yönerge birden çok kez kullanılabilir. Aşağıdaki örnek, deny yönergesini 192.168.0.0/24 alt ağından bağlantıları red edecek şekilde yapılandırır.
deny 192.168.0.0/24
Aşağıdaki örnek, deny yönergesini tüm ipv4 ve ipv6 ağından bağlantıları red edecek şekilde yapılandırabilirsiniz.
deny 0/0
deny ::/0
NTP sunucusu ile senkron olmasını istediğiniz, ip aralıklarını girin.

Zaman kaynağını yapılandırdıktan, allow yönergesini ekledikten sonra son olarak chronyd hizmetini etkinleştirim ve yeniden başlattın.
sudo systemctl enable chrony
sudo systemctl restart chrony

Artık client tarafında ntp sunucunuzun FQDN veya IP adresini gösterebilirsiniz.