インターネット上のサーバー(VPS)から家のネットワークをアクセス
#contents
#navi(Pogoplug)
**概要 [#af80bf50]
インターネット上に[[Sakura/VPS]]のような固定IPのsshサーバーを借りている場合、
そこへ向かって ssh コネクションを張ることで、VPS から家の中の NAS や WEBカメラ等にアクセスできるようにしたい。
[[Sakura/VPS/SSH Reverse Tunnel]]で紹介した OpenBlockS を使う方法でも構わないが、
それだけのために OpenBlockS を買うのももったいないので、Pogoplug で実現する方法を紹介する。
ルーターに ssh 接続のための NAT を設定して、自宅のアドレスを DDNS等の仕組みでわかるようにしてから
接続する方法もあるが、自宅からインターネット上の固定アドレスを持ったサーバーへの接続を逆方向に使うほうが、
ルーターを触らないで済むぶん設定が楽である。
**インストール手順 [#mb22d4c9]
+インストールスクリプト &ref(hsj-auto-reconnect.txt); をダウンロード
+otsuka(at mark)example.sakura.ne.jp/10022 の部分を、自分の契約している VPS のホスト名、ユーザー名、sshポート番号に変更する
+インストールスクリプトを Pogopug に送り込んで実行
+/root/.ssh/pogoplug_rsa.pub の公開鍵を VPS の authorized_keys にセットする
+Pogoplug を再起動すれば VPS に対して ssh コネクションを維持してくれる
+VPSを再起動しても、ssh コネクションが維持されることを確認する
**VPS側から自宅のPogoplugにsshで接続 [#e42042a9]
-自宅の Pogoplug からsshコネクションが張れれているかどうかは、
sudo netstat -np | grep 10022
で調べることができる。(ポート番号を変更している場合は、10022 の部分を変えて実行すること)
-VPS側から自宅の Pogoplug へ ssh で接続するときは、以下の内容を ~/.ssh/config に加えておけば、ssh mypogoplug で接続できる。(自宅の pogoplug /root/.ssh/authorized_keys に VPS で使っている公開鍵をセットしておくと便利)
Host mypogoplug
HostName localhost
Port 30022
User root
ForwardX11 no
**VPS側から自宅のNASの共有フォルダにアクセス [#s5f776aa]
『[[VPSのデスクトップで家のNASにアクセスする>Sakura/ssh#kd1539bf]]』でも紹介しているが、Pogoplugの場合は、cronとwgetによる自宅IPアドレス通知は必要ない(netstat -np | grep 10022 コマンドで調べられる)。
+/etc/network/interfaces に以下を加える
auto lo:0
iface lo:0 inet static
address 192.168.11.10
netmask 255.255.255.255
+$HOME/bin/connect-mypogoplug.sh のような名前で以下のスクリプトを書いて保存(NASのアドレスは 192.168.0.143 としたが、自分の家の環境で調べておいて変更すること)
#!/bin/bash
shopt -s huponexit
sudo -E ssh mypogoplug -F $HOME/.ssh/config -D 1080 -L 192.168.11.10:139:192.168.0.143:139
+connect-mypogoplug.sh を実行、VPSから自宅のPogoplugにsshで接続できることを確認(ログインしたままにすること)
+デスクトップのツールバー:場所:サーバーへ接続~
&ref(connect-server-settings.png);
+ブックマークに NAS on Home ができているので、自宅へのssh接続がしてあれば次回からはブックマークで接続可能
+アクセスが終わったら、ファイル・ブラウザのアイコンから共有フォルダを切断
+自宅へのssh接続をログアウトで切断
**ファイルシステムの書込み禁止 [#lf76986d]
ファイルを不用意に書き換えては困る場合は、ファイルシステムごと書込み禁止にしておけばよい。
/etc/init.d/db に操作例がある。
-書込み禁止設定
mount / -o remount,ro
-書込み禁止解除
mount / -o remount,rw,noatime
**再接続 [#zed582a0]
プロバイダのメンテナンス等の理由で自宅のIPアドレスが変わってしまった場合、Pogoplug 側からVPSへ再接続をかけないと通信できない状態になることがある。自宅にいる場合は可能だが会社や出先でこの状態になった場合は、VPS側から遠隔で再接続を行う必要がある。手順が少しややこしいので書いておくことにする。
プロバイダのメンテナンス等の理由で自宅のIPアドレスが変わってしまった場合、Pogoplug 側からVPSへ再接続をかけないと通信できない状態になることがある。自宅にいる場合は可能だが会社や出先でこの状態になった場合は、VPS側から遠隔で再接続を行う必要がある。
もちろんVPSを再起動してしまえば簡単なのだが、なんでもかんでも再起動というのはサーバーではやりたくないので、少しトリッキーだが以下の手順で再接続できる。
-VPSで以下のコマンドを使ってssh接続のプロセス番号を調べる(sshのポート番号を変えているときは 10022 を変更後のポート番号に読み替える)。
sudo netstat -nap | grep 10022
-リモートのIPアドレスに対して、自宅からの接続かどうかを dig -x コマンドで調べて、右端の ESTABLISHED 2524/sshd: otsuka のように表示されているプロセス番号に対して sudo kill 2524 とすると切断できる。
-1分後に Pogoplug から再接続してくるので、再度 netstat -na | grep 10022 コマンドで確認する
**参考 [#da267527]
#amazon_associate(B006WWG16C)