#freeze
TITLE:OpenVPNの構築メモ
もうかなり古いページです。設定の参考としては殆ど役に立たないと思いますが、冒頭の説明だけは今でも価値があると思ってこのページを残しています。(そしてさらに6年経ちました)IPsecだと、以下に紹介しているような両側同一ネットワークのVPNが想定されていません。両端同一ネットワークの、透過性の高いVPNを構築したいならOpenVPNを選ぶべきです。
----
RIGHT:初出 2006-8-18
RIGHT:最終更新 2006-10-30
RIGHT:構築時期 2005-8
LEFT:
COLOR(BLUE):本ページは構築法を記述したページではありません。
COLOR(BLUE):構築時のカスタマイズのポイントをメモ程度に記述してあるだけです。
COLOR(RED): 2006-10-18 ご指摘により、/etc/openvpn/hogehoge.conf・不要行のコメント化忘れを訂正しました。
#br
OpenVPNで両端動的VPNを構築して実用しています。(もちろん両端FireWallは[[OneCDLinux>onecdlin]])
#br
ここで紹介しているのはサーバ to サーバのVPNです。双方にお互いに対して接続をおこなう機能がありますから、その意味ではクライアント to クライアントのVPNと呼べるかもしれません。両端は100%対等な関係です。
停電で片方あるいは両方が落ちていても、電気が復旧すれば自動的にVPN接続が回復します。
#br
相当に高い透過性を実現していまして、ブロードキャストもDHCPパケットもマジックパケットも通します。
両側にDHCPサーバがあるのですが、インターネットを介してIPアドレスの貸与がよく発生します。またお互い向こう側にあるマシンをWake On LAN出来ます。(もちろんtapを使ってipパケットを通す場合、これは当たり前のことです。でもどこかに掲載していないとそのようなことが可能か自信を持てない人もきっといると思って載せています。)
#br
もちろん、Windowsのファイル共有もローカルと同じように自由におこなえます。Winsを立てなくてもlmhostsに書かなくてもブロードキャストで名前解決が出来ます。
#br
本ページでは一から構築法を説明しません。(バージョン依存の情報をあまり詳細に説明しても...)
※googleの検索で来られた方の為にもっと説明を充実させる必要も感じています。どんな情報が足りないか要望を頂ければありがたいです。
#br
設定に必要な情報を公開します。
OpenVPNのバージョンは2.0です。
#br
*** /etc/openvpn/hogehoge.conf [#oae6e884]
 #
 # 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 [#i11f7681]
 #!/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 [#h7fc522c]
 --- 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 [#e2ac38d3]
ファイアーウォール(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
#br
#br
* ご要望、ご意見、質問を下のフォームにどうぞ&br;(でもここより、[[掲示板>board]]や[[書き込みフォーム>form]]のページに書いて頂いた方が気づき易いと思います。) [#l354c93c]
#areaedit(nofreeze,noauth,btn:[修正(書き間違った場合にご利用下さい)])
- /etc/openvpn/hogehoge.confのifconfig 172.16.0.1 172.16.0.2は間違っていませんか?tunなら、合っていると思いますが。 -- [[おかか]] &new{2006-10-16 (月) 18:59:02};
- ご指摘ありがとうございます。tapの場合ご指摘の行は不要です。 -- [[disklessfun]] &new{2006-10-18 (水) 22:55:47};

#comment
#areaedit(end)