Configure BIND to get detail LOG


Hari ni aku dapati log bind DNS Local aku ada banyak keluar mesej unexpected RCODE (SERVFAIL).





Log tu seperti di bawah :
------------------------------------------------------------------------------------------
Jan 6 08:20:32 dnslocal named[3539]: unexpected RCODE (SERVFAIL) resolving 'www.yu.kwsp.gov.my/A/IN': 192.168.1.2#53
Jan 6 08:20:32 dnslocal named[3539]: unexpected RCODE (SERVFAIL) resolving 'www.yu.kwsp.gov.my/A/IN': 192.168.1.2#53
Jan 6 08:20:38 dnslocal named[3539]: unexpected RCODE (SERVFAIL) resolving 'usmedsatcost.com/A/IN': 192.168.1.2#53
Jan 6 08:20:39 dnslocal named[3539]: unexpected RCODE (SERVFAIL) resolving 'causemind.com/NS/IN': 192.168.1.2#53
Jan 6 08:21:13 dnslocal named[3539]: unexpected RCODE (SERVFAIL) resolving 'usmedsatcost.com/A/IN': 192.168.1.2#53
Jan 6 08:21:47 dnslocal named[3539]: unexpected RCODE (SERVFAIL) resolving 'sisteroperate.com/NS/IN': 192.168.1.2#53
------------------------------------------------------------------------------------------

Setelah aku mencari dalam internet dan tanya beberapa expert tentang OSS ni, mesej tersebut adalah normal dan mesej tersebut keluar kerana ada client cuba cari domain tu tapi kemungkinan domain tu tak valid jadi sebab tu keluar error mesej tu.

Selain tu, aku pun pelik kenapa mesej tu keluar jam 1 pagi, jam 2 pagi, jam 3 pagi...maksudnya pada waktu orang lain sedang nyenyak tido..Rupenye DNS local yang aku juga digunakan oleh mail server dan spam server. Jadi mereka akan perlu memastikan domain emel yang di hantar adalah valid maka mereka akan hantar ke DNS Local aku untuk check ada ke idak. Jika takde tu yang keluar mesej tu pada waktu org tido sebab spam server aku bekerja 24/7. Bagus la spam server aku wat keje...hehehe...

DNS Local aku juga sejak dua menjak tiga menjak ni sering mengalami hang, number of recursion sering mencapai 1000 hingga 2000++ count. Aku dah tambahkan ruang max recursion kepada 5000 pun masih sama. Asal dia reach 500 ++ ke atas saje pasti seme pc dalam PahangNet takleh akses internet sebab tak dapat recognize domain. Lagipun dalam PahangNet pakai proxy jadik nak guna proxy pun ada pakai nama...hehehe...konpem takleh kalau DNS Local aku hang.

So aktiviti rutinnya aku akan restart la bila dapat tau server DNS tu hang. Selain tu aku juga ada buat script untuk restart DNS jika dapati ianya stop atau jika servis running pun akan restart semula untuk refresh running servis. Aku ada setkan setiap 1 jam sekali. Tapinya tak sampai sejam jadik juga DNS hang.

Tadi aku ada tweak skit pada info :
1) allow query
2) allow transfer
3) allow recursion

Seme tu akan allow daripada subnet dalaman sahaja untuk menggunakan DNS Local tu. Server juga akan listen port 53 sahaja daripada subnet yang ditentukan. So semua tu untuk kawal penggunaan DNS agar tidak disalahgunakan oleh IP spoof kemungkinan dari spyware atau virus.

Selain tu aku juga enablekan log query source, transfer source dan notify source jika ada berlaku sebarang perubahan pada zone. By default Bind tak enable log tu dan juga log query/trasfer/notify source tu..mungkin sebab tak nak log server jadik besau. tapi dalam kes aku ni aku perlu cari source yang mungkin ada buat spoof dan juga aku dapat audit dari log domain mana yang sering client PahangNet gunakan untuk semak pc ada spyware atau pc gunakan antivirus jenis yang selain digunakan di dalam PahangNet.

Contoh sebahagian setup config named.conf DNS Local aku seperti di bawah :
-------------------------------------------------------------------------------------------
options {

# The directory statement defines the name server's working directory

directory "/var/lib/named";
#-------------------------------------------------------------------------------------------
TAMBAH MAX RECURSIVE CLIENT
#-------------------------------------------------------------------------------------------
recursive-clients 5000;
# Write dump and statistics file to the log subdirectory. The
# pathenames are relative to the chroot jail.

dump-file "/var/log/named_dump.db";
statistics-file "/var/log/named.stats";

# The forwarders record contains a list of servers to which queries
# should be forwarded. Enable this line and modify the IP address to
# your provider's name server. Up to three servers may be listed.

#forwarders { 192.0.2.1; 192.0.2.2; };

# Enable the next entry to prefer usage of the name server declared in
# the forwarders section.

#forward first;

# The listen-on record contains a list of local network interfaces to
# listen on. Optionally the port can be specified. Default is to
# listen on all interfaces found on your system. The default port is
# 53.
#-------------------------------------------------------------------------------------------
ENABLE LISTEN TO PORT BY SUBNET DITETAPKAN SAHAJA
#-------------------------------------------------------------------------------------------
listen-on port 53 { 127.0.0.1; 172.0.0.0/8;};

# The listen-on-v6 record enables or disables listening on IPv6
# interfaces. Allowed values are 'any' and 'none' or a list of
# addresses.

#listen-on-v6 { any; };

# The next three statements may be needed if a firewall stands between
# the local server and the internet.
#-------------------------------------------------------------------------------------------
ENABLE DAPATKAN SOURCE QUERY/TRANSFER/NOTIFY UNTUK DICATAT PADA LOG
#-------------------------------------------------------------------------------------------
query-source address * port 53;

transfer-source * port 53;
notify-source * port 53;

# The allow-query record contains a list of networks or IP addresses
# to accept and deny queries from. The default is to allow queries
# from all hosts.
#-------------------------------------------------------------------------------------------
ENABLE ALLOW QUERY/TRASFER/RECURSION BY SUBNET DITETAPKAN SAHAJA
#-------------------------------------------------------------------------------------------
allow-query { 127.0.0.1; 172.0.0.0/8;};
#allow-query { "any"; };
allow-transfer { 172.0.0.0/8;};
allow-recursion {127.0.0.1; 172.0.0.0/8;};
#recursion no;

# If notify is set to yes (default), notify messages are sent to other
# name servers when the the zone data is changed. Instead of setting
# a global 'notify' statement in the 'options' section, a separate
# 'notify' can be added to each zone definition.

notify no;
forwarders {
192.168.1.2;
};
forward first;
};

