過去問ドリル

LinuCレベル2 システムのセキュリティ 問22

システムのセキュリティ/OpenSSH サーバーの設定と管理

sshd_configで、一般ユーザーのパスワード認証はそのまま使えるようにしつつ、rootについては公開鍵認証でのログインだけを許可し、パスワードによるログインは禁止したい。設定として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムのセキュリティ」に対応。実際の試験問題ではありません)

正解:C

解説

PermitRootLoginはrootのSSHログインを制御するパラメータで、yes・prohibit-password・forced-commands-only・noの値を取ります。prohibit-passwordを指定すると、rootについてはパスワード認証とキーボードインタラクティブ認証が無効になり、公開鍵認証などでのログインだけが許可されます。現在のOpenSSHではこれが既定値です(without-passwordは同じ意味の非推奨の別名)。一般ユーザーを含めた全員のパスワード認証を無効にしたい場合は、PasswordAuthentication no を使います。

選択肢ごとの解説

  • A誤り。PermitRootLogin no はrootのログインを認証方式にかかわらずすべて禁止するため、公開鍵認証でもログインできなくなります。
  • B誤り。PasswordAuthentication no は全ユーザーのパスワード認証を無効にするため、一般ユーザーのパスワード認証も使えなくなります。
  • C正しい。prohibit-passwordはrootのパスワード認証を禁止し、公開鍵認証などでのログインだけを許可します。
  • D誤り。forced-commands-onlyは、authorized_keysでcommandオプションを指定した鍵に限ってrootの公開鍵認証を許す設定で、通常の対話ログインはできません。
LinuCレベル2の問題を演習モードで解く