SSHポートフォワーディングの設定
自宅~職場間でPCを遠隔操作する場合,Google Remote Desktopが便利である。しかし,昨今のリモートワークでサーバが混雑しているせいか,応答が遅いことがままある。VNCでつないでしまえば速いのだが,そのままではセキュリティが不安である。
ということで,SSHポートフォワーディングでVNCを接続することにしたので,その設定の備忘録である。
(1) 外部端末から,グローバルIPアドレスが付与されている自宅のルータのポート22にアクセスする。
(2) 自宅のルータは,WAN側ポート22に入ってきた通信を,LAN内SSHサーバのポート22に転送する。
(3) これで,外部端末とLAN内SSHサーバとの間で,暗号化通信が確立される。
(4) このSSH通信に,「自宅WindowsマシンへのVNC接続」を「載せる」。
(5) そうすると,自宅WindowsマシンへのVNC接続が,SSHにより暗号化される。
1,SSHサーバの設定
基本的に何かをする必要はない。ただし,ポート22(SSHの初期ポート)を開けっぱなしにするというのは感覚的に気持ち悪い。そんなの気休めだ意味は無い,というのも分かるけれど,一応ポートは変えておきたい気分である。
が,突然変えてしまうというのも,設定を間違えたときに再ログインできなくなって不便である。で,なるほどと思ったのが,SSHの設定でポート22と,たとえばポート222の双方を受け付けるようにして,ポート222での設定がうまくいったらポート22をルータで塞ぐなり,削除するなりする,というやり方。
ポートに関する設定ファイルは,
なので,そこの
#Port 22
の行の下あたりに,使うポートを指定して書き込む。こんなふうに。
#Port 22
Port 22
Port 222
これで,ポート222でも,22でも,SSHがつながることになる。うまくいいくことが分かったら,"Port 22"の行を削除すればよい。
設定したら,
sudo systemctl restart sshd
でsshdを再起動する。
2,自宅ルータの設定
いわゆるポートフォワーディングの設定を行う。WAN側ポート222に入ってきた通信を,SSHサーバのポート222に転送する設定を行えばよい。
どうも自宅のルータは,転送先のPCをIPアドレスで指定するようである。自宅LAN内のIPアドレスは,DHCPで振っているので,本当はこういう直接指定は良くないのだろうが,実用上問題ないくらいには変わってないので,よしとする。
3,外部端末の設定その1
外部端末にTera Termをインストールする。問題なく終了するはず。
Tera Termで,接続先を,「自宅ルータのグローバルIPアドレス:222」と指定すると,自宅ルータがポートフォワードをしてくれて,SSHサーバのポート222に通信が転送されるので,Tera Termで自宅SSHサーバにログインできるようになる。
4,外部端末の設定その2
Tera Term丈夫メニューの「設定」-「SSH転送」をクリックすると,ポート転送の設定画面になる。転送ルールを設定するので,「追加」ボタンをクリックすると,「ポート転送を行う向きの選択」という画面になる。
その画面で,「ローカルのポート」を選択し,適当な数字,たとえば「33890」と入力する。「リッスン」は空欄にする。
「リモート側ホスト」には,自宅WindowsマシンのプライベートIPアドレスを指定し,「ポート」には,自宅WindowsマシンのVNCサーバが使用しているポートを入力する。自宅WindowsマシンのVNCサーバが「33891」で待ち受けているならば,「ポート」には,「33891」と入力する。
あとは,OKを押して設定メニューを閉じる。
その後,再び「設定」-「設定の保存」で,設定内容を保存する。
5,Tera Termの再起動
Tera Termを一旦閉じて,再び起動し,上記「3,」の手続を踏んでSSHで接続する。
6,VNCクライアントの設定
外部端末のVNCの設定画面において,localhost(127.0.0.1)のポート33890を接続先に指定する。
これにより,VNCクライアントは,自身のPCのポート33890に接続しようとし,そこでSSHの設定により宛先を「自宅WIndowsマシンのポート33891」に書き換えられ,VNCの通信は,SSH通信に「載せられる」ことになる。
あとは,SSHサーバ側でSSHによる暗号化が解かれ,そうすると出て来た通信は「自宅WIndowsマシンのポート33891」宛てということになるから,SSHサーバは自宅Windowsマシンのポート33891宛てにその通信を転送する。
7,かくして,外部端末のVNCクライアントは,自宅WIndowsマシンのVNCサーバと通信することが可能になる,というわけである。
8,Tera Termのターミナルを閉じると,VNC通信も閉じてしまうので,VNC通信がSSH通信に「載っている」ころがわかる。