網站安全狗Linux版(Apache)使用手冊v1.0
網站安全狗Linux 版(Apache )使用手冊v1.0.01. 軟件說明網站安全狗Linux 版(Apache )(英文:SafeDog For Linux Apache )是一款集網站內容安全防
網站安全狗Linux 版(Apache )使用手冊v1.0.0
1. 軟件說明
網站安全狗Linux 版(Apache )(英文:SafeDog For Linux Apache )是一款集網站內容安全防護、網站資源保護及網站流量保護功能為一體的服務器工具,為用戶在Internet 的網絡服務提供完善的保護,避免Apache 服務器出現故障以及受到黑客攻擊。
2. 軟件運行環(huán)境
●軟件當前版本支持的linux 服務器的操作系統(tǒng)包括:centos 5.3,RHEL 5.0,Ubuntu 11.04。其它版本號的支持,未經過完整測試。
3. ●確保安裝有apache server 2.0以上版本,否則軟件中的功能無效。軟件安裝
下載軟件的安裝包,ApacheSafeDog_v1.0.tar.gz到linux 服務器上,以root 身份進入安裝包所在的目錄,運行如下命令進行安裝:
tar xzvf ApacheSafeDog_v1.0.tar.gz
cd ApacheSafeDog_v1.0
chmod xinstall.sh
./install.sh
運行時會提示輸入apache 服務器的配置文件路徑(絕對路徑), 請根據您所安裝的apache 的目錄,填寫真實的配置文件路徑。舉例:/usr/local/apache2/conf/httpd.conf
注意:
(1)提示:若您在輸入時,不慎輸入錯誤,請按組合鍵CTRL Backspace刪除。
(2)網站狗的安裝目錄為/etc/ApacheSafeDog,請不要刪除此目錄及目錄下的任何內容。
(3)安裝完成后,請重新啟動apache 服務器,以使網站安全狗軟件生效。
(4)如果重啟apache 服務器時失敗,并提示Permission denied 錯誤,
請參看7.SElinux 的相關設置
4. 軟件卸載
以root 身份進入網站安全狗的安裝目錄/etc/ApacheSafeDog。運行如下命令進行卸載:
chmod xuninstall.sh
./uninstall.sh
當出現提示:Are you sure to remove ApacheSafeDog?[y/n]時輸入y 。
卸載完成后,請重新啟動apache 服務器。
5. 網站安全狗軟件功能
修改網站安全狗的配置文件所在目錄/etc/ApacheSafeDog/conf下的配置文件來啟用網站安全狗的相應功能。
請注意以下事項:
(1)以下配置文件各字段的值只是舉例,請根據您的實際需要自行設定。設定前請參考每個字段前的注釋信息。
(2)修改完的配置,會在一分鐘后自動生效。如果您需要讓其立即生效,請重啟apache 服務器。
(3)白名單和黑名單的優(yōu)先級高于其他防護,其中白名單又高于黑名單。如果您在設置了某個防護后,發(fā)現其未起效等異常,請檢查是否是設置了白名單和黑名單導致的。
(4)修改配置中的字段時,請在英文狀態(tài)下輸入,提示信息字段TipInfo 和正則表達式規(guī)則說明字段
5.1. Description 除外。CC 攻擊防護(WPCAntiCC.conf )
[功能說明]
,CC 攻擊(ChallengeCollapsar)是借助代理服務器生成指向受害主機的合法請求,實現DOS 和偽裝。模擬多個用戶不停的進行訪問那些需要大量數據操作,大量CPU 時間的頁面,使得頁面打開速度緩慢。
CC 攻擊防護基本原理是防止一個IP 多次不斷刷新而斷開與該IP 的連接,防止服務器癱瘓,達到了防攻擊目的。
[配置說明]#是否開啟防CC 攻擊功能,1表示開啟,0表示關閉
ChkCC=0
#CC攻擊者的IP 凍結時間,以分鐘為單位
FreezeMinute=1
#是否允許代理訪問,1表示允許,0表示不允許
IsAllowProxy=0
#是否需要返回提示信息,1表示允許,0表示不允許
IsTipInfo=1
#單IPGet 方式在規(guī)定時間內允許訪問頁面的次數
MaxGetNumber=80
#單IPGet 方式的規(guī)定時間
MaxGetSeconds=60
#單IP Post 方式在規(guī)定時間內允許訪問頁面的次數
MaxPostNumber=20
#單IP Post 方式的規(guī)定時間
MaxPostSeconds=60
#發(fā)現代理訪問時,發(fā)送給瀏覽器的信息
ProxyTipInfo=本服務器禁止代理訪問!
#保護的資源類型,采用如下格式:后綴名|后綴名|后綴名,各字符間不要有空格或制表符。最后一個后綴名之后不要包含豎線(|)
#例如:rar|jpg|gif|exe
Resource=asp|aspx|cgi|jsp|php#發(fā)現被CC 攻擊時,是否將該攻擊寫入日志,1表示允許,0表示不允許
SendAlert=1#不受防CC 攻擊規(guī)則保護的本服務器上的域名數目, 若該字段為0,則Site0等字段就不存在
SpeSiteCount=3
#定義您的服務器上不受防CC 攻擊規(guī)則保護的域名,這里的域名必須與APACHE 配置的serverName,ServerAlias 字段所設的字段匹配。
#填寫以下字段時請注意字段名末尾的數字:Site 0,Site 1,Site 2。請嚴格按照此規(guī)則定義字段名字。
#舉例:如果你只有一個site 需要定義,則字段名應為:Site 0,如果你有四個site 需要定義,則字段名應#為:Site0,Site1,Site2,Site3.
#這里的站點必須是本服務器上的站點。
Site0=www.test1.com
Site1=www.test2.com
Site2=www.test3.com
#發(fā)現CC 攻擊時,發(fā)送給瀏覽器的信息
TipInfo=您的請求過于頻繁,謝謝合作!
,[驗證生效方法]
如果你開啟了防CC 攻擊功能,并且有客戶端(瀏覽器)在訪問您的網站時,違反了您所設定的規(guī)則,服務器會阻止訪問并返回您所設定的提示信息。
5.2. 網站資源防盜鏈功能(WPCLinkGate.conf )
[功能說明]
盜鏈是指服務提供商自己不提供服務的內容,通過技術手段繞過其它有利益的最終用戶界面(如廣告) ,直接在自己的網站上向最終用戶提供其它服務提供商的服務內容,騙取最終用戶的瀏覽和點擊率。受益者不提供資源或提供很少的資源,而真正的服務提供商卻得不到任何的收益。
本程序通過Reference 技術和Session 技術解決防盜鏈問題。Reference 技術通常用于圖片、mp3等資源這種容易被人用html 嵌入到其他網站資源的資源。Session 技術一般只用于論壇和社區(qū)網站。
兩種防護方式:
(1)引用(Reference )方式:是通過判斷referer 變量的值來判斷圖片或資源的引用是否合法,只有在設定范圍內的referer ,才能訪問指定的資源,從而實現了防盜鏈的目的。Reference 方式能夠讓本域名和其他指定信任域名正常鏈接被保護資源。該技術主要用來保護下載類資源,如rar ,jpg 等
(2)會話(Session )方式:先從客戶端獲取用戶信息,然后根據這個信息和用戶請求的文件名字一起加密成字符串(SessionID) 作為身份驗證。只有當認證成功以后,服務端才會把用戶需要的文件傳送給客戶。一般我們會把加密的Session ID 作為URL 參數的一部分傳遞給服務器,由于這個Session ID 和用戶的信息掛鉤,所以別人就算是盜取了鏈接,該Session ID 也無法通過身份認證,從而達到反盜鏈的目的。這種方式對于分布式盜鏈非常有效。該技術主要用來保護影音資源,如mp3,flv 等
[配置說明]#是否開啟防盜鏈功能,1開啟,0關閉
ChkLinkGate=1
#引用方式#referenc校驗設置:狀態(tài)(0不啟用1啟用)
Reference=1#referenc校驗:本域名信任(0關閉1開啟)
RLocalSite=1#referenc校驗:其他域名信任(0關閉1開啟)
ROtherSite=1#其他信任域名列表個數,若為0,則TSite0等字段不存在
TrustCount=2
#其他信任域名列表,這里的本機網站域名必須與APACHE 配置的serverName,ServerAlias 字段所設的字段匹配,格式為:本機網站域名, 本機網站域名, 本機網站域名…; 信任域名, 信任域名…, 注意:多個本機網站域名之間用英文逗號隔開(這些本機網站域名指的是同一個網站的多個域名),多個信任域名之間也用英文逗號隔開。“本機網站域名”和“信任域名”之間用英文分號隔開。最后一個本機網站域名和最后一個信任域名之后不包括逗號(,)。
#填寫以下字段時請注意字段名末尾的數字:TSite 0,TSite 1,TSite 2。請嚴格按照此規(guī)則定義字段名字。#舉例:如果你只有一個site 需要定義,則字段名應為:TSite 0,如果你有四個site 需要定義,則字段名應#為:TSite 0,TSite 1,TSite 2,TSite 3.
TSite0=www.test1.com,www.test1-1.com;www.google.com.hk,www.baidu.com
TSite1=www.test2.com;www.sina.com,www.sohu.com
#引用方式保護的資源類型,格式為:后綴名|后綴名|后綴名,各字符間不要有空格或制表符。最后一個
,后綴名之后不要包含豎線(|)#例如:rar |jpg |gif |exe
Resource=rar|jpg
#不受引用方式防盜鏈規(guī)則保護的本服務器上的域名數目,若為0,則Site0等字段不存在SpeSiteCount=1
#不受引用方式防盜鏈規(guī)則保護的域名,這里的站點必須是本服務器上的站點。域名必須與APACHE 配置的serverName,ServerAlias 字段所設的字段匹配
Site0=www.test3.com
#會話方式
#session方式校驗:狀態(tài)(0不啟用1啟用)
Session=1
#session校驗:本域名信任(0關閉1開啟)
SLocalSite=1
#設置校驗的用戶名
Name=name
#設置校驗的密碼
Password=password
#客戶端校驗行為:1基于瀏覽器內存方式2基于文件方式
Browser=1
#session有效時間,單位為分鐘TimeOut=10
#會話方式保護的資源類型,格式為:后綴名|后綴名|后綴名,各字符間不要有空格或制表符。最后一個后綴名之后不要包含豎線(|)
SResource=mp3|flv
#不受會話方式防盜鏈規(guī)則保護的本服務器上的網站個數
SSpeSiteCount=1
#不受會話方式防盜鏈規(guī)則保護的域名,這里的站點必須是本服務器上的站點。
SSite0=www.test4.com
#發(fā)現盜鏈時,是否將該攻擊寫入日志(0否1是)
SendAlert=1
#發(fā)現被盜鏈的時,返回給客戶端的信息
TipInfo=您請求的資源受到防盜鏈保護,謝謝合作!
[驗證生效方法]
如果你開啟了網站資源防盜鏈功能,并且有客戶端(瀏覽器)在訪問您的網站時,違反了您所設定的規(guī)則,服務器會阻止訪問并返回您所設定的提示信息。
5.3. 網站特定資源防下載功能(WPCRejectDown.conf )
[功能說明]
網站特定資源保護通過對某些特定資源的設置來確保它們不被下載或盜用
注意:填寫的路徑(Path )和保護資源類型(Resource )中只要客戶端的訪問條件滿足其中一種都會被攔截
[配置說明]
,#是否開啟防下載功能,1表示是,0表是否ChkRejectDown=1
#禁止下載的路徑規(guī)則數,
PathCount=3
#禁止下載的路徑,格式:本服務器上的域名(或物理路徑) /文件夾名稱; 類型, 其中" 類型" 為:1表示物理路徑,2表示網絡路徑,本機網站域名必須與APACHE 配置的serverName,ServerAlias 字段所設的字段匹配。#填寫以下字段時請注意字段名末尾的數字:Path 0,Path 1,Path 2。請嚴格按照此規(guī)則定義字段名字。#舉例:如果你只有一個site 需要定義,則字段名應為:Path 0,如果你有四個site 需要定義,則字段名應#為:Path 0,Path 1,Path 2,Path 3.
Path0=www.test1.com/database;2Path1=www.test2.com/database;2
Path2=/etc/apache/htdocs/discuz/data;1
#保護的資源類型,格式為:后綴名|后綴名|后綴名,各字符間不要有空格或制表符,最后一個后綴名之后不要包含|號。例如:rar|jpg|gif|exe
Resource=mdb|dll
#發(fā)現文件被非法下載時,是否將該攻擊寫入日志,1表示是,0表是否
SendAlert=1
#發(fā)現文件被非法下載時,發(fā)送給瀏覽器的信息
TipInfo=您請求的資源禁止訪問,謝謝合作!
[驗證生效方法]
如果你開啟了特定資源防下載功能,并且有客戶端(瀏覽器)在訪問您的網站時,違反了您所設定的規(guī)則,
5.4. 服務器會阻止訪問并返回您所設定的提示信息。SQL 防注入功能(WPCDefSql.conf )
[功能說明]
SQL 注入英文名叫SQL Injection ,是存在于應用程序數據庫層的安全漏洞。攻擊者利用這個漏洞在輸入的資料字串中夾帶SQL 指令。一旦應用程序忽略了檢查,這些夾帶進去的指令就會被數據庫服務器誤認為正常的SQL 指令而執(zhí)行,從而導致數據庫結構以及系統(tǒng)資料外泄,最終使系統(tǒng)遭到破壞。
網站安全狗的設計是根據攻擊特征庫,對用戶輸入進行過濾,從而達到防護SQL 注入的目的。
此功能中用戶可以根據實際需要對過濾規(guī)則進行新增、修改、刪除。
[配置說明]#是否開啟防注入功能(1開啟,0關閉)
ChkSqlAttackStatus=1
#發(fā)現被注入時,是否將該攻擊寫入日志(1發(fā)送,0不發(fā)送)
SendAlert=1
#手動在線更新SQL 規(guī)則地址
UpdateUrl=http://www.safedog.cn/upload/configFile/sqlRule.dat#防sql 注入正則表達式規(guī)則數
Count=5
#檢測Cookie 內容是否用第0條正則表達式
CheckCookie0=1
#檢測Post 內容是否用第0條正則表達式
CheckPost0=1
#檢測URL 內容否用第0條正則表達式
,CheckUrl0=1#第0條正則表達式規(guī)則
Sql0=;{0,1}'{0,1}){0,1}( |)*b(and|or)b( |) .*(=|<|>).*
#對第0條正則表達式規(guī)則的說明。這個字段是為了向用戶說明該正則表達式的用途,安全狗程序不會使用#該字段,故該字段可有可無,但建議用戶在新建一個正則表達式時都添加該字段,方便理解和記憶。Description0=防止and or 方式注入#檢測Cookie 內容是否用第1條正則表達式
CheckCookie1=1#檢測Post 內容是否用第1條正則表達式
CheckPost1=1#檢測URL 內容否用第1條正則表達式
CheckUrl1=1
#第1條正則表達式規(guī)則
Sql1=b(create|drop|backup)b( |) ?atabaseb( |) w*
#第1條正則表達式的說明
Description1=防止對數據庫進行創(chuàng)建、刪除、備份操作CheckCookie2=1
CheckPost2=1
CheckUrl2=1
Sql2=b(drop|truncate|create)b( |) btableb( |) w*
Description2=防止對數據庫進行刪除、創(chuàng)建表操作
CheckCookie3=1
CheckPost3=1
CheckUrl3=1
Sql3=?bo.w
Description3=防止數據庫系統(tǒng)的存儲過程被執(zhí)行CheckCookie4=1
CheckPost4=1
CheckUrl4=1
Sql4=?eclareb( |) .
Description4=防止注入存儲過程#是否檢測URL 路徑長度(1是,0否)
ChkUrlLenStatus=1
#URL路徑最長的長度
MaxUrlLen=16385
#發(fā)現被注入時,發(fā)送給瀏覽器的信息
TipInfo=您的請求帶有不合法的參數,謝謝合作!
[驗證生效方法]
如果你開啟了SQL 防注入功能,并且有客戶端(瀏覽器)在訪問您的網站時,違反了您所設定的規(guī)則,服
,務器會阻止訪問并會返回您所設定的提示信息。
5.5. IP 白名單(WPCWhiteIP.conf )
[功能說明]
IP 白名單設置可以通過設置一些值得信賴的IP 地址為白名單地址,從而使它們能夠順利地訪問網站注意:IP 白名單的優(yōu)先級比IP 黑名單的高
[配置說明]#是否開啟允許白名單IP 功能,1表示開啟,0表示關閉
ChkWhiteIP=1
#是否允許爬蟲網站功能,1表示允許,0表示不允許
AllowSpider=1
#搜索引擎爬蟲的關鍵字數量,若個數為0,則SpiderKey0等字段不存在
SpiderCount=8#搜索引擎爬蟲的關鍵字
SpiderKey0=baiduspider
SpiderKey1=googlebot/
SpiderKey2=iaskspider/
SpiderKey3=msnbot/
SpiderKey4=sogoupush spider/
SpiderKey5=sogouweb spider/
SpiderKey6=yahoo!slurp
SpiderKey7=yodaobot/#白名單IP 段的個數,若個數為0,則WhiteIP0等字段不存在
WhiteIPCount=3
#白名單IP 段,格式為:IP, 子網掩碼:IP段開始-IP 段結束
WhiteIP0=172.25.31.35,255.255.255.255:172.25.31.35-172.25.31.35
WhiteIP1=192.168.12.12,255.255.255.252:192.168.12.13-192.168.12.14
WhiteIP2=12.25.31.25,255.255.255.240:12.25.31.17-12.25.31.30
[驗證生效方法]
如果你將某個IP 添加進了白名單,即使客戶端(瀏覽器)在訪問您的網站時,違反了您所設定的防護規(guī)則,
5.6. 服務器也會允許此行為。IP 黑名單(WPCBlackIP.conf )
[功能說明]
IP 黑名單設置可以通過設置一些不良IP 地址為黑名單地址,從而限制它們訪問網站。
[配置說明]
#是否開啟攔截黑名單IP 功能(1開啟,0關閉)
ChkBlackIP=0
#發(fā)現黑名單訪問時,是否將該攻擊寫入日志(1開啟,0關閉)
SendAlert=1
#黑名單IP 段的個數,若個數為0,則BlackIP0等字段就不存在
Count=3
#黑名單IP 段, 格式為:IP, 子網掩碼:IP段開始-IP 段結束
,BlackIP0=192.168.3.23,255.255.255.255:192.168.3.23-192.168.3.23
BlackIP1=10.23.45.44,255.255.255.224:10.23.45.33-10.23.45.62
BlackIP2=175.62.6.32,255.255.255.248:175.62.6.33-175.62.6.38#發(fā)現黑名單訪問時,發(fā)送給瀏覽器的信息
TipInfo=請不要進行不合法的請求,謝謝合作!
[驗證生效方法]
如果你將某個IP 添加進了黑名單,該IP 在訪問您的網站時,服務器會阻止訪問并返回您所設定的提示信息
5.7. 防護日志設置(WPCLog.conf )
[功能說明]
網站安全狗會將其防護攻擊的日志寫入其安裝目錄下的Analysis/SynSvr.dat數據庫。
[配置說明]#日志保存天數
SaveDays=30
5.8. 防護總開關設置(WPCGeneralDefInfo.conf )
[功能說明]
該文件是網站安全狗防護功能的總開關。
注意:如果關閉總開關,網站安全狗所有防護功能均失效。
[配置說明]
[GeneralInfo]
#這里必須要保持兩個字段都為1,總開關才能開啟,若其中一個為0,或兩個都為0時,總開關都會關閉。Switch=1
SynServerStatus=1
6. 日志查看工具——sdalog
[功能說明]
sdalog 工具可以從安裝目錄下的Analysis/SynSvr.dat數據庫中讀取日志并展示給用戶。
支持分時間段查詢,分類型查詢,將查詢結果輸出到文件。
[使用說明]
(1)在linux 的shell 終端中運行sdalog 命令,并帶上相應參數。參數說明如下:
(a)sdalog–-help或sdalog –h該命令可以在線查看sdalog 的幫助信息
(b)sdalog--file 或sdalog –f
該命令將在網站安全狗的安裝目錄下新建一個.log 文件,文件的名稱是當前時間。并將查詢到的防護記錄存放到該文件中。
(c)sdalog –-time=2011-10-12-07:45:42/2011-12-30-22:32:10
該命令將會查詢并顯示2011-10-12-07:45:42到2011-12-30-22:32:10之間的防護記錄
該參數的格式為:sdalog –-time=起始時間/結束時間(查詢“起始時間”到“結束時間”之間的記錄)
sdalog –-time=起始時間/
sdalog –-time=/結束時間
時間格式:YYYY-MM-DD-HH:MM:SS(查詢“起始時間”之后的所有記錄)(查詢“結束之間”之前的所有記錄)(如:2011-06-20-15:22:59)
也可以省略掉后面的時間,但至少保留年份。這個格式會將后面省略掉的時間默認為最小。如:YYYY-MM (如:2011-07,這個等同于:2011-07-01-00:00:00)
YYYY (如:2011,等同于:2011-01-01-00:00:00)
,YYYY-MM-DD-HH
(d)sdalog –-type=all(如:2010-08-12-18,等同于:2010-08-12-18:00:00)
該命令將查詢所有類型的防護記錄
該命令的格式為:sdalog –-type=類型
“類型”為下面其中一項:
all (所有類型)
inject
link
dl
cc
blackip (SQL防注入防護記錄) (防盜鏈防護記錄) (防下載防護記錄,dl 即download) (cc防護記錄) (IP黑名單防護記錄)
(2).參數—-time和—-type以及-f 可以組合使用。
如果參數中不帶—-time參數,則默認為查詢所有時間的記錄。
如果參數中不帶—-type參數,則默認為查詢所有類型的記錄。
如果參數中不帶-f 或—-file參數,則默認將查詢結果輸出到終端。
舉例:直接運行命令sdalog ,不帶任何參數,表示查詢所有時間所有類型的防護記錄,并向結果輸出
到終端。
(3).輸出到終端時,每一欄都有固定的寬度,如果結果很亂,請將終端設置為全屏。如果某一欄的記錄超
過固定寬度,則會被截斷,剩余的部分用省略號代替。
7. 輸出到文件時,每一欄會保留完整結果。SElinux 的相關設置
[說明]
(1)如果您的系統(tǒng)中開啟了SElinux ,網站安全狗安裝后,重啟apache 時可能會失敗,并給出Permission denied 錯誤。如下內容是解決此問題的方案,并不是網站安全狗的功能。若您的系統(tǒng)中并沒有開啟SElinux ,或重啟apache 并沒有失敗,請略過以下內容。
(2)查看是否開啟SElinux 的命令:getenforce
如果運行結果為Enforcing ,表示SElinux 正在運行,并會限制相關程序的資源訪問權限。
如果運行結果為Permissive ,表示SElinux 正在運行,但不會限制程序的資源訪問權限。
如果運行結果為Disabled ,表示SElinux 被關閉。
只有在Enforcing 狀態(tài)下,重啟apache 時才會報Permission denied 的錯誤。請參考如下解決方案。
[解決方案]
解決方案一、關閉SElinux (推薦)。
打開文件/etc/selinux/config,將SELINUX=enforcing改為SELINUX=disabled,然后重新啟動系統(tǒng)。
解決方案二、設置httpd 對網站安全狗文件的SElinux 相關訪問權限。
在開始之前請確保您已安裝了setroubleshoot 服務, 并已經啟動了這項服務。
(1)當重啟apache 失敗并提示Permission denied 的錯誤時,運行命令:
cat /var/log/messages|grepsetroubleshoot 運行結果類似于下邊這樣:
1015:09:46localhost setroubleshoot:SELinuxis preventing httpd from loading /usr/lib/libSPModule.so.0.0.0which requires text relocationl.For complete SELinux messages. run sealert -1d4365f9-7a80-4928-9dd0-6447aebb0b2b
(2)根據上面的輸出提示中的run sealert -1d4365f9-7a80-4928-9dd0-6447aebb0b2b ,運行
命令:sealert -1d4365f9-7a80-4928-9dd0-6447aebb0b2b
,(3)上面這條命令的輸出結果中會詳細描述該錯誤產生的原因,解決方法及相應的附加信息等內容。您只需按照解決方法中的指示操作即可解決問題。例如:上面的輸出結果中會有如下兩欄:
以下命令將允許這個權限:
chcon –ttextrel_shlib_t‘/usr/lib/libSPModule.so.0.0.0’
你只需運行命令:chcon –ttextrel_shlib_t‘/usr/lib/libSPModule.so.0.0.0’即可。注意:如果有多個錯誤,您需要重復步驟(2)和(3)多次。
解決方案三、用命令httpd –krestart 重啟apache 。此方案不一定在所有機器上都起用。