DeleGate で MS SQL Server 7.0 を Proxy

SERVER

電総研の DeleGate を用いて、Proxy サーバで保護した Microsoft SQL Server 7.0 を外部公開する方法を紹介します。


SQL Server の設定

電子技術総合研究所(電総研) の佐藤豊さんが作成した DeleGate を利用して、内部ネットワークに保護した Microsoft SQL Server 7.0 を外部 TCP/IP ネットワークから利用可能にする方法を紹介します。

 

まず SQL Server 自体を TCP/IP で接続できるようにします。

ほとんどの場合は標準で接続できるようになっていると思いますが、そうでない場合は 【プログラム】 → 【Microsoft SQL Server 7.0】 → 【サーバネットワークユーティリティ】 を使用して設定を行います。

サーバネットワークユーティリティを起動しますと、【全般】 という項目に、接続可能なプロトコルが表示されます。

その中に TCP/IP という項目が表示されていなければ、右の 【追加】 ボタンを押して、TCP/IP プロトコルの接続を追加します。その際に接続に利用するポート番号を指定します。このポート番号が、接続するための設定で重要になってきます。

ここでは、標準の 1433 ポートが設定されているものとして話を進めていきます。

 

DeleGate の設定と起動

ローカルネットワーク内の SQL Server を mssql.ez-net.jp と仮定してそれに接続する設定方法を紹介します。なお DeleGate が稼動しているサーバは delegate.ez-net.jp だとします。

設定は DeleGate の 1433 ポートに TCP リレーを設定して SQL Server へデータをリレーするようにします。たとえば DeleGate が /sbin/ にインストールされている場合、次のような設定を行います。

/sbin/delegated -P1433 SERVER="tcprelay://mssql.ez-net.jp:1433" ADMIN="admin@ez-net.jp" RELIABLE="*" REACHABLE="mssql.ez-net.jp"

どこからの接続に関して SQL Server への接続を許可するかは RELIABLE にて設定することが出来ますので、自分のネットワークにあった設定を行うセキュリティ設定を行うことができます。

たとえば、Network 192.168.0.0 Netmask 255.255.255.0 からのアクセスのみを許可する場合は RELIABLE = "192.168.0.0/24"またはRELIABLE = "192.168.0.[0-255]"というような設定になります。

また、Network 192.168.1.0 Netmask 255.255.255.0 からのアクセスも可能とする場合には、RELIABLE = "192.168.0.0/24,192.168.1.0/24"というようになります。どうやら、カンマ ( , ) の間に空白を入れてしまうとうまくいかないようなので気をつけましょう。

 

以上の設定を実行すると、SQL Server への Proxy がはじまります。再起動時には再び DeleGate を設定しないといけないので、起動時に自動的に実行されるようにしておくと安心です。

 

クライアントの設定

DeleGate Proxy が起動したら、あとはクライアント側の設定です。

接続するサーバが mssql.ez-net.jp ではなく delegate.ez-net.jp となる以外は、通常の接続と設定方法は特に変わりません。

 

Microsoft SQL Client がインストールされているコンピュータの場合は、【プログラム】 → 【Microsoft SQL Server 7.0】 → 【クライアントネットワークユーティリティ】 で設定を行います。ODBC データソースからクライアント設定ユーティリティを呼び出すことも出来るようです。

クライアント設定ユーティリティを起動したら、【追加】 ボタンをクリックします。すると新しいダイアログボックスが現れますので、次のように設定します。

サーバー別名 DELEGATE
ネットワークライブラリ TCP/IP
コンピュータ名 delegate.ez-net.jp
ポート番号 1433
 

サーバー別名というのは接続する際に、接続先を区別するための名前です。今回の場合、接続先を DELEGATE と指定するだけで、あらかじめクライアント設定ユーティリティで指定した、delegate.ez-net.jp:1433 への接続を行ってくれるようになります。

ネットワークライブラリは、どのような方法でサーバへ接続するかを指定します。今回は DeleGate で TCP による Proxy を設定しましたので、TCP/IP となります。

コンピュータ名は、サーバを特定するための名前です。ネットワークライブラリが TCP/IP なので、TCP/IP でのサーバ名を指定します。

今回の場合、DeleGate が完全に mssql.ez-net.jp の代役を務めますので、接続先は DeleGate が稼動している delegate.ez-net.jp となります。

ポート番号は、SQL Server が稼動しているポート番号です。あらかじめサーバネットワークユーティリティで指定されているポート番号ですが、今回の場合 DeleGate が SQL Server へ中継してくれるポート番号を指定する必要があります。今回は DeleGate は 1433 ポートを SQL Server の 1433 へ中継する設定となっていますので、1433 を指定します。

以上で DeleGate 経由での SQL Server への接続設定は完了です。