自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何做 Nginx 安全日志分析可視化,看這一篇就夠了

新聞 前端
今天介紹一款管理 ModSecurity 日志的開源項(xiàng)目 WAF-FLE。

[[396157]]

之前介紹過 ModSecurity 這款優(yōu)秀的開源 WAF,它是一個(gè)入侵檢測(cè)與阻止的引擎,原本是Apache的一個(gè)模塊,現(xiàn)在可作為單獨(dú)模塊編譯添加到 Nginx 服務(wù)中。

雖然這款 WAF 很優(yōu)秀,但是使用起來并沒有那么容易,之前也整理了文章介紹它的原理和規(guī)則,然而還有一個(gè)問題,就是它的日志分析,之前介紹原理規(guī)則的時(shí)候,也介紹了它的日志規(guī)則,但是在使用過程中,純文本的記錄方式,對(duì)于入侵分析太不友好了。

所以今天介紹一款管理 ModSecurity 日志的開源項(xiàng)目 WAF-FLE。

WAF-FLE是專門用來處理ModSecurity日志和事件的控制臺(tái),管理員可以通過WAF-FLE查看和搜索ModSecurity記錄的日志。

WAF-FLE是PHP寫的開源項(xiàng)目,搭建需要LNMP/LAMP環(huán)境。

環(huán)境需求:

  • Apache/Nginx
  • PHP5.3+

              php-pdo

              php-mysql

              php-apc

  • php-geoip
  • MySQL5.1+

安裝環(huán)境不贅述,只說一個(gè)GeoIP庫(kù)的安裝,這里要通過GeoIP庫(kù)去展示入侵IP信息,所以需要用到這個(gè)庫(kù),安裝很簡(jiǎn)單,其實(shí)就是下載一個(gè)dat數(shù)據(jù)庫(kù),從https://www.maxmind.com/en/geoip-demo下載。

下載后解壓出dat文件即可。

環(huán)境準(zhǔn)備好之后,從github下載WAF-FLE:https://github.com/klaubert/waf-fle。

在waf-fle的extra目錄下,存放了數(shù)據(jù)庫(kù)sql文件,以及Apache的配置文件,如果是用的Apache,直接將這個(gè)配置復(fù)制到apache配置目錄下即可,如果用Nginx,參考下面的配置:

修改config.php的時(shí)候,因?yàn)槲覜]有安裝apc的緩存擴(kuò)展,這擴(kuò)展很老了,所以直接設(shè)置APC_ON=false,關(guān)閉這個(gè)緩存。

完成上面之后,通過域名訪問,即可訪問到安裝界面。

這里檢查php擴(kuò)展的時(shí)候,如果你不是Apache的話,會(huì)有個(gè)問題,就是在setup.php的499行,它用apache_getenv檢測(cè)是否用Apache運(yùn)行的,如果沒運(yùn)行Apache,這里過不去,我這里是Nginx運(yùn)行的,所以打開setup.php文件499行,把這部分代碼注釋掉即可。

接著點(diǎn)擊運(yùn)行創(chuàng)建數(shù)據(jù)庫(kù):

這里創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候又有個(gè)問題,在setup.php代碼28行的地方,執(zhí)行創(chuàng)建函數(shù)的時(shí)候,引用一個(gè)$databaseSchema,這里修改定義了一個(gè)位置,但是我放置的是我的位置,所以這里需要根據(jù)自己情況進(jìn)行修改。

修改完成后,繼續(xù)通過頁(yè)面執(zhí)行創(chuàng)建數(shù)據(jù)庫(kù)操作,創(chuàng)建完成如下:

安裝完成,默認(rèn)用戶名密碼是admin/admin,之后,在config.php中配置$SETUP=false,關(guān)閉安裝之后,重新訪問。

默認(rèn)用戶密碼登錄之后,就需要修改用戶名密碼。

設(shè)置完新密碼之后,就會(huì)跳轉(zhuǎn)到主界面了。

目前沒有數(shù)據(jù),現(xiàn)在開始接入日志數(shù)據(jù),點(diǎn)擊菜單欄的management,添加sensor。

保存后,即創(chuàng)建好一個(gè)sensor,用來接收日志。

創(chuàng)建好之后,在這個(gè)sensor上面,開始配置事件接收器。

這里選著用mlog2waffle的方式接收日志,然后選著service deamon的方式查詢?nèi)罩荆@種是實(shí)時(shí)查詢,WAF-FLE controller URL是配置waf-fle的控制器地址,mlog2waffle是通過put請(qǐng)求發(fā)送數(shù)據(jù)到這個(gè)接口地址,下面就是配置ModSecurity日志的配置路徑,配置完成后,點(diǎn)擊Next。

系統(tǒng)會(huì)給出提示配置,需要按照給出的配置,配置這幾個(gè)配置文件,這里按照提示的配置操作即可,需要的mlog2waffle配置文件及啟動(dòng)腳本都在extra目錄下。

配置完成后,啟動(dòng)mlog2waffle。

mlog2waffle,是通過put方法發(fā)送日志到waf-fle的,但是默認(rèn)Nginx是不允許put請(qǐng)求的,所以啟動(dòng)會(huì)報(bào)錯(cuò),需要在nginx中,通過dav方法,允許put請(qǐng)求。

啟動(dòng)mlog2waffle過程中,遇到不少問題,記錄如下:

mlog2waffle中配置了$CHECK_CERT = “TRUE”,用來檢測(cè)SSL的,當(dāng)用http的時(shí)候,這里要改成False,否則會(huì)握手失敗

mlog2waffle中配置了$CHECK_CONNECTIVITY = “TRUE”,這里是啟動(dòng),檢測(cè)mlog2waffle和waffle的連通信的,通過check_conn方法

這里通過PUT方法,發(fā)送了一個(gè)檢測(cè)請(qǐng)求,這里比較坑的是,發(fā)送PUT請(qǐng)求,沒有URI,但是Nginx在檢測(cè)到PUT請(qǐng)求沒有URI的時(shí)候,會(huì)報(bào)409,認(rèn)為資源有沖突。

所以,不管怎么做,這里檢測(cè)就不會(huì)通過,兩種方法處理,一種是直接關(guān)閉這個(gè)檢測(cè),mlog2waffle就可以正常啟動(dòng),另外一種方法就是修改這個(gè)檢測(cè)的方法,將uri帶上,mlog2waffle是perl腳本,很簡(jiǎn)單

  • waf-fle中使用了不少Apache專用內(nèi)置函數(shù),比如apache_getenv()、getallheaders()、apache_setenv(),因?yàn)檫@里用的Nginx,所以這幾個(gè)函數(shù)都沒有。

這里需要手動(dòng)替換下,通過$_SERVER去獲取客戶端IP,而getallheaders()方法,需要手動(dòng)寫一個(gè),如下:

另外在index.php中,65行的位置,原本是通過apache_setenv()將獲取到的sensor的名稱,復(fù)制給Apache的”REMOTE_USER”,這里不用Apache,所以直接注釋掉即可。

修改完這些,就可以通過腳本啟動(dòng)mlog2waffle了。

啟動(dòng)后,通過waf的access日志就可以看到mlog2waffle已經(jīng)開始通過put方法將日志解析成event,傳輸?shù)絯af-fle。

在mlog2waffle的readIndex方法中,因?yàn)橐x取并解析日志索引文件,所以有一個(gè)正則匹配如圖:

這里需要你更具自己記錄的日志格式進(jìn)行修改匹配,完全匹配后,才能正確讀取到日志,并解析后通過send_event方法將解析后的內(nèi)容通過PUT方法傳輸?shù)絯af-fle進(jìn)行展示。

waf-fle的接收文件就一個(gè)index.php,它將所有步驟通過正則解析,有興趣的可以看下源碼,到此waf-fle就部署完成了,看下效果:

雖然waf-fle是比較老的開源項(xiàng)目,但是對(duì)于modsecurity的日志分析完全夠用。 

 

責(zé)任編輯:張燕妮 來源: 高效運(yùn)維
相關(guān)推薦

2022-08-01 11:33:09

用戶分析標(biāo)簽策略

2022-04-07 10:39:21

反射Java安全

2023-10-17 08:15:28

API前后端分離

2023-02-10 09:04:27

2020-02-18 16:20:03

Redis ANSI C語言日志型

2022-06-20 09:01:23

Git插件項(xiàng)目

2021-04-08 07:37:39

隊(duì)列數(shù)據(jù)結(jié)構(gòu)算法

2023-09-11 08:13:03

分布式跟蹤工具

2018-05-22 08:24:50

PythonPyMongoMongoDB

2024-09-23 08:00:00

消息隊(duì)列MQ分布式系統(tǒng)

2020-07-03 08:21:57

Java集合框架

2019-05-14 09:31:16

架構(gòu)整潔軟件編程范式

2017-03-11 22:19:09

深度學(xué)習(xí)

2023-11-18 09:30:42

模型AI

2018-11-12 08:07:04

Nginx優(yōu)化并發(fā)

2022-07-06 12:07:06

Python函數(shù)式編程

2019-04-01 10:43:59

Linux問題故障

2022-05-19 08:28:19

索引數(shù)據(jù)庫(kù)

2020-10-21 14:12:02

Single Sign

2023-11-06 07:21:13

內(nèi)存結(jié)構(gòu)Jvm
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)