顯示codered的嘗試入侵記錄網頁 仁德醫專 周定賢老師 最近真的被 codered 煩死了,而使用者問的問題大都是 Q1: 我們單位有沒有中毒,如何檢查 A: 有偵測程式,等一下傳到您老信箱 Q2: 網路變慢了,是不是被 codered 攻擊了 ? A: (苦笑以對,它走 port 80,防不勝防) Q3: 長官:有沒有記錄顯示誰在攻擊我們呢?通知他們處理一下! A: (國外的確有人弄了個mail通知的方案,但中獎者大都渾沌不知) http://www.onlamp.com/pub/a/apache/2001/08/16/code_red.html?page=2 所以啦!乾脆用 shell 弄一個網頁記錄,讓使用者自行看看自己單位主機是不是巳被攻擊? 不過請記得由於codered是隨機取ip嘗試入侵,您的主機不一定會運氣好到被攻擊. (啟發我寫此一網頁記錄的構想是來自 http://www.lab.mlc.edu.tw/ida.shtml.所以長得很像 :-p) 我的工作環境是: FreeBSD 4.4 RC1 & apache 剪下以下的code,修改前三、四行設定後存成 check_codered.sh,(假設您是存在 /etc 之下) 第一個設定是 apache log檔 的存放位置 第二個設定是 統計資料輸出的html檔存放位置 (請先自行建立存放此網頁的子目錄,例如 mkdir /usr/local/www/data/codered) 完成後 chmod 700 /etc/check_codered.sh 再 sh /etc/check_codered.sh 看看有沒有問題, 在瀏覽器下輸入 http://您的網址/codered/ 的結果 如果一切ok,就修改 crontab,加入下一行 */5 * * * * root /etc/check_codered.sh>/dev/null (狼主按:如果您是以crontab -e 編輯, 則無 root, 如下:) */5 * * * * /etc/check_codered.sh>/dev/null ok! 完工! ======================================================== #!/bin/sh # (狼主按:上一行是狼主加的,才會自動執行) # 您的 apache log 檔存放的位置 http_log_file_path="/var/log/httpd/access_log" # 統計資料輸出的html檔存放位置 html_file_path="/home/httpd/html/codered/index.html" # 將本日的access 記錄存成 red_attack.txt y=`date +%d/%b/20%y` cat $http_log_file_path | grep "$y" > red_attack.txt # 以echo方式送出 html code 到指定的檔案 y=`date +20%y-%m-%d` echo ' 嘗試以CodeRed入侵本校主機之IP清單(每日統計)

嘗試以CodeRed入侵 [' > $html_file_path # 顯示主機的FQDN hostname >> $html_file_path echo '] 之IP清單(每日統計)

統計時間 (' >> $html_file_path echo $y >> $html_file_path echo ' 零時起)

每五分鐘自動更新,最近更新時間:' >> $html_file_path y=`date +%H:%M:%S` echo $y >> $html_file_path echo '。
' >> $html_file_path echo ' 總共嘗試次數:' >> $html_file_path #先統計本日被嘗試入侵的次數 cat red_attack.txt |grep "\.ida"|cut -d" " -f1|sort|wc -l >> $html_file_path echo '次。
' >> $html_file_path

#列出嘗試入侵的ip (排序,並且同一個ip只列一次)
y=`date +20%y-%m-%d`

cat red_attack.txt | grep "\.ida" | cut -d" " -f1 | sort | uniq >> $html_file_path

echo '
' >> $html_file_path rm red_attack.txt