第9章 ネットワーク接続のセキュリティー保護

ルーターの接続を認証および暗号化することで、安全な方法で AMQ Interconnect をクライアント、ルーター、ブローカーと通信するように設定できます。AMQ Interconnect は以下のセキュリティープロトコルをサポートします。

  • 証明書ベースの暗号化および相互認証向けの SSL/TLS
  • メカニズムと認証用の SASL

SSL/TLS、SASL (または両方の組み合わせ) を設定して、以下のいずれかを保護します。

9.1. ルーター間の接続のセキュリティー保護

中間ルーター間の接続は、SSL/TLS 暗号化と認証 (相互認証とも呼ばれる) を使用してセキュリティーを確保し、承認されていないルーター (またはルーターとして準備しているエンドポイント) がネットワークに加わらないようにする必要があります。

SSL/TLS 相互認証には、各相互オーリオールーター用に生成された個別の証明書を使用して X.509 認証局 (CA) が必要です。inter-router 間の接続は暗号化され、CA は各受信ルーター間接続を認証します。

この手順では、SSL/TLS 相互認証を使用して、2 つの相互オータールーター間の接続のセキュリティーを保護する方法を説明します。

前提条件

  • インテリアルーターには X.509 認証局が存在する必要があります。
  • セキュリティー証明書は各ルーター用に生成され、CA によって署名される必要があります。
  • inter-router 接続はルーター間で存在している必要があります。

    詳細は、「ルーターの接続」 を参照してください。

手順

  1. 接続を確立するルーターで、以下を実行します。

    1. /etc/qpid-dispatch/qdrouterd.conf を開きます。
    2. ルーターに、ルーター間のネットワークの秘密鍵と証明書を定義する sslProfile が含まれていない場合、これを追加します。

      この sslProfile には、ルーターがピアとの認証に使用する秘密鍵の場所と証明書が含まれます。

      sslProfile {
          name: inter-router-tls
          certFile: /etc/pki/tls/certs/tls.crt
          caCertFile: /etc/pki/tls/certs/ca.crt
          privateKeyFile: /etc/pki/tls/private/tls.key
          password: file:/etc/pki/tls/private/password.txt
          ...
      }
      name
      この sslProfile の参照に使用できる一意の名前。
      certFile
      このルーターのパブリック証明書を含むファイルへの絶対パス。
      caCertFile
      ルーターの証明書の署名に使用された CA 証明書への絶対パス。
      privateKeyFile

      このルーターのパブリック証明書に対する秘密鍵が含まれるファイルへの絶対パス。

      注記

      qdrouterd または root ユーザーが秘密鍵にアクセスできることを確認します。以下は例になります。

      chmod 0600 /etc/pki/tls/private/tls.key
      chown qdrouterd /etc/pki/tls/private/tls.key
      パスワード

      証明書キーのロックを解除するパスワード。証明書キーにパスワードがない場合は、指定する必要はありません。異なる接頭辞を使用することで、セキュリティー要件に応じてパスワードを複数回指定できます。

      • パスワードを含むファイルへの絶対パスを指定します。これは、パスワードを含むファイルにパーミッションを設定することができるため、最も安全なオプションです。以下は例になります。

        password: file:/etc/qpid-dispatch-certs/inter-router/password.txt
      • パスワードを保存する環境変数を指定します。他のプロセスの環境は特定のプラットフォームで表示されるため、このオプションの使用には注意が必要です。以下は例になります。

        password: env:CERT_PASSWORD
      • パスワードをクリアテキストで指定します。このオプションは安全ではないため、セキュリティーが懸念されていない場合にのみ使用してください。以下は例になります。

        password: pass:mycertpassword
    3. 作成した sslProfile を使用するように、このコネクションの相互ルーター connector を設定します。

      connector {
          host: 192.0.2.1
          port: 5001
          role: inter-router
          sslProfile: inter-router-tls
          ...
      }
      sslProfile
      SSL/TLS プライベートキーおよびルーター間ネットワークの証明書を定義する sslProfile の名前。
  2. 接続をリッスンするルーターで、以下を実行します。

    1. /etc/qpid-dispatch/qdrouterd.conf を開きます。
    2. ルーターに、ルーター間のネットワークの秘密鍵と証明書を定義する sslProfile が含まれていない場合、これを追加します。
    3. SSL/TLS を使用して接続をセキュアにするには、この接続にルーター間 listener を設定します。

      listener {
          host: 0.0.0.0
          port: 5001
          role: inter-router
          sslProfile: inter_router_tls
          authenticatePeer: yes
          requireSsl: yes
          saslMechanisms: EXTERNAL
          ...
      }
      sslProfile
      SSL/TLS プライベートキーおよびルーター間ネットワークの証明書を定義する sslProfile の名前。
      authenticatePeer
      yes を指定して、ピアインオリオーターの ID を認証します。
      requireSsl
      yes を指定して、SSL/TLS で接続を暗号化します。
      saslMechanisms
      X.509 クライアント証明書認証を有効にするために EXTERNAL を指定します。