木下です。
いつもお世話になっております。

> > ちょっと考えたのが、同一のIPアドレスから一定回数のチャレンジが失敗した
> > らそのIPアドレスをbanするというものです。

昨年の12月の話題ですが、私もsshへのブルートフォースアッタクによる
logファイルの無意味な巨大化に悩まされていましたので、試してみました。

紹介されていた、pf、ipfw、switchを利用してアタック元アドレスを接続
拒否リストに登録するのがベストな対策に思えたのですが、私はipfilter
を利用していてなじみが薄かったりとか、公開鍵認証しか認めていない関
係で強力な対策を必要としていなかったので、inetdによる対策を試みてみ
ました。

> inetd 経由にすれば似たようなものは実現できます。
> たとえば、SSH なら、
> 
> ssh     stream  tcp     nowait/0/3/2    root .....
> 
>  (中略:詳しくは 2005-12-09 [FreeBSD-users-jp 88562] を参照して下さい)
> 
> 上記の設定の場合は inetd から生成される ssh のプロセス数は無制限で、同一
> IPからの一分以内のコネクションリクエスト数は3回まで、さらに同一IPから接
> 続が確立して生成された ssh プロセス数は2つまで。ということになります。
> 
> 1分以内に接続に3回失敗すると、そのIPからのコネクションリクエストは 
> refuse されます。が、1分経過するとまた許可されます。
> また許可されるようになるってのは要求を満たしていないですね…。ここまで
> 書いてから気づいた。^^;

結論から言うとこの設定で私は十分でした。

refuseしている間の接続要求もカウントしつづけるようなので、連続して
認証が試みられている間は、refuse期間が延長されつづけます。
通常(?)のアタックは連続して認証を試みますので、1度refuseされるとア
タックが終るまでrefuseされたままになるようです。
私の環境では、時間を置いて繰り返し同じアドレスからアタックされるこ
とは稀ですから、拒否リストに登録する他の方法とほぼ同様の効果が得ら
れています。

/var/log/messageに
inetd: ssh from xxx.xxx.xxx.xxx exceeded counts/min
と記録されるので、アタック記録の確認も楽になりました。
(どんなuser名でアタックしてきたかを見る楽しみはなくなりましたが)

最近の懸案が1行の設定で解決できたので御礼を兼ねて報告させていただ
きました(/etc/rc.confも入れれば2行ですが)。
より巧妙なアタックをされるまでは、これでしのげそうです。

感謝!

メールによる返信