Tutorial Lengkap Perintah Dig untuk Query DNS di Linux

Dig (Domain Information Groper) adalah alat baris perintah yang powerful untuk meminta informasi”  tentang DNS name server.

Bagi Anda yang berkecimpung di dunia IT security (bahasa keren : /hacker/), tentu sudah tidak asing dengan perintah dig di baris perintah linux.” ” Dengan perintah dig, Anda dapat meminta informasi tentang berbagai DNS records termasuk alamat host, mail exchanges, dan name servers. Yang tentyn

Bagi seorang administrator sistem, perintah dig adalah alat yang paling umum digunakan untuk mengatasi masalah DNS karena fleksibilitas dan kemudahan dalam penggunaannya. Dalam area jaringan yang luas, tentu akan sangat kesulitan memeriksa setiap perangkat yang tersedia. Jika hanya puluhan? kalau ribuan perangkat?

Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana menggunakan utilitas dig melalui contoh-contoh praktis dan penjelasan rinci tentang opsi perintah dig paling umum.

*Instal Dig*

Untuk memeriksa apakah perintah dig tersedia pada sistem operasi Anda:

dig -v

Outputnya akan terlihat seperti ini:

DiG 9.11.3-1ubuntu1.1-Ubuntu

Jika tool dig tidak ada di sistem Anda, perintah di atas akan mencetak pesan dig: command not found, Jika mendapat pesan error seperti itu, Anda dapat dengan mudah menginstalnya menggunakan manajer paket distro Anda.

-Cara Install Dig di Ubuntu dan Debian-

sudo apt install dnsutils

-Cara Install Dig di CentOS dan Fedora-

sudo yum install bind-utils

-Cara Install Dig di Arch Linux-

sudo pacman -S bind-tools

*Memahami Hasil Perintah Dig*

Dalam bentuknya yang paling sederhana, ketika perintah dig digunakan untuk query satu host (domain) tanpa argumen tambahan, perintah dig cukup informatif.

Dalam contoh berikut, kami akan melakukan kueri untuk mengambil informasi tentang domain linux.org.

dig linux.org

Outputnya akan terlihat seperti ini:

~# dig linux.org ; <<>> DiG 9.11.4-2-Debian <<>> linux.org ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8169 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 4096 ;; QUESTION SECTION: ;linux.org. IN A ;; ANSWER SECTION: linux.org. 5 IN A 104.27.167.219 linux.org. 5 IN A 104.27.166.219 ;; AUTHORITY SECTION: linux.org. 5 IN NS mark.ns.cloudflare.com. linux.org. 5 IN NS lia.ns.cloudflare.com. ;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 5 IN A 173.245.58.185 lia.ns.cloudflare.com. 5 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 5 IN A 173.245.59.130 mark.ns.cloudflare.com. 5 IN AAAA 2400:cb00:2049:1::adf5:3b82 ;; Query time: 58 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Oct 12 1146 WIB 2018 ;; MSG SIZE rcvd: 212 Mari kita melihat bagian demi bagian dari output perintah dig di atas : 1. Baris pertama dari output adalah versi dig yang terinstal, dan permintaan yang dipanggil. Baris kedua menunjukkan opsi global (secara default hanya cmd). ; <<>> DiG 9.13.3 <<>> linux.org ;; global options: +cmd

Jika Anda tidak ingin baris-baris itu dimasukkan dalam output gunakan opsi +nocmd. Opsi ini harus menjadi argumen pertama setelah perintah dig.

2. Bagian ini mencakup perincian teknis tentang jawaban yang diterima dari otoritas yang diminta (DNS server). Baris pertama bagian ini adalah header, termasuk opcode (tindakan yang dilakukan oleh dig) dan status tindakan. Dalam hal ini statusnya adalah NOERROR yang berarti bahwa otoritas yang diminta melayani permintaan tanpa masalah.

