Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (3,866)  
HandBrake Japanese Language Version  (2,203)  
Tera Term  (1,837)  
CrystalDiskInfo  (1,768)  
CrystalDiskMark  (899)  
FFFTP  (893)  
MergeDoc  (574)  
TortoiseSVN  (561)  
mixfont-mplus-ipa  (534)  
10  えこでこツール  (412)  
11  Amateras  (409)  
12  FreeMind  (372)  
13  Cabos  (371)  
14  ギコナビ  (367)  
15  Boookends  (366)  
More >>

最近ブックマークされた記事

簡単にVPNを構築できるツール、tinc

2009年01月29日 10:04 Ben Martin 1 2 3

  tinc を使えば、仮想プライベートネットワーク(Virtual Private Network:VPN)を構築できる。VPNでは、2台のコンピュータがインターネットのような安全でないネットワークを介して通信するが、仮想ネットワーク上のホスト間のトラフィックはすべて暗号化される。

 tincは、ノートPCを自宅のWi-Fi(無線LAN)ルータに接続する場合にも使える。すでにWPA2を利用して、正当なホストしか無線LANルータに接続できないようにしているかもしれない。だが、無線LANに接続するノートPCに固定アドレスを割り当てることはできないだろう。そのため、ノートPC自体のSSHデーモンに接続したり、ノートPC上のNFS共有フォルダにアクセスしたりするには、無線LANルータがそのノートPCに割り当てたIPアドレスを割り出さなければならない。だが、ノートPCと自宅のサーバでtincを起動しておけば、こうした推測は不要になる。ノートPCの固定のVPN IPアドレスを使って接続できるからだ。

 tincでは、マシンごとに複数のVPNを構築し、個別に起動することができる。tincに必要なカーネル側の機能は、ユニバーサルTUN/TAPドライバだけである。このドライバは、カーネルモジュールとしてディストリビューションのカーネルパッケージ内にたいてい用意されている。このカーネルモジュールが利用可能かどうかを確かめるには、rootとして「modprobe tun」を実行したうえでdmesgの内容をチェックする。そこにTUN/TAPドライバに関する記述があれば、デバイス「/dev/net/tun」が追加されている。見つからない場合は、カーネルをコンパイルする必要があるだろう。

 tincのパッケージは、Ubuntu GutsyのUniverseリポジトリに収録されているほか、openSUSEユーザであれば1-Clickインストールという手軽な方法が使える。また、Fedora 7用はあるが今のところFedora 8用はない。ソースからビルドする場合は、lzo、openssl、zlibの開発版パッケージをインストールしておくこと(でないとMakefileを生成できない)。また、プレフィックスや各種パスを「./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var」のように明示的に指定する必要があるだろう。

 tincによって新たなVPNを構築すると、新しいネットワークインタフェースが設定される。VPN上への情報の送信には、カーネルによる通常のパケットルーティングが使われる。たとえば、192.168.1.222~192.168.1.232のアドレスプールからランダムにIPアドレスが割り当てられるノートPCが1台あるとする。ローカルネットワークには1台のサーバが接続されており、このサーバは192.168.1.221という固定IPアドレスを持つ。ここでサブネット192.168.11.0/24をVPN用に使うとすると、たとえばサーバには192.168.11.100、ノートPCには固定の192.168.11.7を割り当てることができる。

 これでサーバは、ネットワークインタフェースカード(NIC)に割り当てられた192.168.1.221とVPN IPアドレスとして割り当てられた192.168.11.100という2つのIPアドレスを持つことになる。ノートPCのほうは、無線LANルータへの接続時に192.168.1.222~192.168.1.232のいずれかのアドレスが与えられるが、VPN IPアドレスとしては常に192.168.11.7を使用する。LAN上のほかのホストは、サブネット192.168.11.0/24宛てのトラフィックを上記のサーバに送信すれば、ノートPCのVPNアドレス192.168.11.7を使ってノートPC上のサービスに接続できるはずである。またノートPC側では、先ほどのサーバをデフォルトルートの転送先にするなどして、トラフィックが適切にサーバにルーティングされるようにする必要がある。

最終更新:2009年03月31日 17:07