ACCESS Clone Recordset作成方法 ― 2011年06月15日 11時07分03秒
Function cloneRs(rsSrc)
Dim strm
Set cloneRs=CreateObject("ADODB.Recordset")
If rsSrc.EOF Then Exit Function '-------------------> 終
set strm = CreateObject("ADODB.Stream")
rsSrc.save strm
cloneRs.open strm
strm.close
End Function
Dim strm
Set cloneRs=CreateObject("ADODB.Recordset")
If rsSrc.EOF Then Exit Function '-------------------> 終
set strm = CreateObject("ADODB.Stream")
rsSrc.save strm
cloneRs.open strm
strm.close
End Function
windows2008 VPN ― 2011年03月22日 19時32分39秒
(WindowsServer2008)会社と自宅間で L2TP/IPSec VPNを構築してみた |
MCP70-642の勉強中で出てきたリモートアクセス用のVPNを会社~自宅間でテスト構築してみることにしました。
VPNサーバは Windows Server 2008 で、NAPTによりインターネットにアクセス可能です。
ネットワーク図は下記のような感じです。
VPNサーバ側の設定
まずは Windows Server 2008 で役割の追加で「ネットワークポリシーとアクセスサービス」から「リモートアクセスサービス」をインストールします。
管理ツール「ルーティングとリモートアクセス」から、サーバを右クリックし「ルーティングとリモートアクセスの構成と有効化」を押下します。
これで「ルーティングとリモートアクセスサーバーのセットアップウィザード」が開始します。
●ネットワークカード(NIC)が2枚以上ある場合
構成 は「リモートアクセス(ダイヤルアップまたはVPN)」にします。
「リモートアクセス」では「VPN」にチェック。
VPN接続 で、ネット側のNICを選択します。その際、「静的パケットフィルタをセットアップしてセキュリティを有効にする」のチェックは外します。
(このチェックがついていると、VPN以外のパケットは通さなくなるため、LAN内からサーバへの通常アクセスもできなくなります。VPNサーバをルータ替わりで使うときに使うオプションだと思われます。このチェックはNICのプロパティの「入力フィルタ」、「出力フィルタ」に反映されます。)
IPアドレスの割り当て で「自動」にしとくとDHCPを使ってアドレスを割り当てることができ、「指定したアドレス範囲」にしとくと次の画面で払いだすIPを設定することができるようです。
●NICが1枚しかない場合
構成 は「カスタム構成」→「VPNアクセス」にします。(「リモートアクセス」にしてもNICが1枚しかないとダメだと怒られます)
今回はNAT内部にリモートアクセスサーバを置いているので、特別なフィルタリングはしません。
なので、NICのプロパティで全ての通信を許可するようになっていることを確認します。(最初は「静的パケットフィルタをセットアップしてセキュリティを有効にする」のチェックを入れてせってしたため、フィルタが生成され通常通信できずにかなりハマりました。)
ルーティングとリモートアクセスサーバーの役割インストール後、「リモートアクセスのログとポリシー」を右クリックし「NPSの起動」を押下します。
すると「ネットワークポリシーサーバー」が起動するので、ここでリモートアクセスを許可するポリシーを作成していきます。
「ネットワーク接続の方法」には「リモートアクセスサーバー」を指定。
条件の選択で指定したWindowsグループのアカウントに許可を与えます。
続けて認証の方式(今回は MS-CHAPv2 のみ許可)や制約(セッション時間や時刻など)、暗号化のポリシーを決めていきます。
今回は L2TP/IPSec を用いるので、それ以外のVPNプロトコルは無効しておきます。
管理ツール「ルーティングとリモートアクセス」の「ポート」のプロパティから各VPNの構成でセッション数や有効無効が設定できます。
本来 IPSec では証明書を使ったコンピュータ認証をするのがセキュリティ的に望ましいのですが、今回はテスト接続ということで、キー文字列による暗号化をするように設定します。
L2TP/IPSecでは L2TP を IPSec でカプセル化しているため、IPSecで使うポートを開放する必要があります。
開放する必要があるのは
UDP 500 (IKE:鍵交換で必要)
IPプロトコル番号 50 (ESPプロトコル)
です。
しかし、IPSecには NAT や NAPT を介するとその際のプロトコルやポート変換を、IPSecが改ざんとみなすため、正常に通信ができません。
これを回避するための方法が NAT-T (NATトラバーサル)というもので、IPSec のパケットをさらにUDPのパケットでカプセル化するというものです。
使う UDP は 4500 ポートです。
Windows Server 2008ではもともとNAT-Tにも対応済みなので、サーバ側OSの設定で特にすることはありません。
ということで、ルータ側でポートフォワーディングするのは下記のような設定になります。
UDP 500 → 192.168.1.10へ
UDP 4500 → 192.168.1.10へ
(ルータでファイアウォールの設定してる場合は、UDP 500,4500 の外向き通信も許可しないといけません。またサーバのファイアウォールでも上記ポートを開放しておきます。)
各VPNプロトコルで必要なポートはTechNet:VPN およびファイアウォールで参照できます。
NAT-Tの概要はIPsec - NAT Traversalでわかりやすく解説されています。
ここからはクライアントの設定です。
●Vistaの場合
コンパネの「ネットワークと共有センター」のタスクから「接続またはネットワークのセットアップ」を押下します。
「職場に接続します」を選択します。
「インターネット接続(VPN)を使用ます」を選択します。
ここで、接続するルータのダイナミックDNS名を入れます。(固定IP持ってるならそっちのほうがいい)
そして、「今は接続しない」にチェックを入れます。
VPNサーバ上でVPN接続が許可されているグループに所属するユーザアカウントを入力します。
接続の使用準備ができました 画面では、「閉じる」を押下します。
後は、暗号化や認証等の細かい設定が必要なので、コンパネの「ネットワーク接続」より、先ほど作成した接続のプロパティを表示します。
「ネットワーク」タブで、VPNの種類を「L2TP IPsec VPN」にします。
そして、「IPsec 設定」ボタンを押下し、「認証に事前共有キー」を使うをチェックし、サーバ側と同じキーを入力します。
これで、設定を保存し、ダイアログを閉じます。
●XP の場合(SP2以上必須)
コンパネの「ネットワーク接続」からネットワークタスクの「新しい接続を作成する」を押下します。
「職場のネットワークへ接続する」を選択します。
「仮想プライベートネットワークに接続」を選択します。
「接続名」は適当で、「ホスト名またIPアドレス」に接続するルータのダイナミックDNS名を入れます。(固定IP持ってるならそっちのほうがいい)
ウィザードが完了するとすぐに接続用ダイアログボックスが開くみたいなので、「プロパティ」を押下します。
このプロパティで IPSec の事前共有キーの設定をするんですが、Vistaと押下するボタンが違うので注意が必要です。
「セキュリティ」タブの「IPSec 設定」を押下します。
そしたら、事前共有キー入れるダイアログボックスが開くのキーを入力します。
「ネットワーク」タブで、VPNの種類を「L2TP IPsec VPN」にします。
これで、設定を保存し、ダイアログを閉じます。
これで済めば楽なんですが、例の NAPT 絡みでこれだけではつながりません。
クライアント側で NAT-T を使えるように設定してやらないといけません。初期設定では NAT-T つかない設定らしいのです。
これがどうやらレジストリ使うしか方法がなさそうなのです。。(しかもXPとVistaじゃ場所違うし、XPはどうやらSP2以上が必要)
追加するレジストリのキーと値は下記の通りです。
このクライアントのNAT-T対応は、MS:ネットワーク アドレス変換 (NAT) の使用に関する問題や、第2回 VPNを使って安全・簡単なリモート接続 その2で詳しく解説されてます。
レジストリ設定後、クライアントPCを再起動します。
これでネットワーク接続で、作成したVPNを接続すればつながります。
自宅も会社も同じフレッツIPv6網なので、試しにその網を使ってIPv6通信してみました。
クライアント側は接続先をVPNサーバが持っている IPv6 アドレス(NTTから払いだされる 2001:xxx に変更するだけでOKです。
サーバ側も特に何もしなくてもOKでした。(ルータやFWでIPv6のUDPを許可する必要はありますが。。)
ルーティングとリモートアクセスのサーバのプロパティで「IPv6リモートアクセスサーバー」や「IPv6転送を有効にする」にチェックを入れないといけないのかと思ってましたが、なくても行けます。(チェック入れるとクライアントの PPP のアダプタに IPv6 アドレスが振られるようです。ただ、今回はVPNのトンネルさえIPv6でつなげれば、中はIPv4でもかまわないのでチェックなしにしてます)
ちなみに、TinyVPNとL2TP/IPsecとで会社~自宅間のVPNのベンチ結果です。
TinyVPN 1.3MB/s
L2TP/IPSec 2.4MB/s
追記:
VPNサーバとDNSサーバ同じ場合、問題が生じるようです。
詳しくは(WindowsServer2008)会社と自宅間で L2TP/IPSec VPNを構築してみた (その2)を参照。
VPNサーバは Windows Server 2008 で、NAPTによりインターネットにアクセス可能です。
ネットワーク図は下記のような感じです。
VPNサーバ側の設定
まずは Windows Server 2008 で役割の追加で「ネットワークポリシーとアクセスサービス」から「リモートアクセスサービス」をインストールします。
管理ツール「ルーティングとリモートアクセス」から、サーバを右クリックし「ルーティングとリモートアクセスの構成と有効化」を押下します。
これで「ルーティングとリモートアクセスサーバーのセットアップウィザード」が開始します。
●ネットワークカード(NIC)が2枚以上ある場合
構成 は「リモートアクセス(ダイヤルアップまたはVPN)」にします。
「リモートアクセス」では「VPN」にチェック。
VPN接続 で、ネット側のNICを選択します。その際、「静的パケットフィルタをセットアップしてセキュリティを有効にする」のチェックは外します。
(このチェックがついていると、VPN以外のパケットは通さなくなるため、LAN内からサーバへの通常アクセスもできなくなります。VPNサーバをルータ替わりで使うときに使うオプションだと思われます。このチェックはNICのプロパティの「入力フィルタ」、「出力フィルタ」に反映されます。)
IPアドレスの割り当て で「自動」にしとくとDHCPを使ってアドレスを割り当てることができ、「指定したアドレス範囲」にしとくと次の画面で払いだすIPを設定することができるようです。
●NICが1枚しかない場合
構成 は「カスタム構成」→「VPNアクセス」にします。(「リモートアクセス」にしてもNICが1枚しかないとダメだと怒られます)
今回はNAT内部にリモートアクセスサーバを置いているので、特別なフィルタリングはしません。
なので、NICのプロパティで全ての通信を許可するようになっていることを確認します。(最初は「静的パケットフィルタをセットアップしてセキュリティを有効にする」のチェックを入れてせってしたため、フィルタが生成され通常通信できずにかなりハマりました。)
ルーティングとリモートアクセスサーバーの役割インストール後、「リモートアクセスのログとポリシー」を右クリックし「NPSの起動」を押下します。
すると「ネットワークポリシーサーバー」が起動するので、ここでリモートアクセスを許可するポリシーを作成していきます。
「ネットワーク接続の方法」には「リモートアクセスサーバー」を指定。
条件の選択で指定したWindowsグループのアカウントに許可を与えます。
続けて認証の方式(今回は MS-CHAPv2 のみ許可)や制約(セッション時間や時刻など)、暗号化のポリシーを決めていきます。
今回は L2TP/IPSec を用いるので、それ以外のVPNプロトコルは無効しておきます。
管理ツール「ルーティングとリモートアクセス」の「ポート」のプロパティから各VPNの構成でセッション数や有効無効が設定できます。
本来 IPSec では証明書を使ったコンピュータ認証をするのがセキュリティ的に望ましいのですが、今回はテスト接続ということで、キー文字列による暗号化をするように設定します。
L2TP/IPSecでは L2TP を IPSec でカプセル化しているため、IPSecで使うポートを開放する必要があります。
開放する必要があるのは
UDP 500 (IKE:鍵交換で必要)
IPプロトコル番号 50 (ESPプロトコル)
です。
しかし、IPSecには NAT や NAPT を介するとその際のプロトコルやポート変換を、IPSecが改ざんとみなすため、正常に通信ができません。
これを回避するための方法が NAT-T (NATトラバーサル)というもので、IPSec のパケットをさらにUDPのパケットでカプセル化するというものです。
使う UDP は 4500 ポートです。
Windows Server 2008ではもともとNAT-Tにも対応済みなので、サーバ側OSの設定で特にすることはありません。
ということで、ルータ側でポートフォワーディングするのは下記のような設定になります。
UDP 500 → 192.168.1.10へ
UDP 4500 → 192.168.1.10へ
(ルータでファイアウォールの設定してる場合は、UDP 500,4500 の外向き通信も許可しないといけません。またサーバのファイアウォールでも上記ポートを開放しておきます。)
各VPNプロトコルで必要なポートはTechNet:VPN およびファイアウォールで参照できます。
NAT-Tの概要はIPsec - NAT Traversalでわかりやすく解説されています。
ここからはクライアントの設定です。
●Vistaの場合
コンパネの「ネットワークと共有センター」のタスクから「接続またはネットワークのセットアップ」を押下します。
「職場に接続します」を選択します。
「インターネット接続(VPN)を使用ます」を選択します。
ここで、接続するルータのダイナミックDNS名を入れます。(固定IP持ってるならそっちのほうがいい)
そして、「今は接続しない」にチェックを入れます。
VPNサーバ上でVPN接続が許可されているグループに所属するユーザアカウントを入力します。
接続の使用準備ができました 画面では、「閉じる」を押下します。
後は、暗号化や認証等の細かい設定が必要なので、コンパネの「ネットワーク接続」より、先ほど作成した接続のプロパティを表示します。
「ネットワーク」タブで、VPNの種類を「L2TP IPsec VPN」にします。
そして、「IPsec 設定」ボタンを押下し、「認証に事前共有キー」を使うをチェックし、サーバ側と同じキーを入力します。
これで、設定を保存し、ダイアログを閉じます。
●XP の場合(SP2以上必須)
コンパネの「ネットワーク接続」からネットワークタスクの「新しい接続を作成する」を押下します。
「職場のネットワークへ接続する」を選択します。
「仮想プライベートネットワークに接続」を選択します。
「接続名」は適当で、「ホスト名またIPアドレス」に接続するルータのダイナミックDNS名を入れます。(固定IP持ってるならそっちのほうがいい)
ウィザードが完了するとすぐに接続用ダイアログボックスが開くみたいなので、「プロパティ」を押下します。
このプロパティで IPSec の事前共有キーの設定をするんですが、Vistaと押下するボタンが違うので注意が必要です。
「セキュリティ」タブの「IPSec 設定」を押下します。
そしたら、事前共有キー入れるダイアログボックスが開くのキーを入力します。
「ネットワーク」タブで、VPNの種類を「L2TP IPsec VPN」にします。
これで、設定を保存し、ダイアログを閉じます。
これで済めば楽なんですが、例の NAPT 絡みでこれだけではつながりません。
クライアント側で NAT-T を使えるように設定してやらないといけません。初期設定では NAT-T つかない設定らしいのです。
これがどうやらレジストリ使うしか方法がなさそうなのです。。(しかもXPとVistaじゃ場所違うし、XPはどうやらSP2以上が必要)
追加するレジストリのキーと値は下記の通りです。
・キー
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec (XPの場合)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent(Windows Vistaの場合)
・値の名前
AssumeUDPEncapsulationContextOnSendRule
・値の種類
REG_DWORD
・値
0 (NAT-T無効。デフォルト)
1 (片一方がNATの背後)
2 (サーバ、クライアント共にNATの背後)
このクライアントのNAT-T対応は、MS:ネットワーク アドレス変換 (NAT) の使用に関する問題や、第2回 VPNを使って安全・簡単なリモート接続 その2で詳しく解説されてます。
レジストリ設定後、クライアントPCを再起動します。
これでネットワーク接続で、作成したVPNを接続すればつながります。
自宅も会社も同じフレッツIPv6網なので、試しにその網を使ってIPv6通信してみました。
クライアント側は接続先をVPNサーバが持っている IPv6 アドレス(NTTから払いだされる 2001:xxx に変更するだけでOKです。
サーバ側も特に何もしなくてもOKでした。(ルータやFWでIPv6のUDPを許可する必要はありますが。。)
ルーティングとリモートアクセスのサーバのプロパティで「IPv6リモートアクセスサーバー」や「IPv6転送を有効にする」にチェックを入れないといけないのかと思ってましたが、なくても行けます。(チェック入れるとクライアントの PPP のアダプタに IPv6 アドレスが振られるようです。ただ、今回はVPNのトンネルさえIPv6でつなげれば、中はIPv4でもかまわないのでチェックなしにしてます)
ちなみに、TinyVPNとL2TP/IPsecとで会社~自宅間のVPNのベンチ結果です。
TinyVPN 1.3MB/s
L2TP/IPSec 2.4MB/s
追記:
VPNサーバとDNSサーバ同じ場合、問題が生じるようです。
詳しくは(WindowsServer2008)会社と自宅間で L2TP/IPSec VPNを構築してみた (その2)を参照。
論鶴羽山 ― 2010年12月26日 22時21分35秒
淡路島の最高峰に行ってきました。
ほぼ舗装路を走って、もうすぐ諭鶴羽神社という前で海が見え始め眼下に沼島が
いつもは海岸沿いを走って見ている島が今日は下に
ほぼ舗装路を走って、もうすぐ諭鶴羽神社という前で海が見え始め眼下に沼島が
いつもは海岸沿いを走って見ている島が今日は下に


大鳴門橋

諭鶴羽山頂で


展望抜群
長浜~ ― 2010年08月25日 15時00分07秒
8月15日8:30長浜スタート!!

前日までは、いつもの自転車仲間と1泊2日で岐阜県の徳山ダム方面を走っていました
昨夜は長浜に泊まり、大阪までどこまで走れるか・・・・挑戦です
8:30に長浜駅をスタートです
スタート地点が分かるようにJRで来たわけではないけど、近くのビジネスホテルからわざわざ駅前に来ました
琵琶湖を見ながら南下したいので、なるべく自転車道を走ろうとしました

これをずっと見ながら南へ
周りの自転車は北へ、一人だけ反対に走っているような感じです
途中で琵琶湖からどんどん離れて行きましたが、また勝手に琵琶湖沿いにもどったりしました
暑くて、暑くて、
琵琶湖大橋を過ぎて、しばらくすると蓮と風力発電
日陰はないけどちょっと景色を眺めてました
周りの自転車は北へ、一人だけ反対に走っているような感じです
途中で琵琶湖からどんどん離れて行きましたが、また勝手に琵琶湖沿いにもどったりしました
暑くて、暑くて、
琵琶湖大橋を過ぎて、しばらくすると蓮と風力発電
日陰はないけどちょっと景色を眺めてました

琵琶湖から瀬田川へ
ここから、たまに行く宇治へ向かいます

宇治到着
電車に乗ろうか・・・・
このまま走ろうか・・・・・
時間は3時半
電車に乗ろうか・・・・
このまま走ろうか・・・・・
時間は3時半

久御山方面を通って
木津川の新しくなった流れ橋へ
走ることにしました

到着 6時半ぐらいでした
遠くに見えるのは、毛馬の水門です

長浜から大阪まで走れました
距離、120km~140kmぐらいです
涼しい季節に、今度はロードで走ってもいいかも
PHP.ini設定 ― 2010年02月21日 00時48分49秒
register_globals = On
output_buffering = On <------ CSV出力で必要
output_buffering = On <------ CSV出力で必要
最近のコメント