web-dev-qa-db-ja.com

yum install http-これは安全ですか?

私は、yumを使用してパッケージをインストールすることにあまり詳しくありません。前世ではaptを使っていました。

現在、実行するためのいくつかの指示を見ています

# yum install http://example.com/package.rpm

これは明らかに特定のリポジトリにサブスクライブし、そこからさらにパッケージをダウンロードできます。これは安全ですか?

比較のために、aptパッケージにはgpg署名があることを知っています。つまり、http経由のダウンロードは問題ではありません。 ここで説明 。また、aptを使用してメインリポジトリの外にパッケージをダウンロードする場合、aptが受け入れるgpgキーを手動で追加して、非標準のパッケージに同じ信頼できるソースが含まれるようにすることができます。

上記のコマンドを実行した場合、yumはインストールを開始する前にgpgキーを受け入れるように要求しますか、それとも何かをインストールしますか?

関連がある場合、私の/etc/yum.confファイルのgpgcheck=1セクション内に[main]が含まれています。

10
SauceCode

あなたの質問で説明するビットがあります。

まず、YUMrpmがどのように連携するかを理解することが重要です。

  1. RPMはパッケージ形式であり、個々のRPMパッケージをインストールするrpmという名前の同様のコマンドラインツールがあります。 rpmコマンドラインツールは、dpkgコマンドラインツールに似ていると考えることができます。どちらも、依存関係なしに個別のパッケージをインストールするためです。
  2. yumは、RPMパッケージとその依存関係をインストールする上位レベルのプログラムです。 yumコマンドはapt-getに似ていると考えることができます。どちらもパッケージとそのすべての依存関係をインストールできるためです。
  3. yum installを実行するときは、URLではなくパッケージ名を使用する必要があります。例:yum install package、実行方法と同様:apt-get install package
  4. パッケージURLがある場合はrpm -i https://urlを実行できますが、パッケージの依存関係がインストールされていない場合は、rpm -i(痛みを伴う)を使用して1つずつインストールするか、 yumと構成済みリポジトリを使用します。

ここで、GPGに関する限り、DebianとRPMのパッケージシステムの両方に当てはまる、理解しておくべきことがいくつかありますが、最も重要なことは次のとおりです。

  1. どちらのシステムにも2セットのGPGシグネチャがあります。パッケージ自体のGPGシグネチャとリポジトリのGPGシグネチャです。
  2. DebianパッケージはGPG署名がチェックされておらず、UbuntuとDebianの両方のプロジェクトリポジトリからの公式パッケージはGPG署名されていません。
  3. どちらのシステムも、クリアテキストHTTPで使用した場合、さまざまなGPGリプレイ攻撃に対して脆弱です。絶対に、可能な限り、HTTPS経由でパッケージを100%インストールし、プレーンテキストHTTPをしないでください

これまでのところ、RPMおよびYUM GPG署名:

  1. まず、構成ファイルのgpgkey=https://example/gpg.keyまたはgpgkey=/usr/share/example/gpg.keyを使用して、GPGキーへのパスまたはURLを指定できます。複数が必要な場合は、複数のGPGキーを指定できます。
  2. 次に、2つのオプションがあります:gpgcheck=1およびrepo_gpgcheck=1。最初のオプションはyum installにパッケージ自体のGPG署名を検証させ、2番目のオプションはリポジトリのGPG署名を検証させます。理想的には両方を使用する必要がありますが、多くのリポジトリは両方をサポートするように適切に構成されていません。
  3. yum installを初めて実行すると、yumは、gpgkeyにリストされているGPGキーがまだインポートされていない場合、インポートを試みます。プロンプトが表示され、受け入れるか拒否するかを尋ねられます。
  4. GPG署名を検証するには、システムにpygpgmeパッケージがインストールされている必要があります。 RHELとCentOSの最新バージョンでは、pygpgmeyumの依存関係が自動的にインストールされますが、システムにインストールされていることを確認する必要があります。
  5. apt-transport-httpsに相当するものはありません。yumはそのままHTTPSで話すことができますが、使用しているyumのバージョンでsslverifyオプションがデフォルトで有効になっていることを確認してください。 yumの一部のバージョンではサポートされていません。お使いのバージョンがそうでない場合は、有効に設定する必要があります。 SSL証明書を検証することが重要です。

パッケージとリポジトリの両方にGPG署名があっても、リポジトリは依然としてリプレイ攻撃に対して脆弱です。可能であれば、HTTPS経由でリポジトリにアクセスする必要があります。 1つの攻撃の簡単な説明は、悪意のある攻撃者が特定の時間にリポジトリメタデータと関連するGPG署名のスナップショットを作成し、それを要求するクライアントにそのメタデータと署名を再生して、クライアントが更新されたパッケージを表示できないようにすることです。メタデータは変更されないため、GPG署名は有効になります。その後、攻撃者は、更新されていないソフトウェアの既知のバグに対するエクスプロイトを使用して、マシンを攻撃できます。パッケージマネージャーに対する攻撃の詳細については、 このペーパー を参照してください。

GPGとYUM/rpm および GPGとAPT に関する2つの広範なブログ投稿を作成しました。

私が回答できる質問がある場合は、コメントを残してください。パッケージ管理を正しく行うのは非常に困難です。

11
Joe Damato