一、 正确安装Windows2000
1. 安装之前对硬盘进行重新分区、格式化,确保硬盘上没有任何数据。
2. 确保机器上只有Windows2000一套操作系统,并且没有启动菜单,如果有启动菜单的话,可以修
改C:\boot.ini 将启动延时去掉。
3. 安装驱动程序时,一定只能安装硬件厂商提供的官方驱动。
4. 一定要保证用NTFS格式化所有分区,并且要一次性全部格式化成NTFS分区,不允许先格式化成
FAT32再转换成NTFS。
5. 由于大多数杀毒软件都没有提供对软盘启动后NTFS分区病毒的查杀,所以平时必须作好防病毒工
作。建议准备瑞星杀毒软件,这是目前唯一支持软盘启动后NTFS分区病毒的查杀毒软件。
6. 将操作系统文件所在分区与WEB数据包括其他应用程序所在分区分开,在安装时最好不要使用默
认目录。例如:Windows2000默认目录为WINNT,可以改为WIN2K或更复杂如WIN_2K_A。
7. 完成网络设置和其他一些设置后,开始安装系统补丁。安装当前所有的Service Pack 和 Hot
Fixes。安装的补丁应该直接来源于微软的 Windows Update ,绝对不允许安装从其他非官方网站
下载补丁。除了补丁之外,不要随便升级Windows 组件,如IE。在Windows2000中实现了IE5.01和
系统的无缝整 合,如果贸然升级可能会带来不必要的麻烦!安装了补丁之后,以后如果从
Windows2000光盘上安装新的Windows程序或对Windows2000进行设置,需要Windows2000光盘,那么
在设置完毕后必须重新安装补丁程序。另外,还要经常关注微软最新补丁的发布,给服务器安装最
新的补丁!
8. 作好数据备份工作。
9. 另外,在完成设置前绝对不能将服务器连入网络,特别是Internet,因为Windows2000安装时,
在输入用户管理员帐号Administrator的密码后,系统会建立一个 $Admin 的共享帐号,但是没有
用刚输 入的密码来保护它,这种情况一直会持续到计算机再次启动。在此期间,任何人都可以通
过 $Admin进入系统,同时,安装完成,各种服务会马上自动运行,而这时的服务器还到处是漏
洞,非常容易从外部侵入
。
二、 IIS设置
1. 安装IIS时应该注意只安装Option Pack中必须的服务,建议不要安装Index Server、FrontPage
Server Extensions、示例WWW站点等功能。
2. 关闭不必要的服务,服务开的多不是好事,将没必要的服务通通关掉,特别是连管理员都不知道
的和一些危险的服务,免得给系统带来灾难,同时也能节约一些系统资源。以下服务是一定要关闭
的:
Schedule
FTP publishing service
Telnet
Terminal Services
RunAs Service
Telphony
Remote Access Server
Remote Procedure Call (RPC) locater
Spooler
TCP/IP Netbios Helper
Telphone Service
3. 打开管理工具中的Internet服务管理器,删除“默认Web站点”及其下的所有目录,并且将这些
文件彻底清理出硬盘!在非系统分区建立Web根目录,假设为:D:\webroot\ 。
4. 在“管理Web站点”上单击鼠标右键,选择“新建?站点”。根据提示操作,站点说明假设为“
Web”,目录输入 D:\webroot\ ,只给读取权限。
5. 在“web”的属性“主目录”中设置执行许可为“无”,“应用程序设置”、“配置”中删除不
必要的IIS扩展名映射。最好去掉 .IDC、.HTR、.STM、.IDA、.HTW应用程序映射,.shtml、.shtm
等如果 无用也应去掉。如果需要ASP,那么就建立一个D:\webroot\cgi-bin目录,在“属性”“目
录”里允许脚本资源访问,应用程序设置里点击“创建”,“应用程序配置”里添加对ASP的映
射,所有ASP文件都放在 这个目录下,在“应用程序调试”中选取“发送文本错误消息给客户”。
注意:安装Service Pack后,IIS的应用程序映射应重新设置。
安装新的Service Pack后,某写应用程序映射又会重新出现,导致出现安全漏洞。这是较易疏忽的
一点。
三、 帐号策略
1. 帐号应尽可能少,且尽可能少用来登录;网站帐号一般只能用来做系统维护,多余的的帐号一个
也不要,因为多一个帐号就多一分危险。
2. 除了Administrator外,有必要再增加一个属于管理员组的帐号;两个管理员组的帐号,一方面
防止管理员忘记密码,两一方面,一旦黑客攻破了一个帐号,我们还有机会在短期内重新取得控制
权。
3. 所有帐号权限需要严格控制,轻易不要给帐号以特殊权限。
4. 将Administrator重新命名,并且重命名为一个很复杂的名字。其他一般帐号也应遵循这一原则
。
5. 将Guest帐号禁用,并且重命名为一个复杂的名字,并将它从Guest组删除。
6. 创建一个帐号陷阱,就是说创建一个Administrator的本地帐号,把它的权限设置成最低,什么
事也干不了的那种。并且加上一个超过10位的超级复杂密码,让黑客忙去吧!嘿嘿。
7. 给所有帐号加复杂口令,建议是字母、数字、特殊字符的组合。据测试,仅字母加数字的5位口
令在几分钟内就会被攻破,而所推荐的方案则安全的多。
8. 定期修改口令。另外,如果在日志审核中发现某个帐号被连续尝试,应立即更改该帐号(包括用
户名和密码)。
9. 对于IIS服务器,建议不要使用帐户锁定策略,因为黑客可以通过对帐号的反复登录尝试使其锁
定,其后果就是任何人都无法访问IIS服务器,目前还没有解决办法。
10. 在“本地策略”的“安全选项”里,把“Lan Manager身份验证级别”改为“仅发送NTLM响应”
,这样即使入侵者借助Sniffer得到口令的hash也很难破解;还可以避免直接传递值的进攻方法---
----尽 管这是一种较高级的技巧,但是已经有人写出了可以利用的程序。把“匿名连接的额外限
制”设置为“没 有显示匿名权限就无法访问”;启用“在关机时清理虚拟内存交换页面”;启用
“登录屏幕上不要显示上 次登录的用户名”。
四、 修改NTFS的安全权限
说明:NTFS下所有文件默认情况下对所有人(eneryone)为完全控制权限,如果限制一般用户只有只读权
限的话,有可能会导致一些脚本运行不正常,这时需要对这些文件所在的文件夹权限进行更改。建议在做
更改前,先在测试机器上做测试,然后慎重更改。
可以参考下列设置:
对于所有硬盘分区:
system:完全控制
Adminstrator:完全控制
\program files\command files 目录
everyone:读取及运行
列出文件目录
读取
\webroot
IUSR_MACHINE:读取及运行
列出文件目录
读取
\winnt\system32
选择除了Inetsrv和Centsrv以外的所有目录,去除“允许将来自父系的可
继承权限传播给对象”选项框,复制。
五、 打开审核策略
打开安全审核是Win2000最基本的入侵检测方法。当有人尝试对你的系统进行某些(如尝试用户名密码、
改变帐户策略、未经许可的文件访问等等)入侵的时候,都会被安全审核记录下来。很多管理员在系统被
入侵了几个月都不知道,知道系统遭到破坏。下面的这些审核是必须开启的,其他的可以根据需要增加。
策略 设置
审核系统登录事件 成功,失败
审核帐户管理 成功,失败
审核登录事件 成功,失败
审核对象访问 成功
审核策略更改 成功,失败
审核特权使用 成功,失败
审核系统事件 成功,失败
六、 使用EFS加密系统
EFS密码组结合了对称加密(DESX)和非对称加密(RSA)的优点,优于对数据使用非对称加密(用这种方
法仅FEK被加密),数据使用对称加密进行加密。备份进程备份加密格式的文件,消除了备份操作需要访
问数据的需要。
EFS集成进文件系统,因此一个而已的用户不能饶过文件系统访问到硬盘。而且,所有运行在内核模式下
的EFS驱动程序不能由用户直接访问。
另外,它可以和NTFS很好的共存,EFS可以被认为除NTFS外的第二层防护,为访问一个被加密的文件,用
户必须有访问到文件的NTFS权限。在相关NTFS权限的用户能看到文件夹中的文件,但不能打开文件,除非
有相应的解密钥匙。同样,一个用户有相应的钥匙,但没有相应的NTFS权限,也不能访问到文件。所以一
个用户要打开加密的文件,同时需要NTFS权限和解密钥匙。
然而,NTFS权限可能被大量的方法穿越,包括口令破解程序、用户在离开前没有退出系统或系统内部的
NTFSDOS。
在Windows2000下,当一个文件使用EFS加密后,一个未授权的用户,即使访问到磁盘上的文件,但也不能
访问文件上的数据,因为没有授权用户的私匙。
七、 TCP/IP的筛选
Windows2000从Windows NT继承了TCP/IP筛选的功能。打开“网络和拨号连接”,在对外连接的网卡的
TCP/IP“属性”“高级”的选项页,选择“TCP/IP筛选”。因为我们对外只需提供HTTP服务,所以只允许
TCP80端口。UDP端口禁用,因为我们的服务器不需要UDP端口。
八、 修改注册表加强安全
1. 设置生存时间
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
DefaultTTL REG_DWORD 0-0xff (0-255 十进制,默认值128)
2. 关闭DirectDraw
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI
Timeout REG_DWORD 0x0
3. 防止重定向报文攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnableICMPRedirects REG_DWORD 0x0
4. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
Interfaces\interface
PerformRouterDiscovery REG_DWORD 0x0
5. 防止SYN洪水攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
SynAttackProtect REG_DWORD 0x2
6. 禁止C$、D$一类的缺省共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\
parameters
AutoShareServer REG_DWORD 0x0
7. 禁止ADMIN$ 缺省共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\
parameters
AutoshareWks REG_DWORD 0x0
8. 限制IPC$ 缺省空链接
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Restrictanonymous REG_DWORD 0x0
9. 不支持IGMP协议
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
IGMPLevel REG_DWORD 0x0
10. 设置arp缓存老化时间设置
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
ArpCacheLife REG_DWORD 0-0xFFFFFFFF
ArpCacheMinReferencedLife REG_DWORD 0-0xFFFFFFFF
11. 禁止死网关检测技术
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnableDeadGWDetect REG_DWORD 0x0
12. 不支持路由功能
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
IPEnableRouter REG_DWORD 0x0
13. 做NAT时放大转换的对外端口最大值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
MaxUserPort REG_DWORD 5000-65534
14. 修改MAC地址
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
找到右窗口中说明为“网卡”的目录,比如{4D36E972-E325-11CE-BFC1-08002BE10318}展开之,在其下的
0000,0001,0002……分支中找到“DriverDesc”的键值为你网卡的说明,比如“DriverDesc”的值为“
Intel (R) 82559 FAST Ethernet LAN on Motherboard”,然后在右窗口新建一字符串值,名字为“
Networdaddress”,内容为你想要的MAC值,比如“004040404040”,重新启动计算机,使用 ipconfig
/all 看看,MAC地址已经改变了。
九、 SQL服务器的设置
我们的服务器没有采用SQL数据库,所以此段暂时先省略。如有需要请和我联系。
十、 ASP编程安全
1. 涉及用户名与口令的程序最好封装在服务器端,尽量少地在ASP文件里出现,涉及到与数据库连
接的用户名与口令应给予最小权限。
2. 需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取
这个页面。
3. 当存在ASP的主页正在制作并没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索
对象,如果这时候有人利用搜索引擎对这些页面进行查找,会得到有关文件的定位,并能在浏览器中查看
到数据库地点和结构的细节,揭示完整的代码。
4. 有些编辑ASP程序的工具,当穿件或者修改一个ASP文件时,编辑器自动创建一个备份文件,比如
:UltraEdit就会备份一个.bak文件,如你创建或者修改了some.asp,编辑器自动生成一个叫
some.asp.bak的文件,如果你没有删除这个文件,攻击者可以直接下载some.asp.bak文件。造成了源程序
的泄露。
5. 在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、JavaScript、VBScript语句,
如无特殊要求,可以限制只允许输入字母与数字,屏蔽掉特殊字符,同时对输入字符的长度进行限制,不
但在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。
6. 在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路
径和数据库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。
解决办法:①为你的数据库文件名称起个复杂的非常规的名字,并把它放在几个目录下。例如:一个
d34ksfslf.mdb这样的怪名字可比book.mdb难猜的多吧,你再把它放在/kdslf/i44/studi/ladfja/这样的
目录下边,呵呵,让黑客去猜吧。
②不要把数据库名写在程序中。假如万一给人拿到了源程序,你的数据库名字就一览无余了。
③使用ACCESS来为数据库文件编码及加密。首先在选取“工具?安全?加密/解密数据库”,选取数据库(
如:employer.mdb),然后直接确定,接着会出现“数据库加密后另存为”的窗口,存为:
employer1.mdb。接着employer.mdb就会被编码,然后存为employer1.mdb。注意,以上的动作并不是对数
据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库问家的内
容。
接下来才是数据库加密部分:首先,以打开经过编码了的employer1.mdb,在打开时,选择“独占”方式
。然后选取功能表的“工具?安全?设置数据库密码”,输入密码即可。这样即使他人得到了
employer1.mdb文件,每哟密码他也无法看到具体内容。
好了,IIS的安全配置到此就告一段落了,接下来找个流光IV或SSS来扫描一下吧。没有漏洞的服务器是不
存在的,在安全上无论怎样小心都不是过分的!