分类 IIS 下的文章

近几天,我一台服务器上的带宽总是被跑满,导致网站速度奇慢无比,检查发现服务器有大量入站流量,这很不正常。

于是用抓包工具,发现服务器频繁访问另一个网站。再结合IIS日志,发现了很多的异常请求,请求的路径都是不存在的。我直接用电脑访问,也是不存在,但是,404页面很奇怪,并不是我自己设定的404页面,修改也没用。

我模拟手机访问,发现这些页面,都会加载一些非法内容,典型的网页404劫持,于是打开IIS,进去模块,跟另一台正常的服务器进行对比,看多出什么模块,果然很快找到一个异常的模块:

IISResetModult 指向:C:\inetpub\wwwroot\Cachfle.dll

删除模块,删除那个dll,重启IIS,搞定。

因为之前服务器很多人用过,然后就清理用户,修改密码。。。。

两台服务器进行配合,假设两台服务器如下:
(1)Web应用服务器 192.168.12.226 ,IIS7.0+
(2)文件服务器192.168.12.66,WindowsXP/7/Server系统

  1. 建立共享账户
    两台服务器上,创建项目相同用户名、密码的用户。具体的使用权根据需要灵活配配置。
  2. 建立共享目录
    在文件服务器上(192.168.12.66)创建一个目录,并指定为共享目录。目录设置权限,允许“共享账户”读写权限
  3. IIS中配置“虚拟目录”
    在IIS中新建网站,并正常配置。重点说一下“远程共享目录”部分。首先右键项目网站节点->添加虚拟目录->录入目录名称、网络路径->连接为->特定用户。设置“共享用户”访问,填入用户名和密码。
  4. 系统安全策略配置
    应用服务器(192.168.12.226)找到本地安全策略-本地策略->安全选项->网络安全:LAN管理器身份验证级别,默认是“没有定义”,更改为“发送LM和NTLM响应”。设置该项后,则IIS中网站下“虚拟目录”将允许读取文件服务器(共享目录)上的文件。
  5. Web.config配置
    经过之前的步骤,项目已经可以引入虚拟目录,拥有读取权限,但是没有写入操作权限。通过配置项目中Web.config的配置,来赋予操作权限。

<system.web>

</system.web>

最终, ASP.Net 通过该“共享账号”执行和访问 文件服务器上共享目录的资源。同时考虑安全性,ASP.NET提供了对用户名和密码的加密,以及内嵌机制。这里不再详细说,百度一下吧。大致的过程就是上述5步。

补充:
IIS6中对该过程的配置比较简单,主要却别在于Windows、IIS不同版本安全机制的区别。IIS6中在“添加虚拟目录”过程中,写入“共享用户”,并赋予“写入”权限即可(共享用户创建还是需要,不需要4、5步骤)

1、确认IIS -> 应用程序开发 -> CGI 已安装;
2、下载 PHP 的ZIP包(https://windows.php.net/download,选择 Non Thread Safe 版本);
3、安裝 Visual C++ Redistributable for Visual Studio 2015-2019 套件(https://aka.ms/vs/16/release/VC_redist.x86.exe);
4、修改 php.ini 配置,必要项:

  • 执行文件路径,搜尋「;extension_dir = "ext"」修改為「extension_dir = "C:\php-7.4.4-nts-Win32-vc15-x64\ext"」
  • 调整时区,搜尋「;date.timezone =」修改為「date.timezone = "Asia/Beijing"」
  • 調整執行等待時間為 300 秒,搜尋「max_execution_time = 30」修改為「max_execution_time = 300」
    可选项:
  • 如果要开户SSL,搜尋「;extension=openssl」修改為「extension=openssl」
  • MYSQL支持,搜尋「;extension=mysqli」修改為「extension=mysqli」
  • 上傳檔案大小,搜尋「upload_max_filesize = 2M」修改為「upload_max_filesize = 20M」

5、IIS中设定CGI:IIS -> 处理程序映射 -> 右键,添加模块映射:
路径:*.php
模组:FastCgiModule
可执行文件:php目录\php-cgi.exe
名称:PHP FastCgi

6、IIS 中设置 CGI 执行超时(默认为70秒):
IIS -> FastCGI 设置 -> 双击路径,修改“活动超时/请求超时”;