1) imperva攔截是默認(rèn)會發(fā)送一個錯誤頁面給client,response code 為200,可以通過F5來抓這個錯誤頁面來判斷是否發(fā)生了block,并且取得相關(guān)信息。為了區(qū)分修改response code為210,在錯誤頁面里插入imperva生成的Event ID.用分號區(qū)分
<html><header><title>Error</title></header><body><H2>Error</H2><table border="0" bgcolor="#FEEE7A" cellpadding="0" cellspacing="0"width="400"><tr><td><table border="0" cellpadding="3" cellspacing="1"><tr valign="top" bgcolor="#FBFFDF"align="Left"><td><STRONG>Error</STRONG></td></tr><tr valign="top" bgcolor="#FFFFFF"><td>This page can't be displayed. Contact support for additional information.<br>;
Event id: $(EVENT_ID);<br>
Session id: $(SESSION_ID).<br>
</td></tr></table></td></tr></table></body></html>
2) 在F5上設(shè)置irules來抓取response 為210的代碼,并且通過分離;在http payload抓取Event id的值,和客戶端IP+port,以local5的類型生成log
when HTTP_RESPONSE {
if { [HTTP::status] equals "210" } {
set event [lindex [split [HTTP::payload] ";"] 1]
log local5. "$event DIP:[IP::local_addr]:[TCP::local_port]"
}
}
3) 下面需要一臺linux服務(wù)器來做日志服務(wù)器,并用SHELL進(jìn)行實時報警
l 編輯/etc/sysconfig/syslog文件
在“SYSLOGD_OPTIONS”行上加“-r”選項以允許接受外來日志消息
如果不想讓中央日志服務(wù)器解析其他機(jī)器的FQDN,還可以加上“-x”選項
SYSLOGD_OPTIONS="-r -x -m 0"
l 重新啟動syslog守護(hù)進(jìn)程
/etc/init.d/syslog restart
如果啟動失敗可以查看該文件的加載項是否都滿足,
vi /etc/init.d/syslog 和vi /etc/sysconfig/syslog-ng
查看以下文件是否都存在,不存在會導(dǎo)致進(jìn)程無法啟動,可以手動添加syslog.pid進(jìn)程ID
SYSLOGNG_PREFIX=/opt/syslog-ng
SYSLOGNG="$SYSLOGNG_PREFIX/sbin/syslog-ng"
CONFFILE=$SYSLOGNG_PREFIX/etc/syslog-ng.conf
PIDFILE=$SYSLOGNG_PREFIX/var/run/syslog-ng.pid
SYSLOGPIDFILE="/var/run/syslog.pid"
l 啟動進(jìn)程成功后看查看netstat –tunlp查看是否有監(jiān)聽udp 514端口,然后在iptables 里面加入允許udp 514的訪問
Vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p udp -m udp --dport 514 -j ACCEPT
Service iptables restart
l 設(shè)置F5發(fā)過來的log保存到哪個文件
Vi /etc/syslog.conf
設(shè)置local5類型的log保存到f5.log中
# Save Debug Message of f5 to f5.log
local5.* /var/log/f5.log
設(shè)置local5類型的log不保存到messages中
*.info;mail.none;authpriv.none;cron.none;local5.none /var/log/messages
l 設(shè)置logrotate,自動每天都打包日志文件,保存10份
vi /etc/logrotate.conf 加入
/var/log/f5.log {
daily
compress
rotate 10
}
重啟進(jìn)程 /etc/init.d/syslog restart
4) 設(shè)置sendmail實時郵件報警
l 修改配置文件支持發(fā)送
Vi /etc/mail/sendmail.cf
將O DaemonPortOptions =Port=smtp,Addr=127.0.0.1, Name=MTA
改為O DaemonPortOptions =Port=smtp, Name=MTA
然后重啟sendmail
/etc/init.d/sendmail restart
l 設(shè)置SHELL腳本來根據(jù)log情況來發(fā)自動郵件,根據(jù)時間每10秒中讀取1次f5.log,對比前后的差別,如果有新的log就把這個不同的log當(dāng)作正文發(fā)送郵件,這里的需要設(shè)置NTP來保持各個設(shè)備時間的一致性,因為每條log都有時間戳,所以用date來命令來讀取最近的日志,這樣的方式基本可以既不遺漏又不重復(fù)的取到每一條新來的log,適用于log量比較大的情況。
#!/bin/bash
while true; do
A=`date +%H:%M |awk '{print substr($0,1,4)}'`
tail /var/log/f5.log |grep "$A" > file1.txt
sleep 10
tail /var/log/f5.log |grep "$A" > file2.txt
diff file1.txt file2.txt > file.diff
if [ -s file.diff ]; then
mail -s "alert mail" tony.yu@abc.com < file.diff
fi
done
l 后臺不間斷執(zhí)行
nohup ./mail.sh > /dev/null 2>&1 &
l 設(shè)置outlook,每分鐘收郵件,有l(wèi)og郵件自動提示
工具—選項—郵件設(shè)置---發(fā)送/接收—自動發(fā)送接收時間間隔1分鐘
工具---規(guī)則和通知---更改規(guī)則---在新郵件通知窗口中顯示(如果需要把log郵件放在自建的目錄才需要,默認(rèn)在收件箱會有桌面通知)
5) 設(shè)置飛信機(jī)器人實時報警
參考資料 http://bbs.it-adv.net/viewthread.php?tid=1081
l 下載飛信機(jī)器人和支持庫
Wget http://bbs.it-adv.net/attachment.php?aid=43&k=99987835a1dcf27b177fcaa6dd5b2f2e&t=1305267611
Wget http://www.it-adv.net/fetion/cenos54X64_20101113.rar
l 把飛信機(jī)器人和支持庫都放在同一個目錄/usr/local/fetion, 復(fù)制部分支持庫到/lib才能正常使用, 運(yùn)行./fetion 不報錯就行了
cp /usr/loca/fetion/libACE-5.7.2.so /lib/
cp /usr/loca/fetion/libACE_SSL-5.7.2.so /lib/
cp /usr/loca/fetion/libcrypto.so.4 /lib/
cp /usr/loca/fetion/libssl.so.4 /lib/
l 嘗試發(fā)送測試飛信信息
./fetion --mobile=135xxxxxx --pwd=xxxxxx --to=139xxxxxxxx --msg-type=2 --msg-utf8=test –debug
第一次會生成135xxxxxxxx.jpg的驗證碼圖片,需要用WINSCP等工具下載到window下查看圖片,然后輸入驗證碼才能使用.
注意點:第一次不要加入--exit-on-verifycode=1參數(shù),否則生成驗證碼圖片會有問題
如果驗證碼問題一直存在,則可以用飛信機(jī)器人的服務(wù)模式,一直在線,但需要插件支持。
l 測試成功后就可以加入到剛才的mail.sh腳本中使用
#!/bin/bash
while true; do
M="135xxxxxx"
P="xxxxxx"
T="139xxxxxx"
A=`date +%H:%M |awk '{print substr($0,1,4)}'`
tail /var/log/f5.log |grep "$A" > file1.txt
sleep 10
tail /var/log/f5.log |grep "$A" > file2.txt
diff file1.txt file2.txt > file.diff
B=`cat file.diff`
if [ -s file.diff ]; then
/usr/local/fetion/fetion --mobile="$M" --pwd="$P" --to="$T" --exit-on-verifycode=1 --msg-type=2 --msg-utf8="$B" >/dev/null 2>&1
mail -s "alert mail" tony.yu@abc.com < file.diff
fi
done
億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|