LinuCレベル2 202試験の例題と解説
主題2.12システムのセキュリティ
2.12.2OpenSSH サーバーの設定と管理
LinuCレベル2 202試験の出題範囲から「2.12.2 OpenSSH サーバーの設定と管理」についての例題を解いてみます。
例題
OpenSSHサーバでrootユーザのパスワード認証ログインを禁止し、鍵認証のみを許可するための設定はどれか。最も適切な選択肢を1-4の中から1つ選択してください。
- PermitRootLogin no
- PermitRootLogin prohibit-password
- PermitRootLogin permit-pubkeyauth
- PermitRootLogin forced-commands-only
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「2. PermitRootLogin prohibit-password」です。
OpenSSHの/etc/ssh/sshd_configは、SSHデーモン(sshd)の動作を制御する主要な設定ファイルであり、認証方式・接続許可ユーザ・ログイン制御など、SSHサーバの挙動を細かく定義します。
各選択肢の解説は次の通りです。
1. PermitRootLogin no
誤りです。
この設定は、rootのログイン自体を完全に禁止します。鍵認証でもログインできなくなるため、今回の要件とは一致しません。
2. PermitRootLogin prohibit-password
正しいです。
prohibit-passwordは、rootユーザがパスワードを使ってログインすることを禁止し、公開鍵認証のみでのログインを許可するものです。最近のOpenSSHでは、パスワードによるrootログインはセキュリティ上のリスクが高いため、公開鍵認証に限定するこちらの設定が推奨されています。今回の「鍵認証のみrootログインを許可したい」という要件に最も適した設定です。
なお、現在は非推奨となっていますが、without-passwordという値も、prohibit-passwordとほぼ同様の設定です。
3. PermitRootLogin permit-pubkeyauth
誤りです。
permit-pubkeyauthという設定値は存在しません。
4. PermitRootLogin permit-pubkeyauth
誤りです。
forced-commands-onlyは、特定の強制コマンドを実行する場合にのみログインを許可する特殊な設定です。通常のログイン用途では使われないため、今回の要件には適していません。
以下設定例は、あるクライアントからの鍵認証SSHログイン時にforced-commands-onlyを使用し、tarコマンドでサーバ内のファイルを圧縮し、バックアップファイルを取得する操作以外を禁止している例です。
linuxユーザのディレクトリ配下に、.ssh/authorized_keysファイルを配置し、そのファイル内に以下設定を書き込みます。
# vi /home/linux/.ssh/authorized_keys
command="/usr/bin/tar -czf /home/linux/backup/backup.tar.gz /backup/",from="10.10.100.100",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding ssh-rsa AAAA..- command=""
クライアントからの接続時に強制的に実行されるコマンドを指定します。 - from="10.10.100.100"
接続元IPアドレスを限定します。 - no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding
擬似端末や各種フォワーディングを無効にし、対話的なシェル操作を完全に禁止します。 - ssh-rsa AAAA…
認証時に使用する公開鍵の文字列を指定します。
クライアント(adminユーザ)から以下のようなコマンド(シンプルなSSH接続でよい)を実行することで、先ほどauthorized_keysで指定したtarコマンドが実行されます。
# ssh -i id_rsa linux@10.10.100.120OpenSSHサーバの設定方法を理解し、rootログインや認証方式の扱いを適切に管理できるようにしておきましょう。安全な接続環境を維持するためにも、sshd_configの主要な項目を正しく設定し、運用に応じたセキュリティ対策を行えるようになることが重要です。
例題作成者
株式会社デージーネット 経営企画室 大河内 龍馬