【資料圖】
web防火墻(waf)免費開源的比較少,并且真正可以商用的WAF少之又少,modsecurity 是開源防火墻鼻祖并且有正規(guī)公司在維護著,目前是https://www.trustwave.com在維護,不幸的是2024 年 7 月將不再維護交還開源社區(qū)管理,Trustwave目前打造自己的web防火墻,至于是否免費開源就不得而知了。ModSecurity目前依然是開源,免費的WAF一哥,我們就先用著吧,商業(yè)WAF費用太貴。
Docker 安裝Docker的地址是:owasp/modsecurity - Docker Image | Docker Hub
docker pull owasp/modsecurity
modsecurity只是WAF防火墻,僅僅安裝modsecurity并不會起作用,因為它需要規(guī)則才會生效,你可以選擇第三方支持modsecurity的規(guī)則例如:“OWASP ModSecurity Core Rule Set”,簡稱“CRS”,OWASP 是國際上一個非營利的Web應(yīng)用程序安全項目,不附屬于任何企業(yè)或財團。不過很多大公司的財團都在支持OWASP,包括微軟,VMware,谷歌,nginx 等,著名的“OWASP TOP 10”功擊手法就是該組織提出來,在WEB安全領(lǐng)域很有名氣。
雖然ModSecurity歸還社區(qū)維護但是OWASP還在維護著CRS規(guī)則,而WAF防火墻最有價值的就是WAF規(guī)則,幸運哦,相信modsecurity歸還社區(qū)維護之后,只是需要及時修復(fù)BUG也問題不大,畢竟modsecurity己經(jīng)成熟運行很久,BUG少很多了,我們還是得相信開源社區(qū)的力量~
關(guān)于WAF防火墻規(guī)則,建議采用OWASP的CRS,官網(wǎng)地址是:OWASP ModSecurity Core Rule Set – The 1st Line of Defense Against Web Application Attacks,幸運的是,OWASP己經(jīng)在docker上面集成了modsecurity打包成鏡像供我們使用,docker地址是:owasp/modsecurity-crs - Docker Image | Docker Hub
docker pull owasp/modsecurity-crs
也就是說,使用這個鏡像默認(rèn)modsecurity己經(jīng)安裝好了,規(guī)則也配置好了,非常方便,這就是docker的好處,默認(rèn)支持nginx,apache。它的dockerfile在github上面:https://github.com/coreruleset/modsecurity-crs-docker/blob/master/nginx/Dockerfile
鏡像中的配置文件在:
/etc/nginx/templates/nginx.conf.template
配置就是典型nginx的配置文件,了解nginx的很輕松就可以配置,當(dāng)我們運行docker只需要配置好的文件替換鏡像中的文件就可以了,下面貼出最簡代碼,當(dāng)時實際運作docker還需要增加什么參數(shù),自己添加就行,例如端口映射等
docker run --name Nginx-WAFProxy -v /web/NginxProxy/nginx.conf.template:/etc/nginx/templates/nginx.conf.template:rw -d owasp/modsecurity-crs:nginx
就這樣一個開源,可靠,免費WAF就搭建起來了,又省一大筆錢,我們需要注意的地址就是“paranoia level”,規(guī)則等級,默認(rèn)docker 鏡像是PL1,一共有四個規(guī)則等級
PL1:默認(rèn)值,大多數(shù)規(guī)則都是處于啟用狀態(tài),具備標(biāo)準(zhǔn)的安全等級,適用多數(shù)網(wǎng)站,非常少/無的誤報。PL2:含少許多額外的規(guī)則,合適有經(jīng)驗的工程師,會有少量誤報。PL3:支持更多規(guī)則和關(guān)鍵字列表,涵蓋不太常見的攻擊。需要專職工程師,定期處理誤報,增加規(guī)則。PL4:最高安全規(guī)則,進一步限制特殊字符,會產(chǎn)生非常多的誤報,適用于特殊的場景。基本W(wǎng)AF防火墻就搭建完畢了。
關(guān)鍵詞: