SSH Tectia

非透過的 TCP トンネリング

非透過的 TCP トンネリングが使用されている場合、トンネルされるアプリケーションは、サーバに直接接続するのではなくローカル リスナー ポートに接続するように設定されます。 SSH Tectia Client は、接続をリモート サーバにセキュアに転送します。

単純なローカル トンネル

図 7.7. 単純なローカル トンネル

たとえば、sshclientsshserver、および imapserver の 3 つのホストがあり、sshclient のポート 143 に送信されるトラフィックを imapserver のポート 143 に転送する場合、sshclientsshserver の間の接続だけがセキュアになります。使用するコマンドは以下のようになります。

sshclient$ sshg3 -L 143:imapserver:143 username@sshserver 

SecureShell サーバが DMZ ネットワークに設置される例を図 7.8 に示します。SecureShell クライアントから SecureShell サーバまでの接続は暗号化され、社内ネットワークから IMAP サーバまでは暗号化されません。

IMAP サーバに対するローカル トンネル

図 7.8. IMAP サーバに対するローカル トンネル

トンネルは、Connection Broker の設定ファイルで接続プロファイルに対して定義することもできます。定義されたトンネルは、そのプロファイルを使用した接続が確立されると自動的に開かれます。ssh-broker-config.xml ファイルからの例を以下に示します。

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

デフォルトでは、クライアント ホスト自体からのローカル トンネルだけが許可されます。トンネル リスナー ポートに他のマシンからも接続できるようにするには、allow-relayyes に設定します。

Windows では、SSH Tectia 構成 GUI の [接続プロファイル] → [トンネル] で、プロファイルごとにトンネリングの設定を作成できます。トンネリングの定義項を参照してください。

自動トンネル

自動トンネルは、アプリケーション接続用の非透過的ローカル トンネルを作成するための 1 つの方法です。

自動トンネルでは、トンネルを確立するときに常に接続プロファイルを使用します。Connection Broker の起動時に自動的に有効になる、ローカル トンネル用のリスナーを作成できます。実際のトンネルは、リスナー ポートへの接続が最初に行われるときに形成されます。その時点でサーバへの接続が開かれていない場合は、その接続も自動的に開かれます。

Connection Broker の設定ファイルで、以下の種類の設定を作成します。

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

Windows では、SSH Tectia 構成 GUI の [自動トンネル] ページで自動トンネルを設定できます。手順については、自動トンネルの定義項を参照してください。

ローカル トンネリングの例

sshg3 を使用して、ローカル ポート転送を使用したセキュアなトンネルを作成すると、トンネルされる TCP アプリケーションは、アプリケーション サーバのポートではなく localhost ポートに接続するように設定されます。

アプリケーションの例 clientapp1 は、デフォルトでは、TCP ポート 2345 を使用して UNIX サーバ unix.example.com に接続します。

$ clientapp1 --username user1 --server unix.example.com --port 2345 

SecureShell を使用してこの TCP アプリケーションをセキュアにするために、以下のコマンドを使用します。

$ sshg3 -L 2345:localhost:2345 user1@unix.example.com -S -f &
$ clientapp1 --username user1 --server localhost --port 2345

上の sshg3 コマンドは、リモートの SecureShell サーバ unix.example.com に接続し、ポート 2345 上にローカル リスナーを作成し、リモートの SecureShell サーバに受信トラフィックを localhost:2345 に転送するよう指示して、1 回のみのモードでバックグラウンドに移動します。