阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下部署ELK + OpenWAF 环境

132次阅读
没有评论

共计 2250 个字符,预计需要花费 6 分钟才能阅读完成。

摘要: OpenWAF 是第一个全方位开源的 Web 应用防护系统; ELK 是比较火的开源日志分析系统; 本节主要介绍,ELK 的 docker 部署及与 OpenWAF 的结合

OpenWAF 简介

OpenWAF 是第一个全方位开源的 Web 应用防护系统(WAF),他基于 nginx_lua API 分析 HTTP 请求信息。OpenWAF 由行为分析引擎和规则引擎两大功能引擎构成。其中规则引擎主要对单个请求进行分析,行为分析引擎主要负责跨请求信息追踪。

规则引擎的启发来自 modsecurity 及 lua-resty-waf,将 ModSecurity 的规则机制用 lua 实现。基于规则引擎可以进行协议规范,自动工具,注入攻击,跨站攻击,信息泄露,异常请求等安全防护,支持动态添加规则,及时修补漏洞。

行为分析引擎包含基于频率的模糊识别,防恶意爬虫,人机识别等防探测模块,防 CSRF,防 CC,防提权,文件上传防护等防攻击模块,cookie 防篡改,防盗链,自定义响应头,攻击响应页面等防信息泄露模块。

除了两大引擎之外,还包含统计,日志,攻击响应页面,接入规则等基础模块。除了已有的功能模块,OpenWAF 还支持动态修改配置,动态添加第三方模块,使得在不重启引擎中断业务的条件下,升级防护。

OpenWAF 支持将上述功能封装为策略,不同的 web application 应用不同的策略来防护。将来还会打造云平台,策略还可分享供他人参考。

ELK 简介

ELK 是三个不同工具的简称, 组合使用可以完成各种日志分析

Elasticsearch: 是一个基于 Apache Lucene(TM) 的开源搜索引擎, 简单点说就是用于建立索引并存储日志的工具

Logstash: 是一个应用程序, 它可以对日志的传输、过滤、管理和搜索提供支持。我们一般用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计

Kibana: 用于更友好的展示分析日志的 web 平台, 简单点说就是有图有真相, 可以在上面生成各种各样的图表更直观的显示日志分析的成果

安装

ELK 的安装,网上有很多,这里只描述 docker 方式的部署

Elasticsearch

  1. 拉取 elasticsearch docker 镜像

     docker pull elasticsearch
    
  2. 启动 elasticsearch 容器

     docker run -d --name openwaf_es elasticsearch
    
  3. 获取 openwaf_es 地址

     docker inspect openwaf_es | grep IPAddress  
     得到地址为:192.168.39.17
    
     PS: elasticsearch 服务端口为 9200
    

Logstash

  1. 拉取 logstash docker 镜像

     docker pull logstash
    
  2. 启动 logstash 容器

     docker run -it --name openwaf_logstash -v /root/logstash.conf:/usr/share/logstash/config/logstash.conf logstash -f /usr/share/logstash/config/logstash.conf
    PS:
     /root/logstash.conf 文件内容如下:udp {# udp 服务配置 
         port => 60099      # 表示日志服务器监听在 60099 端口 
         codec => "json"    # 接收 json 格式信息 
     }
     output {
         elasticsearch {hosts => ["192.168.39.17:9200"] # elasticsearch 的地址为 39.17,且端口为 9200
         }
     }
     上面的配置表示:openwaf 向 logstash 的 60099 端口,发送 udp 协议的 json 日志,然后 logstash 将其存入 Elasticsearch
    
  3. 获取 openwaf_logstash 地址

     docker inspect openwaf_logstash | grep IPAddress  
     得到地址为:192.168.39.18
    

Kibana

  1. 拉取 kibana docker 镜像

     docker pull kibana
    
  2. 启动 logstash 容器

     docker run -d --name openwaf_kibana -e ELASTICSEARCH_URL=http://192.168.39.17:9200 kibana
    
  3. 获取 openwaf_kibana 地址

     docker inspect openwaf_kibana | grep IPAddress  
     得到地址为:192.168.39.19
    
     PS: kibana 服务端口为 5601
    

OpenWAF 配置

conf/twaf_default_conf.json 中 twaf_log 模块

    "twaf_log": {"sock_type":"udp",
        "content_type":"JSON",
        "host":"192.168.39.18",
        "port":60099,
        ...
    }

测试

测试版 OpenWAF 地址 192.168.36.44,反向代理后端服务器 192.168.39.216

现访问 192.168.36.44/?a=1 order by 1

访问结果如下:

Linux 下部署 ELK + OpenWAF 环境

此时,访问 192.168.39.19:5601,在 kibana 上查看日志

若第一次使用 kibana,需要生成一个索引,如下(使用默认):

Linux 下部署 ELK + OpenWAF 环境

kibana 日志显示如下:

Linux 下部署 ELK + OpenWAF 环境

kibana 功能强大,可以做各种视图,用来分析日志,生成报表,更多功能请看 kibana 官方文档

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-07/145493.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2250字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中