SmallStyle


2005-10-09

_ SSH ブルートフォース

ここのことろ/var/log/authをながめていると,

...
Oct  3 06:09:34 xxxxx sshd[27888]: Illegal user test from ::ffff:210.204.224.xxx
Oct  3 06:09:34 xxxxx sshd[27890]: Illegal user musazain from ::ffff:210.204.224.xxx
Oct  3 06:09:35 xxxxx sshd[27892]: Illegal user zakri from ::ffff:210.204.224.xxx
Oct  3 06:09:35 xxxxx sshd[27894]: Illegal user info from ::ffff:210.204.224.xxx
Oct  3 06:09:36 xxxxx sshd[27896]: Illegal user jinhan from ::ffff:210.204.224.xxx
Oct  3 06:09:37 xxxxx sshd[27898]: Illegal user jaime from ::ffff:210.204.224.xxx
Oct  3 06:09:37 xxxxx sshd[27900]: Illegal user test from ::ffff:210.204.224.xxx
Oct  3 06:09:38 xxxxx sshd[27902]: Illegal user kiyoko from ::ffff:210.204.224.xxx
Oct  3 06:09:38 xxxxx sshd[27904]: Illegal user test from ::ffff:210.204.224.xxx
Oct  3 06:09:39 xxxxx sshd[27906]: Illegal user lcadmin from ::ffff:210.204.224.xxx
Oct  3 06:09:39 xxxxx sshd[27908]: Illegal user lcadmin from ::ffff:210.204.224.xxx
...

といった具合に5:57:44から6:10:45にかけて合計1282回の攻撃が確認されました.ユーザ名を見てみるとtestとかはありふれていますが,kiyokoなんて日本名なんかも含まれています.このサーバではパスワード認証は許可していないし,認証には鍵が必要になってくるので,この攻撃では基本的に意味はないのですが,この膨大なログを見ると少々うんざりするので何かいい方法はないかと調べてみた.

Googleで「SSH,ブルートフォース」あたりをキーワードにして検索した結果,Debian GNU/Linux 3.1(sarge)運用ノートで書かれている対策がよさそうな感じ.紹介されているコードを参考に,うちの環境にあわせてiptablesの設定をしてみたものの,どうも動きがおかしい.1回目のアクセスは問題なく通るのだけど,2回目以降がはじかれる.どうやら1回目のアクセスでマークされ,2回目以降は拒否されている.原因として考えられるのが,iptablesのオプションとして渡している"-m recent"の"--name"が効いていないため.仕方がないのでほかの方法がないかと調べていたところ,@ITの「習うより慣れろ! iptablesテンプレート集」のping応答回数制限によるDoS攻撃の防御が参考になりそう.iptablesのlimitモジュールを利用して今回の問題を回避できないか再度Googleで検索したところ,tummy.comの設定が使えそう.

iptables -A INPUT -m tcp -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m tcp -p tcp -s xx.xx.xx.xx --dport 22 -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 22 -j DROP

メンテナンスを行うマシンからのアクセスは許可.それ以外のマシンからの接続に関しては単位時間内にマッチするパケットは3回までアクセス可能.これ以降のアクセスに関しては20秒間応答を返しません.20秒ごとに応答可能回数が回復されていく仕組みになっています.limitモジュールについてはIptables Tutorial 明示的なマッチが参考になりました.

上記の設定を行ってしばらく様子を見ていたのですが,ログには以下のような感じで残っていました.

Oct  9 08:49:36 piccolo sshd[17297]: Illegal user 1 from ::ffff:200.160.208.xxx
Oct  9 08:49:39 piccolo sshd[17299]: Illegal user 2005 from ::ffff:200.160.208.xxx
Oct  9 08:49:43 piccolo sshd[17301]: Illegal user 20admin from ::ffff:200.160.208.xxx
Oct  9 09:24:30 piccolo sshd[17632]: Illegal user plant from ::ffff:209.49.85.xxx
Oct  9 09:24:32 piccolo sshd[17635]: Illegal user impala from ::ffff:209.49.85.xxx
Oct  9 09:24:34 piccolo sshd[17637]: Illegal user services from ::ffff:209.49.85.xxx

ブロックした物についてはログを出力するように設定しているのですが,

Oct  9 08:49:43 piccolo kernel: [SSHDROPED] IN=eth0 OUT= MAC=00:0...
Oct  9 08:49:46 piccolo kernel: [SSHDROPED] IN=eth0 OUT= MAC=00:0...
Oct  9 08:49:52 piccolo kernel: [SSHDROPED] IN=eth0 OUT= MAC=00:0...
Oct  9 09:24:34 piccolo kernel: [SSHDROPED] IN=eth0 OUT= MAC=00:0...
Oct  9 09:24:37 piccolo kernel: [SSHDROPED] IN=eth0 OUT= MAC=00:0...
Oct  9 09:24:43 piccolo kernel: [SSHDROPED] IN=eth0 OUT= MAC=00:0...

今のところ,うまく3回までで抑えられているようです.アクセス元を一応調べてみましたが,やっぱりというかなんというか,韓国や中国が多いですね.


about me

いろいろと興味を持ったことを書いてます.ちょっとしたことは hb(@smallstyle) on Twitter で書いてます.

Archive

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|12|