今回は、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 tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key
comp-lzo
#user nobody
#group nobody
proto udp
#proto tcp-server
port 443
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
tun-mtu 1350
サーバー側のFirewallで、UDP 443を通すように設定しておくこと。
次、クライアント側。
先に、
~/Library/openvpn
というフォルダを作成し、そこに、下記のような設定ファイルを用意。
remote Time MachineサーバのIPアドレス 443
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
comp-lzo
#user nobody
#group nobody
#proto tcp-client
proto udp
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
log-append /var/log/openvpn.log
tun-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のスループットが参考になる。