2009年3月5日木曜日

FreeBSD:やっとsshdでパスワードによるログインを禁止できた

今まで数年FreeBSDを運用してきたが,ひとつだけ解決できていない問題があった。それはsshdへのパスワードによるログインの禁止。よくネットで検索すると,/etc/ssh/sshd_configで
PasswordAuthentication no
として,
/etc/rc.d/sshd restart
とすればよい,と書いてあるが,これがうまくいかない。何故かパスワードでログインできてしまう,ということが多々あった。jail環境下でweb siteをあげたりしているので,どうしてもパスワードログインができないようにしかったのだが,それがやっとできた。どうしたかというと,/etc/ssh/sshd_configで
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
とした。特に2行目のChallenge...が必要だった。これがないとどうもパスワードでのログインに挑戦させてくれてしまうようだった。これを「no」にしたとたん,パスワードによるログインができなくなってしまった。これってどのリリースからあるんやろ?以前の場合はこれを気にしなくてもパスワードによるログインを禁止できたのかなぁ?このChallenge...はデフォルトでyesになっている。それやったら折角「PasswordAuthentication no」ってしてもあかんやん。sshd_configのコメントにも何か書いておいてほしいなぁ。今までの/var/log/auth.logやdaily_status_security.logなんかを見ると,辞書攻撃のオンパレードになってる。これで一気に辞書攻撃が減るかなぁ???
 ちなみにパスワード認証を禁止するためには他の認証方法が必要。ワンタイムパスワードやdsa認証,rsa認証など多数あるけど,とりあえずはdsa認証ぐらい使えるようにしておきましょう。
======================================================================
(追記)
やっぱり辞書攻撃は減らなかった。辞書攻撃が減らないのは考えてみたら当然。辞書攻撃はいろんなuser名でログインを試みる攻撃なので,たいていがInvalid userになって認証まですすめない。一方パスワード認証を禁止した効果は認証しようとして初めて現れる。そりゃ辞書攻撃は減らないわなぁ。仕方ないから次の投稿「辞書攻撃」に挑戦してみた。

0 件のコメント: