SSH Tectia

ssh-broker-config

ssh-broker-config — SSH Connection Broker の設定ファイルの形式

Connection Broker の設定ファイル ssh-broker-config.xml は、UNIX および Windows 上では SSH Tectia Client と ConnectSecure によって、z/OS および z/Linux 上では SSH Tectia クライアント ツールによって使用されます。このファイルは、ssh-broker-ng-config-1.dtd の文書型定義に従った、有効な XML ファイルである必要があります。

Connection Broker のファイル

Connection Broker は、以下の 3 つの設定ファイルを読み取ります (すべてが使用可能な場合)。

  1. ssh-broker-config-default.xml ファイルが最初に読み取られます。このファイルには、工場出荷時のデフォルト設定が保存されています。このファイルを編集することは推奨されませんが、デフォルト設定の確認に使用できます。

    Connection Broker が起動するには、このファイルが使用可能であり、正しくフォーマットされている必要があります。

  2. 次に、Connection Broker はグローバル設定ファイルを読み取ります。グローバル設定ファイルの設定によって、デフォルト設定が上書きされます。

    グローバル設定ファイルが存在しないか、または不正な形式であっても、Connection Broker は正常に起動し、代わりにユーザ固有の設定ファイルを読み取ります。不正な形式のグローバル設定ファイルは無視され、デフォルト設定またはユーザ固有の設定 (存在する場合) が代わりに使用されます。

  3. 最後に、Connection Broker はユーザ固有の設定ファイル (使用可能な場合) を読み取ります。ユーザ固有の設定ファイルの設定によって、グローバル設定ファイルの設定が上書きされます。ただし、以下の例外があります。

    • ユーザ固有の設定ファイルの以下の設定は、グローバル設定ファイルの設定と組み合わされます。

      • general エレメントでは、key-stores および cert-validation 設定

      • profiles エレメントでは、すべての設定

      • static-tunnels エレメントでは、すべての設定

    • グローバル設定ファイルとユーザ固有の設定ファイルの両方で同じ名前の接続プロファイルが定義されている場合は、後者の接続プロファイルが使用されます。

    • グローバル設定とユーザ固有の設定で crypto-libstrict-host-key-checkinghost-key-always-ask、および accept-unknown-host-keys エレメントの値が異なる場合は、よりセキュアな方の値が使用されます。

    • グローバル設定ファイルで filter-engine の設定が定義されており、そのファイルが有効な (不正な形式でない) 場合は、それらの設定が使用され、ユーザ固有の設定ファイルで作成された filter-engine の設定はすべて無視されます。

    ユーザ固有の設定ファイルが存在しない場合でも、Connection Broker は、以前に読み取られた設定ファイルを使用して起動します。ただし、ユーザ固有の設定が存在するが、不正な形式である場合、Connection Broker はまったく起動しません。

UNIX では、デフォルト設定ファイルの場所は以下の通りです。

  • デフォルト設定:

    /etc/ssh2/ssh-tectia/auxdata/ssh-broker-ng/ssh-broker-config-default.xml

  • グローバル設定: /etc/ssh2/ssh-broker-config.xml

  • ユーザ固有の設定: $HOME/.ssh2/ssh-broker-config.xml

  • XML DTD:

    /etc/ssh2/ssh-tectia/auxdata/ssh-broker-ng/ssh-broker-ng-config-1.dtd

Windows では、デフォルト設定ファイルの場所は以下の通りです。

  • デフォルト設定:

    "C:\Program Files\SSH Communications Security\SSH Tectia\SSH Tectia AUX\ssh-broker-ng\ssh-broker-config-default.xml"

  • グローバル設定:

    "C:\Program Files\SSH Communications Security\SSH Tectia\SSH Tectia Broker\ssh-broker-config.xml"

  • ユーザ固有の設定: "%APPDATA%\SSH\ssh-broker-config.xml"

  • XML DTD:

    "C:\Program Files\SSH Communications Security\SSH Tectia\SSH Tectia AUX\ssh-broker-ng\ssh-broker-ng-config-1.dtd"

以下の項では、Connection Broker の設定ファイルで利用可能なオプションについて説明します。設定ファイルの構文の詳細については、付録 B を参照してください。

環境変数

Connection Broker の設定ファイルでは、2 種類の環境変数を使用できます。システム レベルの環境変数に加えて、SSH Tectia 固有の特殊な変数を使用できます。環境変数は、特殊な変数より優先されます。環境変数と特殊な変数が同じ名前を持っている場合は、環境変数が使用されます。

環境変数では、すべての英数字とアンダースコア ('_') 記号が許可されています。変数名は、許可されていない最初の文字で終了します。

たとえば、ファイルまたはディレクトリ パスを環境変数を使用して定義できます。それらの環境変数は、以下で説明するそれぞれの値に展開されます。

%VARIABLENAME%

環境変数が定義されている場合は、その値と置き換えられます。変数は、大文字と小文字が区別されることなく照合されます。変数が定義されていない場合は、文字列 '%VARIABLENAME%' がそのまま結果の値になります。

$VARIABLENAME

環境変数が定義されている場合は、その値と置き換えられます。変数は、UNIX では大文字と小文字が区別されて、Windows では大文字と小文字が区別されることなく照合されます。変数が定義されていない場合は、空の文字列と置き換えられます。

${VARIABLENAME}text

$VARIABLENAME' に対して定義された値に 'text' が付加された値と置き換えられます。

${VARIABLENAME:-default_value}

$VARIABLENAME' に対して定義された値と置き換えられるか、または変数が設定されていない場合は 'default_value' と置き換えられます。

SSH Tectia 固有の特殊な変数は以下の通りです。

%U または %username%

現在ログインしているユーザ名と置き換えられます。

%username-without-domain%

現在ログインしているユーザ名の短い形式、つまり、ドメイン部分がないユーザ名と置き換えられます。Windows で使用できます。

%G または %groupname%

現在ログインしているユーザのグループ名と置き換えられます。

%D または %homedir%

現在ログインしているユーザに対して定義されたホーム ディレクトリと置き換えられます。

%IU または %userid%

現在ログインしているユーザに対して定義されたユーザ識別子と置き換えられます。

%IG または %groupid%

現在ログインしているユーザに対して定義されたグループ識別子と置き換えられます。

特殊な変数はまた、UNIX 形式 (たとえば、$username) を使用して入力することもできます。

文書型宣言とルート エレメント

ブローカーの設定ファイルは有効な XML ファイルであり、文書型宣言の記述から始まります。

設定ファイルのルート エレメントは secsh-broker です。設定ファイルには、generaldefault-settingsprofilesstatic-tunnelsguifilter-engine、および logging エレメントを記述できます。

空の設定ファイルの例を以下に示します。

<!DOCTYPE secsh-broker SYSTEM "ssh-broker-ng-config-1.dtd">
<secsh-broker version="1.0">
  <general />
  <default-settings />
  <profiles />
  <static-tunnels />
  <gui />
  <filter-engine /> 
  <logging />

</secsh-broker>

gui エレメントは、Windows でのみ使用されます。

SSH Tectia Client では、filter-engine エレメントは、オプションの透過的 TCP トンネリング機能がインストールされ、有効になっている場合にのみ使用されます。

general エレメント

general エレメントには、使用される暗号化ライブラリやキー ストアなどの設定が含まれています。

general エレメントには、crypto-libcert-validationkey-storesstrict-host-key-checkinghost-key-always-askaccept-unknown-host-keys の各エレメントの 0 個または 1 つのインスタンス、および複数の known-hosts エレメントを記述できます。

crypto-lib

このエレメントでは、使用される暗号化ライブラリ モードを選択します。標準バージョン (standard) か、または FIPS 140-2 認定バージョン (fips) の暗号化ライブラリが使用できます。ライブラリの名前は、mode 属性の値として指定します。デフォルトでは、標準暗号化ライブラリが使用されます。

FIPS モードは、グローバル設定ファイルとユーザ設定ファイルのいずれか (または両方) で使用が指定されている場合に使用されます。

<crypto-lib mode="standard" /> 

FIPS モードでは、暗号化動作は FIPS 140-2 規格の規則に従って実行されます。FIPS ライブラリには、3des-cbcaes128-cbcaes192-cbc、ならびに aes256-cbc 暗号、および hmac-sha1 MAC が含まれています。

[注意]注意

FIPS モードを設定しても、暗号化プラグインが他のアルゴリズムを使用できなくなるわけではありません。たとえば CryptiCore は、メインの暗号化ライブラリが FIPS モードに設定されていても使用できます。FIPS 準拠のアルゴリズムだけが使用されるようにするには、非 FIPS アルゴリズムを設定で無効化します。cipherおよびmacを参照してください。

FIPS ライブラリが検証またはテストされたプラットフォームのリストについては、『SSH Tectia Client/Server Product Description』 を参照してください。

cert-validation

このエレメントでは、リモート サーバの認証証明書の検証に使用される公開鍵基盤 (PKI) の設定を定義します。このエレメントには、end-point-identity-checkdefault-domainhttp-proxy-url、および socks-server-url 属性を記述できます。

end-point-identity-check 属性では、クライアントがサーバのホスト名または IP アドレスを、サーバのホスト証明書で指定されたサブジェクト名またはサブジェクトの代替名 (DNS アドレス) と照合するかどうかを指定します。デフォルト値は yes です。no に設定されている場合、サーバ ホスト証明書内のフィールドは検証されず、証明書は有効期間と CRL チェックのみに基づいて受け入れられます。

