SSHトンネルを使った安全なTCP/IP接続

PostgreSQL 8.0.0 文書
前のページ | 巻戻し | 第 16章サーバ実行時環境 | 早送り | 次のページ

# 16.8. SSHトンネルを使った安全なTCP/IP接続

クライアントとPostgreSQLサーバ間のネットワーク接続を暗号化するためにSSHを使うことができます。 正しく行えば、SSL機能がクライアントになくても、これで十分に安全なネットワーク接続を行うことができます。

まずSSHサーバがPostgreSQLサーバと同じマシン上で正しく起動していて、`ssh`を使ってログインできるユーザが存在することを確かめてください。 そうすると、次に示すコマンドでクライアントマシンから安全なトンネルを確立することができます。

    ssh -L 3333:foo.com:5432 joe@foo.com

`-L`引数の1番目の数字（3333）はトンネルのローカル側のポート番号で、自由に選択することが可能です。 2番目の数字（5432）は、トンネルのリモート側のサーバが使用しているポート番号です。 2つのポート番号間の名前もしくはアドレスは、接続しようとしているデータベースサーバのホストです。 このトンネルを使ってデータベースサーバに接続するためには、ローカルマシンのポート3333に接続します。

    psql -h localhost -p 3333 template1

データベースサーバにとっては、ユーザが実際に`joe@foo.com`であるかのように見え、このユーザとホストによる接続向けに設定された認証手続きが使用されます。 サーバはこの接続がSSLで暗号化されているとみなさないことに注意してください。 実際、SSHサーバとPostgreSQLサーバとの間は暗号化されません。 この2つのサーバが同一マシンにある限り、セキュリティ上の危険性が増すことはありません。

トンネルの確立が成功するためには、`ssh`を使用して端末セッションを確立したのと同様に、joe@foo.comユーザが`ssh`を通して接続することが許可されていなければいけません。

> ティップ: ここで説明してきたものと似た概念の手続きを使用して、安全なトンネルを提供可能なアプリケーションが他にもいくつか存在します。

前のページ | ホーム | 次のページ
SSLによる安全なTCP/IP接続 | 上に戻る | データベースユーザと権限