OpenVPNで拠点間VPN

OpenVPNで拠点間VPN

元々、個人専用のWEBサーバーを立ち上げ、ファイルサーバーのデータを外部から参照可能にしているが、
単純にファイルを転送するだけならともかく、ディレクトリごとダウンロードや、一部だけ読み取ることなどは出来ないため割と不便。
解決法はWebDAVとかFTPとかいろいろとある中、どうせなら自宅ネットワークに直接接続出来れば、便利じゃないかと思いVPNを張ることを計画。
(NFSとかFTPとかSVNとかrsyncなどの内部用の設定なため、外部に公開したらひどいことになる通信も使える!)
VPNといえば、IPSecとかPPTPなどの有名どころはありますが、割と設定が面倒で設定をしっかりしないと穴が開くこともあるので、設定が簡単な(デフォルトでもそこそこしっかりしている)OpenVPNを採用。

・OpenVPNとは
SSLVPNの一つで、設定がシンプル。そこそこ堅牢。IPSecなどと違い、ユーザーランドで動作するのでセキュリティホールがあった場合にも影響が少ないはず。暗号化の方式も割と自由に選択可能。

以下、詳しいことはいつものとおり割愛して、具体的な設定方法。

インストール

sudo apt-get install openvpn 

証明書の作成
まずは、easy-rsaをコピー


hoge@localhost:~
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa-hoge/ 

移動

hoge@localhost:~
cd /etc/openvpn/easy-rsa-hoge/ 

お好みにより証明書の内容を編集(オレオレ証明書なので適当に)

hoge@localhost:/etc/openvpn/easy-rsa-hoge
vi vars ############## export KEY_COUNTRY="HO" export KEY_PROVINCE="GE" export KEY_CITY="hogecity" export KEY_ORG="Hoge corp" export KEY_EMAIL="me@myhost.mydomain" ############## 

varsの内容を環境変数にセット

hoge@localhost:/etc/openvpn/easy-rsa-hoge
. ./vars 

CAを作成

hoge@localhost:/etc/openvpn/easy-rsa-hoge$ ./build-ca

Generating a 1024 bit RSA private key

......++++++

......++++++

writing new private key to 'ca.key'