Jump to content 日本-日本語
製品  >  ソフトウェア

whitepaper

HP Systems Insight ManagerにおけるSecure Shell(SSH)

HP Systems Insight Manager

目次

はじめに
  SSHを必要とする機能
  SSHの概要
  SSHの機能
  結論
  付録A:トラブルシューティング
  付録B:サーバ プロパティの変更
  付録C:ツールの例
  付録D:用語解説
  詳細情報の入手先

PDFファイル ダウンロード

このホワイトペーパーのPDFファイルをこちらからダウンロードしてご覧下さい。
(PDFファイル、347KB)
コンテンツに進む

HP Systems Insight ManagerにおけるSSHの機能


ここまでで、SSHを必要とするHP Systems Insight Managerの機能と、SSHプロトコルの概要を説明したので、次に、これらの機能とSSHがどのように組み合わされているのかについて説明します。前の項では、クライアントおよびサーバについて数多く触れました。クライアントのすべての動作は、組み込みのSSHクライアントが、分散タスク ファシリティ(DTF)に代わって実行します。
DTFには、管理対象システム上でそのすべての操作をSSHバージョン2プロトコル使用して実行するSSHクライアントが含まれます。SSHクライアントは、パスワード認証に基づくセッションを開始して、各実行ユーザの認証済みのキー ファイルにDTFのパブリック キーをインストールし、管理対象システム上で管理コマンドを実行し、管理対象システムから出力を収集します。

mxagentconfig


ここでは、mxagentconfigを使用して管理対象ノードをセットアップする際に、どのようなプロセスが進行するのかについて説明します。mxagentconfigの目的は、CMS上のknown_hostsファイルにターゲット システムのホスト キーを保存し、ユーザの認証済みのキー ストアにDTFのパブリック キーを配置して、以降の接続をパブリック キー認証を使用して行えるようにすることです。
mxagentconfigは、まず、指定された管理対象システムへのSSH接続を開始します。接続が開始されると、管理対象システムは、そのホスト キーを送信します。このキーは、CMS上にある既知のホストのリストで確認されます。ホスト キーが未知の場合は、リストに追加されます。そのノードについて、ホスト キーがすでに保存されている場合は、この接続の過程で送信されたキーと比較されます。キーが一致する場合は、接続を続けることが許可されます。一致しない場合は、接続は中止されます。接続が中止されることにより、Man-In-The-Middleアタックを防止できますが、管理対象システムのホスト キーが未知である最初の接続の場合はこの攻撃に対して無防備です。

管理対象システムが本物であることが確認されると、mxagentconfigは、パスワード認証を使用して指定されたユーザ名を認証します。次に、セキュリティ保護されたftp(sftp)チャネルが開かれます。このチャネルは、ユーザのホーム ディレクトリの下にあるユーザのSSHディレクトリ(.ssh)を見つけるために使用されます。このディレクトリがない場合は、作成されます。mxagentconfigは、次に、認証済みのキー ファイル(authorized_keys2)があるかどうかを確認します。
ファイルが存在する場合、mxagentconfigは、DTFのパブリック キーをユーザの認証済みのキー ファイルの末尾に追加します。ファイルが存在しない場合は、そのユーザ用の認証済みのキー ファイルが作成されます。この場合、DTFのパブリック キーが最初のエントリになります。この時点で、管理対象システム上で、ユーザが認証されます。

ツール実行ユーザ
mxagentconfigを使用してパブリック キー認証をセットアップすることにより、DTFが特定のユーザの権限でタスクを実行できるようになります。では、セットアップされるユーザはどのように決定されるのでしょうか。
HP Systems Insight Managerのツールは、すべて実行ユーザというコンセプトを備えています。実行ユーザとは、ツールを実行する際に、ツールの実行を行うユーザのことです。ツール定義ファイル(TDEF)で実行ユーザが指定されていない場合、そのツールのユーザは、デフォルトで、HP Systems Insight Managerにログインする任意のユーザに指定されます。このため、たとえば、AdministratorとしてWindowsが動作するCMSにログインし、実行ユーザを指定していないツールを実行すると、そのツールはAdministratorの権限で実行されるようになります。
クロスプラットフォームのツールを実行する際は、ほとんどの場合、このことが関係してきます。Windowsが動作するCMSにログインし、Red-Hat Linuxサーバに対して、RPMクエリを実行する場合、ツールは、Administratorではなくrootの権限で実行する必要があります。このため、HP Systems Insight Managerで提供されるツールは、通常、LinuxおよびHP-UXではrootを、WindowsではAdministratorを指定します。一般には、LinuxやHP-UXの管理対象システムに対してはrootで、Windowsの管理対象システムに対してはAdministratorで、mxagentconfigを実行することをおすすめします。
実行ユーザのコンセプトは、ユーザを指定しないツールで最も大切です。これらのツールは、ログインした任意のユーザの権限で実行されるため、mxagentconfigを実行して、そのツールを実行する各ユーザのキーをセットアップする必要があります。つまり、ログインしたユーザの権限で実行される特定のツールがあり、管理ユーザがそのツールを実行できることを望んでいる場合、そのツールを実行する予定の各管理対象システムに対して、管理ユーザの権限でmxagentconfigを実行する必要があります。これは、トラブルシューティングの際に、重要なコンセプトです。ツールを実行しようとして認証例外を受け取った場合、Administratorまたはroot、およびコマンド実行で問題に遭遇したユーザ用に、キーがセットアップされているかどうかを確認してください。
実行ユーザについて詳しくは、HP Systems Insight Managerのユーザ ガイドを参照してください。


