Documentation for a newer release is available. View Latest

Mengonfigurasi NTP Menggunakan ntpd

Pengantar NTP

The Network Time Protocol (NTP) enables the accurate dissemination of time and date information in order to keep the time clocks on networked computer systems synchronized to a common reference over the network or the Internet. Many standards bodies around the world have atomic clocks which may be made available as a reference. The satellites that make up the Global Position System contain more than one atomic clock, making their time signals potentially very accurate. Their signals can be deliberately degraded for military reasons. An ideal situation would be where each site has a server, with its own reference clock attached, to act as a site-wide time server. Many devices which obtain the time and date via low frequency radio transmissions or the Global Position System (GPS) exist. However for most situations, a range of publicly accessible time servers connected to the Internet at geographically dispersed locations can be used. These NTP servers provide "Coordinated Universal Time" (UTC). Information about these time servers can found at www.pool.ntp.org.

Penyimpanan waktu yang akurat penting karena sejumlah alasan dalam TI. Dalam jaringan misalnya, stempel waktu yang akurat dalam paket dan log diperlukan. Log digunakan untuk menyelidiki masalah layanan dan keamanan sehingga stempel waktu yang dibuat pada sistem yang berbeda harus dibuat oleh jam yang disinkronkan agar bernilai nyata. Ketika sistem dan jaringan menjadi semakin cepat, ada kebutuhan yang sesuai untuk jam dengan akurasi dan resolusi yang lebih besar. Di beberapa negara ada kewajiban hukum untuk menjaga jam yang disinkronkan secara akurat. Silakan lihat www.ntp.org untuk informasi lebih lanjut. Dalam sistem Linux, NTP diimplementasikan oleh daemon yang berjalan di ruang pengguna. Daemon ruang pengguna NTP baku di 29 adalah chronyd. Itu harus dinonaktifkan jika Anda ingin menggunakan daemon ntpd. Lihat Mengonfigurasi NTP Memakai Keluarga chrony untuk informasi tentang chrony.

The user space daemon updates the system clock, which is a software clock running in the kernel. Linux uses a software clock as its system clock for better resolution than the typical embedded hardware clock referred to as the "Real Time Clock" (RTC). See the rtc(4) and hwclock(8) man pages for information on hardware clocks. The system clock can keep time by using various clock sources. Usually, the Time Stamp Counter (TSC) is used. The TSC is a CPU register which counts the number of cycles since it was last reset. It is very fast, has a high resolution, and there are no interrupts. On system start, the system clock reads the time and date from the RTC. The time kept by the RTC will drift away from actual time by up to 5 minutes per month due to temperature variations. Hence the need for the system clock to be constantly synchronized with external time references. When the system clock is being synchronized by ntpd, the kernel will in turn update the RTC every 11 minutes automatically.

Strata NTP

Server NTP diklasifikasikan menurut jarak sinkronisasinya dari jam atom yang merupakan sumber sinyal waktu. Server dianggap diatur berlapis-lapis, atau strata, dari 1 di atas ke bawah hingga 15. Oleh karena itu kata stratum digunakan ketika mengacu pada lapisan tertentu. Jam atom disebut sebagai Stratum 0 karena ini adalah sumbernya, tetapi tidak ada paket Stratum 0 yang dikirim di Internet, semua jam atom stratum 0 melekat pada server yang disebut sebagai stratum 1. Server ini mengirimkan paket yang ditandai sebagai Stratum 1. Server yang disinkronkan melalui paket bertanda stratum n milik strata berikutnya yang lebih rendah, dan akan menandai paketnya sebagai stratum n+1. Server dari strata yang sama dapat bertukar paket satu sama lain tetapi masih ditetapkan sebagai milik hanya satu stratum, stratum satu di bawah referensi terbaik yang disinkronkan. Penunjukan Stratum 16 digunakan untuk menunjukkan bahwa server saat ini tidak disinkronkan ke sumber waktu yang dapat diandalkan.

Perhatikan bahwa secara baku klien NTP bertindak sebagai server untuk sistem dengan strata di bawahnya.

Berikut adalah ringkasan dari Strata NTP:

Stratum 0

Jam Atom dan sinyalnya disiarkan melalui Radio dan GPS

  • GPS (Global Positioning System)

  • Sistem Telepon Seluler

  • Siaran Radio Frekuensi Rendah+ WWVB (Colorado, AS.), JJY-40 dan JJY-60 (Jepang), DCF77 (Jerman), dan MSF (Inggris Raya)

    Sinyal-sinyal ini dapat diterima oleh perangkat khusus dan biasanya dihubungkan oleh RS-232 ke sistem yang digunakan sebagai server waktu organisasi atau seluruh situs.

Stratum 1

Komputer dengan jam radio, jam GPS, atau jam atom terpasang

Stratum 2

Membaca dari stratum 1; Melayani strata yang lebih rendah

Stratum 3

Membaca dari stratum 2; Melayani strata yang lebih rendah

Stratum n+1

Membaca dari stratum n{blank}; Melayani ke strata yang lebih rendah

Stratum 15

Membaca dari stratum 14; Ini adalah strata terendah.

Proses ini berlanjut hingga Stratum 15 yang merupakan stratum valid terendah. Label Stratum 16 digunakan untuk menunjukkan keadaan yang tidak disinkronkan.

Memahami NTP

