OpenVPNで自宅にVPNサーバを構築してみる

openvpn-logo
やっと引越し荷物が片付いたので、ぼちぼちネットワーク遊びを再開する。

妻がいわゆる個人事業主なので出先からでも家のファイルサーバにセキュアにアクセスできるようにVPN環境を作ってみる。
※しかしクライアントへの提出がFTP経由だったりするwww

とりあえず、こんな感じにしてみる。

VPN_NW
※アイコンはVRT Systemsで公開されているLibreOffice用の拡張アートワーク。CC BY-SA3.0

本当はTrust側にRadiusサーバとか置けると面白い(?)んだけど常時稼動機器はできるだけ減らす方向なわけで、とりあえず今回は見送り。

以下、Debian Jessieでのやり方。

スポンサーリンク

インストール

いつものごとく apt で一発。
と、思いきや easy-rsa はJessie以降別パッケージ。
(easy-rsa のコードがopenvpnから分離したため)

#aptitude install openvpn
#aptitude install easy-rsa

Static Key 認証

まずは Static Key でやってみる。

サーバ側の設定

まず /etc/openvpn に鍵を作成
#openvpn --genkey --secret static.key

次に/etc/openvpn/tun0.conf を作成

dev tun0
ifconfig 192.168.123.1 192.168.123.2
secret /etc/openvpn/static.key

クライアント側の設定

サーバ側で作成した鍵をセキュアな方法でクライアントの
/etc/openvpn/ へコピー。

次に/etc/openvpn/tun0.conf を作成

remote example.com #VPNサーバのアドレス
dev tun0
ifconfig 192.168.123.2 192.168.123.1
secret /etc/openvpn/static.key

firewall の設定

デフォルトの場合、UDP1194を許可。

通信テスト

サーバ、クライアントの両方で openvpn を実行
openvpn --config /etc/openvpn/tun0.conf --verb 6

インタフェースを確認。
ifconfig -a

こんな感じのやつが見えるはず。

tun0 Link encap:不明なネット ハードウェアアドレス 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inetアドレス:192.168.123.2 P-t-P:192.168.123.1 マスク:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 メトリック:1
RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:100
RXバイト:0 (0.0 B) TXバイト:0 (0.0 B)

うまくいけばサーバ(192.168.123.1) クライアント(192.168.123.2)で通信できる。

なお、VPNで使うアドレスは、10.0.0.x や、192.168.0.x など、
外から繋ぐ時に被りそうなセグメントを使わないようにする。

ここまでは簡単ですな。

ということで、次はTLSでやってみるつもり。

※RaspberryPiでやろうと思ってたんだけどスループットが10Mbpsも出てないっぽい。どうしよう。。。

スポンサーリンク

フォローする