Apache防止攻擊
為了防止惡意用戶對Apache進行攻擊,我們需要安裝mod_security這個安全模塊
mod_security 1.9.x模塊的安裝
建議使用1.9.x,因為2.x的配置指令與1.x完全不同,解壓后進入解壓目錄,執行:
/home/apache/bin/apxs -cia mod_security.c
編譯完成后,/home/apache/modules下會生成一個mod_security.so文件
然后kate /home/apache/conf/httpd.conf
加入以下選項(如果沒有的話)
#啟用mod_security這個安全模塊
LoadModule security_module modules/mod_security.so (這一句通常會被自動加入)
# 打開過濾引擎開關。如果是Off,那么下面這些都不起作用了。
SecFilterEngine On
# 把設置傳遞給字目錄
SecFilterInheritance Off
# 檢查url編碼
SecFilterCheckURLEncoding On
# 檢測內容長度以避免堆溢出攻擊
#SecFilterForceByteRange 32 126
# 日志的文件和位置。一定要先建立好目錄,否則apache重新啟動的時候會報錯。
SecAuditLog logs/audit_log
# debug的設置
#SecFilterDebugLog logs/modsec_debug_log
#SecFilterDebugLevel 1
#當匹配chmod,wget等命令的時候,重新定向到一個特殊的頁面,讓攻擊者知難而退
SecFilter chmod redirect:http://www.sina.com
SecFilter wget redirect:http://www.sina.com
#檢測POST數據,注意,請甚用這個開關,可能會導致一些post頁面無法訪問。詳細的信息,請察看www.modsecurity.org的文檔,其中有詳細的post編碼要求。
#SecFilterScanPOST Off
# 缺省的動作
SecFilterDefaultAction “deny,log,status:406″
# 重新定向用戶
#SecFilter xxx redirect:http://www.sina.com
# 防止操作系統關鍵詞攻擊
SecFilter /etc/*passwd
SecFilter /bin/*sh
# 防止double dot攻擊
SecFilter “\.\./”
# 防止跨站腳本(CSS)攻擊
SecFilter “<( |\n)*”
# Prevent XSS atacks (HTML/Java injection)
SecFilter “<(.|\n)+>”
# 防止sql注入式攻擊
SecFilter “delete[[:space:]]+from”
SecFilter “insert[[:space:]]+into”
SecFilter “select.+from”
#重定向exe和asp請求
SecFilterSelective REQUEST_URI “\.exe” “redirect:http://www.google.com”
SecFilterSelective REQUEST_URI “\.asp” “redirect:http://www.google.com”
#下面是限制了upload.php文件只能用來上傳jpeg.bmp和gif的圖片
#
#SecFilterInheritance On
#SecFilterSelective POST_PAYLOAD “!image/(jpeg|bmp|gif)”
#
#偽裝服務器標識
SecServerSignature “Microsoft-IIS/6.0″
保存后重啟apache即可!
為了防止Web服務器被DDoS攻擊,我們需要安裝mod_evasive這個防DDoS的模塊
mod_evasive 1.10.x防DDoS模塊的下載與安裝
下載地址:http://www.zdziarski.com/projects/mod_evasive/
解壓后進入解壓目錄,執行
/home/apache/bin/apxs -cia mod_evasive20.c
編譯完成后,/home/apache/modules下會生成一個mod_evasive20.so文件
然后kate /home/apache/conf/httpd.conf
加入以下選項(如果沒有的話)
#啟用mod_evasive for Apache 2.x防DDoS模塊
LoadModule evasive20_module modules/mod_evasive20.so (這一句通常會被自動加入)
#記錄和存放黑名單的哈西表大小,如果服務器訪問量很大,可以加大該值
DOSHashTableSize 3097
#同一個頁面在同一時間內可以被統一個用戶訪問的次數,超過該數字就會被列為攻擊,同一時間的數值可以在DosPageInterval參數中設置。
DOSPageCount 3
#同一個用戶在同一個網站內可以同時打開的訪問數,同一個時間的數值在DOSSiteInterval中設置。
DOSSiteCount 40
#設置DOSPageCount中時間長度標準,默認值為1。
DOSPageInterval 2
#DOSSiteInterval 2 設置DOSSiteCount中時間長度標準,默認值為1。
DOSSiteInterval 2
#被封時間間隔秒,這中間會收到 403 (Forbidden) 的返回。
DOSBlockingPeriod 10
#設置受到攻擊時接收攻擊信息提示的郵箱地址。
#DOSEmailNotify
#受到攻擊時Apache運行用戶執行的系統命令
#DOSSystemCommand “su - someuser -c ‘/sbin/… %s …’”
#攻擊日志存放目錄,BSD上默認是 /tmp
#DOSLogDir “/var/lock/mod_evasive”
<IfModule mod_security.c>
SecFilterEngine On
SecFilterCheckURLEncoding On
SecFilterDefaultAction "deny,log,status:500"
#SecFilterForceByteRange 32 126
#SecFilterScanPOST On
SecAuditLog logs/audit_log
###
SecFilter "\.\./"
#####
SecFilter /etc/*passwd
SecFilter /bin/*sh
#for css attack
SecFilter "<( | )*"
SecFilter "<(.| )+>"
#for sql attack
SecFilter "delete[ ]+from"
SecFilter "insert[ ]+into"
SecFilter "select.+from"
SecFilter "union[ ]+from"
SecFilter "drop[ ]"
</IfModule>
關鍵字:Apache、攻擊
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解