国产麻豆精品视频-国产麻豆精品免费视频-国产麻豆精品免费密入口-国产麻豆精品高清在线播放-国产麻豆精品hdvideoss-国产麻豆精品

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

使用ModSecurity 保護Web服務安全(5)

發布時間:  2012/9/15 19:08:49

3 了解mod_security 配置文件

/etc/httpd/conf.d/mod_security.conf :mod_security模塊主配置文件
/etc/httpd/modsecurity.d/ - 配置文件目錄。
/etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf – 特別配置文件
/var/log/httpd/modsec_debug.log –調試文件日志。
/var/log/httpd/modsec_audit.log ModSecurity報警信息文件。
查看/etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf 確保下面有一行:

SecRuleEngine On

4 設置mod_security

上述的步驟只是將Mod Security啟動而已,但實際上并不會為你的web服務器做任何的防護動作;因此需要額外設定才會讓Mod Security發揮功能,此部分將會對如何設定Mod Security做一個說明。

下面開始介紹Mod Securit的四種主要的設定指令。

(1)一般的設定,包括裝規則引擎(rule engineer)開啟等基本指令,常見的設定如下:

#Basic configuration options

# 打開過濾引擎開關。如果是Off,那么下面這些都不起作用了。

SecRuleEngine On

#配置是否讓ModSecurity默認處理或緩沖請求體

SecRequestBodyAccess On

#配置ModSecurity允許的最大請求體的緩存區大小

SecResponseBodyAccess On

#配置攔截文件存儲的目錄

SecUploadDir /opt/apache-fronted/tmp/

#配置是否保存事務處理后的攔截文件

SecUploadKeepFiles Off

#配置ModSecurity允許的最大請求體的緩存區

SecRequestBodyLimit 131072

#配置ModSecurity使用內存保存的最大請求體大小

SecRequestBodyInMemoryLimit 131072

#配置ModSecurity允許的最大請求體的緩存區大小,除了請求中正在傳送的文件大小。這項指令便于在受到某些使用大尺寸請求進行DoS攻擊時減少影響。提供上傳文件服務的WEB應用必須配置SecRequestBodyLimit為一個很大的值。由于大文件直接進行磁盤文件存取,不會加大內存的消耗。但是,仍然有可能有人利用超大請求體限制和發送大量大小的非上傳請求。該指令消除這一漏洞。

SecResponseBodyLimit 524288

(2)設定Mod Security如何執行調試的日志部分,常見的設定如下:

#指定ModSecurity調試日志文件的路徑

SecDebugLog logs/modsec_debug.log

#配置冗長的調試日志數據

SecDebugLogLevel 0

(3) 設定Mod Security如何執行審計的日志部分,常見的設定如下:

#定義主審計日志文件

SecAuditEngine RelevantOnly

SecAuditLogRelevantStatus ^5

SecAuditLogParts ABIFHZ

SecAuditLogType Serial

SecAuditLog logs/modsec_audit.log

(4) Rules

Mod Security最主要的設定部分,是一個以事件為基礎的語言。

語法:SecRule VARIABLES OPERATOR [ACTIONS]

VARIABLES:指定哪些變量要進行處理

OPERATOR:要如何處理這些變量取得我們想要的

ACTIONS (optional):當達到上述的處理時,要做什么動作

(5)Rule處理的階段

ModSecurity 2.x允許把規則置于下述五個階段之一:

請求頭(REQUEST_HEADERS) 階段

這個階段的規則會在apache完成請求頭的讀取后立即被執行(post-read-request階段),這時,還沒有讀取請求體,意味著不是所有的參數都可用。如果你必須讓規則盡早運行,應把規則放在這個階段(在apache使用這個請求做某些事前),在請求體被讀取前做些事情,從而決定是否緩存這個請求體,或者決定你將希望這個請求體如何被處理(如是否以XML格式解析或不解析)。

請求體(REQUEST_BODY) 階段

這是通用輸入分析階段,大部分傳統的應用規則不在這兒,這個階段你肯定能收到參數(只有讀取過請求體后),在請求體階段,ModSecurity支持三種編碼類型。

l  application/x-www-form-urlencoded - used to transfer form data

l  multipart/form-data - used for file transfers

l  text/xml - used for passing XML data

大部分WEB應用還沒有使用其它的編碼方法。

響應頭(RESPONSE_HEADERS) 階段

發生在響應頭被發送到客戶端之前,如果你想觀察響應發生前就在這兒運行,如果你想使用響應頭來決定你是否想緩存響應體也行。注意一些響應狀態碼(如404)在請求環的早期就被apache管理著,我也無法觸發預期。加上apache在后面的勾子上雙增加了一些響應頭(如日期、服務器和連接信息等),這些我們無法觸發和審查。在代理配置模式下或使用phase:5(logging)工作的較好。

