openvpn 立てた 続
結局、うまくいかなかったんで別のやり方を試しました。
そもそも openvpn には 2種類のやり方がありそれぞれ tap と tun という方式があります。
tap はL2で接続するブリッジというやり方でサーバと同一のセグメントにアクセスできる。サーバのIPが 192.168.0.240 であれば クライアントに割り当てられるIPは 192.168.0.241 とか
tun はL3で接続するやり方でサーバとは別のセグメントからアクセスすることができます。サーバのIPが 192.168.0.240 でクライアントに割り当てられるIPは 10.0.0.5 とか
それぞれ利点とか不便な点もあったりするんだけど簡単に説明すると
- tap
- 利点
- 同一セグメントなのでルーティングとか考える必要なくて楽
- 不便
- ブリッジの設定が入るのでめんどい
- ブロードキャストパケットのような不要なパケットも流れてくる
- 利点
- tun
- 利点
- 別セグメントなのでブロードキャストパケットのような余計なパケットうけとらない
- 設定するのが比較的楽
- 接続クライアントごとにセグメントを分けれたりできるのがいい
- 不便
- ルーティングテーブルの追加とかが必要になる
- 利点
っていう感じ。前回は tap を試したのだけど、どうにも上手くいかないので tun で試してみる。
前回、証明書の作成方法とか書いたのでそこは省いて、コンフィグ周りの設定を晒します。
ちなみにこっちの方法だと bridge-utils いらないです。
サーバーコンフィグの設定
# vi /etc/openvpn/server.conf port 1139 proto tcp dev tun0 ca /etc/openvpn/key/ca.crt cert /etc/openvpn/key/ubuntu.crt key /etc/openvpn/key/ubuntu.key # This file should be kept secret dh /etc/openvpn/key/dh1024.pem server 10.0.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 192.168.0.0 255.255.255.0" push "redirect-gateway def1" push "dhcp-option DNS 192.168.0.1" keepalive 10 120 comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log log /var/log/openvpn.log log-append /var/log/openvpn.log verb 3
インターフェイスの設定
# vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.240 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 # /etc/init.d/netwoking restart # /etc/init.d/openvpn start
クライアントの設定
client dev tun proto tcp remote serverIP serverPort resolv-retry infinite nobind persist-key persist-tun ca thinkpadca.crt cert thinkpad.crt key thinkpad.key comp-lzo verb 3
と、これだけで繋がるようになります。
だた、うちの環境だと MacBook でBT接続時だけ、サーバ側にあるサーバにアクセスできないという問題がおこっています。ルーティングテーブル周りがおかしい気がするんだけど、めんどい、、、、。