Implementasi NTP ini memungkinkan akurasi sub-detik tercapai. Melalui Internet, akurasi hingga puluhan milidetik adalah normal. Pada Jaringan Area Lokal (LAN), akurasi 1 ms dimungkinkan dalam kondisi ideal. Ini karena penyimpangan jam sekarang diperhitungkan dan diperbaiki, yang tidak dilakukan dalam sistem protokol waktu versi lebih awal yang lebih sederhana. Resolusi 233 picoseconds disediakan dengan menggunakan stempel waktu 64-bit. 32-bit pertama dari stempel waktu digunakan untuk detik, 32-bit terakhir digunakan untuk pecahan detik.

NTP represents the time as a count of the number of seconds since 00:00 (midnight) 1 January, 1900 GMT. As 32-bits is used to count the seconds, this means the time will "roll over" in 2036. However NTP works on the difference between time stamps so this does not present the same level of problem as other implementations of time protocols have done. If a hardware clock that is within 68 years of the correct time is available at boot time then NTP will correctly interpret the current date. The NTP4 specification provides for an "Era Number" and an "Era Offset" which can be used to make software more robust when dealing with time lengths of more than 68 years. Note, please do not confuse this with the Unix Year 2038 problem.

The NTP protocol provides additional information to improve accuracy. Four time stamps are used to allow the calculation of round-trip time and server response time. In order for a system in its role as NTP client to synchronize with a reference time server, a packet is sent with an "originate time stamp". When the packet arrives, the time server adds a "receive time stamp". After processing the request for time and date information and just before returning the packet, it adds a "transmit time stamp". When the returning packet arrives at the NTP client, a "receive time stamp" is generated. The client can now calculate the total round trip time and by subtracting the processing time derive the actual traveling time. By assuming the outgoing and return trips take equal time, the single-trip delay in receiving the NTP data is calculated. The full NTP algorithm is much more complex than presented here.

When a packet containing time information is received it is not immediately responded to, but is first subject to validation checks and then processed together with several other time samples to arrive at an estimate of the time. This is then compared to the system clock to determine the time offset, the difference between the system clock’s time and what ntpd has determined the time should be. The system clock is adjusted slowly, at most at a rate of 0.5ms per second, to reduce this offset by changing the frequency of the counter being used. It will take at least 2000 seconds to adjust the clock by 1 second using this method. This slow change is referred to as slewing and cannot go backwards. If the time offset of the clock is more than 128ms (the default setting), ntpd can "step" the clock forwards or backwards. If the time offset at system start is greater than 1000 seconds then the user, or an installation script, should make a manual adjustment. See Configuring the Date and Time. With the -g option to the ntpd command (used by default), any offset at system start will be corrected, but during normal operation only offsets of up to 1000 seconds will be corrected.

Beberapa perangkat lunak mungkin gagal atau menghasilkan kesalahan jika waktu diubah mundur. Untuk sistem yang sensitif terhadap perubahan langkah dalam waktu, ambang batas dapat diubah menjadi 600 detik, bukan 128ms menggunakan opsi -x (tidak terkait dengan opsi -g). Menggunakan opsi -x untuk meningkatkan batas loncatan dari 0,128 detik menjadi 600 detik memiliki kelemahan karena metode pengendalian jam yang berbeda harus digunakan. Ini menonaktifkan disiplin jam kernel dan mungkin memiliki dampak negatif pada akurasi jam. Opsi -x dapat ditambahkan ke berkas konfigurasi /etc/sysconfig/ntpd.

Memahami Berkas Drift

Berkas drift digunakan untuk menyimpan ofset frekuensi antara jam sistem yang berjalan pada frekuensi nominalnya dan frekuensi yang diperlukan untuk tetap sinkron dengan UTC. Jika ada, nilai yang terkandung dalam berkas drift dibaca pada awal sistem dan digunakan untuk memperbaiki sumber jam. Penggunaan berkas drift mengurangi waktu yang dibutuhkan untuk mencapai waktu yang stabil dan akurat. Nilainya dihitung, dan berkas drift diganti, sekali per jam dengan ntpd. Berkas drift diganti, bukan hanya diperbarui, dan untuk alasan ini berkas drift harus berada di direktori di mana ntpd memiliki izin tulis.

UTC, Zona Waktu, dan DST

Karena NTP sepenuhnya ada di UTC (Universal Time, Coordinated), Timezone dan DST (Daylight Saving Time) diterapkan secara lokal oleh sistem. Berkas /etc/localtime adalah salinan, atau symlink ke, berkas informasi zona dari /usr/share/zoneinfo. RTC mungkin dalam waktu lokal atau dalam UTC, sebagaimana ditentukan oleh baris ke-3 /etc/adjtime, yang akan menjadi salah satu LOKAL atau UTC untuk menunjukkan bagaimana jam RTC telah diatur. Pengguna dapat dengan mudah mengubah pengaturan ini menggunakan kotak centang System Clock Uses UTC di alat konfigurasi grafis Tanggal dan Waktu. Lihat Mengonfigurasi Tanggal dan Waktu untuk informasi tentang cara menggunakan alat tersebut. Menjalankan RTC di UTC disarankan untuk menghindari berbagai masalah ketika daylight saving time diubah.

Pengoperasian ntpd dijelaskan secara lebih rinci di halaman man ntpd(8). Bagian sumber daya mencantumkan sumber informasi yang berguna. Lihat Sumber Daya Tambahan.

Opsi Autentikasi untuk NTP

NTPv4 menambahkan dukungan untuk Arsitektur Keamanan Autokey, yang didasarkan pada kriptografi asimetris publik sambil mempertahankan dukungan untuk kriptografi kunci simetris. Arsitektur Keamanan Autokey dijelaskan dalam RFC 5906 Network Time Protocol Version 4: Autokey Specification. Halaman manual ntp_auth(5) menjelaskan opsi dan perintah otentikasi untuk ntpd.

