如何借助ELK日志分析平台对nginx的waf日志进行分析

日期: 栏目:文章分享 浏览:585 评论:0

背景

目前在公网上有一个腾讯云服务器Chrome HSTS异常导致无法访问HTTPS网页,提供web服务。使用的架构是 LNMP。为了加强web服务的安全性,安装了nginx模块,可以稍微阻挡一些其他的web攻击,比如SQL注入。 waf 模块的日志记录功能已启用。针对目前的情况,需要对waf模块的日志进行分析,定期检查web服务器是否存在潜在的危机。下面按照我的步骤来看看如何使用ELK日志分析平台来分析nginx的waf日志。并根据分析结果做一些潜在的危机管理工作。

一、waf 日志上传到 ELK 服务器

目前waf的日志已经转移到ELK服务器的/var/log/nginx/waf目录下,总共43天的日志数据

ELK7.9分析Nginx-waf模块日志

我们先简单看一下waf模块的日志

[root@elk7 ~]# cat /var/log/nginx/waf/_2020-07-.log

61.28.109.5 [2020-07-28 23:30:07] "GET /?id=../etc/" "-" " /5.0 ( NT 10.0; Win64; x64) /537.36 (KHTML, 像壁虎) /79.0.@ >3945.88 /537.36" "\.\./"

61.28.109.5 [2020-07-28 23:30:28] "GET /?id=../etc/" "-" " /5.0 ( NT 10.0; Win64; x64) /537.36 (KHTML, 像壁虎) /79.0.@ >3945.88 /537.36" "\.\./"

#从这两个日志来看Chrome HSTS异常导致无法访问HTTPS网页,waf模块日志有一定的格式,所以我们可以根据日志格式写正则表达式

二、过滤 waf 日志

[root@elk7 ~]# vim /etc//conf.d/nginx-waf.conf

输入{

文件{

路径 => [ "/var/log/nginx/waf/*.log" ]

=> { "标签" => "nginx-waf" }

=> ""

# => "/dev/null"

}

}

{

如果 [tags] 中的“nginx-waf”{

咕咕{

匹配 => [ "", "%{IP:}\s+\[%{:}\]\s+\"(?:%{WORD:} %{:})\"\s+\"( %{USER:user}|)\"\s+\"%{:}\"\s+\"(?.*)\"" ]

匹配 => [ "", "%{IP:}\s+\[%{:}\]\s+\"(?:%{WORD:} %{:})\"\s+(\" |)\"((?

.*)|-)\"\s+\"%{:}\"\s+\"(?.*)\"" ]

}

日期{

=> "亚洲/"

match => ["", "yyyy-MM-dd HH:mm:ss"]

=> "@"

=> ""

}

地理信息 {

=> ""

=> "geoip"

=>"/usr/share////jruby/2.5.0/gems/--geoip-6.0.3-java//- City.mmdb"

=> [ "[geoip][]", "%{[geoip][]}" ]

=> [ "[geoip][]", "%{[geoip][]}" ]

}

}

}

{

如果 [tags] 中的“nginx-waf”{

{

主机 => ["10.1.1.1:9200"]

index => "-nginx-waf-%{+YYYY.MM.dd}"

}

}

}

过滤日志以形成以下有价值的字段:

访问者的公共IP

@网站被访问的时间

用于访问网站的HTTP请求方法

请求的页面资源(URL)

您使用什么浏览器终端访问网站

触发waf模块的内容会被拦截

地理信息。访问者公网IP所在城市

地理信息。访问者公网IP所在省份

地理信息。访问者公网IP所在国家

三、分析日志

ELK7.9分析Nginx-waf模块日志

标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看