网站服务器使用360星图自动分析Windows Server IIS日志,并通过网页浏览

1,162 阅读6分钟

网联基地「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

#日志文件存放路径,可以是直接目录也可以是文件,如: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 客户端。

@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 引用源和重命名报告文件。

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星图