目前,WIN2000 SERVER是比较流行的服务器操作系统之一,但是要想安全的配置微软的这个操作系统,却不是一件容易的事。本文试图对win2000 SERVER的安全配置进行初步的探讨。
为了对付日益增多的cgi漏洞扫描器,还有一个小技巧可以参考,在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件,可以让目前绝大多数CGI漏洞扫描器失灵。其实原因很简单,大多数CGI扫描器在编写时为了方便,都是通过查看返回页面的HTTP代码来判断漏洞是否存在的,例如,著名的IDQ漏洞一般都是通过取1.idq来检验,如果返回HTTP200,就认为是有这个漏洞,反之如果返回HTTP404就认为没有,如果你通过URL将HTTP404出错信息重定向到HTTP404.htm文件,那么所有的扫描无论存不存在漏洞都会返回HTTP200,90%的CGI扫描器会认为你什么漏洞都有,结果反而掩盖了你真正的漏洞,让入侵者茫然无处下手(武侠小说中常说全身漏洞反而无懈可击,难道说的就是这个境界?)不过从个人角度来说,我还是认为扎扎实实做好安全设置比这样的小技巧重要的多。
最后,为了保险起见,你可以使用IIS的备份功能,将刚刚的设定全部备份下来,这样就可以随时恢复IIS的安全配置。还有,如果你怕IIS负荷过高导致服务器满负荷死机,也可以在性能中打开CPU限制,例如将IIS的最大CPU使用率限制在70%。
3.账号安全:
Win2000的账号安全是另一个重点,首先,Win2000的默认安装允许任何用户通过空用户得到系统所有账号/共享列表,这个本来是为了方便局域网用户共享文件的,但是一个远程用户也可以得到你的用户列表并使用暴力法破解用户密码。很多朋友都知道可以通过更改注册表Local_Machine\System\ CurrentControlSet\Control\LSA-RestrictAnonymous = 1来禁止139空连接,实际上win2000的本地安全策略(如果是域服务器就是在域服务器安全和域安全策略中)就有这样的选项RestrictAnonymous(匿名连接的额外限制),这个选项有三个值:
0:None. Rely on default permissions(无,取决于默认的权限)
1:Do not allow enumeration of SAM accounts and shares(不允许枚举SAM帐号和共享)
2:No access without explicit anonymous permissions(没有显式匿名权限就不允许访问)
0这个值是系统默认的,什么限制都没有,远程用户可以知道你机器上所有的账号、组信息、共享目录、网络传输列表(NetServerTransportEnum等等,对服务器来说这样的设置非常危险。
1.这个值是只允许非NULL用户存取SAM账号信息和共享信息。
2.这个值是在win2000中才支持的,需要注意的是,如果你一旦使用了这个值,你的共享估计就全部完蛋了,所以我推荐你还是设为1比较好。
好了,入侵者现在没有办法拿到我们的用户列表,我们的账户安全了……慢着,至少还有一个账户是可以跑密码的,这就是系统内建的administrator,怎么办?我改改改,在计算机管理->用户账号中右击administrator然后改名,改成什么随便你,只要能记得就行了。
不对不对,我都已经改了用户名了,怎么还是有人跑我管理员的密码?幸好我的密码够长,但是这也不是办法呀?嗯,那肯定是在本地或者Terminal Service的登录界面看到的,好吧,我们再来把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\ CurrentVersion\winlogon项中的Don’t Display Last User Name串数据改成1,这样系统不会自动显示上次的登录用户名。
将服务器注册表HKEY_LOCAL_ MACHINE\SOFTWARE\Microsoft\ WindowsNT\CurrentVersion\Winlogon项中的Don‘t Display Last User Name串数据修改为1,隐藏上次登陆控制台的用户名。