今回は、VPN経由で接続できるようにする。
手軽にやるには、OpenSSHのポート転送機能を使うというのが考えられる。ただし、設定にはちょっとコツがいるようだ。Tunneling afp over sshが参考になる。
で、どうせならhttp proxyを超えられる方法がいいなと思い、Simple Repeater `stone'を使ってみたのだが、うまくいかなかった。
というわけで、OpenVPN - Open Source VPNを使用する方針で進める。
OpenVPNの解説はググるとよく見つかる。
- OpenVPN 2.0 HOWTO Japanese Translation
- OpenVPNでVPNしよう
- VPNサーバー構築(OpenVPN) - Fedoraで自宅サーバー構築
- OpenVPNのインストール方法 - omizuなこの頃
まずはサーバー側。rpmでさっくり入れる。
設定は、OpenVPN.JP 日本語情報サイト - 静的鍵 Mini-HOWTOを参考にする。
設定ファイルと静的鍵を
/etc/openvpn/に置く。設定ファイルの拡張子は.confにしておくこと。設定ファイルの中身は、こんな感じ。UDP 443で接続する設定にしてみた。
dev tunifconfig 10.8.0.1 10.8.0.2secret static.keycomp-lzo#user nobody#group nobodyproto udp#proto tcp-serverport 443keepalive 10 60ping-timer-rempersist-tunpersist-keytun-mtu 1350
サーバー側のFirewallで、UDP 443を通すように設定しておくこと。
次、クライアント側。
先に、
~/Library/openvpnというフォルダを作成し、そこに、下記のような設定ファイルを用意。remote Time MachineサーバのIPアドレス 443dev tunifconfig 10.8.0.2 10.8.0.1secret static.keycomp-lzo#user nobody#group nobody#proto tcp-clientproto udpkeepalive 10 60ping-timer-rempersist-tunpersist-keylog-append /var/log/openvpn.logtun-mtu 1350- remoteの行の最後の443は、サーバー側の設定ファイルのportで指定した443
- proto udpはサーバー側とクライアント側と、同じ
- tun-mtu の数字も、サーバー側とクライアント側とでそろえる
~/Library/openvpnの内容を見てくれるので、起動したのち、作成した設定ファイルを指定すればOK。サーバー側でopenvpnが起動していれば、接続できる。
ちゃんと通信できる状態かの確認をする。
クライアント側でTerminalを開き、
ping 10.8.0.1とする。timeoutせずに、10.8.0.1から応答があればOK。
Terminalを開いているので、VPNで繋いだ時のサーバーの名前を登録してしまおう。
/etc/hostsにIP アドレスとサーバーの名前が書いてあるので、同じように10.8.0.1に対する名前を追加する。例えば、10.8.0.1 timetunnelとする。
この名前を使ってFinderから接続(afp://timetunnel)し、Time Machineの「ディスクを選択…」で選択する。
これで無事、VPN経由でTime Machineのディスクにアクセスするようになった。
バックアップのスピードは、ネットワーク、特に上りの回線速度に依存する。OpenVPNでのロスもあるのだが、それについてはyamata::memo: OpenVPNのスループットが参考になる。