Monday, October 8, 2012

DNS софтуер изследване за България

Просто от скука реших да направя едно проучване за това какъв DNS софтуер се използва в Бълария.

Оказа се малко трудно да се намерят в момента всичките български IP мрежи тъй като така нареченият bg peering вече се е превърнал в нещо като eu peering. Данните за това изследване са базирани на мрежите извадени от този сайт: http://bgp.he.net/country/BG. Използвани помощни програмки - curl и shell script. Ето ги и самите мрежи: http://debian.gabrovo.com/all-bg-networks-october-2012.txt. Не претендирам, че данните са 100% верни особенно дали това наистина са абсолютно всички български мрежи.

Всички тези мрежи бяха сканирани за отворен порт 53/tcp просто защото udp сканирането не би ни свършило работа. Както следва:

#!/bin/bash
for a in `cat all-bg-neтworks-october-2012.txt`;
do
echo -n "scanning $a network ..."
b=`echo $a|cut -d/ -f 1`
nmap --host-timeout 2s -n -p 53 $a -oG $b.log > /dev/null 2>&1
echo "done"
done

Сканирането отне около един ден. Резултатът беше 24911 IP адреса на които има отворен 53ти порт. Трябва да се отбележи, че не всички от тези IP адреси имат инсталиран DNS софтуер. За това следващата стъпка е да сканираме за версията на DNS софтуера. Програмката която ползвам се казва fpdns (fingerprint dns) и я има на пакет в Debian Squeeze (apt-get install fpdns).

#!/bin/bash
for a in `cat ip-dns-port-53.txt`;
do
fpdns -t 1 -f $a|tee -a dns-scan-oct-2012.txt
done
Бележка: tee програмката записва във файл и едновременно с това показва какво е записано и на stdout.

Fingerprint сканирането отне един weekend. Резултатите са както следва:

ISC BIND 9.2.3rc1 -- 9.6.1-P1 9978
ISC BIND 9.2.3rc1 -- 9.6.1-P1 [recursion enabled] 2705
Mikrotik dsl/cable 2529
No match found 782
vermicelli totd 291
ISC BIND 8.3.0-RC1 -- 8.4.4 [recursion enabled] 41
DJ Bernstein TinyDNS 1.05 40
ISC BIND 9.2.0rc7 -- 9.2.2-P3 [recursion enabled] 40
Raiden DNSD 20
bboy MyDNS 19
Max Feoktistov small HTTP server [recursion enabled] 12
ISC BIND 9.2.0rc7 -- 9.2.2-P3 9
Microsoft Windows DNS 2000 9
ISC BIND 9.1.0 -- 9.1.3 [recursion enabled] 8
ISC BIND 8.1-REL -- 8.2.1-T4B [recursion enabled] 8
PowerDNS PowerDNS 2.9.4 -- 2.9.11 7
ISC BIND 9.2.0a1 -- 9.2.2-P3 [recursion enabled] 7
ISC BIND 8.3.0-RC1 -- 8.4.4 [recursion local] 6
NLnetLabs NSD 1.0 alpha (uncertain) 5
JHSOFT simple DNS plus [recursion enabled] 4
Microsoft Windows DNS NT4 2
ISC BIND 9.2.0rc4 -- 9.2.2-P3 2
ISC BIND 9.2.0rc7 -- 9.2.2-P3 [recursion local] 2
Microsoft ? 1
ISC BIND 9.0.0b5 -- 9.0.1 [recursion enabled] 1
robtex Viking DNS module 1
VeriSign ATLAS 1
ISC BIND 8.4.1-p1 1
Total Result 16531

Както се вижда най-използваният DNS софтуер е ISC BIND. Другото което прави впечатление е големият брой DNS сървъри които изпълняват рекурсивни заявки (тоест можете да си ги сложите в настройките за DNS и да ги ползвате без проблем или с други думи казано - в повечето случаи default install).

Ето и какви са версиите на DNS софтуера при запитване за версия:

ID което се връща при заявка за версия брой
id: unavailable (NOTIMP) 2546
id: "9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.... 1498
id: unavailable (REFUSED) 989
id: "dnsmasq-2.40" 941
id: "INVALID QUERY" 834
id: "9.7.2-P2" 760
id: "9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6... 758
id: "9.6.-ESV-R7-P1" 641
id: "9.7.3" 604
id: "9.9.1-P3" 417
id: "none" 401
id: "9.9.1-P1" 274
id: "9.8.1-P1" 268
id: "9.3.6-P1-RedHat-9.3.6-20.P1.el5" 207
id: "9.4.2" 207
id: "9.6-ESV-R1" 180
id: "9.4.3-P3" 177
id: "9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2... 165
id: "9.9.0" 158
id: "9.2.4" 118
id: "9.3.6-P1-RedHat-9.3.6-16.P1.el5_7.... 115
id: "9.4.3-P4" 105
id: "9.5.1-P3" 104
id: "9.3.6-P1-RedHat-9.3.6-16.P1.el5" 103
id: "9.8.0-P2" 98
id: "9.6-ESV-R4" 98
id: "Yes hack me" 92
id: "9.7.0-P1" 85
id unavailable (NOERROR) 83
id: "9.4.1" 81
id: "9.7.2-P3" 79
id: " " 76
id: "9.4.1-P1" 75
id: "9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2... 71
id: "Go away!" 69
id: "9.4.2-P2" 68
id: "9.3.4-P1" 67
id: "9.3.2-P1" 63
id: "9.3.4" 60
id: "9.7.1-P2" 58
id: "9.3.1" 51
id: "9.6.1-P2" 48
id: "9.4.2-P1" 45
id: "9.3.4-P1.1" 45
id: "9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3... 43
id unavailable (FORMERR) 40
id: "9.3.6-P1" 38
id: "9.5.0-P2" 37
id: "dnsmasq-2.55" 34
id: "9.6.1-P1" 33
id: "9.8.0-P4" 32
id: "dnsmasq-2.47" 32
id: "9.9.1-P2" 30
id: "dnsmasq-2.45" 30
id: "ZOMG EPIX!" 29
id: "9.6-ESV-R3" 28
id: "9.3.3" 26
id: "dnsmasq-2.59" 26
id: "9.6.-ESV-R3" 25
id: "9.4.3-P5" 25
id: "9.6.2-P2" 23
id: "9.5.1-P2" 23
id: "9.3.4-P1.2" 23
id: "9.4.2-P2.1" 23
id: "9.4.3-P2" 22
id: "not available" 22
id: "9.6.-ESV-R5-P1" 21
id: "9.3.2" 21
... кръц ... (стана много дълго...) n/a

Върнатият отговор при запитване за версия не е гаранция за това дали софтуера е със сигурност този, тъй като тази стойност може да се променя от администратора (както се забелязва - ZOMG EPIX!).

No match found - предполага се, че това са Windows DNS сървъри. Направих проба с фирмения DNS сървър който е на Windows 2003 сървър и даде точно това - No match found.

Тъй като DNS по дизайн е публична информация ето списък с всички отворени за цял свят рекурсивни DNS cache сървъри в България (2825 броя): http://debian.gabrovo.com/bg-dns-open-recursive.txt.

Ако някои иска да погледне данните в неформатиран (и пълен) вид от това изследване нека ми пише коментар.

No comments: