SSHポートフォワーディング使ってグローバルIPを持たないAzure VMに接続(Tera Term)
Azureなどのパブリッククラウドの仮想マシンには、インターネット経由で仮想マシンに付与したグローバルIPでアクセスする事が出来ます。
ただすべての仮想マシンにグローバルIPを付与してアクセスを管理するというのも面倒だったりします。
SSHポートフォワーディングを使うとグローバルIPを持たないAzure上にある仮想マシンにインターネットからアクセスする事が出来ます。
今回はTera Termを利用したポートフォワーディングの設定から実際のアクセスまでを実施してみました。
SSHポートフォワーディング検証用環境構成
SSHポートフォワーディングとは
SSHによって確立した通信経路を利用してクライアントのポートをクライアントが直接アクセスできないターゲットサーバ(グローバルIPを持たない仮想マシン)に転送してくれる仕組みを指します。
SSHポートフォワーディングを使うとグローバルIPを持つ仮想マシン経由でグローバルIPを持たない仮想マシンへアクセスする事が出来ます。
SSHポートフォワーディングはSSHの通信を転送するだけではなく、HTTPSやRDPと言ったSSH以外の通信も転送する事が可能です。
今回のSSHポートフォワーディング検証環境
SSHポートフォワーディング検証環境構成は3台の仮想マシンで構成しています。
リモートサーバアクセス経由でターゲットサーバへアクセス(ローカルフォワード)します。SSHとRDPの転送を行います。
3台の仮想マシンのはこのようなOSで構成しています。
仮想マシン名 | OS | 役割 | グローバルIP | ローカルIP | ユーザー |
SSH-PortForward-01 | Cent OS 7.9 | リモートサーバ | 〇 | 192.168.1.4 | sshadmin |
test-linux-01 | Cent OS 7.9 | ターゲットサーバ | × | 192.168.1.5 | sshuser |
test-win-01 | Windows 2019 | ターゲットサーバ | × | 192.168.1.6 | rdpuser |
必要なネットワークセキュリティグループ(NSG)許可設定
今回の構成で必要になるネットワークセキュリティグループ(NSG)の通信許可設定です。
ローカルPCからターゲットサーバへのアクセス許可は必要ありません。
ターゲットサーバのネットワークセキュリティグループ(NSG)にインターネットからの受信セキュリティ規則(SSHやRDP)を作成必する要はありません。
仮想マシン名 | 必要なネットワークセキュリティグループ設定 | 必要な作業 |
SSH-PortForward-01 | ローカルPCから22番ポートの受信許可設定 | ローカルPC(インターネット)から22番ポートを受信許可設定を作成 |
test-linux-01 | リモートサーバからの22番ポートでのアクセス許可 | デフォルトでは仮想ネットワーク内のアクセス許可がされている為追加設定は必要無し |
test-win-01 | リモートサーバからの3389番ポートでのアクセス許可 | デフォルトでは仮想ネットワーク内のアクセス許可がされている為追加設定は必要無し |
Tera Termを使ったSSHポートフォワーディング設定
仮想マシンでのSSHポートフォワーディング許可設定
Cent OS 7.9の仮想マシンではデフォルトでSSHポートフォワーディングが許可されています。
仮想マシンに対しての設定は必要ありません。
Tera Termのインストール
Tera Termのインストールや文字化け対策についてはこちらに纏めています。
Tera TermのSSH転送機能を使うとSSHポートフォワーディングが出来る
SSHポートフォワーディングはTera TermのSSH転送設定で行います。
Tera TermのSSH転送設定 | |
Tera Termの設定にあるSSH転送を選択します。 |
|
SSHポート転送の設定画面が表示されます。 |
|
test-linux-01への設定を作成します。 |
|
test-win-01への設定を作成します。 |
|
設定が2行出来ている事が分かります。 |
|
このままだと一旦Tera Termを閉じると設定が消えてしまいます。 |
SSHポートフォワーディング(Tera TermのSSH転送)を使ってリモートサーバのローカルIPへ接続
SSH接続の場合
-
-
- 接続手順(ターゲットサーバへの接続がSSHの場合)
- ローカルPC-リモートサーバ間のSSH接続を行う
- ローカルPC-ターゲットサーバ間のSSH接続を行う
- 接続手順(ターゲットサーバへの接続がSSHの場合)
-
※ローカルPC-リモートサーバ間のSSHポートフォワーディングを切断すると、ローカルPC-ターゲットサーバ間の接続も切断されます。
RDP接続の場合
-
-
- 接続手順(ターゲットサーバへの接続がRDPの場合)
- ローカルPC-リモートサーバ間のSSH接続を行う
- ローカルPC-ターゲットサーバ間のRDP接続を行う
- 接続手順(ターゲットサーバへの接続がRDPの場合)
-
※ローカルPC-リモートサーバ間のSSHポートフォワーディングを切断すると、ローカルPC-ターゲットサーバ間の接続も切断されます。
このようにグローバルIPを持たない仮想マシンにもローカルPCから接続出来る事が確認出来ました。
まとめ
今回はSSHポートフォワーディングを使った仮想マシンへの接続を試してみました。
踏み台となる仮想マシンを経由してグローバルIPをもたない仮想マシンへアクセスできる事が確認出来ました。
SSHだけではなくRDPやHTTP等も利用可能なため色々使う事が出来そうです。
今後も色々試してみたいと思います。