自宅のマシンに外部からSSH接続する各種パターンについて
概要
自宅に構築したPC/サーバに、外部のネットワークからSSH接続する場合の構築パターンについてまとめる。
前提条件
- 自宅の回線は通信事業者が提供する一般家庭向きの回線を想定。したがってIPアドレスは可変。
- 自宅マシンは基本的にCLIで操作する(GUIは使わない)。したがって通信量はさほど多くない想定。
- 一般的なIaaS/PaaSに構築する場合と比べてセキュリティリスクが同程度かそれ以下であること(例:パスワードでログインしない、ポートはSSHのみ解放)。
- CLIを作業する時にレスポンスが十分速くて作業にストレスを感じないこと(レイテンシが100ms以下)。
- 運用費用は1,000円/月以下であること。
実現方法の候補
- グローバルIP固定
- 通信事業者が提供している固定IPアドレスサービスを契約し、自宅PCをインターネットに公開する。
- Dynamic DNS
- Dynamic DNSサービスを契約し、FQDNとIPアドレスの紐付けをDDNSによって管理してもらう。
- 踏み台サーバ + リバースSSHトンネリング
- 踏み台サーバ + VPN
- VPNサービス
- 4と同様な構成が一般消費者向けサービスとして提供されている。例)GlocalVPN
- sishサーバ
それぞれの実現方法の特徴
実現方法 | メリット | デメリット | 運用費用 | |
---|---|---|---|---|
1 | グローバルIP固定 | 最も基本的な構成。 | 回線業者及びプロバイダがサービス提供している場合のみ利用可能。 | 880円/月〜*1 |
2 | Dynamic DNS | 無料のDDNSサービスを利用すれば運用費用がかからない。 | IPが変わる前後で接続できない時間が生じる(数分〜数十分)。DDNSサービスがダウンしている場合は接続できない。*2 | 無料〜 |
3 | リバースSSHトンネリング | 自宅ルータのポート解放設定が不要。踏み台サーバ上に認証情報をおかなくて良い。 | 何らかの原因でSSHセッションが切断された場合は接続できなくなる。 | 643円/月〜*3 |
4 | VPN | - | - | 643円/月〜 |
5 | sish | - | - | 643円/月〜 |
※メリットデメリットがよくわからなかったものは空欄にしています。
最終的に選択した構成
著者の契約している回線プロバイダは固定IPのサービスを提供していなかったので1以外で検討した。 2はセキュリティ上の懸念が払拭できなかったため、検討から除外した。 また、5は仕組みがよく分かっていないので判断ができず、検討から除外した。 セキュリティの観点からは3と4はほぼ同等と考えられるが、3の方が設定内容が少なく、構成もシンプルと考えたためこの構成を選択した。
*2:特に無料のDDNSサービスの場合は、IPとFQDNの紐付けが汚されるといったセキュリティ上の懸念があるのではと筆者は考えているが、脆弱性について明確に言及されたソースは見つけられなかった。
*3:ConoHa, さくらのVPSで最小の構成で1ヶ月レンタルする場合の費用を基準とした(ConoHa(512MB): 682 円/月, さくらのVPS(512MB): 643円/月)。