響應體(RESPONSE_BODY) 階段

這是通用輸出分析階段,這里你能運行規則截斷響應體(當然提供緩存)。這個階段你想檢查輸出的HTML信息公布、錯誤消息和失敗的驗證文字。

記錄(LOGGING) 階段

在日志發生前運行的一個階段,放在這個階段的規則只能影響日志記錄器如何執行,這個階段可以檢測apache記錄的錯誤消息,在這個階段你不能拒絕或阻斷連接,因為太遲了,這個階段也允許檢測其它的響應頭,如那在phase:3或者phase:4階段中不可用的。注意在這個階段,你應當小心不要繼承破壞性的動作到規則中,這樣的情況在ModSecurity2.5.0及其以后的版本中被當作配置錯誤。

圖-4是標準的apache請求流程,5個ModSecurity處理階段顯示其中。因此,在rule的部分即可指定你要處理的哪一部份進行處理。

圖-4

(6)Rules 簡介

SecRule是ModSecurity主要的指令,用于分析數據并根據結果執行動作。通常規則的格式如下:

SecRule VARIABLES OPERATOR [ACTIONS]

l  VARIABLES 規則中的變量

第一部分,VARIABLES描述哪個變量被檢查,舉個例子,下述規則會拒絕URI中含有單詞dirty的事務。

SecRule ARGS dirty

每條規則可以指定一個或多個變量

SecRule ARGS|REQUEST_HEADERS:User-Agent dirty

XPath格式是選擇操作的第三方支持格式。XPath格式僅能針對特殊變量XML使用,只有請求體使用XML格式時可用。

SecRule XML:/xPath/Expression dirty

注意:不是所有的集合支持選擇操作格式類型,你需要參考各個集合的文檔來決定是否支持。

一些常見的變量:

ARGS、ARGS_NAMES、ARGS_GET、ARGS_GET_NAMES、ARGS_POST、ARGS_POST_NAMES

AUTH_TYPE

REQBODY_PROCESSOR、REQBODY_PROCESSOR_ERROR

FILES、FILES_NAMES、FILE_SIZES

REMOTE_ADDR、REMOTE_HOST、REMOTE_PORT

REQUEST_BODY、REQUEST_COOKIES、REQUEST_COOKIES_NAMES、REQUEST_FILENAME

RESPONSE_BODY

Rule中的變量部分可以一個以上, 以”|”來區隔即可,如果設定的規則超過多行,則可用”\”來進行分隔。

l  OPERATOR

第二部分,OPERATOR描述如何進行檢查。OPERATOR是正則表達式(Regular Expression),但其實ModSecurity提供不少可用的OPERATOR,利用”@”即可指定要用何種OPERATOR,例如SecRule REQUEST_URI “@rx iii”。

以下是一些范例:

SecRule REMOTE_ADDR "^192\.168\.1\.101$"

REMOTE_ADDR:指定變量對象為遠程聯機的IP地址

"^192\.168\.1\.101$":針對上述的變量進行比對,如果非192.168.1.101,則符合,可指定要做何種動作

SecRule ARGS "@validateUtf8Encoding"

ARGS:指定變數為http傳遞的參數

"@validateUtf8Encoding":指定OPERATOR為對這些參數進行Utf8編碼進行檢查

SecRule FILES_TMPNAMES "@inspectFile /path/to/inspect_script.pl"

FILES_TMPNAMES:指定變量為上傳檔案的暫存名稱

"@inspectFile /path/to/inspect_script.pl":指定利用inspect_script.pl檔案的語法來檢查上傳檔案

l  ACTIONS

第三部分可選的,ACTIONS,描述當操作進行成功的匹配一個變量時具體怎么做。指定如果VARIABLE有符合OPERATOR的情況時,要執行何種動作。ACTIONS主要區分為五種型態:

(1)Disruptive actions (中斷目前的處理)

deny、drop、redirect、proxy、pause…

(2)Non-disruptive actions (改變狀態)

Append、auditlog、exec…

(3)Flow actions (改變規則流動)

allow、chain、pass、skip…

(4)Meta-data actions (包含規則的metadata)

id、rev、severity、msg、phase、log, nolog、…

(5)Data actions (可放置內容給其它action用)

capture、status、t、xmlns…
如果有需要服務器的租用與托管的敬請聯系QQ:1501281758(億恩星辰)   聯系電話:0371—63322220


本文出自:億恩科技【www.artduck.net】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線