Index: [Article Count Order] [Thread]

Date: Mon, 07 Nov 2005 10:25:18 -0500
From: Yusuke Shinyama <yusuke@cs.nyu.edu>
Subject: [ssh:00251] Re: FYI:	SSHサーバーへの攻撃が増加傾向,侵入後はフィッシング・サイトに悪用も
To: ssh@koka-in.org
Message-Id: <20051107152518.3825.84059.yusuke@mango.cs.nyu.edu>
In-Reply-To: <m0wtjkd55v.wl.zophos@ietta.Dadd9.com>
References: <m0wtjkd55v.wl.zophos@ietta.Dadd9.com>
X-Mail-Count: 00251

最近では明らかに帯域が太いホストから大量に来てますね。

いまのところ防御策として確実にきくのは、標準的でないポート
(22/tcp以外) で ssh を使うことでしょう。
ぼくの自宅サーバではこうしてます。こうすると攻撃はぱったり来なくなります。
具体的な方法は、/etc/ssh/sshd_config の

#Port 22

となっているところを、コメントをはずして好きなポート
(ここでは具体的な数字は上げないが、覚えやすくて
他のサービスとかぶらなければどこでもいいと思う) にします。

いっぽう、大学で管理している 10台ほどのサーバ (すべて global IP) は
ぼく以外の人間も使っているため、いきなり 22/tcp でログインできなくすると
文句がきます。そこで、それらのサーバのうち外部からログインできるのは
1台だけにして、そこから各サーバにログインしてもらうようにしました。
つまり、このサーバ以外はすべて 22/tcp をファイヤウォールで閉じて、
内側のネットワークからしかアクセスできないようにします。
ただし、各サーバに直接ログインしたいというパワーユーザ (?) もいるので、
そういう人は標準的でないポートを使ってもらうことにしました。

sshd は複数のポートを同時に listen できるので、sshd_config に

Port 22
Port XXX

のように Port を 2個書きます。これで、標準的でないほうのポートを
外部に対して開いておく。

さて、これでも 1台だけは 22/tcp が開いているので攻撃がくるわけですが、
こいつは徹底して監視してやるしかありません。
うちでは denyhosts (http://denyhosts.sourceforge.net/) というのを
使ってます。cron に仕掛けておくと /var/log/messages をスキャンして、
あやしいホストを /etc/hosts.deny に追加するようなスクリプトです。
実際には hosts.deny を利用するのは好きでないのですが、
とりあえず今のところはこれでやっています。

最初は 1時間に 1回程度のスキャンだったのですが、あまりにも
ウザいため、最近は 2分に 1度にしています。
こうするとアタックの途中で (連中がパスワードを全部試す前に) 
食いとめることができます (ログを見ると途中から refuse されている)。

また、このリストのみなさんはもうご存じでしょうが、
パスワード認証をオフにする (PasswordAuthentication no) と
これらの一連の攻撃はまったく意味をなさなくなります
(うちでは諸般の事情によりパスワード認証を禁止できない)。
それでもログがうざいし攻撃の最中には CPU 負荷が一時的に
やや上昇するので、止めるに越したことはありませんが。

まとめると:

 * 標準でないポート (22/tcp以外) を使う。
 * それがだめな場合は、denyhosts を使う。(他にも類似のスクリプトがいくつかあるようです)
 * パスワード認証を禁止する。

というところです。

ニュースサイトはこういう tips を載せるべきですね。

NISHI Takao <zophos@Dadd9.com> wrote:
> にし@おかやまです。
> 
> なにを今更と言う気がしないでもないですが,最近静かなので
> 
> http://itpro.nikkeibp.co.jp/article/NEWS/20051107/224128/
> 
> 
> うちでも毎日毎日延々10分以上にわたりアタックをかけてきてるのを記録して
> ます。
> 
> みなさんおきをつけあそばせ。