今年から働いているバイト先にスケジュール管理をメインとしたグループウェアを入れてもらった。結構予定が変更になったりするのに、管理が口頭やメモでやり取りしていて、フルタイムでは無い私が不便に思ったから提案したら通った次第。もっとも、活用されていないWindowsサーバーがあったから簡単にOK出たんだろうけど。(以前働いていたPCに詳しい人がいじっていたけど辞めたので放置になっていたらしい)
グループウェアは、モバイル環境からの利用も考慮して、aipoを検討していたけど、インストーラがTomcatとキッティングされていてインストールでこけるので諦めた。以前の職場にも導入して使い慣れたGroupSessionを使うことにした。GroupSessionは、Warファイルでも提供してくれているので、TomcatだろうがJBOSSだろうが、IISだろうが、アプリケーションサーバーが準備出来れば動くらしいので融通が聞く。私は慣れたApache+TomcatにGroupSessionのWarを展開して構築した。
さて、グループウェアが導入されて時間も経ってくるとみんなそれぞれに使い方を試行錯誤しつつもそれなりのルールが出来てくる。いつの間にかスケジュール管理はGroupSessionに依存している状態となる。これは以前の職場でも体験済み。問題は私がフルタイム、週5勤務では無い変則的ショートタイムだったりするので、予定が変更になっていても気づかないで出勤してしまうこと。自宅からも確認出来るようにしたいと申し出てみた。
すると、外部スタッフにも使わせたい考えがあるので、自宅からも見られるようにしてくれるならオッケーとのこと。もちろんセキュリティ面は考慮して対策しておく。具体的にはVPN接続を前提とする。Windows 2003 Server R2があるので、L2TP IPsecのVPNで行こうと思う。
問題はネットワーク環境だ。フレッツ光プレミアム。言うまでもなくNTTのCTUが鬱陶しい。NAT-T(トラバーサル)で超えるしか無さそう。クライアント側にレジストリ変更が必要なのがウザいけどやむを得ない。
結果的には、フレッツ光プレミアム、Windows 2003 Server R2で構築したVPNサーバー環境に、外部からWindowsXPやAndroidケータイからL2TP IPSecでVPN接続成功した。VPN対応のルーターは特に使っていない。同一ネットワーク上にあるNASにもアクセスできるのでファイル共有も成功しているみたいだ。
Windows 2003 Server R2では、サーバーの役割ウィザードから、リモートアクセス(VPNサーバー)の構築が行える。ネットワークセグメントは1つしか無いのでNICは追加する必要ナシ。つまりルーティングはする必要が無い。小さなオフィスだとむしろそれが普通だろう。クラスCのプライベートIPでも余裕だと思われる。セグメント分けしている組織では、それなりの管理者がいるはずなのでおだてるなどして完全に任せるのが幸せだ。
VPNのログイン認証はWindowsアカウントで行うこととして、Windowsサーバーにユーザー登録した。小さな会社なので外部からのアクセスは標準のCAL数-5個で事足りてしまうのが幸せすぎる(w
VPNサーバーの構築設定は至ってシンプルなので、あとはやっておかなくてはならない面倒な課題が絞られてくる。
- 変動IPアドレスの名前解決
- CTUのポート開放
- CTUのファイヤーウォール設定
- クライアントOS(Windows)のNAT-T対応
課題1に関してはフリーのDDNSサービスで解決させてみた。DDNS書き換えクライアントは、Windowsサーバーなので、DiCEを使った。無料版なのでサービスでは無く常駐アプリとして稼働しているので、ログアウトしてはならない。リモートデスクトップで一つセッションを張り、ログインしたままとして常駐させておく。リモートデスクトップを切る時は「切断」でセッションを切る。これが鬱陶しいという人は、素直にDiCE有料版(サービスとして稼働)を購入すると良いだろう。
課題2に関してはL2TPなので、IKE(UDP-500)、NAT-T(UDP-4500)を、サーバーのプライベートIPにフォワードする。(所謂ポート開放)
すなわち2つの「静的アドレス変換設定(ポート指定)」をCTUで設定する必要がある。
★優先順位★適用する接続先★LAN側端末IPアドレス◆プロトコル★ポート番号
★1★接続先1★192.168.24.250◆UDP★500 ~ 500
★2★接続先1★192.168.24.250◆UDP★4500 ~ 4500
課題3に関しては、上記2つのポート番号(UDP-4500、UDP-500)を当該WindowsサーバーがIN/OUT出来るように双方向の許可をする。及びESPプロトコル(プロトコル番号-50)のINを許可する。
すなわち5つのエントリーが必要になると考えた。
後々自分の備忘録の為にPDFファイルにしたのをUPしておく。
課題4に関しては検索してみたところ、WindowsXPとVista及びWindows2008の記述を見つけた。レジストリを慎重に変更して、WindowsXPを再起動。VPN接続先を設定してみたらVPN接続に成功した。なお、Windows7についてはウチは立ち位置がちょっと面倒なので検証に使うのが厳しく今回はパスすることにした。
蛇足ながら、AndroidケータイのVPN接続でもVPN接続に成功した。サポートしている認証方式などをVPNサーバー側であわせるなどしてチューニングする必要があるかも知れないが、なるだけ高度なセキュリティを使用したいものだ。
残る課題としては、Windows7におけるNAT-T対応の方法を調べるくらいだろうか。認証方式ももう少しセキュアにする必要があるかもしれない。レジストリ変更は素人さんにはリスキーなので、エクスポートしたものを配布するのがベターかな。インストーラを作れると良いんだが、私はそういうスキルは身につけてないので・・
あ、もう一つ見つけた。Androidデバイスは、rootedじゃないとhostsファイルがいじれないので、VPN接続した後のサーバーの名前解決が出来ない。AndroidはLinuxベースなのでNETBIOS対応も期待は出来なかった。当面はIPアドレスでアクセスするが、なんとかしたいものだ。


コメント