フォワーディング (forwarding)とは、簡単に日本語にすると「転送する」ことで、ポートフォワーディングは、マシンの指定したポートに来たパケットを、指定した宛先に転送してあげることです。
ここでは、Linux(CentOS 7)環境で、SSHを利用した代表的なポートフォワーディング設定例を紹介します。
目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
ローカルポートをリモートへ転送する
上の図のような環境で、PCからWebサーバーにhttp接続したい場合は、中継サーバーを経由してローカルポートを転送するよう設定します。
たとえば、PC上のtcp10080番ポートに送信されたパケットを、中継サーバーを経由しWebサーバーのtcp80番ポートに転送するよう設定することで、PC上でhttp://localhost:10080にアクセスすると、http://192.168.1.201のコンテンツを表示することができます。
PC上で実行するコマンドは次のとおりです。
# ssh 192.168.1.200 -L 10080:192.168.1.201:80 -N
リモートポートをローカルに転送する
上の図のような環境で、中継サーバーがインターネットへ出るためには、PCを経由してリモートポートを転送するよう設定します。
たとえば、中継サーバーのtcp9090番ポートへの接続を、PCを経由してProxyサーバーのtcp8080番ポートへ転送することで、中継サーバーがインターネットへ出ることができるようになります。
PC上で実行するコマンドは次のとおりです。
# ssh 192.168.1.200 -R 9090:192.168.0.101:8080
あとがき
暗号化されていない通信(vnc、http、popなど)と、sshポートフォワーディングを組み合わせることで通信の安全性を高めることがでます。お試しあれ。