從 http://anp.ath.cx/sshit/sshit.pl 改進的,現在不會 fork 一堆出來了。
這個版本是用 tail -F 讀 /var/log/auth.log,跟 sshit.pl 的作法不同。
Link: http://www.csie.nctu.edu.tw/~jnlin/script/chkfw_select_pf.txt
你必須要在 /etc/pf.conf
加上:
table <$PF_TABLE> persist
block on $extdev from <$PF_TABLE> to any
才會真正 block 有惡意者的 IP。
用 File::Tail 吧,做完以後丟 ports XD
剛剛看了一下 File::Tail, 發現他是 sleep() 一段時間以後去檢查檔案是不是被 reopen, 效果會比 tail -F 用 kqueue 檢查來的差.
關於這個暴力 try 的問題,因為我的系統是 Gentoo Linux 然後 log 系統是 metalog,所以我自己這邊的做法,是去 metalog 那邊,設一個類似 handler 的東西. 一但有 ssh 的 log entry 進來,就啟動自己寫的一個小 script file 去看看是不是暴力 try (簡單的字串比對而已). 如果是的話,記錄下來,再來看看連續幾次後,就去設 iptable 把那個 ip 來的所有 packet 全部 drop 掉,並且 email 給我這個 drop 事件. 這樣擋應該也還蠻有效果的.
大家的作法都差不多 😛
不好意思,不太知道怎麼安裝在系統上面呢
請知道的大大能教一下嘛
謝謝唷。
請不要用這個 script 了, 改用 sshit 吧 :p