最近では明らかに帯域が太いホストから大量に来てますね。
いまのところ防御策として確実にきくのは、標準的でないポート
(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分以上にわたりアタックをかけてきてるのを記録して
> ます。
>
> みなさんおきをつけあそばせ。