[警告]警告

end-point-identity-check="no" と設定することはセキュリティ上危険です。無効にすると、サーバ ホスト証明書の発行元と同一の信頼された認証局 (CA) によって発行された証明書を持っている者が、サーバに対して中間者攻撃を実行できることになります。

default-domain 属性は、エンドポイント同一性チェックを有効にする場合に使用できます。この属性は、リモート システム名のデフォルト ドメインの部分を指定し、システム名の基本部分のみが使用可能な場合に使用されます。default-domain は、システム名にドット (.) が含まれていない場合にシステム名に追加されます。

デフォルト ドメインを指定しないと、たとえば、証明書に完全な DNS アドレス「rock.example.com」が指定されているときに、ユーザが短いホスト名で「rock」と指定してホストに接続しようとした場合に、エンドポイント同一性チェックに失敗します。

http-proxy-url 属性は HTTP プロキシを定義し、socks-server-url 属性は SOCKS サーバを定義します。これによって、証明書を検証するための LDAP または OCSP クエリを作成します。

サーバのアドレスは、属性の値として指定します。アドレスの形式は、SOCKS サーバの場合は socks://username@socks_server:port/network/netmask,network/netmask ...、HTTP プロキシの場合は http://username@proxy_server:port/network/netmask,network/netmask ... となります。

たとえば、SOCKS サーバでネットワーク 192.196.0.0 (16 ビット ドメイン) および 10.100.23.0 (8 ビット ドメイン) の外部の接続のためにホスト socks.ssh.com とポート 1080 を使用し、これらのネットワークが直接接続されるようにするには、socks-server-url を以下のように設定します。

"socks://mylogin@socks.ssh.com:1080/192.196.0.0/16,10.100.23.0/24"

cert-validation エレメントには、複数の ldap-serverocsp-respondercrl-prefetch エレメント、単一の dod-pki エレメント、および複数の ca-certificatekey-store エレメントを記述できます。これらのエレメントは、ここに示した順序で記述する必要があります。

ldap-server

このエレメントでは、CRL や下位の CA 証明書を取得するために使用される LDAP サーバのアドレスおよびポートを、現在有効になっている証明書の実行者名に基づいてそれぞれ address および port 属性で指定します。複数の ldap-server エレメントを使用して、複数の LDAP サーバを指定できます。

CRL 配布ポイントが存在する場合、CRL は、証明書で定義されている CRL 配布ポイントから自動的に収集されます。

port のデフォルト値は 389 です。

ocsp-responder

このエレメントでは、OCSP (Online Certificate Status Protocol) レスポンダのサービス アドレスを、属性 url に URL 形式で指定します。複数の ocsp-responder エレメントを使用することによって、複数の OCSP レスポンダを指定できます。

証明書に OCSP レスポンダの URL を含む有効な Authority Info Access 拡張が記述されている場合は、この URL がこの設定の代わりに使用されます。OCSP を正しく検証するには、エンド エンティティ証明書および OCSP レスポンダ証明書の両方を同じ CA によって発行する必要があることに注意してください。

オプションとして、validity-period を秒単位で定義できます。この時間中は、同じ証明書の新しい OCSP クエリは作成されず、古い結果が使用されます。デフォルトの有効期間は 0 (毎回、新しいクエリが作成される) です。

crl-prefetch

このエレメントによって、SSH Tectia Client/ConnectSecure が、CRL を指定された URL から定期的にダウンロードするように指示されます。url の値には、LDAP または HTTP URL を指定できます。または、ローカル ファイルを参照することもできます。ファイル形式はバイナリ DER または Base64 である必要があり、PEM はサポートされていません。

ローカル ファイル システムから CRL をダウンロードするには、以下の形式でファイル URL を定義します。

file:///absolute/path/name

LDAP サーバから CRL をダウンロードするには、以下の形式で LDAP URL を定義します。

ldap://ldap.server.com:389/CN=Root%20CA,OU=certification
                 %20authorities,DC=company,DC=com?certificaterevocationlist

CRL がダウンロードされる頻度を指定するには、interval 属性を使用します。デフォルトは 3600 秒です。

dod-pki

このエレメントによって、証明書が DoD PKI (米国国防総省公開鍵基盤) に準拠する必要があるかどうかを定義します。実際には、これによって証明書の鍵使用目的にデジタル署名ビットを設定する必要があります。enable 属性には、yes または no の値を設定できます。デフォルトは no です。

ca-certificate

このエレメントでは、サーバの認証で使用される認証局 (CA) を定義します。このエレメントには、namefiledisable-crlsuse-expired-crls の 4 つの属性を設定できます。

name 属性には、CA の名前を記述する必要があります。

このエレメントには、file 属性の値として X.509 CA 証明書へのパスを含めるか、または Base64 でエンコードされた ASCII ブロックとして証明書を含める必要があります。

disable-crls 属性を yes に設定すると、CRL チェックを無効にできます。デフォルトは no です。

use-expired-crls 属性に秒を表す数値を設定することによって、期限切れになった CRL を使用できます。デフォルトは 0 で、この場合、期限切れになった CRL は使用されません。

key-store

このエレメントでは、サーバの認証のために外部のキー ストアに保存された CA 証明書を定義します。現在は、SAF (System Authorization Facility) に保存された CA 証明書に対して z/OS でのみ使用されます。

disable-crls 属性を yes に設定すると、CRL チェックを無効にできます。デフォルトは no です。

use-expired-crls 属性に秒を表す数値を設定することによって、期限切れになった CRL を使用できます。デフォルトは 0 で、この場合、期限切れになった CRL は使用されません。

証明書の検証の設定例を以下に示します。

<cert-validation end-point-identity-check="yes" 
                 default-domain="example.com"
                 http-proxy-url="http://proxy.example.com:8080">
  <ldap-server address="ldap://ldap.example.com:389" />
  <ocsp-responder url="http://ocsp.example.com:8090" validity-period="0" /> 
  <crl-prefetch url="file:///full.path.to.crlfile" interval="1800" />
  <dod-pki enable="no" />
  <ca-certificate name="ssh_ca1"
                  file="ssh_ca1.crt"
                  disable-crls="no"
                  use-expired-crls="100" />
</cert-validation>         
key-stores

このエレメントでは、ユーザ公開鍵と証明書による認証の設定を定義します。

<general> エレメントの下に、1 つの <key-stores> インスタンスを記述できます。このエレメントにはさらに、任意の数の <key-store><user-keys>、および <identification> エレメントを記述でき、これらのエレメントの順序は自由です。

エレメントの値を定義する場合は、特殊な変数と環境変数を使用できます。以下の変数が使用でき、以下のように展開されます。

  • %U = %USERNAME% = ユーザ名

  • %USERNAME-WITHOUT-DOMAIN% = ドメイン部分がないユーザ名

  • %IU = %USERID% = ユーザ ID (Windows 以外)

  • %IG = %GROUPID% = ユーザ グループ ID (Windows 以外)

  • %D = %HOMEDIR% = ユーザのホーム ディレクトリ

  • %G = %GROUPNAME% = ユーザのデフォルト グループの名前

また、環境変数も、それぞれの現在の値と置き換えられます。たとえば、文字列 $HOME または %HOME% を使用して、ユーザのホーム ディレクトリに展開することができます (環境変数 HOME が設定されている場合)。

[注意]注意

短いエイリアス名 (たとえば、%U) は大文字と小文字が区別され、長いエイリアス名 (たとえば、%USERNAME%) は大文字と小文字が区別されません。

key-store

key-store エレメントによって、1 つのキー ストア プロバイダを設定します。key-stores/key-store エレメントには、type および init 属性を指定できます。

type 属性は、キー ストアのタイプです。現在サポートされているタイプは、"entrust""mscapi""pkcs11""software"、および "zos-saf" です。

init 属性は、キー ストア プロバイダに固有の初期化情報です。初期化文字列には、上の key-stores で説明した特殊な文字列を含めることができます。key-storesを参照してください。

キー ストアの設定例については、キー ストアの設定例項を参照してください。

user-keys

user-keys エレメントを使用して、ユーザ鍵のデフォルトのディレクトリを上書きできます。user-keys エレメントには、以下の属性を指定できます。

directory 属性では、ユーザの秘密鍵が保存されるディレクトリを定義します。フル パスを入力します。

passphrase-timeout 属性では、パスフレーズで保護された秘密鍵がタイムアウトして、ユーザがパスフレーズを再度入力しなければならなくなるまでの時間を秒単位で定義します。デフォルトは 0 で、この場合、パスフレーズはタイムアウトしません。このエレメントの値は、passphrase-idle-timeout の値より長くする必要があります。

デフォルトでは、ユーザがパスフレーズを正常に入力した後、Connection Broker はパスフレーズで保護された秘密鍵を開かれた状態にします。この設定は、パスフレーズのタイムアウト オプションを使用して変更できます。passphrase-timeout が設定されている場合は、タイムアウトの期限が切れるまで、秘密鍵は開かれた (パスフレーズを再度入力することなく使用可能な) 状態のままになります。passphrase-timeout 属性によって、ハード タイムアウトが設定されます。このタイムアウトは、鍵が開かれたときに 1 回だけ設定され、鍵が複数回使用されてもリセットされません。

