论坛: 菜鸟乐园 标题: NT/2000服务器终极安全设置与优化指南(初级篇) 复制本贴地址    
作者: bailey [bailey]    论坛用户   登录
NT/2000服务器终极安全设置与优化指南(初级篇)

这里给出的Windows服务器的安全解决方案,主要针对建立Web站点的NT、2000服务器,对于局域网内的服务器并不合适。
一、 定制自己的NT/2000 SERVER 
1.版本的选择
英文版的WIN2000相对较安全,在语言不成为障碍的情况下,请选择英文版Win2000。 

2. 组件的定制
根据安全原则,最少的服务+最小的权限=最大的安全。典型的WEB服务器需要的最小组件选择是:只安装IIS的Com Files,IIS Snap-In,WWW Server组件。如果你确实需要安装其他组件,请慎重,特别是:Indexing Service, FrontPage 2000 Server Extensions, Internet Service Manager (HTML)这几个危险服务。 

二、 正确安装NT/2000 SERVER 
不论是NT还是2000,硬盘分区均为NTFS分区; 
说明: 
(1) NTFS比FAT分区多了安全控制功能,安全性比FAT强。 
(2) 建议最好一次性全部安装成NTFS分区,而不要先安装成FAT分区再转化为NTFS分区。 
(3) 安装NTFS分区有一个潜在的危险,就是目前大多数反病毒软件没有提供对软盘启动后NTFS分区病毒的查杀,这样一旦系统中了恶性病毒而导致系统不能正常启动,后果就比较严重,因此及建议平时做好防病毒工作。 
(4)分区和逻辑盘的分配 
建议把系统分区和应用程序分区分开。推荐的安全配置是建立三个逻辑驱动器,第一个大于2G,用来装系统和重要的日志文件,第二个放IIS,第三个放FTP,这样无论IIS或FTP出了安全漏洞都不会直接影响到系统目录和系统文件。IIS和FTP是对外服务的,比较容易出问题。而把IIS和FTP分开主要是为了防止入侵者上传程序并从IIS中运行。 
(5)安装顺序的选择 
首先,在完全安装并配置好win2000 SERVER之前,不要把主机接入网络。
其次,补丁的安装应该在所有应用程序安装完之后。因为补丁程序往往要替换/修改某些系统文件,如果先安装补丁再安装应用程序有可能导致补丁不能起到应有的效果。

三、 安全配置NT/2000 SERVER 
即使正确的安装了WIN2000 SERVER,系统还是有很多的漏洞,还需要进一步进行细致地配置。 
1.端口: 
端口是计算机和外部网络相连的逻辑接口,也是计算机的第一道屏障,端口配置正确与否直接影响到主机的安全,一般来说,仅打开你需要使用的端口会比较安全,配置的方法是在网卡属性-TCP/IP-高级-选项-TCP/IP筛选中启用TCP/IP筛选。

2.IIS 
IIS是微软的组件中漏洞最多的一个,所以IIS的配置是重点。
首先,把C盘那个什么Inetpub目录彻底删掉,另外在D盘建立IIS的主目录; 
其次,把IIS安装时默认的什么scripts等虚拟目录一概删除,如果你需要什么权限的目录可以自己慢慢建,需要什么权限开什么。(特别注意写权限和执行程序的权限,没有绝对的必要千万不要给)。
第三,应用程序配置。在IIS管理器中删除必须之外的任何无用映射,必须指的是ASP,ASA和其他你确实需要用到的文件类型,例如你用到stml等(使用server side include),实际上90%的主机有了上面两个映射就够了。其余的映射几乎每个都有严重的安全问题:htw, htr, idq, ida……。
在IIS管理器中右击主机->属性->WWW服务 编辑->主目录配置->应用程序映射,然后就开始一个个地删。接着在刚刚那个窗口的应用程序调试书签内将脚本错误消息改为发送文本(除非你想ASP出错的时候用户知道你的程序/网络/数据库结构)错误文本写什么?随便你喜欢,自己看着办。点击确定退出时别忘了让虚拟站点继承你设定的属性。安装新的Service Pack后,IIS的应用程序映射应重新设置。(说明:安装新的Service Pack后,某些应用程序映射又会出现,导致出现安全漏洞。这是管理员较易忽视的一点。) 
为了对付日益增多的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.帐号策略
����(1) 帐号尽可能少,且尽可能少用来登录; 
����说明:网站帐号一般只用来做系统维护,多余的帐号一个也不要。 
����(2) 除过Administrator外,有必要再增加一个属于管理员组的帐号; 
����说明:两个管理员组的帐号,一方面防止管理员一旦忘记一个帐号的口令还有一个备用帐号;另方面,一旦黑客攻破一个帐号并更改口令,我们还有有机会重新在短期内取得控制权。 
����(3) 所有帐号权限需严格控制,轻易不要给帐号以特殊权限; 
����(4) 将Administrator重命名,改为一个不易猜的名字。其他一般帐号也应尊循这一原则。 
����(5) 将Guest帐号禁用,同时重命名为一个复杂的名字,增加口令,并将它从Guest组删掉; 
����说明:有的黑客工具正是利用了guest 的弱点,可以将帐号从一般用户提升到管理员组。 
����(6)给所有用户帐号一个复杂的口令(系统帐号出外),长度最少在8位以上, 且必须同时包含字母、数字、特殊字符。同时不要使用大家熟悉的单词(如microsoft)、熟悉的键盘顺序(如qwert)、熟悉的数字(如2000)等。 
����(7)口令必须定期更改(建议至少两周该一次),且最好记在心里,除此以外不要在任何地方做记录;另外,如果在日志审核中发现某个帐号被连续尝试,则必须立刻更改此帐号(包括用户名和口令); 
����(8)在帐号属性中设立锁定次数,比如改帐号失败登录次数超过5次即锁定改帐号。这样可以防止某些大规模的登录尝试,同时也使管理员对该帐号提高警惕。 

