打印本文 关闭窗口 | |
Windows WEB服务器配置安全规范(试行版) | |
作者:不详 文章来源:不详 点击数 更新时间:2005/2/6 23:44:36 文章录入:ahui 责任编辑:ahui | |
|
|
一、安装 Win 200x 安全概览1.硬盘分区的文件系统选择①使用多分区分别管理不同内容 ③使用文件加密系统EFS 2.组件的定制不要按Win 2000的默认安装组件,根据安全原则“最少的服务+最小的权限=最大的安全”,只选择确实需要的服务安装即可。典型Web服务器需要的最小组件是: 3.接入网络时间在安装完成Win 2000**作系统时,不要立即把服务器接入网络,因为这时的服务器还没有打上各种补丁,存在各种漏洞,非常容易感染病毒和被入侵。补丁的安装应该在所有应用程序安装完之后,因为补丁程序往往要替换或修改某些系统文件,如果先安装补丁再安装应用程序有可能导致补丁不能起到应有的效果。IIS的HotFix要求每次更改IIS的配置时都需要重新安装。 4.账户安全管理1)账户要尽可能少,并且要经常用一些扫描工具检查系统账户、账户权限及密码。删除已经不再使用的账户。2)停用Guest账号,并给Guest 加一个复杂的密码。3)把系统Administrator账号改名,尽量把它伪装成普通用户,名称不要带有Admin字样。 4)不让系统显示上次登录的用户名,具体**作如下: 修改注册表“HKLM\Software\Microsoft\ WindowsNT\ Current Version\Winlogon\Dont Display Last User Name”的键值,把REG_SZ 的键值改成1。 5.安全审核在“管理工具→远程控制服务配置→连接”处,右键点击“RPD-TCP”连接,选择“属性”,在其窗口选中“权限”,点击右下角的“高级”,选择“审核”,增加一个“everyone”组,审核它的“连接”、“断开”、“注销”和“登录”的成功和失败。在“管理工具→日记查看→安全日记”可看到该审核记录。 6.卸载无用的组件模块将\Winnt\inf 下的sysoc.inf 文件中的所有hide用替换法删除;然后在控制面板的添加删除程序中就可以卸载所有不需要的组件。 二、基本系统设置1.安装各种补丁安装Service Pack 和最新的hotfix;安装SQL和IIS系列补丁。 注意:建议记得安装最新的MDAC(http://www.microsoft.com/data/download.htm) 2.分区内容规划1)操作系统、Web主目录、日志分别安装在不同的分区。2)关闭任何分区的自动运行特性:可以使用 TweakUI 等工具进行修改。以防万一有人放入Autorun程序实现恶意代码自动加载。 3.协议管理卸载不需要的协议,比如IPX/SPX, NetBIOS;在连接属性对话框的TCP)/IP属性的高级选项卡中,选择“WINS”,选定“禁用TCP/IP上的NETBIOS”。 4.关闭所有以下不需要的服务以下仅供参考,具体还要看服务器上运行的应用来确定!要特别注意各服务之间的储存关系,个性为当可能导致某些功能的异常,甚至服务器不能工作!建议每次只个性两三个项目,重启测试无误后再设置其他项目!* Alerter (disable) * ClipBook Server (disable)* Computer Browser (disable)* DHCP Client (disable)* Directory Replicator (disable)* FTP publishing service (disable)* License Logging Service (disable)* Messenger (disable)* Netlogon (disable)* Network DDE (disable)* Network DDE DSDM (disable)* Network Monitor (disable)**** Plug and Play (disable after all hardware configuration)***** Remote Access Server (disable)* Remote Procedure Call (RPC) locater (disable)* Schedule (disable)* Server (disable)* Simple Services (disable)* Spooler (disable)* TCP/IP Netbios Helper (disable)* ***Telephone Service (disable)****在必要时禁止如下服务:* SNMP service (optional)* SNMP trap (optional)* UPS (optional设置如下服务为自动启动:* Eventlog ( required )* NT LM Security Provider (required)* RPC service (required)* WWW (required)* Workstation (leave service on: will be disabled later in the document.* MSDTC (required)* Protected Storage (required) 5.删除 OS/2 和 POSIX 子系统:删除如下目录的任何键:HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\OS/2 Subsystem for NT删除如下的键:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Os2LibPath删除如下的键:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\OptionalHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\PosixHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Os2删除如下目录:c:\winnt\system32\os2 但会出现文件保护的提示,建议不删除,修改注册表就可以了 6.帐号和密码策略1)保证禁止guest帐号 2)将administrator改名为比较难猜的帐号 3)密码唯一性:记录上次的 6 个密码 4) 最短密码期限:2 5) 密码最长期限:42 6) 最短密码长度:8 7) 密码复杂化(passfilt.dll):启用 8) 用户必须登录方能更改密码:启用 9) 帐号失败登录锁定的门限:6 10)锁定后重新启用的时间间隔:720分钟 11)本地安全策略:设置“本地安全策略→本地策略→选项”中的RestrictAnonymous(匿名连接的额外限制)为“不容许枚举SAM账号和共享”。在安全选项中,不显示上次登录用户名、重命名管理员账号名称(某些情况下可能导致个别程序运行异常!);在用户权力指派中,限制更改系统时间、关闭系统的权力仅管理员。 7.设置文件和目录权限将C:\winnt, C:\winnt\config, C:\winnt\system32, C:\winnt\system等目录的访问权限做限制,限制everyone的写权限,限制users组的读写权限;将各分区的根目录的everyone从权限列表中删除!然后分别添加Administrators、PowerUsers、Users、IUSR_***以不同的权限。不要给Guests任何权限。运行Sfc /enable 启动文件保护机制。 8.注册表一些条目的修改 1) 去除logon对话框中的shutdown按钮将HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ 9.启用TCP/IP过滤只允许TCP端口80和443(如果使用SSL)以及其他可能要用的端口;不允许UDP端口;只允许IP Protocol 6 (TCP)。 10.移动部分重要文件并加访问控制创建一个只有系统管理员能够访问的目录,将system32目录下的一些重要文件移动到此目录(注意同时处理System32\Dllcache目录中的同名文件!)。但有时会因系统文件保护功能被启用而无法实现顺利删除。变通办法是选中这些文件,然后禁止任何人访问。为稳妥起见,应当事先将这些文件存放到其他比较安全的位置供管理员自己使用。xcopy.exe, wscript.exe, cscript.exe, net.exe, ftp.exe, telnet.exe,arp.exe, edlin.exe,ping.exe,route.exe,at.exe,finger.exe,posix.exe,rsh.exe,atsvc.exe, qbasic.exe,runonce.exe,syskey.exe,cacls.exe, ipconfig.exe, rcp.exe, secfixup.exe, nbtstat.exe, rdisk.exe, debug.exe, regedt32.exe, regedit.exe, edit.com, netstat.exe, tracert.exe, nslookup.exe, rexec.exe, cmd.exe 11.下载Hisecweb.inf安全模板来配置系统Http://download.microsoft.com/downl...US/hisecweb.exe该模板配置基本的 Windows 2000 系统安全策略。将该模板复制到 %windir%\security\templates 目录。打开“安全模板”工具,查看这些设置。打开“安全配置和分析”工具,然后装载该模板。右键单击“安全配置和分析”工具,然后从上下文菜单中选择“立即分析计算机”。 等候操作完成。查看结果,如有必要就更新该模板。右键单击“安全配置和分析”工具,然后从上下文菜单中选择“立即配置计算机”。 12. 服务器上其他工具程序的替代浏览器建议使用FireFox,以免最新的针对IE的漏洞造成的危害。平时尽量不在服务器上上网。 13.设置陷阱脚本既要防范被人启用Telnet服务,又要考虑万一被入侵后的对策。除Telnet服务外,对System32目录下的Telsrv.exe等文件设置访问权限;关闭相关服务;然后再编辑System32\login.cmd文件,在其中添加脚本,目的是导致对方登录后出现异常,无法正常连接和工作。脚本的内容可以自由发挥,以阻断对方操作为准。 14.取消部分危险文件扩展名如reg VBS VBE JS等。 关闭445端口445端口惹出了不少问题 关闭方法 修改注册表,添加一个键值 关闭 DirectDraw这是C2级安全标准对视频卡和内存的要求。关闭DirectDraw可能对一些需要用到DirectX的程序有影响(比如游戏,在服务器上玩星际争霸?我晕..$%$^%^&??),但是对于绝大多数的商业站点都应该是没有影响的。 修改注册表 HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI 的Timeout(REG_DWORD)为 0 即可。 禁止dump file的产生和自动清除掉页面文件dump文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料(不然我就照字面意思翻译成垃圾文件了)。然而,它也能够给黑客提供一些敏感信息比如一些应用程序的密码等。要禁止它,打开 控制面板>系统属性>高级>启动和故障恢复 把 写入调试信息 改成无。要用的时候,可以再重新打开它。 禁止从软盘和CD Rom启动系统一些第三方的工具能通过引导系统来绕过原有的安全机制。如果你的服务器对安全要求非常高,可以考虑使用可移动软盘和光驱。把机箱锁起来仍不失为一个好方法。(XMW) 锁住注册表的访问权限在windows2000中,只有administrators和Backup Operators才有从网络上访问注册表的权限。如果你觉得还不够的话,可以进一步设定注册表访问权限,详细信息请参考: 考虑使用IPSec增强IP数据包的安全性正如其名字的含义,IPSec 提供 IP 数据包的安全性。IPSec 提供身份验证、完整性和可选择的机密性。发送方计算机在传输之前加密数据,而接收方计算机在收到数据之后解密数据。利用IPSec可以使得系统的安全性能大大增强。有关IPSes的详细信息可以参考: http://www.microsoft.com/china/technet/security/ipsecloc.asp 考虑使用智能卡来代替密码对于密码,总是使安全管理员进退两难,容易受到 10phtcrack 等工具的攻击,如果密码太复杂,用户把为了记住密码,会把密码到处乱写。如果条件允许,用智能卡来代替复杂的密码是一个很好的解决方法。 将服务器隐藏起来 为了防止黑客或其他非法攻击者轻易搜索到局域网服务器的名字,你可以巧妙使用“net config”命令,将服务器的名称暂时隐藏起来。如此一来局域网中的非法用户,即使通过网上邻居窗口,也无法找到服务器的“身影”了,服务器遭受外来攻击的危险性将会大大下降。 Win 2003中提高FSO的安全性 ASP提供了强大的文件系统访问能力,可以对服务器硬盘上的任何文件进行读、写、复制、删除、改名等操作,这给学校网站的安全带来巨大的威胁。现在很多校园主机都遭受过FSO木马的侵扰。但是禁用FSO组件后,引起的后果就是所有利用这个组件的ASP程序将无法运行,无法满足客户的需求。如何既允许FileSystemObject组件,又不影响服务器的安全性呢(即:不同虚拟主机用户之间不能使用该组件读写别人的文件)?以下是笔者多年来摸索出来的经验: 三、IIS 安全设置1.关闭并删除默认站点默认FTP站点 默认Web站点管理Web站点 2.建立自己的站点,与系统不在一个分区如:D:\wwwroot3.建立 E:\Logfiles 目录,以后建立站点时的日志文件均位于此目录,确保此目录上的访问控制权限是: Administrators(完全控制)System(完全控制) 3.删除IIS的部分目录IISHelp C:\winnt\help\iishelp IISAdmin C:\system32\inetsrv\iisadmin MSADC C:\Program Files\Common Files\System\msadc\ 删除 C:\\inetpub 4.删除不必要的IIS映射和扩展IIS 被预先配置为支持常用的文件名扩展如 .asp 和 .shtm 文件。IIS 接收到这些类型 的文件请求时,该调用由 DLL 处理。如果您不使用其中的某些扩展或功能,则应删除该映射,步骤如下: 打开 Internet 服务管理器: 选择计算机名,点鼠标右键,选择属性:然后选择编辑然后选择主目录, 点击配置 选择扩展名 \".htw\", \".htr\",\".idc\",\".ida\",\".idq\"和,点击删除如果不使用server side include,则删除\".shtm\" \".stm\" 和 \".shtml\" 5.禁用父路径 (有可能导致某些使用相对路径的子页面不能打开)“父路径”选项允许您在对诸如 MapPath 函数调用中使用“..”。在默认情况下,该选项 处于启用状态,应该禁用它。禁用该选项的步骤如下:右键单击该 Web 站点的根,然后从上下文菜单中选择“属性”。 单击“主目录”选项卡。单击“配置”。单击“应用程序选项”选项卡。取消选择“启用父路径”复选框。 6.在虚拟目录上设置访问控制权限在iis里把所有的目录,不包括asp等文件的目录 ,比如img,image,pic,upload等等这些目录,里面一般是没有asp文件的目录的执行许可设置为无,这样就算你用的程序被发现了新的漏洞,传了马上来了,它也执行不了,不过要看仔细了,有些目录里也是有asp,asa文件的! 主页使用的文件按照文件类型应使用不同的访问控制列表:CGI (.exe, .dll, .cmd, .pl) Everyone (X) Administrators(完全控制)System(完全控制)脚本文件 (.asp) Everyone (X) Administrators(完全控制)System(完全控制)include文件 (.inc, .shtm, .shtml) Everyone (X) Administrators(完全控制)System(完全控制)静态内容 (.txt, .gif, .jpg, .html) Everyone (R) Administrators(完全控制)System(完全控制)在创建Web站点时,没有必要在每个文件上设置访问控制权限,应该为每个文件类型创建一个新目录,然后在每个目录上设置访问控制权限、允许访问控制权限传给各个文件。 例如,目录结构可为以下形式:D:\wwwroot\myserver\static (.html) D:\wwwroot\myserver\include (.inc) D:\wwwroot\myserver \script (.asp) D:\wwwroot\myserver \executable (.dll) D:\wwwroot\myserver \images (.gif, .jpeg) 7.启用日志记录1)日志的审核配置确定服务器是否被攻击时,日志记录是极其重要的。应使用 W3C 扩展日志记录格式,步骤如下: 打开 Internet 服务管理器: 右键单击站点,然后从上下文菜单中选择“属性”。单击“Web 站点”选项卡。 选中“启用日志记录”复选框。从“活动日志格式”下拉列表中选择“W3C 扩展日志文件格式”。单击“属性”。单击“扩展属性”选项卡,然后设置以下属性:* 客户 IP 地址 * 用户名* 方法* URI 资源* HTTP 状态* Win32 状态* 用户代理* 服务器 IP 地址 * 服务器端口2)日志的安全管理1、启用操作系统组策略中的审核功能,对关键事件进行审核记录;2、启用IIS、FTP服务器等服务本身的日志功能;并对所有日志存放的默认位置进行更改同时作好文件夹权限设置!3、安装Portreport对所有网络访问操作进行监视(可选,可能增大服务器负荷);4、安装自动备份工具,定时对上述日志进行异地备份,起码是在其他分区的隐蔽位置进行备份,并对备份目录设置好权限(仅管理员可访问)。5、准备一款日志分析工具,以便随时可用。6、要特别关注任何服务的重启、访问敏感的扩展存储过程等事件。 8.备份IIS配置可使用IIS的备份功能,将设定好的IIS配置全部备份下来,这样就可以随时恢复 9.修改IIS标志1)使用工具程序修改IIS标志修改IIS标志Banner的方法:下载一个修改IIS Banner显示信息的软件——IIS/PWS Banner Edit。利用它我们可以很轻松地修改IIS的Banner。但要注意在修改之前我们首先要将IIS停止(最好是在服务中将World Wide Web Publishing停止),并要将DLLcache下的文件全部清除。否则你会发现即使修改了一点改变也没有。IIS/PWS Banner Edit其实是个傻瓜级的软件,我们只要直接在New Banner中输入想要的Banner信息,再点击Save to file就修改成功了。用IIS/PWS Banner Edit简单地修改,对菜鸟黑客来说他可能已被假的信息迷惑了,可是对一些高手来说这并没有给他们造成什么麻烦。为此我们必须亲自修改IIS的Banner信息,这样才能做到万无一失。高版本Windows的文件路径为 C:\WINDOWS\system32\inetsrv\w3svc.dll,可以直接用Ultraedit打开W3SVC.DLL,然后以“Server:”为关键字查找。利用编辑器将原来的内容替换成我们想要的信息,比如改成Apache的显示信息,这样入侵者就无法判断我们的主机类型,也就无从选择溢出工具了。2)修改IIS的默认出错提示信息等。 10.重定义错误信息很多文章讲了怎样防止数据库不被下载都不错的,只要记住一点 .不要改成asp就可以了,不然给你放一个一句话木马让你死的很难看,再着在IIS中将HTTP404.500等 Object Not Found出错页面通过URL重定向到一个定制HTM文件,这样大多数的暴库得到的都是你设置好的文件,自然就掩饰了数据库的地址还能防止一些菜鸟sql注射。 对于服务器管理员,既然你不可能挨个检查每个网站是否存在SQL注入漏洞,那么就来个一个绝招。这个绝招能有效防止SQL注入入侵而且"省心又省力,效果真好!"SQL注入入侵是根据IIS给出的ASP错误提示信息来入侵的,如果你把IIS设置成不管出什么样的ASP错误,只给出一种错误提示信息,即http 500错误,那么人家就没办法入侵了。具体设置请参看图2。主要把500:100这个错误的默认提示页面 C:\WINDOWS\Help\iisHelp\common\500-100.asp改成 Win 2003中提高FSO的安全性ASP提供了强大的文件系统访问能力,可以对服务器硬盘上的任何文件进行读、写、复制、删除、改名等操作,这给学校网站的安全带来巨大的威胁。现在很多校园主机都遭受过FSO木马的侵扰。但是禁用FSO组件后,引起的后果就是所有利用这个组件的ASP程序将无法运行,无法满足客户的需求。如何既允许FileSystemObject组件,又不影响服务器的安全性呢(即:不同虚拟主机用户之间不能使用该组件读写别人的文件)?以下是笔者多年来摸索出来的经验: 四、数据及备份管理1.备份1)要经常把重要数据备份到专用的备份服务器,备份完毕后,可将备份服务器与网络隔离。 可采用自动的备份工具进行,要求支持FTP方式备份。2)使用系统的备份功能对安装好的系统进行阶段性备份。3)使用WonRescue等工具对注册表进行阶段性备份。4)使用Ghost对全面配置完毕的系统分区进行映像备份,并存放到隐藏的分区中。 2.设置文件共享权限1)限制共享权限设置共享文件时,要注意把共享文件的权限从“everyone”组改成“授权用户”,包括打印共享。2)关闭默认共享Win 2000安装好以后,系统会创建一些隐藏的共享,在cmd下可用net share命令查看它们。要禁止这些共享。操作方法是:打开“管理工具→计算机管理→共享文件夹→共享”,在相应的共享文件夹上按右键,点“停止共享”即可。不当过机器重新启动后,这些共享又会重新开启。 3.防止文件名欺骗设置以下选项可防止文件名欺骗,如防止以.txt或.exe为后缀的恶意文件被显示为.txt文件,从而使人大意打开该文件: 双击“我的电脑→工具→文件夹选项→查看”,选择“显示所有文件和文件夹”属性设置,去掉“隐藏已知文件类型扩展名”属性设置。 4.Access数据库的安全概要1)新生成的数据库在保证干净的前提下,主动在尾部合并一行ASP代码,内容一般可以为重定向,以免别人通过论坛发帖等方式嵌入有害代码后被得到执行;2)对MDB文件创建一个无效的映射,以便在IE中下载时出错;3)修改出错页面,建议将出错页面设计为正常被曝库后的内容,但给一个数据库的虚假地址(最好存在相应的虚假数据库文件,比如一个改名后的病毒等);4)在防火墙中对MDB类型的扩展名进行过滤;5)删除或禁用网站的后台数据库备份功能,而用本地安装的专门自动备份程序进行自动增量备份。6)ASP 通用防止注入的程序:功能简单说明:1.自动获取页面所有参数,无需手工定义参数名.2.提供三种错误处理方式供选择. (1).提示信息. (2).转向页面. (3).提示信息,再转向页面.3.自定义转向页面.使用方法很简单,只需要在ASP页面头部插入代码<!--#Include File="Fy_SqlX.Asp"-->包含 Fy_SqlX.Asp 就可以了~~简单实用<%Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx'---定义部份 头------Fy_Cl = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向Fy_Zx = "Error.Asp" '出错时转向的页面On Error Resume NextFy_Url=Request.ServerVariables("QUERY_STRING")Fy_a=split(Fy_Url,"&")redim Fy_Cs(ubound(Fy_a))On Error Resume Nextfor Fy_x=0 to ubound(Fy_a)Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)NextFor Fy_x=0 to ubound(Fy_Cs)If Fy_Cs(Fy_x)<>"" ThenIf Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"and")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 ThenSelect Case Fy_Cl Case "1"Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&" 的值中包含非法字符串!\n\n 请不要在参数中出现:;,and,select,update,insert,delete,chr 等非法字符!');window.close();</Script>" Case "2"Response.Write "<Script Language=JavaScript>location.href='"&Fy_Zx&"'</Script>" Case "3"Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&"的值中包含非法字符串!\n\n 请不要在参数中出现:;,and,select,update,insert,delete,chr 等非法字符!');location.href='"&Fy_Zx&"';</Script>"End SelectResponse.EndEnd IfEnd IfNext%> 5.MSSQL 注入攻击的防范在SQL Server 2000的安装目录下的\NSSQL\BINN文件夹中有一个危险的DLL组件,就是Xplog70.dll,建议将它改名或者彻底删除! 攻击者可调用SQL里的Master里的扩展存储过程中的xp_cmdshell来执行系统指令。1)删除扩展存储过程在控制面板→计算机管理→Microsoft SQL Server→(Local……)→数据库→master→扩展存储过程→xp_cmdshell,右击然后删除!也可以使用命令删除:sp_dropextendedproc 'xp_cmdshell'接着在系统分区搜索并删除或改名、移除 xplog70.dll 文件防止恶意者恢复上述配置。2)删除注册表操作功能删除上述位置下的:xp_regaddmultistring(向注册表添加项目)xp_regdeletekey(向注册表删除一个项)xp_regdeletevalue(向注册表删除一个键值)xp_regnumvalues(列举主键下的键值)xp_regread(读取一主键下的键值)xp_regremovemultistring(从注册表中删除项目)xp_regwrite(向注册表中数据)3)防范跨库查询每个数据库分别设置一个数据库用户,该用户只能对其拥有的数据库进行查询,禁止其他数据库(包括4个系统数据库Master Model Tempdb Msdb和两个用户数据库 Pubs t Northwind)。 如果网站使用了别人的现成代码,则必须使用文本批量替换工具搜索“POWERED BY……”之类的版权特征信息,并进行替换,以免源代码存在漏洞时,别人可以通过搜索引擎快速找到你的网站,从而减少被随意入侵的机率。 6. MSSQL Server 的基本安全策略这些步骤是针对任何SQL Server安装的部分标准安全“最佳策略”。 7.使用应用层过滤防范URL入侵安装Deer Field、8Sign Firewall等具备应用层过滤功能的防火墙,对Url提交的非法字符进行整体过滤,可防范网站程序编写时存在的对敏感字符未过滤的漏洞。需要过滤的字符列表(□表示空格!): 8. PHP木马的攻击的防御之道 首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行: 五、其他辅助安全措施1.安装可靠的杀毒软件并立即升级;2.安装一款可能强大且配置灵活的网络防火墙,并认真做好规则设置;防火墙的选择、安装和配置概览:选择:1)一定要有出站审核功能的防火墙,防止反向连接的木马后门;2)设置适当的安全级别,安装初期可采用学习模式并小心配置,随后入为最高安全级别;3)配置好防火墙规则。建议默认为无匹配规则则拒绝,然后一一添加必须的规则;4)防火墙规则要经常备份和检查,发现可疑规则要高度警惕,或者不宝藏恢复备份规则。5)选择建议:天网;Look 'n' Stop、ZoneAlarm;服务器建议Deer Field。6)常用端口:FTP:21 WEB:80 SMTP:25 POP3:110 终端服务:3389(不建议使用;建议修改) MYSQL:3306 可在数据库的配置文件中将端口改一下,比如3389,让人家连吧:)其他如远程管理工具的端口也不建议使用默认端口。7)服务器建议使用DeerField对各种注入等手段通过URL提交的命令的关键字以及敏感文件的扩展名进行过滤,如.MDB、‘、--、NULL、select、% 六、简单设置防御小流量DDOS攻击小流量DDOS攻击防御在微软的hiseweb.inf文件中已经设置好了,如果导入hiseweb.inf则不需要另外设置。 防范DDOS攻击并不一定非要用防火墙。一部份DDOS我们可以通过DOS命令netstat -an|more或者网络综合分析软件:sniff等查到相关攻击手法、如攻击某个主要端口、或者对方主要来自哪个端口、对方IP等。这样我们可以利用w2k自带的远程访问与路由或者IP策略等本身自带的工具解决掉这些攻击。做为无法利用这些查到相关数据的我们也可以尝试一下通过对服务器进行安全设置来防范DDOS攻击。如果通过对服务器设置不能有效解决,那么就可以考虑购买抗DDOS防火墙了。 其实从操作系统角度来说,本身就藏有很多的功能,只是很多是需要我们慢慢的去挖掘的。这里我给大家简单介绍一下如何在Win2000环境下通过修改注册表,增强系统的抗DoS能力。 请注意,以下的安全设置均通过注册表进行修改,该设置的性能取决于服务器的配置,尤其是CPU的处理能力。如按照如下进行安全设置,采用双路至强2.4G的服务器配置,经过测试,可承受大约1万个包的攻击量。'关闭无效网关的检查。[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]当服务器设置了多个网关,这样在网络不通畅的时候系统会尝试连接第二个网关,通过关闭它可以优化网络。"EnableDeadGWDetect"=dword:00000000'禁止响应ICMP重定向报文。此类报文有可能用以攻击,所以系统应该拒绝接受ICMP重定向报文。"EnableICMPRedirects"=dword:00000000'不允许释放NETBIOS名。当攻击者发出查询服务器NETBIOS名的请求时,可以使服务器禁止响应。注意系统必须安装SP2以上"NonameReleaseOnDemand"=dword:00000001'发送验证保持活动数据包。该选项决定TCP间隔多少时间来确定当前连接还处于连接状态,不设该值,则系统每隔2小时对TCP是否有闲置连接进行检查,这里设置时间为5分钟。"KeepAliveTime"=dword:000493e0'禁止进行最大包长度路径检测。该项值为1时,将自动检测出可以传输的数据包的大小,'可以用来提高传输效率,如出现故障或安全起见,设项值为0,表示使用固定MTU值576bytes。"EnablePMTUDiscovery"=dword:00000000'启动syn攻击保护。缺省项值为0,表示不开启攻击保护,项值为1和2表示启动syn攻击保护,设成2之后'安全级别更高,对何种状况下认为是攻击,则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值'设定的条件来触发启动了。这里需要注意的是,NT4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。"SynAttackProtect"=dword:00000002'同时允许打开的半连接数量。所谓半连接,表示未完整建立的TCP会话,用netstat命令可以看到呈SYN_RCVD状态的就是。这里使用微软建议值,服务器设为100,高级服务器设为500。建议可以设稍微小一点。"TcpMaxHalfOpen"=dword:00000064'判断是否存在攻击的触发点。这里使用微软建议值,服务器为80,高级服务器为400。"TcpMaxHalfOpenRetried"=dword:00000050'设置等待SYN-ACK时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗时间为21秒。'项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3秒。这个值可以根据遭受攻击规模修改。'微软站点安全推荐为2。"TcpMaxConnectResponseRetransmissions"=dword:00000001'设置TCP重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软站点安全推荐为3。"TcpMaxDataRetransmissions"=dword:00000003设置syn攻击保护的临界点。当可用的backlog变为0时,此参数用于控制syn攻击保护的开启,微软站点安全推荐为5。"TCPMaxPortsExhausted"=dword:00000005'禁止IP源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设置为2,表示丢弃所有接受的源路由包,微软站点安全推荐为2。"DisableIPSourceRouting"=dword:0000002'限制处于TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。"TcpTimedWaitDelay"=dword:0000001e [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]'增大NetBT的连接块增加幅度。缺省为3,范围1-20,数值越大在连接越多时提升性能。每个连接块消耗87个字节。"BacklogIncrement"=dword:00000003'最大NetBT的连接快的数目。范围1-40000,这里设置为1000,数值越大在连接越多时允许更多连接。"MaxConnBackLog"=dword:000003e8[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Afd\Parameters]'配置激活动态Backlog。对于网络繁忙或者易遭受SYN攻击的系统,建议设置为1,表示允许动态Backlog。"EnableDynamicBacklog"=dword:00000001'配置最小动态Backlog。默认项值为0,表示动态Backlog分配的自由连接的最小数目。当自由连接数目低于此数目时,将自动的分配自由连接。默认值为0,对于网络繁忙或者易遭受SYN攻击的系统,建议为20。"MinimumDynamicBacklog"=dword:00000014'最大动态Backlog。表示定义最大"准"连接的数目,主要看内存大小,理论每32M内存最大可以'增加5000个,这里设为20000。"MaximumDynamicBacklog"=dword:00002e20'每次增加的自由连接数据。默认项值为5,表示定义每次增加的自由连接数目。对于网络繁忙或者易遭受SYN攻击'的系统,建议设置为10。"DynamicBacklogGrowthDelta"=dword:0000000a以下部分需要根据实际情况手动修改'[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]'启用网卡上的安全过滤'"EnableSecurityFilters"=dword:00000001'同时打开的TCP连接数,这里可以根据情况进行控制。'"TcpNumConnections"='该参数控制 TCP 报头表的大小限制。在有大量 RAM 的机器上,增加该设置可以提高 SYN 攻击期间的响应性能。'"TcpMaxSendFree"='[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{自己的网卡接口}]'禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致攻击,所以禁止路由发现。"PerformRouterDiscovery "=dword:00000000 七、日常安全检查1、日志查看包括系统日志、IIS以及SQL等的日志、防火墙日志、自动备份程序的工作日志;检查日志中异常内容;日志是否有明显时间中断现象;是否出现某些日志被清空的现象;有无伪造日志的迹象。以上要经常检查即可积累经验。2、检查账户列表、系统服务列表、自动加载的程序列表;3、检查异常文件。可结合上述的文件日期、文件列表进行快速排查。还可针对特定木马程序的文件名进行搜索(如ca.exe cca.exe findpass.exe pulist.exe 3389.exe等),特别要注意搜索带有数字“ |
|
打印本文 关闭窗口 |