管理者/sshd への攻撃を撃退 の履歴(No.2)
更新sshd へのブルートフォース攻撃†
sshd への総当たり攻撃について、古い記事だけれど次のものを読みました。
http://yoosee.net/d/archives/2005/11/08/002.html
で、気になって調べてみました。
ログの調べ方†
疑わしいアクセスに /var/log/auth.log に POSSIBLE BREAK-IN ATTEMPT! という文字が付くので、 これを抜き出し解析します。すると・・・
LANG:console $ gunzip -c /var/log/auth.log.*.gz | cat - /var/log/auth.log* | grep "POSSIBLE BREAK-IN ATTEMPT" | sed -e "s/.*getaddrinfo for //g" -e "s/ failed - .*//g" | sort | uniq -cd 201 116.214.25-66.del.tulipconnect.com [116.214.25.66] 189 18.136.142.219.broad.bj.bj.dynamic.163data.com.cn [219.142.136.18] 289 82-102-134-122.orange.net.il [82.102.134.122] 1221 bbsfix-168-26-142-118-on-nets.com [118.142.26.168] 82 corporat201-244190250.sta.etb.net.co [201.244.190.250] 129 ilink19.eprotea-finexus.com [202.151.225.19] 290 ip37.ccpu.com [216.54.134.37] 4413 ip94.dyn1.charleroi3.schedom-europe.net [83.101.41.94] 70129 powersportsupport.com [208.101.55.178]
わんさか出ました(TT
解析コマンドの意味†
Debian ではログは最新のものが /var/log/auth.log で、次が /var/log/auth.log.1、
さらに古いものは圧縮されて /var/log/auth.log.?.gz の形になっているので、
- gunzip -c /var/log/auth.log.*.gz | cat - /var/log/auth.log* ですべてを繋げます。
- grep "POSSIBLE BREAK-IN ATTEMPT" で該当行を抜き出して、
- sed -e "s/.*getaddrinfo for //g" -e "s/ failed - .*//g" でサーバー名だけを抽出して、
- sort でアルファベット順に並べてから
- uniq -cd で同じサーバーからの攻撃が何件あるかを算出
という流れです。
攻撃パターン†
LANG:console cat /var/log/auth.log.1 | grep "POSSIBLE BREAK-IN ATTEMPT" | head Apr 25 07:58:36 dora sshd[28659]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT! Apr 25 07:58:39 dora sshd[28661]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT! Apr 25 07:58:43 dora sshd[28663]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT! Apr 25 07:58:46 dora sshd[28666]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT! Apr 25 07:58:50 dora sshd[28668]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT! Apr 25 07:58:53 dora sshd[28670]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT! Apr 25 07:58:56 dora sshd[28672]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT! Apr 25 07:59:00 dora sshd[28674]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT! Apr 25 07:59:03 dora sshd[28676]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT! Apr 25 07:59:06 dora sshd[28678]: reverse mapping checking getaddrinfo for powersportsupport.com [208.101.55.178] failed - POSSIBLE BREAK-IN ATTEMPT!
ということですので、攻撃はだいたい3〜4秒間隔で繰り返されるようです。
撃退法†
http://dsas.blog.klab.org/archives/50208645.html#trackback
に書かれているように、iptables に hashlimit というルールを追加して、 頻繁に送りつけられるアクセスをファイアーウォールで落としてしまうのが良さそうです。
こちらの環境は、
LANG:console $ sudo iptables --version iptables v1.4.3.2 $ uname -a Linux dora 2.6.26-2-686 #1 SMP Thu Mar 26 01:08:11 UTC 2009 i686 GNU/Linux
だったので、上記ページにあった方法がそのまま使えるはず。
導入結果は週明けにでも。
コメント†
Counter: 38080 (from 2010/06/03),
today: 6,
yesterday: 6