ModSecurity安裝配置


實驗聲明:本實驗教程僅供研究學習使用,請勿用於非法用途,違者一律自行承擔所有風險!

ModSecurity安裝配置

實驗目的

本實驗主要掌握ModSecurity與Apache2服務器的安裝及配置方法,並對自己編寫的WAF規則,進行驗證。

實驗環境

網絡實訓平台 OS平台:Ubuntu 16 服務器:Apache2

一、更新Ubuntu apt-get更新源

sudo mv /etc/apt/sources.list /etc/apt/sources.list_backup

sudo nano /etc/apt/sources.list

將以下內容,寫入source.list

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

執行更新。 sudo apt-get update

二、安裝步驟

1、安裝apache2:

sudo apt-get install apache2

sudo apt-get install apache2-dev

2、安裝modsecurity:

sudo apt-get install libxml2 libxml2-dev libxml2-utils libaprutil1 libaprutil1-dev libapache2-modsecurity

3、安裝mysql-5.7

將SecureCRT的選項---會話選項--外觀--編碼,修改為UTF-8編碼。 sudo apt-get install mysql-server mysql-client libmysqlclient-dev

4、安裝PHP7:

sudo apt-get install php7-*

5、查看ModSecurity版本號:

dpkg -s libapache2-modsecurity | grep Version

輸出:Version: 2.9.0-1

三、配置

1、開啟ModSecurity功能:

cd /etc/modsecurity/

sudo mv modsecurity.conf-recommended modsecurity.conf

sudo nano /etc/modsecurity/modsecurity.conf

查找SecRuleEngine,並將其修改為On:

SecRuleEngine On

2、在apache中啟用modsecurity模塊:

sudo nano /etc/apache2/mods-available/security2.conf

在 … 中加入以下內容,保存退出。

includeOptional /etc/modsecurity/*.conf

3、啟用headers和Modsecurity

sudo a2enmod headers

sudo a2enmod security2

4、測試

在/usr/share/modsecurity-crs/activated_rules/路徑下建立myrules.conf,輸入內容: SecRule ARGS_GET "@contains ' or" "deny,status:404,log,tag:'WEB_ATTACK',msg:'SQL Injection Try',id:1000001,phase:1"

在/etc/apache2/mods-available/security2.conf中僅包含/usr/share/modsecurity-crs/activated_rules/myrules.conf規則文件。 然后重啟服務器。 sudo service apache2 restart

利用操作機瀏覽器發出畸形訪問: http://localhost/?id=33' or '1'='1 查看日志,日志位置: /var/log/apache2/modsec_audit.log

利用本機,輸入SQL注入語句,進行測試: curl -I http://localhost/?id=33' or '1'='1

查看modsecurity日志文件看具體的攔截情況 tail /var/log/apache2/modsec_audit.log

3、安裝OWASP Rule Set

cd ~ sudo wget https://github.com/root25/MODSEC/raw/master/modsecurity-crs_2.2.5.tar.gz

sudo tar -zxvf modsecurity-crs_2.2.5.tar.gz

sudo mkdir -p /usr/share/modsecurity-crs

sudo cp -R modsecurity-crs_2.2.5/* /usr/share/modsecurity-crs/

將規則集加入活躍規則集

在/usr/share/modsecurity-crs/的目錄下,有主要的幾個規則目錄,activated_rules、slr_rules、optional_rules和base_rules.

將srl_rules、base_rules和optional_rules目錄下的所有conf文件,拷貝到activated_rules目錄下。

sudo cp /usr/share/modsecurity-crs/modsecurity-crs_10_setup.conf.example /usr/share/modsecurity-crs/modsecurity-crs_10_setup.conf

cd /usr/share/modsecurity-crs/activated_rules

sudo cp /usr/share/modsecurity-crs/base_rules/* .

sudo cp /usr/share/modsecurity-crs/optional_rules/* .

sudo cp /usr/share/modsecurity-crs/slr_rules/* .

sudo nano /etc/apache2/mods-available/security2.conf 在 … 中加入以下內容,保存退出。 include /usr/share/modsecurity-crs/.conf include /usr/share/modsecurity-crs/activated_rules/.conf

重啟apache2: sudo service apache2 restart 若出錯,則刪除以下文件: /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_10_*.conf

/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_4*.conf

/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_5*.conf

說明:由於以上文件中有幾個存在語法錯誤。 如果報錯,unresolved hostname類似的錯誤,則修改主機名為ubuntu16: sudo hostname ubuntu16

/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_21_anomalies.conf 上述文件,禁止通過IP地址直接訪問。

重啟成功。 可以嘗試輸入各種滲透變形,測試防護效果。 免費規則集的檢測誤報率和漏報率比較高,收費版本的,則會好很多。

實驗總結

通過本次實驗,理解了waf的基本安裝配置,工作原理以及規則編寫方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM