VPN

    1. TCP/IP超入門覚え書き
    2. VPN
      1. はじめに
      2. VPN
      3. PPTP
      4. IPSec
      5. FreeS/WAN
      6. OpenVPN
      7. SoftEther
      8. 補記

はじめに

VPN(Virtual Private Network)あれこれの覚え書きです。
ネットワーク間でVPNの利用を可能にしょうとするのが目論見です。例によってこの拙文は、その学習プロセスのメモであり、備忘録となります。
このようなわけですから、以降は結果報告であったり、実況ライブであったりすることになると思われます。最後までたどり着けるかどうかも、今のところわかりませんが、よろしくおつき合いください。
さて、VPNがわたしの視野に登場したのは、過日、インターネット接続回線をADSLからBフレッツへ移行する設定の際、ルータにYAMAHAのRT57iを採用したことからでした。謳い文句に「VPN(PPTP)を利用してリモートアクセスを可能」というのがあったのですが、大して気にもとめませんでした。
これで終わればこの拙文を記述することはなかったでしょう。その後、わたしの周りで「WindowsでVPNを利用する」というのが持ち上がっていましたが、そういうのがあるのだ、という程度でした。
やがて、Webページや書店で情報を入れることになります。

  1. TCP/IPの世界でデータをやりとりするということ
  2. 専用線を使った通信内実を、公衆回線を使って仮想的になおかつ私的に実現すること
  3. VPN対応機器が双方にあれば実現できるということ
  4. ISPなど通信事業者が提供するIP-VPNとして商品があること
  5. LinuxではIPSec(IP SECurity)を実現しインターネットVIPを利用できること
  6. このためFreeS/WANやOpenVANというソフトウェアを利用すること

総じてTCP/IP上で、Windows、Mac、Linux間で仮想的なトンネルを作り、暗号化通信を行うことができる、というようなことがわかってきました。
さてさて、これが分かったからといって、なにが太刀打ちできるというのではありません。暗号化通信ができるということですが、どのような暗号化通信であり、そうしてするのはデータ交換だけなのか?SSH、SSL、WebDAVとどう違うのか、その使い勝手は?(04.03.16)

例えば、このような理解のしかたはどうなのでしょうか?
専用線からVPNへ。
大阪本社があり東京支社との間に専用線をひく。これで外部からのセキュリティは保証されるが、経費が大変である。
ここで例によってインターネットの普及である。このインターネットを疑似専用線として使う。この中間に、ISPなどが商品として提供する、IP-VPNがある。一個人がIP-VPNを利用するには、やはり価格的には大変です。
VPNの登場と需要は、このあたりにあると思うのですが、いかがでしょうか?(04.06.12)

VPN

VPN(Virtual Private Network)とはその名が示すように、公衆回線(専用線でないという意味)を使用して、LAN間接続やリモート接続を、あたかも仮想専用線接続とするための技術の総称です。
以下の二種類があります。

1, PPTP
1, IPSec

PPTPはインターネット上のPCへ外部からリモートアクセスするVPN、IPSecはインターネット上にある異なるLANとLANを仮想的に接続する技術、とわたしはとりあえず理解しています。

PPTP(Point to Point Tunneling Protocol)


PoPToP(PPTPサーバー)での関係する設定ファイルは以下です。

/etc/modprobe.conf
/etc/pptpd.conf
/etc/ppp/options.pptpd
/etc/hosts.allow
/etc/ppp/chap-secrets


IPSec

IPSec(IP SECurity)とは何かということですが、まず「IPにセキュリティ機能を付加した枠組み」ということから始めます。IPSec自身はプロトコルではなくいくつかのプロトコルを組み合わせて実現されるものです。

FreeS/WAN

OpenVPN

プロジェクトのホームページは OpenVPN です。 最新のヴァージョンは2004.08.02の時点でopenvpn-1.6.0.tar.gzです。
OpenVPNのページを ここ に新設しました。(2006.11.28)

SoftEther

softether-1

筆者の場合どうしてもLinuxとVPNとなり、どうやってルータを越えるのかが中心課題となっています。
VPN対応ルータを購入すれば少しは道が開けそうなのですが、前提はPCルータの使用です。で、IPSec(IP SECurity)などを調べるのですが、なかなか敷居が高いというのが実感です。
そんななか、こんなページに偶然行き当たりました。

『SoftEther 仮想 HUB for Linux Version 1.01 のダウンロードを、5月27日 (木) より開始いたしました。』

SoftEther とはわたしの理解によれば、VPNアプリケーションです。仮想??LANカードと仮想のスイッチングHUBをアプリケーションで実現し、通信を行おうとする、といえそうです。
具体的には、Linuxに仮想HUBを実現し、インターネット上の異種LANをあたかも、同LANのようにして、Windows機どうし通信を行う。Macのことは分かっていません。
とりあえず、ルータを無視できるのではないか。ではセキュリティーは?模索をはじめてみます。
(04.06.12)

SoftEtherをWindows2000とTurboLinuxW8にインストールしました。WindowsはさておきLinuxは /root/se_hub にインストールしました。続いて以下のように、

# cd se_hub
# ./se_hub

として、仮想ハブを起動すると、

# ./se_hub
LOG: =============================================================
LOG: SoftEther Virtual HUB Service Version 1.00 for UNIX System
LOG: Copyright (c) 1997-2004 Daiyuu Nobori, All Rights Reserved.
LOG: SoftEther Started.
LOG: TCP/IP inited.
LOG: Service Process Begin.
LOG: SSL Library Inited.
LOG: Protocol [Direct TCP/IP Connection] Init Succeed. Protocol ID: 0
LOG: Protocol [Proxy Connection] Init Succeed. Protocol ID: 1
LOG: Protocol [Direct TCP/IP Connection] (0) Listen Failed. Port=7777.
LOG: Protocol [Proxy Connection] (1) Listen Failed. Port=443.

のように表示されました。このメッセージは、SoftEtherのWebサイトにある「Linux 版の使い方ガイド」によると、

SoftEther 仮想 HUB はデフォルトでプロトコル待ち受けポートとして TCP の 7777 および 443 を Listen しますが、システムによっては、 これらのポートを別のプロセスが使用している場合やその他の原因などによって使用できない場合があります。 特に、Apache などの Web サーバーが HTTPS 用のポートとして 443 を使用している場合は、SoftEther は 443 ポートの Listen に失敗し、 以下のようなエラーメッセージが表示されます。

ということです。
筆者がインストールした環境は、グローバルIPアドレスでWebサーバが稼働しています。OpenSSLも動かしていますので、うまくいかなかったようです。
解決としては、「仮想 HUB の管理メニューにログインした後、ポート番号を変更してください」ということになります。
すぐこの作業に取りかかるのも手なのですが、ここでは一旦、Linux上での作業を中止して、環境の整っているWindowsPC機どうしでシュミレーションをする、あるいは他の443ポートを使用していない他のグローバルIPアドレスサーバ機へ、SoftEtherをインストールし直す、という選択肢を思い描きました。
結論からいいますと、まだよくSoftEtherを理解していないため「WindowsPC機どうしでシュミレーションをする」にしました。セキュリティから考えて、慎重を期したということになります。
なお念のため、仮想ハブの停止は、以下のコマンドです。

# killall se_hub


softether-2
手順を変えました。

WindowsにSoftEtherをインストールすると『SoftEther仮想HUB管理クライアント』が利用できます。このターミナルエミュレータ(通信ソフト)を使ってLinux上のSofteter仮想HUBを設定することにしました。
この設定を行うには、Linux側の8023ポートを開けないといけません。『SoftEther仮想HUB管理クライアント』は8023ポートを使用します。設定メッセージは英語です。
初めての設定は日本語でもよくわからないのに、まして英語では.....
ということでWindows側で『SoftEther仮想HUB管理クライアント』を起動し、「127.0.0.1」に接続してシュミレーションしました。Windowsでは言語を「日本語」でインストールすれば日本語表記となります。概略をのみ込んでの、Linuxの仮想HUBの設定です。ユーザとパスワードの登録、SoftEther仮想HUB待ち受けポートを「7777」に設定。これで概略設定は終わりです。
次にLAN側のWindows2000から、「SoftEther接続マネージャー」を起動し接続を確立します。この設定では仮想LANのIPアドレスを、実LANのIPアドレスと重ならないように注意が必要です。(04.06.18)

仮想HUBへの接続が確立したので、メンテナンス用の50ccの高級バイクに乗り、会社に出かけました。
移動10分。サーバにぶら下がったLAN内のWindowsXPを立ち上げます。ここには「SoftEther仮想LAN カード」をインストールしています。さて接続です。インターネット上の仮想HUBへの接続は確立しました。だが、見事にWindows2000は見えません。
再び高級バイクに乗り移動です。Windows2000の設定がまずいのだろう、との思いです。まずWindowsXPが見えるかどうか。
見えるのです。ファイルの移動、削除もいけます。試しに、会社側のプリンターにテキストファイルを出力してみました。OKです。
現状はここまでです(04.06.21)


この段階でのアタリを、Windows2000側共有ファイルのアクセス制限の問題である、とつけていました。
現状を再整理して確認しておきます。

  1. Linuxに仮想HUBをインストールしました。グローバルIPアドレスです。
  2. 仮想HUBへの接続ポートは 7777 に変更です。
  3. Windows2000とWindowsXPに仮想LANカードをインストールしました。
  4. Windows2000とXPはインターネット越しの異種LANです。
  5. Windows2000とXPのLANアドレスは、既存のローカルIPアドレスと重複しない設定です。
  6. Windows2000とXPの仮想LANアドレスは、例えば 192.168.xxx.10と192.168.xxx.11です。
  7. Windows2000とXPの同仮想LANにあります。
  8. 仮想HUBへの接続は完了です。

さて、WindowsXPからWindows2000側の共有ファイルが見えない、でした。設定を換え、バイクで行き来するわけにも行きません。
XPからの接続操作協力を仰ぎ、Windows2000側の設定を色々換えてみました。
結局アクセスできたのですが、共有フォルダのアクセス制限なのか、開発元URLにある「Windows 2000 における制限」の問題なのか明快ではありません。一段落ですが検証をつづけてみます。
(04.06.23)


SoftEtherを使用して順調なのですが、サービスの関係でPC機の再起動が必要となります。だが、筆者の環境では、自動起動ができるようになっていませんので、再起動後、手動でSoftEtherを立ち上げます。以下がその実際です。

# cd se_hub
# nohup ./se_hub &
[1] 1294
# LOG: =============================================================
LOG: SoftEther Virtual HUB Service Version 1.00 for UNIX System
LOG: Copyright (c) 1997-2004 Daiyuu Nobori, All Rights Reserved.
LOG: SoftEther Started.
LOG: TCP/IP inited.
LOG: Service Process Begin.
LOG: SSL Library Inited.
LOG: Protocol [Direct TCP/IP Connection] Init Succeed. Protocol ID: x
LOG: Protocol [Proxy Connection] Init Succeed. Protocol ID: x
LOG: Protocol [Proxy Connection] (1) Listen Failed. Port=xxxx.

# ps -x | grep se_hub
1294 ttyp0 S 0:00 ./se_hub
1295 ttyp0 S 0:00 ./se_hub
1296 ttyp0 S 0:00 ./se_hub
1297 ttyp0 S 0:00 ./se_hub
1299 ttyp0 S 0:00 ./se_hub
1300 ttyp0 S 0:00 ./se_hub
1302 ttyp0 R 0:00 grep se_hub


このように表記されると稼働していることになります。
(04.08.02)




補記

《 ■ 参照URL   ※サイト内参照ページ    引用、参照書籍 ■ 》
技術解説IT管理者のためのIPSec講座
IPSecによるVIP構成テスト
VPN(Virtual Private Network)
0からのVPN構築
FreeS/WAN
FreeS/WANによるIPSecの導入と運用
OpenVPN
SoftEther
『IPSecによるVPN構築ガイド』 著/矢次弘志 刊/技術評論社
『よくわかる最新IP-VPNの基本と仕組み』 著/金城俊哉 刊/秀和システム
『ヤマハルータでつくるインターネットVPN』 著/井上孝司 刊/毎日コミュニケーションズ
『VPN構築術』 著/一条博 刊/工学社
『SoftEther活用ガイド』 著/登大遊 刊/ASCLL
『魔法のトンネルSoftEther』 著/ランディス 刊/秀和システム

*“このページの作成にあたり、上記に掲げたURLや書籍を参考にしました。謝意を表します。具体的な引用については明記しました。内容の間違いや、誤字は筆者の責任であり、関係する参照先の責任ではありません”

top     home:top     server library:top     PHP PostgreSQL MySQL サンプルスクリプト     SiteMap     Open SiteMap