2.3. メッセージブローカーのインストール
完全な Red Hat OpenStack Platform 環境をデプロイするには、稼働中のメッセージブローカーを以下の OpenStack コンポーネントに設定する必要があります。
- Block Storage サービス
- Compute サービス
- OpenStack Networking
- Orchestration サービス
- Image サービス
- Telemetry サービス
2.3.1. RabbitMQ メッセージブローカーパッケージのインストール リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RabbitMQ はデフォルト (かつ推奨) のメッセージブローカーです。RabbitMQ メッセージングサービスは rabbitmq-server パッケージにより提供されます。
RabbitMQ をインストールします。
yum install rabbitmq-server
# yum install rabbitmq-server
2.3.2. メッセージブローカーのトラフィックを許可するためのファイアウォール設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
メッセージブローカーをインストールおよび設定する前には、使用するポートで受信接続を許可しておく必要があります。メッセージブローカー (AMQP) のトラフィック用のデフォルトポートは
5672
です。以下の手順で記載するステップはすべて、メッセージングサービスをホストするサーバーに root
ユーザーとしてログインして実行する必要があります。
手順2.8 メッセージブローカーのトラフィックのファイアウォール設定
- テキストエディターで
/etc/sysconfig/iptables
ファイルを開きます。 - このファイルに、ポート
5672
で 受信接続を許可する INPUT ルールを追加します。新規ルールは、トラフィックを REJECT する INPUT ルールよりも前に記載する必要があります。-A INPUT -p tcp -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5672 -j ACCEPT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sysconfig/iptables
ファイルへの変更を保存します。iptables
サービスを再起動して、ファイアウォールの変更を有効にします。systemctl restart iptables.service
# systemctl restart iptables.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.3. RabbitMQ メッセージブローカーの起動と設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
手順2.9 RabbitMQ メッセージブローカーを OpenStack で使用するための起動および設定手順
rabbitmq-server
サービスを立ち上げ、ブート時に起動するように設定します。systemctl start rabbitmq-server.service systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service # systemctl enable rabbitmq-server.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - rabbitmq-server パッケージのインストール時には、RabbitMQ サービスの
guest
ユーザーは、デフォルトのguest
パスワードとともに自動的に作成されます。Red Hat では、特に IPv6 が利用可能な場合には、このデフォルトパスワードを変更することを強くお勧めします。IPv6 では、RabbitMQ はネットワーク外部からアクセスが可能となる場合があります。rabbitmqctl change_password guest NEW_RABBITMQ_PASS
# rabbitmqctl change_password guest NEW_RABBITMQ_PASS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NEW_RABBITMQ_PASS は、よりセキュアなパスワードに置き換えます。 - Block Storage サービス、Compute サービス、OpenStack Networking、Orchestration サービス、Image サービス、Telemetry サービス用の RabbitMQ ユーザーアカウントを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CINDER_PASS、NOVA_PASS、NEUTRON_PASS、HEAT_PASS、GLANCE_PASS、CEILOMETER_PASS は、各サービスのセキュアなパスワードに置き換えてください。 - これらの RabbitMQ ユーザーに、全リソースに対する読み取り/書き込みのパーミッションを付与します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.4. RabbitMQ メッセージブローカーでの SSL の有効化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RabbitMQ メッセージブローカーには SSL 機能が組み込まれており、トラフィックのセキュリティー保護に使用することができます。SSL 通信に必要な証明書を作成して、
/etc/rabbitmq/rabbitmq.config
設定ファイルで RabbitMQ に SSL を設定します。
手順2.10 RabbitMQ メッセージブローカーでの SSL の有効化
- 必要な証明書を保管するためのディレクトリーを作成します。
mkdir /etc/pki/rabbitmq
# mkdir /etc/pki/rabbitmq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 証明書用のセキュアなパスワードを選択して、
/etc/pki/rabbitmq
ディレクトリー内にファイル形式で保存します。echo SSL_RABBITMQ_PW > /etc/pki/rabbitmq/certpw
# echo SSL_RABBITMQ_PW > /etc/pki/rabbitmq/certpw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSL_RABBITMQ_PW は、証明書のパスワードに置き換えます。このパスワードは、後で必要な証明書をさらにセキュリティー保護する際に使用します。 - 証明書のディレクトリーとパスワードファイルのパーミッションを設定します。
chmod 700 /etc/pki/rabbitmq chmod 600 /etc/pki/rabbitmq/certpw
# chmod 700 /etc/pki/rabbitmq # chmod 600 /etc/pki/rabbitmq/certpw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/pki/rabbitmq/certpw
ファイル内のパスワードを使用して/etc/pki/rabbitmq
ディレクトリーに証明書データベースファイル (*.db
) を作成します。certutil -N -d /etc/pki/rabbitmq -f /etc/pki/rabbitmq/certpw
# certutil -N -d /etc/pki/rabbitmq -f /etc/pki/rabbitmq/certpw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 実稼働環境では、信頼のできるサードパーティーの証明局 (CA) を使用して証明書に署名することを推奨します。サードパーティーの CA には、証明書署名要求 (CSR) が必要となります。
certutil -R -d /etc/pki/rabbitmq -s "CN=RABBITMQ_HOST" \ -a -f /etc/pki/rabbitmq/certpw > RABBITMQ_HOST.csr
# certutil -R -d /etc/pki/rabbitmq -s "CN=RABBITMQ_HOST" \ -a -f /etc/pki/rabbitmq/certpw > RABBITMQ_HOST.csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RABBITMQ_HOST は、RabbitMQ メッセージブローカーをホストするサーバーの IP アドレスまたはホスト名に置き換えます。このコマンドにより、RABBITMQ_HOST.csr
という名前の CSR とキーファイル (keyfile.key) が生成されます。このキーファイルは、後で RabbitMQ メッセージブローカーが SSL を使用するように設定する際に使用します。注記
一部の CA には、"CN=RABBITMQ_HOST"
以外の追加の値が必要な場合があります。 RABBITMQ_HOST.csr
をサードパーティーの CA に提供して署名を受けます。CA は署名済みの証明書 (server.crt) と CA ファイル (ca.crt) を提供します。これらのファイルを証明書のデータベースに追加します。certutil -A -d /etc/pki/rabbitmq -n RABBITMQ_HOST -f /etc/pki/rabbitmq/certpw \ -t u,u,u -a -i /path/to/server.crt certutil -A -d /etc/pki/rabbitmq -n "Your CA certificate" \ -f /etc/pki/rabbitmq/certpw -t CT,C,C -a -i /path/to/ca.crt
# certutil -A -d /etc/pki/rabbitmq -n RABBITMQ_HOST -f /etc/pki/rabbitmq/certpw \ -t u,u,u -a -i /path/to/server.crt # certutil -A -d /etc/pki/rabbitmq -n "Your CA certificate" \ -f /etc/pki/rabbitmq/certpw -t CT,C,C -a -i /path/to/ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - RabbitMQ メッセージブローカーがセキュアな通信に証明書ファイルを使用するように設定します。テキストエディターで
/etc/rabbitmq/rabbitmq.config
の設定ファイルを開き、以下のようにrabbit
のセクションを編集します。- 以下の行を探します。
%% {ssl_listeners, [5671]},
%% {ssl_listeners, [5671]},
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パーセントの記号を削除して、設定をアンコメントします。{ssl_listeners, [5671]},
{ssl_listeners, [5671]},
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 次に以下の行まで、下方向にスクロールします。
%% {ssl_options, [{cacertfile, "/path/to/testca/cacert.pem"},
%% {ssl_options, [{cacertfile, "/path/to/testca/cacert.pem"},
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この行と、その次のssl_options
で構成される数行を、以下の内容に置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - /path/to/ca.crt は、CA 証明書への絶対パスに置き換えます。
- /path/to/server.crt は、署名済みの証明書への絶対パスに置き換えます。
- /path/to/keyfile.key はキーファイルへの絶対パスに置き換えます。
- 特定の TLS 暗号化バージョンのみのサポートを含めるように
rabbitmq.config
を編集して、SSLv3 を無効化します。{rabbit, [ {ssl_options, [{versions, ['tlsv1.2','tlsv1.1',tlsv1]}]}, ]}
{rabbit, [ {ssl_options, [{versions, ['tlsv1.2','tlsv1.1',tlsv1]}]}, ]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - RabbitMQ サービスを再起動し、変更を有効にします。
systemctl restart rabbitmq-server.service
# systemctl restart rabbitmq-server.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.5. クライアント用 SSL 証明書のエクスポート リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
サーバーで SSL を有効にする場合には、セキュアな接続を確立するために、クライアントにその SSL 証明書のコピーが必要です。
以下のコマンド例は、メッセージブローカーの証明書データベースからのクライアント用証明書と秘密鍵をエクスポートするのに使用することができます。
pk12util -o <p12exportfile> -n <certname> -d <certdir> -w <p12filepwfile> openssl pkcs12 -in <p12exportfile> -out <clcertname> -nodes -clcerts -passin pass:<p12pw>
# pk12util -o <p12exportfile> -n <certname> -d <certdir> -w <p12filepwfile>
# openssl pkcs12 -in <p12exportfile> -out <clcertname> -nodes -clcerts -passin pass:<p12pw>
SSL コマンドとオプションに関する詳細情報は、OpenSSL のマニュアル を参照してください。または、Red Hat Enterprise Linux では、
openssl
のマニュアルページを参照してください。