因为IIS(Internet Information Server)的方便性和易用性,所以成为最受欢迎的Web服务器软件之一。但是,IIS从诞生起,其安全性就一直受到人们的置疑,原因在于其经常被发现有新的安全漏洞。虽然IIS的安全性与其他的Web服务软件相比有差距,不过,只要我们精心对IIS进行安全配置,仍然能建立一个安全性的Web服务器的。
构造一个安全的Windows 2000 操作系统
要创建一个安全可靠的Web服务器,必须要实现Windows 2000操作系统和IIS的双重安全,因为IIS的用户同时也是Windows 2000的用户,并且IIS目录的权限依赖Windows的NTFS文件系统的权限控制,所以保护IIS安全的第一步就是确保Windows 2000操作系统的安全。实际上,Web服务器安全的根本就是保障操作系统的安全。
使用NTFS文件系统
在NT系统中应该使用NTFS系统,NTFS可以对文件和目录进行管理,而FAT文件系统只能提供共享级的安全,而且在默认情况下,每建立一个新的共享,所有的用户就都能看到,这样不利于系统的安全性。而在NTFS文件下,建立新共享后可以通过修改权限保证系统安全。
关闭默认共享
在Windows 2000中,有一个“默认共享”,这是在安装服务器的时候,把系统安装分区自动进行共享,虽然对其访问还需要超级用户的密码,但这是潜在的安全隐患,从服务器的安全考虑,最好关闭这个“默认共享”,以保证系统安全。方法是:单击“开始/运行”,在运行窗口中输入“Regedit”,打开注册表编辑器,展开“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters”项,添加键值AutoShareServer,类型为REG_DWORD,值为0。 这样就可以彻底关闭“默认共享”。
共享权限的修改
在系统默认情况下,每建立一个新的共享,Everyone用户就享有“完全控制”的共享权限,因此,在建立新的共享后应该立即修改Everyone的缺省权限,不能让Web服务器访问者得到不必要的权限,给服务器带来被攻击的危险。
为系统管理员账号改名
对于一般用户,我们可以在“本地安全策略”中的“帐户锁定策略”中限制猜测口令的次数,但对系统管理员账号(adminstrator)却无法限制,这就可能给非法用户攻击管理员账号口令带来机会,所以我们需要将管理员账号更名。具体设置方法如下:
鼠标右击“我的电脑”
“管理”,启动“计算机管理”程序,在“本地用户和组”中,鼠标右击“管理员账号(administrator)”,选择“重命名”,将管理员帐号修改为一个很普通的用户名即可。
禁用TCP/IP 上的NetBIOS
NetBIOS是许多安全缺陷的源泉,所以我们需要禁用它。鼠标右击桌面上“网络邻居”
“属性”
“本地连接”
“属性”,打开“本地连接属性”对话框。选择“Internet协议(TCP/IP)”
“属性”
“高级”
“WINS”,选中“禁用TCP/IP上的NetBIOS”一项即可解除TCP/IP上的NetBIOS,如图1。
TCP/IP上对进站连接进行控制
方法一 利用TCP/IP筛选
鼠标右击桌面上“网络邻居”
“属性”
“本地连接”
“属性”,打开“本地连接属性”对话框。选择“Internet协议(TCP/IP)”
“属性”
“高级”
“选项”, 在列表中单击选中“TCP/IP筛选”选项。单击“属性”按钮,选择“只允许”,再单击“添加”按钮,如图2,只填入80端口即可。
方法二 利用IP安全策略
IPSec Policy Filters(IP安全策略过滤器)弥补了传统TCP/IP设计上的“随意信任”重大安全漏洞,可以实现更仔细更精确的TCP/IP安全。它是一个基于通讯分析的策略,将通讯内容与设定好的规则进行比较以判断通讯是否与预期相吻合,然后据此允许或拒绝通讯的传输。我们同样可以设置只允许80端口的数据通过,其它端口来的数据一律拦截。
防范拒绝服务攻击
DDoS攻击现在很流行,例如SYN使用巨量畸形TCP信息包向服务器发出请求,最终导致服务器不能正常工作。改写注册表信息虽然不能完全阻止这类攻击,但是可以降低其风险。打开注册表:将HKLMSystemCurrentControlSetServicesTcpipParameters下的SynAttackProtect的值修改为2。这样可以使TCP/IP调整SYN-ACKS的重传,当出现SYN-ATTACK迹象时,使连接对超时的响应更快。
保证IIS自身的安全性
IIS安全安装
在保证系统具有较高安全性的情况下,还要保证IIS的安全性。要构建一个安全的IIS服务器,必须从安装时就充分考虑安全问题。
不要将IIS安装在系统分区上
默认情况下,IIS与操作系统安装在同一个分区中,这是一个潜在的安全隐患。因为一旦入侵者绕过了IIS的安全机制,就有可能入侵到系统分区。如果管理员对系统文件夹、文件的权限设置不是非常合理,入侵者就有可能篡改、删除系统的重要文件,或者利用一些其他的方式获得权限的进一步提升。将IIS安装到其他分区,即使入侵者能绕过IIS的安全机制,也很难访问到系统分区。
修改IIS的安装默认路径
IIS的默认安装的路径是inetpub,Web服务的页面路径是inetpubwwwroot,这是任何一个熟悉IIS的人都知道的,入侵者也不例外,使用默认的安装路径无疑是告诉了入侵者系统的重要资料,所以需要更改。
打上Windows和IIS的补丁
只要提高安全意识,经常注意系统和IIS的设置情况,并打上最新的补丁,IIS就会是一个比较安全的服务器平台,能为我们提供安全稳定的服务。
IIS的安全配置
删除不必要的虚拟目录
IIS安装完成后在wwwroot下默认生成了一些目录,并默认设置了几个虚拟目录,包括IISHelp、IISAdmin、IISSamples、MSADC等,它们的实际位置有的是在系统安装目录下,有的是在重要的Program files下,从安全的角度来看很不安全,而且这些设置实际也没有太大的作用,所以我们可以删除这些不必要的虚拟目录。
删除危险的IIS组件
默认安装后的有些IIS组件可能会造成安全威胁,应该从系统中去掉,以下是一些“黑名单”,大家可以根据自己的需要决定是否需要删除。
● Internet服务管理器(HTML):这是基于Web 的IIS服务器管理页面,一般情况下不应通过Web进行管理,建议卸载它。
● SMTP Service和NNTP Service:如果不打算使用服务器转发邮件和提供新闻组服务,就可以删除这两项,否则,可能因为它们的漏洞带来新的不安全。
● 样本页面和脚本:这些样本中有些是专门为显示IIS的强大功能设计的,但同样可被用来从Internet上执行应用程序和浏览服务器,建议删除。
为IIS中的文件分类设置权限
除了在操作系统里为IIS的文件设置必要的权限外,还要在IIS管理器中为它们设置权限,以期做到双保险。一般而言,对一个文件夹永远也不应同时设置写和执行权限,以防止攻击者向站点上传并执行恶意代码。另外目录浏览功能也应禁止,预防攻击者把站点上的文件夹浏览个遍最后找到漏洞。一个好的设置策略是:为Web 站点上不同类型的文件都建立目录,然后给它们分配适当权限。例如:
● 静态文件文件夹:包括所有静态文件,如HTM 或HTML,给予允许读取、拒绝写的权限。
● ASP脚本文件夹:包含站点的所有脚本文件,如cgi、vbs、asp等等,给予允许执行、拒绝写和读取的权限。
● EXE等可执行程序:包含站点上的二进制执行文件,给予允许执行、拒绝写和拒绝读取的权限。
删除不必要的应用程序映射
IIS中默认存在很多种应用程序映射,如.htw、.ida、.idq、.asp、.cer、.cdx、.asa、.htr、.idc、.shtm、.shtml、.stm、.printer等,通过这些程序映射,IIS就能知道对于什么样的文件该调用什么样的动态链接库文件来进行解析处理。但是,在这些程序映射中,除了.asp的这个程序映射,其它的文件在网站上都很少用到。而且在这些程序映射中,.htr、.idq/ida、.printer等多个程序映射都已经被发现存在缓存溢出问题,入侵者可以利用这些程序映射中存在的缓存溢出获得系统的权限。即使已经安装了系统最新的补丁程序,仍然没法保证安全。
所以我们需要将这些不需要的程序映射删除。在“Internet服务管理器”中,右击网站目录,选择“属性”,在网站目录属性对话框的“主目录”页面中,点击“配置”按钮,弹出“应用程序配置”对话框,在“应用程序映射”页面,删除无用的程序映射,如图3。如果需要这一类文件时,必须安装最新的系统修补程序以解决程序映射存在的问题,并且选中相应的程序映射,再点击“编辑”按钮,在“添加/编辑应用程序扩展名映射”对话框中勾选“检查文件是否存在”选项,如图4。这样当客户请求这类文件时,IIS会先检查文件是否存在,文件存在后才会去调用程序映射中定义的动态链接库来解析。
保护日志安全
日志是系统安全策略的一个重要坏节,IIS带有日志功能,能记录所有的用户请求。确保日志的安全能有效提高系统整体安全性。
方法一: 修改IIS日志的存放路径
IIS的日志默认保存在一个众所周知的位置(%WinDir%System32LogFil-es),这对Web日志的安全很不利。所以我们最