概要
sshポートフォワードとは、sshのデフォルトの機能で備わっている、ポートの転送機能を使って、内部からしかアクセスを許可していない内部のサーバーに外部からアクセスできるようにする方法です。AとBとCのサーバーがあり、
・Aは外部のサーバー(例:自分が使用するPC)
・Bは外部からのアクセスを許可している内部のサーバー
・Cは内部でしかアクセスできないサーバー
この状況の際に、AからCにaccessをできるようにします。
AからBにsshをして、BがAとCの橋渡しをしてくれるといったイメージです。
実際の使用方法
ローカルの80番ポートをリモート先の8080番に転送したい時には、次のようなコマンドをAで行います。# ssh hostB -L 8080:hostC:80 -N
これで、Aの80番ポートに接続すると、Bを経由してCの8080番ポートにアクセスすることができます。
ポートがわかっていれば、ローカルのWindowsにリモートデスクトップをするときなどにもLinuxサーバーなどを経由してもリモートデスクトップが使えます。
先程のはローカルからリモートの方向に転送しましたが、逆にリモートからローカルに転送することも可能です。
# ssh hostB -R 80:hostA:8080 -N
オプションが-L(Local)から-R(Remote)になって、転送の向きが逆になるだけです。 ローカルでのポート転送が行われるため、一時的に転送を行う分には問題ないと思いますが、セキュリティリスクは少しあがります。
ずっとつなげっぱなしにしていたりするのはやめておいたほうが良いと思います。
総括
今回は少しいつもと違い、機能説明のような記事になりましたが、とても便利だと思ったのでご紹介しました。私は実際に、CentOSのサーバーを経由して、外部のWindowsから内部のWindowsにリモートデスクトップを行い、作業をしていました。
作業以外の時間はポートフォワードを止めて、アクセスできない状態にしていましたが、ひと手間加えるだけでアクセスできるようになるのはとても便利でした。
緊急事態宣言も解除され、そろそろ出社する人もいるかもしれませんが、テレワークを推進している企業も多くあると思います。
今後もテレワークをしていく企業の、特に新人さん達の役に立てばと思います。