Windows2000是一个先进的操作系统,在安全上改掉了以往2000版本的不少毛病,用windows2000建立的web站点在所有的网站中占了很大一部分比例,但2000的安全问题一直比较突出,使得一些基于2000的网站有一种如履薄冰的感觉,然而微软并没有明确的解决方案,只是推出了一个个补丁程序,各种文档上对于2000的安全描述零零碎碎,给人们的感觉是无所适从,于是,有的网管干脆什么措施也不采取,有的忙着下各种各样的补丁程序,有的在安装了防火墙以后就以为万事大吉了,这种现状导致了大量基于2000的网站安全性参差不齐,只有极少输2000网站有较高的安全性。
一.正确安装windows2000
安装windows2000之前应该对硬盘进行重新分区,格式化,确保硬盘上没有任何数据。一台安全的服务器上绝不能有多个操作系统,确保机器上只有windows2000一个操作系统,安装两种以上的操作系统,会给黑客以可乘之机,安装两种以上的操作系统重启到另一个没有设置的操作系统,进而进行破坏。另外,嘴还准备一台配置稍微的电脑作为测试机使用.
Windows2000的安装应该注意安装过程中不要随便离开,不能使用无人值守安装,安装完毕,一些windows可以识别的硬件驱动程序已经安装,对于需要手动安装驱动的硬件,只能使用硬件厂商提供的官方驱动,即硬件光盘上面所附带的驱动程序。绝对不允许从非官方网站下载驱动程序,最好不要随便升级驱动程序,另外,为了确保系统安全,绝对要用NTFS格式化所有分区,并且要一次性全部格式化成NTFS分区,不允许格式化成FAT分区,在转化为NFFS分区,不允许先格式化成FAT分区。再转化为NTFS分区,NTFS比FAT分区剁了安全控制功能,可以对不同的文件夹设置不同的访问效果。安全性大大增强,但是NTFS分区有一个错在的危险,就是目前大多数反病毒软件没有提供对软盘启动后NTFS分区病毒的查杀,一旦系统中了恶性病毒而导致系统不能正常启动,后果就比较严重,所以平时必须做好防病毒工作,建议准备瑞星杀毒软件,这是目前唯一支持软盘气动后NTFS分区病毒的查杀软件!
将系统文件所在分区在Web数据包包裹其他应用程序所在的分区分开,在安装时,最好不要使用系统默认目录,windows2000安装完毕后,就开始对windows2000进行设置,完成网络设置和其他一些设置之后。开始安装系统补丁,安装当前所有的Service Pack 和 Hot Fixes安装的补丁应该直接来源于微软的Windows Updata 绝对不允许安装从其他非官方网站下载的补丁,除了不定之外,不要随便升级windows组件。如IE等,在windows2000中实现了IE5.01和系统的无缝整合,如果贸然升级更高的版本,会带来不必要的麻烦!安装了补丁程序,另外,还要经常关注微软最新补丁的发布,给服务器安装最新的补丁!安装ServicePack前应现在测试机器上安装最新的补丁!安装Service Pack 前应现在测试机器人安装一次,以防因为意外原因导致机器死机,同时做好数据备份。
另外,在完成设置之前绝对不能将服务器连入网络,特别是Internet,因为Windows2000安装时,在输入用户管理员账号 Administrator 的密码后,但是并没有用输入的密码来保护它。这种情况一直会持续到计算机再次启动,在此期间,任何人都可以通过 Admin 进入系统,同时安装完成,各种服务会马上自动运行,这使得服务器到处是漏洞,非常容易从外部侵入。
二.IIS设置
暗组航IIS时应该注意只安装Optoin Pack 中必须的服务,建议不要安装Index Server,FrontPage Server EXrensions 示例www站点等功能,IIS中的众多安全隐患是由其他一些功能引起的,如果仅做一个www站点,就安装必须的服务,这样可以减少黑客利用这些漏洞攻击的机会。
关闭不惜要的服务,服务开的太多也不是个好事,将没有必要的符文统统关掉,特别是连管理员都不知道是干什么的和一些很危险的服务,免得给系统带来灾难,同时也能节约一些系统资源。建议在停掉前查阅帮助文档并首先在测试服务器上做一下调试,比如一下服务是一定要关闭的
打开管理工具中的Internet服务器管理器,删除 默认WEB站点 及其下的所有目录,并且将这些文件彻底清理出硬盘!在非系统区分独立Web根目录,并且将这些文件彻底清理出硬盘!在非系统分区建立Web根目录,假设为D:/webroot/
在管理WEB站点 上右击,选择 新建-站点,根据提示操作,站点说明假设为Web 目录输入D/webroot/ 只给读取权限
在Web的属性 主目录中执行许可为 无 应用程序设置 配置中删除不必要的TTS扩展名映射,最后去掉 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组删掉,有的黑客工具正是利用了GUest的弱点,可以讲帐号从一般用户提升到管理员组。
6.创建一个陷阱帐号,什么是陷阱帐号?就是创建一个名为 Administrator的本地帐户,把它的权限设置成最低。什么事也干不了的那种,并且加上一个超过10位的超级辅助密码。这样可以让那些Scripts 忙上一段时间了,并且可以借此发现他们的入侵企图,或者在他的Login scripts上面做点手脚。
7.给所有用户帐号 一个复杂的口令,长度最少在8位数以上,并且必须同时包含字母,数字,特殊字符,同时不要使用大家熟悉的单词 如 microsoft 熟悉的键盘熟悉qwert 熟悉的数字 2000 等,口令是黑客攻击的重点,口令一旦被突破,也就无任何系统安全可言了,而这往往是不少网管所忽视的地方,据测试,仅加数字的5位数口令即在几分钟内就会被攻破,面所推荐的方案要安全的多。
8.口令必须定期更改,且最好记在心里,不要在任何地方做记录!另外,如果在日志审核,发现某个账号被连续尝试,则必须立刻改此账号。
9.对于运行IIS的服务器。建议不要使用账户锁定策略,因为黑客可以通过对帐号的反复登录尝试使其锁定,其后果就是任何人都无法访问IIS服务器,目前还没有解决的办法。
10.在本地策略的安全选项里,把Lan Manager 身份验证级别 改为 仅发送NTLM响应,这样即使入侵者接住Sniffer得到口令的hash也很难破解,还可以避免直接传递值的进攻方法尽管这是一种较高的技巧,但是已经有人写出了可以利用的程序。把匿名连接的额外限制,设置为 没有显示权限就无法访问,启用 在关机时清理虚拟内存交换页面,启用 登录屏幕上不要显示上次登录的用户名。
四.修改NTFS的安全权限
说明:NTFS下所有文件默认情况下对所有人未完全控制权利,这使黑客有可能使用一般用户身份对文件做增加,删除,执行等操作,建议对一般用户只给予读取权限,而只给管理员和System已完全控制权限,但这样做有可能是某些正常等等脚本程序不能执行,或者某些需要写的操作不能完成,这是需要对这些文件所在的文件夹权限进行更改。建议在做更改前,先测试机器上作测试,然后慎重更改。
可以参考下列设置:
对于所有硬盘分区:
System:完全控制
Administrator:完全控制
(允许将来自复习的科技城全县传播给对象)
\ProgramFiles\Command Files
Everyone:读取及运行p;p;p;p;p;p;p;p;p; 列出文件目录p;p;p;p;p;p;p;p;p; 读取
(允许将来自父系的可继承权限传播给对象)
\webroot:
IUSR_MACHINE:读取及运行p;p;p;p;p;p;p;p;p;p;p;p;p;p; 列出文件目录p;p;p;p;p;p;p;p;p;p;p;p;p;p; 读取
(允许将来自父系的可继承权限传播给对象)
\Winnt\system32
选择除了Inetsrv和Centsrv以外的所有目录,去除 允许将来自父系的可继承权限传播给对象 的选项,复制。p;
五.打开审核策略
开启安全审核是Win2000最基本的入侵检测方法,当有人尝试对你的系统进行某些(如尝试用户密码,改变账户策略,未仅许可的文件访问等等)入侵的时候,都被安全审核记录下来,很多管理员在系统被入侵了几个月都不知道,
直到系统遭到破坏,下面的这些审核是必须开启的,其他的可以更具需要增加。
p;
六.使用EFS加密系统
有很多人对于EFS不是很 感冒 ,但是他确实有很多的优点。
在硬盘加密数据的能力对于进出硬盘自身有极大的好处。另外,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属性 高级的选项页。如图2所示
选择TCP IP筛选,因为我们对外只需要提供HTTP服务,所以只允许TCP80端口。UDP端口禁用,因为我们的服务器不需要UDP端口,开着反而会成为黑客攻击的目标,所以删除如图
另外,对于Netbios等协议的禁用,已经有N多文章。在此不再重复。
八.修改注册表加强安全
九.修改注册表加强安全
1.设置生存时间
说明,制定传出IP数据包中设置的默认生存时标前在网络中生存的最大时间,它实际上限定了IP数据包在丢弃前允许通过的路由数量,有时,利用此数值来探测远程主机操作系统。
2.关闭DirectDraw
说明:这是C2级安全标准对视频卡和内存的要求,关闭DirectDraw可能对一些需要用到DirectX的程序有影响,但是对于绝大多数的商业站点都应该是没有影响的、
3.放置ICMP重定向报文的攻击
说明:该参数控制Windows 2000是否会改变其路由表,以响应网络设备(如路由器)发送给它的ICMP重定向消息,有时会被利用来干坏事,win2000中默认值为1,标识相应ICMP重定向报文。
4.放置SYN洪水攻击
说明:SYN攻击保护包括减少SYN-ACK重新传输次数,以减少分配资源所保留的实践,路由缓存项资源分配延迟,直到建立连接为止,如果SYNATTACKPROTECT=2,则AFD的连接指示一直延迟到三路握手完成为止,注意,尽在
TcpMax HalfOpen和TcpMaxHalfOpenRetried设置超出范围时,保护机制才会采取措施。
5.禁止C$,D$一类的缺省共享
6.禁止ADMN$缺省共享
7.设置ARP缓存老化时间设置
说明:如果ARPCachelife大于或等于ArpCacheMinREferenoedLife,则引用或未引用的ARP缓存项在ARPCachelife秒后到期,如果ARPCachelife小于ArpCacheMinREferenoedLife秒后到期,每次将出站数据包发送到项的IP地址
时,就会引用ARP缓存中的项。
8.禁止死网关检测技术
说明:如果你设置了多个网关,那么你的机器在处理多个连接有困难时候,就会自动改用备份网关,有时候这并不是一个好主意,建议禁止网关检测。
9.不支持路由功能
说明:把值设置为0X1可以使Win2000具备路由功能,由此带来不必要的问题。
10.做NAT时放大转换的对外端口最大值
说明:当应用程序从系统请求可用的用户端口数时,该参数控制所使用的最大端口数,正常情况下,短期端口的分配数量为1024-5000,将该参数设置到有效范围以外的时候,就会使用最接近的有效数值,使用NAT时,建议把值放大点。
九.SQL服务器的设置
微软的SQL Server是在一种广泛使用的数据库,很多电子商务网站,企业内部信息化平台等都是基于SQL SERVER的,但是数据库的安全性还没有被人们更系统的安全性等同起来,多数管理员认为只要把网络和操作系统的安全搞好了,那么,所有的应用程序也就安全了,大多数系统管理员对数据库不熟悉,而数据库管理员有对安全问题关心太少,而且一些安全公司也忽略数据库安全按。这就使数据库中的安全问题更加严峻了,数据库系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且都难以发现,数据库应用程序通常同操作系统的最高管理员密切相关,广泛sql server数据库又是属于端口型的数据库,这就表示任何人都能够用分析工具试图连接到数据库上,从而绕过操作系统的安全机制,进而闯入系统,破坏和窃取数据资料,甚至破坏整个系统。
首先给SA一个复杂的口令,SA具有对SQL SERVER数据库操作的全部权限,遗憾的是,一部分网关对数据库并不熟悉,建立数据库的工作由编程人员,而这部分人员往往只注重编写SQL语句本身,对sql server数据库的管理不熟悉,这样很有可能造成SA口令为空,这对数据库安全是一个严重威胁,目前具有这种隐患的站点不在少数。
有关SQL Server的配置这里就不在赘述了,需要强调一点的是,由于SQL的强大功能,给黑客的入侵带来了不少的方便,比如以下的OEL存储过程:
这些都是对安全有威胁的过程,注册表存储过程甚至能够读出操作系统管理员的密码,虽然删除他们可能会造成管理器中的某些特征不能使用,但是,为了安全,还是删除了吧!
十.SAP编程安全
安全不仅是网管的事情,编程人员也必须在某些安全细节上注意,养成良好的安全习惯,否则,会给黑客有机可趁,目前,大多数网站上的ASP程序有这样那样的安全漏洞,如果写程序的时候注意一点的话,还是可以避免的。
1.涉及用户名和口令的程序最好封装在服务器端,尽量少在ASP文件里出现,涉及到与数据库连接的用户名和口令应给予最小的权限。说明:用户名和口令往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码,后果是很严重的,因此要尽量减少他们在ASP文件中的出现次数,出现的次数多的用户名和口令可以写在一个位置比较隐蔽的包含文件中,吐过涉及到与书记哭连接,理想状态下只给它可以执行存储过程的权限,千万不要直接给予该用户以修改、插入、删除记录的权限。
2.需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一个页面转进来的会话才能读取这个页面。说明:现在需要经过验证的ASP程序多是在页面头部加一个判断语句,但这还不够,有可能被黑客绕过验证直接进入,因此有必要跟踪上一个页面。
3.当存在ASP的主页正在制作并没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象,如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,揭示完整的源代码。
解决方案:程序员应该在网页发布前对其进行彻底的调试,安全专家需要固定ASP包含文件以及使外部的用户不能看他们,首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件,使用户无法从浏览器直接观看文件的源代码。.inc文件的文件名不用使用系统默认的或者有特殊含义容易被用户猜测到的,尽量使用无规则的英文字母。
4.有些编辑ASP程序的工具,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,比如:Uitra Edit就会备份一个.back文件,如你创建或者修改了SOME.ASP,编辑器自动生成一个叫SOME.asp.bak文件,如果你没有删除这个bak文件,攻击有可能直接下载some.aso.bak文件,这样some.asp的源程序就会被下载
5.在处理类似留言板,BBS等输入框的ASP程序中,最好屏蔽掉HTML、、语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符,同时对输入字符的长度进行限制,不但在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。说明:输入框是黑客可以利用的一个目标,他们可以通过输入脚本语言等对用户端造成损坏;如果该输入框涉及到数据查询,他们会利用特殊查询输入得到更多的数据库数据,甚至是表的全部,因此必须对输入框进行过滤,如果为了提高效率,仅在客户端进行输入合法性检查,仍有可能被绕过,因此必须在服务器端在做一次检查。
6.在用ACCESS做后台的数据库时候,如果有人通过各种方法指导或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个ACCESS数据库文件,则是非常危险的。
解决方法:
1.为你的数据库文件名称起个复杂的非常规的名字,并把它放在几目录下,所谓“非常规”打个比方:比如有个数据库要保存的是有关书籍的信息,可不要把他起一个“BOOK.MDB”的名字,起一个怪怪的名称,比如D34Ksfslf.db,看看是不是像进行了加密的?在把他放在如./kdslf/i44/studi的几层目录下,这样黑客要想通过猜的方法得到你的ACCESS数据库文件就难上加难了。
2.不要把数据库名卸载程序中,假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余了。
3.使用ACCESS来为数据库文件编码及加密。首先在选取工具→安全→加密/解密数据库,选取数据库,然后直接确定,接着会出现,数据库加密后另存为的窗口,村委employel.mdb,接着employer.mdb就会被编码,然后村委employermdb