在ubuntu16.04中安裝apache2+modsecurity以及自訂WAF規則詳解,

來源:互聯網
上載者:User

在ubuntu16.04中安裝apache2+modsecurity以及自訂WAF規則詳解,

一、Modsecurity規則文法樣本

SecRule是ModSecurity主要的指令,用於建立安全規則。其基本文法如下:

SecRule VARIABLES OPERATOR [ACTIONS]

  • VARIABLES

    代表HTTP包中的標識項,規定了安全規則針對的對象。常見的變數包括:ARGS(所有請求參數)、FILES(所有檔案名稱)等。

  • OPERATOR

    代表操作符,一般用來定義安全規則的匹配條件。常見的操作符包括:@rx(Regex)、@streq(字串相同)、@ipmatch(IP相同)等。

  • ACTIONS

    代表響應動作,一般用來定義資料包被規則命中後的響應動作。常見的動作包括:deny(資料包被拒絕)、pass(允許資料包通過)、id(定義規則的編號)、severity(定義事件嚴重程度)等。

值得注意的是,如需擷取更加深入的文法,請參考官方手冊。由於本實驗中涉及到了自訂安全規則,故將其中涉及到的三條規則做詳細說明,如下:

規則1:防XSS攻擊

SecRule ARGS|REQUEST_HEADERS "@rx <script>" "id:001,msg: 'XSS Attack',severity:ERROR,deny,status:404"

  • VARIABLES

    ARGS:所有請求參數;REQUEST_HEADERS:請求資料頭部。

  • OPERATOR

    @rx <script>:如果正則匹配字串"<script>"成功,則規則執行。

  • ACTIONS

    id:001規定該條規則編號為001;msg: 'XSS Attack'代表記錄資訊為:XSS Attack;severity:ERROR表示嚴重程度為ERROR;deny表示拒絕所有請求包;status:404表示伺服器響應狀態編號為404。

    說明:嚴重程度分為8級: EMERGENCY (0)、ALERT (1)、CRITICAL (2)、ERROR (3)、WARNING (4)、NOTICE (5)、INFO (6) 、DEBUG (7)

該規則表明:所有請求參數中包含字串"<script>"的HTTP包均會被伺服器攔截並記錄。

規則2:設定白名單

SecRule REMOTE_ADDR "@ipmatch 192.168.1.9" "id:002,phase:1,t:none,

nolog,pass,ctl:ruleEngine=off"

  • VARIABLES

    REMOTE_ADDR:遠程主機IP

  • OPERATOR

    @ipmatch 192.168.1.9:如果請求主機IP地址為192.168.1.9,則規則執行。

  • ACTIONS

    id:002規定該條規則編號為002;phase:1表示規則執行的範圍為要求標頭部;t:none表示VARIABLES的值不需要轉換(t代表transform);nolog代表不記錄日誌;pass代表繼續下一條規則;ctl:ruleEngine=off代表關閉攔截模式,所有規則失效。

    說明:phase編號規定如下:Request Headers (1), Request Body (2), Response Headers (3), Response Body (4) and Logging (5).

該規則表明:對於主機192.168.1.9發送的HTTP包,伺服器關閉攔截模式,允許所有包通過。

規則3:chain規則

SecRule ARGS:username "@streq admin" chain,deny,id:003

SecRule REMOTE_ADDR "!streq 192.168.1.9"

  • VARIABLES

    ARGS:username所有表示請求參數中的使用者名稱資訊。

  • OPERATOR

    @streq admin表示使用者名稱等於字串"admin",則執行ACTIONS。

  • ACTIONS

    id:003規定該條規則編號為003;chain表示使用者名稱等於admin的情況下,必須完成第二行規則的匹配(遠程主機IP不是192.168.1.9),才能執行下一個動作;deny表示所有請求包被拒絕。

該規則表明:所有主機名稱為admin,但對應主機IP地址不是192.168.1.9的請求包均會被伺服器拒絕。也就意味著只有某一台主機可以用admin使用者登入(一般情況是系統管理員的主機),大大提高了系統安全性。

二、一鍵安裝LAMP環境

  • 重複輸入密碼:123,按Tab鍵選中"Ok",按斷行符號繼續安裝,如所示:

  • 開啟瀏覽器,在地址欄輸入:http://localhost,可以驗證apache2安裝成功,如所:
  •  

     

    5.輸入命令mysql -u root -p ,成功進入mysql視窗,mysql安裝成功。

    三、安裝modsecurity

    四、配置自訂規則

    五、驗證防護效果

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.