過去問ドリル

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

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

sshd_configの末尾に「Match Group sftponly」のブロックを作った。sftponlyグループのユーザーには、シェルやコマンドの実行をさせずにSFTPによるファイル転送だけを許し、さらに各自の /srv/sftp/ユーザー名 より上のディレクトリは見えないようにしたい。Matchブロックに書く設定の組み合わせとして適切なものはどれか。

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

正解:C

解説

Matchブロックに書いた設定は、条件(ここではsftponlyグループへの所属)に一致した接続にだけ適用されます。ForceCommand internal-sftp は、利用者が要求したシェルやコマンドの代わりに、sshdに組み込まれたSFTPサーバーを強制的に動かすため、SFTP以外の操作はできなくなります。ChrootDirectory は認証後にそのディレクトリへchrootさせる設定で、%u は接続したユーザー名に置き換えられます。chroot先のディレクトリとその上位のすべてのディレクトリは、rootが所有し、グループやその他のユーザーが書き込めない権限である必要があるため、利用者が書き込む場所はその配下にサブディレクトリを作って与えます。internal-sftpはsshdのプロセス内で動くため、chroot先にシェルやライブラリを置く必要はありません。

選択肢ごとの解説

  • A誤り。PermitTTYは端末(pty)の割り当て、X11ForwardingはX11の転送を制御するだけで、端末なしでのコマンド実行は防げず、chrootもされません。
  • B誤り。AllowTcpForwardingはポート転送、PermitTunnelはtun/tapデバイスによるトンネルを制御するもので、シェルの利用やディレクトリの範囲は制限しません。
  • C正しい。ForceCommand internal-sftpでSFTPだけに限定し、ChrootDirectoryで各自のディレクトリより上を見えなくします。
  • D誤り。AuthorizedKeysFileは公開鍵を登録するファイルの場所を変えるだけで、ログイン後に実行できる操作やディレクトリの範囲は制限されません。
LinuCレベル2の問題を演習モードで解く