2011年4月14日 星期四

【轉貼】[ubuntu]啟動 Apache2 的 mod_security 來增加安全性

【轉貼】[ubuntu]啟動 Apache2 的 mod_security 來增加安全性





如何增加 Apache2 的安全性,在 Ubuntu 6.06 上最簡單的方法,就是加上 mod_security,它算是 Web 的應用程式防火牆,可以擋下部份的 WEB DOS 攻擊以及一些有的沒有的攻擊(請參考本文最下方的來源)。

在 ubuntu 上安裝 apache2 的模組是很方便的哦!方法如下...

啟動:
sudo a2enmod mod-security

重新載入:
sudo /etc/init.d/apache2 force-reload

確認是否啟用:
請查看 /etc/apache2/mods-enabled 目錄中,如果有 mod_security.load 就表示有載入成功。

如果要關閉的話,如下:
sudo a2dismod mod-security
再重新啟動 apache2 即可。

參考來源:
Fedora 7 以上 Apache增加模組 Mod_Security 問題
Apache 防制 惡意攻擊的加強安全性mod_security模組

20080703 補充:
剛剛才發現一開始裝好的 ubuntu 6.06 apache2 中是沒有 mod_security 的模組,所以要另外安裝,指令如下:
sudo apt-get install libapache2-mod-security
ps. ubuntu 7.10 之後就沒有這個套件囉!

20080704 補充:
又發現一個問題,原來我之前安裝好 mod_security 也啟動了,但是少了設定檔,所以實際上是沒有作用的...@_@
剛剛讀到這裡「Apache安裝設置」的說明,才發現到這個問題的...

我將設定檔配置的部份摘過來:
$sudo a2enmod mod-security
$sudo cp /usr/share/doc/libapache2-mod-security/examples/httpd2.conf.example-full /etc/apache2/mods-available/mod-security.conf
$sudo cp /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-available/mod-security.conf.orig
$sudo vi /etc/apache2/mods-available/mod-security.conf

==== mod-security.conf 文件內容開始====
# 檢測內容長度以避免堆溢出攻擊
SecFilterForceByteRange 32 254 =>SecFilterForceByteRange 32 126

# debug設置
SecFilterDebugLevel 9 =>SecFilterDebugLevel 0

# 設置預設的動作
SecFilterDefaultAction "deny,log,status:499" =>SecFilterDefaultAction "deny,log,status:404"
ps.我的版本是 500

# 把設置傳遞給子目錄
SecFilterInheritance Off
ps.我的版本已是 Off 的了

# Redirect user on filter match
# 當匹配sh的時候,重新定向到一個特殊的警告頁面,該頁面是自行編寫的,寫些警告的話讓攻擊者知難而退,該段先不要生效,等到相關配置配好之後再失效不遲。記住在配好之後要使之生效。
#SecFilter sh redirect:http://localhost/hack/warning.htm
ps. 可以自行指定一個網址

# Prevent OS specific keywords
#過濾一些敏感的東西,我們使用*是為了攻擊者使用/etc/./passwd來繞開檢測
SecFilter /etc/passwd =>SecFilter /etc/*passwd
SecFilter /bin/*sh

# Very crude filters to prevent SQL injection attacks
# 防止SQL插入(SQL Injection)攻擊
SecFilter "delete[[[space|]]]+from"
SecFilter "insert[[[space|]]]+into"
SecFilter "select.+from"
SecFilter "select[[[space|]]]+from"
SecFilter "union[[[space|]]]+from"

==== mod-security.conf 文件內容結束====

sudo ln -s /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-enabled/mod-security.conf

重新啟動 apache2 就 OK 囉!不過要如何測試有沒有效果,我就不知道了...^^"

來源:
對岸的 Ubuntu wiki Apache安裝設置說明

沒有留言:

張貼留言