既知のホスト


MSが新しいSSHサーバを検出すると、そのサーバは自動的にCMSにある既知のホストのリストに追加され、以降の接続は、保存されたホスト キーを使用して確認されます。このようなメカニズムにより、2回目からの接続の際のホスト キーのチェックが可能になります。この機能では、CMSが自動的にホスト キーを追加するため、SSH接続が最初に行われる際に、CMSがMan-In-The-Middleアタックに対して無防備になります。
この危険性は、システムのインストールの際ただちに標準のシステム検出を実行することで緩和できます。検出を行うことにより、各マシンに対してSSH接続が行われ、管理対象システムでSSHが実行されている場合、そのバージョンが確認されます。その接続が行われると、既知のホストのリストにエントリが追加されます。
管理対象システムにSSHサーバを再インストールするようなことがあると、ホスト キーは変更され、CMSはそのシステムへの接続を許可しなくなります。この問題を解決するには、ファイルを編集し、そのシステムの名前やIPアドレスに対する参照があれば削除します。また、known_hostsファイルを削除することもできます。こうすることにより、次の検出時に、known_hostsファイルが再作成されます。

新しいキーを許可しない方法
状況によっては、システム管理者が、CMSによるキーの自動追加を受け入れないことを決定する場合があります。この場合、mx.propertiesファイルに次の行を追加します。

MX_SSH_ADD_UNKNOWN_HOSTS=false

CMSのプロパティ変更について詳しくは、「付録B:サーバ プロパティの変更」を参照してください。
このオプションを設定すると、CMSは、既知のホストのリストにキーを追加しなくなり、未知のシステムへの接続を拒否します。この機能を使用する場合は、まず初期検出を実行してknown_hostsファイルを作成してからこのオプションを設定するという方法もありますが、別の方法として、初期検出の前にこのオプションを設定し手動でknown_hostsファイルを作成するという方法もあります。
known_hostsファイルを手動で作成するための最も簡単な方法は、コマンド ラインから、SSH経由で各システムにログインする方法です。このプロセスを実行するには、以下の手順に従ってください。

  1. 既存のCMS known_hostsファイルを削除します。
  2. Administratorのknown_hostsファイルを削除します。
  3. SSH経由で各システムにログインします(CMS自身にもログインしてください)。これにより、Administratorのknown_hostsファイルに各システムを追加する指示が行われます。各システムの長い名前(例:name.domain.com)、短い名前(例:name)、およびIPアドレス(例:15.1.48.11)を使用して接続が作成されていることを確認してください。
  4. Administratorのknown_hostsファイルをコピーして、CMSのknown_hostsファイルの位置に戻します。

残念なことに、このプロセスには、キーの自動追加を許可するのと同じ脆弱性を含む可能性があります。known_hostsファイル作成の絶対的に安全な唯一の方法は、各システムの設置場所に実際に赴いてその場所でキーをコピーすることです。このためには、上記のプロセスを繰り返します。ただし、SSH経由でローカル システムにだけログインしてください。この方法で、各マシンから個々のknown_hostsエントリを収集し、それらのエントリを結合してください。
詳しくは、「SSHクライアント コンフィギュレーション ディレクトリ」を参照してください。

ファイル位置
既知のホストのリストは、コンフィギュレーション ディレクトリのsshtoolsサブディレクトリにあります。具体的な位置は、ご使用のプラットフォームにより異なります。
Windowsでは、次の位置にあります。
C:\Program Files\HP\Systems Insight Manager\config\sshtools\known_hosts
HP-UXおよびLinuxでは、次の位置にあります。

/etc/opt/mx/config/sshtools/known_hosts

SSHポート


通常、SSHサーバはTCPポート22で受信します。何らかの理由で変更する必要がある場合、HP Systems Insight Managerの使用するSSHポートは設定可能です。ただし、CMSがSSHセッションを開始するために使用するポートだけが変更されることに注意してください。管理対象システムでもそのポートで受信するようにするには、管理対象システム上の各SSHサーバを設定する必要があります。ポートは、mx.propertiesファイルのMX_SSH_PORTを設定することにより、設定します。

