WIN 2003服务器终极安全及问题解决方案
一、硬盘分区与操 作系统的安装
硬盘分区
总的来讲在硬盘分区上面没什么值得深入剖析的地方,无非就是一个在分区前做好规划知道要去放些什么东西, 如果实在不知
道。那就只一个硬盘只分一个区,分区要一次性完成,不要先分成FAT32再转成NTFS。一次性分成 NTFS格式,以我个人习惯,系
统盘一般给12G。建议使用光盘启动完成分区过程,不要加载硬盘软件。
系统安装
以下 内容均以2003 企业版为例
安装过程也没什么多讲的,安装系统是一个以个人性格为参数的活动,我建议在安装路径上保持默认路径,好多文章上写 什么安
装路径要改成什么呀什么的,这是没必要的。路径保存在注册表里,怎么改都没用。在安装过程中就要选定你 需要的服务,如一
些DNS、DHCP没特别需要也就不要装了。在安装过程中网卡属性中可以只保留TCP/IP 这一项,同时禁用NETBOIS。安装完成后如
果带宽条件允许可用系统自带在线升级。
二、系统权限与安全配置
前面讲的都是屁话,润润 笔而已。(俺也文人一次)
话锋一转就到了系统权限设置与安全配置的实际操作阶段
系统设置网上有一句话是"最小的权限+最少的服务=最 大的安全"。此句基本上是个人都看过,但我好像没有看到过一篇讲的比较
详细稍具全面的文章,下面就以我个人经验作一次教学尝试!
2.1 最小的权限如何实现?
NTFS 系统权限设置
在使用之前将每个硬盘根加上 Administrators 用户为全部权限(可选加入SYSTEM用户)
删除其它用 户,进入系统盘:权限如下
C:\WINDOWS Administrators SYSTEM用户全部权限 Users 用户默认权限不作修改 其它目录删除Everyone用户,切记
C:\Documents and Settings下All Users\Default User目录及其子目录
如C:\Documents and Settings\All Users\Application Data 目录默认配置保留了Everyone用户权限
C:\WINDOWS 目录下面的权限也得注意,如 C:\WINDOWS\PCHealth、C:\windows\Installer也是保留了Everyone权限. 删除
C:\WINDOWS\Web\printers目录,此目录的存在会造成IIS里加入一 个.printers的扩展名,可溢出攻击 默认IIS错误页面已基本
上没多少人使用了。建议删除C:\WINDOWS\Help\iisHelp目录 删除C:\WINDOWS\system32\inetsrv\iisadmpwd,此目录为管理IIS
密码之用,如一些因密码不同步造成500 错误的时候使用 OWA 或 Iisadmpwd 修改同步密码,但在这里可以删掉,下面讲到的设
置将会杜绝因系统设置造成的密码不同步问题。 打开C:\Windows 搜索
net.exe;cmd.exe;tftp.exe;netstat.exe;regedit.exe;at.exe;attrib.exe;cacls.exe;format.com;
regsvr32.exe;xcopy.exe;wscript.exe;cscript.exe;ftp.exe;telnet.exe;arp.exe;edlin.exe;
ping.exe;route.exe;finger.exe;posix.exe;rsh.exe;atsvc.exe;qbasic.exe;runonce.exe;syskey.exe
修 改权限,删除所有的用户只保存Administrators 和SYSTEM为所有权限
关闭445端口
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\netBT\Parameters
新建 "DWORD值"值名为 "SMBDeviceEnabled" 数据为默认值"0"
禁止建立空连接
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
新建 "DWORD值"值名为 "RestrictAnonymous" 数据值为"1" [2003默认为1]
禁止系统自动启动服务 器共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
新建 "DWORD值"值名为 "AutoShareServer" 数据值为"0"
禁止系统自动启动管理共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
新建 "DWORD值"值名为 "AutoShareWks" 数据值为"0"
通过修改注册表防止小规模DDOS攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建 "DWORD值"值名为 "SynAttackProtect" 数据值为"1"
禁止dump file的产生
dump 文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料。然而,它也能够给黑客提供一些敏感信息比如一些应用程序
的密码等。控制面板>系统属性>高级>启动和故障恢复把 写入调试信息 改成无。
关 闭华医生Dr.Watson
在开始-运行中输入"drwtsn32",或者开始-程序-附件-系统工具-系统信息-工具-Dr Watson,调出系统里的华医生Dr.Watson ,
只保留"转储全部线程上下文"选项,否则一旦程序出错,硬盘会读很久,并占用大量空间。如果以前有此情 况,请查找user.dmp
文件,删除后可节省几十MB空间。
本地安全策略配置
开始 > 程序 > 管理工具 > 本地安全策略
账户策略 > 密码策略 > 密码最短使用期限 改成0天[即密码不过期,上面我讲到不会造成IIS密码不同步] 账户策略 > 账户锁
定策略 >账户锁定阈值 5 次 账户锁定时间 10分钟 [个人推荐配置] 本地策略 > 审核策略 > 账户管理 成功 失败 登录事件
成功 失败 对象访问 失败 策略更改 成功 失败 特权使用 失败 系统事件 成功 失败 目录服务访问 失败 账户登录事件 成功
失败 本地策略 > 安全选项 > 清除虚拟内存页面文件 更改为"已启用" > 不显示上次的用户名 更改为"已启用" > 不需要按
CTRL+ALT+DEL 更改为"已启用" > 不允许 SAM 账户的匿名枚举 更改为"已启用" > 不允许 SAM 账户和共享的匿名枚举 更改为"
已启用" > 重命名来宾账户 更改成一个复杂的账户名 > 重命名系统管理员账号 更改一个自己用的账号 [同时可建立一个无用
户组的Administrat账户] 组策略编辑器
运行 gpedit.msc 计算机配置 > 管理模板 > 系统 显示"关闭事件跟踪程序" 更改为已禁用
删除不安全组件
WScript.Shell 、Shell.application 这两个组件一般一些ASP木马或一些恶意程序都会使用到。
方案一:
regsvr32 /u wshom.ocx 卸载WScript.Shell 组件
regsvr32 /u shell32.dll 卸载Shell.application 组件
如果按照上面讲到的设置,可不必删除这两个文件
方案二:
删除注册表 HKEY_CLASSES_ROOT\CLSID\{72C24DD5-D70A-438B-8A42-98424B88AFB8} 对应 WScript.Shell
删除注册表 HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540000} 对应 Shell.application
用户管理
建立另一个备用管理员账号,防止特殊情况发生。
安装有终端服务与SQL服务的服 务器停用TsInternetUser, SQLDebugger这两个账号
用户组说明
在将来要使用到的IIS中,IIS用户一般使用 Guests组,也可以再重新建立一个独立的专供IIS使用的组,但要将这个组赋予
C:\Windows 目录为读取权限[单一读取] 个人不建议使用单独目录,太小家子气。
二、 系统权限与安全配置
2.2最少的服务如果实现
黑色为自动 绿色为手动 红色为禁用
Alerter Application Experience Lookup Service Application Layer Gateway Service Application Management Automatic
Updates [Windows自动更新,可选项] Background Intelligent Transfer Service ClipBook COM+ Event System COM+ System
Application Computer Browser Cryptographic Services DCOM Server Process Launcher DHCP Client Distributed File
System Distributed Link Tracking Client Distributed Link Tracking Server Distributed Transaction Coordinator DNS
Client Error Reporting Service Event Log File Replication Help and Support HTTP SSL Human Interface Device
Access IIS Admin Service IMAPI CD-Burning COM Service Indexing Service Intersite Messaging IPSEC Services [如果
使用了IP安全策略则自动,如无则禁用,可选操作] Kerberos Key Distribution Center License Logging Logical Disk
Manager [可选,多硬盘建议自动] Logical Disk Manager Administrative Service Messenger /li> Microsoft Search
Microsoft Software Shadow Copy Provider MSSQLSERVER MSSQLServerADHelper Net Logon NetMeeting Remote Desktop
Sharing Network Connections Network DDE Network DDE DSDM Network Location Awareness (NLA) Network Provisioning
Service NT LM Security Support Provider Performance Logs and Alerts Plug and Play Portable Media Serial Number
Service [微软反盗版工具,目前只针对多媒体类] Print Spooler Protected Storage Remote Access Auto Connection
Manager Remote Access Connection Manager Remote Desktop Help Session Manager Remote Procedure Call (RPC) Remote
Procedure Call (RPC) Locator Remote Registry Removable Storage Resultant Set of Policy Provider Routing and
Remote Access Secondary Logon Security Accounts Manager Server Shell Hardware Detection Smart Card Special
Administration Console Helper SQLSERVERAGENT System Event Notification Task Scheduler TCP/IP NetBIOS Helper
Telephony Telnet Terminal Services Terminal Services Session Directory Themes Uninterruptible Power Supply
Upload Manager Virtual Disk Service Volume Shadow Copy WebClient Windows Audio [服务器没必要使用声音] Windows
Firewall/Internet Connection Sharing (ICS) Windows Image Acquisition (WIA) Windows Installer Windows Management
Instrumentation Windows Management Instrumentation Driver Extensions Windows Time Windows User Mode Driver
Framework WinHTTP Web Proxy Auto-Discovery Service Wireless Configuration WMI Performance Adapter Workstation
World Wide Web Publishing Service 以上操作完成以后是否就"最小的权限+最少的服务=最大的安全"呢?其实不然,任何事物
都是相对的
依我个人而见,以上设置也只是最基本的一些东西而已,如有遗漏,稍后补上!
三、IIS、终端服务、FTP、SQL的配置
3.1 IIS配置
IIS6与IIS5有着很多不同之处,不一一列举,也不是我一个脑袋可 以装下的东西。都在资料上!IIS6有一个非常不方便的东西,
就是他限制了在线上传不得大于200K,如何修改,请看:
首先停用IIS服务,> 服务 > iis admin service > 停用
C:\windows\system32\inetsrv\ metabase.xml 文件 用记事本打开它
找到 ASPMaxRequestEntityAllowed 处。默认为 204800 即 204800字节(200K)
修改为想要的数字如: 2048000 [2M] 保存,重启IIS服务即可!
设置基本参数
打开 IIS管理器 > 网站 > 属性 >
网站 > 启动日志记录 > 关闭
主目录 > 配置 > 应用程序扩展 > 只保留 asp,asa
主目录 > 配置 > 选项 > 启用父目录
主目录 > 配置 > 调试 > 向客户端发送文本错误消息
网站 > 自定义错误 > 全部改成默认值 [上一章已经删除IIS使用的错误信息页面]
IIS管理器 > WEB服务扩展 > 启用 Active Server Pages
注: 停用IIS默认站点,切勿删除,有可能会造成IIS的不稳定。
站点的建立将在第四节中详细介绍。
IIS支持PHP的配置
http://www.php.net/downloads.php 以 PHP 5.1.1 为例
下载php-5.1.1-Win32.zip 解压到 D:\php 或任意目录 赋予该目录IIS用户组读取权限
将ext目录中的所有文件复制到 C:\Windows\System32目录下面
以记事本打开 php.ini-dist文件
查找 extension_dir = "./" 更改为 extension_dir = "D:\php\ext"
查找 ; Windows Extensions 更改下面的参数
如要开通GD库支持 则将;extension=php_gd2.dll 前面的冒号删除
依此类推,更多设置参考PHP.INI中文版。完成设置好另存在 C:\Windows\php.ini
尔后在IIS设置中 IIS管理器 > 网站 > 属性 > 主目录 > 配置 > 映射
添加 D:\php\php5isapi.dll 扩展名.php
其次在WEB服务扩展中 添加一个新的扩展名 PHP 执行位置 D:\php\php5isapi.dll 设为允许即可
由于WIN平台对MYSQL与PHP的组合无法体现性能优势。个人建议WIN 平台PHP程序要使用数据库建议远程
或搭配文本数据库。
终端服务配置
开始 > 程序 > 管理工具 > 终端服务配置 > 连接
选择右侧列出的连接 属性 > 权限 删除所有用户组 添加单一的允许使用的管理员账户,这样即使服务器
被 创建了其它的管理员.也无法使用终端服务。
另外在会话设置中可以进一步设置断1 D、注销等一些参数。
FTP的配置
目前大多数服 务器使用Serv-U Server 为FTP SYSTEM。这里同时建议使用此软件
以 Serv-U FTP Server 6.1.0.5 final [最新版]为例,这里建议使用汉化版本.www.hanzify.org
安装原版至D:\Serv-U_3434999fdaf [复杂无规则的目录名可有效防止黑客的猜解]
尔后退出Serv-U,安装汉化包。
运行SERV-U管理器 IP地址可为空、安装为系统服务 设置密码防止溢出
PASV设置
Serv-U管理器 > <<本地服务器>> > 设置 > 高级
PASV端口范围 这里SERV-U只允许 50个端口范围 端口的设置范围 如 1025 - 1075 [1024以前的端口为系统使用]
更多个人化设置参考以下文档
SERV-U 技巧现在很多的朋友都用SERV-U做个人FTP的服务器,有关如何使用SERV-U架设服务器的文章很多了,这儿我就不多说
了。不过大家不知道注意到了没有,当你登陆很多FTP的时候,会显示一些欢迎信息,比如说显示你的 IP,告诉你目前有多少人
在使用FTP,带宽是多少等等。。。看起来就比较的专业样子。其实你自己也是可以做的,SERV-U这 个软件本身就有这个功能。
下面我就说明以下如何在自己的FTP里面加上这些信息。 第一、先建立一个文本文件,随便取一个名字。我们这儿就取
message.txt吧。
第二、这个这个文本文件里面加上这些文字
------------------------------------
欢迎来到Shaoey的FTP服务器
你的IP地址是:%IP
目前服务器所在的时间是 %time
已经有 %u24h 个用户在最近24小时访问过本FTP
本FTP服务器已经运行了 %ServerDays 天,%ServerHours 小时 和 %ServerMins 分。
服务器的运行情况:
所有登陆用户数量: %loggedInAll total
当前登陆用户数 量: %Unow
已经下载字节数: %ServerKbDown Kb
已经上传字节数: %ServerKbUp Kb
已 经下载文件数: %ServerFilesDown
已经上传文件数: %ServerFilesUp
服务器平均带宽: %ServerAvg Kb/sec
服务器当前带宽: %ServerKBps Kb/sec
------------------------------------
其 中XXX可以改成你的名字
你也可以加上一些你自己认为喜欢的文字,不过要注意的是每行最好不要超过80个字符
其中以%开头的都是一些变 量,下面是SERV-U能支持的变量
时间和*期
%Time - 显示你的计算机当前时间
%Date - 显示你的计算机当前*期
服务器的统计信息
%ServerDays - 显示服务器已经运行的天数
%ServerHours - 显示服务器已经运行的小时数
%ServerMins - 显示服务器已经运行的分钟数
%ServerSecs - 显示服务器已经运行的秒数
%ServerKbUp - 显示自从服务器运行以来已经上传的字节数
%ServerKbDown - 显示自从服务器运行以来已经下载的字节数
%ServerFilesUp - 显示自从服务器运行以来已经上传的文件数
%ServerFilesDown - 显示自从服务器运行以来已经下载的文件数
%LoggedInAll - 显示自从服务器运行以来已经登陆的用户数
%ServerAvg - 显示服务器的平均带宽
%ServerKBps - 显示服务器的当前带宽
服务器的设定信息
%MaxUsers - 显示服务器能同时登陆的最大用户数量
%MaxAnonymous - 显示服务器能同时登陆的最大匿名用户数量
用户信息
%Name - 显示登陆的用户名
%IP - 显示登陆的用户IP地址
%Dir - 显示登陆的用户的当前目录
%Disk - 显示登陆的用户的当前磁盘
%DFree - 显示登陆的用户的当前磁盘空间,单位是MB
%FUp - 显示登陆的用户上传的文件数量
%FDown - 显示登陆的用户下载的文件数量
%FTot - 显示登陆的用户上传和下载的总的文件数量
%BUp - 显示登陆的用户上传的字节数,单位是KB
%Bdown - 显示登陆的用户下载的字节数,单位是KB
%BTot - 显示登陆的用户上传和下载的总字节数,单位是KB
%TconM - 显示登陆用户连接时间,单位是分钟
%TconS - 显示登陆用户连接时间,单位是秒,要和%TconM一起使用
%RatioUp - 显示登陆用户的上传流量限制
%RatioDown - 显示登陆用户的下载流量限制
%RatioCredit - 显示登陆用户还有多少credit可以上传和下载,这个是针对有些FTP是要上传多少文件,才能下载多少文件而设
置的
%QuotaUsed - 显示登陆用户的已经使用了多少空间,单位是KB
%QuotaLeft - 显示登陆用户的还有多少空间可以使用,单位是KB
%QuotaMax - 显示登陆用户的的最大空间,单位是KB
后面3个是针 对有磁盘限制的用户设置的
用户数量
%UNow - 显示当前有多少用户连接
%UAll - 显示从服务器运行以来一共有多少用户连接过
%U24h - 显示最近24小时有多少用户
%UAnonAll - 显示当前总的匿名用户数量
%UAnonThisIP - 显示所有匿名登陆的用户数
%UNonAnonAll - 显示所有当前非匿名登陆用户数
%UNonAnonThisIP - 显示所有非匿名登陆用户数
%UThisName - 显示所有使用这个名字登陆的用户数
自己在先建立一个.txt文件,输入你想要显示的文字,具体参数看上面的内容,然后在Serv_u内的 server设置里面,加入这个.txt文
件就可以了!
下面我已经做了几个!喜欢就把名字等改改OK了!呵呵
------------------------------------
欢迎来到Shaoey个人FTP服务器
你的IP地址是:%IP
目前服务器所在的时间是 %time
已经有 %u24h 个用户在最近24小时访问过本FTP
本FTP服务器已经运行了 %ServerDays 天,%ServerHours 小时 和 %ServerMins 分。
服务器的运行情况:
所有登陆用户数量: %loggedInAll total
当前登陆用户数 量: %Unow
已经下载字节数: %ServerKbDown Kb
已经上传字节数: %ServerKbUp Kb
已 经下载文件数: %ServerFilesDown
已经上传文件数: %ServerFilesUp
服务器平均带宽: %ServerAvg Kb/sec
服务器当前带宽: %ServerKBps Kb/sec
------------------------------------
你的信息
用户名: %Name
IP地址: %IP
当前目录: %Dir
当前磁盘: %Disk
磁 盘空间:%DFree
连接时间: %TconM 分 和 %TconS 秒
上传流量限制: %RatioUp
下载流量限 制: %RatioDown
------------------------------------
★★★★★★★★★★★★★★★★★★★★★★★★★
来自%IP的朋友您好,欢迎来到Shaoey个人FTP服务器
本地时间是%Date %Time
服务器已连续工 作:%ServerDays天%ServerHours小时%ServerMins分%ServerSecs秒
本站开通以来已接通%UAll位 使用者。
过去24小时总共有%U24h次连接。
匿名用户上限为%MaxAnonymous人。每个ip只能开两个进程
目前 有%UNow位使用者在线。
其中匿名用户有%UAnonAll人在线。
★★★★★★★★★★★★★★★★★★★★★★★★★
自 本站开通以来共上传/下载 |%ServerKbUpKB/%ServerKbDownKB
自本站开通以来共上传/下载 |%ServerFilesUp个/%ServerFilesDown个
服务器当前流量|%ServerKBps Kb/sec
服务 器平均流量|%ServerAvg Kb/sec
★★★★★★★★★★★★★★★★★★★★★★★★★
你目前的空间容量为 |%QuotaMax/KB
你目前总共使用了 |%QuotaUsed/KB
你目前的空间剩余 |%QuotaLeft/KB
Jmail 组件的安装
建议使用 w3 JMail Personal V4.3 这里为免费版 http://www.skycn.net/soft/5555.html
默认安装至 D:\w3JMail4_35434fnald [同样,复杂的目录名]
安装完成后只需单一设置 jmail.dll 权限,加入IIS用户组默认权限即可!
SQL Server 2000 的安装与配置
目前SQL Server 2000 + SP4 在我看来已算比较安全,已没有SP3等版本会因为 sqlstp.log, sqlsp.log而泄露
安装信息的问题。当然也建议在安全后 检查 <systemdrive>:\Program Files\Microsoft SQL Server\MSSQL\Install
目 录中是否存在有 sqlstp.log, sqlsp.log, setup.iss文件,如果有,则备份至其它位置。
数据库的建立这里就不多讲 了。更多设置可以参考SQL SERVER 2000帮助文档!
四、站点的建立
站点的建立有一定的操作标准,当然这都是些屁话,能运行就 行了。
上面讲到的设置已经为下面的建立站点创造了一个良好的条件,只需要严格按照控制每个站点的权限
就足够了,不要因为时间紧而不设置站 点FSO或将目录权限开到最大。操作上的疏忽偶尔会带来一点小
麻烦。
建立站点前 首先在用户管理中建立一个站点所需要使用的用户名。
比 如我们要建立一个名为 HostNew的站点 绑定域名hostnew.com
建立一用户Iusr_hostnew.com [对IIS用户增加统一的前缀方便将来的管理] 设置一个复杂的密码
修改该用户所属用户组为Guests 或 你准备好的IIS用户组。删除默认的Users用户组.
尔后给站点需要使用的目录加上这个用户为读取、写入权限。不要是默认权限,默认权限拥有运 行权限
那么站点就可以通过FSO来执行或利用其它方式来执行一些恶意程序破坏服务器配置。
尔后打开IIS管理器 > 网站 > 新建站点 设置好后
打开新站点属性 > 目录安全性 > 身份验证和访问控制 > 编辑 > 选择刚才建立的用户[Iusr_hostnew.com]
输入该用户的密码.确认.应用.即可,此时该站点的权限已控制在该站点目录!
其 实这一切都是相对比较简单的.也没有什么可值得称道的地方.
如果该站点不使用ASP\PHP\CGI等脚本 在该站点属性 > 主目录里面 > 执行权限 里面选择 无
如果要执行ASP等脚本 则 选择纯脚本.如果PHP\CGI等脚本使用的是EXE文件执行方式.则选择脚本和可执行文件
相关设置问题解决。
虽然采用IIS6.0配置WEB服务同样简单,可还是有不少朋友或多或少的 出些问题。以下是笔者对3个常见访问问题的搜集总结:
1. 现象:HTTP 错误 404 - 文件或目录未找到
分析解决:此类问题十分常见。原因是在IIS6.0中新增了“web程序扩展”这一项,而里面的很 多服务默认都是禁止的,本文
前面也提到过。直接在“web程序扩展”里启用“Active Server Pages”即可。
2. 现象:HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝
分析解决:造成此类的原因应该是身份验证设置的问题,一般将其设置为匿名身份认证就行了,这是大多 数站点使用的认证
方法。
3.现象:类似于 Server.MapPath() 错误 'ASP 0175 : 80004005' 的出错信息
分析解决:IIS6.0出于安全考虑,默认关闭了父路径(诸如../格式的语句),只需在“主目录 -配置-选项”,将“启用父路径
”勾选即可。
问题1:未启用父路径
症状举例:
Active Server Pages 错误 'ASP 0131'
不允许的父路径
/cnhockchinaying/Index.asp,行 3
包含文件 '../Conn.asp' 不能用 '..' 表示父目录。
图1
原因分析:
许多Web页面里要用到诸如../格式的语句(即回到上一层的页面,也就是 父路径),而IIS6.0出于安全考虑,这一选项默认是关闭的。
解决方法:
在IIS中 属性->主目录->配置->选项中。把”启用父路径“前面打上勾。确认刷新。
问题2:ASP的Web扩展配置不当(同样适用于ASP.NET、CGI)
server架设IIS6.0服务器架站出错解决方案总结
症状举例:
HTTP 错误 404 - 文件或目录未找到。
原因分析:
在IIS6.0中新增了web程序扩展这一选项,你可以在其中对ASP、 ASP.NET、CGI、IDC等程序进行允许或禁止,默认情况下ASP等程序是禁止的。
解决方法:
在IIS中的Web服务扩展中选中Active Server Pages,点击“允许”。
问题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 的站点。
解决方法:
根据需要配置不同的身份认证(一般为匿名身份认证,这是大多数站点使用的认 证方法)。认证选项在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 对所请求资源的设置被拒绝。
原因分析:
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:\Inetpub \Adminscripts>adsutil SET w3svc/WAMUserPass +密码 同步IIS metabase数据库密码
运 行cscript c:\inetpub\adminscripts\synciwam.vbs -v 同步IWAM账号在COM+应用程序中的密码
问题8:MIME设置问题导致某些类型文件无法下载(以ISO为例)
症状举例:
HTTP 错误 404 - 文件或目录未找到。
原因分析:
IIS6.0取消了对某些MIME类型的支持,例如ISO,致使客户端下载 出错。
解决方法:
在IIS中 属性->HTTP头->MIME类型->新建。在随后的对话框中,扩展名填入.ISO,MIME类型是application。
另外,防火墙阻止,ODBC配置错误,Web服务器性能限制,线程限制等因素也是造成IIS服务器无法 访问的可能原因,这里就不再一一馈述了。