dnstop:从Shell提示符监视BIND DNS服务器(DNS网络流量)

时间:2020-01-09 14:16:19  来源:igfitidea点击:

问题描述:如何在Linux下监视以Bind 9命名的(或任何其他dns服务器)服务器流量/网络流量?
如何实时查找和查看当前的DNS查询,例如A,MX,PTR等?
如何查找谁在查询我的DNS服务器或特定域或特定dns客户端IP地址?

解决方法:日志文件可以提供所需的信息,但dnstop就像用于监视dns流量的top命令一样。
它是在设备上侦听或解析文件保存文件以及收集和打印本地网络DNS流量统计信息的小工具。
您必须具有对/dev/bpf *的读取权限。

bpf(伯克利包过滤器),它以协议独立的方式为数据链路层提供原始接口。
通过该机制可以访问网络上的所有数据包,甚至包括发往其他主机的数据包。

dnstop可以从实时捕获设备或tcpdump保存文件中读取数据包。

安装dnstop

执行以下命令以在dbian/ubuntu Linux下安装dnstop:

$ sudo apt-get update
$ sudo apt-get install dnstop

关于Red Hat/CentOS/RHEL/Fedora Linux的说明

使用make命令安装最新版本(有关二进制RPM文件,请参见下文)。
首先,通过访问dnstop官方网站获取最新的源代码。

首先安装所需的开发库,执行:

# yum install libpcap-devel ncurses-devel

现在,使用wget命令获取最新的源代码,执行:

# cd /tmp
# wget http://dns.measurement-factory.com/tools/dnstop/src/dnstop-20080502.tar.gz
# tar -zxvf dnstop-20080502.tar.gz
# cd dnstop-20080502

编译并安装dnstop,执行:

# ./configure
# make
# make install

dnstop rpm文件

或者,您可以从dags仓库下载dnstop rpm,以用于RHEL/CentOS/Fedora Linux。

FreeBSD下的dnstop

如果您使用的是FreeBSD,请遵循以下安装说明。

监控Dns服务器

您可以使用命令行选项监视各种dns数据和查询。

如何使用dnstop查看dns流量?

只需在shell提示符下执行以下命令即可监视eth0接口的流量:

# dnstop {interface-name}
# dnstop eth0
# dnstop em0

输出示例:

2 new queries, 220 total queries                  Mon Aug  4 05:56:50 2008

Sources              count      %
---------------- --------- -----
180.248.xxx.26          72   32.7
77.89.xx.108             7    3.2
186.xxx.13.108           5    2.3
90.xxx.94.39             4    1.8
178.xx.77.83             4    1.8
187.xxx.149.23           4    1.8
xxx.13.249.70            4    1.8
1.xxx.169.102            4    1.8
189.xx.191.126           4    1.8
xxx.239.194.97           3    1.4

您可以使用-l {level}选项来强制dnstop将名称的数量保持在域名级别以下。
例如,使用-l 2(默认值),dnstop将保留两个表:一个具有顶级域名(例如.com,.org,.com等),而另一个具有第二级域名(例如co .in,col.uk)。

# dnstop -l 3 eth0

在Debian/Ubuntu Linux下,执行:

# dnstop -t -s eth0

其中:

  • -s跟踪二级域名
  • -t跟踪第三级域

请注意,提高级别可提供更多详细信息,但还需要更多内存和CPU来跟踪DNS流量。

如何退出或重置计数器?

要退出dnstop,请按^ X(按住[CTRL]键并按X)。
按^ R重置计数器。

如何找出TLD产生的最大流量?

运行dnstop时,按" 1"键查看一级查询名称(TLD):

5 new queries, 1525 total queries                 Mon Aug  4 06:11:09 2008

TLD                                count      %
------------------------------ --------- -----
net                                  520   34.1
com                                  502   32.9
in-addr.arpa                         454   29.8
in                                    23    1.5
org                                   15    1.0
com                                   11    0.7

看起来此DNS服务器正在服务更多的.net TLD。
您还可以通过在运行dnstop时提示2键来找到有关实际域名的更多信息:

3 new queries, 1640 total queries                 Mon Aug  4 06:13:20 2008

SLD                                count      %
------------------------------ --------- -----
theitroad.local                        557   34.0
theitroad.net                         556   33.9
74.in-addr.arpa                       34    2.1
208.in-addr.arpa                      29    1.8
195.in-addr.arpa                      28    1.7
192.in-addr.arpa                      27    1.6
64.in-addr.arpa                       27    1.6
theitroad.com                              23    1.4
203.in-addr.arpa                      20    1.2
192.in-addr.arpa                      18    1.1
212.in-addr.arpa                      15    0.9
theitroad.com                          13    0.8
217.in-addr.arpa                      13    0.8
213.in-addr.arpa                      12    0.7
128.in-addr.arpa                      12    0.7
193.in-addr.arpa                      12    0.7
simplyguide.org                       12    0.7
cricketnow.in                          3    0.2

要查找3级域,请按" 3"键:

www.theitroad.local         60   39.0
figs.theitroad.local        33   21.4
ns1.theitroad.net          18   11.7
ns3.theitroad.net          13    8.4
ns2.theitroad.net          13    8.4
theitroad.com                   5    3.2
theitroad.com               5    3.2
theitroad.local              2    1.3
jobs.theitroad.local         1    0.6
bash.theitroad.local         1    0.6

如何显示查询类型的细分?

您可以通过提示t键轻松找到最需要的查询类型(A,AAAA,PTR等)

Query Type     Count      %
---------- --------- -----
A?               224   56.7
AAAA?            142   35.9
A6?               29    7.3

如何确定谁正在连接我的DNS服务器?

按d查看dns客户端IP地址:

Source         Query Name        Count       %
-------------- ------------- ---------  -----
xx.75.164.90   theitroad.net          20    9.1
xx.75.164.90   theitroad.local         18    9.1
x.68.25.4      theitroad.net           9    9.1
xxx.131.0.10   theitroad.local          5    4.5
xx.104.200.202 theitroad.local          4    4.5
192.xxx.0.2    theitroad.local          1    4.5

选项说明

还有更多选项可提供当前流量的详细视图,只需执行即可查看所有运行时选项的帮助:

s - Sources list
d - Destinations list
t - Query types
o - Opcodes
r - Rcodes
1 - 1st level Query Names      ! - with Sources
2 - 2nd level Query Names      @ - with Sources
3 - 3rd level Query Names      # - with Sources
4 - 4th level Query Names      $ - with Sources
5 - 5th level Query Names      % - with Sources
6 - 6th level Query Names      ^ - with Sources
7 - 7th level Query Names      & - with Sources
8 - 8th level Query Names      * - with Sources
9 - 9th level Query Names      ( - with Sources
^R - Reset counters
^X - Exit

? - this