4.安全日志
Win2000的默认安装是不开任何安全审核的,推荐的审核是: 
账户管理     成功   失败                登录事件     成功   失败
对象访问     失败                       策略更改     成功   失败 
特权使用     失败                       系统事件     成功   失败 
目录服务访问 失败                       账户登录事件 成功   失败 

审核的项目一般也不能太多,这样不仅会占用系统资源,而且会导致你根本没空去看。与之相关的是: 
在账户策略->密码策略中设定: 
密码复杂性要求 启用       密码长度最小值 6位 
强制密码历史 5 次         最长存留期 30天 
在账户策略->账户锁定策略中设定: 
账户锁定 3次错误登录     锁定时间 20分钟        复位锁定计数 20分钟 
同样,Terminal Service的安全日志默认也是不开的,我们可以在Terminal Service Configration(远程服务配置)-权限-高级中配置安全审核,一般来说只要记录登录、注销事件就可以了。 

5.目录和文件权限
为了控制好服务器上用户的权限,同时也为了预防以后可能的入侵和溢出,我们还必须非常小心地设置目录和文件的访问权限,NT的访问权限分为:读取、写入、读取及执行、修改、列目录、完全控制。在默认的情况下,大多数的文件夹对所有用户(Everyone这个组)是完全敞开的(Full Control),你需要根据应用的需要进行权限重设。 
在进行权限控制时,请记住以下几个原则: 
(1)权限是累计的:如果一个用户同时属于两个组,那么他就有了这两个组所允许的所有权限; 
(2)拒绝的权限要比允许的权限高(拒绝策略会先执行)如果一个用户属于一个被拒绝访问某个资源组,么不管其他的权限设置给他开放了多少权限,他也一定不能访问这个资源。所以请非常小心地使用拒绝,任何一个不当的拒绝都有可能造成系统无法正常运行; 
(3)文件权限比文件夹权限高 
(4)利用用户组来进行权限控制是一个成熟的系统管理员必须具有的优良习惯之一; 
(5)仅给用户真正需要的权限,权限的最小化原则是安全的重要保障; 

6.只安装一种操作系统: 
����说明:安装两种以上操作系统,会给黑客以可乘之机,利用攻击使系统重启到另外一个没有安全设置的操作系统(或者他熟悉的操作系统),进而进行破坏。 

7.安装成独立的域控制器(Stand Alone),选择工作组成员,不选择域; 
����说明:主域控制器(PDC)是局域网中队多台联网机器管理的一种方式,用于网站服务器包含着安全隐患,使黑客有可能利用域方式的漏洞攻击站点服务器。 
�� 
8.将操作系统文件所在分区与WEB数据包括其他应用程序所在的分区分开,并在安装时最好不要使用系统默认的目录,如将\WINNT改为其他目录; 

