Enterprise Manager の通信の設定
Enterprise Manager は、エージェント、Workstation、WebView、および Enterprise Manager のクラスタとの通信にポート 5001 を使用します。Enterprise Manager へのソケット通信はすべて保護されており、パスワードはセキュアな通信チャネルで暗号化されます。
apmdevops104jp
Enterprise Manager は、エージェント、Workstation、WebView、および Enterprise Manager のクラスタとの通信にポート 5001 を使用します。Enterprise Manager へのソケット通信はすべて保護されており、パスワードはセキュアな通信チャネルで暗号化されます。
管理者は、以下のタスクを実行して、使用環境の Enterprise Manager の通信を設定します。
3
デフォルトの Enterprise Manager の通信チャネルの設定
IntroscopeEnterpriseManager.properties ファイルでは、Enterprise Manager と通信する各エージェントの通信チャネル プロパティを指定します。
以下の手順に従います。
- <EM_Home>/config ディレクトリに移動します。
- IntroscopeEnterpriseManager.properties ファイルをテキスト エディタで開きます。
- 以下の通信チャネル プロパティを必要な値に変更します。
- introscope.enterprisemanager.serversocketfactory.<ChannelName>Enterprise Manager が Workstation およびエージェントとの暗号化通信に使用するサーバ ソケット ファクトリのクラス名を指定します。
- introscope.enterprisemanager.port.<ChannelName>Enterprise Manager が Workstation およびエージェントとの暗号化通信に使用するリスナ ポートを指定します。注:IntroscopeWebView.properties ファイルの introscope.webview.enterprisemanager.tcp.port プロパティでは、Enterprise Manager ポートが指定されます。
- introscope.enterprisemanager.enabled.channelsEnterprise Manager が使用できる通信チャネルを指定します。
- ファイルを保存して閉じます。Enterprise Manager を再起動します。
通信チャネルの再バインド
ソケットが非アクティブ状態になったときにメモリがまだ使用されている場合は、使用中のポートに通信チャネルを再バインドすることができます。非アクティブ状態の例としては、FIN_WAIT や TIME_WAIT などが挙げられます。
注
: このプロパティは、デフォルトでは有効化せずに、ソケットが使用不可の状態になっている場合のみに使用してください。Enterprise Manager が開始した後は、ポートが使用されているのには正当な理由(同じマシン上のコレクタがポートにバインドされている場合など)があるので、このプロパティを無効化します。以下の手順に従います。
- <EM_Home>/config ディレクトリに移動します。
- IntroscopeEnterpriseManager.properties ファイルをテキスト エディタで開きます。
- 以下のプロパティを true に設定します。introscope.enterprisemanager.serversockets.reuseaddrデフォルト: false
- ファイルを保存して閉じます。Enterprise Manager を再起動します。
Enterprise Manager の SSL 通信の有効化
SSL サーバ ソケットを設定することにより、デフォルトの通信チャネルに加えて、Enterprise Manager のセキュアな通信チャネルを有効にすることができます。
以下の手順に従います。
- <EM_Home>/config ディレクトリに移動します。
- IntroscopeEnterpriseManager.properties ファイルをテキスト エディタで開きます。
- Enterprise Manager の通信チャネル プロパティに移動します。
- SSL プロパティを必要な値に変更します。
- ファイルを保存して閉じます。Enterprise Manager を再起動します。
SSL プロパティ ルール
IntroscopeEnterpriseManager.properties ファイル内の SSL 通信チャネル プロパティを設定する場合は、以下のルールに従います。
キーストア プロパティは、Enterprise Manager をクライアントに認証させるための証明書が含まれるキーストアの場所を示します。Enterprise Manager のデフォルトのキーストアには、セキュアではない自己署名証明書が含まれています。ただし、Workstation とエージェントは、デフォルトではサーバ証明書を検証しません。
- キーストア プロパティは、絶対パスまたはconfigディレクトリを基準にした相対パスのどちらかです。
- needclientauth プロパティがtrueに設定されている場合、Enterprise Manager はクライアントに認証するよう要求します。
- Enterprise Manager は、トラストストアを使用して設定する必要があります。
- エージェントと Workstation は、Enterprise Manager によって信頼された証明書を含むキーストアを使用して設定する必要があります。
- needclientauth = true の場合にトラストストアが設定されていないと、Enterprise Manager は起動しません。起動するには、トラストストア プロパティの設定が必要です。
- トラストストア プロパティは、信頼できるクライアントの証明書を含むトラストストアの場所です。これは、クライアントに認証を要求する場合にのみ必要です。トラストストアが指定されていない場合は、すべてのクライアント証明書が信頼されます。
- ciphersuites プロパティを使用して、有効な暗号スイートを設定します。このプロパティは、匿名認証を有効にしたり、データ暗号化を回避したりする場合に使用できます。たとえば、匿名認証のために、暗号スイートを SSL_DH_anon_WITH_RC4_128_MD5 に設定します。たとえば、以下の通りです。introscope.enterprisemanager.ciphersuites.channel2=SSL_DH_anon_WITH_RC4_128_MD5
- 特定の JSSE 実装には、匿名認証を使用できるいくつかの暗号スイート(すべて「anon」が含まれています)があります。ただし、暗号スイートはクライアントとサーバで共通であり、両方で有効です。
- データを暗号化しない暗号スイートを指定します。たとえば、以下の通りです。introscope.enterprisemanager.ciphersuites.channel2=SSL_RSA_WITH_NULL_SHA
- protocols プロパティを、JVM がサポートする承認済みのプロトコルに設定します。デフォルトのプロパティ設定では、サーバで SSLv3 を使用した接続が受け入れられないようにします。introscope.enterprisemanager.protocols.channel2=TLSv1.2,TLSv1.1,TLSv1
例: セキュアな通信チャネルとセキュアでない通信チャネルの有効化
Enterprise Manager を SSL を使うように設定するには、セキュアな通信チャネルを有効にするように、IntroscopeEnterpriseManager.properties を設定します。このセキュアなチャネルは、デフォルトのセキュアでないチャネルに加えて設定できます。
注
: MOM とコレクタの間、または MOM と WebView の間の SSL 通信の設定はサポートされていません。以下の設定例では、ポート 5001 にデフォルトのセキュアでないリスナを設定し、ポート 5443 にセキュアなリスナを設定します。
# The enabled communication channels. introscope.enterprisemanager.enabled.channels=channel1, channel2 # The default communication channel. introscope.enterprisemanager.serversocketfactory.channel1=com.wily.isengard.postofficehub.link.net.server.DefaultServerSocketFactory introscope.enterprisemanager.port.channel1=5001 # The secure communication channel. introscope.enterprisemanager.serversocketfactory.channel2=com.wily.isengard.postofficehub.link.net.server.SSLServerSocketFactory introscope.enterprisemanager.port.channel2=5443 # Location of a keystore containing certificates for authenticating the Enterprise Manager to clients. # Either an absolute path or a path relative to the config directory. # On Windows, backslashes must be escaped. For example: # introscope.enterprisemanager.keystore.channel1=C:\\Introscope\\config\\internal\\server\\keystore introscope.enterprisemanager.keystore.channel2=internal/server/keystore # The password for the KeyStore. # Set the following property to true to enable encryption. introscope.enterprisemanager.keypassword.channel2 # Once introscope.enterprisemanager.keypassword.channel2 is encrypted, # this property is automatically set to false. # # To change the existing password, enter the new password and set this property to true. # Note: If this property is set to true and the password is not changed, the existing encrypted password will be encrypted again. # If password field for a new channel is configured, add the corresponding # plaintextpassword field and set it to true to enable encryption. introscope.enterprisemanager.keypassword.channel2.plaintextpassword=true introscope.enterprisemanager.keypassword.channel2=password # Location of a TrustStore containing trusted client certificates. # Either an absolute path or a path relative to the config directory. # On Windows, backslashes must be escaped. For example: # introscope.enterprisemanager.truststore.channel1=C:\\Introscope\\config\\internal\\server\\keystore # A TrustStore is only needed if client authentication is required. # Set this property to true to enable encryption of introscope.enterprisemanager.trustpassword.channel2 # Once introscope.enterprisemanager.trustpassword.channel2 is encrypted, # this property is automatically set to false. # # To change the existing password, enter the new password and set this property to true. # Note: If this property is set to true and the password is not changed, the existing encrypted password will be encrypted again. # If password field for a new channel is configured, add the corresponding # plaintextpassword field and set it to true to enable encryption. # introscope.enterprisemanager.trustpassword.channel2.plaintextpassword=false # The password for the TrustStore #introscope.enterprisemanager.trustpassword.channel2=password # If no TrustStore is specified, the Enterprise Manager trusts all client certificates.
ファイアウォールを越えた Enterprise Manager との接続
HTTP トンネリングはデフォルトで有効になっています。トンネリングにより、あるネットワークのデータをほかのネットワーク接続経由で送信できるようになります。
以下の手順に従います。
- Workstation では、Enterprise Manager の組み込み Web サーバのポートへの接続にトンネリング転送を使用します。デフォルト: 8081
- <EM_Home>/config ディレクトリに移動します。
- IntroscopeEnterpriseManager.properties ファイルをテキスト エディタで開きます。
- introscope.enterprisemanager.webserver.port プロパティを必要な Web サーバ ポートの値に変更します。
- ファイルを保存して閉じます。Web サーバを再起動します。
Enterprise Manager Web サーバの HTTPS 用の設定
Enterprise Manager Web サーバは、SSL の HTTP トンネリングをサポートしています。このセキュリティ対策は、Enterprise Manager に組み込まれている Jetty Web サーバからアクセスできる Jetty XML 設定ファイル(em-jetty-config.xml)によって実装されます。
Enterprise Manager は起動時に <
EM_Home
>/config ディレクトリからデフォルトの em-jetty-config.xml ファイルをロードします。このファイルは、ポート 8444 にセキュアなリスナを設定します。このセキュアなリスナによって、Workstation とエージェントが Enterprise Manager Web サーバ経由で HTTPS トンネルを使用して Enterprise Manager にアクセスできます。introscope.enterprisemanager.webserver.port プロパティは、IntroscopeEnterpriseManager.properties ファイルにある introscope.enterprisemanager.webserver.port プロパティと共に動作します。Enterprise Manager は、Enterprise Manager が Jetty 設定ファイルをロードしたときに、introscope.enterprisemanager.webserver.port プロパティで定義されているセキュアでないリスナを作成しません。ただし、Jetty 設定ファイルにはセキュアでないリスナを設定できます。
IntroscopeWebView.properties で introscope.webview.enterprisemanager.webserver.tcp.port, introscope.webview.enterprisemanager.rest.base (http->https) を変更します。
警告:
em-jetty-config.xml ファイル内の introscope.enterprisemanager.webserver.jetty.configurationFile プロパティおよびセキュアでないリスナ ポートの両方のコメント化を解除すると、CA APM のセキュリティに問題が発生することがあります。これらの設定を一緒に行う前に、組織のアプリケーション セキュリティ担当者に通知してください。以下の手順に従います。
- <EM_Home>/config ディレクトリに移動します。
- em-jetty-config.xml ファイルをテキスト エディタで開きます。
- introscope.enterprisemanager.webserver.jetty.configurationFile プロパティのコメントを外して、ファイルをアクティブにします。
- Jetty ファイル内の Web サーバ プロパティを必要な値に変更します。
- ファイルを保存して閉じます。Web サーバを再起動します。
注
: em-jetty-config.xml ファイルの名前および場所を設定するには、IntroscopeEnterpriseManager.properties ファイル内の introscope.enterprisemanager.webserver.jetty.configurationFile プロパティを使用します。SSL 用の Jetty 設定オプション
重要:
<
EM_Home
>/config ディレクトリにあるデフォルトの Jetty 設定ファイル(em-jetty-config.xml)を使用して、SSL のコンポーネントの多くを変更することができます。たとえば、以下の通りです。- HTTPS ポートをデフォルトの 8444 から変更するには、port 属性の値を変更します。Example: <Set name="port">8444</Set>
- デフォルトでは、SSL リスナは /internal/server/keystore にあるキーストアを使用するように設定されます。これは config ディレクトリを基準にした相対パスです。このキーストアには、信頼されない自己署名証明書が入っています。承認済み認証機関からの証明書が含まれるキーストアに自己キーストアを置き換えることができます。
- デフォルトのキーストアパスワードは password です。em-jetty-config.xml および webview-jetty-config.xml 内のクリア テキスト パスワードはデフォルトでは難読化されます。難読化されたパスワードは、OBF: で始まります。OBF: を取り除くことで、プレーン テキスト パスワードになります。注:SSL の設定の詳細については、https://wiki.eclipse.org/Jetty/Howto/Configure_SSL を参照してください。
- デフォルトでは、SSL は自己署名証明書を受け入れるように設定されます。SSL は、クライアントの URL 内のホスト名がデジタル証明書のホスト名に一致することを検証しません。これは、スタンドアロン Enterprise Manager のみをテストするのに十分です。この設定により、デフォルトのキーストアの信頼されていない証明書を使用して、SSL がデフォルトで機能することができます。安全性の高い認証を必要とする場合は、信頼できる証明書を含むキーストアを作成します。クラスタまたは MOM とコレクタの場合には、自己署名証明書は有効ではありません。Enterprise Manager もクライアントであり、正しいホスト名を含む有効な証明書または信頼された自己署名証明書が必要です。有効な証明書を使用する必要があります。テスト目的では、自己署名証明書を使用できますが、ホスト名/ドメインの証明書を生成する必要があります。グローバル Java トラスト ストアに証明書を追加します。クライアントとしての Enteprise Manager では、信頼できるサーバの検証にグローバル java トラスト ストアが使用されます。注:実稼働環境では、承認された認証機関からの有効な証明書が必要です。その後、XML 内の以下の属性を設定し、デフォルトのキーストアを独自のキーストアに置き換えます。<Set name="validateCertificates">true</Set> <Set name="verifyHostnames">true</Set> <Set name="keystore"><SystemProperty name="introscope.config" default="./config" />/internal/server/keystore</Set> <Set name="password">password</Set>
- また、クライアント認証を要求するために、クライアント証明書を含むトラスト ストアを以下のように作成します。<Set name="needClientAuth">true</Set> <Set name="truststore"><SystemProperty name="introscope.config" default="./config" />/internal/server/keystore</Set> <Set name="trustPassword">password</Set>
- クライアント認証が必要な場合は、Enterprise Manager Web サーバによって信頼されている証明書を含むキーストアを使用して、Enterprise Manager、エージェント、および Workstations を設定する必要があります。有効な暗号スイートを設定するには、cipherSuites属性に暗号スイートのリストを設定します。<Set name="cipherSuites"> <Array type="java.lang.String"> <Item>SSL_DH_anon_WITH_RC4_128_MD5</Item> </Array> </Set>SSL を使用するには、エージェントと Workstation の暗号スイートが有効で、Enterprise Manager と共通のものである必要があります。以下のアクションに対して、有効な暗号スイートを制限することができます。
- 弱い暗号スイートの脆弱性の防止
- 匿名接続の許可
- データの非暗号化
- 承認されるプロトコルのリストをカスタマイズする必要がある場合は、上記の例で示されているように、em-jetty-config.xmlおよびwebview-jetty-config.xmlファイルで <Item> タグにプロトコルを定義します。<Set name="protocols"><Array type="java.lang.String"><Item>TLSv1.2</Item><Item>TLSv1.1</Item><Item>TLSv1</Item> </Array></Set>
- Enterprise Manager は maxThreads プロパティを使用して、Enterprise Manager が処理できる HTTPS エージェント接続の数を制限します。十分なスレッドがない場合、Enterprise Manager は、接続されたエージェントやエージェントからのプロセス メトリックを認識しません。
- HTTPS を使用する場合、Enterprise Manager は maxThreads プロパティで設定されたエージェント数のみを処理します。許可されているエージェント接続の数は、apm-events-thresholds-config.xml ファイルの introscope.enterprisemanager.agent.connection.limit プロパティで設定されます。maxThreads の値が introscope.enterprisemanager.agent.connection.limit の値以上であることを確認します。HTTPS を使用して接続するためのスレッドが不足している場合、一部のエージェントはクライアントに表示されないか、またはメトリックをレポートしません。
CEM コンソールのデフォルト要求ヘッダ サイズのリセット
CEM コンソールへのアクセス時に空白のページが表示されることがあるような場合は、要求ヘッダ サイズ制限のデフォルト値(4 KB)をリセットすることができます。ヘッダ サイズ制限のリセットは、Jetty 設定ファイルで行います。
以下の手順に従います。
- MOM 上の <EM_Home>/config ディレクトリに移動し、em-jetty-config.xml ファイルをテキスト エディタで開きます。
- 以下の行を含むセクションを見つけます。<New class="com.wily.webserver.NoNPESocketConnector">
- "NoNPESocketConnector" を以下の値に変更します。<set name="headerBufferSize">8192</Set>" <Set name="RequestBufferSize">16384</Set>"
- ファイルを保存して閉じます。
- 各 MOM およびコレクタ上の IntroscopeEnterpriseManager.properties ファイルの場所に移動します。
- このプロパティで、以下の行のコメントを外します。introscope.enterprisemanager.webserver.jetty.configurationFile=em-jetty-config.xml
- ファイルを保存して閉じます。Web サーバを再起動します。