passphrase-idle-timeout 属性では、ユーザが鍵にアクセスしたり使用したりしない場合に、パスフレーズで保護された秘密鍵がタイムアウトするまでの時間を秒単位で定義します。passphrase-idle-timeout は、鍵がアクセスされるたびにリセットされます。デフォルトは 0 で、この場合、パスフレーズがタイムアウトすることはありません。

両方のタイムアウト オプションを同時に設定できますが、アイドル タイムアウトがハード タイムアウトより長い場合はアイドル タイムアウトの効果がないことに注意してください。

identification

identification エレメントを使用して、ユーザ鍵を定義する identification ファイルのデフォルトの場所を上書きできます。identification エレメントには、以下の属性を指定できます。

file 属性では、identification ファイルの場所を指定します。フル パスを入力します。

base-path 属性では、identification ファイルがユーザの秘密鍵の保存場所と見なすディレクトリを定義します。このエレメントを使用して、identification ファイルのデフォルトの相対パスの解釈 (identification ファイルのディレクトリに相対的なパス) を上書きできます。

passphrase-timeout 属性では、ユーザがパスフレーズを再度入力しなければならなくなるまでの時間を秒単位で定義します。デフォルトは 0 で、この場合、パスフレーズが再度要求されることはありません。

passphrase-idle-timeout 属性では、ユーザの操作がない場合に、パスフレーズがタイムアウトするまでの時間を秒単位で定義します。デフォルトは 0 で、この場合、パスフレーズはタイムアウトしません。

タイムアウトの設定は、identification ファイルに記述されている秘密鍵にのみ影響します。

strict-host-key-checking

このエレメントでは、厳密なホスト鍵チェックを有効にします。厳密なホスト鍵チェックが有効になっている場合、Connection Broker は、接続時にホスト鍵をユーザの .ssh2/hostkeys ディレクトリに追加することはせず、さらに鍵が変更されたホストへの接続を拒否します。これにより、中間者攻撃に対する最大の保護が実現されます。ただし、新しいホストに頻繁に接続する場合は、多少面倒になることがあります。

strict-host-key-checking エレメントには、yes または no の値を持つ属性 enable を指定します。デフォルトは no で、この場合、ユーザは新しいホスト鍵や変更されたホスト鍵を受け入れるかどうかをたずねられます。

厳密なホスト鍵チェックは、グローバル設定ファイルとユーザ設定ファイルのいずれか (または両方) で使用が指定されている場合に使用されます。グローバル設定とユーザ固有の設定で異なる値が定義されている場合は、よりセキュアな方の値が使用されます。

<strict-host-key-checking enable="yes" /> 

strict-host-key-check が無効になっている場合 (デフォルトの状態)、SSH Tectia Client は、変更されたホスト公開鍵と新しいホスト公開鍵に関する情報を、そのフィンガープリントとともに syslog (UNIX の場合) またはイベント ビューア (Windows の場合) に記録します。

host-key-always-ask

このエレメントでは、既知の鍵であっても、Connection Broker がユーザに、提示されたホスト鍵の受け入れを確認するかどうかを定義します。

enable 属性の値として、値 yes または no を指定します。デフォルトは no です (既知のホスト鍵は確認を求めることなく受け入れられます)。

ホスト鍵の確認を求めるようにグローバル設定ファイルとユーザ設定ファイルのいずれかまたは両方で指定されている場合は、ホスト鍵の確認が常に求められます。

<host-key-always-ask enable="yes" /> 
accept-unknown-host-keys

このエレメントでは、Connection Broker が提示された新しいホスト鍵を自動的に受け入れるかどうかを定義します。このエレメントには、yes または no の値を持つ属性 enable を指定します。デフォルトは no です (不明なホスト鍵が自動的に受け入れられることはありません)。

透過的 FTP トンネリングまたは FTP-SFTP 変換が使用されている場合、ホスト鍵の受け入れをユーザに確認することはできません。この設定を yes に設定するか (推奨されません)、または SecureShell トンネリングおよび SFTP サーバのホスト鍵を事前に取得し、サーバの IP アドレスに基づいて保存する必要があります。

accept-unknown-host-keys が有効になっている場合、新しいホストからの鍵は自動的に受け入れられ、ユーザの確認を求めることなくホスト鍵のデータベースに保存されます。ただし、すでにデータベース内に鍵が存在するホストからの変更されたホスト鍵は保存されず、この接続のために受け入れられます。これは、ホスト鍵の受け入れを確認するすべてのプロンプトに、自動的に [Once] (接続を続行するが、新しいホスト鍵を保存しない) と答えるのと同じ効果があります。

変更されたホスト鍵が提供された場合は警告メッセージが表示され、新しいホスト鍵と変更されたホスト鍵の両方に関する情報がログに記録されます。

このエレメントがグローバル設定ファイルとユーザ設定ファイルのいずれかで no に設定されている場合は、変更されたホスト鍵または新しいホスト鍵について通常通り確認を求めます。このエレメントの yes の設定は、strict-host-key-checkinghost-key-always-ask の両方が no に設定されている (または明示的に定義されていない) 場合にのみ有効になります。

<accept-unknown-host-keys enable="no" /> 
[警告]警告

このオプションを有効にする前に、慎重に検討してください。ホスト鍵チェックを無効にすると、中間者攻撃に対して脆弱になります。

known-hosts

このエレメントを使用して、既知のサーバ ホストのホスト鍵の保存場所、およびその保存形式を指定できます。known-hosts ディレクトリが指定されていない場合は、デフォルトのディレクトリが既知のホスト鍵の保存に使用されます。デフォルトの場所については、ファイル項を参照してください。z/OS の場合のみ、このエレメントに key-store エレメントを記述できます。

このエレメントを使用して、以下のことを行うことができます。

  • 既知のサーバ ホストの公開鍵データまたは公開鍵ファイルが含まれているデフォルト以外のディレクトリを指定する。

  • 既知のサーバ ホストの公開鍵データが含まれている OpenSSH 形式の known_hosts ファイルのデフォルト以外の場所を指定する。

  • (z/OS 上で) 既知のサーバ ホストの証明書が含まれている SAF キー ストアを指定する。

path 属性の値として、known-hosts ファイルまたはディレクトリへのフル パスを入力します。

<known-hosts path="/u/username/.ssh/known_hosts" />
<known-hosts path="/etc/ssh2/hostkeys" />
<known-hosts path="/u/username/.ssh2/hostkeys" />
<known-hosts path="/h/username/hostkeys" filename-format="plain" />

サーバのホスト鍵は、'known-hosts' パス内で、この設定で指定されている順序で検索されます。known-hosts ファイルの設定を定義すると、デフォルトの OpenSSH ファイルは上書きされます。そのため、Connection Broker でデフォルトの OpenSSH の場所と、設定で指定した別の場所の両方を使用するようにする場合は、すべての場所を個別に指定する必要があります。

新しいホスト鍵は常に、最後に指定されたディレクトリに保存されます。ディレクトリが指定されていない場合、新しいホスト鍵はデフォルトの場所に保存されます。

filename-format 属性では、新しいホスト鍵ファイルが保存される形式を定義します。hash (デフォルト) と plain を指定できます。値 hash を指定した場合、ファイル名の形式は keys_<hash> ("keys_182166d2efe5a134d3fb948646e0b48f780bff6c" など) になります。値 plain を指定した場合、ファイル名の形式は key_<port>_<hostname>.pub になります。ここで、<port> は SecureShell サーバが実行されているポートであり、<host> は、そのサーバに接続するときに使用するホスト名 ("key_22_my.example.com.pub" など) です。

ホスト鍵の保存形式については、ホスト鍵の保存形式項を参照してください。

key-store

このエレメントでは、既知のサーバ ホストの証明書のための外部キー ストアを定義します。現在は、SAF (System Authorization Facility) に保存されたサーバ証明書に対して z/OS でのみ使用されます。

extended

このエレメントは、将来の使用のために予約されています。

キー ストアの設定例

ソフトウェア プロバイダ

ソフトウェア プロバイダは、標準の SecureShell v2 または従来の OpenSSH 形式でディスクに保存された鍵のペアと、ネイティブな X.509、PKCS#7、および PKCS#12 形式で保存された X.509 証明書を処理します。

単一の鍵ファイル (/u/exa/keys/enigma/etc/my_key など) を追加するには、秘密鍵ファイルと公開鍵ファイルの両方を指定します。

<key-stores>
  <key-store type="software" 
             init="key_files(/u/exa/keys/enigma.pub,/u/exa/keys/enigma)" />
  <key-store type="software" 
             init="key_files(/etc/my_key.pub,/etc/my_key)" />
</key-stores>

特定のディレクトリのすべての鍵 (/u/exa/keys/etc/keys のすべての鍵) を追加するには、以下のようにします。

<key-stores>
  <key-store type="software" 
             init="directory(path(/u/exa/keys))" />
  <key-store type="software" 
             init="directory(path(/etc/keys))" />
</key-stores>

Entrust プロバイダ

Entrust プロバイダは、独自の Entrust 形式で保存された鍵と証明書を処理します。

Entrust プロバイダの初期化ファイルとプロファイル固有のファイルを指定する必要があります。たとえば以下のようになります。

<key-stores>
  <key-store type="entrust" 
             init="ini-file(/etc/entrust.ini),profile-file(/etc/profile.epf)" />
