sshのPermitUserEnvironmentのセキュリティリスク


11

env変数をsshシェルに渡すためのの使用PermitUserEnvironmentとファイルに関するかなりの数の記事を読みました~/.ssh/environment。公式のsshdドキュメントと他のいくつかのリソースは、これを行うことによるセキュリティ上のリスクを示唆しています。

環境処理を有効にすると、ユーザーはLD_PRELOADなどのメカニズムを使用して、一部の構成でアクセス制限をバイパスできます。

アクティベーションのセキュリティ上の問題はPermitUserEnvironment何ですか?これらの環境変数でDB接続の詳細を保持しようとしていましたが、これはお勧めですか?


私は、sshd_configのmanページにいくつかの単語を追加するためにそれらを求めて、この問題を明確に、OpenSSHのプロジェクトでバグレポートを提出:bugzilla.mindrot.org/show_bug.cgi?id=2317
フローリンアンドレイ

回答:


16

まず第一に、ユーザーのアクセス制限に凝ったことをしようとしていない場合、つまり、対話型のシェルアクセスを提供している場合、ファイルの使用を許可することによる追加のセキュリティリスクはおそらくゼロ.ssh/environmentです。ユーザーはそのファイルを使用して、シェルで対話的に行うこともできます。

環境処理を有効にすると、ユーザーはLD_PRELOADなどのメカニズムを使用して、一部の構成でアクセス制限をバイパスできます。

SSH強制コマンドを使用して人々がsshでできることを制限している場合(たとえば、sftpまたはのみを使用するように制限している場合scp)、誰かが環境変数を設定できるようにするLD_PRELOAD(または場合によってはPATH)基本的なライブラリ呼び出しを独自のコードに置き換えることによる制限。一方、.ssh/environmentユーザーに代わって作成していて、それ以外の方法で管理できない場合、リスクは比較的小さくなります。

特定のユースケースについて詳しく知ることなく、明確な答えを提供することは困難です。


私は、RSAキーを介して2つまたは3つの信頼できる当事者(自社内の開発者)からのサーバーへのアクセスのみを許可しています。だから、あなたはそれがOKに聞こえる言っているから
ロブ・スクワイアーズ

あなたの答えから、私はすべてのsshアカウントが完全なbashアクセスを提供している場合(sudoなし)、このオプションを有効にすることのセキュリティへの影響について眠りを失うべきではないと思います。正しい?
フローリンアンドレイ14年

そのとおりです。完全なbashアクセスを提供している場合、ユーザーは必要な環境変数をすでに設定できます。
ラースク14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.