9.关于补丁
在NT下,如果安装了补丁程序,以后如果要从NT光盘上安装新的Windows程序,都要重新安装一次补丁程序,2000下不需要这样做。 
����说明: 
����(1)最新的补丁程序,表示系统以前有重大漏洞,非补不可了,对于局域网内服务器可以不是最新的,但站点必须安装最新补丁,否则黑客可能会利用低版本补丁的漏洞对系统造成威胁。这是一部分管理员较易忽视的一点; 
����(2)安装NT的SP5、SP6有一个潜在威胁,就是一旦系统崩溃重装NT时,系统将不会认NTFS分区,原因是微软在这两个补丁中对NTFS做了改进。只能通过Windows 2000安装过程中认NTFS,这样会造成很多麻烦,建议同时做好数据备份工作。 
����(3)安装Service Pack前应先在测试机器上安装一次,以防因为例外原因导致机器死机,同时做好数据备份。 
����尽量不安装与WEB站点服务无关的软件; 
����说明:其他应用软件有可能存在黑客熟知的安全漏洞。 

10.解除NetBios与TCP/IP协议的绑定 
����说明:NetBois在局域网内是不可缺少的功能,在网站服务器上却成了黑客扫描工具的首选目标。方法:对于是NT,控制面版――网络――绑定――NetBios接口――禁用;对于2000,控制面版――网络和拨号连接――本地网络――属性――TCP/IP――属性――高级――WINS――禁用TCP/IP上的NETBIOS 
���� 
����11.删除所有的网络共享资源,在网络连接的设置中删除文件和打印共享,只留下TCP/IP协议 。 
����说明:NT与2000在默认情况下有不少网络共享资源,在局域网内对网络管理和网络通讯有用,在网站服务器上同样是一个特大的安全隐患。(卸载“Microsoft 网络的文件和打印机共享”。当查看“网络和拨号连接”中的任何连接属性时,将显示该选项。单击“卸载”按钮删除该组件;清除“Microsoft 网络的文件和打印机共享”复选框将不起作用。) 
����方法: 
(1) NT:管理工具――服务器管理器――共享目录――停止共享; 
����   2000:控制面版――管理工具――计算及管理――共享文件夹―――停止共享 
���� 但上述两种方法太麻烦,服务器每重启一次,管理员就必须停止一次 
(2)修改注册表: 
运行Regedit,然后修改注册表在
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters下增加一个键 Name: AutoShareServer , Type: REG_DWORD, value: 0 
����然后重新启动您的服务器,磁盘分区共享去掉,但IPC共享仍存在,需每次重启后手工删除。 
���� 
12.改NTFS的安全权限
����说明:NTFS下所有文件默认情况下对所有人(EveryOne)为完全控制权限,这使黑客有可能使用一般用户身份对文件做增加、删除、执行等操作,建议对一般用户只给予读取权限,而只给管理员和System以完全控制权限,但这样做有可能使某些正常的脚本程序不能执行,或者某些需要写的操作不能完成,这时需要对这些文件所在的文件夹权限进行更改,建议在做更改前先在测试机器上作测试,然后慎重更改。 
���� 
����13.加强数据备份
����说明:这一点非常重要,站点的核心是数据,数据一旦遭到破坏后果不堪设想,而这往往是黑客们真正关心的东西;遗憾的是,不少网管在这一点上作的并不好,不是备份不完全,就是备份不及时。数据备份需要仔细计划,制定出一个策略并作了测试以后才实施,而且随着网站的更新,备份计划也需要不断地调整。 

����14.只保留TCP/IP协议,删除NETBEUI、IPX/SPX协议; 
����说明:网站需要的通讯协议只有TCP/IP,而NETBEUI是一个只能用于局域网的协议,IPX/SPX是面临淘汰的协议,放在网站上没有任何用处,反而会被某些黑客工具利用。���� 
���� 
����15.不要起用IP转发功能,控制面板->网络->协议->TCP/IP协议->属性,使这个选框为空。(NT) 
����说明:缺省情况下,NT的IP转发功能是禁止的,但注意不要启用,否则它会具有路由作用,被黑客利用来对其他服务器进行攻击。 
���� 
����16.安装最新的MDAC(http://www.microsoft.com/data/download.htm) 
����说明:MDAC为数据访问部件,通常程序对数据库的访问都通过它,但它也是黑客攻击的目标,为防止以前版本的漏洞可能会被带入升级后的版本,建议卸载后安装最新的版本。注意:在安装最新版本前最好先做一下测试,因为有的数据访问方式或许在新版本中不再被支持,这种情况下可以通过修改注册表来档漏洞,祥见漏洞测试文档。 
���� 
����17.设置IP拒绝访问列表 
����说明:对于WWW服务,可以拒绝一些对站点有攻击嫌疑的地址;尤其对于FTP服务,如果只是自己公司上传文件,就可以只允许本公司的IP访问改FTP服务,这样,安全性大为提高。 
���� 
����18.禁止对FTP服务的匿名访问 
����说明:如果允许对FTP服务做匿名访问,该匿名帐户就有可能被利用来获取更多的信息,以致对系统造成危害。 
���� 
����19.建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)。 
����说明:作为一个重要措施,既可以发现攻击的迹象,采取预防措施,也可以作为受攻击的一个证据。 
���� 
20.慎重设置WEB站点目录的访问权限,一般情况下,不要给予目录以写入和允许目录浏览权限。只给予.ASP文件目录以脚本的权限,而不要给与执行权限。 
����说明:目录访问权限必须慎重设置,否则会被黑客利用。 

����21. 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、VBScript语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制。而且不但在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。 
����说明:输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏; 如果该输入框涉及到数据查询,他们会利用特殊查询输入得到更多的数据库数据,甚至是表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过,因此必须在服务器端再做一次检查。 
����防止ACCESS mdb 数据库有可能被下载的漏洞 
����在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。 
����解决方法: 
����(1) 为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目录下。所谓 "非常规", 打个比方: 比如有个数据库要保存的是有关书籍的信息, 可不要把他起个"book.mdb"的名字,起个怪怪的名称,比如d34ksfslf.mdb, 再把他放在如./kdslf/i44/studi/ 的几层目录下,这样黑客要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。 
����(2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如: 
����DBPath = Server.MapPath("cmddb.mdb") 
����conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath 
����假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写: 
����conn.open "shujiyuan" 
����(3)使用ACCESS来为数据库文件编码及加密。首先在选取 "工具->安全->加密/解密数据库,选取数据库(如:employer.mdb),然后接确定,接着会出现 "数据库加密后另存为"的窗口,存为:employer1.mdb。 接着employer.mdb就会被编码,然后存为employer1.mdb.. 
����要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。 
����接下来我们为数据库加密,首先以打开经过编码了的 employer1.mdb, 在打开时,选择"独占"方式。然后选取功能表的"工具->安全->设置数据库密码", 接着 输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他是无法看到 employer1.mdb的。 

����23.SQL SERVER的安全 
����SQL SERVER是NT平台上用的最多的数据库系统,但是它的安全问题也必须引起重视。数据库中往往存在着最有价值的信息,一旦数据被窃后果不堪设想。 
����及时更新补丁程序。 
����说明:与NT一样,SQL SERVER的许多漏洞会由补丁程序来弥补。建议在安装补丁程序之前先在测试机器上做测试,同时提前做好目标服务器的数据备份。 
����给SA一个复杂的口令。 
����说明:SA具有对SQL SERVER数据库操作的全部权限。遗憾的是,一部分网管对数据库并不熟悉,建立数据库的工作由编程人员完成,而这部分人员往往只注重编写SQL 语句本身,对SQL SERVER数据库的管理不熟悉,这样很有可能造成SA口令为空。这对数据库安全是一个严重威胁。目前具有这种隐患的站点不在少数。 
����严格控制数据库用户的权限,轻易不要给让用户对表有直接的查询、更改、插入、删除权限,可以通过给用户以访问视图的权限,以及只具有执行存储过程的权限。 
����说明:用户如果对表有直接的操作权限,就会存在数据被破坏的危险。 
����制订完整的数据库备份与恢复策略。 

�� 24.PCANYWHERE的安全
����目前,PCANYWHERE是最流行的基于NT与2000的远程控制工具,同样也需要注意安全问题。 
����建议采用单独的用户名与口令,最好采用加密手段。千万不要采用与NT管理员一样的用户名与口令,也不要使用与NT集成的口令。同时在服务器端的设置时务必采用security options中的强加密方式,拒绝低加密水平的连接,同时采用口令加密与传输过程中的用户名与口令加密,以防止被嗅探到,还要限制连接次数,另外很重要的一点就是一定在protect item中设置高强度的口令,同时一定限制不能够让别人看到你的host端的任何设置,即便是要察看主机端的相关设置也必须要输入口令! 
����及时安装较新的版本。 


地主 发表时间: 05/21 21:44

回复: xcp2153964 [xcp2153964]   论坛用户   登录
原来看过的,不是很明白,不过看上去很经典

B1层 发表时间: 05/22 10:05

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号