例:ポートを6450に変更するには、mx.propertiesに次の行を追加します。

MX_SSH_ADD_UNKNOWN_HOSTS=false

CMSプロパティの変更について詳しくは、「付録B:サーバ プロパティの変更」を参照してください。


WindowsのSSHサーバ


通常、HP-UXおよびほとんどのLinuxディストリビューションでは、OpenSSHが最初からインストールされていますが、Windowsベースのオペレーティング システムでは、インストールされていません。HP Systems Insight Managerでは、Windowsシステム上でDTFと連携して使用されるOpenSSHのバージョンが提供されます。このOpenSSHは、中央管理サーバがインストールされる際に、他のCMSソフトウェアとともにインストールされます。管理対象システムでは、OpenSSHは、Management CDからインストールできます。

HP Systems Insight Managerに付属のOpenSSHバージョンは、HPのインストール プロセスとシームレスに連携するように、再パッケージングされました。また、普及している他のディストリビューションよりも安全なものにするための、修正も行われました。OpenSSHは、OpenBSDの一部であるため、当初、UNIXベースのオペレーティング システム用に組み込まれました。OpenSSHをWindowsに簡単に移植するために、Cygwinと呼ばれるエミュレーション レイヤが使用されます。
Cygwinは、UNIXエミュレーション レイヤを提供し、UNIXソフトウェアをWindowsに簡単に移植できるようにします。また、Cygwinには、よく知られたいくつかのセキュリティ上の問題があります。つまり、Cygwinは、UNIXプロセスをエミュレートするために、あらゆるユーザが読み出すことのできるデータ構造を作成します。OpenSSHのセキュリティを向上させるために、HP Systems Insight Managerに付属のバージョンには、修正されたCygwin互換レイヤが含まれており、これにより、これらのデータ構造へのアクセスをAdministratorグループのメンバに限定することができます。このため、HP Systems Insight Managerパッケージを使用すると、SSHを介してWindowsシステムにログインできるユーザは、Administratorグループのメンバだけになります。

Cygwinマウント
OpenSSHが特定のファイルを検索する位置を見つけるには、最初に、これらのファイルの保存位置を確認する必要があります。ここで問題となるファイルは、/etc/passwd、/etc/group、および/home
/hpsimuserです。
Cygwinは、UNIX環境をエミュレートします。Cygwinは、/etc/passwd、/etc/groupなどのファイルや、ユーザのホーム ディレクトリ(例:/home/hpsimuser)を見つけるために、マウント ポイントをセットアップします。
レジストリで、次に移動します。

HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2

このレジストリ キーの下に、次の3つのマウント ポイントが定義されているのを確認できます。

/
/home
/usr/bin

これら各ディレクトリの下のネイティブ キーが、対応するWindowsディレクトリに設定されます。つまり、/homeがどの位置にマッピングされているかを確認するには、次を調べます。

HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/home/native

このマウント ポイントは、デフォルトで、C:\Documents and Settingsに設定されます。
同様に、ルート ディレクトリ(/)は、デフォルトでC:\Program Files\OpenSSHに設定されます。このため、/etc/passwdは、C:\Program Files\OpenSSH\etc\passwdにあります。

パスワードとグループ
パスワード ファイルには、SSHの使用を許可されている各ユーザのエントリが記述されていなければなりません。パスワード ファイルのリストに記述されていないユーザがログインを試みると、不正ユーザ エラーが生成され接続が中止されます。
HP Systems Insight ManagerのOpenSSHパッケージをインストールすると、インストールを実行しているユーザ、およびAdministratorのパスワード エントリがセットアップされます。Administratorがセットアップされるのは、あらかじめ含まれているすべてのWindowsコマンド ライン ツールがAdministratorの権限で実行されるためです。インストール時には、/etc/groupファイルも作成されますが、以降にユーザを追加する場合に、このファイルを更新する必要はありません。
他のユーザを認証するには、そのユーザのパスワード ファイル エントリを作成する必要があります(実際には、エントリは、SIDを含みます。パスワードは、Windowsに対して内部的なもののままです)。エントリは、mkpasswdコマンドを使用して作成します。たとえば、hpsimuserが許可されたSSHユーザかどうかを確認する場合、まず、/etc/passwd(C:\Program Files\OpenSSH\etc\passwd)で、hpsimuserエントリを調べます。新しいユーザのエントリがないことが確認されたら、以下の手順に従ってユーザを追加します。

  1. DOSウィンドウを開いて、C:\Program Files\OpenSSH\etcに移動します。
  2. mkpasswd −l −u hpsimuser >> passwdコマンドを実行します。
  3. mkpasswd −d −u hpsimuser domain >> passwdコマンドを実行します。

