Windows Server可以被配置为多种角色,Windows Server 2003 可以被配置为域控制器、成员服务器、基础设施服务器、文件服务器、打印服务器、IIS服务器、IAS服务器、终端服务器等等。而且服务器可以被设置为几种角色的综合。
铁通数据中心机房存在多台不同角色的服务器,例如:备份服务器,终端服务器,Web服务器等,大部分是集各种角色于一身的服务器,所以有必要制作一份完整的安全方案文档以供参考,综合了部分虚拟主机公司的方案以及网络整理的资料和个人的一些经验,制作此方案。
总的来说,做为一个集各种角色为一身的服务器,主要是从以下几个方面进行安全加固设置:组件安全、端口安全、Windows常见自带程序的安全设置、远程终端安全、第三方软件的安全设置、木马病毒的防范设置、系统服务设置、帐号安全问题、日志安全设置、MSSQL安全设置、常见危险协议的删除、日常服务器安全检测、目录权限设置、DDOS攻击的设置、MYSQL安全设置、php安全设置。
注意:下面的策略是本着安全最大化的目的来执行的,实际操作中,要本着服务器正常应用与安全尽量化两者同时兼并的标准来进行。
组件安全:
一、禁止使用FileSystemObject组件
FileSystemObject可以对文件进行常规操作以及进行各种存在安全隐患的操作,可以通过修改注册表,将此组件改名,来防止利用FSO组件的ASP木马的危害。
步骤1:HKEY_CLASSES_ROOT\Scripting.FileSystemObject\ 名为其它的名字,如:改为 FileSystemObject_ChangeName,如果ASP程序必须使用这个组件,那么在代码中改相应的名称
步骤2:将clsid值也改一下,HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值,也可以将其删除,来防止此类木马的危害。
步骤3:将此组件注销:RegSVR32 /u C:\WINDOWS\SYSTEM32\scrrun.dll
步骤4:禁止Guest用户使用FSO组件文件:scrrun.dll,命令:cacls C:\WINDOWS\system32\scrrun.dll /e /d guests
注意:部分流行网站程序中的功能可能会用到FSO组件,在一般情况下,请修改ASP程序文件中对应的FSO名和clsid值为修改过后的服务器中的值。
(注:此组件的注销可能会影响到很多asp网站程序中部分功能的使用,例如上传等,如果必要,那么利用命令RegSVR32 C:\WINDOWS\SYSTEM32\scrrun.dll重新注册。)
二、禁止使用WScript.Shell组件
WScript.Shell可以调用系统内核运行DOS基本命令,可以通过修改注册表,将此组件改名,来防止此类木马的危害。
步骤1:HKEY_CLASSES_ROOT\WScript.Shell\及HKEY_CLASSES_ROOT\WScript.Shell.1\改名为其它的名字,如:改为WScript.Shell_ChangeName 或 WScript.Shell.1_ChangeName,自己以后调用的时候使用这个就可以正常调用此组件了
步骤2:将clsid值也改一下HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值和HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值也可以将其删除,来防止此类木马的危害。
注意:一般情况下,这个组件很少被网站程序应用到,但是如果要用,请修改ASP程序文件中对应的WSH名和clsid值为修改过后的服务器中的值。
三、禁止使用Shell.Application组件
Shell.Application可以调用系统内核运行DOS基本命令,可以通过修改注册表,将此组件改名,来防止此类木马的危害。
步骤1:HKEY_CLASSES_ROOT\Shell.Application\及HKEY_CLASSES_ROOT\Shell.Application.1\改名为其它的名字,如:改为Shell.Application_ChangeName 或 Shell.Application.1_ChangeName,自己以后调用的时候使用这个就可以正常调用此组件了
步骤2:也要将clsid值也改一下,HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值和HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值,也可以将其删除,来防止此类木马的危害。
步骤3:注销Shell.Application组件文件:regsvr32/u C:\WINDOWS\system32\shell32.dll
步骤4:禁止Guest用户使用shell32.dll来防止调用此组件:cacls C:\WINDOWS\system32\shell32.dll /e /d guests。
以上设置做完之后,重新启动服务器。几个危险组件就彻底禁止掉了。核对下它们是否禁止成功,可以用ASP探针aspcheck.asp来探测下组件安全性。可以看到禁止掉的几个组件是叉号表示。
防范了大部分主流的ASP木马,当然一些偏门的asp木马仍然需要注意,这些偏门的ASP木马:例如利用adodb.stream的木马等,这些基本上利用下面要讲解到的安全措施进行防范。
#p#
端口安全:
可以使用TCP/IP的过滤或者Windows 2003自带防火墙来实现端口的安全,下面逐个讲解。
一、Windows 自带防火墙(Windows Firewall/Internet Connection Sharing (ICS))
步骤1:网上邻居—>(右键)属性—>本地连接—>(右键)属性—>高级—>(选中)Internet 连接防火墙—>设置 服务器上面要用到的服务端口选中
例如:一台WEB服务器,要提供WEB(80)、FTP(21)服务及远程桌面管理(3389)在“FTP 服务器”、“WEB服务器(HTTP)”、“远程桌面”、“安全WEB服务器”前面打上对号
如果你要提供服务的端口不在里面,你也可以点击“添加”铵钮来添加,SMTP和POP3根据需要打开
具体参数可以参照系统里面原有的参数。
步骤2:然后点击确定。注意:如果是远程管理这台服务器,请先确定远程管理的端口是否选中或添加。
一般需要打开的端口有:21、 25、 80、 110、 443、 3389、 等,根据需要开放需要的端口。注意将TCP/IP端口里面的10001-10005(需要用算法计算,下面会讲解到此算法)设置进去,因为这是设置Serv-U的PASV模式使用的端口,当然也可以使用别的。
二、WindowsTCP/IP的过滤
桌面上右击网上邻居--属性--双击打开外网网卡,选择Internet 协议(TCP/IP)--高级--切换到“高级TCP/IP设置”中的选项标签下,选择“TCP/IP筛选”,这里有三个过滤器,分别为:TCP端口、UDP端口和IP 协议,我们用TCP端口,将常用的端口添加进去。除了常见的服务程序应用端口外,仍然需要注意的是Serv-u的随机端口的设置。这个设置直接关系到用户访问FTP时是否会出现Socket错误。这里需要计算Serv-u的随机端口列表。参看下面“注意”中的随机端口计算。
注意:关于客户端软件出现Socket错误的几种可能的解决办法:
1、 将客户端软件的传输方式改为PASV方式
2、 根据Serv-u随机端口的算法,将计算出的随机端口列表添加到TCP/IP筛选中。例如:
客户端设置成被动方式,链接FTP服务器,会由于随机端口没有设置而出错,从软件中的出错信息中找到类似这样227 Entering Passive Mode (60,195,253,118,3,52)(格式:IP,m,n)找到它,我们利用公式计算出如果客户端用被动方式登录服务器时,服务器要动态开放的第一个端口值。公式为m*256+n,上例中应该是3*256+52=820,所以把随机端口列表820-830添加进去。注意:不要和已知存在的应用程序的端口冲突,例如mssql,mysql,termservice等端口。
3、 南北互联问题,这个问题的几率不大,没确切凭据。
三、端口与列表的进程关联查看
经常使用Activex Ports,psport, TCPView等小工具查看服务器端口对应的进程,可以防止一些低级别的木马后门植入。
同时也要检查常见的启动项,低级别的木马也喜欢在这些地方加载达到随机启动,可以利用小工具msconfig查看。
#p#
Windows常见自带程序的安全设置:
1、Tftp文件的修改
入侵者在权限允许的情况下可能会使用小型文件传输协议进行后门木马等危险程序的上传,所以需要彻底禁止掉TFTP服务,服务器一般很少用到这个服务。
操作:用文本编辑工具打开%systemroot%\system32\drivers\etc下的service文件找到对应的tftp那一行,将 69/udp 替换成 0/udp。保存退出
2、禁用Guests组用户调用cmd.exe
2003使用命令:cacls C:\WINDOWS\system32\Cmd.exe /e /d guests,同理,将上面的命令应用到如下进程:
- net1.exet
- cmd.exe
- tftp.exe
- netstat.exe
- regedit.exe
- at.exe
- attrib.exe
- cacls.exe
- format.com
- netsh.exe(千万要注意这个程序,它可以修改网络属性以及windows自带防火墙设置,安全隐患大)
3、彻底禁止telnet的的登陆
在c:\windows\system32目录下有个login.cmd文件,将其用记事本打开,在文件末尾另取一行,加入exit保存。这样用户在登陆telnet时,便会立即自动退出.
远程终端安全:
Termservices是Windows自带的远程管理程序,经常被入侵者利用。所以在这部分的安全设置要尤其注重。主要从端口,审核,日志,策略3个方面来加强它的安全
1、端口值:
将默认的3389改掉,改成一个很大的值,越大越好,因为入侵者可能利用某些工具探测终端端口,例如tsscan,设置的越大,越能起到拖延的作用。
修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp和HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp,这两个分支下的portnumber键值改为你想要的端口,例如65511
如果感觉手工修改注册表麻烦,可以用下面这个小工具代劳。
2、用户审核设置:
设置完端口之后,有必要对每次终端登陆的日志进行记录,以方便日常安全检查。
为远程登录启动日志记录:开始-程序-管理工具-终端服务配置-连接-rdp/tcp-右键-属性-权限-添加administrators组-高级-审核-添加everyone组,选择审核的项目为登录和注销。
3、批处理记录远程终端连接IP日志
步骤1:将下面的代码保存在记事本中保存为3389.bat,
@echo off
date /t >> E:\server\3389.txt
attrib +s +h E:\server\3389.bat
attrib +s +h E:\server\3389.txt
time /t >> E:\server\3389.txt
netstat -an |find "ESTABLISHED" |find ":3389" >>d:\3389.txt
(注:date和time是用于获取系统时间的, “attrib +s +h E:\server\3389.bat”和“attrib +s +h E:\server\3389.txt”这两个命令是用来隐藏3389.bat和3389.txt这两个文件的, “netstat -an |find "ESTABLISHED" |find ":3389" >>d:\3389.txt”这个命令则是记录通过终端的连结状况的。)
步骤2:打开注册表,展开:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon,找到“Userinit”这个键值,这个键值默认为c:\WINDOWS\system32\userinit.exe,在它的逗号后面写上E:\server\3389.bat批处理的路径,同时末尾以逗号结尾,完整的路径是:“
c:\WINDOWS\system32\userinit.exe, E:\server\3389.bat,“(注意结尾的逗号),这样每次用户只要是通过远程端口连接进入服务器,则会自动记录它的IP地址并保存在E:\server\3389.txt中。
4、远程登陆名请勿使用administrator这个用户名,因为CAIN这款功能强大嗅探工具在某些条件具备的情况下,可以嗅探并得到administrator登陆的明文密码,而其他名称的用户登陆则使CAIN无能为力。虽然RDP协议是128位加密,但是CAIN可以嗅探并破解。
5、利用安全策略指定远程终端登陆的IP范围,这是最对于Termserivce安全最牢固的方法,可以防止端口复用(例如:httptunnel)等入侵手段。具体操作如下:
222.41.
#p#
第三方软件的安全设置:
常见的第三方服务软件,例如Serv-u,pcAnywhere,radmin等需要特别注意,它们经常被入侵者做为服务器提权的主要手段之一。
1、Serv-u:Serv-u默认的目录权限以及内置的超级管理员权限经常被利用提权。安全设措施如下:首先在Services.msc中停掉Serv-U服务,然后用Ultraedit打开ServUDaemon.exe
查找 Ascii:LocalAdministrator 和 #l@$ak#.lk;0@P,修改成等长度的其它字符就可以了,注意:同时也要将ServUAdmin.exe一样处理。
设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则入侵者可能会通过脚本shell将ServUDaemon.exe下载到本地后,同样用Ultraedit可以分析出修改过后的超级管理员用户和密码,然后修改溢出提权程序,同样达到提权。
以下是一个Serv-u提权程序的应用范例,很容易利用未修改的Serv-u的管理员用户和密码来执行系统操作。
2、ftp连接软件的权限设置
由于ftp连接软件(例如flashfxp)里面保存有ftp记录的历史信息文件,如果被入侵者通过脚本shell下载到本地后,它只需要覆盖到本机器上的同版本FTP软件中,那么那些曾经的历史记录就会出现,入侵者可能会利用星号密码查看器之类的东西查看得到FTP密码。所以必须对ftp软件安装的目录进行权限设置,只允许Administrators组访问,其他组一概禁止访问。
3、PcAnywhere密码安全
PcAnywhere是常见的远程管理软件,默认生成的密码文件(.cif文件后缀)会在C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\目录下产生,而这个目录默认权限是允许user组查看并读取,所以入侵者可能会利用脚本shell在这里将密码文件下载到本地后,然后利用PCAnywhere PassView类似的显密码工具得到管理密码。
所以对这个目录必须进行除administrators组外的所有用户和组的限制。同时尽量使用最新版本的PcAnywhere 11版本以上(11版本以后的密码强度很难破解,也没有相关的破解工具发布),目前流行的pcAnywhere密码破解软件无法破解最新版的密码。当然最安全的设置是采用Symantec Packagerd 的SecurID 双重认证机制。默认情况下,不推荐使用此工具管理服务器,因为它可能与终端服务产生冲突,导致远程终端服务因为GINA问题无法登陆。
4、Radmin密码安全
Radmin也是类似PcAnywhere的一款远程管理软件,它的密码文件会默认产生在注册表中,如果在权限允许的情况下,入侵者可以替换掉相关的radmin注册表键值,从而可以使用修改过的密码进行登陆服务器。发现部分托管服务器用户喜欢使用Radmin管理服务器,建议一般情况下不推荐使用此软件进行远程管理。
#p#
木马病毒的防范设置:
入侵者一般习惯在服务器上安装内核心级后门或木马,例如灰鸽子,黑洞,黑客之门等,这些后门在修改之后,很难用基本的杀毒软件和端口查看软件发现,所以推荐使用F-Secure BlackLight+ICESWOR +一款主流杀毒软件(Mcafee或NOD32),基本上可以使修改过的或未公开的内核级后门无法隐藏。
1、F-Secure BlackLight+ICESWOR可以有效的查出内核级后门以及目前非常泛滥的后门灰鸽子和黑洞等线程插入式后门。使用时最好配合一般的进程查看工具,然后将两者的扫描结果进行对照,即可发现内核可疑之处。
注:
ICESWOR:它适用于Windows 2000/XP/2003操作系统,用于查探系统中的幕后黑手(木马后门)并作出处理,当然使用它需要用户有一些操作系统的知识。
在对软件做讲解之前,首先说明第一注意事项:此程序运行时不要激活内核调试器(如softice),否则系统可能即刻崩溃。另外使用前请保存好您的数据,以防万一未知的Bug带来损失。IceSword目前只为使用32位的x86兼容CPU的系统设计,另外运行IceSword需要管理员权限。
F-Secure BlackLight:可以侦测并清除活动着的Rootkit,而许多传统的病毒扫描无法侦测出活动着的Rootkit,是对付Rootkit系病毒的利器。
2、用Mcafee建立新的安全策略。禁止向系统目录写入dll和exe文件。这样可以有效的防范病毒感染。同时制定每天的定时杀毒计划。同时给Mcafee加上密码访问,防止恶意关闭。
常见安全策略制定:
1、打开组策略编辑器,依次展开“计算机配置→Windows 设置→安全设置→本地策略→安全选项”,在右侧窗口中找到“网络访问:可远程访问的注册表路径”,然后在打开的窗口中,将可远程访问的注册表路径和子路径内容全部设置为空即可。
2、关闭自动播放功能不仅对光驱起作用,而且对其它驱动器也起作用,这样很容易被入侵者利用给文件夹目录中写入auto.inf文件执行自动执行黑客程序。打开组策略编辑器,依次展开“计算机配置→管理模板→系统”,在右侧窗口中找到“关闭自动播放”选项并双击,在打开的对话框中选择“已启用”,然后在“关闭自动播放”后面的下拉菜单中选择“所有驱动器”,按“确定”即可生效。
3、安全策略->本地策略->审核策略,打开以下内容:
审核策略更改 成功,失败
审核系统事件 成功,失败
审核帐户登陆事件 成功,失败
审核帐户管理 成功,失败
4、计算机配置→Windows设置→安全设置→本地策略→安全选项→交互式登陆(不显示上次的用户名)
5、计算机配置→Windows设置→安全设置→本地策略→安全选项→帐户:重命名系统管理员帐户
#p#
帐号安全问题:
1、禁用Guest账号
在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。你可以打开记事本,在里面输入一串包含特殊字符、数字、字母的长字符串,然后把它作为Guest用户的密码拷进去。
2、限制不必要的用户
去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限,并且经常检查系统的用户,删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。
3、把系统Administrator账号改名
4、建一个陷阱用户
什么是陷阱用户?即创建一个名为“Administrator”的本地用户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。
5把共享文件的权限从Everyone组改成授权用户
5、不让系统显示上次登录的用户名
默认情况下,登录对话框中会显示上次登录的用户名。这使得别人可以很容易地得到系统的一些用户名,进而做密码猜测。修改注册表可以不让对话框里显示上次登录的用户名。方法为:打开注册表编辑器并找到注册表项“HKLMSoftwareMicrosoftWindows TCurrentVersionWinlogonDont-DisplayLastUserName”,把REG_SZ的键值改成1。或者直接在组策略里修改。
6、密码安全设置
一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名,然后又把这些用户的密码设置得太简单,比如“welcome”等等。因此,要注意密码的复杂性,还要记住经常改密码。 同时建议托管用户在第一时间内修改掉默认上架密码bizctt,这样可以防止同一交换机下的攻击,例如arpsniffer等。
7、陌生帐号处理
发现服务器中的陌生帐号之后,极可能是被入侵者添加的,一般情况下要首先对其进行过的操作进行取证,主要方法是修改这个陌生帐号的密码后,用其帐户进行登陆,然后查看帐号对应下的最近操作记录,在C:\Documents and Settings\用户名\Recent下,同时分析IE记录,并通过搜索功能查找自帐号建立时间起内进行修改的文件的查找工作,这样可以短时间内确定陌生帐号在服务器上进行的操作。
#p#
日志安全设置:
日志是记录服务器性能,安全的最重要的东西,入侵者在成功入侵服务器后,会对日志部分进行多次擦写以掩盖自己的行径,所以保护服务器日志是服务器在被入侵后的重要取证之一。我们需要做的是将日志转移到一个新的目录下,同时对目录进行权限划分,使入侵者在离开服务器之前无法清除自己的痕迹。
系统安装完成后,日志文件存放在%systemroot%\system32\config,有“应用程序日志”、“安全日志”及“系统日志”,分别对应的文件是:appevent.evt、secevent.evt、sysevent.evt 如果你装有其他的服务,如DNS 等,还有对应的日志。这些文件受event log 服务的保护而不可删除,但却可以清空里面的数据。GUI 下清除日志的相信大家都知道可以通过“事件查看器”来清除日志,而“命令提示符”下清除日志的后门工具也很多,常用的工具有
elsave 等。只要在权限允许的情况下,运行后门清除工具即可将日志清除。我们通过下面的步骤进行日志的安全设置。
1、修改日志文件的存放位置必须在注册表里面修改,打开注册表并找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog 有没有看到application、security、system 几个子键,分别对应“应用程序日志”、“安全日志”、“系统日志”这几个键下面还有很多子键,都是一些对应的信息,我们先来看看application 子键,File 项的值就是“应用程序日志”文件存放的位置,我们将它改改,就将它放在D:\systemlog文件夹下,所以File 的值也就成了D:\systemlog\Appevent.evt。
2、在D盘下新建一个systemlog文件夹,打开CMD命令行,输入命令copy Appevent.evt D:\systemlog,即将日志文件转移到新的目录下。
3、查看新目录systemlog的权限,给予system 组除“完全控制”和“修改”之外的所有权限,然后只给everyone 组只读的权限。
这样一般情况下,就算得到了administrator权限,而不在图形界面下的话,那么入侵者也无法清除日志记录。
MSSQL安全设置:
网络上关于MSSQL的文章多不胜数,这里主要说下几个常见的设置:
1、必须删除MSSQL里的危险存储过程和扩展,这些存储扩展可以使用户在MSSQL应用的网站上实施SQL injection的语句提交攻击,删除语句如下:
- use master
- EXEC sp_dropextendedproc 'xp_cmdshell'
- EXEC sp_dropextendedproc 'Sp_OACreate'
- EXEC sp_dropextendedproc 'Sp_OADestroy'
- EXEC sp_dropextendedproc 'Sp_OAGetErrorInfo'
- EXEC sp_dropextendedproc 'Sp_OAGetProperty'
- EXEC sp_dropextendedproc 'Sp_OAMethod'
- EXEC sp_dropextendedproc 'Sp_OASetProperty'
- EXEC sp_dropextendedproc 'Sp_OAStop'
- EXEC sp_dropextendedproc 'Xp_regaddmultistring'
- EXEC sp_dropextendedproc 'Xp_regdeletekey'
- EXEC sp_dropextendedproc 'Xp_regdeletevalue'
- EXEC sp_dropextendedproc 'Xp_regenumvalues'
- EXEC sp_dropextendedproc 'Xp_regread'
- EXEC sp_dropextendedproc 'Xp_regremovemultistring'
- EXEC sp_dropextendedproc 'Xp_regwrite'
- drop procedure sp_makewebtask
2、在查询分析器中执行上面的语句即可删除。
同时为了防止某些特殊情况下入侵者恢复这些存储过程,可以将部分危险存储对应的dll文件改名:xpstar.dll(主要是关于注册表的操作),xplog70.dll(关于DOS命令的操作),以后在使用MSSQL中如果需要使用到某些进程,再将其改回原名。(注:odsole70.dll这个文件也关联一些危险存储过程,但是一般情况下不要删除,它关乎一些sql事务。)
SQL补丁务必打上最新的SP4补丁以及对SQL数据进行定时备份。
#p#
常见危险协议的删除:
1、NetBIOS协议删除
“开始菜单—设置—网络与拨号连接”,选择代表互联网连接的对象,不管是通过防火墙还是直接连接。 点击“属性”按钮打开对话框,进入“互联网协议(TCP/IP)属性”页面。 点击底部右边的“高级”按钮进入WINS面板。 在WINS面板的下半部分是这个TCP/IP连接的TCP/IP 上的NetBIOS选项(它正好是直接与互联网连接,可能使用静态IP地址)。在它的默认设置中,它允许TCP/IP连接到端口139(攻击者最喜爱的端口)的NetBIOS。NetBIOS自由分配许多与IP、域名和用户名有关的信息。
点击“禁用TCP/IP 上的NetBIOS”按钮,然后点击OK。这一设置立即生效。
2、禁用 SMB
在“开始”菜单中,指向“设置”,然后单击“网络和拨号连接”。右键单击“Internet 连接”,然后单击“属性”。选择“Microsoft 网络客户端”,然后单击“卸载”。完成卸载步骤。
选择“Microsoft 网络的文件和打印机共享”,然后单击“卸载”。完成卸载步骤。
日常服务器安全检测:
1、用MBSA基准分析器或retina定期分析服务器安全,并进行相应的防范设置。
注意MBSA扫描结果中以下面几种符合开始的各种结果项目,它们分别代表不同级别的漏洞警告图标。其中红色叉号最为严重,MSBA同样给出了漏洞解决办法,点击How to correct this即可查看到。其中绿色的勾号表示不存在任何漏洞。
注:
Microsoft Baseline Security Analyzer(MBSA)工具允许用户扫描一台或多台基于 Windows 的计算机,以发现常见的安全方面的配置错误。MBSA 将扫描基于 Windows 的计算机,并检查操作系统和已安装的其他组件(如:Internet Information Services(IIS)和 SQL Server),以发现安全方面的配置错误,并及时通过推荐的安全更新进行修补。
eEye Digital Security所出的 Retina Network Security Scanner 网络安全软件。它可以帮你扫描网络上计算机的安全性漏洞问题所在,是大型渗透方案中经常用到的工具之一。
2、及时关注流行应用漏洞公告,并对用户进行及时通知更新相关补丁。常见的漏洞公告地址:
http://www.nsfocus.com/,http://www.ccert.edu.cn/notice/index.php,http://www.venustech.com.cn/tech/day/
如果感觉手工打Windows补丁麻烦,可以用小工具:瑞星系统漏洞扫描器来自动操作。
3、定期对服务器进行渗透测试,保证漏洞及时发现。
4、经常关注动网,动易,phpwind,discuz,风讯等热门网站程序官方新闻,及时更新漏洞补丁以及通知用户。
目录权限设置:
目录权限的设置对于虚拟主机安全非常重要,要在本着系统正常运行以及安全两者兼得的情况下进行设置。下面是标准的目录权限设置方案,已经在一台服务器上成功分布权限。
1、 C盘只给Administrators和system的全部权限,这样当入侵者通过网站程序漏洞得到webshell之后,它无法浏览到C盘系统目录中。
2、其他的盘进行同样的权限设置:只给Administrators和system的全部权限。
3、将mysql和mssql,serv-u等常见服务器应用程序全部安装到D盘中,并严格控制权限,一般情况下,只给Administrators和system的全部权限。
4、在D盘新建一个webroot目录,只给administrators组和system组权限,每一个web建立一个对方的IIS匿名用户,将其用户加到guests组。
在对应的web目录上设置其权限: 仅 给读取和写入 和权限
再打开IIS的目录安全性中,将匿名用户加入进去,填写的密码是刚才设置的IUSR的密码(机房的大部分WEB服务器就是采用这种设置)。
5、C:\Documents and Settings不会继承C盘刚才设置的只允许administrators和system,所以必须对起进行设置。把administrators组和system组留下其他的组删除。
同样c:\Documents and Settings\All Users\「开始」菜单\程序\启动也需要注意权限的设置。
6、同样还有很多深层目录没有继承刚才的C盘跟目录的权限设置,所以必须依次进行权限设置。
C:\Program Files 目录 设置权限为 只留administrators组和system组留下。
但是把其中的C:\Program Files\Common Files的权限多加一个everyone一个读取和运行的权限 和列出 文件目录。这样保证了asp的正常使用。
如果安装php和cgi,那么对于默认的目录c:\php,c:\prel产生的权限要重新划分。服务器如果安装了java,那么对C:\Program Files\Java Web Start\这个目录也要严格控制权限,方式写入jsp木马。
7、C:\WINDOWS\ 开放Everyone默认的读取及运行 列出文件目录 读取三个权限。
C:\WINNT\Temp 加上Guests的读写两个权限 其他的取消。
如果造成asp程序运行错误,那么开放Everyone 修改、读取及运行、列出文件目录、读取、写入权限(注:基本上服务器不需要设置此权限)
如果上面的设置做完之后,导致ASP和ASPX等应用程序就无法运行,那么Windows目录要加上给users的默认权限。(注:基本上服务器不需要设置此权限)
8、C:\Documents and Settings\All Users\Application Data\Network Associates
C:\Documents and Settings\All Users\Application Data\Microsoft
C:\Documents and Settings\All Users\Application Data\Microsoft\HTML Help
#p#
基本上常见可能被入侵者利用的目录如下:
- C:\perl
- C:\temp\
- C:\Mysql\
- c:\php\
- C:\autorun.inf
- C:\Documents and setting\
- C:\Documents and Settings\All Users\「开始」菜单\程序\
- C:\Documents and Settings\All Users\「开始」菜单\程序\启动
- C:\Documents and Settings\All Users\Documents\
- C:\Documents and Settings\All Users\Application Data\Symantec\
- C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere
- C:\WINNT\system32\config\
- C:\winnt\system32\inetsrv\data\
- C:\WINDOWS\system32\inetsrv\data\
- C:\Program Files\
- C:\Program Files\Serv-U\
- c:\Program Files\KV2004\
- c:\Program Files\Rising\RAV
- C:\Program Files\RealServer\
- C:\Program Files\Microsoft SQL server\
- C:\Program Files\Java Web Start\
需要严格控制它们的权限
基本上上面的设置完成后,下面的不用设置了。
注:部分服务器在设置完成后,可能还会出现asp运行错误,如果出现,属于特殊情况,那么则按照下面的这个目录和文件权限进行添加设置:
C:\Program Files\Common Files Guests 默认的读取及运行 列出文件目录 读取三个权限
C:\WINNT\system32\inetsrv Guests 默认的读取及运行 列出文件目录 读取三个权限
C:\WINNT\Temp Guests 读写两个权限
C:\WINDOWS\system32\*.tlb Guests 默认的读取及运行 列出文件目录 读取三个权限
C:\WINDOWS\system32\*.exe IWAM_*** 默认的读取及运行 列出文件目录 读取三个权限
C:\WINDOWS\system32\*.dll IUSR_*** 默认的读取及运行 列出文件目录 读取三个权限
注意:上面的目录安全完全做好之后,运行ASP网站,可能会出现:请求的资源在使用中 错误,这是由于打开单机版杀毒的脚本监控会时IIS6.0不正常。运行regsvr32 jscript.dll和regsvr32 vbscript.dll重新注册JAVA脚本和VB脚本的动态链接库后一切正常。有时在设置权限时,一些必要的文件夹权限给的太低也会造成这种情况。一般情况下利用上面的两个注册明令就可以。
这种情况我遇到过很多次,当然并不是单一的都是杀毒软件造成的,有时在设置权限时,一些必要的文件夹权限给的太低也会造成这种情况。重新给了权限后需要重启服务器。
DDOS攻击的设置:
修改注册表可以防范轻量的DDOS攻击,将safe.reg文件导入注册表即可,作用是可抵御DDOS攻击2-3万包,提高服务器TCP-IP整体安全性能(效果等于软件防火墙,节约了系统资源)。
这一项的设置基本上在最后再进行,因为这里的部分服务如果禁用,前面安装一些服务器软件的时候会报错主要是将将如下服务全部禁止,启动防止改为手动(注意:是手动,不是禁用),列表:
系统服务设置:
- Computer Browser
- Distributed File System
- Help and Support
- Print Spooler
- Remote Registry
- Task Scheduler
- TCP/IP NetBIOS Helper
- Telnet
Server(注意:此服务关系到微软基准分析器是否能正常使用,平时为了服务器安全性,要将其改为手动,当需要使用微软基准分析器时,将此服务启动后即可正常使用微软基准分析器)
Workstation(注意:如果在安装Mssql服务之前停止掉此工作站服务,那么安装时会出错,所以在未安装mssql之前,不要将其关闭),
同时管理员要定期查找服务名,以防可以服务名出现,例如radmin或vnc之类的远程管理软件经常被入侵者修改掉服务名来藏匿之后做为后门使用,杀毒软件对这些软件认为是合法软件。
Win2003网络服务器的安全配置策略本文讲解的相当详细,希望读者能够仔细阅读,从中有所收获。