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
Versi NTP
yang digunakan oleh Fedora adalah seperti yang dijelaskan dalam RFC 1305 Network Time Protocol (Versi 3) Specification, Implementation and Analysis dan RFC 5905 Network Time Protocol Version 4: Protocol and Algorithms Specification
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 kontrolntpdc
. -
Opsi
nopeer
mencegah asosiasi peer dibentuk. -
Opsi
noquery
mencegah kuerintpq
danntpdc
, tetapi bukan kueri waktu, dijawab.
Kueri 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 |
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 Saat membuat perubahan pada pengaturan firewall dalam mode |
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 kuerintpq
danntpdc
. -
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. Kuerintpq
danntpdc
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 kuerintpq
danntpdc
, tetapi bukan kueri waktu, dijawab. -
nopeer
— mencegah asosiasi peer dibentuk. -
noserve
— tolak semua paket kecuali kuerintpq
danntpdc
. -
notrap
— mencegah perangkap protokol pesan kontrolntpdc
. -
notrust
— menolak paket yang tidak diotentikasi secara kriptografis. -
ntpport
— memodifikasi algoritma pencocokan untuk hanya menerapkan pembatasan jika port sumber adalah portNTP
UDP
standar123
. -
version
— menolak paket yang tidak cocok dengan versiNTP
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:
discardaverage
valueminimum
valuemonitor
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
Lihat juga Opsi Autentikasi untuk NTP.
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)
— Menjelaskanntpd
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 kueriNTP
untuk memantau dan mengkueri serverNTP
. -
Halaman manual
ntpdc(8)
— Menjelaskan utilitasntpd
untuk mengkueri dan mengubah statusntpd
. -
Halaman manual
ntp_auth(5)
— Menjelaskan opsi autentikasi, perintah, dan manajemen kunci untukntpd
. -
Halaman manual
ntp_keygen(8)
— Menjelaskan pembuatan kunci publik dan privat untukntpd
. -
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 pemantauanntpd
. -
Halaman manual
ntpstat(8)
— Menjelaskan utilitas untuk melaporkan status sinkronisasi daemonNTP
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
.
Want to help? Learn how to contribute to Fedora Docs ›