日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解

發(fā)布時間:2025/10/17 Ubuntu 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Modsecurity規(guī)則語法示例

SecRule是ModSecurity主要的指令,用于創(chuàng)建安全規(guī)則。其基本語法如下:

SecRule VARIABLES OPERATOR [ACTIONS]

  • VARIABLES

    代表HTTP包中的標(biāo)識項,規(guī)定了安全規(guī)則針對的對象。常見的變量包括:ARGS(所有請求參數(shù))、FILES(所有文件名稱)等。

  • OPERATOR

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

  • ACTIONS

    代表響應(yīng)動作,一般用來定義數(shù)據(jù)包被規(guī)則命中后的響應(yīng)動作。常見的動作包括:deny(數(shù)據(jù)包被拒絕)、pass(允許數(shù)據(jù)包通過)、id(定義規(guī)則的編號)、severity(定義事件嚴(yán)重程度)等。

值得注意的是,如需獲取更加深入的語法,請參考官方手冊。由于本實驗中涉及到了自定義安全規(guī)則,故將其中涉及到的三條規(guī)則做詳細說明,如下:

規(guī)則1:防XSS攻擊

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

  • VARIABLES

    ARGS:所有請求參數(shù);REQUEST_HEADERS:請求數(shù)據(jù)頭部。

  • OPERATOR

    @rx <script>:如果正則匹配字符串"<script>"成功,則規(guī)則執(zhí)行。

  • ACTIONS

    id:001規(guī)定該條規(guī)則編號為001;msg: 'XSS Attack'代表記錄信息為:XSS Attack;severity:ERROR表示嚴(yán)重程度為ERROR;deny表示拒絕所有請求包;status:404表示服務(wù)器響應(yīng)狀態(tài)編號為404。

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

該規(guī)則表明:所有請求參數(shù)中包含字符串"<script>"的HTTP包均會被服務(wù)器攔截并記錄。

規(guī)則2:設(shè)置白名單

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,則規(guī)則執(zhí)行。

  • ACTIONS

    id:002規(guī)定該條規(guī)則編號為002;phase:1表示規(guī)則執(zhí)行的范圍為請求頭部;t:none表示VARIABLES的值不需要轉(zhuǎn)換(t代表transform);nolog代表不記錄日志;pass代表繼續(xù)下一條規(guī)則;ctl:ruleEngine=off代表關(guān)閉攔截模式,所有規(guī)則失效。

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

該規(guī)則表明:對于主機192.168.1.9發(fā)送的HTTP包,服務(wù)器關(guān)閉攔截模式,允許所有包通過。

規(guī)則3:chain規(guī)則

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

SecRule REMOTE_ADDR "!streq 192.168.1.9"

  • VARIABLES

    ARGS:username所有表示請求參數(shù)中的用戶名信息。

  • OPERATOR

    @streq admin表示用戶名等于字符串"admin",則執(zhí)行ACTIONS。

  • ACTIONS

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

該規(guī)則表明:所有主機名為admin,但對應(yīng)主機IP地址不是192.168.1.9的請求包均會被服務(wù)器拒絕。也就意味著只有某一臺主機可以用admin用戶登錄(一般情況是系統(tǒng)管理員的主機),大大提高了系統(tǒng)安全性。

二、一鍵安裝LAMP環(huán)境

  • 執(zhí)行命令apt-get update

  • 執(zhí)行命令apt-get install lamp-server^。

  • 在安裝過程中會跳出Mysql數(shù)據(jù)庫root用戶密碼設(shè)置窗口,按要求輸入密碼:123,按Tab鍵選擇"Ok",按回車進入下一步,如下圖所示:

  • 重復(fù)輸入密碼:123,按Tab鍵選中"Ok",按回車?yán)^續(xù)安裝,如下圖所示:

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

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

    三、安裝modsecurity

  • 安裝libapache2-modsecurity模塊及其依賴包,輸入:

    $ apt-get install libxml2 libxml2-dev libxml2-utils libapache2-modsecurity

  • 查詢ModSecurity版本號,驗證安裝是否成功,輸入:

    $ dpkg -s libapache2-modsecurity | grep Version

    注意:看清Version的大小寫。

  • 重啟Apache服務(wù),輸入:

    $ service apache2 reload

  • 配置modsecurity,啟用攔截模式,輸入:

    $ cd /etc/modsecurity

    $ mv modsecurity.conf-recommended modsecurity.conf

    $ vim modsecurity.conf

    上述操作將安裝包中的推薦配置文件改名為標(biāo)準(zhǔn)的配置文件名,并啟用Vim編輯器編輯該配置文件。

  • 編輯modsecurity.conf,將"SecRuleEngine DetectionOnly"改為"SecRuleEngine On",保存并退出。如下圖所示:

    上述操作將開啟安全規(guī)則引擎,即啟用攔截模式,過濾HTTP流量。

  • 四、配置自定義規(guī)則

  • 進入文件夾activated_rules,將啟動文件關(guān)聯(lián)到此文件夾中,采用軟鏈接的方式,輸入:

    $ cd /usr/share/modsecurity-crs/activated_rules

    $ ln -s ../modsecurity_crs_10_setup.conf ./modsecurity_crs_10_setup.conf

    $ tree

  • 執(zhí)行命令vim MY.conf,創(chuàng)建自己的規(guī)則文件MY.conf。寫入防XSS規(guī)則(編號001)如下:

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

  • 設(shè)置配置文件security2.conf,輸入:

    $ vim /etc/apache2/mods-available/security2.conf

  • 在該文件中添加:IncludeOptional /usr/share/modsecurity-crs/activated_rules/*.conf,如下圖所示:

  • 重啟apache服務(wù),輸入:

    $ service apache2 reload

  • 五、驗證防護效果

  • 登錄主機"hacker",進入攻擊者模式。在瀏覽器地址欄輸入:http://localhost/ ?q=<script> alert(1)</script>。實驗結(jié)果如下圖所示:

  • 執(zhí)行命令vim /var/log/apache2/modsec_audit.log,查看WAF攔截日志,如下圖所示:

    由上圖可知,從本地主機發(fā)出的GET請求被規(guī)則文件MY.conf中的001號規(guī)則準(zhǔn)確命中,消息中包含的惡意代碼被攔截。

  • 總結(jié)

    以上是生活随笔為你收集整理的在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。