前のトピック: VPN - 仮想プライベート ネットワーキング アプライアンス

次のトピック: 汎用


IPSec 共有秘密

このモードは、単一サーバと複数クライアントのシナリオをサポートします。複数の場所から VPN サーバへのアクセスを許可します。 データ ストアが必要です(データ ボリュームか NAS アプライアンスのいずれかが fs 端子に接続されています)。 このモードは IPv4 のみで動作します。

起動時に、サーバ アプライアンスは auth_path プロパティによって指定されるファイルの最初の行を抽出し、共有キーとして使用します。 このファイルは両方のパーティ上に存在する必要があります。 どの VPN クライアントを設定する前にも、この共有秘密ファイルを /client/ サブディレクトリ内のデータ ストアにコピーする必要があります。

サーバ VPN アプライアンスでは、外部インターフェース上で受信したトラフィックは復号化され、tcp_ports、udp_ports、aux_protocols プロパティによってフィルタされた後、srv インターフェースへ転送されます。

クライアント VPN アプライアンスでは、clt インターフェース上で受信したすべてのトラフィックは暗号化され、remote_host プロパティで指定されたリモート VPN サーバへ転送されます。

サーバ側で設定する必要があるプロパティは、ip_addr、netmask、gateway(または対応する IPv6 プロパティ)、mode、tunnel、allowed_hosts、tcp_ports、udp_ports、aux_protocols です。

クライアント側で設定する必要があるプロパティは、ip_addr、netmask、gateway(または対応する IPv6 プロパティ)、mode、tunnel、remote_host、auth_path です。

外部サービスへのリモート アクセス

以下の図は、外部サービスのリモート アクセスの設定方法の例を示しています。

例: グリッド A 上で実行され、安全な VPN トンネルを介してグリッド B 上で実行されるリモート MySQL データベースにアクセスする Web アプライアンス

この例では、グリッド A 上で実行される Web アプライアンスで、安全な VPN トンネルを介してグリッド B 上で実行されるリモート MySQL データベースにアクセスします。

グリッド A 上の vpn1 は、グリッド B 上の vpn2 に割り当てられた IP アドレスに接続するように設定されます。 vpn1 の srv 端子、および vpn2 の clt 端子は、未接続のままです。 vpn1 と vpn2 の外部インターフェースは、適切なルーティング可能 IP アドレスで設定されます。

プロパティ設定の例:

vpn1:

プロパティ名

ノート

ip_addr

25.74.63.87

vpn1 に使用される外部 IP

netmask

255.255.255.0

netmask

gateway

25.74.63.1

gateway

mode

client

クライアント操作モード

tunnel

ipsec certificate

トラフィックは IPSec を使用して暗号化されます

auth_path

client-7575

証明書/キー ファイル ペアの名前

remote_host

12.12.12.12

vpn2 の外部インターフェースに割り当てられた外部 IP

vpn2:

プロパティ名

ノート

ip_addr

12.12.12.12

vpn2 に使用される外部 IP

netmask

255.255.255.0

netmask

gateway

12.12.12.1

gateway

mode

server

サーバ操作モード

tunnel

ipsec certificate

トラフィックは IPSec を使用して暗号化されます

allowed_hosts

25.74.63.87

vpn1 からの接続のみを許可します

tcp_ports

3306

MySQL サーバ用のデフォルト ポート

内部 CA AppLogic アプライアンスへのリモート アクセス

以下の図は、内部 CA AppLogic アプライアンスへのリモート アクセスの設定方法の例を示しています。

例: OpenVPN クライアントを使用し、安全な VPN 接続を通じて、自分の PC から異なる複数のアプライアンスにアクセスする必要があるユーザ

この例の場合、ユーザは、自分の PC から OpenVPN クライアントを使用し、安全な VPN 接続を通じて、異なる複数のアプライアンスにアクセスする必要があります。 OpenVPN は vpn に割り当てられた IP アドレスに接続するために使用されます。 Vpn は、ユーザの PC で VPN トンネルを確立し、アプリケーション内の 4 つの異なるアプライアンスにトラフィックを配信するように設定された sw ポート スイッチにすべての受信トラフィックを転送します。

OpenVPN は、この例で説明されているように、VPN アプライアンスを使用する CA AppLogic アプリケーションにアクセスする前にユーザの PC にインストールする必要があります。 以下の手順では、このアプリケーションがどのように設定されるか、および安全な VPN トンネルを介してアプリケーションにアクセスするには、ユーザが何を実行する必要があるかを説明します。

  1. ユーザは自分の PC に OpenVPN をインストールする必要があります。 OpenVPN は、さまざまな場所から取得できる可能性があります(Windows Vista 上では動作しない OpenVPN についてレポートされています)。 インストール後に、CA AppLogic アプリケーションにアクセスするために、ユーザが使用する OpenVPN トンネルのプロパティを定義する個別の設定ファイルを作成する必要があります。 以下の手順では、その方法について説明します。
  2. VPN アプライアンスの共有秘密操作モードを使用することを強くお勧めします。 以下のように vpn を設定します。

