OpenVPNの構築メモ

Last-modified: 2014-05-05 (月) 13:54:31

もうかなり古いページです。設定の参考としては殆ど役に立たないと思いますが、冒頭の説明だけは今でも価値があると思ってこのページを残しています。(そしてさらに6年経ちました)IPsecだと、以下に紹介しているような両側同一ネットワークのVPNが想定されていません。両端同一ネットワークの、透過性の高いVPNを構築したいならOpenVPNを選ぶべきです。


初出 2006-8-18
最終更新 2006-10-30
構築時期 2005-8
本ページは構築法を記述したページではありません。
構築時のカスタマイズのポイントをメモ程度に記述してあるだけです。
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
 
 

ご要望、ご意見、質問を下のフォームにどうぞ
(でもここより、掲示板書き込みフォームのページに書いて頂いた方が気づき易いと思います。)

  • /etc/openvpn/hogehoge.confのifconfig 172.16.0.1 172.16.0.2は間違っていませんか?tunなら、合っていると思いますが。 -- おかか? 2006-10-16 (月) 18:59:02
  • ご指摘ありがとうございます。tapの場合ご指摘の行は不要です。 -- disklessfun? 2006-10-18 (水) 22:55:47