PersonalCorpus 版 (精华区)
发信人: fiag (大饼), 信区: Windows
标 题: WIN 2K服务器的正确安装与安全配置
发信站: 哈工大紫丁香 (2003年01月31日10:45:03 星期五), 站内信件
WIN 2K服务器的正确安装与安全配置
作者:SharpWinnner 来自:红客大联盟(www.cnredhacker.org)
目前,WIN 2K的服务器占据着国内服务器的大部分市场份额,但是据我们对国内WIN 2K
服务器的安全性检测情况来看,WIN 2K服务器的用户以及管理员们并没有很好的掌握WIN
2K的安全配置与防范技术。现我们就尽一份对国内网络安全事业的责任,特为国内WIN
2K管理员们献上本篇文章。
一、WIN 2K操作系统的选择与正确安装
1、对硬盘进行分区
(1).通常情况下,大家安装WIN 2K操作系统的时候,习惯于把系统文件、日志文件和应用
程序放置在一个分区内,而黑客的攻击通常就是利用应用程序所存在的漏洞进入系统,然
后通过系统文件内的相关程序提升权限,从而来删除日志文件(防止管理员对其进行调查
),对系统文件进行破坏。因此,在安装WIN 2K操作系统之前,我们必须考虑到这一点,
所以我们至少需要建立两个逻辑分区,系统分区和应用程序分区。为了迷惑黑客,我们还
应该更换“我的文档”和“Outlook Express”等应用程序的默认文件夹位置,让其分辨不
出系统文件存放在哪个分区内。
(2).对于硬盘分区的文件系统格式,推荐使用NTFS分区。首先,NTFS分区增加了对不同文
件夹设置不同访问权限的功能,从而增强了系统的安全性。建议在安装NTFS分区的时候,
最好是一次性选择全部安装NTFS格式分区,而先选择安装成FAT分区,然后再进行NTFS分区
转化的时候,在安装补丁情况下很容易转化不成功而导致系统崩溃。对于安装NTFS分区有
一个方面是值得大家注意的,用软盘启动NTFS分区的时候,目前的大部分杀毒软件是没有
对病毒进行查杀的,因此这很容易让恶性病毒的入侵,而导致系统不能正常启动。所以,
请大家防患于未然,平时就做好对病毒的防范工作。
2、选择适合自己的WIN 2K版本:
WIN 2K SERVER是微软公司出品的多语言操作系统。对于我们国人来说,可以选择安装
简体中文版或者英文版。在选择这两种语言的操作系统上,我们给大家对这两种操作系统
的优劣进行分析:对于大家来说安装简体中文版的操作系统在语言上是不存在障碍的,而
且安装各种基于中文的应用程序是不会存在乱码问题,比如用QQ进行交流或者安装各种网
络游戏都是没有任何问题的,但是众所周知的微软的操作系统是漏洞百出的,而且中文版
的操作系统漏洞远高于英文版的,再者,对于中文版的操作系统的安全漏洞补丁,一般是
漏洞公布出来两周后才会出的,所以在这段期间,你要用自己的方法来防范黑客对新漏洞
的攻击。对于WIN 2K原版的英文操作系统,对于大家来说,首先一个就是语言存在一定的
问题,其次就是对于应用程序的乱码问题,虽然有些软件能够提供中英文内码的转换,但
是毕竟还是比较麻烦的。而英文操作系统是原版操作系统,微软对于其包括安全、性能、
配套应用程序等各个方面都是照顾有佳。所以,根据我们的分析,普通个人用户建议使用
中文操作系统,而对于企业用户,管理员们最好是安装WIN
2K英文的操作系统。
3、组件的定制:
通常情况下,默认安装WIN 2K操作系统的组件可以说是把大门向黑客敞开,不光是WIN
2K操作系统,包括LINUX/UNIX/VMS操作系统的默认安装是都能让黑客轻轻松松进入系统的
。所以我们遵循安全原则“最少的服务+最小的权限=最大的安全”,我们选择一些我们能
够用到的服务来进行安装。对于WEB服务器的安装,最小组件是:Internet服务管理器、WW
W服务器和公用文件。如果你需要安装其它的组件,对于:Frontpage 2000服务扩展、索引
服务两个组件要特别谨慎。
4、选择管理应用程序:
基于对安全和应用方面的需求,选择一个好的管理软件是必要的。WIN 2K的Terminal
Service是基于RDP(远程桌面协议)的远程控制软件,这个软件在速度、使用的便捷性、
操作方面都是非常不错的。但是它也有不足之处,在Terminal Service进行与真实桌面进
行交互操作的时候,往往会让系统处于紊乱状态,进行错误的操作。所以,安全起见,我
建议大家可以在安装一个远程控制软件来作为辅助,PcAnyWhere就是一个很好的选择。
5.选择安装顺序:
对于WIN 2K系统的安装顺序一定要注意,首先是补丁的安装,如果你安装好WIN 2K系统
后,就直接打上所有的安全补丁,然后再来安装系统组件和其他应用程序,那么我可以说
你的系统随时准备着遭受黑客的入侵。原因何在呢?由于补丁的安装都是替换/修改某些系
统文件,如果先装补丁,后装应用程序,会把修补好的程序又重新恢复到存在漏洞的状态
。再一个,就是对于接入网络的时间。我们一定要在所有的安全漏洞都弥补上的情况下再
接入网络,不然系统被病毒感染或黑客入侵,并被破坏的话,我们还需要重新来恢复系统
,做一些重复性的工作,等于做无用功。所以,我们要按照安装的顺序,一步一步来进行
正确的安装,这样才会让系统最小程度的遭受各种破坏。WIN 2K系统正确的安装顺序应该
是:
硬盘分区——选择操作系统安装——选择文件系统格式(NTFS)——选择组件及应用程序
进行安装——安装各种系统补丁——安装防火墙等做好安全防范措施——接入Internet网
络
二、WIN 2K服务器的安全配置
1、账号的安全管理
(1).账号的安全策略:
A.帐号尽可能少,且尽可能少用来登录;说明:网站帐号一般只用来做系统维护,多余的
帐号一个也不要,因为多一个帐号就会多一份被攻破的危险。
B.除过Administrator外,有必要再增加一个属于管理员组的帐号;说明:两个管理员组的
帐号,一方面防止管理员一旦忘记一个帐号的口令还有一个备用帐号;另方面,一旦黑客
攻破一个帐号并更改口令,我们还有机会重新在短期内取得控制权。
C.所有帐号权限需严格控制,轻易不要给帐号以特殊权限;
D.将Administrator重命名,改为一个不易猜的名字。其他一般帐号也应尊循着一原则。说
明:这样可以为黑客攻击增加一层障碍,并且能够防范克隆账号的入侵。
E.将Guest帐号禁用,同时重命名为一个复杂的名字,增加口令,并将它从Guest组删掉;
说明:有的黑客工具正是利用了guest 的弱点,可以将帐号从一般用户提升到管理员组。
F.给所有用户帐号一个复杂的口令,长度最少在8位以上,且必须同时包含字母、数字、特
殊字符。同时不要使用大家熟悉的单词、熟悉的键盘顺序、熟悉的数字等。说明:口令是
黑客攻击的重点,口令一旦被突破也就无任何系统安全可言了,而这往往是不少网管所忽
视的地方,据我们的测试,仅字母加数字的5位口令在几分钟内就会被攻破,而所推荐的方
案则要安全的多。
G.口令必须定期更改(建议至少两周改一次),且最好记在心里,除此以外不要在任何地
方做记录;另外,如果在日志审核中发现某个帐号被连续尝试,则必须立刻更改此帐号(
包括用户名和口令);
H.在帐号属性中设立锁定次数,比如改帐号失败登录次数超过5次即锁定改帐号。这样可以
防止暴力破解的尝试,同时也使管理员对该帐号提高警惕。
(2).通过注册表的修改来提高WIN 2K账号的安全性
Win2000的账号安全是另一个重点,首先,Win2000的默认安装允许任何用户通过空用户
得到系统所有账号/共享列表,这个本来是为了方便局域网用户共享文件的,但是一个远程
用户也可以得到你的用户列表并使用暴力法破解用户密码。
禁止139共享空连接:很多朋友都知道可以通过更改注册表Local_Machine\System\Current
ControlSet\Control\LSA-RestrictAnonymous=1来禁止139空连接,实际上win2000的本地
安全策略(如果是域服务器就是在域服务器安全和域安全策略中)就有这样的选项Restric
tAnonymous(匿名连接的额外限制),这个选项有三个值:
0:无。依赖于默认许可权限
1:不允许枚举SAM帐号和共享
2:没有显式匿名权限就不允许访问
0这个值是系统默认的,什么限制都没有,远程用户可以知道你机器上所有的账号、组
信息、共享目录、网络传输列表(NetServerTransportEnum等等,对服务器来说这样的设置
非常危险。
1这个值是只允许非NULL用户存取SAM账号信息和共享信息。
2这个值是在win2000中才支持的,需要注意的是,如果你一旦使用了这个值,你的共享
估计就全部完蛋了,所以我推荐你还是设为1比较好。
删除磁盘分区共享:运行Regedit,然后修改注册表在HKEY_LOCAL_MACHINE\SYSTEM\Curren
tControlSet\Services\LanmanServer\Parameters下增加一个键
Name: AutoShareServer
Type: REG_DWORD
Value: 0
然后重新启动您的服务器,磁盘分区共享去掉,但IPC共享仍存在,需每次重启后手工删
除。
好了,入侵者现在没有办法拿到我们的用户列表,我们的账户安全了……慢着,至少还
有一个账户是可以跑密码的,这就是系统内建的administrator,怎么办?我改改改,在计
算机管理->用户账号中右击administrator然后改名,改成什么随便你,只要能记得就行了
。不对不对,我都已经改了用户名了,怎么还是有人跑我管理员的密码?幸好我的密码够
长,但是这也不是办法呀?嗯,那肯定是在本地或者Terminal Service的登录界面看到的
,好吧,我们再来把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersio
n\winlogon项中的Don't Display Last User Name串数据改成1,这样系统不会自动显示上
次的登录用户名。将服务器注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\C
urrentVersion\Winlogon项中的Don't Display Last User Name串数据修改为1,隐藏上次
登陆控制台的用户名。
2、WIN 2K服务的安全配置
(1).端口:端口是计算机和外部网络相连的逻辑接口,也是计算机的第一道屏障,端口配
置正确与否直接影响到主机的安全,一般来说,仅打开你需要使用的端口会比较安全,配
置的方法是在网卡属性-TCP/IP-高级-选项-TCP/IP筛选中启用TCP/IP筛选,不过对于win20
00的端口过滤来说,有一个不好的特性:只能规定开哪些端口,不能规定关闭哪些端口,
这样对于需要开大量端口的用户就比较痛苦。
(2).IIS:IIS是微软的组件中漏洞最多的一个,平均两三个月就要出一个漏洞,而微软的
IIS默认安装又实在不敢恭维,所以IIS的配置是我们的重点,现在大家跟着我一起来:
首先,把C盘那个什么Inetpub目录彻底删掉,在D盘建一个Inetpub(要是你不放心用默
认目录名也可以改一个名字,但是自己要记得)在IIS管理器中将主目录指向D:\Inetpub;
其次,那个IIS安装时默认的什么scripts等虚拟目录一概删除(麻烦之源呀,还记得http:
//www.HackWeb.com/scripts/..%c1%1c../winnt/system32/cmd.exe吗?我们虽然已经把In
etpub从系统盘挪出来了,但是还是小心为上),如果你需要什么权限的目录可以自己慢慢
建,需要什么权限开什么。(特别注意写权限和执行程序的权限,没有绝对的必要千万不
要给)
(3).应用程序配置:在IIS管理器中删除必须之外的任何无用映射,必须指的是ASP,ASA和
其他你确实需要用到的文件类型,例如你用到stml等(使用server side include),实际
上90%的主机有了上面两个映射就够了,其余的映射几乎每个都有一个凄惨的故事:htw,
htr, idq,ida……想知道这些故事?去查以前的漏洞列表吧。什么?找不到在哪里删?在I
IS管理器中右击主机->属性->WWW服务 编辑->主目录配置->应用程序映射,然后就开始一
个个删吧(里面没有全选的,嘿嘿)。接着在刚刚那个窗口的应用程序调试书签内将脚本
错误消息改为发送文本(除非你想ASP出错的时候用户知道你的程序/网络/数据库结构)错
误文本写什么?随便你喜欢,自己看着办。点击确定退出时别忘了让虚拟站点继承你设定
的属性。为了对付日益增多的cgi漏洞扫描器,还有一个小技巧可以参考,在IIS中将HTTP4
04 Object Not Found出错页面通过URL重定向到一个定制HTM文件,可以让目前绝大多数CG
I漏洞扫描器失灵。其实原因很简单,大多数CGI扫描器在编写时为了方便,都是通过查看
返回页面的HTTP代码来判断漏洞是否存在的,例如,著名的IDQ漏洞一般都是通过取1.idq
来检验,如果返回HTTP200,就认为是有这个漏洞,反之如果返回HTTP404就认为没有,如
果你通过URL将HTTP404出错信息重定向到HTTP404.htm文件,那么所有的扫描无论存不存在
漏洞都会返回HTTP200,90%的CGI扫描器会认为你什么漏洞都有,结果反而掩盖了你真正的
漏洞,让入侵者茫然无处下手(武侠小说中常说全身漏洞反而无懈可击,难道说的就是这
个境界?)不过从个人角度来说,我还是认为扎扎实实做好安全设置比这样的小技巧重要
的多。最后,为了保险起见,你可以使用IIS的备份功能,将刚刚的设定全部备份下来,这
样就可以随时恢复IIS的安全配置。还有,如果你怕IIS负荷过高导致服务器满负荷死机,
也可以在性能中打开CPU限制,例如将IIS的最大CPU使用率限制在70%。
(4).安全日志:我遇到过这样的情况,一台主机被别人入侵了,系统管理员请我去追查凶
手,我登录进去一看:安全日志是空的,倒,请记住:Win2000的默认安装是不开任何安全
审核的!那么请你到本地安全策略->审核策略中打开相应的审核,推荐的审核是:
账户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
账户登录事件 成功 失败
审核项目少的缺点是万一你想看发现没有记录那就一点都没辙;审核项目太多不仅会占
用系统资源而且会导致你根本没空去看,这样就失去了审核的意义。
与之相关的是:
在账户策略->密码策略中设定:
密码复杂性要求 启用
密码长度最小值 6位
强制密码历史 5次
最长存留期 30天
在账户策略->账户锁定策略中设定:
账户锁定 3次错误登录
锁定时间 20分钟
复位锁定计数 20分钟
同样,Terminal Service的安全日志默认也是不开的,我们可以在Terminal Service
Configration(远程服务配置)-权限-高级中配置安全审核,一般来说只要记录登录、注
销事件就可以了。
应用程序日志文件存放位置:c:\winnt\system32\config\AppEvent.Evt
安全日志文件存放位置:c:\winnt\system32\config\SecEvent.Evt
系统日志文件存放位置:c:\winnt\system32\config\SysEvent.Evt
(5).目录和文件权限:
为了控制好服务器上用户的权限,同时也为了预防以后可能的入侵和溢出,我们还必须
非常小心地设置目录和文件的访问权限,NT的访问权限分为:读取、写入、读取及执行、
修改、列目录、完全控制。在默认的情况下,大多数的文件夹对所有用户(Everyone这个
组)是完全敞开的(Full Control),你需要根据应用的需要进行权限重设。
在进行权限控制时,请记住以下几个原则:
A.限是累计的:如果一个用户同时属于两个组,那么他就有了这两个组所允
许的所有权限;
B.拒绝的权限要比允许的权限高(拒绝策略会先执行)如果一个用户属于一
个被拒绝访问某个资源的组,那么不管其他的权限设置给他开放了多少权限,他也一定不
能访问这个资源。所以请非常小心地使用拒绝,任何一个不当的拒绝都有可能造成系统无
法正常运行;
C.文件权限比文件夹权限高(这个不用解释了吧?)
D.利用用户组来进行权限控制是一个成熟的系统管理员必须具有的优良习惯
之一;
E.仅给用户真正需要的权限,权限的最小化原则是安全的重要保障;
(6).预防DoS:
在注册表HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中更改以下值可
以帮助你防御一定强度的DoS攻击
SynAttackProtect REG_DWORD 2
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0
ICMP攻击:ICMP的风暴攻击和碎片攻击也是NT主机比较头疼的攻击方法,其实应付的方
法也很简单,win2000自带一个Routing & Remote Access工具,这个工具初具路由器的雏
形(微软真是的,什么都要做?听说最近又要做防火墙了)在这个工具中,我们可以轻易
的定义输入输出包过滤器,例如,设定输入ICMP代码255丢弃就表示丢弃所有的外来ICMP报
文。
(7).ASP程序安全问题:
安全不仅是网管的事,编程人员也必须在某些安全细节上注意,养成良好的安全习惯,
否则,会给黑客造成可乘之机。目前,大多数网站上的ASP程序有这样那样的安全漏洞,但
如果写程序的时候注意的话,还是可以避免的。涉及用户名与口令的程序最好封装在服务
器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限
。
说明:用户名与口令,往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码
,后果是严重的。因此要尽量减少它们在ASP文件中的出现次数。出现次数多得用户名与口
令可以写在一个位置比较隐蔽的包含文件中。如果涉及到与数据库连接,理想状态下只给
它以执行存储过程的权限,千万不要直接给予该用户以修改、插入、删除记录的权限。
需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话
才能读取这个页面。
说明:现在的需要经过验证的ASP程序多是在页面头部加一个判断语句,但这还不够,
有可能被黑客绕过验证直接进入,因此有必要跟踪上一个页面。具体漏洞见所附漏洞文档
。
防止ASP主页.inc文件泄露问题,当存在asp的主页正在制作并没有进行最后调试完成以
前,可以被某些搜索引擎机动追加为搜索对象,如果这时候有人利用搜索引擎对这些网页
进行查找,会得到有关文件的定位,并能在浏览器中察看到数据库地点和结构的细节揭示
完整的源代码。
解决方案:程序员应该在网页发布前对其进行彻底的调试;安全专家需要固定asp 包含
文件以便外部的用户不能看他们。首先对 .inc文件内容进行加密,其次也可以使用
.asp 文件代替 .inc 文件使用户无法从浏览器直接观看文件的源代码。.inc文件的文件名
不用使用系统默认的或者有特殊含义容易被用户猜测到的,尽量使用无规则的英文字母。
注意某些ASP编辑器会自动备份asp文件,会被下载的漏洞在有些编辑asp程序的工具,
当创建或者修改一个asp文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备
份一个..bak文件,如你创建或者修改了some.asp,编辑器自动生成一个叫some.asp.bak文
件,如果你没有删除这个bak文件,攻击有可以直接下载some.asp.bak文件,这样some.asp
的源程序就会给下载。
在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、JavaScript、VBScri
pt语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入
字符的长度进行限制。而且不但在客户端进行输入合法性检查,同时要在服务器端程序中
进行类似检查。
说明:输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成
损坏;
如果该输入框涉及到数据查询,他们会利用特殊查询输入得到更多的数据库数据,甚至
是表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法
性检查,仍有可能被绕过,因此必须在服务器端再做一次检查。
(8).PCANYWHERE的安全:
目前,PCANYWHERE是最流行的基于NT与2000的远程控制工具,同样也需要注意安全问题
。建议采用单独的用户名与口令,最好采用加密手段。千万不要采用与NT管理员一样的用
户名与口令,也不要使用与NT集成的口令。
说明:PCANYWHERE 口令是远程控制的第一个关口,如果与NT的一样,就失去了安全屏障
。被攻破后就毫无安全可言。而如果采用单独的口令,即使攻破了PCANYWHERE,NT还有一
个口令屏障。及时安装较新的版本。
4、数据库的安全
(1).ACCESS数据库的安全问题:
防止ACCESS mdb 数据库有可能被下载的漏洞,在用ACCESS做后台数据库时,如果有人通
过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载
这个ACCESS数据库文件,这是非常危险的。
解决方法:
A.为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目录下。所谓 "非常
规", 打个比方:
比如有个数据库要保存的是有关书籍的信息, 可不要把他起个"book.mdb"的名字,起个怪
怪的名称,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/ 的几层目录下,这样黑
客要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。
B.不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
DBPath = Server.MapPath("cmddb.mdb")conn.Open "driver={Microsoft Access
Driver (*.mdb)};dbq=" & DBPath假如万一给人拿到了源程序,你的ACCESS数据库的名字
就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写:
conn.open "shujiyuan"
C.使用ACCESS来为数据库文件编码及加密。首先在选取"工具->安全->加密/解密数据库
,选取数据库(如:employer.mdb),然后接确定,接着会出现"数据库加密后另存为"的
窗口,存为:employer1.mdb。接着employer.mdb就会被编码,然后存为employer1.mdb..
要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的
是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的 employer1.mdb,在打开时,选择
"独占"方式。然后选取功能表的"工具->安全->设置数据库密码", 接着输入密码即可。这
样即使他人得到了employer1.mdb文件,没有密码他是无法看到 employer1.mdb的。
(2).SQL SERVER的安全
SQL SERVER是NT平台上用的最多的数据库系统,但是它的安全问题也必须引起重视。数
据库中往往存在着最有价值的信息,一旦数据被窃后果不堪设想。
及时更新补丁程序。
说明:与NT一样,SQL SERVER的许多漏洞会由补丁程序来弥补。建议在安装补丁程序之
前先在测试机器上做测试,同时提前做好目标服务器的数据备份。
给SA一个复杂的口令。
说明:SA具有对SQL SERVER数据库操作的全部权限。遗憾的是,一部分网管对数据库并
不熟悉,建立数据库的工作由编程人员完成,而这部分人员往往只注重编写SQL语句本身,
对SQL SERVER数据库的管理不熟悉,这样很有可能造成SA口令为空。这对数据库安全是一
个严重威胁。目前具有这种隐患的站点不在少数。
严格控制数据库用户的权限,轻易不要给让用户对表有直接的查询、更改、插入、删除
权限,可以通过给用户以访问视图的权限,以及只具有执行存储过程的权限。
说明:用户如果对表有直接的操作权限,就会存在数据被破坏的危险。制订完整的数据
库备份与恢复策略。
- ---------------------------_/66 \ \_@
║我是笨猪我怕谁?!║ (")_ / / |
╚════════╝ '--'|| |-\ /
//_/ /_/
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 210.46.79.17]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:214.965毫秒