vpn:

プロパティ名

ノート

ip_addr

28.36.85.21

VPN アプライアンスに割り当てられた IP アドレス

mode

server

サーバ操作モード

tunnel

shared secret

共有秘密ファイルの使用

allowed_hosts

26.42.56.72

クライアント PC の IP アドレス

tcp_ports

0

ポートがすべて許可されます

udp_ports

0

ポートがすべて許可されます

3. sw アプライアンスを介して転送する必要がある目的のプロトコルおよびポートを割り当てます。 この場合は、4 つのポート(122、422、522、822)が sw に接続されたアプライアンスの ssh ポートへ転送されます。

プロパティ名

ノート

out1_protocol

tcp

TCP プロトコル

out1_in_port

122

受信ポート 122

out1_out_port

22

送信ポート 22

out4_protocol

tcp

TCP プロトコル

out4_in_port

422

受信ポート 422

out4_out_port

22

送信ポート 22

out5_protocol

tcp

TCP プロトコル

out5_in_port

522

受信ポート 522

out5_out_port

22

送信ポート 22

out8_protocol

tcp

TCP プロトコル

out8_in_port

822

受信ポート 822

out8_out_port

22

送信ポート 22

4. アプリケーションを起動します。 アプリケーションが起動されたら、vpn アプライアンスから共有秘密ファイルを抽出します。

grid> comp ssh APPLICATION:main.VPN
vpn> cat /mnt/data/server/secret.key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
431e845f2ca67f2a31649b20e3ba3291
...
fe991cdbfe82525a9367b9afbfd0f922
-----END OpenVPN Static key V1-----

5. 上記の secret.key の内容をユーザの PC 上の新しいファイルに貼り付けて、ファイルを保存します。 これは認証に使用される共有秘密ファイルです。

6. クライアント OpenVPN 設定ファイルを準備します。 以下の行をユーザの PC 上の新しいファイルにコピーします(手順 5 とは異なるファイル)。

dev tun
proto udp
resolv-retry infinite
persist-key
persist-tun
cipher AES-128-CBC
comp-lzo
keepalive 10 120
remote 11.22.33.44 1194
secret "C:\\Program Files\\OpenVPN\\sample-config\\secret.key"
nobind
ifconfig 169.254.215.101 169.254.215.102

ifconfig 行内の IP アドレスは、a) 169.254.0.0/16 ネットワーク ブロックに基づいている、b) 同じ /30 サブネットにある、および c) /30 サブネット内の最初または最後のアドレスでない限り、任意に指定できます。 B および C は、Windows プラットフォーム上で実行される OpenVPN クライアントの制限です。

7. リモート IP アドレスを vpn アプライアンスに割り当てられる IP アドレスに置き換えます。 秘密行内の共有秘密ファイルへのパスを、手順 5 で作成したキー ファイルへのパスに置き換えます。 OpenVPN がインストールされたユーザ PC 上で Microsoft Windows オペレーティング システムを使用している場合は、すべての行を引用符で囲み、すべてのスラッシュをダブルスラッシュに置き換えます。

8. 以下のように OpenVPN クライアントを起動します。

c:\program files\OpenVPN\bin\openvpn.exe --config "c:\client.ovpn"

:「c:\client.ovpn」を手順 6 で作成した設定ファイルへのパスに置き換えてください。

9. 数秒後、OpenVPN から以下のメッセージが表示されます。

Wed Jul 01 09:41:12 2009 Peer Connection Initiated with XX.XX.XX.XX:1194
Wed Jul 01 09:41:12 2009 Initialization Sequence Completed

これで、設定ファイル(ここでは 169.254.215.102)内に定義された IP アドレスを使用して、CA AppLogic アプリケーションのアプライアンスにアクセスできます。 ポート 169.254.215.102:122 はソフトウェアによって srv1 アプライアンスのポート 22 に転送されます。同様に、ポート 169.254.215.102:422 は srv4 アプライアンスへ転送されます。 たとえば、

ssh -p 122 root@169.254.215.102

を実行して、最初のアプライアンスにアクセスします。

MySQL レプリケーション用の安全な VPN トンネルの提供

以下の図は、ユーザが MySQL レプリケーション用の安全な VPN トンネルを提供する方法の一例を示します。

