掃出來xoops還真的不錯,可以抓到掃描的ip與攻擊
但因為學校之前還裝了另一套線上影音軟體
不是我所規劃的,所以不曉得安全性是否可靠
因此開始搜尋如何增加網站安全性
主要是以防止sql injection 與 xss攻擊
後來找到了modsecurity這個模組
與參考了這網站開始實作
在這裡以Ubuntu為主
1.先前準備與相關套件
#apt-get update
#apt-get install apache2
#apt-get install php5
#/etc/init.d/apache2 restart
#apt-get install libxml2 libxml2-dev libxml2-utils
#apt-get install libaprutil1 libaprutil1-dev
//如果使用64位元Ubuntu執行下列指令
#ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/libxml2.so.2
//安裝主要安全模組
#apt-get install libapache-mod-security
2.相關設定
#mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
#vi /etc/modsecurity/modsecurity.conf
要設定規則開啟
SecRuleEngine On
#vi /etc/apache2/mods-available/mod-security.conf
相關設定如下
SecDataDir /var/cache/modsecurity
Include "/etc/modsecurity/*.conf"
#增加這一行
Include "/etc/modsecurity/activated_rules/*.conf"
#vi /etc/apache2/apache2.conf
新增下列文字
### 偽裝成IIS###
<IfModule mod_security2.c>
SecServerSignature "Microsoft-IIS/5.0"
</IfModule>
3.下載並安裝寫好的規則
#cd /tmp
#wget https://github.com/root25/MODSEC/raw/master/modsecurity-crs_2.2.5.tar.gz
#tar -zxvf modsecurity-crs_2.2.5.tar.gz
#cp -R modsecurity-crs_2.2.5/* /etc/modsecurity/
#rm modsecurity-crs_2.2.5.tar.gz
#rm -R modsecurity-crs_2.2.5
#mv /etc/modsecurity/modsecurity_crs_10_setup.conf.example /etc/modsecurity/modsecurity_crs_10_setup.conf
#cd /etc/modsecurity/base_rules
//因為規則全安裝經測試會有問題,所以只安裝防xss與sql injection
#mkdir /etc/modsecurity/activated_rules
#cd /etc/modsecurity/activated_rules
#cp ../base_rules/modsecurity_41* ./
#cp ../base_rules/modsecurity_crs_41* ./
//重開service
#/etc/init.d/apache2 restart
恭喜自己完成了XD寫了快一個小時
4.測試
只需要在你的網站輸入http://your ip/?id=23' or '1'='1
就會出現
Forbidden
You don't have permission to access / on this server.
Microsoft-IIS/5.0 Server at xx.xx.xx.xx Port 80
大功告成
5.新增例外清單
在/etc/modsecurity/activated_rules/目錄增加一個檔案exclude.conf
內容如下:
<IfModule mod_security2.c>
<Location /modules/sj_score/>
SecRuleEngine off
</Location>
</IfModule>
6.apache2的error.log出現PCRE limits exceeded (-8)問題
編輯/etc/modsecurity/modsecurity.conf
增加以下內容:
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
編輯php.ini
更改以下內容:
pcre.backtrack_limit=10000000
pcre.recursion_limit=10000000
重開apache2就可生效
7.白名單
因為modsecurity只要敏感符號就會擋,
但只要傳送中文就會有這些符號導致看error log時都是學校IP
因此把學校加入白名單中
編輯modsecurity.conf
#vi /etc/modsecurity/modsecurity.conf
增加一行
SecRule REMOTE_ADDR "@ipMatch 192.168.30.0/24" "phase:1,nolog,allow"
沒有留言:
張貼留言