Penyerang di jaringan dapat mencoba mengganggu layanan dengan mengirim paket NTP dengan informasi waktu yang salah. Pada sistem yang menggunakan kumpulan publik server NTP, risiko ini dikurangi dengan memiliki lebih dari tiga server NTP dalam daftar server NTP publik di /etc/ntp.conf. Jika hanya satu kali sumber yang terkompromi atau dipalsukan, ntpd akan mengabaikan sumber itu. Anda harus melakukan penilaian risiko dan mempertimbangkan dampak waktu yang salah pada aplikasi dan organisasi Anda. Jika Anda memiliki sumber waktu internal, Anda harus mempertimbangkan langkah-langkah untuk melindungi jaringan tempat paket NTP didistribusikan. Jika Anda melakukan penilaian risiko dan menyimpulkan bahwa risikonya dapat diterima, dan dampaknya terhadap aplikasi Anda minimal, maka Anda dapat memilih untuk tidak menggunakan otentikasi.

Mode broadcast dan multicast memerlukan otentikasi secara baku. Jika Anda telah memutuskan untuk mempercayai jaringan maka Anda dapat menonaktifkan otentikasi dengan menggunakan direktif disable auth dalam berkas ntp.conf. Atau, otentikasi perlu dikonfigurasi dengan menggunakan kunci simetris SHA1 atau MD5, atau oleh kriptografi kunci publik (asimetris) menggunakan skema Autokey. Skema Autokey untuk kriptografi asimetris dijelaskan di halaman man ntp_auth(8) dan pembuatan kunci dijelaskan dalam ntp-keygen(8). Untuk menerapkan kriptografi kunci simetris, lihat Mengonfigurasi Otentikasi Simetrik Memakai suatu Kunci untuk penjelasan tentang opsi key.

Mengelola Waktu di Mesin Virtual

Mesin virtual tidak dapat mengakses jam perangkat keras nyata dan jam virtual tidak cukup stabil karena stabilitasnya tergantung pada beban kerja sistem host. Untuk alasan ini, jam para-virtualisasi harus disediakan oleh aplikasi virtualisasi yang digunakan (untuk informasi lebih lanjut lihat Pewaktu yang Dikelola Libvirt di Panduan_ Administrasi Virtualisasi). Pada Fedora dengan KVM sumber jam baku adalah kvm-clock. Lihat bab [citetitle]_Manajemen pewaktuan guest KVM dari Panduan Konfigurasi Host Virtualisasi dan Instalasi Guest.

Memahami Detik Leap

Greenwich Mean Time (GMT) diturunkan dengan mengukur hari matahari, yang bergantung pada rotasi Bumi. Ketika jam atom pertama kali dibuat, potensi definisi waktu yang lebih akurat menjadi mungkin. Pada tahun 1958, Waktu Atom Internasional (TAI) diperkenalkan berdasarkan jam atom yang lebih akurat dan sangat stabil. Waktu astronomi yang lebih akurat, Universal Time 1 (UT1), juga diperkenalkan untuk menggantikan GMT. Jam atom sebenarnya jauh lebih stabil daripada rotasi Bumi sehingga kedua jam tersebut mulai terpisah. Untuk alasan ini UTC diperkenalkan sebagai ukuran praktis. Itu disimpan dalam satu detik dari UT1 tetapi untuk menghindari membuat banyak penyesuaian sepele kecil, diputuskan untuk memperkenalkan konsep leap second untuk mendamaikan perbedaan dengan cara yang dapat dikelola. Perbedaan antara UT1 dan UTC dipantau sampai mereka terpisah lebih dari setengah detik. Kemudian hanya dianggap perlu untuk memperkenalkan penyesuaian satu detik, maju atau mundur. Karena sifat kecepatan rotasi Bumi yang tidak menentu, kebutuhan akan penyesuaian tidak dapat diprediksi jauh ke masa depan. Keputusan kapan harus melakukan penyesuaian dibuat oleh International Earth Rotation and Reference Systems Service (IERS). Namun, pengumuman ini penting hanya untuk administrator server Stratum 1 karena NTP mentransmisikan informasi tentang detik leap yang tertunda dan menerapkannya secara otomatis.

Memahami Berkas Konfigurasi ntpd

Daemon, ntpd, membaca berkas konfigurasi saat sistem dimulai atau ketika layanan dimulai ulang. Lokasi baku untuk berkas adalah /etc/ntp.conf dan Anda dapat melihat berkas dengan memasukkan perintah berikut:

~]$ less /etc/ntp.conf

Perintah konfigurasi dijelaskan secara singkat nanti dalam bab ini, lihat Mengonfigurasi NTP, dan secara lebih rinci di halaman man ntp.conf(5).

Berikut penjelasan singkat mengenai isi berkas konfigurasi baku:

Entri driftfile

Suatu path ke berkas drift ditentukan, entri baku pada Fedora adalah:

driftfile /var/lib/ntp/drift

Jika Anda mengubah ini, pastikan direktori dapat ditulis oleh ntpd. Berkas berisi satu nilai yang digunakan untuk menyesuaikan frekuensi jam sistem setelah setiap sistem atau layanan dimulai. Lihat Memahami Berkas Drift untuk informasi lebih lanjut.

Entri kontrol akses

Baris berikut menetapkan pembatasan kontrol akses baku:

restrict default nomodify notrap nopeer noquery
  • Opsi nomodify mencegah perubahan apa pun pada konfigurasi.

  • Opsi notrap mencegah perangkap protokol pesan kontrol ntpdc.

  • Opsi nopeer mencegah asosiasi peer dibentuk.

  • Opsi noquery mencegah kueri ntpq dan ntpdc, tetapi bukan kueri waktu, dijawab.

Kueri ntpq dan ntpdc dapat digunakan dalam serangan amplifikasi, oleh karena itu jangan hapus opsi noquery dari perintah restrict default pada sistem yang dapat diakses publik.

Lihat CVE-2013-5211 untuk lebih jelasnya.

Addresses within the range 127.0.0.0/8 are sometimes required by various processes or applications. As the "restrict default" line above prevents access to everything not explicitly allowed, access to the standard loopback address for IPv4 and IPv6 is permitted by means of the following lines:

# the administrative functions.
restrict 127.0.0.1
restrict ::1

Alamat dapat ditambahkan di bawahnya jika secara khusus diperlukan oleh aplikasi lain.

Hosts on the local network are not permitted because of the "restrict default" line above. To change this, for example to allow hosts from the 192.0.2.0/24 network to query the time and statistics but nothing more, a line in the following format is required:

restrict 192.0.2.0 mask 255.255.255.0 nomodify notrap nopeer

Untuk mengizinkan akses tidak terbatas dari host tertentu, misalnya 192.0.2.250/32, baris dalam format berikut diperlukan:

restrict 192.0.2.250

Mask 255.255.255.255 diterapkan jika tidak ada yang ditentukan.

Perintah pembatasan dijelaskan di halaman manual ntp_acc(5).

Entri server publik

Secara baku, berkas ntp.conf berisi empat entri server publik:

server 0.fedora.pool.ntp.org iburst
server 1.fedora.pool.ntp.org iburst
server 2.fedora.pool.ntp.org iburst
server 3.fedora.pool.ntp.org iburst
Entri server multicast broadcast

Secara baku, berkas ntp.conf berisi beberapa contoh yang dikomentari. Ini sebagian besar cukup jelas. Lihat Mengonfigurasi NTP untuk penjelasan perintah tertentu. Jika diperlukan, tambahkan perintah Anda tepat di bawah contoh.

Ketika program klien DHCP, dhclient, menerima daftar server NTP dari server DHCP, ia menambahkannya ke ntp.conf dan memulai ulang layanan. Untuk menonaktifkan fitur itu, tambahkan PEERNTP=no ke /etc/sysconfig/network.

Memahami Berkas Sysconfig ntpd

Berkas akan dibaca oleh skrip init ntpd pada layanan dimulai. Konten baku adalah sebagai berikut:

# Command line options for ntpd
OPTIONS="-g"

Opsi -g memungkinkan ntpd untuk mengabaikan batas ofset 1000 detik dan mencoba menyinkronkan waktu meskipun ofset lebih dari 1000 detik, tetapi hanya pada start sistem. Tanpa opsi itu ntpd akan keluar jika ofset waktu lebih besar dari 1000 detik. Ini juga akan keluar setelah sistem dimulai jika layanan dimulai ulang dan ofset lebih besar dari 1000 detik bahkan dengan opsi -g.

Menonaktifkan chrony

Untuk menggunakan ntpd, daemon baku ruang pengguna, chronyd, harus dihentikan dan dinonaktifkan. Jalankan perintah berikut sebagai root:

~]# systemctl stop chronyd

Untuk mencegahnya restart saat sistem mulai berjalan, jalankan perintah berikut sebagai root:

~]# systemctl disable chronyd

Untuk memeriksa status chronyd, jalankan perintah berikut:

~]$ systemctl status chronyd

Memeriksa apakah Daemon NTP Terpasang

Untuk memeriksa apakah ntpd terpasang, jalankan perintah berikut sebagai root:

~]# dnf install ntp

NTP diimplementasikan melalui daemon atau layanan ntpd, yang terkandung dalam paket ntp.

Memasang Daemon NTP (ntpd)

Untuk memasang ntpd, jalankan perintah berikut sebagai root:

~]# dnf install ntp

Untuk mengaktifkan ntpd saat sistem mulai berjalan, jalankan perintah berikut sebagai root:

~]# systemctl enable ntpd

Memeriksa Status NTP

Untuk memeriksa apakah ntpd berjalan dan dikonfigurasi untuk dijalankan pada awal sistem, jalankan perintah berikut:

~]$ systemctl status ntpd

Untuk mendapatkan laporan status singkat dari ntpd, jalankan perintah berikut:

~]$ ntpstat
unsynchronised
  time server re-starting
   polling server every 64 s
~]$ ntpstat
synchronised to NTP server (10.5.26.10) at stratum 2
   time correct to within 52 ms
   polling server every 1024 s

Mengonfigurasi Firewall agar Mengizinkan Paket NTP Masuk

Lalu lintas NTP terdiri dari paket UDP pada port 123 dan perlu diizinkan melalui firewall berbasis jaringan dan host agar NTP berfungsi.

Periksa apakah firewall dikonfigurasi untuk memungkinkan lalu lintas NTP masuk untuk klien menggunakan alat grafis Konfigurasi Firewall.

Untuk memulai alat grafis firewall-config, tekan tombol Super untuk masuk Ringkasan Aktivitas, ketik firewall lalu tekan Enter. Jendela Konfigurasi Firewall terbuka. Anda akan dimintai kata sandi pengguna Anda.