</key-stores>

PKCS#11 プロバイダ

PKCS#11 プロバイダは、PKCS#11 トークン (スマート カードや USB トークンなど) に保存された鍵と証明書を処理します。

PKCS プロバイダの動的ライブラリ パスと、すべてまたは特定のスロットを指定します。たとえば、すべてのスロットの場合は以下のようになります。

<key-stores>
  <key-store type="pkcs11" init="dll(/usr/lib/pkcs.so),slots(all)" />
</key-stores>

たとえば、sesam という名前の 1 つのスロットの場合は以下のようになります。

<key-stores>
  <key-store type="pkcs11" init="dll(/usr/local/lib/pkcs.so),slots(sesam)" />
</key-stores>

default-settings エレメント

default-settings エレメントでは、接続に関連したデフォルト設定を定義します。プロファイル固有の設定により、これらの設定を上書きできます。profiles エレメント項を参照してください。

default-settings エレメントには、ciphersmacstransport-distributionrekeyauthentication-methodshostbased-default-domaincompressionproxyidle-timeouttcp-connect-timeoutkeepalive-intervalexclusive-connectionserver-bannersforwardsextendedremote-environmentserver-authentication-methodsauthentication-success-message の各エレメントの 0 個または 1 つのインスタンスおよび単一の sftpg3-mode エレメントをここに示した順序で記述できます。

ciphers

このエレメントでは、クライアントがサーバに提示する暗号を定義します。ciphers エレメントには、複数の cipher エレメントを記述できます。

暗号はリストに指定された順序で試行されます。

SSH Tectia Server for Linux on IBM System z では、3DES および AES アルゴリズムによる暗号化動作で、クライアント ツールはハードウェア アクセラレータ (CPACF) を自動的に使用します (CPACF が使用可能な場合)。

cipher

このエレメントでは、クライアントがデータ暗号化のために要求する暗号を name 属性に指定します。

サポートされる暗号は、3des-cbcaes128-cbcaes192-cbcaes256-cbcaes128-ctraes192-ctraes256-ctrarcfourblowfish-cbctwofish-cbctwofish128-cbctwofish192-cbctwofish256-cbccrypticore128@ssh.comseed-cbc@ssh.com、および none (暗号化なし) です。

Connection Broker によって使用されるデフォルトの暗号は順に、crypticore128@ssh.com (Windows および Linux x86 上)、aes128-cbcaes192-cbcaes256-cbcaes128-ctraes192-ctraes256-ctr3desseed-cbc@ssh.com です。

FIPS モードで動作可能な暗号は、aes128-cbcaes192-cbcaes256-cbc、および 3des-cbc です。

<ciphers>
  <cipher name="aes128-cbc" />
  <cipher name="3des-cbc" />
</ciphers>
macs

このエレメントでは、クライアントがサーバに提示する MAC を定義します。macs エレメントには、複数の mac エレメントを記述できます。

SSH Tectia Server for Linux on IBM System z では、HMAC-SHA1 アルゴリズムによる暗号化動作で、クライアント ツールはハードウェア アクセラレータ (CPACF) を自動的に使用します (CPACF が使用可能な場合)。

MAC はリストに指定された順序で試行されます。

mac

このエレメントでは、クライアントがデータ整合性の検証のために要求する MAC を name 属性に指定します。

サポートされる MAC アルゴリズムは、hmac-md5hmac-md5-96hmac-sha1hmac-sha1-96crypticore-mac@ssh.comおよび none (データ整合性の検証なし) です。

Connection Broker によって使用されるデフォルトの MAC は順に、crypticore-mac@ssh.com (Windows および Linux x86 上)、hmac-md5hmac-sha1

hmac-sha1 アルゴリズムは、FIPS モードで動作可能です。

<macs>   <mac name="hmac-sha1" /> </macs> 
transport-distribution

この設定では、SecureShell 接続によって使用されるトランスポート チャネルの数を定義します。複数のトランスポートを使用すると、低帯域幅の接続でスループットが向上する場合があります。

トランスポートの数は、num-transports 属性の値として指定します。現在は、1 ~ 8 のトランスポート数がサポートされています。UNIX では、デフォルトは 1 つのトランスポートです。Windows では、デフォルトは 2 つのトランスポートです。

<transport-distribution num-transports="1" /> 
rekey

このエレメントでは、鍵の交換が再度実行されるまでに転送されるデータ量を bytes 属性の値として指定します。値が "0" の場合、鍵の変更要求は無効になります。ただし、サーバからの鍵の変更要求は無効になりません。デフォルトは 1000000000 (1 GB) です。

<rekey bytes="1000000000" />
authentication-methods

このエレメントでは、SSH Tectia クライアント コンポーネントによって要求される認証方法を指定します。authentication-methods エレメントには、auth-hostbasedauth-passwordauth-publickeyauth-gssapiauth-keyboard-interactive のそれぞれ一つを記述できます。または、複数の authentication-method エレメントを指定できます。これらのエレメントの順序は自由です。

これらの認証方法は、auth-* または authentication-method エレメントが記述されている順序で試行されます。つまり、最も非対話的な方法を最初に記述する必要があります。

authentication-method

このエレメントでは、認証方法を name 属性で指定します。これは下位互換性のために含まれています。代わりに auth-* エレメントを使用してください。

許可されている認証方法の名前は、gssapi-with-micpublickeykeyboard-interactivepassword、および hostbased です。

SSH Tectia Client/ConnectSecure は、UNIX プラットフォームでのみホストベースの認証をサポートしています。

<authentication-methods>
  <authentication-method name="hostbased" />
  <authentication-method name="gssapi-with-mic" />
  <authentication-method name="publickey" />
  <authentication-method name="keyboard-interactive" />
  <authentication-method name="password" />
</authentication-methods>
auth-hostbased

このエレメントでは、ホストベースの認証を使用することを指定します。

auth-hostbased エレメントには、リモート サーバに通知される名前を指定するための属性 name を含む local-hostname エレメントが指定できます。リモート サーバは、クライアント ホストの公開鍵を検索するときのヒントとしてクライアント ホスト名を使用できます。この情報は認証結果にとって重要ではありませんが、サーバにあるホスト ID の記憶域が大きすぎてすべての ID を探すことが困難な場合は、関連するクライアント ホスト鍵の検索がより高速になります。

auth-password

このエレメントでは、パスワード認証を使用することを指定します。

auth-publickey

このエレメントでは、公開鍵認証を使用することを指定します。

auth-publickey エレメントには、key-selection エレメントを記述できます。

key-selection

このエレメントでは、クライアントがサーバにユーザ公開鍵を提示するときに使用する鍵選択ポリシーを指定します。policy 属性には、automatic (デフォルト) と interactive-shy の値を指定できます。

automatic モードでは、クライアントは以下の順序で鍵を試行します。

  1. 公開鍵が使用可能で、秘密鍵にパスフレーズが設定されていない鍵 (ユーザの操作はなし)

  2. 公開鍵は使用可能だが、秘密鍵にパスフレーズが設定されている鍵 (1 つのパスフレーズ クエリ)

  3. 公開鍵の取得にパスフレーズが必要だが、秘密鍵にはパスフレーズが設定されていない鍵 (処理対象の鍵でかつサーバに提示する鍵ごとに 1 つのユーザ クエリが必要、実際の公開鍵のログインではユーザの操作はなし)

  4. 残りの鍵。つまり、公開鍵の取得にも、秘密鍵の取得にもパスフレーズが必要な鍵

interactive-shy モードでは、クライアントは自動的にはどの鍵も試行せず、ユーザに使用可能な鍵のリストから鍵を選択するよう求めます。選択された鍵での認証が失敗した場合、クライアントはユーザに再び鍵を選択するよう求めます。

key-selection エレメントには、public-key エレメントを記述できます。

public-key

このエレメントを使用して、公開鍵認証中に通常の公開鍵のみ、または証明書のみを試行することを指定できます。type 属性には、plaincertificate の値を指定できます。デフォルトでは、通常の公開鍵と証明書の両方を試行します。

auth-keyboard-interactive

このエレメントでは、認証でキーボードインタラクティブを使用することを指定します。

auth-gssapi

このエレメントでは、認証で GSSAPI を使用することを指定します。

<authentication-methods>
  <auth-hostbased>
          <local-hostname name="host.example.com" />
  </auth-hostbased>
  <auth-gssapi />
  <auth-publickey>
    <key-selection policy="interactive-shy">
      <public-key type="plain" />
    </key-selection>
  </auth-publickey>
  <auth-keyboard-interactive />
  <auth-password />
</authentication-methods>
hostbased-default-domain

このエレメントでは、ホストのデフォルト ドメイン名を name として指定します。このエレメントは、ホストベースのユーザ認証を使用するときに、クライアント ホストの完全修飾ドメイン名 (FQDN) がサーバに確実に転送されるようにするために使用されます。

デフォルト ドメイン名は、短いホスト名がサーバに送信される前にその短いホスト名に追加されます。これが必要なのは、一部のプラットフォーム (Solaris など) ではホスト名の短い形式が使用され、それによって署名を作成できないためです。

デフォルト ドメイン名の許可されている形式は、.example.comexample.com (先頭のドットはなし) です。たとえば以下のようになります。

<hostbased-default-domain name=".example.com" /> 
compression

