實驗環境
"網路應用程式防火牆"(Web Application Firewall,WAF)正如同前些日子
KEYNES介紹之
Dragon WAF (中華龍網出品)。
WAF就如同一般防火牆的功能一樣,不過它主要是定位在網站主機的保護上。
本篇將使用開源碼社群中的最有名的網站伺服器Apache再加上modSecurity模組,
modsercurity rules 條例眾多繁雜,其中為人所知的sql_injection_attacks &
trojans 木馬防護 & xss_attacks 等等rules 皆規範在modsercurity rules 條件中
再者整合專防止Ddos 阻斷式攻擊外掛模組(mod_evasiv),讓您Apache防護擁有WAF
般加持保護,重點是這兩個外掛模組皆免費!非常Cool
剛好因為"網管人"前後兩期技術專欄有提到.KEYNES手養拿來TRY it !
實驗說明
因在網路上搜尋相關技術文章大多使用mod_security 1.9.5
升級到隔代大改版2.5.12 察覺一些rule 設計都全變了
本例將運行環境如下
CentOS 5.5: 安裝Apache 2.2.3
mod_sercurity 2.5.12(目前官方最新)
mod_evasive 1.10.1
*以上套件皆由發行版RPM安裝方式,請預先安裝好EPEL與REMI Repo
然後再行以下command
shell> yum -y install httpd mod_security mod_evasive
最後使用rpm -qa httpd mod_security mod_evasive
(1): [mod_security] WAF 模組組態
當我們利用yum 安裝完mod_security 後有個好處是,我們無需利用
vi 編寫 /etc/httpd/conf/httpd.conf 將module 編寫寫入此檔即刻載入此module
(源碼安裝則需要修改載入module 設定)
下圖: 我們重新啟動httpd , 並 tail -f 10 /var/log/httpd/error_log
可察知 模組 mod_security 已經隨httpd啟用訊息
編輯mod_security 組態檔 vi /etc/httpd/conf.d/mod_security.conf
發行版mod_security 安裝完成後,自動將mod_security module 載入設定
寫入此檔
LoadModule security2_module modules/mod_security2.so
LoadModule unique_id_module modules/mod_unique_id.so
mod_security 相關設定檔
Include modsecurity.d/*.conf
Include modsecurity.d/base_rules/*.conf #rules_條例
Include modsecurity.d/modsecurity_localrules.conf
vi /etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf
#主要組態檔案(安裝完後初始化),請參閱說明並依照企業現況修改,about log
切換到 /etc/httpd/mod_security.d/base_rules 目錄下,我們可以由下圖看到,
mod_security 模組定義保護Apache 制定rules 種類
vi modsecurity_crs_45_trojans.conf #木馬攻擊防範rule展示
vi modsecurity_crs_40_generic_attacks.conf #網站一般攻擊rule 規範展示
vi modsecurity_crs_41_sql_injection_attacks.conf # sql_injection_attacks 防護
(2): [mod_evasive] 防止Ddos模組組態
同上安裝mod_security 當我們用yum 安裝完成同時亦完成module 載入動作
vi /etc/httpd/conf.d/mod_evasive.conf
DOSPageCount 2 # 綠色標記為一組: 設定當同1 IP 在1秒內點選該頁面兩次
即發送403 Forbidden阻斷訊息給Client禁此存取該頁面
DOSPageInterval 1
DOSSiteCount 50 # 橘色標記為一組: 設定當同1 IP 在1秒內點該Site50次
即發送403 Forbidden阻斷訊息給Client禁此存取該頁面
DOSSiteInterval 1
DOSBlockingPeriod 10 #藍色標記: Block IP Period : 封鎖具攻擊性IP存取Site 10 秒
頁面往下拉:
DOSLogDir "/var/lock/mod_evasive" #log紀錄檔設置
DOSWhitelist 192.168.0.198 #白名單IP設置
[最後我們測試 Ddos 運行是否OK]
請先獲得 test.pl Ddos 測試程式
並利用perl test.pl 進行Ddos攻擊本機Appache測試動作
*經過幾次200 ok 後,阻檔ddos攻擊 403 Forbidden 禁止使用者於Period限定時間內存取該Site*
檢示log 檔,攻擊紀錄成功被稽核
Lab操作時參考資訊:
http://www.atomicorp.com/wiki/index.php/Atomic_ModSecurity_Rules
網管人2010/11期
留言列表