從 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