在多年使用和维护Novell NetWare 的过程中,我们积累了不同的经验,也吸取了不少的教训。下面笔者就Novell NetWare 控制台安全保护方面的经验加以介绍,以供教学和从事公用计算机机房管理者的同行以及其他网络管理者们参考。
一、Novell NetWare 3.X的安全问题
我们使用的Novell NetWare 3.12网络操作系统。在一个机房中连接有近百台微机工作站。每学期在网络服务器上开有学生账户近3000个。
服务器置于机房中,如果某个时候机房值班人员不在机房,上机者就可能会使用服务器控制台。这时控制台的键盘如果没有锁定,那么服务器就可能遇到危险。因为在控制台上使用者可以进入NetWare 内嵌的386DEBUG调试程序(按下键盘上的左SHIFT、右SHIFT、ALT、ESC四键就可进入调试程序)。用该调试程序,使用者可以盗改超级管理员口令,使真正的超级管理员不能管理系统,这样的后果是相当严重的。因此在服务器控制台上,只要键盘没有锁定,任何人都可以在控制台上进入386DEBUG程序。
为了安全起见,我们有必要限制和取消在控制台上使用386 DEBUG程序。在加上锁定键盘,安全系数就更高了。
二、禁止控制台上使用386DEBUG程序
为了取消386DEBUG程序,首先要找准进入386DEBUG程序的入口点,要找准程序的入口点,没有现成的资料可查。只有在386DEBUG程序下分析Server.exe程序(386DEBUG程序是内嵌在Server.exe 文件中的)。由于Server.exe文件很大,要分析它就要事先考虑几种可以进行分析的着手点。经过笔者考虑,应从两方面入手:(1)找键盘中断入口;(2)找读取键盘的程序入口点。下面就介绍笔者分析程序的过程。
(1)找键盘中断入口
当执行Server.exe程序后,系统程序在保护方式下运行。操作系统重新定义了所有中断向量。在386DEBUG下反汇编出来的程序与实模式下的程序有区别,因此要准确获取NetWare 3.12和4.11的中断向量比较困难。
(2)找读取键盘的程序入口
既然读键盘的中断入口不容易找到,那么我们可以通过 IN Al,60H(代码E4 60)指令来找读键盘的程序(程序要处理键盘就离不开这条读键盘口的指令)。并由此找到处理键盘码的程序。用查找命令寻找代码E4 60后,该条指令在程序中的位置见如下程序表:
NETWARE 3.11
000143EB E460 IN AL,60
......
00014424 C3 RET
00014425 800D3088010002 OR [00018830],02
0001442C C3 RET
0001442D 800D3088010001 OR [00018830],01
NETWARE 3.12
00011278 E460 IN AL,60
......
000113DD C3 RET
000113DE 800D006D01002 OR [00016D00]=00,02
000113E5 C3 RET
000113E6 800D006D01001 OR [0016D00]=00,01
000113ED C3 RET
NETWARE 4.11
0001445F E460 IN AL,60
......
00014579 C3 RET