2.4. リモート JMX SSL の有効化
概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat JBoss Fuse は、MBean を使用した Karaf コンテナーのリモート監視および管理を可能にする JMX ポートを提供します。ただし、デフォルトでは、JMX 接続を介して送信するクレデンシャルは暗号化されておらず、スヌーピングに対して脆弱です。JMX 接続を暗号化し、パスワードスヌーピングから保護するには、SSL で JMX を設定して JMX 通信を保護する必要があります。
SSL で JMX を設定するには、次の手順を実行します。
SSL アクセスで JMX を設定した後、接続をテストする必要があります。
SSL/TLS セキュリティーを有効にする予定がある場合は、Poodle 脆弱性 (CVE-2014-3566) に対して保護するために、SSLv3 プロトコルを明示的に無効にする必要があります。詳細は、Disabling SSLv3 in JBoss Fuse 6.x and JBoss A-MQ 6.x を参照してください。
Red Hat JBoss Fuse の実行中に SSL で JMX を設定した場合は、再起動する必要があります。
前提条件 リンクのコピーリンクがクリップボードにコピーされました!
以下を実行していない場合、実行する必要があります。
-
JAVA_HOME環境変数を設定します。 adminロールでの Karaf ユーザーの設定InstallDir/etc/users.propertiesファイルを編集し、以下のエントリーを 1 行に追加します。admin=YourPassword,admin
admin=YourPassword,adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、ユーザー名
admin、パスワードYourPassword、およびadminロールを持つ新規ユーザーが作成されます。
jbossweb.keystore ファイルを作成します リンクのコピーリンクがクリップボードにコピーされました!
コマンドプロンプトを開き、現在の場所が Karaf インストールの etc/ ディレクトリーであることを確認します。
cd etc
cd etc
コマンドラインで、アプリケーションに適した -dname 値 (識別名) を使用して、以下のコマンドを入力します。
$JAVA_HOME/bin/keytool -genkey -v -alias jbossalias -keyalg RSA -keysize 1024 -keystore jbossweb.keystore -validity 3650 -keypass JbossPassword -storepass JbossPassword -dname "CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, S=Mass, C=USA"
$JAVA_HOME/bin/keytool -genkey -v -alias jbossalias -keyalg RSA -keysize 1024 -keystore jbossweb.keystore -validity 3650 -keypass JbossPassword -storepass JbossPassword -dname "CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, S=Mass, C=USA"
1 つのコマンドラインでコマンド全体を入力します。
このコマンドは、次のような出力を返します。
InstallDir/etc にファイル jbossweb.keystore が含まれるかどうかを確認します。
keystore.xml ファイルを作成してデプロイします リンクのコピーリンクがクリップボードにコピーされました!
-
好みの XML エディターを使用して、<
installDir> /jboss-fuse-7.8.0.fuse-780038-redhat-00001/etcディレクトリーにkeystore.xmlファイルを作成して保存します。 このテキストをファイルに含めます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow keystore.xmlファイルをInstallDir/deployディレクトリー (ホットデプロイディレクトリー) にコピーして、Karaf コンテナーにデプロイします。注記その後、
keystore.xmlファイルをアンデプロイする必要がある場合は、Karaf コンテナーの実行中にdeploy/ディレクトリーからkeystore.xmlファイルを削除して実行できます。
必要なプロパティーを org.apache.karaf.management.cfg に追加します リンクのコピーリンクがクリップボードにコピーされました!
InstallDir/etc/org.apache.karaf.management.cfg ファイルを編集して、ファイルの最後に次のプロパティーを含めます。
secured = true secureProtocol = TLSv1 keyAlias = jbossalias keyStore = sample_keystore trustStore = sample_keystore
secured = true
secureProtocol = TLSv1
keyAlias = jbossalias
keyStore = sample_keystore
trustStore = sample_keystore
Poodle 脆弱性 (CVE-2014-3566) から保護するには、secureProtocol を TLSv1 に設定する必要があります。
必要に応じて、enabledCipherSuites プロパティーを設定して、JMX TLS 接続に使用する特定の暗号スイートをリストできます。このプロパティーを設定すると、デフォルトの暗号スイートがオーバーライドされます。
Karaf コンテナーを再起動します。 リンクのコピーリンクがクリップボードにコピーされました!
新しい JMX SSL/TLS 設定を有効にするには、Karaf コンテナーを再起動する必要があります。
セキュアな JMX 接続のテスト リンクのコピーリンクがクリップボードにコピーされました!
コマンドプロンプトを開き、現在の場所が Fuse インストールの
etc/ディレクトリーであることを確認します。cd <installDir>/jboss-fuse-7.8.0.fuse-780038-redhat-00001/etc
cd <installDir>/jboss-fuse-7.8.0.fuse-780038-redhat-00001/etcCopy to Clipboard Copied! Toggle word wrap Toggle overflow ターミナルを開き、次のコマンドを入力して JConsole を起動します。
jconsole -J-Djavax.net.debug=ssl -J-Djavax.net.ssl.trustStore=jbossweb.keystore -J-Djavax.net.ssl.trustStoreType=JKS -J-Djavax.net.ssl.trustStorePassword=JbossPassword
jconsole -J-Djavax.net.debug=ssl -J-Djavax.net.ssl.trustStore=jbossweb.keystore -J-Djavax.net.ssl.trustStoreType=JKS -J-Djavax.net.ssl.trustStorePassword=JbossPasswordCopy to Clipboard Copied! Toggle word wrap Toggle overflow -J-Djavax.net.ssl.trustStoreオプションは、jbossweb.keystoreファイルの場所を指定します (この場所を正しく指定しないと、SSL/TLS ハンドシェイクに失敗します)。-J-Djavax.net.debug=ssl設定により SSL/TLS ハンドシェイクメッセージのロギングが有効になるため、SSL/TLS が正常に有効になっていることを確認できます。重要同じコマンドラインでコマンド全体を入力します。
-
JConsole が開いたら、
New ConnectionウィザードでRemote Processオプションを選択します。 Remote Processオプションで、service:jmx:<protocol>:<sap>接続 URL に、次の値を入力します。service:jmx:rmi://localhost:44444/jndi/rmi://localhost:1099/karaf-root
service:jmx:rmi://localhost:44444/jndi/rmi://localhost:1099/karaf-rootCopy to Clipboard Copied! Toggle word wrap Toggle overflow (
etc/users.propertiesファイルに設定されているように)UsernameおよびPasswordフィールドに有効な JAAS 認証情報を入力します。Username: admin Password: YourPassword
Username: admin Password: YourPasswordCopy to Clipboard Copied! Toggle word wrap Toggle overflow