もうかなり古いページです。設定の参考としては殆ど役に立たないと思いますが、冒頭の説明だけは今でも価値があると思ってこのページを残しています。(そしてさらに6年経ちました)IPsecだと、以下に紹介しているような両側同一ネットワークのVPNが想定されていません。両端同一ネットワークの、透過性の高いVPNを構築したいならOpenVPNを選ぶべきです。
構築時のカスタマイズのポイントをメモ程度に記述してあるだけです。
2006-10-18 ご指摘により、/etc/openvpn/hogehoge.conf・不要行のコメント化忘れを訂正しました。
OpenVPNで両端動的VPNを構築して実用しています。(もちろん両端FireWallはOneCDLinux)
ここで紹介しているのはサーバ to サーバのVPNです。双方にお互いに対して接続をおこなう機能がありますから、その意味ではクライアント to クライアントのVPNと呼べるかもしれません。両端は100%対等な関係です。
停電で片方あるいは両方が落ちていても、電気が復旧すれば自動的にVPN接続が回復します。
相当に高い透過性を実現していまして、ブロードキャストもDHCPパケットもマジックパケットも通します。
両側にDHCPサーバがあるのですが、インターネットを介してIPアドレスの貸与がよく発生します。またお互い向こう側にあるマシンをWake On LAN出来ます。(もちろんtapを使ってipパケットを通す場合、これは当たり前のことです。でもどこかに掲載していないとそのようなことが可能か自信を持てない人もきっといると思って載せています。)
もちろん、Windowsのファイル共有もローカルと同じように自由におこなえます。Winsを立てなくてもlmhostsに書かなくてもブロードキャストで名前解決が出来ます。
本ページでは一から構築法を説明しません。(バージョン依存の情報をあまり詳細に説明しても...)
※googleの検索で来られた方の為にもっと説明を充実させる必要も感じています。どんな情報が足りないか要望を頂ければありがたいです。
設定に必要な情報を公開します。
OpenVPNのバージョンは2.0です。
/etc/openvpn/hogehoge.conf
# # OpenVPN Config for hogehoge.net <=> fugafuga.net # dev tap proto udp remote fugafuga.net
#ifconfig 172.16.0.1 172.16.0.2 port 6943
secret /etc/openvpn/secret.key
user nobody group nobody persist-key
# dynamic-ip ping 60 ping-restart 1800 persist-tun float
# debug verb 1
/etc/openvpn/bridge-start
#!/bin/bash
################################# # Set up Ethernet bridge on Linux # Requires: bridge-utils #################################
# Define Bridge Interface br="br0"
# Define list of TAP interfaces to be bridged, # for example tap="tap0 tap1 tap2". tap="tap0"
# Define physical ethernet interface to be bridged # with TAP interface(s) above. eth="eth0" eth_ip="$(ifconfig eth0|grep "inet addr"|cut -d":" -f2|cut -d" " -f1)" eth_netmask="255.255.255.0" eth_broadcast="192.168.1.255"
brctl addbr $br brctl addif $br $eth
for t in $tap; do brctl addif $br $t done
for t in $tap; do ifconfig $t 0.0.0.0 promisc up done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast
/etc/rc.d/init.d/openvpnのdiff
--- openvpn.orig 2005-07-26 16:47:27.000000000 +0900 +++ openvpn 2005-08-23 14:00:10.000000000 +0900 @@ -168,6 +168,11 @@ if [ $successes = 1 ]; then touch $lock fi + if [ $successes = 1 ]; then + $work/bridge-start + sleep 5 + /etc/sysconfig/firewall-setup.sh + fi ;; stop) echo -n $"Shutting down openvpn: "
/etc/rc.d/init.d/iptablesのdiff
ファイアーウォール(iptables)の設定はシェルスクリプトでおこなうように変更しています。
--- iptables.orig 2005-02-22 07:43:38.000000000 +0900 +++ iptables 2005-07-20 18:24:44.000000000 +0900 @@ -160,7 +160,8 @@ OPT= [ "x$IPTABLES_SAVE_COUNTER" = "xyes" ] && OPT="-c"
- $IPTABLES-restore $OPT $IPTABLES_DATA +# $IPTABLES-restore $OPT $IPTABLES_DATA + /etc/sysconfig/firewall-setup.sh if [ $? -eq 0 ]; then success; echo else