在維護DNS伺服器時,偶們希望知道到底是哪些用戶在使用偶們的DNS伺服器,同時也希望能對DNS查詢做一個統計。一般情況下,偶們可以使用tcpdump –i eth0 port 53來查看DNS查詢包,不過tcpdump的輸出可不是那麼友好,尤其是當訪問量大的時候,偶就頭暈了 :( ~~當然了可以把輸出重定向到文件,如果熟悉shell編程的話還可以做個腳本來分析;至於查詢統計嘛,可以使用rndc stats(bind9)來獲取,但是這可不是實時的,當然了你也可以使用at,cron來自動運行,不幸的事,這些偶都不太會 :oops: ,because 偶是菜鳥 of linux/unix。沒關係,今天偶來介紹一款超強統計DNS查詢的工具。(不好意思廢話有點多,就當熱身嘛,呵呵 :) )BTW:多謝bbgun網友提供信息 :!: 。
剛才裝了一下DNSTOP,還是有一點麻煩,好了,要上洗手間趕快去;沖咖啡的搞快點了啰。各就各位,Let』s go! :arrow:
首先申明一下,偶是在redhat8+bind9下實現的,如果你的系統不是linux的話,請參考源代碼包里的相關說明。
1、下載源代碼
打開瀏覽器,進入http://dnstop.measurement-factory.com/,可以看到DNSTOP的相關介紹。如果你的系統沒有libpcap庫的話(用find / -name 「libpcap*」搜一下就知道有沒有了),在安裝DNSTOP前還需要安裝libpcap庫。不管三七二十一,先把這兩個源碼包下載下來再說:
libpcap-0.7.2.tar.gz
http://www.tcpdump.org/release/libpcap-0.7.2.tar.gz
dnstop-20030929.tar.gz
http://dnstop.measurement-factory.com/src/dnstop-20030929.tar.gz
2、編譯安裝libpcap庫
假設libpcap-0.7.2.tar.gz是放置在/home/andy目錄下的。步驟如下:
# cd /home/andy
#gunzip libpcap-0.7.2.tar.gz
# tar -xvf libpcap-0.7.2.tar
# cd libpcap-0.7.2
#
注意了(大聲的說~~),在這兒編譯時是編譯成靜態函數庫,但是等會兒你編譯DNSTOP時卻是需要共享函數庫(動態函數庫)。所以偶們要修改一下libpcap-0.7.2目錄下的Makefile.in文件,打開文件找到如下語句:
all: libpcap.a(第96行)
libpcap.a: $(OBJ)
@rm -f $@
ar rc $@ $(OBJ)
$(RANLIB) $@
修改為:
all: libpcap.so
libpcap.so: $(OBJ)
@rm -f $@
# ar rc $@ $(OBJ)
gcc $(OBJ) -shared -o libpcap.so
# $(RANLIB) $@
再找到如下語句:
install:(第139行)
[ -d $(DESTDIR)$(libdir) ] || \
(mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
$(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a
$(RANLIB) $(DESTDIR)$(libdir)/libpcap.a
修改為:
install:
# [ -d $(DESTDIR)$(libdir) ] || \
# (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
# $(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a
# $(RANLIB) $(DESTDIR)$(libdir)/libpcap.a
cp libpcap.so /usr/lib/
搞定!開始編譯:
# ./configure --prefix=/usr
# make
# make install
到這兒,偶們可以鬆口氣了。下面安裝DNSTOP就很easy了。
3、編譯DNSTOP
步驟如下:
# cd ..
# gunzip dnstop-20030929.tar.gz
# tar -xvf dnstop-20030929.tar
# make
到這一步,偶就要恭喜各位:DNSTOP已經編譯完成了。
接下來look一下DNSTOP到底是什麼東東(s後面的參數是需要監聽的網卡介面):
# ./dnstop -s eth0
效果如下:
0 new queries, 6 total queries Mon Nov 5 07:54:35 2007
Sources count %
---------------- --------- ------
192.168.0.113 4 66.7
192.168.0.144 1 16.7
192.168.0.40 1 16.7
不錯吧^_^,在運行DNSTOP的過程中,可以敲入如下命令:
S,D,T,1,2,^R(ctrl+R),^X(ctrl+X),?
來顯示不同的統計信息。比如敲入1,顯示結果如下:
0 new queries, 7 total queries Mon Nov 5 07:57:17 2007
TLD count %
-------------------- --------- ------
com 4 57.1
cn 2 28.6
arpa 1 14.3
偶也是才接觸DNSTOP,上面的介紹只能是給大家拋磚引玉了,有錯誤或者不足的地方,請發站內簡訊或者跟貼。覺得不錯的,頂一下了^_^,多謝!!!
[火星人 ] 一款超強的統計DNS查詢的工具--DNSTOP已經有380次圍觀