2024年5月24日更新:
关于 Windows Server 做站,宝藏友链博主出了篇系统集成教程见参考文档[3]链接,开动脑筋可以方便做很多事,非常值得一看

网联基地「WebUnion BASE」推荐过不少优秀的云服务器,有些小伙伴习惯使用 Windows Server,Windows 系统做网站服务器自然使用 IIS 作为网站服务端。

如果想让网站做ICP备案,那么需要购买国内的云服务器:

对于用户主要集中在海外的网站,也不太关心国内的百度搜索等,那么就可以直接购买国外VPS:

由于 Windows Server 本身就是界面管理,所以网站管理套件相对薄弱一些,尤其是 IIS 日志分析更是没有几个简单易用的,其中日志分析360星图便是难得的有用工具。

站长对此轻车熟路,特此手码此篇 网站服务器使用360星图自动分析IIS日志,并通过网页浏览的保姆级教程

本教程欢迎转载引用,但请保留本文链接及注明引用来源于网联基地「WebUnion BASE」

360星图日志分析

360星图360旗下开发的网站日志分析工具,使用360网站卫士核心数据分析模块,转化为全新的 Web 日志分析系统,深入分析黑客攻击行为和异常访问,比如 Web 漏洞攻击识别、CC攻击识别、恶意爬虫扫描识别、异常访问识别等。

通过网页浏览服务器上的IIS常规访问浏览报告

360星图不止支持 IIS 日志,同时也能识别 apache 和 nginx,使用也比较简单,可以快速生成直观的日志报告。

获取软件

可惜该软件早就不更新维护了,360网站卫士都要在2024年6月停服了,该软件涉及的分析规则还是加密的,可能要成为绝唱。

下载地址:

配置使用

下载后解压到某目录,如 C:\360xingtu,然后按需对软件进行基本的配置 .\conf\config.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#日志文件存放路径,可以是直接目录也可以是文件,如:d:\logs\1.log 或 d:\logs\
#如果使用 d:\logs\ 的方式,并logs目录下存在其他文件夹则无法分析这些文件夹内的日志文件
log_file:C:\inetpub\logs\LogFiles\W3SVC2

#日志文件类型设置,1:自动识别iis/apache/nginx日志 2:自定义格式
xingtu_logtype:1

#是否生成Html分析报告(包括常规报告及安全分析报告),1:不开启;2:开启
common_analysis:2

#默认host,建议替换 default 为网站域名,不带http://
host:default

#设置接收运行通知的邮件:软件停服了别想了
xingtu_email:

#是否作为定时任务,1:不作为定时任务;2:作为定时任务,只分析log_file指定目录下最新的日志文件
schedule_analysis:2

以上配置指定 IIS 日志文件夹,作为定时任务,其他的基本上没配置的必要,直接点击根目录下的 bat 启动器就可以用了,小网站分析一次最新日志要不了几秒就能出报告。

实现网页浏览报告

360星图生成的报告保存在软件目录 .\result 下,且文件名比较长,本地打开倒没什么,但最好进行处理下方便实现外部网页浏览。

添加IIS虚拟目录

打开 IIS 管理界面,新增个网站或者在某个网站上右键–》添加虚拟目录:别名 填自己喜欢的任何名字,如 report物理路径 则指向360星图生成报告的 result 目录,点确定便完成了,这样便可以在服务器外通过网络访问目录下的报告。

自动改名及修正js路径

360星图默认生成的报告文件文件名较长,且含有中文字符,为方便浏览,将报告处理成有一定规律的文件名,后期直接按规律输网页地址就能看。

因为360星图的报告源码中引用了 /bin/ 路径资源,该路径名为敏感目录,直接用是不允许访问的,资源会出现 404 错误,所以需额外处理。为了方便处理,用了 BASH 相关命令功能,所以先在系统中安装个 Git 客户端。

1
2
3
4
5
6
7
@echo off
cls
set path=%path%;C:\Program Files\Git\usr\bin\;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git;
set WORKDIR="%~dp0"
set LOGDIR="C:\360xingtu\result"
cd %LOGDIR%
start git-bash "%WORKDIR%\auto-name.sh"

以上 BAT 是 BASH 启动器,代码定义了报告路径和启动哪个 BASH。下方的 BASH 代码则实现修正 js 引用源和重命名报告文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
list=$(ls u_ex*)
for item in ${list}; do
sed -i "s/\.\.\/bin\/js\/jquery\.min\.js/\/\/cdn\.bootcdn\.net\/ajax\/libs\/jquery\/3\.7\.1\/jquery\.min\.js/g" $item
sed -i "s/\.\.\/bin\/js\/plug-in\.js/\/\/cdn\.bootcdn\.net\/ajax\/libs\/echarts\/5\.5\.0\/echarts\.js/g" $item
suffix=${item##*.}
ex_name=$(echo $item | grep "安全")
m_name=${item:4:6}
if [[ ${suffix} == "txt" ]]; then
t_name=${m_name}_attacks.txt
elif [[ ${suffix} == "html" && ${ex_name} ]]; then
t_name=${m_name}_s.html
else
t_name=${m_name}.html
fi
mv -f $item $t_name
done

执行完后,result 目录下的文件将会命名为 240519.html 之类的文件。那么在外部浏览器地址中输入:服务器域名或IP/report/240519.html 就能浏览报告了。

通过网页浏览服务器上的IIS报告分析网站被攻击情况

添加系统定时任务

为了让服务器自动生成报告和自动处理,将360星图和我们做好的自动处理 BAT 添加到系统定时任务,每天报告一次就行。

因为 IIS 使用 W3C 格式生成日志,日志中的时间为 UTC 时间,如果你服务器上使用的北京时间,那么日志中记录的时间要加8小时才是北京时间。为了减少思考,干脆取消 IIS 使用本地时间进行支件命名和滚动更新(U),这样生成的文件和时间都与 UTC 同步:

  • 让定时任务每日 07:59:59 执行 360星图启动器 cron.bat,这样刚好就能分析过去24小时的日志
  • 晚几分钟启动我们前面做好的 BASH 启动器,如:auto-name.bat,具体时间自己调保证360星图统计报告已完成即可

如此,每日北京时间八点十几分就能在外网通过浏览器查看过去24小时的网站报告,比登录服务器本地浏览网页舒服多了。

参考文档

  1. 一个好用的网站日志分析工具:360星图
  2. 网站日志分析工具360星图
  3. Windows Server 部署 webhook 服务,并注册为系统服务守护