ブログでちょこちょこ紹介しているFirefly iiiですが、いい加減外出先からでも操作したくなりました。
個人の資産情報が入っており、Internetに直接公開するのは危ないのでVPNを張ってアクセスしたいと思います。
Team viewerとかGoogle desktopを使えば簡単ですが、それだと面白くないのでNWエンジニアらしくVPNを張ることにしました。
VPNの選択肢
ぱっと浮かぶ選択肢としては
とありますが、今回は環境の都合上3を選択しました。
ルータはISPのレンタルルータなのですが、いろいろできない事が多かったためです。
ということでルータがポートフォワーディングでき、VPNということでSSHのポートフォワーディングを使うことにしました。
環境
こんな感じです。
流石にsshポートをそのまま公開するのも何なので気持ち番号を変更しました。
各環境の設定は以下の通りです。
Android
ポートフォワーディングできるSSHクライアントアプリを探したらConnectBotが良さそうだったのでこれにしました。
設定画面はこんな感じです。
SSHのポート変更もできるし、シェルセッションを使わないという事もできます。(ポートフォワードのみ)
公開鍵も作成できて結構いいアプリですね。
ローカルポートの8000番をUbuntuにフォワーディングします。
リモートフォワードだとサーバが転送用IPをlocalhostでListenしてしまう様なので、ひと手間加えるくらいならということでローカルフォワードにしました。
RT
12345番ポートを22番に変換します。
これだけ。
Ubuntu
このブログでもよく出てくるサブ機です。
FireflyはこのマシンのLXD内にありますが、ホストの80ポートにアクセスすればそのままProxyでFireflyにアクセスできます。
sshdは公開鍵認証のみにしてあるので、突破は至難の業ですよ。
アクセスしてみます
ConnectBotの起動
作成済みの接続を起動します。
シェルターミナルは起動してないので画面は何も表示されません。
Fireflyへアクセス
ローカルIPの8000へアクセスします。
先にこっちをスクショ取ったので時刻はお気になさらず。
ログイン画面は割愛しますが、無事にログインできました!
ConnectBotがアクティブのタスクじゃなくてもちゃんと動いてくれてますね。
ちなみにこの8000番はsshで包まれているのでキャプチャしても発見できません。
いいですね、ちゃんとデータが見えます。
ちなみにlocalhostだと表示されません。
Androidの各ファイルをちゃんと見たことありませんが、hostsに書かれてないんでしょうね。
まとめ
今回は環境の制約でSSHポートフォワードを使ったVPN環境を作りました。
これで外出先からすぐに家計簿をつけられるようになりましたw
SSHポートフォワードはお手軽なVPNで良いですが、単体へのアクセスしかできないので、やはりいつかはIPsecあたりでちゃんとしたVPNを作りたいですね。