これらのコマンドのいずれかがエラーを返す場合があります。エラーは画面に出力され、ファイルにリダイレクトされるわけではないので、問題はありません。mkpasswdコマンドが見つからない場合は、OpenSSHをインストールしたディレクトリの下のbinディレクトリにあります(通常、C:\Program Files \OpenSSH\bin\mkpasswd)。 パスワード エントリを作成したら、そのユーザはログインできるようになるはずです。ユーザのトラブルシューティングを行う際には、別に、ホーム ディレクトリの大文字/小文字の区別をチェックする必要もあります。OpenSSHは、ディレクトリ名の大文字と小文字を区別するため、/home/HPsimUserと/home/hpsimuserは、同じではありません。パスワード ファイル内のエントリの大文字/小文字の組み合わせが、参照先のディレクトリのものと同じかどうかを調べてください。 次に、パスワード エントリの例を示します(注:このエントリは、単一行で記述されます。改行は行われません)。後ろから2番目のフィールドは、ホーム ディレクトリを指定しています。

Administrator:unused_by_nt/2000/xp:500:513:U-PCDLONG2\Administrator,S-1-5-21-3769691966-4004114397-3833753107-500:/home/Administrator:/bin/switch

インストールされている他のCygwinとの共存の問題
1台のシステムに、同時に複数のCygwinベースのプログラムをインストールすることはできません。
Cygwinが機能するには、特定のレジストリ設定が存在する必要があります。つまり、ここまでで説明したマウント ポイントの設定が必要です。インストーラは、Cygwinのレジストリ キーをチェックして、存在する場合はインストールを拒否します。また、Cygwinの完全なディストリビューションや、Cygwinを使用する別のソフトウェア(例:WinCVSのPythonディストリビューション)がインストールされている場合も、インストールは失敗します。これは、残念なことですが、複数のCygwinをインストールして共存させることはできないため発生します。
Cygwinを使用する製品はHP Systems Insight ManagerのOpenSSH以外にも広範囲に存在し、HP Systems Insight ManagerのOpenSSHディストリビューションは、それらの製品と互換性がありません。これには、自由に入手できる他のOpenSSHディストリビューションも含まれます。OpenSSHの別のバージョンをすでに使用しており、HP Systems Insight Managerのバージョンをインストールしない場合は、問題ありません。ただし、HP Systems Insight Managerのバージョンが、Cygwinのデータ構造へのアクセスを制限する唯一のバージョンであることは忘れないでください。
Windows用のOpenSSHの汎用ディストリビューションをすでにインストールし、CMSで機能するようにキーをセットアップしている場合、HP Systems Insight Managerが使用されるようになる前に存在したセキュリティ ホールがそのまま存在します。このセキュリティ ホールは、他の管理対象システムやCMSには影響を及ぼしませんが、管理対象ノードの管理者以外のユーザが、そのノードで実行されるDTFタスクを妨害する可能性はあります。ただし、他の管理対象システムでは、このサイトでHP Systems Insight Managerが使用される以前にも、セキュリティ ホールの問題は存在しました。
HP Systems Insight ManagerのOpenSSHパッケージをインストールする際に問題が発生する場合は、システムのCygwinのレジストリ キーと、cygwin1.dllファイルを調べてください。このファイルの位置は、インストールされOpenSSHと競合しているソフトウェアを確認するためのヒントになる場合があります。

Documents and Settingsディレクトリ
SSHがそのファイルを配置する位置を確保するには、ユーザのプロファイル ディレクトリ(通常、C:\Documents and Settings\user)が存在する必要があります。SSHは、ユーザのプロファイル ディレクトリにディレクトリを作成して、そのディレクトリに、既知のホストのファイル(例:C:\Documents and Settings\user\.ssh\known_hosts)や認証済みのキー ファイルを配置します。
このディレクトリは、存在しない場合は、ユーザが最初にログインする際に作成されます。そのため、あるドメイン ユーザがDTFタスクを実行する予定の管理対象システムに最初にログインする際は、必ず、そのドメイン ユーザの権限でログインしてください。そうでない場合は、そのユーザの権限で、当該の管理対象システムに対してmxagentconfigを実行しても、認証済みのキー ファイルを作成できないため、mxagentconfigは失敗します。


前のページへ 次のページへ
Acrobat Readerダウンロード PDFファイルをご覧いただくには、Adobe® Reader®が必要です。
アドビシステムズ社のウェブサイトより、ダウンロード(無料)の上ご覧ください。
印刷用画面へ印刷用画面へ
プライバシー ご利用条件・免責事項