このサイト、そんなにアクセスがあるわけじゃありません。だけどサーバを置くと当然のごとく裏入口をノックして入ってこようとする人が出てきます。
ポートスキャンして開いているポートから入り込もうとするわけですが、こんなのは日常ちゃめしごとなんで好きにしてってところです。だけど、スクリプトでSSHログインを試みられますと、ログファイルはデカくなるはいちいちパスワードチェックでHDを読みに行ってうるさいはでウゼーんです。なんたってこのサーバはちょっと前のHD使ってますからシーク音が結構デカいなのよさ。
ということで、超簡単3分間クッキングシェルスクリプトでアクセス拒否しちゃいました。以下、その本体。
#!/bin/sh
sshlog=/var/log/securewhile true
do
badip=`gawk '/Invalid/{print $10}' $sshlog | tail -1`
badipcount=`tail -n 50 $sshlog|gawk '/Invalid/{print $10}'-f|grep $badip|wc -l`
if [ $badipcount -gt 4 ]; then
/sbin/iptables -F
/sbin/iptables -I INPUT 1 -s $badip -p all -j REJECT
fi
sleep 180
done
3分に一回ログファイルをチェックして、一番最後に不正にアクセスしてきたバカ者のIPアドレスと回数をチェック、一定回数チャレンジしてたらパケットをブロックしちゃうだけ。あまりにくだらんスクリプトなんだけど、結構効果ありますぜ旦那。
昔はもう少し凝っていて、SSHログインアタックやwebへのアタックなども自動検出させて、なんとまぁアクセスブロックのコマンドをコンパイルして実行させるなんてこともやっていた時期があったのだけど、メンドクサイのでやめました。
見てわかる人はわかるだろうけど、取り合えずパスワードでのログインはもともと出来ませんのであしからず。だから本当はアタックしてもムダなのよさ。