管理者/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 の形になっているので、

  1. gunzip -c /var/log/auth.log.*.gz | cat - /var/log/auth.log* ですべてを繋げます。
  2. grep "POSSIBLE BREAK-IN ATTEMPT" で該当行を抜き出して、
  3. sed -e "s/.*getaddrinfo for //g" -e "s/ failed - .*//g" でサーバー名だけを抽出して、
  4. sort でアルファベット順に並べてから
  5. 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: 36919 (from 2010/06/03), today: 1, yesterday: 0