服务器大清理1
由于之前在老服务器上发现了内核级的 DLL 问题,并且今天收到 TX 的报告称老服务器上的网站无法访问,我决定认真检查一下老服务器。不查不知道,一查吓一跳,服务器的权限设置简直是一塌糊涂。
考虑到明天要考网络工程师,今天原本只打算把问题初步解决,只要能让服务器正常使用就行。然而,这个过程比想象中复杂得多,因为服务器上有很多个站点,而且几乎每个站点下面都存在若干 webshell,估计是某个网站出现问题,进而引发了跨站攻击。在处理问题的过程中,我遇到了一系列的问题,现在将它们总结如下:
(一)Microsoft JET Database Engine 错误 '80004005'
部分虚拟站点出现“Microsoft JET Database Engine 错误 '80004005'”或“不可识别的数据库格式”的错误信息。
分析与解决方法:
- 首先查看数据库连接语句,未发现错误。
- 接着查看文件夹的权限,发现已将权限全部授予了 everyone。
- 进一步检查发现,打开数据库时,系统会在临时文件夹
%SystemRoot%/temp/
下创建临时文件,但%systemRoot%/temp/
的权限不够。 - 解决方法:给
%SystemRoot%/temp/
的权限添加相应网站用户的读写权限。
(二)组策略安全性设置问题
出现“不能确定应用到此机器的组策略安全性设置。在尝试从本地安全性数据库(%windir%\security\database\secedit.sdb
)中检索这些设置时,错误为:参数不正确。”的情况。
解决方法如下:
- 切换到命令提示符状态。
- 依次执行“
esentutl /k %windir%\Security\Database\Secedit.sdb
”和“esentutl /g %windir%\Security\Database\Secedit.sdb
”对secedit.sdb
进行检查。 - 手工备份要修复的数据库文件。
- 执行“
esentutl /p %windir%\Security\Database\Secedit.sdb
”进行修复,系统会弹出 Warning 提示框:"You should only run Repair on damaged or corrupted databases. Repair will not apply information in the transaction log files to the database, and may cause information to be lost. Do you wish to proceed?" 单击 OK 开始修复。
(三)IIS 权限设置引发的“Service Unavailable”错误
在对 IIS 权限全部重新设置后,出现“Service Unavailable”(服务不可用)的错误信息。
症状:
浏览任何一个 Web 站点时,会收到错误信息:Service Unavailable
。
原因:
如果 Microsoft Internet 信息服务 (IIS) 6.0 中没有正确地配置用于虚拟服务器的应用程序池,就可能会发生此问题。此问题可能会在以下一种或多种情况时发生:
- 应用程序池没有运行。
- 应用程序池帐户使用的密码不正确。
- 应用程序池帐户不是服务器上的 IIS_WPG 和 STS_WPG 这两个组的公共成员。
解决方案:
配置好 IIS_WPG 和 STS_WPG 权限以及应用程序池的权限。
(四)“Service Unavailable”与 aspnet_filter.dll 权限问题
通过查看日志发现,Service Unavailable
还有可能是 aspnet_filter.dll
权限问题。
具体表现:
- 所有应用程序池自动关闭,重启 IIS 或重装 IIS 问题依旧。
- 事件查看器里有相关“应用程序”日志记录。
- IIS 里的“网站”文件夹里的 ISAPI 筛选器中可以看到 "ASP.NET_2.0.50727.0" 前有一个红色的向下的箭头。
- 如果删除第三条里的那个筛选器,再运行
iisreset
重启 IIS,会发现网站都正常了(除了那些使用这个 2.0 的站点)。 - 给 C 盘添加 users 权限,不用删除那个筛选器,重启 IIS 可成功(但这样太不安全)。
最终解决方法:
- 在
C:\WINDOWS\WinSxS
文件夹添加NETWORK SERVICE
权限。 - 同时,通过查看日志发现,
C:\WINDOWS\Microsoft.NET\Framework\
也需要添加相关权限。
最佳解决方法:
在 C:\WINDOWS\WinSxS
文件夹上添加 IIS_WPG 用户,权限设置为默认,这样既可以保证程序正常运行,权限又相对较小。
(五)客户端提示 HTTP/1.1 新建会话失败
客户端提示“HTTP/1.1 新建会话失败”,服务器上日志提示“指定的用来缓存压缩的内容 C:\WINDOWS\IIS Temporary Compressed Files
的目录无效。将禁用静态压缩。有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。”
分析:
这个问题可能是 %SystemRoot%\System32\Clbcatq.dll
的问题,估计还是权限问题。
可能需要调整的权限位置:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\
C:\WINDOWS\system32
C:\WINDOWS\WinSxS R
C:\WINDOWS\IIS Temporary Compressed Files RW
C:\WINDOWS\temp R W
C:\Program Files\Common Files R
「倘若有所帮助,不妨酌情赞赏!」
感谢您的支持!
使用微信扫描二维码赞赏