Untuk memulai alat konfigurasi firewall grafis menggunakan baris perintah, masukkan perintah berikut sebagai pengguna root:

~]# firewall-config

Jendela Konfigurasi Firewall terbuka. Catatan, perintah ini dapat dijalankan sebagai pengguna normal tetapi Anda kemudian akan dimintai kata sandi root dari waktu ke waktu.

Cari kata "Tersambung" di pojok kiri bawah. Ini menunjukkan bahwa alat firewall-config terhubung ke daemon ruang pengguna, firewalld.

Ubah Pengaturan Firewall

Untuk segera mengubah pengaturan firewall saat ini, pastikan menu pemilihan drop-down berlabel Konfigurasi diatur ke Runtime. Atau, untuk mengedit pengaturan yang akan diterapkan pada awal sistem berikutnya, atau memuat ulang firewall, pilih Permanen dari daftar drop-down.

Saat membuat perubahan pada pengaturan firewall dalam mode Runtime, pilihan Anda langsung berlaku saat Anda mengatur atau mengosongkan kotak centang yang terkait dengan layanan. Anda harus mengingat hal ini saat bekerja pada sistem yang mungkin digunakan oleh pengguna lain.

Saat membuat perubahan pada pengaturan firewall dalam mode Permanen, pilihan Anda hanya akan berlaku saat Anda memuat ulang firewall atau sistem dimulai ulang. Untuk memuat ulang firewall, pilih menu Opsi dan pilih Muat Ulang Firewall.

Membuka Port di Firewall untuk Paket NTP

Untuk mengizinkan lalu lintas melalui firewall ke port tertentu, mulai alat firewall-config dan pilih zona jaringan yang pengaturannya ingin Anda ubah. Pilih tab Port dan kemudian klik tombol Tambah. Jendela Port dan Protokol terbuka.

Masukkan nomor port 123 dan pilih udp dari daftar drop-down.

Mengonfigurasi Server ntpdate

Tujuan dari layanan ntpdate adalah untuk mengatur jam selama boot sistem. Ini digunakan sebelumnya untuk memastikan bahwa layanan yang dimulai setelah ntpdate akan memiliki waktu yang tepat dan tidak mengamati lompatan dalam waktu. Penggunaan ntpdate dan daftar step-ticker dianggap usang sehingga Fedora menggunakan opsi -g untuk perintah ntpd dan bukan ntpdate secara baku.

Layanan ntpdate di Fedora sebagian besar hanya berguna jika digunakan sendiri tanpa ntpd. Dengan systemd, yang memulai layanan secara paralel, mengaktifkan layanan ntpdate tidak akan memastikan bahwa layanan lain yang dimulai setelah itu akan memiliki waktu yang tepat kecuali mereka menentukan ketergantungan pemesanan pada time-sync.target, yang disediakan oleh layanan ntpdate. Layanan ntp-wait (dalam subpaket ntp-perl) menyediakan target time-sync untuk layanan ntpd. Untuk memastikan layanan dimulai dengan waktu yang tepat, tambahkan After=time-sync.target ke layanan dan aktifkan salah satu layanan yang menyediakan target (ntpdate atau sntp, atau ntp-wait jika ntpd diaktifkan). Beberapa layanan di Fedora memiliki ketergantungan yang disertakan secara baku (misalnya, dhcpd, dhcpd6, dan crond).

Untuk memeriksa apakah layanan ntpdate diaktifkan untuk berjalan pada awal sistem, berikan perintah berikut:

~]$ systemctl status ntpdate

Untuk mengaktifkan layanan agar berjalan pada awal sistem, berikan perintah berikut sebagai root:

~]# systemctl enable ntpdate

Di Fedora, berkas baku /etc/ntp/step-tickers berisi 0.fedora.pool.ntp.org. Untuk mengonfigurasi server ntpdate tambahan, menggunakan penyunting teks yang berjalan sebagai root, sunting /etc/ntp/step-tickers. Jumlah server yang terdaftar tidak terlalu penting karena ntpdate hanya akan menggunakan ini untuk mendapatkan informasi tanggal sekali ketika sistem dimulai. Jika Anda memiliki server waktu internal, gunakan nama host tersebut untuk baris pertama. Host tambahan di baris kedua sebagai cadangan masuk akal. Pemilihan server cadangan dan apakah host kedua bersifat internal atau eksternal tergantung pada penilaian risiko Anda. Misalnya, apa kemungkinan masalah yang mempengaruhi server pertama juga mempengaruhi server kedua? Apakah konektivitas ke server eksternal akan lebih mungkin tersedia daripada konektivitas ke server internal jika terjadi kegagalan jaringan yang mengganggu akses ke server pertama?

Mengonfigurasi NTP

Untuk mengubah konfigurasi baku layanan NTP, gunakan penyunting teks yang berjalan sebagai pengguna root untuk menyunting berkas /etc/ntp.conf. Berkas ini dipasang bersama dengan ntpd dan dikonfigurasi untuk menggunakan server waktu dari pool Fedora secara baku. Halaman manual ntp.conf(5) menjelaskan opsi perintah yang dapat digunakan dalam berkas konfigurasi selain dari perintah pembatasan akses dan laju yang dijelaskan di halaman manual ntp_acc(5).

Mengonfigurasi Kontrol Akses ke Layanan NTP

Untuk membatasi atau mengontrol akses ke layanan NTP yang berjalan pada sistem, manfaatkan perintah restrict dalam berkas ntp.conf. Lihat contoh yang komentarnya dihapus:

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