;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5 Bagian dari output ini dapat dihapus dengan menggunakan opsi +nocomments. Ketika opsi ini digunakan, ia juga menonaktifkan beberapa bagian header lainnya. 3. Bagian PSEUDOSECTION ditampilkan secara default hanya pada versi yang lebih baru. Anda dapat membaca lebih lanjut tentang mekanisme ekstensi untuk DNS (EDNS) di sini. ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 Jika Anda tidak ingin bagian ini dimasukkan dalam output, gunakan opsi +noedns. 4. Ini adalah bagian di mana dig menunjukkan kueri (pertanyaan) kita. Secara default, dig akan meminta data A record. ;; QUESTION SECTION: ;linux.org. IN A Anda dapat menonaktifkan bagian ini menggunakan opsi +noquestion. 5. Bagian answer, memberi kita jawaban untuk pertanyaan kita. Seperti yang telah kami sebutkan, secara default dig akan meminta data A record. Di sini, domain linux.org menunjuk ke alamat IP 104.18.59.123. ;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123 Biasanya, Inilah yang menampilkan informasi berharga, namun jika tidak ingin melihat bagian ini, Anda dapat menghapus bagian ini dari output menggunakan opsi +noanswer. 6. Bagian Authority akan memberi tahu kita server apa yang berwenang untuk menjawab pertanyaan DNS tentang domain yang ditanyakan. ;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com. Anda dapat menonaktifkan bagian output ini menggunakan opsi +noauthority. 7. Bagian tambahan memberi kami informasi tentang alamat IP dari DNS" server otoritatif yang ditunjukkan di bagian otoritas. ;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 240020493ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 240020493b82 8. Ini adalah bagian terakhir dari output perintah dig yang mencakup statistik tentang kueri. ;; Query time: 58 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Oct 12 1146 WIB 2018 ;; MSG SIZE rcvd: 212 Anda dapat menonaktifkan bagian ini dengan opsi +nostats. *Cetak Hanya Jawaban Perintah Dig* Dalam kebanyakan kasus, Anda hanya ingin mendapatkan jawaban cepat untuk kueri perintah dig Anda. -1. Dapatkan Jawaban Singkat- Untuk mendapatkan jawaban singkat atas permintaan Anda, gunakan opsi +short: dig linux.org +short 104.18.59.123 104.18.58.123 Output akan mencakup hanya alamat IP dari A record. -2. Dapatkan Jawaban Detail- Untuk jawaban yang lebih terperinci matikan semua hasil menggunakan opsi +noall dan kemudian gunakan bagian jawaban dengan opsi +answer. dig linux.org +noall +answer ; <<>> DiG 9.13.3 <<>> linux.org +noall +answer ;; global options: +cmd linux.org. 67 IN A 104.18.58.123 linux.org. 67 IN A 104.18.59.123

*Kueri Name Server Spesifik*

Secara default jika tidak ada name server yang ditentukan, perintah dig akan menggunakan server yang terdaftar dalam file /etc/resolv.conf.

Untuk menentukan name server yang akan dijalankan kueri, dapat menggunakan simbol @ (at) dan”  diikuti dengan alamat IP name server atau hostname.

Misalnya untuk mencari informasi tentang domain linux.org dengan menggunakan name server Google (8.8.8.8) :

dig linux.org @8.8.8.8

; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;linux.org. IN A ;; ANSWER SECTION: linux.org. 299 IN A 104.18.58.123 linux.org. 299 IN A 104.18.59.123 ;; Query time: 54 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri Oct 12 14:28:01 WIB 2018 ;; MSG SIZE rcvd: 70 *Jenis Query Record di Domain Menggunakan Dig* Dig memungkinkan Anda melakukan kueri DNS yang valid dengan menambahkan tipe records ke akhir kueri. Di bagian berikut, kami akan menunjukkan kepada Anda contoh cara mencari catatan paling umum seperti A (alamat IP), CNAME (nama canonical ) TXT (text record), MX (mail exchanger) dan NS (name servers). -1. Melihat Informasi" A records" dengan Perintah dig- Untuk mendapatkan daftar semua alamat yang tersedia untuk nama domain, gunakan opsi a: dig +nocmd google.com a +noall +answer google.com. 128 IN A 216.58.206.206 Seperti yang telah Anda ketahui, jika tidak ada tipe DNS record yang ditentukan, perintah dig akan meminta data A record. Anda juga dapat meminta data" A record tanpa menentukan opsi a. -2. Melihat Informasi" CNAME records" dengan Perintah dig- Untuk menemukan nama domain alias gunakan opsi cname: dig +nocmd mail.google.com cname +noall +answer mail.google.com. 553482 IN CNAME googlemail.l.google.com. -3." Melihat Informasi TXT records" dengan Perintah dig- Gunakan opsi txt untuk mengambil semua TXT records untuk domain tertentu: dig +nocmd google.com txt +noall +answer google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e" -4." Melihat Informasi MX records dengan Perintah dig- Untuk mendapatkan daftar semua server email untuk domain tertentu gunakan opsi mx: dig +nocmd google.com mx +noall +answer google.com. 494 IN MX 30 alt2.aspmx.l.google.com. google.com. 494 IN MX 10 aspmx.l.google.com. google.com. 494 IN MX 40 alt3.aspmx.l.google.com. google.com. 494 IN MX 50 alt4.aspmx.l.google.com. google.com. 494 IN MX 20 alt1.aspmx.l.google.com. -5." Melihat Informasi NS records" dengan Perintah dig- Untuk menemukan name servers resmi untuk domain spesifik, gunakan opsi ns: dig +nocmd google.com ns +noall +answer google.com. 84527 IN NS ns1.google.com. google.com. 84527 IN NS ns2.google.com. google.com. 84527 IN NS ns4.google.com. google.com. 84527 IN NS ns3.google.com. -6. Melihat Informasi Semua DNS Records" dengan Perintah dig- Gunakan opsi any untuk mendapatkan daftar semua DNS records untuk domain tertentu: dig +nocmd google.com any +noall +answer google.com. 299 IN A 216.58.212.14 google.com. 299 IN AAAA 2a00:1450:4017:804::200e google.com. 21599 IN NS ns2.google.com. google.com. 21599 IN NS ns1.google.com. google.com. 599 IN MX 30 alt2.aspmx.l.google.com. google.com. 21599 IN NS ns4.google.com. google.com. 599 IN MX 50 alt4.aspmx.l.google.com. google.com. 599 IN MX 20 alt1.aspmx.l.google.com. google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e" google.com. 21599 IN CAA 0 issue "pki.goog" google.com. 599 IN MX 40 alt3.aspmx.l.google.com. google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 21599 IN NS ns3.google.com. google.com. 599 IN MX 10 aspmx.l.google.com. google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60 *Reverse DNS Lookup dengan Perintah Dig* Untuk query hostname"  yang terkait dengan alamat IP tertentu, gunakan opsi -x. Misalnya, untuk melakukan reverse lookup pada 208.118.235.148 Anda dapat menggunakan perintah : dig -x 208.118.235.148 +noall +answer Seperti yang Anda lihat dari output di bawah alamat IP 208.118.235.148 dikaitkan dengan" hostname"  wildebeest.gnu.org. ; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer ;; global options: +cmd 148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.

*Perintah dig untuk Query Massal*

Jika Anda ingin menanyakan sejumlah besar domain, Anda dapat menambahkannya dalam file (satu domain per baris) dan menggunakan opsi -f diikuti dengan nama file.

Dalam contoh berikut, kita akan meminta informasi domain yang tercantum dalam file domains.txt.

lxer.com linuxtoday.com tuxmachines.org

dig -f domains.txt +short

108.166.170.171 70.42.23.121 204.68.122.43

*File .digrc Untuk Mengatur Perintah Dig*

Perilaku perintah dig dapat dikontrol dengan mengatur opsi per user di file ${HOME}/.digrc.

Jika file .digrc ada di direktori home user, opsi yang ditentukan di dalamnya diterapkan sebelum argumen baris perintah.

Misalnya, jika Anda hanya ingin menampilkan bagian jawaban, buka editor teks Anda dan buat file ~/.digrc berikut:

sudo nano” ~/.digrc

copy dan paste kode berikut :

+nocmd +noall +answer

*Kesimpulan*

Sekarang Anda telah memiliki pemahaman yang baik tentang bagaimana menggunakan perintah dig di Linux dan belajar cara memecahkan sebagian besar masalah terkait DNS.

Leave a Reply

Your email address will not be published.