18.5. SSHの詳細

安全なコマンドラインインターフェイスは、SSHを使用できる数多くの方法のまさに開始点です。正しい量の帯域幅が割り当てられていれば、X11セッションをSSHチャンネル上で送信することができます。また、TCP/IPフォワーディングを使用することで、以前は安全性に欠けていたシステム間のポート接続を特定のSSHチャンネルにマップすることができます。

18.5.1. X11フォワーディング

確立されているSSH接続上でX11セッションを開くことは、ローカルマシンでXプログラムを実行するのと 同じくらい簡単なことです。セキュアシェルプロンプトからXプログラムを実行すると、SSHクライアントと SSHサーバーが現在のSSH接続内で新しい安全なチャンネルを作成し、Xプログラムのデータがそのチャンネルを 介して透過的にクライアントマシンに送られます。

X11フォワーディングは非常に便利です。たとえば、X11フォワーディングを使用して、up2dateとの安全で インタラクティブなセッションを構成できます。これを実行するには、sshを使用してサーバーに 接続して以下を入力します:

up2date &

サーバー用のrootパスワードを入力すると、その後、Red Hat 更新 エージェントが表示され リモートユーザーは安全にリモートシステムの更新をすることが出来ます。

18.5.2. ポートフォワーディング

SSHを用いると、そのままでは不安全なTCP/IPプロトコルをポートフォワーディング経由で 安全にすることが出来ます。この技術を使用する時、SSHサーバーはSSHクライアントに対して 暗号化されたコンジット(経路)になります。

ポートフォワーディングは、クライアント上のローカルポートをサーバー上のリモートポートにマップすることで、 動作します。SSHで、サーバーのどのポートも、クライアント上のどのポートにもマッピングできます。SSHを 動作させるために、ポート番号を適合させる必要はありません。

ローカルホスト上で接続を受信待機するTCP/IPポートフォワーディングチャンネルを作成するには、 次のコマンドを実行します:

ssh -L local-port:remote-hostname:remote-port username@hostname

注意注意
 

ポートフォワーディングを設定して1,024以下のポートで受信待機する場合はrootアクセス権が必要です。

従って、暗号化された接続でPOPを使用しているmail.example.comというサーバー上の電子メールをチェックするには、 次のコマンドを使用します:

ssh -L 1100:mail.example.com:110 mail.example.com

ポートフォワーディングのチャンネルがクライアントマシンとメールサーバーの間で設定されると、 ローカルホスト上のポート1100を使用して新しいメールをチェックするように、POPメールクライアントに 指示できます。クライアントシステム上のポート1100へ送られた要求はどれもmail.example.comサーバーに 安全に転送されます。

mail.example.comでSSHサーバーが実行されていなくても、同じネットワーク上の別の マシンで実行している場合は、この接続の一部を安全にする為にSSHを使用出来ます。 但し、以下のように少々異なるコマンドを必要とします:

ssh -L 1100:mail.example.com:110 other.example.com

この例では、クライアントマシンのポート1100からポート22上のSSH接続を介してSSHサーバー other.example.comにPOP要求を転送しています。 これで、other.example.comは、mail.example.com上の ポート110に接続して、新しいメールがあるどうかをチェックします。この手法で安全なのは、クライアントシステムと other.example.comSSHサーバー間の接続だけであることに注意して下さい。

ポートフォワーディングは、ネットワークファイアウォールを利用して情報を安全に取得するのにも使用できます。 標準ポート(22)経由のSSHトラフィックは許可するけれども、他のポートへのアクセスは阻止するように ファイアウォールを設定した場合、阻止されたポートを使用する2つのホスト間の接続は、確立された SSH接続を介して通信をリダイレクトすることで可能になります。

注意注意
 

ポートフォワーディングを使用してこのように接続を転送すると、クライアントシステム上のユーザーは、 誰でも、そのサービスに接続できるようになります。もしクライアントシステムに侵入があった場合、 侵入者も転送されたサービスにアクセスできます。

ポートフォワーディングを担当しているシステム管理者は、/etc/ssh/sshd_config内のAllowTcpForwarding行でNoパラメータを指定して、sshdサービスを再起動することで、サーバーのこの機能を無効にすることができます。