Disable Recursive DNS Resolver atau OpenDNS

Sebagai salah satu komponen penting web hosting, secara sederhana DNS memiliki peranan dalam hal translasi atau penterjemahan domain menjadi IP address atau sebaliknya. Idealnya aplikasi DNS di sisi server [misal : Bind atau Named] hanya akan melayani permintaan [query] DNS untuk kebutuhan server itu sendiri, tetapi jika ada kesalahan konfigurasi di aplikasi DNS, maka server Anda akan melayani permintaan dari semua pihak yang seringkali disebut dengan istilah Recursive DNS Resolver atau OpenDNS.

Hal tersebut memungkinkan server Anda melayani permintaan resolving DNS dari siapapun secara global di internet dan memungkinkan pula untuk dieksploitasi oleh pihak yang tidak berkepentingan untuk melakukan aktivitas abuse ke jaringan lain. Dibawah ini adalah contoh sebuah server yang menerapkan Recursive DNS Resolver atau OpenDNS.

 

—awal kutipan—

 

Starting Nmap 5.51 ( http://nmap.org ) at 2014-06-24 11:25 WIB

sendto in send_ip_packet_sd: sendto(4, packet, 40, 0, 12.14.19.81, 16) => Operation not permitted

Offending packet: TCP 113.20.31.179:48350 > 12.14.19.81:80 A ttl=56 id=65111 iplen=40  seq=0 win=1024

sendto in send_ip_packet_sd: sendto(4, packet, 40, 0, 12.14.19.81, 16) => Operation not permitted

Offending packet: ICMP 113.20.31.179 > 12.14.19.81 Timestamp request (type=13/code=0) ttl=49 id=16775 iplen=40

Nmap scan report for 12.14.19.81

Host is up (0.00033s latency).

PORT   STATE SERVICE

53/udp open  domain

|_dns-recursion: Recursion appears to be enabled

 

Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

 

—akhir kutipan—

 

Penanganan Recursive DNS Resolver atau OpenDNS

Untuk menghindari dampak negatif seperti yang dijelaskan di atas, maka kami himbau untuk melakukan beberapa langkah di bawah ini.

  1. Lakukan rekonfigurasi di aplikasi DNS Anda dengan menonaktifkan fitur recursion atau hanya mengizinkan proses recursion untuk localhost saja.
CONTOH PERTAMA
Kondisi Awal   Kondisi Akhir
options {
/* make named use port 53 for the source of all queries,to allow firewalls to block all ports except 53: */
// query-source    port 53;
/* We no longer enable this by default as the

dns posion exploit has forced many providers

to open up their firewalls a bit */

// Put files that named is allowed to write in the data/ directory:
directory                “/var/named”; // the default
pid-file                 “/var/run/named/named.pid”;
dump-file                “data/cache_dump.db”;
statistics-file          “data/named_stats.txt”;
/* memstatistics-file     “data/named_mem_stats.txt”; */
allow-transfer {“none”;};
recursion yes;
};

options {
/* make named use port 53 for the source of all queries,to allow firewalls to block all ports except 53: */
// query-source    port 53;
/* We no longer enable this by default as the

dns posion exploit has forced many providers

to open up their firewalls a bit */

// Put files that named is allowed to write in the data/ directory:
directory                “/var/named”; // the default
pid-file                 “/var/run/named/named.pid”;
dump-file                “data/cache_dump.db”;
statistics-file          “data/named_stats.txt”;
/* memstatistics-file     “data/named_mem_stats.txt”; */
allow-transfer {“none”;};
recursion no;
};

CONTOH KEDUA
Kondisi Awal   Kondisi Akhir
options {
/* make named use port 53 for the source of all queries,to allow firewalls to block all ports except 53: */
// query-source    port 53;
/* We no longer enable this by default as the

dns posion exploit has forced many providers

to open up their firewalls a bit */

// Put files that named is allowed to write in the data/ directory:
directory                “/var/named”; // the default
pid-file                 “/var/run/named/named.pid”;
dump-file                “data/cache_dump.db”;
statistics-file          “data/named_stats.txt”;
/* memstatistics-file     “data/named_mem_stats.txt”; */
allow-transfer {“none”;};
recursion yes;
};

options {
/* make named use port 53 for the source of all queries,to allow firewalls to block all ports except 53: */
// query-source    port 53;
/* We no longer enable this by default as the

dns posion exploit has forced many providers

to open up their firewalls a bit */

// Put files that named is allowed to write in the data/ directory:
directory                “/var/named”; // the default
pid-file                 “/var/run/named/named.pid”;
dump-file                “data/cache_dump.db”;
statistics-file          “data/named_stats.txt”;
/* memstatistics-file     “data/named_mem_stats.txt”; */
allow-transfer {“none”;};
allow-recursion { 127.0.0.1; };

};

  1. Paska rekonfigurasi jangan lupa untuk mengaktifkan ulang daemon aplikasi DNS Anda. Jika menggunakan Named, maka dapat dilakukan dengan perintah service named restart.
  2. Periksa ulang layanan DNS di server Anda dan pastikan recursion sudah tidak dalam kondisi aktif lagi. Jika mengalami kesulitan dalam langkah ini, informasikanlah kepada staf teknikal kami untuk bantuan pemeriksaannya.

Dengan 3 langkah sederhana di atas, maka Anda telah meningkatkan keamanan server dan turut pula mencegah kemungkinan penyalahgunaan server tanpa sepengetahuan Anda. Selamat mencoba.