[[PageOutline]] = HOWTO = * [http://freescitech.net/2/wiki/index.php?OpenVPN%202%20HOWTO%20%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%A8%B3 OpenVPN 2 HOWTO 日本語訳 - OpenVPN Japanese Information (wiki)] * [http://freescitech.net/2/wiki/index.php?OpenVPN%202%20Ethernet%20Bridging%20%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%A8%B3 OpenVPN 2 Ethernet Bridging 日本語訳 - OpenVPN Japanese Information (wiki)] * [http://www.masatom.in/pukiwiki/Network/VPN/OpenVPN%A4%C7SSL-VPN%B4%C4%B6%AD%A4%F2%B9%BD%C3%DB%A4%B9%A4%EB/ Network/VPN/OpenVPNでSSL-VPN環境を構築する - きのさいと] * [http://blog.cheki.net/archives/1558 CentOS5.3にOpenVPNを導入(ブリッジモード)] * VMware ESXi上でopenvpnをブリッジモードで起動させる場合、プロミスキャスモードを許可してあげる必要があります。 = 設定ファイルについて = * /etc/openvpn/*.conf がそれぞれ読み込まれる * /etc/init.d/openvpn {{{ (snip) CONFIG_DIR=/etc/openvpn (snip) case "$1" in start) (snip) for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do NAME=${CONFIG%%.conf} start_vpn done }}} = router mode = * 基本的に[#HOWTO]の通りでよい == server side settings == * sudo aptitude install -R openvpn * cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz . * vim server.conf * 適宜編集 === 各種鍵・証明書 === * ~~[#HOWTO]で「自分でCA(認証局)を作り,OpenVPNサーバとクライアントのために証明書と鍵を生成する」となっているセクションは、代わりに[../../ssl]に従って作成する~~ * ~~rootCAを新しく作るのは管理が面倒になるため~~ * ~~Apache向けのSSL certを作るのとやり方は変わらない~~ * ~~rootCAのCA証明書とDHパラメータが、生成されないので、二つだけ個別に作る~~ * ~~openssl x509 -in demoCA/cacert.pem -out ca.crt~~ * ~~openssl dhparam -out dh1024.pem 1024~~ * openssl.cnfに対する編集([3#file2])のため、Apache用SSL証明書と同様に作成した鍵・証明書を用いると、サーバ側で「VERIFY ERROR: depth=0, error=unsupported certificate purpose: 」というエラーになり接続が維持されない。 * sudo mv ca.crt dh1024.pem server.* /etc/openvpn/ {{{ ca.crt dh1024.pem server.conf server.crt server.key }}} === デフォルトで出来るTUN === {{{ tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:336 (336.0 B) TX bytes:504 (504.0 B) }}} == client side == * serverと同様に各種鍵を作る。ca.crtはserverと同じ物を使用。 * cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf . * vim client.conf * 適宜編集 * sudo mv * /etc/openvpn/ {{{ ca.crt client.conf client.crt client.key }}} === デフォルトで出来るTUN === {{{ tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) }}} = bridge mode = * server側は物理NICとTAPデバイスのブリッジを造る必要がある。 * sudo aptitude install -R bridge-utils * クライアント側はconfを編集してTUNをTAPに変更するのみ == bridge script == * bridge-startはUbuntuではパッケージに含まれていないようなので、http://openvpn.net/index.php/open-source/downloads.html からDLすること。 * sudo cp bridge-start /etc/init.d/ * sudo update-rc.d bridge-start start 99 S . {{{ Adding system startup for /etc/init.d/bridge-start ... /etc/rcS.d/S99bridge-start -> ../init.d/bridge-start }}} * OS起動時に、networking -> bridge-start -> ufw の順でサービスが起動する == customize ufw == * 以下の追加を忘れると、サーバ<->クライアント間でpingしか通らないので注意 {{{ -A ufw-before-input -i tap0 -j ACCEPT -A ufw-before-input -i br0 -j ACCEPT -A ufw-before-forward -i br0 -j ACCEPT }}} = misc = == error on dhcp3-server == eth0とtap0をブリッジした場合、eth0がプロミスキャスモードでIPが振られなくなるため(ブリッジデバイスのbr0にIPが来る)、以下のようなエラーが出てdhcpdが起動しなくなる。 {{{ No subnet declaration for eth0 (0.0.0.0). }}} * /etc/default/dhcp3-server を以下のように修正して回避する {{{ INTERFACES="br0" }}}