TAP デバイスとブリッジデバイスを使用するため、カーネルモジュールのロードが必要となる。
下記コマンドにて if_tap と if_bridge をロードする。
# kldload if_tap
# kldload if_bridge
ロードしたら再起動時に自動的にロードするように、/boot/loader.conf に下記 2行を追記する。
if_bridge_load="YES"
if_tap_load="YES"
% ./configure --disable-lzo --prefix=/usr/local/openvpn
% make
# make install
# These are the default values for fields最後の方にある KEY_* はデフォルトでも良いし自分で好きな値に書き換えても良い。
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY=***
export KEY_PROVINCE=***
export KEY_CITY=***
export KEY_ORG=***
export KEY_EMAIL=***
$1 ←これを追加
# ./vars "./clean-all""Organizational Unit Name" は空のまま。
# ./vars "./build-ca"
# ./vars "./build-key-server server""Organizational Unit Name" は空のまま。
# ./vars "./build-dh"マシンパワーに左右されるほどの時間がかかるのでのんびりお待ち下さい。
# ./vars "./build-key client1""Organizational Unit Name" は空のまま。
まずは手動で起動してみる。
# /usr/local/openvpn/sbin/ --config /usr/local/openvpn/etc/bridge.confデーモンで起動せずフロントエンドで起動するので、エラーを吐いていないかを確認。
エラーを吐いていないならば、
# ifconfig -a
tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:bd:12:11:69:00
inet 0.0.0.0 netmask 0xff000000 broadcast 0.255.255.255
Opened by PID ****
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 5e:5b:4b:b4:c6:fd
inet 192.168.1.253 netmask 0xffffff00 broadcast 192.168.1.255
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 3 priority 128 path cost 2000000
member: re0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 1 priority 128 path cost 200000
※一部省略
確認が出来たら CTRL+C で強制終了し、tap デバイスが DOWN しているか、及びブリッジが削除されているかを確認する。
# ifconfig -a
tap0: flags=8802metric 0 mtu 1500
ether 00:bd:12:11:69:00
※一部省略
正常に起動できたことが確認できたら起動スクリプトで起動させる。
OpenVPN サーバーが起動したら今度は OpenVPN クライアントの接続テストを行う。
今回は Windows 用クライアントで説明をする。
タスクトレイに入っているアイコンを右クリック→ "Connect"、もしくはアイコンのダブルクリックで接続を行う。
接続が完了したら "client is now connected." と出るが、これが出ても安心は出来ず、DHCP から IP アドレスが配付されていない可能性もあるので確認を行うこと。
C:\>ipconfig Ethernet adapter OVPN: 接続固有の DNS サフィックス . . . : 説明. . . . . . . . . . . . . . . : TAP-Win32 Adapter V9 物理アドレス. . . . . . . . . . . : 00-FF-EB-13-87-40 DHCP 有効 . . . . . . . . . . . . : はい 自動構成有効. . . . . . . . . . . : はい IPv4 アドレス . . . . . . . . . . : 192.168.1.100(優先) サブネット マスク . . . . . . . . : 255.255.255.0 リース取得. . . . . . . . . . . . : 2010年7月4日 2:05:44 リースの有効期限. . . . . . . . . : 2011年7月4日 2:05:44 デフォルト ゲートウェイ . . . . . : DHCP サーバー . . . . . . . . . . : 192.168.1.0 DNS サーバー. . . . . . . . . . . : 192.168.1.10 プライマリ WINS サーバー. . . . . : 192.168.1.10 NetBIOS over TCP/IP . . . . . . . : 有効この状態で OpenVPN クライアントと OpenVPN サーバー両方からお互いのネットワーク上に居る PC に対して ping を打ってみる。
OpenVPN for PocketPC を au IS02 (同 docomo T-01B) で使えたので簡単に説明する。
使用したバージョンは 2.1.0。
設定ファイルは client.conf をそのまま使える。
ただし鍵の場所は client.conf に記述している注意事項に沿ってフルパスを指定する。
OpenVPN Manager は頻繁に使用しないのであればリソース節約のためにも手動起動の方が良い。
下図は OpenVPN Manager (Connection) を起動した際の各ペインの情報をキャプチャしたものとなる。
変更したのは Settings の "Try to ping servers on connect" のチェックを外しただけとなる。
接続は Menu の中にある ovpn ファイルの名前 (今回は client) をタップする。
するとしばらくして TAP ペインのアダプタのステータスが "in use" になり、ネットワーク接続アイコンが接続状態 (←→) になるので、
その状態が OpenVPN 鯖と接続された状態となる。
この後ブラウザで REMOTE_ADDR を見られるようなサイトで OpenVPN 鯖から接続していることになっているかを必ず確認する。
切断方法は少しややこしく、一旦 WindowsMobile の Today まで戻らなければならない。
NX!UI のメニューバー右端の「田」→「設定」→ステータスバーの「田」→「WindowsMobile へ」
で Today に戻れるので、最下段にある小さなアイコンを見つける。
黄緑色は接続中を示しているので、このアイコンをなんとかタップする。
すると下図のようにメニューが出るので「Signal stop all」をタップする。
するとアイコンが黒くなり、上の方のネットワーク接続アイコンが消えるので、この状態が切断状態となる。
なお、再接続を行う場合は Today まで降りてきて小さなアイコンをタップし接続を行わなければならないので、切断した後はもう一度アイコンをタップして Exit で終了させておいた方がよい。
こうすると NX!UI のアイコンで Manager ウィンドウを参照することが出来る。