環境変数をsshシェルに渡すためのPermitUserEnvironment
とファイル~/.ssh/environment
の使用に関する投稿をかなり読みました。公式の sshd docs と他のいくつかのリソースは、これを行うことのいくつかのセキュリティリスクを暗示しています。
環境処理を有効にすると、ユーザーは、LD_PRELOADなどのメカニズムを使用して、一部の構成でアクセス制限を回避できる場合があります。
PermitUserEnvironment
をアクティブ化することで発生する可能性のあるセキュリティの問題は何ですか?これらの環境変数にDB接続の詳細を保持しようとしていましたが、これはお勧めですか?
まず最初に、ユーザーアクセス制限で特別なことをしようとしない場合、つまり、対話型のシェルアクセスを提供する場合は、おそらくゼロ追加使用を許可することによるセキュリティリスクがあります。 .ssh/environment
ファイル。ユーザーがそのファイルを使用して実行できることは何であるため、シェルでインタラクティブに実行することもできます。
環境処理を有効にすると、ユーザーは、LD_PRELOADなどのメカニズムを使用して、一部の構成でアクセス制限をバイパスできる場合があります。
SSH強制コマンドを使用して、sshを介して実行できる操作を制限している場合(たとえば、sftp
またはscp
のみを使用するように制限している場合)、環境変数を設定できるようにするなので LD_PRELOAD
(場合によってはPATH
)でも、基本的なライブラリ呼び出しを独自のコードに置き換えることで、制限をハイジャックすることができます。一方、.ssh/environment
ユーザーに代わってユーザーがそれを管理できない場合、リスクは比較的小さくなります。
特定のユースケースについての詳細を知らなければ、明確な答えを提供することは困難です。