Windows安全配置技术.docx
《Windows安全配置技术.docx》由会员分享,可在线阅读,更多相关《Windows安全配置技术.docx(33页珍藏版)》请在冰豆网上搜索。
Windows安全配置技术
Windows安全配置技术
一Windows下安全权限设置详解
【简介】
随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式攻击越来越多的被使用,WEBSHELL让防火墙形同虚设,一台即使打了所有微软补丁、只让80端口对外开放的WEB服务器也逃不过被黑的命运。
随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式攻击越来越多的被使用,WEBSHELL让防火墙形同虚设,一台即使打了所有微软补丁、只让80端口对外开放的WEB服务器也逃不过被黑的命运。
难道我们真的无能为力了吗?
其实,只要你弄明白了NTFS系统下的权限设置问题,我们可以对crackers们说:
NO!
WindowsNT里,用户被分成许多组,组和组之间都有不同的权限,当然,一个组的用户和用户之间也可以有不同的权限。
下面我们来谈谈NT中常见的用户组。
Administrators,管理员组,默认情况下,Administrators中的用户对计算机/域有不受限制的完全访问权。
分配给该组的默认权限允许对整个系统进行完全控制。
所以,只有受信任的人员才可成为该组的成员。
PowerUsers,高级用户组,PowerUsers可以执行除了为Administrators组保留的任务外的其他任何操作系统任务。
分配给PowerUsers组的默认权限允许PowerUsers组的成员修改整个计算机的设置。
但PowerUsers不具有将自己添加到Administrators组的权限。
在权限设置中,这个组的权限是仅次于Administrators的。
Users:
普通用户组,这个组的用户无法进行有意或无意的改动。
因此,用户可以运行经过验证的应用程序,但不可以运行大多数旧版应用程序。
Users组是最安全的组,因为分配给该组的默认权限不允许成员修改操作系统的设置或用户资料。
Users组提供了一个最安全的程序运行环境。
在经过NTFS格式化的卷上,默认安全设置旨在禁止该组的成员危及操作系统和已安装程序的完整性。
用户不能修改系统注册表设置、操作系统文件或程序文件。
Users可以关闭工作站,但不能关闭服务器。
Users可以创建本地组,但只能修改自己创建的本地组。
Guests:
来宾组,按默认值,来宾跟普通Users的成员有同等访问权,但来宾帐户的限制更多。
Everyone:
顾名思义,所有的用户,这个计算机上的所有用户都属于这个组。
其实还有一个组也很常见,它拥有和Administrators一样、甚至比其还高的权限,但是这个组不允许任何用户的加入,在察看用户组的时候,它也不会被显示出来,它就是SYSTEM组。
系统和系统级的服务正常运行所需要的权限都是靠它赋予的。
由于该组只有这一个用户SYSTEM,也许把该组归为用户的行列更为贴切。
权限是有高低之分的,有高权限的用户可以对低权限的用户进行操作,但除了Administrators之外,其他组的用户不能访问NTFS卷上的其他用户资料,除非他们获得了这些用户的授权。
而低权限的用户无法对高权限的用户进行任何操作。
我们平常使用计算机的过程当中不会感觉到有权限在阻挠你去做某件事情,这是因为我们在使用计算机的时候都用的是Administrators中的用户登陆的。
这样有利也有弊,利当然是你能去做你想做的任何一件事情而不会遇到权限的限制。
弊就是以Administrators组成员的身份运行计算机将使系统容易受到特洛伊木马、病毒及其他安全风险的威胁。
访问Internet站点或打开电子邮件附件的简单行动都可能破坏系统。
不熟悉的Internet站点或电子邮件附件可能有特洛伊木马代码,这些代码可以下载到系统并被执行。
如果以本地计算机的管理员身份登录,特洛伊木马可能使用管理访问权重新格式化您的硬盘,造成不可估量的损失,所以在没有必要的情况下,最好不用Administrators中的用户登陆。
Administrators中有一个在系统安装时就创建的默认用户----Administrator,Administrator帐户具有对服务器的完全控制权限,并可以根据需要向用户指派用户权利和访问控制权限。
因此强烈建议将此帐户设置为使用强密码。
永远也不可以从Administrators组删除Administrator帐户,但可以重命名或禁用该帐户。
由于大家都知道“管理员”存在于许多版本的Windows上,所以重命名或禁用此帐户将使恶意用户尝试并访问该帐户变得更为困难。
对于一个好的服务器管理员来说,他们通常都会重命名或禁用此帐户。
Guests用户组下,也有一个默认用户----Guest,但是在默认情况下,它是被禁用的。
如果没有特别必要,无须启用此账户。
我们可以通过“控制面板”--“管理工具”--“计算机管理”--“用户和用户组”来查看用户组及该组下的用户。
我们用鼠标右键单击一个NTFS卷或NTFS卷下的一个目录,选择“属性”--“安全”就可以对一个卷,或者一个卷下面的目录进行权限设置,此时我们会看到以下七种权限:
完全控制、修改、读取和运行、列出文件夹目录、读取、写入、和特别的权限。
“完全控制”就是对此卷或目录拥有不受限制的完全访问。
地位就像Administrators在所有组中的地位一样。
选中了“完全控制”,下面的五项属性将被自动被选中。
“修改”则像Powerusers,选中了“修改”,下面的四项属性将被自动被选中。
下面的任何一项没有被选中时,“修改”条件将不再成立。
“读取和运行”就是允许读取和运行在这个卷或目录下的任何文件,“列出文件夹目录”和“读取”是“读取和运行”的必要条件。
“列出文件夹目录”是指只能浏览该卷或目录下的子目录,不能读取,也不能运行。
“读取”是能够读取该卷或目录下的数据。
“写入”就是能往该卷或目录下写入数据。
而“特别”则是对以上的六种权限进行了细分。
读者可以自行对“特别”进行更深的研究,鄙人在此就不过多赘述了。
希望各个新手管理员能合理给你的服务器数据进行分类,这样不光是查找起来方便,更重要的是这样大大的增强了服务器的安全性,因为我们可以根据需要给每个卷或者每个目录都设置不同的权限,一旦发生了网络安全事故,也可以把损失降到最低。
当然,也可以把网站的数据分布在不同的服务器上,使之成为一个服务器群,每个服务器都拥有不同的用户名和密码并提供不同的服务,这样做的安全性更高。
不过愿意这样做的人都有一个特点----有钱:
)。
好了,言归正传,该服务器的数据库为MS-SQL,MS-SQL的服务软件SQL2000安装在d:
\\ms-sqlserver2K目录下,给SA账户设置好了足够强度的密码,安装好了SP3补丁。
为了方便网页制作员对网页进行管理,该网站还开通了FTP服务,FTP服务软件使用的是SERV-U5.1.0.0,安装在d:
\\ftpservice\\serv-u目录下。
杀毒软件和防火墙用的分别是NortonAntivirus和BlackICE,路径分别为d:
\\nortonAV和d:
\\firewall\\blackice,病毒库已经升级到最新,防火墙规则库定义只有80端口和21端口对外开放。
网站的内容是采用动网7.0的论坛,网站程序在e:
\\www\\bbs下。
细心的读者可能已经注意到了,安装这些服务软件的路径我都没有采用默认的路径或者是仅仅更改盘符的默认路径,这也是安全上的需要,因为一个黑客如果通过某些途径进入了你的服务器,但并没有获得管理员权限,他首先做的事情将是查看你开放了哪些服务以及安装了哪些软件,因为他需要通过这些来提升他的权限。
一个难以猜解的路径加上好的权限设置将把他阻挡在外。
相信经过这样配置的WEB服务器已经足够抵挡大部分学艺不精的黑客了。
读者可能又会问了:
“这根本没用到权限设置嘛!
我把其他都安全工作都做好了,权限设置还有必要吗?
”当然有!
智者千虑还必有一失呢,就算你现在已经把系统安全做的完美无缺,你也要知道新的安全漏洞总是在被不断的发现。
权限将是你的最后一道防线!
那我们现在就来对这台没有经过任何权限设置,全部采用Windows默认权限的服务器进行一次模拟攻击,看看其是否真的固若金汤。
假设服务器外网域名为,用扫描软件对其进行扫描后发现开放WWW和FTP服务,并发现其服务软件使用的是IIS5.0和Serv-u5.1,用一些针对他们的溢出工具后发现无效,遂放弃直接远程溢出的想法。
打开网站页面,发现使用的是动网的论坛系统,于是在其域名后面加个/upfile.asp,发现有文件上传漏洞,便抓包,把修改过的ASP木马用NC提交,提示上传成功,成功得到WEBSHELL,打开刚刚上传的ASP木马,发现有MS-SQL、NortonAntivirus和BlackICE在运行,判断是防火墙上做了限制,把SQL服务端口屏蔽了。
通过ASP木马查看到了NortonAntivirus和BlackICE的PID,又通过ASP木马上传了一个能杀掉进程的文件,运行后杀掉了NortonAntivirus和BlackICE。
再扫描,发现1433端口开放了,到此,便有很多种途径获得管理员权限了,可以查看网站目录下的conn.asp得到SQL的用户名密码,再登陆进SQL执行添加用户,提管理员权限。
也可以抓SERV-U下的ServUDaemon.ini修改后上传,得到系统管理员权限。
还可以传本地溢出SERV-U的工具直接添加用户到Administrators等等。
大家可以看到,一旦黑客找到了切入点,在没有权限限制的情况下,黑客将一帆风顺的取得管理员权限。
那我们现在就来看看Windows2000的默认权限设置到底是怎样的。
对于各个卷的根目录,默认给了Everyone组完全控制权。
这意味着任何进入电脑的用户将不受限制的在这些根目录中为所欲为。
系统卷下有三个目录比较特殊,系统默认给了他们有限制的权限,这三个目录是Documentsandsettings、Programfiles和Winnt。
对于Documentsandsettings,默认的权限是这样分配的:
Administrators拥有完全控制权;Everyone拥有读&运,列和读权限;Powerusers拥有读&运,列和读权限;SYSTEM同Administrators;Users拥有读&运,列和读权限。
对于Programfiles,Administrators拥有完全控制权;Creatorowner拥有特殊权限;Powerusers有完全控制权;SYSTEM同Administrators;Terminalserverusers拥有完全控制权,Users有读&运,列和读权限。
对于Winnt,Administrators拥有完全控制权;Creatorowner拥有特殊权限;Powerusers有完全控制权;SYSTEM同Administrators;Users有读&运,列和读权限。
而非系统卷下的所有目录都将继承其父目录的权限,也就是Everyone组完全控制权!
现在大家知道为什么我们刚刚在测试的时候能一帆风顺的取得管理员权限了吧?
权限设置的太低了!
一个人在访问网站的时候,将被自动赋予IUSR用户,它是隶属于Guest组的。
本来权限不高,但是系统默认给的Everyone组完全控制权却让它“身价倍增”,到最后能得到Administrators了。
那么,怎样设置权限给这台WEB服务器才算是安全的呢?
大家要牢记一句话:
“最少的服务+最小的权限=最大的安全”对于服务,不必要的话一定不要装,要知道服务的运行是SYSTEM级的哦,对于权限,本着够用就好的原则分配就是了。
对于WEB服务器,就拿刚刚那台服务器来说,我是这样设置权限的,大家可以参考一下:
各个卷的根目录、Documentsandsettings以及Programfiles,只给Administrator完全控制权,或者干脆直接把Programfiles给删除掉;给系统卷的根目录多加一个Everyone的读、写权;给e:
\\www目录,也就是网站目录读、写权。
最后,还要把cmd.exe这个文件给挖出来,只给Administrator完全控制权。
经过这样的设置后,再想通过我刚刚的方法入侵这台服务器就是不可能完成的任务了。
可能这时候又有读者会问:
“为什么要给系统卷的根目录一个Everyone的读、写权?
网站中的ASP文件运行不需要运行权限吗?
”问的好,有深度。
是这样的,系统卷如果不给Everyone的读、写权的话,启动计算机的时候,计算机会报错,而且会提示虚拟内存不足。
当然这也有个前提----虚拟内存是分配在系统盘的,如果把虚拟内存分配在其他卷上,那你就要给那个卷Everyone的读、写权。
ASP文件的运行方式是在服务器上执行,只把执行的结果传回最终用户的浏览器,这没错,但ASP文件不是系统意义上的可执行文件,它是由WEB服务的提供者----IIS来解释执行的,所以它的执行并不需要运行的权限。
经过上面的讲解以后,你一定对权限有了一个初步了了解了吧?
想更深入的了解权限,那么权限的一些特性你就不能不知道了,权限是具有继承性、累加性、优先性、交叉性的。
继承性是说下级的目录在没有经过重新设置之前,是拥有上一级目录权限设置的。
这里还有一种情况要说明一下,在分区内复制目录或文件的时候,复制过去的目录和文件将拥有它现在所处位置的上一级目录权限设置。
但在分区内移动目录或文件的时候,移动过去的目录和文件将拥有它原先的权限设置。
累加是说如一个组GROUP1中有两个用户USER1、USER2,他们同时对某文件或目录的访问权限分别为“读取”和“写入”,那么组GROUP1对该文件或目录的访问权限就为USER1和USER2的访问权限之和,实际上是取其最大的那个,即“读取”+“写入”=“写入”。
又如一个用户USER1同属于组GROUP1和GROUP2,而GROUP1对某一文件或目录的访问权限为“只读”型的,而GROUP2对这一文件或文件夹的访问权限为“完全控制”型的,则用户USER1对该文件或文件夹的访问权限为两个组权限累加所得,即:
“只读”+“完全控制”=“完全控制”。
优先性,权限的这一特性又包含两种子特性,其一是文件的访问权限优先目录的权限,也就是说文件权限可以越过目录的权限,不顾上一级文件夹的设置。
另一特性就是“拒绝”权限优先其它权限,也就是说“拒绝”权限可以越过其它所有其它权限,一旦选择了“拒绝”权限,则其它权限也就不能取任何作用,相当于没有设置。
交叉性是指当同一文件夹在为某一用户设置了共享权限的同时又为用户设置了该文件夹的访问权限,且所设权限不一致时,它的取舍原则是取两个权限的交集,也即最严格、最小的那种权限。
如目录A为用户USER1设置的共享权限为“只读”,同时目录A为用户USER1设置的访问权限为“完全控制”,那用户USER1的最终访问权限为“只读”。
权限设置的问题我就说到这了,在最后我还想给各位读者提醒一下,权限的设置必须在NTFS分区中才能实现的,FAT32是不支持权限设置的。
同时还想给各位管理员们一些建议:
1.养成良好的习惯,给服务器硬盘分区的时候分类明确些,在不使用服务器的时候将服务器锁定,经常更新各种补丁和升级杀毒软件。
2.设置足够强度的密码,这是老生常谈了,但总有管理员设置弱密码甚至空密码。
3.尽量不要把各种软件安装在默认的路径下
二、关闭Windows远程注册表服务
默认情况下Windows系统有几个服务需要关闭才能更有效的保护服务器。
其中一个服务就是远程注册表服务,如果黑客连接到我们的计算机并且计算机启用了远程注册表服务(RemoteRegistry)的话他还可以通过远程注册表操作系统任意服务,因此远程注册表服务要得到特别保护。
当然不要以为仅仅将该服务关闭就可以高枕无忧,黑客可以通过命令行指令将服务轻松开启。
要想彻底关闭远程注册表服务可以采用如下方法:
一、通过任务栏的“开始->运行”,输入regedit进入注册表编辑器。
二、找到注册表中HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services下的“RemoteRegistry”项。
三、右键点击“RemoteRegistry”项,选择“删除”。
三、设置登录系统时不显示上次登录的用户名
用户在登录Windows2003时,Windows2003会自动在在登录对话框中显示出上次登录的用户名称,如果这是一台公共计算机,就有可能造成用户名的泄露,从而给一些不怀好意的人以可乘之机。
如果你是系统管理员,你可以采用下面的方法将在登录对话框中显示上次登录用户名的功能取消,这样Windows2003就会要求用户每次登录时都必须键入用户名,从而提高计算机的使用安全性。
不显示上次登录的用户名
一、打开“我的电脑”——“控制面板”,双击打开“管理工具”。
二、在“管理工具”界面中,双击打开“本地安全策略”。
三、在弹出的“本地安全设置”对话框中,选择“安全选项”。
四、在“安全选项”列表中,选择“交互式登录:
不显示上次的用户名”。
五、单击右键,选择“属性”。
六、在弹出的“交互式登录:
不显示上次的用户名属性”选项框中,选择“已启用”,单击“确定”按钮,完成设置。
三、设置注册表防止系统隐私信息被泄露
在Windows系统运行出错的时候,系统内部有一个DR.WATSON程序会自动将系统调用的隐私信息保存下来。
隐私信息将保存在user.dmp和drwtsn32.log文件中。
攻击者可以通过破解这个程序而了解系统的隐私信息。
因此我们要阻止该程序将信息泄露出去。
找到“HKEY_LOACL_MACHINE\\SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\AeDebug”,将AUTO键值设置为0,现在DR.WATSON就不会记录系统运行时的出错信息了。
在注册表中进行设置
一、单击“开始”——“运行”,输入“regedit”打开注册表编辑器。
二、在注册表编辑器中找到“HKEY_LOACL_MACHINE\\SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\AeDebug”项。
三、在右边对应的键值中找到“AUTO”,右键单击,在弹出的菜单中,选择“修改”。
四、在弹出的“编辑字符串”对话框,“数值数据”下输入“0”,点击“确定”按钮,设置完成。
四、四个方面谈Windows2000的安全设置
在用户安全设置方面
1.禁用Guest账号。
不论工作组模式还是域模式,都应该禁用此账号。
惟一的例外就是极少数量(10台以下)的机器之间用网上邻居互访共享文件夹,且不和公网相连,可以继续保持此账号。
2.限制不必要的用户。
此时需注意:
(1)在工作组模式中,默认账号有Administrator、Guest。
如果要用IIS(InternetInformationServer)建设各类站点,则IUSER_computername和IWAM_computername也是默认账号,不能停用。
因前者是IIS匿名访问账号,后者是IIS匿名执行脚本的账号。
这两个账号默认有密码,是由系统分配的,用户不要更改其密码,更不要删除,否则IIS不能匿名访问和执行脚本;如果有终端服务则TsInternetUser也是默认账号,不能停用。
(2)在域模式中,Administrator组中会增加DomainAdmins和EnterpriseAdmins两个组中的成员,另外还会有Krbtgt账号,默认是被禁用的,这个账号是密钥分发账号。
3.开启用户策略。
其中有用户锁定阀值设置,将它设置为多少才合适呢?
用户在登录时,Windows会采用加密协议加密用户的用户名和密码。
在域环境中,如果只是单纯的系统(即什么软件都不装),用户进行登录时,Windows会尝试用Kerbos协议验证,不成功则会再用Ntlm验证,此时的验证的方式有两种;如果该账户同时又是Outlook的用户,验证的方式将有6种之多,也就是说用户在登录时如果密码输入错误,一次登录就要浪费掉6次账户锁定值。
因此,微软技术支持中心的工程师建议将这个锁定值设置为13,这样才可以实现错误输入密码3次再锁定账户的目的。
在密码安全设置方面
在给账号设置密码时,不是密码位数越多越好,在符合密码复杂性原则的基础上,7位和14位的密码是最好的。
这个结论是微软全球技术支持中心的工程师给出的,它是由密码所采用的加密算法决定的。
有一点大家需注意:
屏幕保护存在一个安全漏洞,即他人可以在不进入系统的情况下,利用DOS模式将Cmd.exe命令更名为你所选用的屏幕保护程序的名称而将其替换掉。
此后,只要这个“屏幕保护程序”一运行,Cmd窗口就会弹出且以系统身份运行,默认是最大权限。
因此,采用设置屏幕保护密码的做法并不安全,正确的做法应是网管员离开工位时要锁定计算机(Windows2000下,按Ctrl+Alt+Del,在弹出的“关机”菜单中选择“锁定计算机”即可)。
在系统安全设置方面
1.使用NTFS格式分区。
NTFS分区要比FAT分区安全很多,且只有使用NTFS分区才能真正发挥Windows2000的作用。
Windows2000自带了转换NTFS分区的工具Convert。
在命令提示符?
葱蠧onvertx/FSNTFS(x为所要转换的盘符),执行时如果转换的是非*作系统所在分区,则立即执行分区转换;如果转换的是*作系统所在分区,则重启后执行分区转换。
注意:
此转换过程是单向不可逆的,即只能由FAT转换至NTFS。
虽然可用第三方工具做分区格式之间的转换,但这样做不能保证绝对安全,在某些情况下会导致分区不可用,所以建议只用Convert命令来转换分区格式;如果非要用第三方工具,一定要事先做好备份。
另外,据我个人经验,并不需要将所有分区都做成NTFS分区,而应保留一个分区为FAT32,用于存放一些常用工具,并可方便Ghost备份。
2.到微软网站下载最新的补丁程序。
强烈建议!
这是每一个网络管理员都应该有的好习惯。
这里说明一点:
微软每隔一定时间推出的Servicespacks是针对近期推出的Hotfix的综合,如果你经常做Hotfix补丁,那么当后一版的Servicespacks推出后可能会和你的Hotfix冲突。
因为Servicespacks也是要经过测试的,而测试阶段可能又有新的Hotfix推出,当你做了新的Hotfix补丁后再打旧版的Servicespacks补丁时就会产生冲突。
3.关闭默认共享。
这里必须要修改注册表,否则每次重启之后默认共享还会出现。
在注册表“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run”下,在右栏空白位置点击鼠标右键,选择“新建”,再选“字符串值”,名称中输入:
“delipc$”,这里的名字可以随便取,然后双击它