Sun N1 Service Provisioning System 5.1 インストールガイド

SSH の概要と使用条件

SSH は、リモートコンピュータに安全にアクセスするための UNIX ベースのコマンド群/プロトコルです。SSH は、電子証明書とパスワードの暗号化を利用して、接続の両端で認証を行うことにより、ネットワーク上のクライアントとサーバーの通信を保護します。また、RSA 公開鍵暗号を使用して接続と認証を管理します。SSH は、Telnet やほかのシェルベース通信方式よりも安全性が高く、Web サーバーなどのリモートサーバーの管理に使用されます。

ほかの接続タイプと異なり、2 つの N1 Service Provisioning System 5.1 アプリケーション間に SSH 接続を設定した場合、ダウンストリームのアプリケーションは手動で起動する必要がありません。ダウンストリームのアプリケーションは、必要な場合にアップストリームのアプリケーションによって自動的に起動されます。ダウンストリームのアプリケーションは、使用されている間は継続して動作しますが、一定の時間 (この時間は設定可能) 使用されないと自動的に停止します。

SSH 接続では、ダウンストリームのアプリケーションの手動起動は行わないでください。たとえば、SSH を使用してリモートエージェントに接続するようにローカルディストリビュータを設定した場合、リモートエージェントを手動では起動しないでください。ローカルディストリビュータは、必要時にリモートエージェントを自動的に起動します。リモートエージェントは、使用されている間は継続して作動します。リモートエージェントが一定時間使用されなかった場合、ローカルディストリビュータは自動的にリモートエージェントを停止します。

ssh-agent または空のパスワード鍵

SSH は構成時に、ssh-agent を使用するか、空のパスワード鍵を使用するかを選択できます。空のパスワード鍵を使用すると、生成された SSH 非公開鍵は空のパスワード付きで格納されます。この結果、この非公開鍵はパスワードなしでアクセスできます。公開鍵を信頼するほかのマシンとの通信に SSH を使用する場合、パスワードの入力は求められません。ssh-agent を使用する場合は、生成される非公開鍵はセキュリティー保護されたパスワードと共に格納され、安全なメディアに格納されます。ほかのマシンと通信を行うときは、ssh-agent を起動し、安全なメディアから非公開鍵をアップロードし、パスワードを入力します。非公開鍵はファイルシステムには格納されず、ssh-agent プロセスのメモリー内に格納されます。

ssh-agent を使用する場合、非公開鍵はマスターサーバー上でしか実行されない ssh-agent によって格納されます。ネットワーク上のほかのマシンには公開鍵が配布されます。認証が必要な SSH アプリケーションは、ssh-agent と通信して認証を行います。認証のためにマスターサーバーで実行されている ssh-agent に対してローカルディストリビュータからプロキシ設定が行えるように中間的な SSH 接続するには、ssh-agent の転送機能を有効にする必要があります。ローカルディストリビュータは、ssh-agent の転送機能を使用してダウンストリームのローカルディストリビュータとリモートエージェントに認証情報を渡します。この方法は、前述の方法よりも安全です。また、N1 Service Provisioning System 5.1 で ssh-agent を使用するように構成した方が、空のパスワードを設定するよりも簡単です。

空のパスワードを使用すると、非公開鍵はパスワードなしでマシンのファイルシステム上に格納されます。非公開鍵は、SSH 通信を開始するすべてのマシン上に置く必要があります。N1 Service Provisioning System 5.1 の場合、SSH を使用してダウンストリームのアプリケーションに接続しているマスターサーバーとローカルディストリビュータはすべて、非公開鍵を持っていなければなりません。この方法は安全性に劣ります。

SSH の要件

N1 Service Provisioning System 5.1 には、次の SSH 機能が必要です。

ssh-agent を使用する場合は、次の SSH 機能が必要です。

SSH 接続を行うようにマシンを構成する場合は、次の機能が役に立ちます。ただし、これらは必須機能ではありません。

次のチェックリストを使用し、SSH の実装が N1 Service Provisioning System 5.1 の要件を満たしているか確認してください。

その他の SSH セキュリティー

SSH を使用してリモートエージェントを起動する場合、リモートエージェントは jexec ラッパーを使用して Java 仮想マシンを起動します。このラッパーはスーパーユーザー (root) が所有するネイティブの実行可能ファイルであり、setuid ビットセットを持っています。このファイルはリモートエージェントのインストールに使用したユーザーと同じグループ ID を持ち、このグループに実行許可を与えます。このファイルは、リモートエージェントのインストールに使用したユーザーアカウントが所有する protect というディレクトリに保存されます。このファイルの実行許可が与えられるのは、リモートエージェントを所有するユーザーだけです。ほかのユーザーは jexec ラッパーを実行できません。

どのような場合でも jexec protect のファイルアクセス権が誤って変更されることがないように対策を施す必要があります。

jexec のセキュリティーは、次の変更を加えることによって強化できます。

詳細については、sshd(1M) のマニュアルページを参照してください。