例: グリッド A およびグリッド B 上で 2 つのアプリケーションが個別に実行され、その両方のアプリケーションで安全な VPN トンネルを介してレプリケートされる同じ MySQL データベースを使用する。

この例では、グリッド A およびグリッド B の異なるグリッド上で 2 つのアプリケーションが実行されています。どちらのアプリケーションも、安全な VPN トンネルを介してレプリケートされるものと同じ MySQL データベースを使用します。

vpn1 と vpn2 は、外部インターフェース上のルーティング可能な IP アドレスで設定されます。 vpn1 は vpn2 へのトンネルを確立するように設定され、vpn2 は vpn1 へのトンネルを確立するように設定されます。

グリッド A からの db1 は、レプリケーションのために vpn1 へトラフィックを送信します。そこでトラフィックは暗号化されて vpn2 に転送された後、復号化されてグリッド B 上の db2 のリング ターミナルへ送信されます。 グリッド B 上の db2 からグリッド A 上の db1 へのレプリケーションも、同じ仕組みで動作します。

vpn1:

プロパティ名

ノート

ip_addr

82.56.42.25

外部インターフェースに割り当てられるアドレス。

mode

both

サーバの操作モード。

tunnel

ssh key

SSH キー ファイルの使用。

auth_path

"/keys/vpn21.ssh.key"

SSH キー ファイルへのパス。

remote_host

92.72.57.95

vpn2 の外部インターフェースに割り当てられるアドレス。

tcp_ports

3306,22

MySQL Server および SSH 用のデフォルト ポート。

ssh_ports

3306,22

MySQL Server および SSH 用のデフォルト ポート。

vpn2:

プロパティ名

ノート

ip_addr

92.72.57.95

外部インターフェースに割り当てられるアドレス。

mode

both

サーバの操作モード。

tunnel

ssh key

SSH キー ファイルの使用。

auth_path

"/keys/vpn21.ssh.key"

SSH キー ファイルへのパス。

remote_host

82.56.42.25

vpn1 の外部インターフェースに割り当てられるアドレス。

tcp_ports

3306,22

MySQL Server および SSH 用のデフォルト ポート。

ssh_ports

3306,22

MySQL Server および SSH 用のデフォルト ポート。

vpn1:

プロパティ名

ノート

ip_addr

82.56.42.25

外部インターフェースに割り当てられるアドレス。

mode

both

サーバおよびクライアントとして機能し、2 方向レプリケーションを可能にします。

tunnel

ipsec shared secret

IPSec を使用したトラフィックの暗号化。

auth_path

"/keys/ipsec.key"

ipsec 共有秘密ファイルへのパス。

remote_host

92.72.57.95

vpn2 の外部インターフェースに割り当てられるアドレス。

tcp_ports

3306,22

MySQL Server および SSH 用のデフォルト ポート。

vpn2:

プロパティ名

ノート

ip_addr

92.72.57.95

外部インターフェースに割り当てられるアドレス。

mode

both

サーバおよびクライアントとして機能し、2 方向レプリケーションを可能にします。

tunnel

ipsec shared secret

IPSec を使用したトラフィックの暗号化。

auth_path

"/keys/server/ipsec.key"

ipsec 共有秘密ファイルへのパス。

remote_host

82.56.42.25

vpn1 の外部インターフェースに割り当てられるアドレス。

tcp_ports

3306,22

MySQL Server および SSH 用のデフォルト ポート。

ノート

VPN アプライアンスによって提供される安全な VPN トンネルにアクセスするには、クライアントのマシン上で OpenVPN を使用する必要があります。

アプライアンスの内部で使用されるサードパーティ オープンソース ソフトウェア

VPN は、ベース クラス LUX5 で使用されるサードパーティのオープン ソース パッケージに加えて、以下のサードパーティのオープン ソース パッケージを使用します。

ソフトウェア

バージョン

変更

ライセンス

ノート

IPsec-Tools

0.6.5-13.el5_3.1

いいえ

BSD

ホームページ

iptables

1.3.5-5.3.el5_4.1

いいえ

GPLv2

該当なし

iptables-ipv6

1.3.5-5.3.el5_4.1

いいえ

GPLv2

該当なし

LZO

2.03

いいえ

GPLv2

ホームページ

OpenVPN

2.1.4

いいえ

GPLv2

ホームページ

samba-client

3.0.33-3.15.el5_4

いいえ

GPLv2

該当なし

samba-common

3.0.33-3.15.el5_4

いいえ

GPLv2

該当なし

iproute2

2.6.29-1

いいえ

GPLv2

ホームページ

autossh

1.4b

いいえ

BSD

ホームページ