📺

sshトンネルで自宅EPGStationに安全に接続

2023/12/21に公開

問題

  • 自宅PCでEPGStationを使用してTVサーバーをたてている
  • 外出先からでもアクセスしたいが、単純にポートを公開してはセキュリティー的に問題がある

解決策

  • sshトンネルを使用する
    • sshと同等のセキュリティーでEPGStationに接続できる
  • サーバー側はsshサーバーを立てて、自宅のルーターでポート開放を行う
  • 接続側はどうにかsshトンネルを使って自宅サーバーに接続
    • PCとスマホどちらでも可能

具体的な流れ

サーバ側

  • sshサーバを立てる
  • 自宅ルーターに接続して、ポートフォワード設定を行う
    • (ルーターによって設定方法が異なる)
  • 自宅ルーターのglobal IPを調べる
    • curl inet-ip.info で調べられる

接続側

PC

  • ssh -D [port] [IP] でトンネルする
    • portは適当(あとでSOCKS5に使用する)
    • IPは自宅ルーターのglobal IP
  • ブラウザでSOCKS5を設定する
    • e.g. Firefoxの場合
      • 設定
      • ネットワーク設定
      • 手動でプロキシーを設定
      • SOCKSホストに
        • localhost
        • ポート: さっき設定したポート
      • SOCKS5を選択
      • OK
      • ここまででFirefoxはプロキシを経由してwebページに接続する
  • このままFirefoxで自宅サーバーに local IP で接続できる
    • e.g. 192.168.1.42:8888 とか(自分の環境による)

スマホ

  • terminus(アプリ)でポートフォワーディングすることで可能
    • terminusの左上ハンバーガーメニュー
      • Port forwarding
    • bind address: ローカルでアクセスするときのaddress
      • 127.0.0.1 (スマホのlocalhost)
    • localport: ローカルでのport(かぶらなければなんでもいい)
      • 8888
    • intermediate Host: トンネルするサーバー
      • globalから見れる自宅sshサーバーを指定(なければサーバーの設定を先に済ませる)
    • destination address: sshサーバーに入った後に行きたいaddress
      • 192.168.3.38 (今回はサーバーのアドレスそのもの)
    • destination port: sshサーバーからアクセスするport
      • 8888 (epgstationのポート)
  • ここまで設定したら、ブラウザで127.0.0.1:8888 で外出先からもEPGStationに接続できる

まとめ

  • EPGStationに安全に接続する方法はほかにも全然あります
  • sshトンネルを使ったことがあったので、すぐ設定できるなと思ってやりました
  • これだと危険あるよ!とかあったらコメントで教えていただければと思います

より安全にsshするために

  • パスワードより公開鍵認証が安全
    • スマホだと鍵のやりとり面倒かも...
  • デフォルトポート(22)から変更したほうが、攻撃されづらい

Discussion