VPSにOpenVPN鯖を立てて、iPod touchを公開Webサーバーにする


先日、なんとなくServerMan@VPSを借りてみた。ただ、500円のプランだと、メモリ256M, HDD 10GBという、いつの時代のパソコンだ、というくらいのスペックしか保証してくれない。
しかも噂によると、Serverman@VPSは突然データがふっとぶなど日常茶飯事らしく、こいつをWebアプリケーションサーバーとして公開するには若干心もとない。
ただ、500円/月でありながら、固定でグローバルIPアドレスが持てる、というのはかなりの利点である。
そこで、考えた。

ルーターになってもらおう。

いまの自宅のネット環境は、不幸にもマンションタイプで、グローバルIPを振ってくれないのだ。これだと、せっかくiPod touchを超省電力サーバーとして運用しても、外から見られない。

そこで、
iPod touch→Serverman でVPN接続
・Servermanの80番ポートを自宅鯖の80番ポートにフォワード
とすることで、あっさり、解決。
(実はVPNなんて使わなくてもiPod touchから
sudo ssh -R 8080:localhost 80 <servermanのip>
って感じでリモートポートフォワードすればもっと簡単に実現できるのだが、
今回はVPN張る練習も兼ねてやってみた。)

VPS側にOpenVPNサーバを準備
ServerMan@VPSは、嬉しいことにDebianがデフォルトである。デフォで入ってるバージョンはなぜか古いが、簡単に最新にできる。
まずは、OpenVPSをインストールして
sudo apt-get install openvpn
サンプルから鍵作成用のスクリプトを引っ張ってきて
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa-servermanvps/
証明書作成用のパラメータを設定する。
自分しか使わないオレオレ証明書なので、適当で良い。
cd nano /etc/openvpn/easy-rsa-servermanvps/
sudo nano vars
##############
export KEY_COUNTRY="JP"
export KEY_PROVINCE="AA"
export KEY_CITY="adbcity"
export KEY_ORG="orz org"
export KEY_EMAIL="oreore@orz.org"
##############
ここからはrootになって作業。まずは認証局をつくる。
su
source vars
./build-ca

次に、サーバ側の鍵と証明書を作る。
./build-key-server myserver
なんか聞かれるけど、イエスマンになっておけばよい。
次に、クライアント側の鍵と証明書を作る。
./build-key-client myclient1
./build-key-client myclient2
./build-key-client myclient3
./build-key-client myclient4
必要なだけ作っておく。あとから追加するのも面倒なので、必要じゃなくても作っておく。
こちらもイエスマンになっておけばよい。

最後に、鍵ペアの登録。
./build-dh

これで、鍵の準備はOK。

サーバーの設定は、ちょっと疲れてきたので
ここから拝借。http://blog.asial.co.jp/666
あざーす。/etc/openvpn/server.confいただきます。
ついでに、どっかに1行、以下を追加する。
client-to-client
そんで、サーバーを起動
/etc/init.d/openvpn start

はい、完了。

次に、iPod touch側。
まずはCydiaからOpenVPNをインストールしておき、
クライアント設定もここからありがたく拝借し、
~/.vpn_conf
あたりに保存。
screen
sudo openvpn --config ~/.vpn_conf
 (どひゃーと、接続ログがでる。)

(IPがとれたことを確認し、Ctrl+a、d でscreenからデタッチ)

これで完了。
ServerMan側からiPod touchのIPにpingを打って疎通確認。
ping 192.168.100.6
返ってくるのを見てほくそ笑む。

最後に、サーバ側で、
sudo chkconfig apache2 off
sudo nano /etc/rinetd.conf
0.0.0.0 80 192.168.100.6 80
を追記。

で、めでたく完了。
完成品はこんな感じ。http://web-hack.org/
我が家のiPod touch 2ndが鯖になって、動いてます。

文鎮と化したiPod touchを持ってる方、こんな活用方法いかがでしょう?
禿に騙されて林檎板3G版を買った人とか、ローカルでiSSH使っていつでもどこでもサーバーメンテもできて更に便利かと。