検索

9.2. 着信クライアント接続のセキュリティー保護

download PDF

SSL/TLS および SASL を使用して、クライアントトラフィックの適切なセキュリティーレベルをルーターネットワークに提供することができます。以下の方法を使用して、AMQP クライアント、外部コンテナー、または edge ルーターから受信接続をセキュリティー保護することができます。

9.2.1. SSL/TLS 暗号化の有効化

SSL/TLS を使用して、クライアントから着信接続を暗号化できます。

前提条件

  • X.509 認証局 (CA) がクライアント接続に存在している必要があります。
  • セキュリティー証明書は CA によって生成および署名されている必要があります。

手順

  1. /etc/qpid-dispatch/qdrouterd.conf 設定ファイルを開きます。
  2. ルーターに、クライアント接続の秘密鍵と証明書を定義する sslProfile が含まれていない場合は、これを追加します。

    この sslProfile には、ルーターがクライアントからの接続の暗号化に使用する秘密鍵と証明書の場所が含まれます。

    sslProfile {
        name: service-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. SSL/TLS を使用して接続を暗号化するように、この接続が listener を設定します。

    この例では、normal リスナーがクライアントからの接続を暗号化するように設定します。

    listener {
        host: 0.0.0.0
        port: 5672
        role: normal
        sslProfile: inter_router_tls
        requireSsl: yes
        ...
    }
    sslProfile
    SSL/TLS プライベートキーおよびクライアント接続の証明書を定義する sslProfile の名前。
    requireSsl
    true を指定して SSL/TLS で接続を暗号化します。

9.2.2. SSL/TLS クライアント認証の有効化

SSL/TLS 暗号化の他に、SSL/TLS を使用してクライアントから受信接続を認証することもできます。この方法では、クライアントが独自の X.509 証明書をルーターに提示する必要があります。ルーターを使用してクライアントのアイデンティティーを検証します。

前提条件

  • SSL/TLS 暗号化を設定する必要があります。

    詳細は、「SSL/TLS 暗号化の有効化」 を参照してください。

  • クライアントには、ルーターに対する認証に使用できる X.509 証明書が必要です。

手順

  1. /etc/qpid-dispatch/qdrouterd.conf 設定ファイルを開きます。
  2. SSL/TLS を使用してクライアントを認証するように、この接続の listener を設定します。

    この例では、クライアントからの受信接続を認証するために、normal リスナーに SSL/TLS 認証を追加します。クライアントは、独自の X.509 証明書を提示してルーターにだけ接続でき、ルーターを使用してクライアントのアイデンティティーを検証するために使用されます。

    listener {
        host: 0.0.0.0
        port: 5672
        role: normal
        sslProfile: service-tls
        requireSsl: yes
        authenticatePeer: yes
        saslMechanisms: EXTERNAL
        ...
    }
    authenticatePeer
    クライアントのアイデンティティーを認証するには yes を指定します。
    saslMechanisms
    X.509 クライアント証明書認証を有効にするために EXTERNAL を指定します。

9.2.3. ユーザー名とパスワード認証の有効化

SASL PLAIN メカニズムを使用して、ユーザー名とパスワードのセットに対して受信クライアント接続を認証できます。このメソッドは独自に使用することも、SSL/TLS 暗号化と組み合わせることもできます。

前提条件

  • cyrus-sasl-plain プラグインがインストールされている。

    Cyrus SASL は、プラグインを使用して特定の SASL メカニズムをサポートします。特定の SASL メカニズムを使用する前に、関連するプラグインをインストールする必要があります。

    Red Hat Enterprise Linux の Cyrus SASL プラグインのリストを表示するには、yum search cyrus-sasl コマンドを使用します。Cyrus SASL プラグインをインストールするには、yum install <plugin> コマンドを使用します。

手順

  1. 必要に応じて、ユーザー名とパスワードを SASL データベースに追加します。

    この例では、新しいユーザー (user1@example.com) を SASL データベース (qdrouterd.sasldb) に追加します。

    $ sudo saslpasswd2 -c -f qdrouterd.sasldb -u example.com user1
    注記

    完全なユーザー名は、入力したユーザー名 (<user-name>@<domain-name>) です。ユーザーをデータベースに追加する場合、ドメイン名を指定する必要はありませんが、これを指定しないと、デフォルトのドメインが自動的に追加されます (ツールが実行されているマシンのホスト名)。

  2. qdrouterd プロセスが SASL データベースを読み取りできることを確認します。

    qdrouterd プロセスが非特権ユーザーとして実行される場合は、ルーターが読み取れるように SASL データベースのパーミッションまたは所有権を調整する必要がある場合があります。

    この例では、qdrouterd ユーザーが SASL データベースの所有者になります。

    $ sudo chown qdrouterd /var/lib/qdrouterd/qdrouterd.sasldb
  3. /etc/sasl2/qdrouterd.conf 設定ファイルを開きます。

    以下の例では、/etc/sasl2/qdrouterd.conf 設定ファイルを示しています。

    pwcheck_method: auxprop
    auxprop_plugin: sasldb
    sasldb_path: qdrouterd.sasldb
    mech_list: ANONYMOUS DIGEST-MD5 EXTERNAL PLAIN GSSAPI
  4. mech_list 属性に PLAIN メカニズムが含まれることを確認します。
  5. /etc/qpid-dispatch/qdrouterd.conf 設定ファイルを開きます。
  6. router セクションで、SASL 設定ファイルへのパスを指定します。

    router {
        mode: interior
        id: Router.A
        saslConfigDir: /etc/sasl2/
    }
    saslConfigDir
    ユーザー名とパスワードを格納する SASL データベースへのパスが含まれる SASL 設定ファイルへのパス。
  7. SASL PLAIN を使用してクライアントを認証するように、この接続の listener を設定します。

    この例では、listener に基本的なユーザー名とパスワード認証を設定します。この場合、SSL/TLS 暗号化は使用されません。

    listener {
        host: 0.0.0.0
        port: 5672
        authenticatePeer: yes
        saslMechanisms: PLAIN
        }

9.2.4. Kerberos との統合

環境に Kerberos を実装している場合、GSSAPI SASL メカニズムとともに使用して受信接続を認証できます。

前提条件

  • Kerberos インフラストラクチャーはお使いの環境にデプロイする必要があります。
  • Kerberos 環境では、amqp/<hostname>@<realm> のサービスプリンシパルを設定する必要があります。

    これは、AMQ Interconnect が使用するサービスプリンシパルです。

  • cyrus-sasl-gssapi パッケージが各クライアントおよびルーターホストマシンにインストールされている。

手順

  1. ルーターのホストマシンで、/etc/sasl2/qdrouterd.conf 設定ファイルを開きます。

    以下の例では、/etc/sasl2/qdrouterd.conf 設定ファイルを示しています。

    pwcheck_method: auxprop
    auxprop_plugin: sasldb
    sasldb_path: qdrouterd.sasldb
    keytab: /etc/krb5.keytab
    mech_list: ANONYMOUS DIGEST-MD5 EXTERNAL PLAIN GSSAPI
  2. 以下を確認します。

    • mech_list 属性には GSSAPI メカニズムが含まれます。
    • keytab 属性は、キータブファイルの場所を参照します。
  3. /etc/qpid-dispatch/qdrouterd.conf 設定ファイルを開きます。
  4. router セクションで、SASL 設定ファイルへのパスを指定します。

    router {
        mode: interior
        id: Router.A
        saslConfigDir: /etc/sasl2/
    }
    saslConfigDir
    SASL データベースへのパスが含まれる SASL 設定ファイルへのパス。
  5. 認証に Kerberos を使用する各着信接続に対して、listenerGSSAPI メカニズムを使用するように設定します。

    listener {
        host: 0.0.0.0
        port: 5672
        authenticatePeer: yes
        saslMechanisms: GSSAPI
        }
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.