2023年12月8日发(作者:)
Windows Server2003 IIS 6.0安全配置
草 稿
目 录
1.
安装IIS6.0 ................................................................................................................ 2
1.1
1.2
安装Internet 信息服务 ............................................................................................... 2
配置匿名身份验证 .............................................................................................................. 2
2.
基本
WEB
站点配置 ................................................................................................ 3
3.
让IIS以最小的NTFS权限运行 ............................................................................ 3
4.
防范组件的方法 ............................................................................ 4
5.
防范ATION组件的方法 ..................................................................... 4
6.
硬盘文件夹权限详细配置 ....................................................................................... 4
7.
卸载最不安全的组件 ............................................................................................... 5
8.
禁用TCP/IP
上的NETBIOS .................................................................................... 6
9.
TCP/IP上对进站连接进行控制 .............................................................................. 6
9.1
9.2
方法一 利用TCP/IP筛选 .............................................................................................. 6
方法二 利用IP安全策略 .............................................................................................. 6
10.
11.
12.
13.
防范拒绝服务攻击 ................................................................................................ 6
为IIS中的文件分类设置权限 ............................................................................. 7
删除不必要的应用程序映射 ................................................................................ 7
保护日志安全 ........................................................................................................ 8
方法一: 修改IIS日志的存放路径 .............................................................................. 8
方法二: 修改日志访问权限 .......................................................................................... 8
13.1
13.2
I
Windows Server2003 IIS 6.0安全配置
1. 安装IIS6.0
1.1 安装Internet 信息服务
Microsoft Internet 信息服务 (IIS) 是与 Windows Server 2003 集成的 Web 服务。要安装
IIS、添加可选组件或删除可选组件,请按以下步骤操作:
1. 单击开始,指向控制面板,然后单击“添加或删除程序”。
“添加或删除程序”工具就会启动。
2. 单击添加/删除 Windows 组件。显示“Windows 组件向导”。
3. 在Windows 组件 列表中,单击Web 应用程序服务器。
4. 单击详细信息,然后单击Internet 信息服务 (IIS)。
5. 单击详细信息 ,以查看 IIS 可选组件列表。
6. 选择您要安装的可选组件。默认情况下,下列组件是选中的:
--- 公用文件
--- FrontPage 2002 Server Extentions
--- Internet 信息服务管理单元
--- Internet 信息服务管理器
--- NNTP 服务
--- SMTP 服务
--- World Wide Web 服务
7. 单击“World Wide Web 服务”,然后单击详细信息 ,以查看 IIS 可选子组件(如 Active
Server Pages 组件和“远程管理 (HTML) 工具”)的列表。选择您要安装的可选子组件。默认情况下,下列组件是选中的:
--- World Wide Web 服务
8. 单击确定 ,直到返回“Windows 组件向导”。
9. 单击下一步,然后完成“Windows 组件向导”。
1.2 配置匿名身份验证
要配置匿名身份验证,请按以下步骤操作:
1. 单击开始,指向管理工具,然后单击Internet 信息服务 (IIS)。
2. 展开“* 服务器名称”(其中服务器名称为该服务器的名称),右键单击Web 站点,然后单击属性。
3. 在Web 站点属性对话框中,单击目录安全性选项卡。
4. 在“身份验证和访问控制”下,单击编辑。
5. 单击“启用匿名访问”复选框,将其选中。
备注:“用户名”框中的用户帐户只用于通过Windows Guest帐户进行匿名访问。默认情况下,服务器会创建并使用帐户IUSR_computername。匿名用户帐户密码仅在Windows中使用;匿名用户不使用用户名和密码登录。
2
6. 在“已验证身份的访问”下,单击“集成的 Windows 身份验证”复选框,将其选中。
7. 单击确定两次。
2. 基本 Web 站点配置
1.
2.
3.
4.
单击开始,指向管理工具,然后单击Internet 信息服务 (IIS)。
展开“* 服务器名称”(其中服务器名称为该服务器的名称),然后展开Web 站点。
右键单击默认Web站点,然后单击属性。
单击Web站点选项卡。如果您已为计算机分配了多个IP地址,则请在IP地址框中单击您要指定给此Web站点的IP地址。
5. 单击性能选项卡。使用Web站点属性-性能对话框可设置影响内存、带宽使用和Web连接数量的属性。
通过配置某个特定站点上的网络带宽,您可以更好地控制该站点的通信量。例如,通过在低优先级的 Web 站点上限制带宽,您可以放宽对他站点的访问量的限制。同样,当您指定到某个 Web 站点的连接数量时,您就可以为其他站点释放资源。设置是站点专用的,应根据网络通信量和使用变化情况进行调整。
--- 单击“限制可用于此 Web 站点的带宽”复选框,将其选中,可配置 IIS 将网络带宽调节到选定的最大带宽量,以千字节每秒 (KB/S) 为单位。
--- 单击Web 服务连接 复选框,将其选中,可选择特定数目或者不限定数目的 Web 服务连接。限制连接可使计算机资源能够用于其他进程。
备注:每个浏览 Web 站点的客户机通常都使用大约三个连接。
6. 单击主目录 选项卡。
--- 如果您想使用存储在本地计算机上的Web内容,则单击“此计算机上的目录”然后在本地路径 框中键入您想要的路径。例如,默认路径为 C:Inetpubwwwroot。
3. 让IIS以最小的NTFS权限运行
依次做下面的工作:
a. 选取整个硬盘:
system:完全控制
administrator:完全控制 (允许将来自父系的可继承性权限传播给对象)
b. program filescommon files:
everyone:读取及运行,列出文件目录,读取(允许将来自父系的可继承性权限传播给对象)
c. inetpubwwwroot:iusr_machinename:读取及运行,列出文件目录,读取(允许将来自父系的可继承性权限传播给对象)
d. windowssystem32:选择除inetsrv和centsrv以外的所有目录,去除“允许将来自父系的可继承性权限传播给对象”选框,复制。
e. windows:选择除了downloaded、program files、help、iis temporary compressed files、
offline web pages、system32、tasks、temp、web以外的所有目录去除“允许将来自父系的可继承性权限传播给对象”选框,复制。
f. windows:everyone:读取及运行,列出文件目录,读取(允许将来自父系的可继承性3
权限传播给对象)
g. windowstemp:(允许访问数据库并显示在asp页面上)everyone:修改(允许将来自父系的可继承性权限传播给对象)
再单独对、、、、、、、 、、、、设置为只允许administrators组访问,这样就可以防范通过Serv-U的本地提升权限漏洞来运行这些关键的程序了,再删除这个程序,防止有人通过命令行来修改权限还比较有威胁的组件就是ation和这两个组件了,ation可以对文件进行一些操作,还可以执行程序,但不能带参数,而可以操作注册表和执行DOS命令。
4. 防范组件的方法
可以通过修改注册表,将此组件改名。
HKEY_CLASSES_及HKEY_CLASSES_.1改名为其它的名字,如:改为_ChangeName或.1_ChangeName自己以后调用的时候使用这个就可以正常调用此组件。同时也要将clsid值也改一下HKEY_CLASSES_LSID项目的值
HKEY_CLASSES_.1CLSID项目的值
也可以将其删除,来防止此类木马的危害。
5. 防范ation组件的方法
可以通过修改注册表,将此组件改名。 HKEY_CLASSES_ation及HKEY_CLASSES_ation.1改名为其它的名字,如:改为ation_ChangeName或ation.1_ChangeName自己以后调用的时候使用这个就可以正常调用此组件。也要将clsid值也改一下
HKEY_CLASSES_ationCLSID项目的值
HKEY_CLASSES_ationCLSID项目的值
也可以将其删除,来防止此类木马的危害。
6. 硬盘文件夹权限详细配置
在服务器上打开资源管理器,用鼠标右键点击各个硬盘分区或卷的盘符,在弹出菜单中选择“属性”,选择“安全”选项卡,此时就可以看到有哪些帐号可以访问这个分区(卷)及访问权限。默认安装后,出现的是“Everyone”具有完全控制的权限。点“添加”,将“Administrators”、“Backup Operators”、“Power Users”、“Users”等几个组添加进去,并给予“完全控制”或相应的权限,注意,不要给“Guests”组、“IUSR_机器名”这几个帐号任何权限。然后将“Everyone”组从列表中删除,这样,就只有授权的组和用户才能访问此硬盘分区了,而 ASP 执行时,是以“IUSR_机器名”的身份访问硬盘的,这里没给该用户帐号权限,ASP 也就不能读写硬盘上的文件了。
下面要做的就是给每个虚拟主机用户设置一个单独的用户帐号,然后再给每个帐号分配4
一个允许其完全控制的目录。
打开“计算机管理”→“本地用户和组”→“用户”,在右栏中点击鼠标右键,在弹出的菜单中选择“新用户”。
在弹出的“新用户”对话框中根据实际需要输入“用户名”、“全名”、“描述”、“密码”、“确认密码”,并将“用户下次登录时须更改密码”前的对号去掉,选中“用户不能更改密码”和“密码永不过期”。本例是给第一虚拟主机的用户建立一个匿名访问 Internet 信息服务的内置帐号“IUSR_VHOST1”,即:所有客户端使用 / 访问此虚拟主机时,都是以这个身份来访问的。输入完成后点“创建”即可。可以根据实际需要,创建多个用户,创建完毕后点“关闭”。 现在新建立的用户已经出现在帐号列表中了,在列表中双击该帐号,以便进一步进行设置。
在弹出的“IUSR_VHOST1”(即刚才创建的新帐号)属性对话框中点“隶属于”选项卡:
刚建立的帐号默认是属于“Users”组,选中该组,点“删除”。此时再点“添加”,在弹出的“选择 组”对话框中找到“Guests”,点“添加”,此组就会出现在下方的文本框中,然后点“确定”。
打开“Internet 信息服务”,开始对虚拟主机进行设置,本例中的以对“第一虚拟主机”设置为例进行说明,右击该主机名,在弹出的菜单中选择“属性”:弹出一个“第一虚拟主机 属性”的对话框,从对话框中可以看到该虚拟主机用户的使用的是“F:VHOST1”这个文件夹:暂时先不管刚才的“第一虚拟主机 属性”对话框,切换到“资源管理器”,找到“F:VHOST1”这个文件夹,右击,选“属性”→“安全”选项卡,此时可以看到该文件夹的默认安全设置是“Everyone”完全控制(视不同情况显示的内容不完全一样),首先将最将下的“允许将来自父系的可继承权限传播给该对象”前面的对号去掉,此时会弹出 “安全”警告,点“删除”。此时安全选项卡中的所有组和用户都将被清空(如果没有清空,请使用“删除”将其清空),然后点“添加”按钮。 将“Administrator”及在前面所创建的新帐号“IUSR_VHOST1”添加进来,将给予完全控制的权限,还可以根据实际需要添加其他组或用户,但一定不要将“Guests”组、“IUSR_机器名”这些匿名访问的帐号添加上去!
再切换到前面打开的“第一虚拟主机属性”的对话框,打开“目录安全性”选项卡,点匿名访问和验证控制的“编辑”,在弹出的“验证方法”对方框,点“编辑”。弹出了“匿名用户帐号”,默认的就是“IUSR_机器名”,点“浏览”,在“选择 用户”对话框中找到前面创建的新帐号“IUSR_VHOST1”,双击。此时匿名用户名就改过来了,在密码框中输入前面创建时,为该帐号设置的密码,再确定一遍密码。
经此设置后,“第一虚拟主机”的用户,使用 ASP 的 FileSystemObject 组件也只能访问自己的目录:F:VHOST1 下的内容,当试图访问其他内容时,会出现诸如“没有权限”、“硬盘未准备好”、“500 服务器内部错误”等出错提示了。
另:如果该用户需要读取硬盘的分区容量及硬盘的序列号,那这样的设置将使其无法读取。如果要允许其读取这些和整个分区有关的内容,请右键点击该硬盘的分区(卷),选择“属性”→“安全”,将这个用户的帐号添加到列表中,并至少给予“读取”权限。由于该卷下的子目录都已经设置为“禁止将来自父系的可继承权限传播给该对象”,所以不会影响下面的子目录的权限设置。
7. 卸载最不安全的组件
如果你不想使用上面的修改不安全组件的方法,那最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件
regsvr32/u C:
5
del C: windows
regsvr32/u C: windows
del C: windows
然后运行一下,, ation, k就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“×安全”了。
8. 禁用TCP/IP 上的NetBIOS
NetBIOS是许多安全缺陷的源泉,所以我们需要禁用它。鼠标右击桌面上“网络邻居”-“属性” “本地连接”-“属性”,打开“本地连接属性”对话框。选择“Internet协议(TCP/IP)”-“属性”-“高级”-“WINS”,选中“禁用TCP/IP上的NetBIOS”一项即可解除TCP/IP上的NetBIOS
9. TCP/IP上对进站连接进行控制
9.1 方法一 利用TCP/IP筛选
鼠标右击桌面上“网络邻居”-“属性”-“本地连接”-“属性”,打开“本地连接属性”对话框。选择“Internet协议(TCP/IP)”-“属性”-“高级”-“选项”, 在列表中单击选中“TCP/IP筛选”选项。单击“属性”按钮,选择“只允许”,再单击“添加”按钮,如图,只填入80端口即可。
9.2 方法二 利用IP安全策略
IPSec Policy Filters(IP安全策略过滤器)弥补了传统TCP/IP设计上的“随意信任”重大安全漏洞,可以实现更仔细更精确的TCP/IP安全。它是一个基于通讯分析的策略,将通讯内容与设定好的规则进行比较以判断通讯是否与预期相吻合,然后据此允许或拒绝通讯的传输。我们同样可以设置只允许80端口的数据通过,其它端口来的数据一律拦截。
10. 防范拒绝服务攻击
DDoS攻击现在很流行,例如SYN使用巨量畸形TCP信息包向服务器发出请求,最终导致服务器不能正常工作。改写注册表信息虽然不能完全阻止这类攻击,但是可以降低其风险。打开注册表:将HKLMSystemCurrentControlSetServicesTcpipParameters下的6
SynAttackProtect的值修改为2。这样可以使TCP/IP调整SYN-ACKS的重传,当出现SYN-ATTACK迹象时,使连接对超时的响应更快。
11. 为IIS中的文件分类设置权限
除了在操作系统里为IIS的文件设置必要的权限外,还要在IIS管理器中为它们设置权限,以期做到双保险。一般而言,对一个文件夹永远也不应同时设置写和执行权限,以防止攻击者向站点上传并执行恶意代码。另外目录浏览功能也应禁止,预防攻击者把站点上的文件夹浏览个遍最后找到漏洞。一个好的设置策略是:为Web 站点上不同类型的文件都建立目录,然后给它们分配适当权限。例如:
静态文件文件夹:包括所有静态文件,如HTM 或HTML,给予允许读取、拒绝写的权限。
ASP脚本文件夹:包含站点的所有脚本文件,如cgi、vbs、asp等等,给予允许执行、拒绝写和读取的权限。
EXE等可执行程序:包含站点上的二进制执行文件,给予允许执行、拒绝写和拒绝读取的权限。
12. 删除不必要的应用程序映射
IIS中默认存在很多种应用程序映射,如.htw、.ida、.idq、.asp、.cer、.cdx、.asa、.htr、.idc、.shtm、.shtml、.stm、.printer等,通过这些程序映射,IIS就能知道对于什么样的文件该调用什么样的动态链接库文件来进行解析处理。但是,在这些程序映射中,除了.asp的这个程序映射,其它的文件在网站上都很少用到。而且在这些程序映射中,.htr、.idq/ida、.printer等多个程序映射都已经被发现存在缓存溢出问题,入侵者可以利用这些程序映射中存在的缓存溢出获得系统的权限。即使已经安装了系统最新的补丁程序,仍然没法保证安全。
所以我们需要将这些不需要的程序映射删除。在“Internet服务管理器”中,右击网站目录,选择“属性”,在网站目录属性对话框的“主目录”页面中,点击“配置”按钮,弹出“应用程序配置”对话框,在“应用程序映射”页面,删除无用的程序映射。如果需要这一类文件时,必须安装最新的系统修补程序以解决程序映射存在的问题,并且选中相应的程序映射,再点击“编辑”按钮,在“添加/编辑应用程序扩展名映射”对话框中勾选“检查文件是否存在”选项,如图。这样当客户请求这类文件时,IIS会先检查文件是否存在,文件存在后才会去调用程序映射中定义的动7
态链接库来解析。
13. 保护日志安全
日志是系统安全策略的一个重要坏节,IIS带有日志功能,能记录所有的用户请求。确保日志的安全能有效提高系统整体安全性。
13.1 方法一: 修改IIS日志的存放路径
IIS的日志默认保存在一个众所周知的位置(%WinDir%System32LogFil-es),这对Web日志的安全很不利。所以我们最好修改一下其存放路径。在“Internet服务管理器”中,右击网站目录,选择“属性”,在网站目录属性对话框的“Web站点”页面中,在选中“启用日志记录”的情况下,点击旁边的“属性”按钮,在“常规属性”页面,点击“浏览”按钮或者直接在输入框中输入日志存放路径即可,如图。
13.2 方法二: 修改日志访问权限
日志是为管理员了解系统安全状况而设计的,其他用户没有必要访问,应将日志保存在NTFS分区上,设置为只有管理员才能访问。
当然,如果条件许可,还可单独设置一个分区用于保存系统日志,分区格式是NTFS,这样除了便于管理外,也避免了日志与系统保存在同一分区给系统带来的安全威胁。如果IIS日志保存在系统分区中,入侵者使用软件让IIS产生大量的日志,可能会导致日志填满硬盘空间,整个Windows系统将因为缺乏足够可用的硬盘空间而崩溃,为日志设置单独的分区则可以避免这种情况的出现。
8
IIS6.0服务器无法访问解决方案总结
有些人在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的,经过多次试验,结合以前的排错经验,做出了这个总结,希望能给大家帮上忙:
问题1:未启用父路径
症状举例:
h() 错误 ASP 0175 : 80004005
不允许的 Path 字符
/0709/dqyllhsub/news/,行 4
在 MapPath 的 Path 参数中不允许字符 ..。
原因分析:
许多Web页面里要用到诸如../格式的语句(即回到上一层的页面,也就是父路径),而IIS6.0出于安全考虑,这一选项默认是关闭的。
解决方法:
在IIS中 属性->主目录->配置->选项中。把”启用父路径“前面打上勾。确认刷新。
问题2:ASP的Web扩展配置不当(同样适用于、CGI)
症状举例:
HTTP 错误 404 - 文件或目录未找到。
原因分析:
在IIS6.0中新增了web程序扩展这一选项,你可以在其中对ASP、、CGI、IDC等程序进行允许或禁止,默认情况下ASP等程序是禁止的。
解决方法:
在IIS中的Web服务扩展中选中Active Server Pages,点击“允许”。
9
问题3:身份认证配置不当
症状举例:
HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝。
原因分析:IIS 支持以下几种 Web 身份验证方法:
匿名身份验证
IIS 创建 IUSR_计算机名称 帐户(其中 计算机名称 是正在运行 IIS 的服务器的名称),用来在匿名用户请求 Web 内容时对他们进行身份验证。此帐户授予用户本地登录权限。你可以将匿名用户访问重置为使用任何有效的 Windows 帐户。
基本身份验证
使用基本身份验证可限制对 NTFS 格式 Web 服务器上的文件的访问。使用基本身份验证,用户必须输入凭据,而且访问是基于用户 ID 的。用户 ID 和密码都以明文形式在网络间进行发送。
Windows 集成身份验证
Windows 集成身份验证比基本身份验证安全,而且在用户具有 Windows 域帐户的内部网环境中能很好地发挥作用。在集成的 Windows 身份验证中,浏览器尝试使用当前用户在域登录过程中使用的凭据,如果尝试失败,就会提示该用户输入用户名和密码。如果你使用集成的 Windows 身份验证,则用户的密码将不传送到服务器。如果该用户作为域用户登录到本地计算机,则他在访问此域中的网络计算机时不必再次进行身份验证。
摘要身份验证
摘要身份验证克服了基本身份验证的许多缺点。在使用摘要身份验证时,密码不是以明文形式发送的。另外,你可以通过代理服务器使用摘要身份验证。摘要身份验证使用一种挑战/响应机制(集成 Windows 身份验证使用的机制),其中的密码是以加密形式发送的。
.NET Passport 身份验证
Microsoft .NET Passport 是一项用户身份验证服务,它允许单一签入安全性,可使用户在访问启用了 .NET Passport 的 Web 站点和服务时更加安全。启用了 .NET Passport 的站点会依靠 .NET Passport 中央服务器来对用户进行身份验证。但是,该中心服务器不会授权或拒绝特定用户访问各个启用了 .NET Passport 的站点。
10
解决方法:
根据需要配置不同的身份认证(一般为匿名身份认证,这是大多数站点使用的认证方法)。认证选项在IIS的属性->安全性->身份验证和访问控制下配置。
问题4:IP限制配置不当
症状举例:
HTTP 错误 403.6 - 禁止访问:客户端的 IP 地址被拒绝。
原因分析:
IIS提供了IP限制的机制,你可以通过配置来限制某些IP不能访问站点,或者限制仅仅只有某些IP可以访问站点,而如果客户端在被你阻止的IP范围内,或者不在你允许的范围内,则会出现错误提示。
解决方法:
进入IIS的属性->安全性->IP地址和域名限制。如果要限制某些IP地址的访问,需要选择授权访问,点添加选择不允许的IP地址。反之则可以只允许某些IP地址的访问。
问题5:IUSR账号被禁用
症状举例:
HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。
原因分析:
由于用户匿名访问使用的账号是IUSR_机器名,因此如果此账号被禁用,将造成用户无法访问。
解决办法:
控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用。
问题6:NTFS权限设置不当
症状举例:
HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
11
原因分析:
Web客户端的用户隶属于user组,因此,如果该文件的NTFS权限不足(例如没有读权限),则会导致页面无法访问。
解决办法:
进入该文件夹的安全选项卡,配置user的权限,至少要给读权限。关于NTFS权限设置这里不再馈述。
问题7:IWAM账号不同步
症状举例:
HTTP 500 - 内部服务器错误
原因分析:
IWAM账号是安装IIS时系统自动建立的一个内置账号。IWAM账号建立后被Active Directory、IIS metabase数据库和COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作。系统对IWAM账号的密码同步工作有时会失效,导致IWAM账号所用密码不统一。
解决办法:
如果存在AD,选择开始->程序->管理工具->Active Directory用户和计算机。为IWAM账号设置密码。
运行c:InetpubAdminScripts>adsutil SET w3svc/WAMUserPass +密码 同步IIS metabase数据库密码
运行cscript c: -v 同步IWAM账号在COM+应用程序中的密码
问题8:MIME设置问题导致某些类型文件无法下载(以ISO为例)
症状举例:
HTTP 错误 404 - 文件或目录未找到。
原因分析:
IIS6.0取消了对某些MIME类型的支持,例如ISO,致使客户端下载出错。
12
解决方法:
在IIS中 属性->HTTP头->MIME类型->新建。在随后的对话框中,扩展名填入.ISO,MIME类型是application。
另外,防火墙阻止,ODBC配置错误,Web服务器性能限制,线程限制等因素也是造成IIS服务器无法访问的可能原因,这里就不再一一馈述了。希望此帖能解决大家的大部分问题:)
13


发布评论