WindowsからCLIのみのLinuxにSSH接続し、それを踏み台サーバーにしてGUI対応のLinuxでブラウザを起動する方法

想定環境

Windows---Linux①(CentOS7)---Linux②(CentOS7)---外部NW

  • 実際に操作できるのはWindowsのみ。
  • Linux①およびLinux②は仮想環境(VirturlBox)で構築している。
  • Linux①およびLinux②はCentOS7を使用している。
    その他のバージョン等使用時はコマンドに注意する。
    例:CentOS7のyumコマンド → CentOS8ではdnfコマンド
  • Linux①はCLIのみ。
  • Linux②はGUI表示が可能でブラウザが存在し、外部ネットワークに繋がっている。

各インターフェースに設定されているIPアドレスは次のようなアルファベットと仮定する。

  • Windows:A.A.A.A
  • Linux①:Windows側 B.B.B.B、Linux②側 C.C.C.C
  • Linux②:Linux①側 D.D.D.D、外部NW側 E.E.E.E

C.C.C.CとD.D.D.Dは内部ネットワークとして構成されており、WindowsからLinux②へ直接アクセスすることはできない。

実行したいこと

WindowsからLinux①にTeratermでSSH接続し、Linux①を踏み台サーバーにしてLinux②へアクセス後、Linux②のブラウザを起動し、外部ネットワーク(Yahoo!やGoogleなど)にアクセスする。

問題点

Teratermの画面ではGUI表示ができないため、Linux②まで到達できたとしても、そこでブラウザを起動できない。

前提条件

Linux②にXRDP(リモートデスクトップを行うためのソフトウェア)がインストールされていること。

XRDPがインストールされていない場合は、下記参照。

XRDPをインストールするためのコマンド
# yum install -y epel-release
# yum install -y xrdp tigervnc-server

XRDPの通信を許可するためのコマンド
# firewall-cmd --permanent --zone=public --add-port=3389/tcp
# firewall-cmd –reload

XRDPを起動するためのコマンド
# systemctl start xrdp
# systemctl enable xrdp

手順

1. WindowsからLinux①へTeratermを用いてSSHで接続する。


2. Teratermメニューの「設定」→「SSH転送」を選択する。


3. 「追加」をクリックし、下記設定を入力する。

  • ローカルのポート:53389(←well-knownポート以外なら何でもいいが番号は覚えておくこと。手順10で必要。)
  • リモート側のホスト:D.D.D.D
  • ポート:3389

4. Teratermメニューの「設定」→「設定の保存」を選択する。


5. Linux①のsshd_configファイルでポートフォワーディングの設定状況を確認するため、次のVIコマンドを入力する。

sshd_configファイルを編集可能な状態にする。(編集画面を表示する)
# vi /etc/ssh/sshd_config

●編集画面で「/AllowTcp」と入力し、「AllowTcpForwarding」が「Yes」であることを確認する。

  • 「No」になっていた場合は下記の通り、「Yes」に修正する。 
AllowTcpForwarding No

「No」の「N」にカーソルをあわせ[x]キーを2回押す。
[a]キーを押す。
[Yes]と入力。
[Esc]キーを押す。 

●編集画面を終了する。

  • 「No」の場合 → 編集後、上書き保存して終了 → [:]、[w]、[q]、[Enter]の順でキーを押す
  • 「Yes」の場合 → 編集していないので、そのまま終了 → [:]、[q]、[Enter]の順でキーを押す
  • 編集中に訳が分からなくなり、保存せずに終了したい場合は、[:]、[q]、[!]、[Enter]の順でキーを押して編集画面を強制終了させる。

6. sshdを再起動する。

# systemctl restart sshd

7. Teratermを終了する。

# exit

8. 再度、Teratermを起動し、Linux①にSSH接続する。(手順3を有効にするため)


9. Windowsで[Windows]キー+[R]キーから「mstsc」と入力し、リモートデスクトップを起動する。


10. リモートデスクトップの画面で「127.0.0.1:53389」と入力する。

  ※53389は手順3で入力した番号と一致させること。

  ※「127.0.0.1:53389」でうまくいかない場合は「localhost:53389」で試す。


11. Linux②のログイン情報を入力する。


12. Linux②のブラウザを起動し、外部ネットワークにアクセスする。

今回のポイント

TeratermでSSH転送を行い、ポートフォワーディングの設定を確認し、リモートデスクトップで接続する。その際、Teratermの再起動(SSHの再接続)が必要となる。

コメントを残す

メールアドレスが公開されることはありません。