# To configure named's logging remove the leading '#' characters of the
# following examples.
#-------------------------------------------------------------------------------------------
ENABLEKAN LOG DETAIL PADA DNS LOCAL
#-------------------------------------------------------------------------------------------
logging {
# Log queries to a file limited to a size of 100 MB.
channel query_logging {
file "/var/log/named_querylog"
versions 3 size 100M;
print-time yes; // timestamp log entries
};
category queries {
query_logging;
};

# Or log this kind alternatively to syslog.
channel syslog_queries {
syslog user;
severity info;
};
category queries { syslog_queries; };

# Log general name server errors to syslog.
channel syslog_errors {
syslog user;
severity error;
};
category default { syslog_errors; };

# Don't log lame server messages.
category lame-servers { null; };
};
----------------------------------------------------------------------------------------------

Contoh log baru :

----------------------------------------------------------------------------------------------
Jan 6 13:04:24 dnslocal named[5285]: client 172.191.221.67#1027: query: USER-90F716FCF7.pahang.gov.my IN A +
Jan 6 13:04:24 dnslocal named[5285]: client 172.254.31.44#32768: query: dnl-eu4.kaspersky-labs.com IN A +
Jan 6 13:04:24 dnslocal named[5285]: client 172.33.31.105#1030: query: www.update.microsoft.com IN A +
Jan 6 13:04:24 dnslocal named[5285]: client 172.177.241.57#2574: query: mail.innovate.com.my IN A +
Jan 6 13:04:25 dnslocal named[5285]: client 172.177.241.243#1026: query: scsd.ath.cx IN A +
Jan 6 13:04:25 dnslocal named[5285]: client 172.233.31.22#1027: query: www.update.microsoft.com IN A +
Jan 6 13:04:25 dnslocal named[5285]: client 172.244.161.1#32773: query: forum.lowyat.net IN A +
Jan 6 13:04:25 dnslocal named[5285]: client 172.177.51.201#1042: query: download.microsoft.com IN A +
Jan 6 13:04:25 dnslocal named[5285]: client 172.129.71.205#1027: query: www.update.microsoft.com IN A +
Jan 6 13:04:25 dnslocal named[5285]: client 172.155.184.109#60176: query: scorti1.dns2go.com IN A +
Jan 6 13:04:25 dnslocal named[5285]: client 172.171.141.176#60397: query: PELAN.pahang.gov.my IN A +
Jan 6 13:04:25 dnslocal named[5285]: client 172.154.131.5#42370: query: 62.84.2.123.in-addr.arpa IN PTR +
Jan 6 13:04:25 dnslocal named[5285]: client 172.154.131.5#42370: query: 123-2-84-62.static.dsl.dodo.com.au IN A +
Jan 6 13:04:26 dnslocal named[5285]: client 172.141.141.67#1748: query: dnl-12.geo.kaspersky.com IN A +
Jan 6 13:04:26 dnslocal named[5285]: client 172.171.51.28#1223: query: scorti1.dns2go.com IN A +
Jan 6 13:04:26 dnslocal named[5285]: client 172.71.151.54#64194: query: scorti1.dns2go.com IN A +
----------------------------------------------------------------------------------------------

So setakat dalam hampir 2 jam ni server DNS Local aku nampak stabil dan akses ke internet pun makin laju dari sebelum ni. Mungkin sebab dia dah laju nk resolve nama domain tu pada DNS Local.

Selain tu, aku juga ada gunakan kaedah forwarder iaitu menggunakan DNS valid aku untuk forward jika ada domain yang memerlukan di resolve di sana. Aku rasa DNS Valid aku tak mampu nak tampung banyak sangat query dari DNS Local sebab tu asyik hang je. Jadi aku bagi kebenaran DNS Local aku di Firewall untuk akses terus keluar dari PahangNet melalui port 53.

So mungkin boleh cuba kat server anda jika ada mengalami masalah yang sama. Kalau ada cadangan lain silalah tinggalkan nota di ruangan komen.

~ Be a Creator Not a User ~
http://muzzotechspot.blogspot.com
http://muzzoshah.blogspot.com

Ulasan