このエレメントでは、すべてのトラフィックに対して圧縮を使用するかどうかを指定します。有効になっている場合は、転送されるすべてのデータにその場で圧縮が適用されます。これは、転送中のファイルの圧縮とは異なることに注意してください。

圧縮アルゴリズムの名前と圧縮レベルを属性として指定できます。name 属性は、none (圧縮を使用しない) または、現在サポートされている唯一のアルゴリズムである zlib として定義できます。デフォルトでは、圧縮は使用されません。

level 属性は、09 の整数で指定できます。圧縮が有効でレベルが指定されなかった場合のデフォルトの圧縮レベルは 6 です。

例: 最大レベルで圧縮を有効にするには、以下の設定を行います。

<compression name="zlib" level="9"/> 

圧縮は、コマンドライン ツールを使用して接続ごとに有効にすることもできます。詳細については、sshg3(1)sftpg3(1)、およびscpg3(1)の man ページを参照してください。

proxy

このエレメントでは、クライアントが接続に使用する HTTP プロキシまたは SOCKS サーバのルールを定義します。このエレメントでは、1 つの属性 ruleset を指定します。

属性値の形式は、セミコロン (;) で区切られた一連のルールです。各ルールの形式は、URL の形式と似ています。ルールでは、接続の種類が最初に記載されます。種類は directsockssocks4socks5http-connect のいずれかです。ここで socks は、socks4 と同義です。これに続いて、サーバのアドレスおよびポート番号が記載されます。ポート番号が設定されていない場合、デフォルトでは SOCKS の場合は 1080、HTTP の場合は 80 のポートがそれぞれ使用されます。

アドレスの後に、ゼロまたはそれ以上の条件が、カンマ (,) で区切られて設定されます。条件では、IP アドレスまたは DNS 名を指定できます。

direct:///[cond[,cond]...]
socks://server/[cond[,cond]...]
socks4://server/[cond[,cond]...]
socks5://server/[cond[,cond]...]
http-connect://server/[cond[,cond]...]

IP アドレス/ポートの条件にはアドレス パターンのほかに、以下のようにオプションでポートの範囲を記載することもできます。

ip_pattern[:port_range]

ip_pattern は、以下のいずれかの形式になります。

  • 単一の IP アドレス x.x.x.x

  • x.x.x.x-y.y.y.y の形式の IP アドレス範囲

  • x.x.x.x/y の形式の IP サブネットワーク マスク

DNS 名の条件は、正規表現の "*" と "?" を含むホスト名とポート範囲で構成されます。

name_pattern[:port_range]

proxy エレメントの例を以下に示します。これによってサーバはコールバック アドレスおよび ssh.com ドメインに直接アクセスします。*.example には HTTP CONNECT でアクセスし、その他すべての宛先には、SOCKS4 でアクセスします。

<proxy ruleset="direct:///127.0.0.0/8,*.ssh.com;
                http-connect://http-proxy.ssh.com:8080/*.example;
                socks://fw.ssh.com:1080/" />
idle-timeout

このエレメントでは、すべての接続チャネルが閉じられた後、その接続が自動的に閉じられるまでのアイドル時間の長さを指定します。time は秒単位で指定します。type は常に接続です。

デフォルト設定は 5 秒です。この時間を長く設定することにより、セッション (sshg3 など) が閉じられた後もサーバへの接続を開いたままにすることができます。この時間中は、サーバへの新しいセッションを再認証することなく開始できます。この時間を 0 に設定すると、サーバへの最後のチャネルが閉じられた時点でただちに接続が終了します。

<idle-timeout time="5" />
tcp-connect-timeout

このエレメントでは、TCP 接続のタイムアウトを指定します。この設定が指定されていると、リモート ホストがダウンまたは利用不可の場合、定義された時間が経過した後 SecureShell サーバへの接続試行が停止します。このタイムアウトによって、デフォルトのシステム TCP タイムアウトが上書きされます。また、profiles 設定で接続プロファイルごとに、またはコマンドラインで接続ごとに tcp-connect-timeout 設定を定義することによって、このタイムアウトの設定を上書きできます。

time は秒単位で指定します。工場出荷時のデフォルト設定は 5 秒です。値 0 を指定するとこの機能が無効になり、デフォルトのシステム TCP タイムアウトが使用されます。

<tcp-connect-timeout time="5" />
keepalive-interval

このエレメントでは、SecureShell サーバにキープアライブ メッセージを送信する間隔を指定します。time 値は秒単位で指定します。デフォルト設定は 0 で、この場合、キープアライブ メッセージは無効になります。

<keepalive-interval time="0" />
exclusive-connection

exclusive-connection エレメントを使用して、新しいチャネルごとに新しい接続を開くことを指定できます。

enable 属性の値として、値 yes または no を指定します。デフォルトは no で、この場合、開かれている接続がクライアントによって要求された新しいチャネルに再利用されます。

server-banners

このエレメントでは、サーバ バナー メッセージ ファイル (存在する場合) をログイン前のユーザに表示するかどうかを定義します。visible 属性の値として、値 yes または no を指定します。デフォルト値は yes です。

サーバ バナーを削除するには、以下のようにします。

<server-banners visible="no" />
forwards

このエレメントには、クライアント側で X11 またはエージェント転送 (トンネリング) が許可されるかどうかを定義する forward エレメントを記述します。

forward

このエレメントでは、X11 またはエージェント転送の設定を定義します。

type 属性では、転送の種類 (x11 または agent) を定義します。state 属性では、転送を onoff、または denied に設定します。転送が denied に設定されている場合、ユーザはコマンドラインで転送を有効にすることができません。

システム全体で X11 転送を拒否し、エージェント転送を許可する forward 設定の例を以下に示します。

<forwards>
  <forward type="x11" state="denied" />
  <forward type="agent" state="on" />
</forwards>

X11 およびエージェント転送の使用の詳細については、X11 転送項およびエージェント転送項を参照してください。

extended

このエレメントは、将来の使用のために予約されています。

server-authentication-methods

このエレメントを使用して、サーバの認証で Connection Broker が特定の方法のみを使用するよう強制できます。このエレメントには、最大 2 つの authentication-method エレメントを記述できます。

authentication-method

server-authentication-methods/authentication-method エレメントには、certificate または publickey の値を持つ name 属性を指定します。

certificate のみが指定されている場合は、サーバ証明書が必要です。サーバ証明書が受信されない場合は、接続が失敗します。

publickey のみ、または certificatepublickey の両方が指定されているときは、サーバ証明書が存在する場合は、そのサーバ証明書が使用されます。それ以外の場合は、サーバ公開鍵が使用されます。

<server-authentication-methods>
  <authentication-method name="publickey" />
  <authentication-method name="certificate" />
</server-authentication-methods>
authentication-success-message

この設定では、AuthenticationSuccessMsg メッセージを出力するかどうかを定義します。authentication-success-message エレメントには、yes または no の値を持つ属性 enable を指定します。デフォルトは yes で、この場合、メッセージは出力され、ログにも記録されます。

sftpg3-mode

この設定では、ファイルを転送するときの sftpg3 クライアントの動作を定義します。sftpg3-mode エレメントには、以下の値を持つ compatibility-mode 属性を指定します。

  • tectia (デフォルト) - sftpg3 はファイルを再帰的に転送します。つまり、現在のディレクトリとそのすべてのサブディレクトリのファイルが転送されます。

  • ftp - コマンド get/put がコマンド sget/sput として実行されます。つまり、単一のファイルが転送されます。また、mget/mput コマンドの再帰の深さが 1 に設定されます。つまり、指定したディレクトリのファイルのみが転送され、サブディレクトリのファイルは転送されません。

  • openssh - コマンド get/put/mget/mput が同様に動作し、再帰の深さが 1 に設定されます。つまり、指定したディレクトリのファイルのみが転送され、サブディレクトリのファイルは転送されません。

ここで設定したモードは、環境変数 SSH_SFTP_CMD_GETPUT_MODE で上書きできます。

また、再帰の深さは sftpg3 クライアントのコマンド get/put/mget/mput を使用し、コマンドライン オプション --max-depth="LEVEL" を指定することによっても上書きできます。詳細については、sftpg3(1)を参照してください。

remote-environment

このエレメントには、クライアント側からサーバに渡される環境変数を定義する environment エレメントを記述します。環境変数はその後、コマンド、シェル、またはサブシステムを要求するときにサーバ上で設定されます。

サーバで環境変数の設定を制限できることに注意してください。

environment

このエレメントでは、環境変数の名前と値、および Connection Broker がこの値を処理する必要があるかどうかを定義します。namevalue、および format 属性を指定できます。

リモート環境の設定の例を以下に示します。

<remote-environment>
  <environment name="FOO" value="bar" />
  <environment name="QUX" value="%Ubaz" format="yes" />
  <environment name="ZAPPA" value="%Ubaz" />
</remote-environment>

value%U を使用して、ユーザ名を示すことができます。format="yes" も定義されている場合、Connection Broker は %U を実際のユーザ名として処理してから、そのユーザ名をサーバに送信します。

この例では、ユーザ名が joedoe であるとします。サーバで環境変数の設定が許可されているとすると、上の設定の例によって、サーバ側では以下の環境変数が生成されます。

FOO=bar 
QUX=joedoebaz 
ZAPPA=%Ubaz 

コマンドライン クライアントで、sshg3 コマンドに引数 --remote-environment または --remote-environment-format を使用すると、設定ファイルで行われたリモート環境の設定を上書きできます。

コマンドライン オプションについては、sshg3(1)を参照してください。

profiles エレメント

profiles エレメントでは、指定されたサーバに接続するための接続プロファイルを定義します。profiles エレメントには、複数の profile エレメントを記述できます。各プロファイルでは、1 つのサーバへの接続ルールを定義します。profile エレメントの設定によって、デフォルトの接続設定が上書きされます。

プロファイルが接続に使用されると、そのプロファイル内の設定によってデフォルト設定が上書きされます。default-settings エレメント項を参照してください。

profile

profile エレメントでは、接続プロファイルを定義します。このエレメントには、idnamehostportprotocolconnect-on-startupuser、および gateway-profile 属性を指定できます。

プロファイルの id は、そのプロファイルが存在する間は変更されない一意識別子である必要があります。

プロファイルの名前を name 属性で指定できます。これは自由形式のテキスト文字列です。コマンドラインでこの名前を使用して、プロファイルを使って接続できます。そのため、プロファイルごとに一意の名前を定義します。

host 属性は、SecureShell サーバ ホストのアドレスを定義するものであり、必須の設定です。このアドレスは、IP アドレスでもドメイン名でもかまいません。値 host="*" を使用すると、セッションを開始するときに、ユーザにホスト アドレスを入力するよう求めることができます。

プロファイルが透過的 TCP または透過的 FTP トンネリングあるいは FTP-SFTP 変換で使用され、ホスト名がアプリケーションから取得される (filter-engine/rule[@hostname-from-app="yes"]) 場合は、空の値 host="" を使用できます。詳細については、ruleを参照してください。

port は必須の設定です。この属性では、SecureShell サーバ リスナーのポート番号を定義します。デフォルトのポートは 22 です。

protocol は必須の設定です。この属性では、使用する通信プロトコルを定義します。現在許可されている値は secsh2 だけです。

Connection Broker が起動するときに、プロファイルに定義された接続が自動的に開始されるようにする場合は、connect-on-startup 属性の値を yes に設定します。この場合は、user 属性 (接続のために使用されるユーザ名) も指定します。また、接続のための何らかの形式の非対話的な認証も設定する必要があります。

user 属性では、接続を開くために使用するユーザ名を指定します。値 "%USERNAME%" を使用すると、ユーザ名を現在のユーザに設定できます。値 user="*" を使用すると、ログインするときに、ユーザにユーザ名を入力するよう求めることができます。

gateway-profile 属性を使用して、ネストされたトンネルを作成できます。プロファイルの local-tunnel エレメントで定義されたトンネルと、プロファイルを参照する filter-engine および static-tunnels で定義されたトンネルをネストできます。属性の値として、接続を確立するために使用するプロファイル名を指定します。最初のトンネルはゲートウェイ ホストのプロファイルを使用して作成され、そこから、このプロファイルで定義されたホストまでの 2 番目のトンネルが作成されます。

hostkey

このエレメントでは、file 属性の値としてリモート サーバ ホストの公開鍵ファイルへのパスを指定します。

また公開鍵は、Base64 でエンコードされたアスキー ブロックとして記述することもできます。

ciphers

このエレメントでは、このプロファイルで使用される暗号を定義します。詳細については、ciphersを参照してください。

macs

このエレメントでは、このプロファイルで使用される MAC を定義します。詳細については、macsを参照してください。

transport-distribution

このエレメントでは、このプロファイルのトランスポート数を定義します。詳細については、transport-distributionを参照してください。

rekey

このエレメントでは、このプロファイルで使用される鍵の変更の設定を定義します。詳細については、rekeyを参照してください。

authentication-methods

このエレメントでは、このプロファイルで使用される認証方法を定義します。詳細については、authentication-methodsを参照してください。

user-identities

このエレメントでは、ユーザ公開鍵認証で使用される識別子を指定します。Connection Broker で使用可能なすべての鍵を指定する key-stores エレメントとは異なり、このエレメントを使用すると、この接続プロファイルが使用されるときに認証で試行される鍵を制御したり、それらの鍵が試行される順序を指定したりできます。

user-identities エレメントには、複数の identity エレメントを記述できます。複数の identity エレメントが使用されている場合は、記述されている順序で試行されます。

identity エレメントには、identity-filefilehashid、および data 属性があります。

identity-file 属性では、公開鍵認証で使用される identification ファイルでユーザ識別子を読み取ることを指定します。identification ファイルのデフォルトのディレクトリ ($HOME/.ssh2) とは別の場所にファイルがある場合は、そのファイルへのフル パスを入力します。ssh-broker-g3(1)も参照してください。

file 属性では、公開鍵ファイル (主として) または証明書へのパスを指定します。値として、フル パスとファイル名を入力します。

hash 属性は、関連する秘密鍵を識別するために使用される公開鍵のハッシュを入力するために使用されます。この鍵は、Connection Broker で使用できる必要があります。使用可能な鍵の公開鍵のハッシュは、ssh-broker-ctl ツールで一覧表示できます。ssh-broker-ctl(1)も参照してください。

id 属性は、将来の使用のために予約されています。

data 属性は、将来の使用のために予約されています。

user-identities エレメントの例を以下に示します。

<user-identities>
  <identity identity-file="C:\\ mykey" />
  <identity file="$HOME/user/.ssh2/id_dsa_2048_a" />
  <identity file="C:\\private_keys\id_dsa_2048_a" />
  <identity hash="#a8edd3845005931aaa658b5573609e7d31e23afd" />
</user-identities>
compression

このエレメントでは、このプロファイルで使用される圧縮の設定を定義します。詳細については、compressionを参照してください。

proxy

このエレメントでは、このプロファイルで使用される HTTP プロキシと SOCKS サーバの設定を定義します。詳細については、proxyを参照してください。

このプロファイルに対して gateway-profile が定義されてる場合、このプロキシの設定は無視され、デフォルトのプロキシ設定またはゲートウェイ プロファイルのプロキシ設定が代わりに使用されます。

idle-timeout

このエレメントでは、このプロファイルで使用されるアイドル タイムアウトの設定を定義します。詳細については、idle-timeoutを参照してください。

tcp-connect-timeout

このエレメントでは、このプロファイルの TCP 接続タイムアウトを定義します。このタイムアウトは、ダウンまたは利用不可の状態にある SecureShell サーバへの接続試行を終了するために使用されます。デフォルト値は 5 秒です。詳細については、tcp-connect-timeoutを参照してください。

keepalive-interval

このエレメントでは、SecureShell サーバにキープアライブ メッセージを送信する間隔を定義します。この設定は、このプロファイルに適用されます。デフォルト値は 0 で、この場合、キープアライブ メッセージは送信されません。詳細については、keepalive-intervalを参照してください。

exclusive-connection

このエレメントでは、このプロファイルを使用して接続が確立されるときに、新しいチャネルごとに新しい接続を開くかどうかを定義します。詳細については、exclusive-connectionを参照してください。

server-banners

このエレメントでは、このプロファイルで使用されるサーバ バナーの設定を定義します。詳細については、server-bannersを参照してください。

forwards

このエレメントでは、このプロファイルで許可される転送を定義します。詳細については、forwardsを参照してください。

tunnels

tunnels エレメントでは、このプロファイルを使用して接続が確立されるときに開かれるトンネルを定義します。このエレメントには、複数の local-tunnel および remote-tunnel エレメントを記述できます。

local-tunnel

このエレメントでは、この接続プロファイルを使用して接続が確立されるときに自動的に開かれるローカル トンネル (ポート転送) を定義します。このエレメントには、typelisten-portlisten-addressdst-hostdst-portallow-relay の 5 つの属性があります。

type 属性では、トンネルの種類を定義します。これには、tcp (デフォルト、特殊な処理はなし)、ftp (FTP データ チャネルに対して一時的な転送が作成され、FTP セッション全体が効果的にセキュアになる)、または socks (SSH Tectia Client/ConnectSecure が他のアプリケーションの SOCKS サーバとして機能し、SOCKS トランザクションで要求された転送が作成される) を指定できます。

listen-port 属性では、ローカル クライアント上のリスナー ポート番号を定義します。

listen-address 属性を使用して、リッスンする必要のあるクライアント上のネットワーク インターフェイスを定義できます。値には、ローカル ホスト上のインターフェイスに属する IP アドレスを指定できます。値 0.0.0.0 を指定すると、すべてのインターフェイスがリッスンされます。デフォルトは 127.0.0.1 (クライアント上の localhost ループバック アドレス) です。他の値を設定するには、allow-relay="yes" を設定する必要があります。

指定されたリスナーに接続を作成すると、リモート サーバに対する接続が SecureShell を通してトンネルされ、サーバから指定された接続先ホストおよびポート (dst-hostdst-port) への別の接続が作成されます。サーバから先の接続は、通常の TCP 接続であるためセキュアではありません。

dst-host および dst-port 属性では、接続先ホストのアドレスとポートを定義します。dst-host の値は、IP アドレスでもドメイン名でもかまいません。デフォルトは 127.0.0.1 (localhost = サーバ ホスト) です。

allow-relay 属性では、クライアント ホストの外部からリッスンされるポートへの接続が許可されるかどうかを定義します。デフォルトは no です。allow-relay="yes" を使用する場合は、listen-address 設定も確認されます。

ローカル トンネルの使用の詳細については、ローカル トンネル項を参照してください。

remote-tunnel

このエレメントでは、この接続プロファイルを使用して接続が確立されるときに自動的に開かれるリモート トンネル (ポート転送) を定義します。このエレメントには、typelisten-portlisten-addressdst-hostdst-portallow-relay の 6 つの属性があります。

type 属性では、トンネルの種類を定義します。これには、tcp (デフォルト、特殊な処理はなし) と ftp (FTP データ チャネルに対して一時的な転送が作成され、クライアントとサーバの間の FTP セッションが効果的にセキュアになる) のいずれかを指定できます。

listen-port 属性では、リモート サーバ上のリスナー ポート番号を定義します。

listen-address 属性を使用して、リッスンする必要のあるサーバ上のネットワーク インターフェイスを定義できます。その値には、サーバ ホスト上のインターフェイスに属する IP アドレスを指定できます。値 0.0.0.0 を指定すると、すべてのインターフェイスがリッスンされます。デフォルトは 127.0.0.1 (サーバ上の localhost ループバック アドレス) です。他の値を設定するには、allow-relay="yes" を設定する必要があります。

このリスナーに接続を作成すると、ローカル クライアントに対する接続が SecureShell を通してトンネルされ、クライアントから指定された接続先ホストおよびポート (dst-hostdst-port) への別の接続が作成されます。クライアントから先の接続は、通常の TCP 接続であるためセキュアではありません。

dst-host および dst-port 属性では、接続先ホストのアドレスとポートを定義します。dst-host の値は、IP アドレスでもドメイン名でもかまいません。デフォルトは 127.0.0.1 (localhost = クライアント ホスト) です。

allow-relay 属性では、サーバ ホストの外部からリスナー ポートへの接続が許可されるかどうかを定義します。デフォルトは no です。

リモート トンネルの使用の詳細については、リモート トンネル項を参照してください。

extended

このエレメントは、将来の使用のために予約されています。

remote-environment

このエレメントでは、このプロファイルで使用されるリモート環境の設定を定義します。remote-environment エレメント内では、サーバに渡される環境変数ごとに environment エレメントを定義します。詳細については、remote-environmentを参照してください。

server-authentication-methods

このエレメントでは、このプロファイルで許可されるサーバの認証方法を定義します。詳細については、server-authentication-methodsを参照してください。

接続プロファイルの例を以下に示します。

<profile name="rock"
         id="id1"
         host="rock.example.com"
         port="22"
         connect-on-startup="no"
         user="doct">

  <hostkey file="key_22_rock.pub">
  </hostkey>

  <authentication-methods>
    <authentication-method name="publickey" />
    <authentication-method name="password" />
  </authentication-methods>

  <server-banners visible="yes" />

  <forwards>
    <forward type="agent" state="on" />
    <forward type="x11" state="on" />
  </forwards>

  <tunnels>
    <local-tunnel type="tcp"
                  listen-port="143"
                  dst-host="imap.example.com"
                  dst-port="143"
                  allow-relay="no" />
  </tunnels>

  <remote-environment>
    <environment name="FOO" value="bar" />
    <environment name="QUX" value="%Ubaz" format="yes" />
    <environment name="ZAPPA" value="%Ubaz" />
  </remote-environment>

</profile>

static-tunnels エレメント

static-tunnels 設定は、自動トンネルの動作を設定するために使用されます。Connection Broker の起動時に自動的にローカル トンネル用のリスナーを作成することができます。実際のトンネルは、リスナー ポートへの接続が最初に行われるときに形成されます。その時点でサーバへの接続が開かれていない場合は、その接続も自動的に開かれます。

static-tunnels エレメントには、任意の数の tunnel エレメントを記述できます。

tunnel

tunnel エレメントでは、静的トンネルを指定します。このエレメントには、typelisten-portlisten-addressdst-hostdst-portallow-relay、および profile 属性を指定できます。

type 属性では、トンネルの種類を定義します。tcpftp のいずれかを指定できます。

  • tcp では、一般的な TCP トンネリングのリスナーを指定します。

  • ftp では、FTP トンネリングのリスナーを指定します (FTP データ チャネルもトンネルされます)。

listen-port 属性では、ローカル クライアント上のリスナー ポート番号を定義します。

listen-address 属性を使用して、リッスンする必要のあるクライアント上のネットワーク インターフェイスを定義できます。値には、ローカル ホスト上のインターフェイスに属する IP アドレスを指定できます。値 0.0.0.0 を指定すると、すべてのインターフェイスがリッスンされます。デフォルトは 127.0.0.1 (クライアント上の localhost ループバック アドレス) です。他の値を設定するには、allow-relay="yes" を設定する必要があります。

dst-host および dst-port 属性では、接続先ホストのアドレスとポートを定義します。dst-host の値は、IP アドレスでもドメイン名でもかまいません。デフォルトは 127.0.0.1 (localhost = サーバ ホスト) です。

allow-relay 属性では、クライアント ホストの外部からリッスンされるポートへの接続が許可されるかどうかを定義します。デフォルトは no です。

profile 属性では、トンネルに使用される接続プロファイル ID を指定します。

<static-tunnels>
  <tunnel type="tcp"
          listen-address="127.0.0.1"
          listen-port="9000"
          dst-host="st.example.com"
          dst-port="9000"
          allow-relay="no"
          profile="id1" />
</static-tunnels>

gui エレメント (Windows のみ)

gui エレメントは、SSH Tectia ターミナル GUI の設定を調整するために使用されます。gui エレメントには、以下の属性を指定できます。 hide-tray-iconshow-exit-buttonshow-adminenable-connector、および show-security-notification。最後の 2 つの設定は、システムで透過的 TCP トンネリングが有効になっている場合にのみ有効です。 これらの属性はすべて、値として yes または no を指定する必要があります。

hide-tray-icon 属性では、システム トレイに SSH Tectia アイコンを表示するかどうかを制御します。デフォルトは no で、この場合、トレイ アイコンが表示されます。

show-exit-button 属性では、SSH Tectia アイコンのショートカット メニューに [終了] コマンドを表示するかどうかを制御します。デフォルト値は yes です。

show-admin 属性では、SSH Tectia アイコンのショートカット メニューに [構成] コマンドを表示するかどうかを定義します。デフォルト値は yes です。このボタンが表示されていない場合は、デフォルトではディレクトリ "C:\Program Files\SSH Communications Security\SSH Tectia\SSH Tectia Broker" にある ssh-tectia-configuration.exe を実行することによって SSH Tectia 構成ツールを起動できます。

enable-connector 属性では、透過的 TCP トンネリングがアクティブであり、トンネリング用にアプリケーション接続をキャプチャするかどうかを定義します。デフォルト値は yes です。

Windows では、show-security-notification 属性によって、透過的 TCP または FTP トンネルを確立したり閉じたりしたときに SSH Tectia のセキュリティ通知を表示するかどうかを定義します。デフォルト値は yes です。

<gui hide-tray-icon="no"
     show-exit-button="yes"
     show-admin="yes"
     enable-connector="yes"
     show-security-notification="yes" />

filter-engine エレメント

filter-engine エレメントでは、SSH Tectia Client をインストールするときに別途選択する必要のある透過的 TCP トンネリングに関連した設定を処理します。

[注意]注意

グローバル設定ファイルが使用可能な場合、filter-engine エレメントはこのファイルから読み取られます (SSH Tectia Client/ConnectSecure は SSH Tectia Manager によって制御されます)。グローバル設定ファイルに filter-engine エレメントが含まれていない場合にのみ、このエレメントはユーザ固有の設定ファイルから読み取られます。

グローバル設定は、UNIX では /etc/ssh2/ssh-broker-config.xml として、Windows では "C:\Program Files\SSH Communications Security\SSH Tectia\SSH Tectia Broker\ssh-broker-config.xml" として保存されます。

設定例については、以下のサンプル ファイルを参照してください。

  • UNIX の場合: etc/ssh2/ssh-broker-config-example-capture.xml および etc/ssh2/ssh-broker-config-example.xml

  • Windows の場合: "<INSTALLDIR>\SSH Tectia Broker\ssh-broker-config-example-capture.xml" および "<INSTALLDIR>\SSH Tectia Broker\ssh-broker-config-example.xml"

トップ レベルのエレメントは filter-engine です。このエレメントには、ip-generate-startftp-filter-at-signs (SSH Tectia ConnectSecure でのみ使用) の 2 つの属性があります。

ip-generate-start 属性では、疑似 IP アドレス領域の開始アドレスを定義します。疑似 IP は、アプリケーションが SSH 接続キャプチャ コンポーネントを通して DNS クエリを実行するときに、Connection Broker によって生成されます。

SSH Tectia ConnectSecure では、スクリプトを使用して FTP/SFTP クライアントから SFTP サーバへの直接の接続を開き、プロキシをバイパスする場合に、FTP-SFTP 変換で ftp-filter-at-signs 属性を使用できます。この属性では、SSH Tectia ConnectSecure が FTP スクリプトで指定された FTP ユーザ名、FTP サーバ名、および FTP サーバ パスワードを使用することを定義します。

FTP スクリプトでは、ユーザ名が ftp-user@proxy-user@ftp-server の形式、パスワードが ftp-password@proxy-password の形式で指定されている必要があります。@ 記号は、文字列から関連するデータを抽出するために使用されます。

ftp-filter-at-signs の値は yes または no で、デフォルトは no です。

ftp-filter-at-signs="yes" の場合、SSH Tectia ConnectSecure はユーザ名文字列を最初の @ 記号で切って ftp-user を抽出し、最後の @ 記号で切って ftp-server を抽出します。残りの文字列は無視されます。同様に、パスワード文字列は最後の @ 記号で切られ、最初の部分が SFTP サーバ上のパスワードとして使用されます。

[注意]注意

filter-engine エレメントの下に、任意の数の networkdnsfilter、または rule エレメントを記述できます。フィルタ エンジンは設定ファイルで指定されている順序でエレメントを使用するため、これらのエレメントの順序が重要です。

network

network エレメントでは、SSH Tectia Client/ConnectSecure が実行されている「場所」を指定します。network エレメントを使用すると、SSH Tectia Client/ConnectSecure の場所を認識する機能を実現できます。このエレメントには、idaddressdomainip-generate-start の 4 つの属性があります。

id 属性では、network エレメントの一意識別子を指定します。address 属性では、ネットワークのアドレスを指定します。値が存在しないか、または空の場合は使用されません。domain 属性では、コンピュータのドメイン名を指定します。値が存在しないか、または空の場合は使用されません。ip-generate-start 属性では、疑似 IP 領域の開始アドレスを定義します。この属性がここに定義されている場合、これによって filter-engine エレメントの ip-generate-start 属性が上書きされます。

dns
[注意]注意

dns エレメントは、下位互換性のために存在します。現在は、rule エレメントが同じ設定に使用されます。

dns エレメントでは、フィルタ エンジンの DNS ルールを作成します。このエレメントには、idnetwork-idapplicationhostip-addresspseudo-ip の 6 つの属性があります。それらの説明については、下のruleを参照してください。

filter
[注意]注意

filter エレメントは、下位互換性のために存在します。現在は、rule エレメントが同じ設定に使用されます。

filter エレメントでは、接続の動作を指定します。このエレメントには、dns-idportsactionprofile-iddestinationdestination-portfallback-to-plain の各属性があります。

dns-id 属性は、dns エレメントへの参照です。

他の属性の説明については、下のruleを参照してください。

rule

rule エレメントでは、フィルタ処理された接続の処理方法を指定します。このエレメントには、applicationhostip-addresspseudo-ipportsactionprofile-iddestinationdestination-portusernamehostname-from-appusername-from-appfallback-to-plain の各属性があります。

application 属性を使用して、ルールが適用される 1 つまたは複数のアプリケーションを指定できます。この属性には、egrep 構文を使用した正規表現を指定できます。構文については、付録 D を参照してください。

host 属性では、対象のホスト名を指定します。この属性には、egrep 構文を使用した正規表現を指定できます。

ip-address 属性では、対象のホスト IP アドレスを指定します。この属性には、egrep 構文を使用した正規表現を指定できます。ホスト名と IP アドレスの両方が定義されている場合は、host 属性が優先され、ip-address 属性は無視されます。

ip-address が空のままで、host が一致する場合、pseudo-ip 設定には以下の効果があります。

  • pseudo-ip="yes" の場合、Connection Broker は対象のホストの疑似 IP アドレスを割り当て、SSH Tectia Server は実際の IP アドレスを解決します。内部ネットワーク内のマシンの名前解決は外部からは使用できないため、外部から内部ネットワークにアクセスする場合は疑似 IP アドレスを使用する必要があります。

  • pseudo-ip="no" の場合は、対象のホスト名に対する通常の DNS クエリが実行されます。デフォルト値は no です。

ports 属性には、単一のポートまたは範囲を指定できます。範囲を指定するには、2 つの整数の間にハイフンを付けます ("21-25" など)。

[注意]注意

FTP-SFTP 変換で、フォールバック モードが設定されている場合は、常にポートを明確に指定してください。平文の FTP サーバに接続されているときにパッシブ モードのファイル転送で問題が発生する可能性があるため、アスタリスク (*) は使用しないでください。

action 属性では、フィルタが一致したときに実行される動作を指定します。値には、DIRECTBLOCKTUNNELFTP-TUNNEL、または FTP-PROXY を指定できます。

  • DIRECT を指定すると、トンネリングや FTP-SFTP 変換を使用せずに、接続が平文として直接確立されます。

  • BLOCK を指定すると、接続が遮断されます。

  • FTP-TUNNEL を指定すると、透過的 FTP トンネリングが有効になります。

  • TUNNEL を指定すると、透過的 TCP トンネリングが有効になります。

  • FTP-PROXY を指定すると、FTP-SFTP 変換が開始され、SecureShell SFTP サーバへの接続が確立されます。

profile-id 属性を使用して、接続設定を定義する接続プロファイルを指定できます。

profile-id 属性が空のままで、hostname-from-app="yes" が指定されている場合は、クライアント アプリケーションによって指定されたサーバへの SecureShell 接続がデフォルト設定を使用して確立されます。profile-id が指定され、さらに hostname-from-app="yes" も指定されている場合、または参照されるプロファイルの host 属性の値が * (アスタリスク) または空の場合は、クライアント アプリケーションによって指定されたサーバへの SecureShell 接続がプロファイル設定を使用して確立されます。

destination および destination-port 属性を使用して、アプリケーションによって指定された元のアドレスとポートの代わりに接続のエンド ポイントとして使用される静的な接続先アドレスとポート番号を定義できます。

username 属性を使用して、SecureShell サーバに接続するために使用されるユーザ名を定義できます。または、Connection Broker がユーザ名を取得するパスを定義できます。

hostname-from-app 属性では、Connection Broker がアプリケーションによって送信されたデータから SecureShell サーバのホスト名を抽出するか、または profile-id にある接続プロファイルで定義された SecureShell サーバを使用するかを定義します。値は yes または no で、デフォルトは no です。

hostname-from-app="no" の場合は、profile-id 属性で参照されている接続プロファイルで指定された SecureShell サーバまでのトンネルが作成されます。透過的トンネリングでは、SecureShell サーバから最終的な接続先アプリケーションまでの接続がセキュアではなく、平文であることに注意してください。エンドツーエンドのセキュリティを実現するには、SecureShell サーバがアプリケーションと同じホスト上に存在している必要があります。

hostname-from-app="yes" の場合は、アプリケーションによって指定された接続先サーバまでのトンネルが作成されます。この設定は、FTP および TCP トンネリングと FTP-SFTP 変換の両方で使用できます。hostname-from-app="yes" を使用する場合は、接続先ホストごとに個別の接続プロファイルを作成する必要はありません。それには、各接続先サーバに SecureShell サーバがインストールされている (または、SecureShell がインストールされていないサーバへの直接接続を許可するために fallback-to-plain が有効になっている) 必要があることに注意してください。

username-from-app 属性では、FTP トンネリングまたは FTP-SFTP 変換で、FTP アプリケーションによって送信されたデータからユーザ名を抽出するかどうかを定義します。値は yes または no です。デフォルトは no です。

username-from-app="yes" の場合は、FTP クライアント アプリケーションから受信されたユーザ名が使用されます。この設定は、FTP トンネリングと FTP-SFTP 変換で使用できます。この設定によって、関連する接続プロファイルで作成されたユーザ名の設定がすべて上書きされます。username-from-app="no" の場合は、profile-id 属性で定義されている接続プロファイルからユーザ名が取得されます。

fallback-to-plain 属性を使用して、トンネルの作成が失敗した場合や SecureShell サーバへの接続が失敗した場合に、セキュアではない直接接続を使用するかどうかを定義できます。デフォルト値は no です。通常、フィルタ ルールの適用中にセキュアな接続が失敗した場合、Connection Broker は「host not reachable」(ホスト到達不能) エラーを返します。UNIX 上の FTP-SFTP 変換で fallback-to-plain を指定するには、ssh-capture コマンドでオプション -F を使用する必要があります。

[注意]注意

fallback-to-plain オプションと pseudo-ip オプションを同時に有効にしないでください。この両方が有効になっているときにセキュアな接続が失敗した場合、アプリケーションは疑似 IP を使用して直接接続を試行しますが、これはうまく行きません。

logging エレメント

logging エレメントでは、ログ イベントの重大性およびロギングの用途を定義するロギング設定を変更します。エレメントには、1 つまたは複数の log-events エレメントが含まれます。

log-events

このエレメントでは、さまざまなロギング イベントの重大性および用途を設定します。特に明確にロギング設定を変更しない限り、イベントでは適切なデフォルト値が使用されます。この設定によって、デフォルト値をカスタマイズできます。

イベントでは、facility および severity を属性として設定できます。イベント自体は、log-events エレメント内に記述する必要があります。

用途 (facility) は、normaldaemonuserauthlocal0local1local2local3local4local5local6local7、または discard に設定できます。用途を discard に設定すると、サーバは指定されたログ イベントを無視します。

Windows では、用途として normal および discard だけが使用できます。

重大性 (severity) は、informationalnoticewarningerrorcriticalsecurity-success、または security-failure に設定できます。

設定ファイルで明確に定義されていないイベントでは、すべてデフォルト値が使用されます。デフォルト値は、空の log-events エレメントで以降のイベントに関するすべての値、およびその重大性の値を設定することによって上書きできます。

ログ イベントの完全なリストについては、付録 E を参照してください。