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 は、以下の 3 つの設定ファイルを読み取ります (すべてが使用可能な場合)。
ssh-broker-config-default.xml
ファイルが最初に読み取られます。このファイルには、工場出荷時のデフォルト設定が保存されています。このファイルを編集することは推奨されませんが、デフォルト設定の確認に使用できます。
Connection Broker が起動するには、このファイルが使用可能であり、正しくフォーマットされている必要があります。
次に、Connection Broker はグローバル設定ファイルを読み取ります。グローバル設定ファイルの設定によって、デフォルト設定が上書きされます。
グローバル設定ファイルが存在しないか、または不正な形式であっても、Connection Broker は正常に起動し、代わりにユーザ固有の設定ファイルを読み取ります。不正な形式のグローバル設定ファイルは無視され、デフォルト設定またはユーザ固有の設定 (存在する場合) が代わりに使用されます。
最後に、Connection Broker はユーザ固有の設定ファイル (使用可能な場合) を読み取ります。ユーザ固有の設定ファイルの設定によって、グローバル設定ファイルの設定が上書きされます。ただし、以下の例外があります。
ユーザ固有の設定ファイルの以下の設定は、グローバル設定ファイルの設定と組み合わされます。
general
エレメントでは、key-stores
および cert-validation
設定
profiles
エレメントでは、すべての設定
static-tunnels
エレメントでは、すべての設定
グローバル設定ファイルとユーザ固有の設定ファイルの両方で同じ名前の接続プロファイルが定義されている場合は、後者の接続プロファイルが使用されます。
グローバル設定とユーザ固有の設定で crypto-lib
、strict-host-key-checking
、host-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%
' がそのまま結果の値になります。
環境変数が定義されている場合は、その値と置き換えられます。変数は、UNIX では大文字と小文字が区別されて、Windows では大文字と小文字が区別されることなく照合されます。変数が定義されていない場合は、空の文字列と置き換えられます。
text
$VARIABLENAME
' に対して定義された値に 'text
' が付加された値と置き換えられます。
default_value
}$VARIABLENAME
' に対して定義された値と置き換えられるか、または変数が設定されていない場合は 'default_value
' と置き換えられます。
SSH Tectia 固有の特殊な変数は以下の通りです。
現在ログインしているユーザ名と置き換えられます。
現在ログインしているユーザ名の短い形式、つまり、ドメイン部分がないユーザ名と置き換えられます。Windows で使用できます。
現在ログインしているユーザのグループ名と置き換えられます。
現在ログインしているユーザに対して定義されたホーム ディレクトリと置き換えられます。
現在ログインしているユーザに対して定義されたユーザ識別子と置き換えられます。
現在ログインしているユーザに対して定義されたグループ識別子と置き換えられます。
特殊な変数はまた、UNIX 形式 (たとえば、$username
) を使用して入力することもできます。
ブローカーの設定ファイルは有効な XML ファイルであり、文書型宣言の記述から始まります。
設定ファイルのルート エレメントは secsh-broker
です。設定ファイルには、general
、default-settings
、profiles
、static-tunnels
、gui
、filter-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-lib
、cert-validation
、key-stores
、strict-host-key-checking
、host-key-always-ask
、accept-unknown-host-keys
の各エレメントの 0 個または 1 つのインスタンス、および複数の known-hosts
エレメントを記述できます。
このエレメントでは、使用される暗号化ライブラリ モードを選択します。標準バージョン (standard
) か、または FIPS 140-2 認定バージョン (fips
) の暗号化ライブラリが使用できます。ライブラリの名前は、mode
属性の値として指定します。デフォルトでは、標準暗号化ライブラリが使用されます。
FIPS モードは、グローバル設定ファイルとユーザ設定ファイルのいずれか (または両方) で使用が指定されている場合に使用されます。
<crypto-lib mode="standard" />
FIPS モードでは、暗号化動作は FIPS 140-2 規格の規則に従って実行されます。FIPS ライブラリには、3des-cbc
、aes128-cbc
、aes192-cbc
、ならびに aes256-cbc
暗号、および hmac-sha1
MAC が含まれています。
注意 | |
---|---|
FIPS モードを設定しても、暗号化プラグインが他のアルゴリズムを使用できなくなるわけではありません。たとえば CryptiCore は、メインの暗号化ライブラリが FIPS モードに設定されていても使用できます。FIPS 準拠のアルゴリズムだけが使用されるようにするには、非 FIPS アルゴリズムを設定で無効化します。cipherおよびmacを参照してください。 |
FIPS ライブラリが検証またはテストされたプラットフォームのリストについては、『SSH Tectia Client/Server Product Description』 を参照してください。
このエレメントでは、リモート サーバの認証証明書の検証に使用される公開鍵基盤 (PKI) の設定を定義します。このエレメントには、end-point-identity-check
、default-domain
、http-proxy-url
、および socks-server-url
属性を記述できます。
end-point-identity-check
属性では、クライアントがサーバのホスト名または IP アドレスを、サーバのホスト証明書で指定されたサブジェクト名またはサブジェクトの代替名 (DNS アドレス) と照合するかどうかを指定します。デフォルト値は yes
です。no
に設定されている場合、サーバ ホスト証明書内のフィールドは検証されず、証明書は有効期間と CRL チェックのみに基づいて受け入れられます。
警告 | |
---|---|
|
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-server
、ocsp-responder
、crl-prefetch
エレメント、単一の dod-pki
エレメント、および複数の ca-certificate
、key-store
エレメントを記述できます。これらのエレメントは、ここに示した順序で記述する必要があります。
このエレメントでは、CRL や下位の CA 証明書を取得するために使用される LDAP サーバのアドレスおよびポートを、現在有効になっている証明書の実行者名に基づいてそれぞれ address
および port
属性で指定します。複数の ldap-server
エレメントを使用して、複数の LDAP サーバを指定できます。
CRL 配布ポイントが存在する場合、CRL は、証明書で定義されている CRL 配布ポイントから自動的に収集されます。
port
のデフォルト値は 389
です。
このエレメントでは、OCSP (Online Certificate Status Protocol) レスポンダのサービス アドレスを、属性 url
に URL 形式で指定します。複数の ocsp-responder
エレメントを使用することによって、複数の OCSP レスポンダを指定できます。
証明書に OCSP レスポンダの URL を含む有効な Authority Info Access 拡張が記述されている場合は、この URL がこの設定の代わりに使用されます。OCSP を正しく検証するには、エンド エンティティ証明書および OCSP レスポンダ証明書の両方を同じ CA によって発行する必要があることに注意してください。
オプションとして、validity-period
を秒単位で定義できます。この時間中は、同じ証明書の新しい OCSP クエリは作成されず、古い結果が使用されます。デフォルトの有効期間は 0
(毎回、新しいクエリが作成される) です。
このエレメントによって、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 (米国国防総省公開鍵基盤) に準拠する必要があるかどうかを定義します。実際には、これによって証明書の鍵使用目的にデジタル署名ビットを設定する必要があります。enable
属性には、yes
または no
の値を設定できます。デフォルトは no
です。
このエレメントでは、サーバの認証で使用される認証局 (CA) を定義します。このエレメントには、name
、file
、disable-crls
、use-expired-crls
の 4 つの属性を設定できます。
name
属性には、CA の名前を記述する必要があります。
このエレメントには、file
属性の値として X.509 CA 証明書へのパスを含めるか、または Base64 でエンコードされた ASCII ブロックとして証明書を含める必要があります。
disable-crls
属性を yes
に設定すると、CRL チェックを無効にできます。デフォルトは no
です。
use-expired-crls
属性に秒を表す数値を設定することによって、期限切れになった CRL を使用できます。デフォルトは 0
で、この場合、期限切れになった CRL は使用されません。
このエレメントでは、サーバの認証のために外部のキー ストアに保存された 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>
このエレメントでは、ユーザ公開鍵と証明書による認証の設定を定義します。
<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
が設定されている場合)。
注意 | |
---|---|
短いエイリアス名 (たとえば、 |
各 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
エレメントには、以下の属性を指定できます。
directory
属性では、ユーザの秘密鍵が保存されるディレクトリを定義します。フル パスを入力します。
passphrase-timeout
属性では、パスフレーズで保護された秘密鍵がタイムアウトして、ユーザがパスフレーズを再度入力しなければならなくなるまでの時間を秒単位で定義します。デフォルトは 0
で、この場合、パスフレーズはタイムアウトしません。このエレメントの値は、passphrase-idle-timeout
の値より長くする必要があります。
デフォルトでは、ユーザがパスフレーズを正常に入力した後、Connection Broker はパスフレーズで保護された秘密鍵を開かれた状態にします。この設定は、パスフレーズのタイムアウト オプションを使用して変更できます。passphrase-timeout
が設定されている場合は、タイムアウトの期限が切れるまで、秘密鍵は開かれた (パスフレーズを再度入力することなく使用可能な) 状態のままになります。passphrase-timeout
属性によって、ハード タイムアウトが設定されます。このタイムアウトは、鍵が開かれたときに 1 回だけ設定され、鍵が複数回使用されてもリセットされません。
passphrase-idle-timeout
属性では、ユーザが鍵にアクセスしたり使用したりしない場合に、パスフレーズで保護された秘密鍵がタイムアウトするまでの時間を秒単位で定義します。passphrase-idle-timeout
は、鍵がアクセスされるたびにリセットされます。デフォルトは 0
で、この場合、パスフレーズがタイムアウトすることはありません。
両方のタイムアウト オプションを同時に設定できますが、アイドル タイムアウトがハード タイムアウトより長い場合はアイドル タイムアウトの効果がないことに注意してください。
identification
エレメントを使用して、ユーザ鍵を定義する identification ファイルのデフォルトの場所を上書きできます。identification
エレメントには、以下の属性を指定できます。
file
属性では、identification ファイルの場所を指定します。フル パスを入力します。
base-path
属性では、identification ファイルがユーザの秘密鍵の保存場所と見なすディレクトリを定義します。このエレメントを使用して、identification ファイルのデフォルトの相対パスの解釈 (identification ファイルのディレクトリに相対的なパス) を上書きできます。
passphrase-timeout
属性では、ユーザがパスフレーズを再度入力しなければならなくなるまでの時間を秒単位で定義します。デフォルトは 0
で、この場合、パスフレーズが再度要求されることはありません。
passphrase-idle-timeout
属性では、ユーザの操作がない場合に、パスフレーズがタイムアウトするまでの時間を秒単位で定義します。デフォルトは 0
で、この場合、パスフレーズはタイムアウトしません。
タイムアウトの設定は、identification ファイルに記述されている秘密鍵にのみ影響します。
このエレメントでは、厳密なホスト鍵チェックを有効にします。厳密なホスト鍵チェックが有効になっている場合、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 の場合) に記録します。
このエレメントでは、既知の鍵であっても、Connection Broker がユーザに、提示されたホスト鍵の受け入れを確認するかどうかを定義します。
enable
属性の値として、値 yes
または no
を指定します。デフォルトは no
です (既知のホスト鍵は確認を求めることなく受け入れられます)。
ホスト鍵の確認を求めるようにグローバル設定ファイルとユーザ設定ファイルのいずれかまたは両方で指定されている場合は、ホスト鍵の確認が常に求められます。
<host-key-always-ask enable="yes" />
このエレメントでは、Connection Broker が提示された新しいホスト鍵を自動的に受け入れるかどうかを定義します。このエレメントには、yes
または no
の値を持つ属性 enable
を指定します。デフォルトは no
です (不明なホスト鍵が自動的に受け入れられることはありません)。
透過的 FTP トンネリングまたは FTP-SFTP 変換が使用されている場合、ホスト鍵の受け入れをユーザに確認することはできません。この設定を yes
に設定するか (推奨されません)
、または SecureShell トンネリングおよび SFTP サーバのホスト鍵を事前に取得し、サーバの IP アドレスに基づいて保存する必要があります。
accept-unknown-host-keys が有効になっている場合、新しいホストからの鍵は自動的に受け入れられ、ユーザの確認を求めることなくホスト鍵のデータベースに保存されます。ただし、すでにデータベース内に鍵が存在するホストからの変更されたホスト鍵は保存されず、この接続のために受け入れられます。これは、ホスト鍵の受け入れを確認するすべてのプロンプトに、自動的に [Once] (接続を続行するが、新しいホスト鍵を保存しない)
と答えるのと同じ効果があります。
変更されたホスト鍵が提供された場合は警告メッセージが表示され、新しいホスト鍵と変更されたホスト鍵の両方に関する情報がログに記録されます。
このエレメントがグローバル設定ファイルとユーザ設定ファイルのいずれかで no
に設定されている場合は、変更されたホスト鍵または新しいホスト鍵について通常通り確認を求めます。このエレメントの yes
の設定は、strict-host-key-checking
と host-key-always-ask
の両方が no
に設定されている (または明示的に定義されていない) 場合にのみ有効になります。
<accept-unknown-host-keys enable="no" />
警告 | |
---|---|
このオプションを有効にする前に、慎重に検討してください。ホスト鍵チェックを無効にすると、中間者攻撃に対して脆弱になります。 |
このエレメントを使用して、既知のサーバ ホストのホスト鍵の保存場所、およびその保存形式を指定できます。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
" など) です。
ホスト鍵の保存形式については、ホスト鍵の保存形式項を参照してください。
このエレメントは、将来の使用のために予約されています。
ソフトウェア プロバイダは、標準の 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 プロバイダの初期化ファイルとプロファイル固有のファイルを指定する必要があります。たとえば以下のようになります。
<key-stores> <key-store type="entrust" init="ini-file(/etc/entrust.ini),profile-file(/etc/profile.epf)" /> </key-stores>
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
エレメントには、ciphers
、macs
、transport-distribution
、rekey
、authentication-methods
、hostbased-default-domain
、compression
、proxy
、idle-timeout
、tcp-connect-timeout
、keepalive-interval
、exclusive-connection
、server-banners
、forwards
、extended
、remote-environment
、server-authentication-methods
、authentication-success-message
の各エレメントの 0 個または 1 つのインスタンスおよび単一の sftpg3-mode
エレメントをここに示した順序で記述できます。
このエレメントでは、クライアントがサーバに提示する暗号を定義します。ciphers
エレメントには、複数の cipher
エレメントを記述できます。
暗号はリストに指定された順序で試行されます。
SSH Tectia Server for Linux on IBM System z では、3DES および AES アルゴリズムによる暗号化動作で、クライアント ツールはハードウェア アクセラレータ (CPACF) を自動的に使用します (CPACF が使用可能な場合)。
このエレメントでは、クライアントがデータ暗号化のために要求する暗号を name
属性に指定します。
サポートされる暗号は、3des-cbc
、aes128-cbc
、aes192-cbc
、aes256-cbc
、aes128-ctr
、aes192-ctr
、aes256-ctr
、arcfour
、blowfish-cbc
、twofish-cbc
、twofish128-cbc
、twofish192-cbc
、twofish256-cbc
、crypticore128@ssh.com
、seed-cbc@ssh.com
、および none
(暗号化なし) です。
Connection Broker によって使用されるデフォルトの暗号は順に、crypticore128@ssh.com
(Windows および Linux x86 上)、aes128-cbc
、aes192-cbc
、aes256-cbc
、aes128-ctr
、aes192-ctr
、aes256-ctr
、3des
、seed-cbc@ssh.com
です。
FIPS モードで動作可能な暗号は、aes128-cbc
、aes192-cbc
、aes256-cbc
、および 3des-cbc
です。
<ciphers> <cipher name="aes128-cbc" /> <cipher name="3des-cbc" /> </ciphers>
このエレメントでは、クライアントがサーバに提示する MAC を定義します。macs
エレメントには、複数の mac
エレメントを記述できます。
SSH Tectia Server for Linux on IBM System z では、HMAC-SHA1 アルゴリズムによる暗号化動作で、クライアント ツールはハードウェア アクセラレータ (CPACF) を自動的に使用します (CPACF が使用可能な場合)。
MAC はリストに指定された順序で試行されます。
このエレメントでは、クライアントがデータ整合性の検証のために要求する MAC を name
属性に指定します。
サポートされる MAC アルゴリズムは、hmac-md5
、hmac-md5-96
、hmac-sha1
、hmac-sha1-96
、crypticore-mac@ssh.com
、および none
(データ整合性の検証なし) です。
Connection Broker によって使用されるデフォルトの MAC は順に、crypticore-mac@ssh.com
(Windows および Linux x86 上)、hmac-md5
、hmac-sha1
hmac-sha1
アルゴリズムは、FIPS モードで動作可能です。
<macs> <mac name="hmac-sha1" /> </macs>
この設定では、SecureShell 接続によって使用されるトランスポート チャネルの数を定義します。複数のトランスポートを使用すると、低帯域幅の接続でスループットが向上する場合があります。
トランスポートの数は、num-transports
属性の値として指定します。現在は、1 ~ 8 のトランスポート数がサポートされています。UNIX では、デフォルトは 1
つのトランスポートです。Windows では、デフォルトは 2
つのトランスポートです。
<transport-distribution num-transports="1" />
このエレメントでは、鍵の交換が再度実行されるまでに転送されるデータ量を bytes
属性の値として指定します。値が "0"
の場合、鍵の変更要求は無効になります。ただし、サーバからの鍵の変更要求は無効になりません。デフォルトは 1000000000 (1 GB) です。
<rekey bytes="1000000000" />
このエレメントでは、SSH Tectia クライアント コンポーネントによって要求される認証方法を指定します。authentication-methods
エレメントには、auth-hostbased
、auth-password
、auth-publickey
、auth-gssapi
、auth-keyboard-interactive
のそれぞれ一つを記述できます。または、複数の authentication-method
エレメントを指定できます。これらのエレメントの順序は自由です。
これらの認証方法は、auth-*
または authentication-method
エレメントが記述されている順序で試行されます。つまり、最も非対話的な方法を最初に記述する必要があります。
このエレメントでは、認証方法を name
属性で指定します。これは下位互換性のために含まれています。代わりに auth-*
エレメントを使用してください。
許可されている認証方法の名前は、gssapi-with-mic
、publickey
、keyboard-interactive
、password
、および 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
エレメントには、リモート サーバに通知される名前を指定するための属性 name
を含む local-hostname
エレメントが指定できます。リモート サーバは、クライアント ホストの公開鍵を検索するときのヒントとしてクライアント ホスト名を使用できます。この情報は認証結果にとって重要ではありませんが、サーバにあるホスト ID の記憶域が大きすぎてすべての ID を探すことが困難な場合は、関連するクライアント ホスト鍵の検索がより高速になります。
このエレメントでは、パスワード認証を使用することを指定します。
このエレメントでは、公開鍵認証を使用することを指定します。
auth-publickey
エレメントには、key-selection
エレメントを記述できます。
このエレメントでは、クライアントがサーバにユーザ公開鍵を提示するときに使用する鍵選択ポリシーを指定します。policy
属性には、automatic
(デフォルト) と interactive-shy
の値を指定できます。
automatic
モードでは、クライアントは以下の順序で鍵を試行します。
公開鍵が使用可能で、秘密鍵にパスフレーズが設定されていない鍵 (ユーザの操作はなし)
公開鍵は使用可能だが、秘密鍵にパスフレーズが設定されている鍵 (1 つのパスフレーズ クエリ)
公開鍵の取得にパスフレーズが必要だが、秘密鍵にはパスフレーズが設定されていない鍵 (処理対象の鍵でかつサーバに提示する鍵ごとに 1 つのユーザ クエリが必要、実際の公開鍵のログインではユーザの操作はなし)
残りの鍵。つまり、公開鍵の取得にも、秘密鍵の取得にもパスフレーズが必要な鍵
interactive-shy
モードでは、クライアントは自動的にはどの鍵も試行せず、ユーザに使用可能な鍵のリストから鍵を選択するよう求めます。選択された鍵での認証が失敗した場合、クライアントはユーザに再び鍵を選択するよう求めます。
key-selection
エレメントには、public-key
エレメントを記述できます。
このエレメントでは、認証でキーボードインタラクティブを使用することを指定します。
このエレメントでは、認証で 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>
このエレメントでは、ホストのデフォルト ドメイン名を name
として指定します。このエレメントは、ホストベースのユーザ認証を使用するときに、クライアント ホストの完全修飾ドメイン名 (FQDN) がサーバに確実に転送されるようにするために使用されます。
デフォルト ドメイン名は、短いホスト名がサーバに送信される前にその短いホスト名に追加されます。これが必要なのは、一部のプラットフォーム (Solaris など) ではホスト名の短い形式が使用され、それによって署名を作成できないためです。
デフォルト ドメイン名の許可されている形式は、.example.com
と example.com
(先頭のドットはなし) です。たとえば以下のようになります。
<hostbased-default-domain name=".example.com" />
このエレメントでは、すべてのトラフィックに対して圧縮を使用するかどうかを指定します。有効になっている場合は、転送されるすべてのデータにその場で圧縮が適用されます。これは、転送中のファイルの圧縮とは異なることに注意してください。
圧縮アルゴリズムの名前と圧縮レベルを属性として指定できます。name
属性は、none
(圧縮を使用しない) または、現在サポートされている唯一のアルゴリズムである zlib
として定義できます。デフォルトでは、圧縮は使用されません。
level
属性は、0
~ 9
の整数で指定できます。圧縮が有効でレベルが指定されなかった場合のデフォルトの圧縮レベルは 6
です。
例: 最大レベルで圧縮を有効にするには、以下の設定を行います。
<compression name="zlib" level="9"/>
圧縮は、コマンドライン ツールを使用して接続ごとに有効にすることもできます。詳細については、sshg3(1)、sftpg3(1)、およびscpg3(1)の man ページを参照してください。
このエレメントでは、クライアントが接続に使用する HTTP プロキシまたは SOCKS サーバのルールを定義します。このエレメントでは、1 つの属性 ruleset
を指定します。
属性値の形式は、セミコロン (;
) で区切られた一連のルールです。各ルールの形式は、URL の形式と似ています。ルールでは、接続の種類が最初に記載されます。種類は direct
、socks
、socks4
、socks5
、http-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/" />
このエレメントでは、すべての接続チャネルが閉じられた後、その接続が自動的に閉じられるまでのアイドル時間の長さを指定します。time
は秒単位で指定します。type
は常に接続です。
デフォルト設定は 5 秒です。この時間を長く設定することにより、セッション (sshg3
など) が閉じられた後もサーバへの接続を開いたままにすることができます。この時間中は、サーバへの新しいセッションを再認証することなく開始できます。この時間を 0 に設定すると、サーバへの最後のチャネルが閉じられた時点でただちに接続が終了します。
<idle-timeout time="5" />
このエレメントでは、TCP 接続のタイムアウトを指定します。この設定が指定されていると、リモート ホストがダウンまたは利用不可の場合、定義された時間が経過した後 SecureShell サーバへの接続試行が停止します。このタイムアウトによって、デフォルトのシステム TCP タイムアウトが上書きされます。また、profiles
設定で接続プロファイルごとに、またはコマンドラインで接続ごとに tcp-connect-timeout
設定を定義することによって、このタイムアウトの設定を上書きできます。
time
は秒単位で指定します。工場出荷時のデフォルト設定は 5 秒です。値 0 を指定するとこの機能が無効になり、デフォルトのシステム TCP タイムアウトが使用されます。
<tcp-connect-timeout time="5" />
このエレメントでは、SecureShell サーバにキープアライブ メッセージを送信する間隔を指定します。time
値は秒単位で指定します。デフォルト設定は 0 で、この場合、キープアライブ メッセージは無効になります。
<keepalive-interval time="0" />
exclusive-connection
エレメントを使用して、新しいチャネルごとに新しい接続を開くことを指定できます。
enable
属性の値として、値 yes
または no
を指定します。デフォルトは no
で、この場合、開かれている接続がクライアントによって要求された新しいチャネルに再利用されます。
このエレメントでは、サーバ バナー メッセージ ファイル (存在する場合) をログイン前のユーザに表示するかどうかを定義します。visible
属性の値として、値 yes
または no
を指定します。デフォルト値は yes
です。
サーバ バナーを削除するには、以下のようにします。
<server-banners visible="no" />
このエレメントには、クライアント側で X11 またはエージェント転送 (トンネリング) が許可されるかどうかを定義する forward
エレメントを記述します。
システム全体で X11 転送を拒否し、エージェント転送を許可する forward 設定の例を以下に示します。
<forwards> <forward type="x11" state="denied" /> <forward type="agent" state="on" /> </forwards>
このエレメントは、将来の使用のために予約されています。
このエレメントを使用して、サーバの認証で Connection Broker が特定の方法のみを使用するよう強制できます。このエレメントには、最大 2 つの authentication-method
エレメントを記述できます。
server-authentication-methods/authentication-method
エレメントには、certificate
または publickey
の値を持つ name
属性を指定します。
certificate
のみが指定されている場合は、サーバ証明書が必要です。サーバ証明書が受信されない場合は、接続が失敗します。
publickey
のみ、または certificate
と publickey
の両方が指定されているときは、サーバ証明書が存在する場合は、そのサーバ証明書が使用されます。それ以外の場合は、サーバ公開鍵が使用されます。
<server-authentication-methods> <authentication-method name="publickey" /> <authentication-method name="certificate" /> </server-authentication-methods>
この設定では、AuthenticationSuccessMsg
メッセージを出力するかどうかを定義します。authentication-success-message
エレメントには、yes
または no
の値を持つ属性 enable
を指定します。デフォルトは yes
で、この場合、メッセージは出力され、ログにも記録されます。
この設定では、ファイルを転送するときの 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)を参照してください。
このエレメントには、クライアント側からサーバに渡される環境変数を定義する environment
エレメントを記述します。環境変数はその後、コマンド、シェル、またはサブシステムを要求するときにサーバ上で設定されます。
サーバで環境変数の設定を制限できることに注意してください。
このエレメントでは、環境変数の名前と値、および Connection Broker がこの値を処理する必要があるかどうかを定義します。name
、value
、および 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
エレメントでは、接続プロファイルを定義します。このエレメントには、id
、name
、host
、port
、protocol
、connect-on-startup
、user
、および 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 番目のトンネルが作成されます。
このエレメントでは、file
属性の値としてリモート サーバ ホストの公開鍵ファイルへのパスを指定します。
また公開鍵は、Base64 でエンコードされたアスキー ブロックとして記述することもできます。
このエレメントでは、このプロファイルで使用される暗号を定義します。詳細については、ciphersを参照してください。
このエレメントでは、このプロファイルで使用される MAC を定義します。詳細については、macsを参照してください。
このエレメントでは、このプロファイルのトランスポート数を定義します。詳細については、transport-distributionを参照してください。
このエレメントでは、このプロファイルで使用される鍵の変更の設定を定義します。詳細については、rekeyを参照してください。
このエレメントでは、このプロファイルで使用される認証方法を定義します。詳細については、authentication-methodsを参照してください。
このエレメントでは、ユーザ公開鍵認証で使用される識別子を指定します。Connection Broker で使用可能なすべての鍵を指定する key-stores
エレメントとは異なり、このエレメントを使用すると、この接続プロファイルが使用されるときに認証で試行される鍵を制御したり、それらの鍵が試行される順序を指定したりできます。
user-identities
エレメントには、複数の identity
エレメントを記述できます。複数の identity
エレメントが使用されている場合は、記述されている順序で試行されます。
identity
エレメントには、identity-file
、file
、hash
、id
、および 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を参照してください。
このエレメントでは、このプロファイルで使用される HTTP プロキシと SOCKS サーバの設定を定義します。詳細については、proxyを参照してください。
このプロファイルに対して gateway-profile
が定義されてる場合、このプロキシの設定は無視され、デフォルトのプロキシ設定またはゲートウェイ プロファイルのプロキシ設定が代わりに使用されます。
このエレメントでは、このプロファイルで使用されるアイドル タイムアウトの設定を定義します。詳細については、idle-timeoutを参照してください。
このエレメントでは、このプロファイルの TCP 接続タイムアウトを定義します。このタイムアウトは、ダウンまたは利用不可の状態にある SecureShell サーバへの接続試行を終了するために使用されます。デフォルト値は 5 秒です。詳細については、tcp-connect-timeoutを参照してください。
このエレメントでは、SecureShell サーバにキープアライブ メッセージを送信する間隔を定義します。この設定は、このプロファイルに適用されます。デフォルト値は 0 で、この場合、キープアライブ メッセージは送信されません。詳細については、keepalive-intervalを参照してください。
このエレメントでは、このプロファイルを使用して接続が確立されるときに、新しいチャネルごとに新しい接続を開くかどうかを定義します。詳細については、exclusive-connectionを参照してください。
このエレメントでは、このプロファイルで使用されるサーバ バナーの設定を定義します。詳細については、server-bannersを参照してください。
このエレメントでは、このプロファイルで許可される転送を定義します。詳細については、forwardsを参照してください。
tunnels
エレメントでは、このプロファイルを使用して接続が確立されるときに開かれるトンネルを定義します。このエレメントには、複数の local-tunnel
および remote-tunnel
エレメントを記述できます。
このエレメントでは、この接続プロファイルを使用して接続が確立されるときに自動的に開かれるローカル トンネル (ポート転送) を定義します。このエレメントには、type
、listen-port
、listen-address
、dst-host
、dst-port
、allow-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-host
、dst-port
) への別の接続が作成されます。サーバから先の接続は、通常の TCP 接続であるためセキュアではありません。
dst-host
および dst-port
属性では、接続先ホストのアドレスとポートを定義します。dst-host
の値は、IP アドレスでもドメイン名でもかまいません。デフォルトは 127.0.0.1
(localhost = サーバ ホスト) です。
allow-relay
属性では、クライアント ホストの外部からリッスンされるポートへの接続が許可されるかどうかを定義します。デフォルトは no
です。allow-relay="yes"
を使用する場合は、listen-address
設定も確認されます。
ローカル トンネルの使用の詳細については、ローカル トンネル項を参照してください。
このエレメントでは、この接続プロファイルを使用して接続が確立されるときに自動的に開かれるリモート トンネル (ポート転送) を定義します。このエレメントには、type
、listen-port
、listen-address
、dst-host
、dst-port
、allow-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-host
、dst-port
) への別の接続が作成されます。クライアントから先の接続は、通常の TCP 接続であるためセキュアではありません。
dst-host
および dst-port
属性では、接続先ホストのアドレスとポートを定義します。dst-host
の値は、IP アドレスでもドメイン名でもかまいません。デフォルトは 127.0.0.1
(localhost = クライアント ホスト) です。
allow-relay
属性では、サーバ ホストの外部からリスナー ポートへの接続が許可されるかどうかを定義します。デフォルトは no
です。
リモート トンネルの使用の詳細については、リモート トンネル項を参照してください。
このエレメントは、将来の使用のために予約されています。
このエレメントでは、このプロファイルで使用されるリモート環境の設定を定義します。remote-environment
エレメント内では、サーバに渡される環境変数ごとに environment
エレメントを定義します。詳細については、remote-environmentを参照してください。
このエレメントでは、このプロファイルで許可されるサーバの認証方法を定義します。詳細については、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
エレメントでは、静的トンネルを指定します。このエレメントには、type
、listen-port
、listen-address
、dst-host
、dst-port
、allow-relay
、および profile
属性を指定できます。
type
属性では、トンネルの種類を定義します。tcp
と ftp
のいずれかを指定できます。
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-icon
、show-exit-button
、show-admin
、enable-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 トンネリングに関連した設定を処理します。
注意 | |
---|---|
グローバル設定ファイルが使用可能な場合、 グローバル設定は、UNIX では |
設定例については、以下のサンプル ファイルを参照してください。
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-start
と ftp-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 サーバ上のパスワードとして使用されます。
注意 | |
---|---|
|
network
エレメントでは、SSH Tectia Client/ConnectSecure が実行されている「場所」を指定します。network
エレメントを使用すると、SSH Tectia Client/ConnectSecure の場所を認識する機能を実現できます。このエレメントには、id
、address
、domain
、ip-generate-start
の 4 つの属性があります。
id
属性では、network
エレメントの一意識別子を指定します。address
属性では、ネットワークのアドレスを指定します。値が存在しないか、または空の場合は使用されません。domain
属性では、コンピュータのドメイン名を指定します。値が存在しないか、または空の場合は使用されません。ip-generate-start
属性では、疑似 IP 領域の開始アドレスを定義します。この属性がここに定義されている場合、これによって filter-engine
エレメントの ip-generate-start
属性が上書きされます。
注意 | |
---|---|
|
dns
エレメントでは、フィルタ エンジンの DNS ルールを作成します。このエレメントには、id
、network-id
、application
、host
、ip-address
、pseudo-ip
の 6 つの属性があります。それらの説明については、下のruleを参照してください。
注意 | |
---|---|
|
filter
エレメントでは、接続の動作を指定します。このエレメントには、dns-id
、ports
、action
、profile-id
、destination
、destination-port
、fallback-to-plain
の各属性があります。
dns-id
属性は、dns
エレメントへの参照です。
他の属性の説明については、下のruleを参照してください。
rule
エレメントでは、フィルタ処理された接続の処理方法を指定します。このエレメントには、application
、host
、ip-address
、pseudo-ip
、ports
、action
、profile-id
、destination
、destination-port
、username
、hostname-from-app
、username-from-app
、fallback-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
属性では、フィルタが一致したときに実行される動作を指定します。値には、DIRECT
、BLOCK
、TUNNEL
、FTP-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
を使用する必要があります。
注意 | |
---|---|
|
logging
エレメントlogging
エレメントでは、ログ イベントの重大性およびロギングの用途を定義するロギング設定を変更します。エレメントには、1 つまたは複数の log-events
エレメントが含まれます。
このエレメントでは、さまざまなロギング イベントの重大性および用途を設定します。特に明確にロギング設定を変更しない限り、イベントでは適切なデフォルト値が使用されます。この設定によって、デフォルト値をカスタマイズできます。
イベントでは、facility
および severity
を属性として設定できます。イベント自体は、log-events
エレメント内に記述する必要があります。
用途 (facility) は、normal
、daemon
、user
、auth
、local0
、local1
、local2
、local3
、local4
、local5
、local6
、local7
、または discard
に設定できます。用途を discard
に設定すると、サーバは指定されたログ イベントを無視します。
Windows では、用途として normal
および discard
だけが使用できます。
重大性 (severity) は、informational
、notice
、warning
、error
、critical
、security-success
、または security-failure
に設定できます。
設定ファイルで明確に定義されていないイベントでは、すべてデフォルト値が使用されます。デフォルト値は、空の log-events
エレメントで以降のイベントに関するすべての値、およびその重大性の値を設定することによって上書きできます。
ログ イベントの完全なリストについては、付録 E を参照してください。