Documentation for a newer release is available. View Latest

Mengonfigurasi NTP Menggunakan ntpd

Pengantar NTP

Network Time Protocol (NTP) memungkinkan penyebaran informasi waktu dan tanggal yang akurat untuk menjaga jam pada sistem komputer jaringan disinkronkan ke referensi umum melalui jaringan atau Internet. Banyak badan standar di seluruh dunia memiliki jam atom yang dapat disediakan sebagai referensi. Satelit yang membentuk Global Positioning System mengandung lebih dari satu jam atom, membuat sinyal waktu mereka berpotensi sangat akurat. Sinyal mereka dapat dengan sengaja didegradasi karena alasan militer. Situasi yang ideal adalah di mana setiap situs memiliki server, dengan jam referensinya sendiri terlampir, untuk bertindak sebagai server waktu di seluruh situs. Banyak perangkat yang memperoleh waktu dan tanggal melalui transmisi radio frekuensi rendah atau Global Positioning System (GPS) ada. Namun untuk sebagian besar situasi, berbagai server waktu yang dapat diakses publik yang terhubung ke Internet di lokasi yang tersebar secara geografis dapat digunakan. Server NTP ini menyediakan “Coordinated Universal Time” (UTC). Informasi tentang server waktu ini dapat ditemukan di 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 Fedora Rawhide adalah chronyd. Itu harus dinonaktifkan jika Anda ingin menggunakan daemon ntpd. Lihat Mengonfigurasi NTP Memakai Keluarga chrony untuk informasi tentang chrony.

Daemon ruang pengguna memperbarui jam sistem, yang merupakan jam perangkat lunak yang berjalan di kernel. Linux menggunakan jam perangkat lunak sebagai jam sistemnya untuk resolusi yang lebih baik daripada jam perangkat keras tertanam biasa yang disebut sebagai “Real Time Clock(RTC). Lihat halaman manual rtc(4) dan hwclock(8) untuk informasi tentang jam perangkat keras. Jam sistem dapat menjaga waktu dengan menggunakan berbagai sumber jam. Biasanya, Time Stamp Counter (TSC) digunakan. TSC adalah register CPU yang menghitung cacah siklus sejak terakhir kali disetel ulang. Ini sangat cepat, memiliki resolusi tinggi, dan tidak ada interupsi. Pada saat sistem mulai berjalan, jam sistem membaca waktu dan tanggal dari RTC. Waktu yang disimpan oleh RTC akan menjauh dari waktu aktual hingga 5 menit per bulan karena variasi suhu. Oleh karena itu perlunya jam sistem untuk terus disinkronkan dengan referensi waktu eksternal. Ketika jam sistem sedang disinkronkan oleh ntpd, kernel pada gilirannya akan memperbarui RTC setiap 11 menit secara otomatis.

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 mewakili waktu sebagai hitungan banyaknya detik sejak 00:00 (tengah malam) 1 Januari 1900 GMT. Karena 32-bit digunakan untuk menghitung detik, ini berarti waktu akan “putar balik ke nol” pada tahun 2036. Namun NTP bekerja pada perbedaan antara stempel waktu sehingga ini tidak menyajikan tingkat masalah yang sama seperti yang telah dilakukan oleh implementasi protokol waktu lainnya. Jika jam perangkat keras yang berada dalam waktu 68 tahun dari waktu yang benar tersedia pada saat boot, maka NTP akan menafsirkan tanggal saat ini dengan benar. Spesifikasi NTP4 menyediakan “Nomor Era” dan “Ofset Era” yang dapat digunakan untuk membuat perangkat lunak lebih tangguh ketika menangani panjang waktu yang lebih dari 68 tahun. Catatan, jangan bingungkan ini dengan masalah Unix Tahun 2038.

Protokol NTP memberikan informasi tambahan untuk meningkatkan akurasi. Empat stempel waktu digunakan untuk memungkinkan perhitungan waktu pulang pergi dan waktu respons server. Agar sistem dalam perannya sebagai klien NTP disinkronkan dengan server waktu referensi, paket dikirim dengan “stempel waktu asal”. Ketika paket tiba, server waktu menambahkan “stempel waktu terima”. Setelah memroses permintaan untuk informasi waktu dan tanggal dan tepat sebelum mengembalikan paket, ia menambahkan “stempel waktu transmisi”. Ketika paket yang kembali tiba di klien NTP, “stempel waktu terima” dihasilkan. Klien sekarang dapat menghitung total waktu perjalanan pulang pergi dan dengan mengurangi waktu pemrosesan memperoleh waktu perjalanan yang sebenarnya. Dengan mengasumsikan perjalanan keluar dan pulang-pergi membutuhkan waktu yang sama, keterlambatan satu perjalanan dalam menerima data NTP dihitung. Algoritma NTP lengkap jauh lebih kompleks daripada yang disajikan di sini.

Ketika paket yang berisi informasi waktu diterima, itu tidak segera ditanggapi, tetapi pertama-tama tunduk pada pemeriksaan validasi dan kemudian diproses bersama dengan beberapa sampel waktu lainnya untuk tiba pada perkiraan waktu. Ini kemudian dibandingkan dengan jam sistem untuk menentukan ofset waktu, perbedaan antara waktu jam sistem dan apa yang telah ditentukan oleh ntpd sebagai waktu yang seharusnya. Jam sistem disesuaikan secara perlahan, paling banyak pada kecepatan 0,5ms per detik, untuk mengurangi ofset ini dengan mengubah frekuensi pencacah yang digunakan. Dibutuhkan setidaknya 2.000 detik untuk menyesuaikan jam sebanyak 1 detik menggunakan metode ini. Perubahan lambat ini disebut sebagai slewing dan tidak bisa mundur. Jika ofset waktu jam lebih dari 128ms (pengaturan baku), ntpd dapat “melangkahkan” jam maju atau mundur. Jika ofset waktu pada awal sistem dimulai lebih besar dari 1.000 detik maka pengguna, atau skrip instalasi, harus membuat penyesuaian manual. Lihat Mengonfigurasi Tanggal dan Waktu. Dengan opsi -g ke perintah ntpd (digunakan secara baku), setiap ofset pada awal sistem dimulai akan diperbaiki, tetapi selama operasi normal hanya ofset hingga 1000 detik yang akan diperbaiki.

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.

Alamat dalam rentang 127.0.0.0/8 terkadang diperlukan oleh berbagai proses atau aplikasi. Karena baris “restrict default” di atas mencegah akses ke semua yang tidak diizinkan secara eksplisit, akses ke alamat loopback standar untuk IPv4 dan IPv6 diizinkan melalui baris berikut:

# the administrative functions.
restrict 127.0.0.1
restrict ::1

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

Host di jaringan lokal tidak diizinkan karena baris “restrict default” di atas. Untuk mengubah ini, misalnya untuk mengizinkan host dari jaringan 192.0.2.0/24 untuk menanyakan waktu dan statistik tetapi tidak lebih, baris dalam format berikut diperlukan:

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 “Terhubung” di sudut 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 — paket “Kiss-o'-death” akan dikirim untuk mengurangi kueri yang tidak diinginkan.

  • 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

Tentukan nilai time-to-live yang akan digunakan dalam paket yang dikirim oleh server broadcast dan server multicast NTP. Tentukan time-to-live maksimum yang akan digunakan untuk “pencarian cincin melebar” oleh klien manycast. Nilai bakunya adalah 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.