ssh でポートフォワーディング

LINEで送る
Pocket

自宅でテレワークをしているが会社の社内にある Web や RDP サーバにアクセスしたい場合、社内に設置してあるグローバルIPを持つサーバにVPN サーバを立ち上げキーを発行して、ローカルのPCでVPNクライアントを立ち上げてキーを読み込ませてVPN コネクションを張るのが長期運用の為には良いのかもしれませんが設置のハードルが少々高いです。

しかし、ssh のポートフォワーディング機能を使えば、社外からグローバルIPを持つサーバに ssh でアクセスできれば、その先にある社内のローカルサーバに自在にアクセス出来るようになります。

まず試す前にグローバルIPを持つサーバの sshd の TCP フォワーディングが有効になっているか確認します。
Ubuntu ではデフォルト有効になっていますが、無効であるなら yes として sshd を再起動します。

/etc/ssh/sshd_config

AllowTcpForwarding yes
$ sudo systemctl restart sshd

          8080-------------------->80
localhost          remote          target
          --ssh-->

次にリモート転送を行いたい場合は、ローカルで以下のコマンドを実行して remote にログインすると、remote の 8080 ポートにアクセスするとtarget のサーバの 80 ポートにアクセスできるようになります。

# localhost で実行
$ ssh -R 8080:target:80 username@remote -N

http://remote:8080

なおリモート転送を行う場合は、GatewayPorts 有効にする必要があります。

/etc/ssh/sshd_config

GatewayPorts yes

しかしリモート転送は、社員みんなで共有するには便利だが、誰からも http://remote:8080 へのアクセスを許可してしまうので、ファイヤーウォールなどでの IPアドレスのアクセス制限が必要になってくる。

-L : ローカル転送
-R : リモート転送
-N : コマンド実行無し
-f : バックグラウンドで実行

LINEで送る
Pocket

  • このエントリーをはてなブックマークに追加

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください