SSHでログインできるユーザを制限する方法

文:Vincent Danen(TechRepublic)
翻訳校正:原井彰弘
2008/02/12 16:00

SSHでログインできるユーザを制限することによって、「力ずくの攻撃」に対処しよう。

 OpenSSHスイートはOpenBSDプロジェクトによって開発されているツール群で、実用性の高い有名なプログラムが複数含まれている。しかし、このプロジェクトに含まれているSSH機能は、人気がある上にほぼすべてのOSでサーバとしてもクライアントとしても利用可能なため、格好の攻撃対象となってきた。そのため、それらの攻撃の中でもよくある「力ずくの攻撃」に対処しようと数多くのツールが開発されてきた。

 しかしながら、一般的にそのような攻撃は、単なる嫌がらせやログファイルを浪費させる行為に過ぎないことも多い。まずはログインできるユーザを明示的に設定することで、システムの実際の安全性とは関係なく、そのような「力ずくの攻撃」を99パーセント防ぐことが可能なのだ。

 設定を行うに当たって最初にすべきことは、どうしても必要な場合を除いて絶対にrootがSSHからログインできないようにすることだ。また、どうしても必要な場合には、常にSSHのキーを用いてログインさせるようにし、決してパスワードによるログインを許可しないことである。この設定を行うには、/etc/ssh/sshd_config(システムによっては/etc/sshd_configの場合もある)を編集して以下の行を追加する。

PermitRootLogin without-password

 この設定を行うと、rootのログインは許可されるものの、ログインを行うには適切なSSHのキーが必要とされるようになる。この方法を用いる場合には、キーの一方であるパブリックキーを/root/.ssh/authorized_keysに保存しよう。

 続いて、ログイン可能なユーザを明示的に定義する。再びsshd_configファイルを編集し、以下のような行を追加しよう。

AllowUsers root

AllowUsers joe

 この設定では、SSHを介したログインを認めるユーザとしてrootとjoeのみを指定している。ここで注意して欲しいことは、AllowUsersオプションを一つでも有効にすると、そこに指定されていないユーザは一切ログインできなくなってしまうということだ。つまり、PermitRootLoginが設定されていたとしても、「AllowUsers root」を設定せずに「AllowUsers joe」だけを設定してしまった場合は、正しいキーを用いてもrootはログインできなくなってしまうのである。この設定の一覧を念入りに確認し、システムへアクセスする必要がなくなったユーザが削除されていることを確認して欲しい。

  • コメント(1件)

#1 hchonan  - 2008/02/12 16:40:52

間違っていることを書いているわけではないのですが、記述している内容... 続きを見る
» 不適切なコメントを報告する
記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
  • 新着記事
  • 人気記事
  • 特集
  • ブログ
  • 読者投票
    今、使っているマシンのOSは?

    投票受付期間:2008年6月27日 〜 2008年7月11日
  • » 投票しないで結果だけ見る