扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
审计日志(Audit logs )对于安全审核的用途来讲并不很实用,但是在解决DHCP服务器相关的问题方面,却是一个无价的助手。在这篇文章中,我将向您讲解如何对DHCP服务器的审计日志进行分析。
大部分情况下,如果一篇与Windows相关的文章提到了审计日志,那么这些日志都是与安全相关的,但是对于DHCP服务器而言,这些日志更倾向于从诊断的角度为您提供帮助,而不是安全角度。毕竟,DHCP服务器唯一的工作就是为网络客户分配IP地址,因而对DHCP服务器的活动进行安全审计是没有什么必要的。
有些人认为如果DHCP服务提供的审计信息可以用来监控网络活动,那么负责安全的人应当对这些日志进行仔细检查,但我并不同意这一观点。除非您明确地知道要查找的信息,否则,试图通过仔细检查DHCP的审计日志来发现潜在的安全隐患是一件既沉闷又很难达到目的的事情。
毕竟,如果一个网络上有几百台电脑,您可能在数以百计甚至数以千计的合法日志条目中找出某一个未经许可的MAC地址么?依我看来,负责安全的员工的时间最好还是花在审查其他类型的审计日志上比较好。
这并不是说DHCP审计日志是没有用的,只不过,这些日志对于日常的安全监控是不实际的,当然,这并不影响DHCP审计日志成为一个出色的诊断工具。DHCP审计日志为DHCP服务器的功能提供了丰富的信息,我将在这篇文章中为您介绍如何对这些日志条目进行分析。
配置DHCP日志
在Windows Server 2003的默认状态下,DHCP的审计日志功能是开启的,您可以在c:windowssystem32dhcp 目录下发现它,日志文件的名字是DhcpSrvLog-XXX.log,XXX这三个字母表明了日志是在星期几创建的,例如,名为DhcpSrvLog-Fri.log 的日志说明该日志是在星期五创建的。
尽管日志功能在默认状态下是开启的,但是有很多限制,这些限制规定了日志文件的大小,单独的日志文件可以达到1MB,此外,所有的DHCP日志累计不能超过20MB,否则日志功能就会自动关闭以节省磁盘空间。
在大部分情况下,您不能超越这些界限,但是与DHCP审计相关的其他一些事情您是可以改变的。为了改变这些设置,您可以在Windows系统管理员工具菜单中的DHCP命令来打开DHCP控制台,然后右键单击当前的DHCP服务器列表,然后选择属性。
这样,Windows就会打开DHCP服务器属性设置窗口了,在常用(Genaral)标签中,有一个复选框,您可以在此选择开启或关闭DHCP日志功能。正如我刚才说过的,DHCP日志功能在默认情况下是开启的,我认为在大部分情况下开启这一功能是个好主意,然而,如果您的DHCP服务器出现了性能问题,那么关闭审计日志是一种可行的办法来帮助改善一点服务器性能。
另外一个与DHCP审计日志相关的设置是您可以改变日志文件的路径,在高级标签中,您可以改变这一设置,该标签中包含了一个名为审计日志文件路径(Audit Log File Path)的文本框,您可以在这个文本框中输入您指定的路径。
检查DHCP日志
现在我将向您展示一些日志选项以及如何实用DHCP日志,其实,日志文件只不过是一些文本文件,如果您双击一个日志文件,它们会被记事本打开,以下是一个相当典型的DHCP日志:
Microsoft DHCP Service Activity Log
Event ID Meaning
00 The log was started.
01 The log was stopped.
02 The log was temporarily paused due to low disk space.
10 A new IP address was leased to a client.
11 A lease was renewed by a client.
12 A lease was released by a client.
13 An IP address was found to be in use on the network.
14 A lease request could not be satisfied because the scope's
address pool was exhausted.
15 A lease was denied.
16 A lease was deleted.
17 A lease was expired.
20 A BOOTP address was leased to a client.
21 A dynamic BOOTP address was leased to a client.
22 A BOOTP request could not be satisfied because the scope's
address pool for BOOTP was exhausted.
23 A BOOTP IP address was deleted after checking to see it was
not in use.
24 IP address cleanup operation has began.
25 IP address cleanup statistics.
30 DNS update request to the named DNS server
31 DNS update failed
32 DNS update successful
50+ Codes above 50 are used for Rogue Server Detection information.
ID,Date,Time,Description,IPAddress,HostName,MAC Address
00,07/21/06,19:42:47,Started,,,,
56,07/21/06,19:42:48,Authorization failure, stopped servicing,,production.com,,
55,07/21/06,19:50:52,Authorized(servicing),,production.com,,
24,07/21/06,20:42:48,Database Cleanup Begin,,,,
25,07/21/06,20:42:48,0 leases expired and 0 leases deleted,,,,
25,07/21/06,20:42:48,0 leases expired and 0 leases deleted,,,,
50,07/21/06,20:49:01,Unreachable Domain,,production.com,8250,
24,07/21/06,21:42:49,Database Cleanup Begin,,,,
25,07/21/06,21:42:49,0 leases expired and 0 leases deleted,,,,
25,07/21/06,21:42:49,0 leases expired and 0 leases deleted,,,,
在这个日志中,您可能会注意到日志文件的第一部分包含了一系列代码,我稍后再讲解这些代码,现在先看这些代码下面的部分,您会看到每一行的开头都有一个ID、日期和时间等等,日志条目的内容则出现在这些信息之后。
文件的日志部分实际上是通过CSV格式显示的,CSV是逗号分隔的文本文件(Comma Separated Value),这意味着每个字段都是通过逗号来分隔的,在字处理软件中阅读CSV文件是很困难的,但是可以将它们导入到微软Excel中,这样会方便阅读,以下是上述日志条目的一个子集,参见表格A:
0 7/21/2006 19:42:47 Started
56 7/21/2006 19:42:48 Authorized failure
55 7/21/2006 19:50:52 Authorized(servicing)
24 7/21/2006 20:42:48 Database Cleanup Begin
25 7/21/2006 20:42:48 0 leases expired and 0 leases deleted
25 7/21/2006 20:42:48 0 leases expired and 0 leases deleted
50 7/21/2006 20:49:01 Unreachable Domain
24 7/21/2006 21:42:49 Database Cleanup Begin
25 7/21/2006 21:42:49 0 leases expired and 0 leases deleted
25 7/21/2006 21:42:49 0 leases expired and 0 leases deleted
表格A
对这个子集中的每个日志文件条目,您都会看到一个ID、日期、时间和每个时间的描述,显然,日期和时间字段不用过多的解释,但是,乍看上去ID和描述字段的日期信息似乎没有什么意义。
还记得早前在日志文件中看到的事件ID列表么?这些事件ID和ID列中的数字是相对应的,描述字段则包含了事件ID背后的详细信息。
让我们来看看上述日志中的第一个条目,正如您看到的,事件ID是0,而描述字段是Started,在日志文件的含义部分,您会看到事件ID 0的意思是日志开始,在这个例子中,描述信息并不是很重要,我认为微软将它放在这里是为了让您的生活轻松些。
下面来看看第二个日志条目,您会看到事件ID是56,描述信息是Authorization Failure(认证失败),如果您返回事件ID含义部分,您会发现列表中并没有编号为56的事件,实际上,编号大于50的事件都是用于服务器测试信息的,尽管日志文件没有告诉您代码56的含义,但我已经研究过这些代码了并整理了编号大于50的描述信息列表,如下所示:
50-DHCP服务器无法定位所需的域;
51-认证成功;
52-服务器最近升级到了Windows Server 2003标准版,在次升级过程中,未经授权的DHCP服务器欺诈检测机制被禁止了,该机制是用于确认DHCP服务器是否在活动目录中通过认证的;
53-在DHCP服务启动时,活动目录无法访问,DHCP服务将通过缓存服务进行认证后启动;
54-这是一个认证错误代码,本事件发生是因为DHCP服务器没有在活动目录中通过认证,事件代码和54应该出现在事件ID之后以显示DHCP服务已经停止;
55-DHCP服务通过认证并启动;
56-事件代码56就是在我们的例子日志中出现的事件,这个事件说明DHCP服务没有通过授权,所以关闭了,所以您DHCP服务器必需在活动目录中通过认证,然后才能启动DHCP服务;
57-另外一个DHCP服务器已经存在于指定的域中;
58-DHCP服务器无法定位所需的域;
59-因网络连接问题影响,无法确认服务器是否已经通过认证;
60-这个代码需要详细解释一下,这个事件ID意味着目录服务没有启动任何域控制器,这种情况只有在Windows NT域控制器出现的混合模式下才会出现;因为一个DHCP服务器只能通过活动目录认证,DHCP必需能够和活动目录进行通讯来确认其是否已经通过认证,因此,如果DHCP服务器只能和Windows NT域控制器进行通讯,日志文件将反映为代号60的事件ID;
61-这一事件ID意味着属于这个域的另外一个DHCP服务器出现在网络中,这个事件ID和代号为57的事件是不同的,因为DHCP服务器不一定需要经过认证,例如,DHCP服务可能运行在老版本的Windows NT服务器上;
62-事件ID62意味着已经检测另外一个DHCP服务器出现在网络上,本事件与61号事件和57号事件的区别在于它是没有指定域的,实际上,DHCP服务器甚至不必成为一个Windows服务器就可以被检测到,62号事件是一个简单的普遍的事件ID,只要检测到DHCP服务器就会产生这样的事件记录;
63-事件ID63会在DHCP服务器欺诈检测机制出现问题的时候发生,当欺诈检测机制重新启动时就会引发这一事件,重新启动欺诈检测机制意味着服务器要尝试多次才能确定它是否通过认证;
64-这个事件ID说明没有支持DHCP的网络接口,这意味着所有的网络接口的配置方式对DHCP而言是不可用的,这可能是由于以下三种原因引起的,首先,可能是网线没有连接上;其次,可能是所有的DHCP服务器接口都在实用动态IP地址,一个DHCP服务器需要至少一个静态IP地址;最后,第三个可能的原因是绑定到静态IP地址的网络适配器都被禁止了;
清理DHCP服务器数据库
我下面要讲解的是数据库日志文件的清理索引,我想您一定知道IP地址的租约是周期性的,但一个租期到期了,DHCP服务器就会废止这个租约。
DHCP服务器依赖内部的数据库清理过程来实现这一点,这一清理过程每一小时进行一次,这种维护会执行一些整理工作并对数据库进行备份。数据库的清理过程机器结果已经包含在DHCP日志文件中了,以下的日志文件片断显示了一个常见的数据库清理过程:
24,07/22/06,00:00:34,Database Cleanup Begin,,,,
25,07/22/06,00:00:34,0 leases expired and 0 leases deleted,,,,
IP地址租约
当然,典型的DHCP服务器日志内容的绝大部分都是与客户租约、续租或者释放IP地址相关的条目,以下的DHCP服务器日志片断展示了这种类型的事件:
10,07/22/06,22:19:56,Assign,147.100.100.120,e2k7.,0013D30C227E,
31,07/22/06,22:19:56,DNS Update Failed,147.100.100.120,e2k7.,-1,
30,07/22/06,22:20:19,DNS Update Request,120.100.100.147,e2k7.,,
12,07/22/06,22:20:19,Release,147.100.100.120,e2k7.,0013D30C227E,
31,07/22/06,22:20:19,DNS Update Failed,147.100.100.120,e2k7.,-1,
30,07/22/06,22:20:25,DNS Update Request,120.100.100.147,e2k7.,,
10,07/22/06,22:20:25,Assign,147.100.100.120,e2k7.,0013D30C227E,
在这个日志文件片断中,您可能会注意到它所使用的代码和我们刚才讨论的那些事件ID是一样的,这些代码在诊断潜在问题方面是非常有帮助的,例如,在这段代码的第二行,有一条消息显示了DNS升级失败,这是因为我配置服务器时使用了一个错误的DNS服务器地址,在现实世界中,这类错误是很难发现的,除非您查看了DHCP服务器的日志。
尽管DHCP升级失败的IP地址租约依然在使用,所以DHCP有时会给人一种错觉,好像所有的事情都工作的很好,但是如果一个从这个DNS服务器获取了IP地址的网络客户端试图与其他网络客户通讯时,就会出现问题,因为DNS服务器无法解析客户端使用的主机名称。
在这种情况下,往往会导致系统管理员徒劳的搜索,没有经验的系统管理员往往会先去检查DNS服务器的故障,但实际上DNS服务器是没有问题的,其实,解决这个问题的线索就在DHCP服务器的日志上,这也是定期检查您DHCP服务器日志的重要原因之一。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
去集群 更超群——大容量网络演进之路
2019 IBM 中国论坛
H3C 2019 Navigate 领航者峰会
助推数据中心网络现代化转型 打造灵活可靠基础架构平台