Perintah restrict mengambil bentuk berikut:

restrict option

di mana option adalah satu atau lebih dari:

  • ignore — Semua paket akan diabaikan, termasuk kueri ntpq dan ntpdc.

  • kod — a "Kiss-o'-death" packet is to be sent to reduce unwanted queries.

  • limited — jangan menanggapi permintaan layanan waktu jika paket melanggar nilai baku batas laju atau yang ditentukan oleh perintah discard. Kueri ntpq dan ntpdc tidak terpengaruh. Untuk informasi selengkapnya tentang perintah discard dan nilai baku, lihat Mengonfigurasi Pembatasan Laju Akses ke suatu Layanan NTP.

  • lowpriotrap — perangkap yang ditata dengan mencocokkan host agar menjadi prioritas rendah.

  • nomodify — mencegah perubahan apa pun pada konfigurasi.

  • noquery — mencegah kueri ntpq dan ntpdc, tetapi bukan kueri waktu, dijawab.

  • nopeer — mencegah asosiasi peer dibentuk.

  • noserve — tolak semua paket kecuali kueri ntpq dan ntpdc.

  • notrap — mencegah perangkap protokol pesan kontrol ntpdc.

  • notrust — menolak paket yang tidak diotentikasi secara kriptografis.

  • ntpport — memodifikasi algoritma pencocokan untuk hanya menerapkan pembatasan jika port sumber adalah port NTP UDP standar 123.

  • version — menolak paket yang tidak cocok dengan versi NTP saat ini.

Untuk mengonfigurasi batas laju akses agar tidak merespons kueri sama sekali, perintah restrict masing-masing harus memiliki opsi limited. Jika ntpd harus membalas dengan paket KoD, perintah restrict harus memiliki opsi limited dan kod.

Kueri ntpq dan ntpdc dapat digunakan dalam serangan amplifikasi (lihat CVE-2013-5211 untuk lebih jelasnya), jangan hapus opsi noquery dari perintah restrict default pada sistem yang dapat diakses publik.

Mengonfigurasi Pembatasan Laju Akses ke Layanan NTP

Untuk memfungsikan pembatasan laju akses ke layanan NTP yang berjalan pada sistem, tambahkan opsi limited ke perintah restrict seperti yang dijelaskan dalam Mengonfigurasi Kendali Akses ke suatu Layanan NTP. Jika Anda tidak ingin menggunakan parameter buang yang baku, maka gunakan juga perintah discard seperti yang dijelaskan di sini.

Perintah discard mengambil bentuk berikut:

discard average value minimum value monitor value
  • average — menentukan jarak paket rata-rata minimum yang akan diizinkan, ia menerima argumen dalam log2 detik. Nilai defaultnya adalah 3 (23 sama dengan 8 detik).

  • minimum — menentukan jarak paket minimum yang akan diizinkan, ia menerima argumen dalam log2 detik. Nilai bakunya adalah 1 (21 sama dengan 2 detik).

  • monitor — menentukan probabilitas buang untuk paket setelah batas laju yang diizinkan terlampaui. Nilai baku adalah 3000 detik. Opsi ini ditujukan untuk server yang menerima 1000 permintaan atau lebih per detik.

Contoh perintah discard adalah sebagai berikut:

discard average 4
discard average 4 minimum 2

Menambahkan Alamat Peer

Untuk menambahkan alamat peer, artinya, alamat server yang menjalankan layanan NTP dari stratum yang sama, manfaatkan perintah peer dalam berkas ntp.conf.

Perintah peer mengambil bentuk berikut:

peer address

di mana address adalah alamat unicast IP atau nama DNS yang dapat di-resolve. Alamatnya hanya boleh dari sistem yang diketahui sebagai anggota dari stratum yang sama. Peer harus memiliki setidaknya satu sumber waktu yang berbeda satu sama lain. Peer biasanya berada di bawah kendali administratif yang sama.

Menambahkan Alamat Server

Untuk menambahkan alamat server, artinya, alamat server yang menjalankan layanan NTP dari stratum yang lebih tinggi, manfaatkan perintah server dalam berkas ntp.conf.

Perintah server mengambil bentuk berikut:

server address

di mana address adalah alamat unicast IP atau nama DNS yang dapat di-resolve. Alamat server acuan jarak jauh atau jam referensi lokal dari mana paket akan diterima.

Menambahkan Alamat Server Broadcast atau Multicast

Untuk menambahkan alamat broadcast atau multicast untuk pengiriman, artinya, alamat tujuan broadcast atau multicast paket NTP, gunakan perintah broadcast dalam berkas ntp.conf.

Mode broadcast dan multicast memerlukan autentikasi secara baku. Lihat Opsi Autentikasi untuk NTP.

Perintah broadcast mengambil bentuk berikut:

broadcast address

di mana address adalah alamat IP broadcast atau multicast tujuan paket dikirim.

Perintah ini mengonfigurasi sistem untuk bertindak sebagai server broadcast NTP. Alamat yang digunakan harus berupa alamat broadcast atau multicast. Alamat broadcast menyiratkan alamat IPv4 255.255.255.255. Secara baku, router tidak meneruskan pesan broadcast. Alamat multicast dapat berupa alamat Kelas D IPv4, atau alamat IPv6. IANA telah menetapkan alamat multicast IPv4 224.0.1.1 dan alamat IPv6 FF05::101 (situs lokal) ke NTP. Alamat multicast IPv4 yang tercakup secara administratif juga dapat digunakan, seperti yang dijelaskan dalam RFC 2365 Administratively Scoped IP Multicast.

Menambahkan Alamat Klien Manycast

Untuk menambahkan alamat klien manycast, artinya, untuk mengonfigurasi alamat multicast yang akan digunakan untuk penemuan server NTP, manfaatkan perintah manycastclient dalam berkas ntp.conf.

Perintah manycastclient mengambil bentuk berikut:

manycastclient address

di mana address adalah alamat multicast IP dari mana paket akan diterima. Klien akan mengirim permintaan ke alamat tersebut dan memilih server terbaik dari respons dan mengabaikan server lain. Komunikasi NTP kemudian menggunakan asosiasi unicast, seolah-olah server NTP yang ditemukan terdaftar di ntp.conf.

Perintah ini mengonfigurasi sistem untuk bertindak sebagai klien NTP. Sistem dapat berupa klien dan server secara bersamaan.

Menambahkan Alamat Klien Broadcast

Untuk menambahkan alamat klien broadcast, artinya, untuk mengonfigurasi alamat broadcast yang akan dipantau untuk paket broadcast NTP, manfaatkan perintah broadcastclient dalam berkas ntp.conf.

Perintah broadcastclient mengambil bentuk berikut:

broadcastclient

Memungkinkan penerimaan pesan broadcast. Memerlukan autentikasi secara baku. Lihat Opsi Authentication bagi NTP.

Perintah ini mengonfigurasi sistem untuk bertindak sebagai klien NTP. Sistem dapat berupa klien dan server secara bersamaan.

Menambahkan Alamat Server Manycast

Untuk menambahkan alamat server manycast, artinya, untuk mengonfigurasi alamat untuk memungkinkan klien menemukan server dengan multicasting paket NTP, gunakan perintah manycastserver dalam berkas ntp.conf.

Perintah manycastserver mengambil bentuk berikut:

manycastserver address

Memungkinkan pengiriman pesan multicast. Di mana address adalah alamat untuk multicast ke. Ini harus digunakan bersama dengan otentikasi untuk mencegah gangguan layanan.

Perintah ini mengonfigurasi sistem untuk bertindak sebagai server NTP. Sistem dapat berupa klien dan server secara bersamaan.

Menambahkan Alamat Klien Multicast

Untuk menambahkan alamat klien multicast, artinya, untuk mengonfigurasi alamat multicast yang akan dipantau untuk paket multicast NTP, manfaatkan perintah multicastclient dalam berkas ntp.conf.

Perintah multicastclient mengambil bentuk berikut:

multicastclient address

Memungkinkan penerimaan pesan multicast. Di mana address adalah alamat untuk berlangganan. Ini harus digunakan bersama dengan otentikasi untuk mencegah gangguan layanan.

Perintah ini mengonfigurasi sistem untuk bertindak sebagai klien NTP. Sistem dapat berupa klien dan server secara bersamaan.

Mengonfigurasi Opsi Burst

Menggunakan opsi burst terhadap server publik dianggap sebagai penyalahgunaan. Jangan gunakan opsi ini dengan server NTP publik. Gunakan hanya untuk aplikasi dalam organisasi Anda sendiri.

Untuk meningkatkan kualitas rata-rata dari statistik ofset waktu, tambahkan opsi berikut ke akhir perintah server:

burst

Pada setiap interval poll, ketika server merespons, sistem akan mengirim rentetan hingga delapan paket, bukan paket biasa. Untuk digunakan dengan perintah server untuk meningkatkan kualitas rata-rata perhitungan ofset waktu.

Mengonfigurasi Opsi iburst

Untuk memperbaiki waktu yang dibutuhkan untuk sinkronisasi awal, tambahkan opsi berikut ke akhir perintah server:

iburst

Pada setiap interval poll, kirim rentetan delapan paket, bukan satu. Ketika server tidak merespons, paket-paket dikirim berjarak 16 detik. Ketika server merespons, paket dikirim setiap 2 detik. Untuk digunakan dengan perintah server untuk mengurangi waktu yang dibutuhkan untuk sinkronisasi awal. Ini sekarang menjadi opsi baku dalam berkas konfigurasi.

Mengonfigurasi Otentikasi Simetris Menggunakan Kunci

Untuk mengonfigurasi otentikasi simetris menggunakan kunci, tambahkan opsi berikut ke akhir perintah server atau peer:

key number

di mana number berada dalam rentang 1 hingga 65534 inklusif. Opsi ini memungkinkan penggunaan message authentication code (MAC) dalam paket. Opsi ini untuk digunakan dengan perintah peer, server, broadcast, dan manycastclient.

Opsi ini dapat digunakan dalam berkas /etc/ntp.conf sebagai berikut:

server 192.168.1.1 key 10
broadcast 192.168.1.255 key 20
manycastclient 239.255.254.254 key 30

Mengonfigurasi Interval Poll

Untuk mengubah interval poll baku, tambahkan opsi berikut ke akhir perintah server atau peer:

minpoll value and maxpoll value

Opsi untuk mengubah interval poll default, di mana interval dalam detik akan dihitung sebagai 2 pangkat value, dengan kata lain, interval dinyatakan dalam log2 detik. Nilai baku minpoll adalah 6, 26 sama dengan 64 detik. Nilai baku untuk maxpoll adalah 10, yang setara dengan 1024 detik. Nilai yang diizinkan berada dalam rentang 3 hingga 17 inklusif, yang masing-masing setara dengan 8 detik hingga 36,4 jam. Opsi ini untuk digunakan dengan peer atau server. Mengatur [opsi] maxpoll yang lebih pendek dapat meningkatkan akurasi jam.

Mengonfigurasi Preferensi Server

Untuk menentukan bahwa server tertentu harus lebih disukai di atas yang lain dengan kualitas statistik yang sama, tambahkan opsi berikut ke akhir perintah server atau peer:

prefer

Gunakan server ini untuk sinkronisasi dalam preferensi ke server lain dengan kualitas statistik yang sama. Opsi ini untuk digunakan dengan perintah peer atau server.

Mengkonfigurasi Time-to-Live untuk Paket NTP

Untuk menentukan bahwa nilai time-to-live (TTL) tertentu harus digunakan sebagai pengganti nilai baku, tambahkan opsi berikut ke akhir perintah server atau peer:

ttl value

Specify the time-to-live value to be used in packets sent by broadcast servers and multicast NTP servers. Specify the maximum time-to-live value to use for the "expanding ring search" by a manycast client. The default value is 127.

Mengonfigurasi Versi NTP yang Dipakai

Untuk menentukan bahwa versi tertentu dari NTP harus digunakan sebagai pengganti nilai baku, tambahkan opsi berikut ke akhir perintah server atau peer:

version value

Tentukan versi NTP yang diatur dalam paket NTP yang dibuat. Nilainya bisa dalam rentang 1 hingga 4. Bakunya adalah 4.

Mengonfigurasi Pembaruan Jam Perangkat Keras

Untuk mengonfigurasi jam sistem agar memperbarui jam perangkat keras, juga dikenal sebagai jam real-time (RTC), sekali setelah menjalankan ntpdate, tambahkan baris berikut ke /etc/sysconfig/ntpdate:

SYNC_HWCLOCK=yes

Untuk memperbarui jam perangkat keras dari jam sistem, keluarkan perintah berikut sebagai root:

~]# hwclock --systohc

Ketika jam sistem sedang disinkronkan oleh ntpd atau chronyd, kernel pada gilirannya akan memperbarui RTC setiap 11 menit secara otomatis.

Mengkonfigurasi Sumber Jam

Untuk mencantumkan sumber jam yang tersedia di sistem Anda, keluarkan perintah berikut:

~]$ cd /sys/devices/system/clocksource/clocksource0/
clocksource0]$ cat available_clocksource
kvm-clock tsc hpet acpi_pm
clocksource0]$ cat current_clocksource
kvm-clock

Dalam contoh di atas, kernel menggunakan kvm-clock. Ini dipilih pada saat boot karena ini adalah mesin virtual.

Untuk menimpa sumber jam baku, tambahkan direktif clocksource ke baris GRUB_CMDLINE_LINUX di berkas /etc/default/grub dan buat ulang berkas grub.cfg. Misalnya:

GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/root crashkernel=auto  rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rhgb quiet clocksource=tsc"

Sumber jam yang tersedia bergantung pada arsitektur.

Bangun kembali berkas grub.cfg sebagai berikut:

  • Pada mesin berbasis BIOS, jalankan perintah berikut sebagai root:

~]# grub2-mkconfig -o /boot/grub2/grub.cfg
  • Pada komputer berbasis UEFI, jalankan perintah berikut sebagai root:

~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

Sumber Daya Tambahan

Sumber informasi berikut menyediakan sumber daya tambahan mengenai NTP dan ntpd.

Dokumentasi Terpasang

  • Halaman manual ntpd(8) — Menjelaskan ntpd secara rinci, termasuk opsi baris perintah.

  • Halaman manual ntp.conf(5) — Berisi informasi tentang cara mengonfigurasi asosiasi dengan server dan peer.

  • Halaman manual ntpq(8) — Menjelaskan utilitas kueri NTP untuk memantau dan mengkueri server NTP.

  • Halaman manual ntpdc(8) — Menjelaskan utilitas ntpd untuk mengkueri dan mengubah status ntpd.

  • Halaman manual ntp_auth(5) — Menjelaskan opsi autentikasi, perintah, dan manajemen kunci untuk ntpd.

  • Halaman manual ntp_keygen(8) — Menjelaskan pembuatan kunci publik dan privat untuk ntpd.

  • Halaman manual ntp_acc(5) — Menjelaskan opsi kontrol akses menggunakan perintah restrict.

  • Halaman manual ntp_mon(5) — Menjelaskan opsi pemantauan untuk pengumpulan statistik.

  • Halaman manual ntp_clock(5) — Menjelaskan perintah untuk mengonfigurasi jam referensi.

  • Halaman manual ntp_misc(5) — Menjelaskan opsi lain-lain.

  • Halaman manual ntp_decode(5) — Mencantumkan kata-kata status, pesan peristiwa, dan kode kesalahan yang digunakan untuk pelaporan dan pemantauan ntpd.

  • Halaman manual ntpstat(8) — Menjelaskan utilitas untuk melaporkan status sinkronisasi daemon NTP yang berjalan di komputer lokal.

  • Halaman manual ntptime(8) — Menjelaskan utilitas untuk membaca dan mengatur variabel waktu kernel.

  • Halaman manual tickadj(8) — Menjelaskan utilitas untuk membaca, dan secara opsional mengatur, panjang tick.

Situs Web yang Berguna

http://doc.ntp.org/

Arsip Dokumentasi NTP

https://www.eecis.udel.edu/~mills/ntp.html

Proyek Penelitian Sinkronisasi Waktu Jaringan.

https://www.eecis.udel.edu/~mills/ntp/html/manyopt.html

Informasi tentang Penemuan Server Otomatis di NTPv4.