👌

Port Foward まとめ

2023/09/05に公開

概要

まだまだ使いこなせていないPortFowardの手法をまとめる。

環境

  • Linux
  • Windows

前提知識まとめ

  • SSH オプション
    • -f
      • SSHをバックグラウンドで実行
    • -N
      • リモートコマンドを実行しないようにする
      • -fオプションを指定するときは必須
    • -L
      • ローカルポート番号を指定
      • LocalPortFowardを行うときに指定

Local PortFoward Case1

イメージ

ssh コマンド(Local Machineから実行)

ssh -L ローカルポート番号:転送先ホスト名:転送先ポート番号 ユーザ名@SSH接続ホスト名

  • コマンド例
    ssh -L 50080:10.10.10.1:80 test@192.168.10.10
    • 補足
      • 50080はローカルマシンで使用していない<font color="red">任意</font> のPort番号

ブラウザアクセス

  • 通常にアクセスできる場合(例)
    http://a.test.com/login.php
  • PortFowardを使用した場合
    http://localhost:50080/login.php

通信の詳細

Local Port Foward Case2

イメージ

SSH コマンド(Local Machineから実行)

ssh -L ローカルポート番号:転送先ホスト名:転送先ポート番号 ユーザ名@SSH接続ホスト名

  • コマンド例
    ssh -L 50080:localhost:80 test@10.10.10.1
    • 補足
      • localhost は接続する相手環境の事
      • localhostではなく10.10.10.1でも可能

ブラウザアクセス

  • 通常にアクセスできる場合(例)
    http://a.test.com/login.php
  • PortFowardを使用した場合
    http://localhost:50080/login.php

通信の詳細

Remote Port Foward

イメージ

SSH コマンド(SSH Server から実行)

ssh -R ローカルポート番号:転送先ホスト名:転送先ポート番号 ユーザ名@SSH接続ホスト名

  • コマンド例
    ssh -R 13389:10.10.10.10:3389 test@10.10.10.1
    • 補足
      • SSHサーバーの設定(sshd_config)で GatewayPorts を yes に設定
      • さらにsocatを使用することでLocal Machine を更に踏む台にすることができる
        • コマンド例(Local Machine で実施)
          socat tcp4-listen:3389,reuseaddr,fork TCP:127.0.0.1:13389

Dynamic PortFoward

イメージ

SSH コマンド(Local Machineから実行)

ssh -D ローカルポート番号 ユーザ名@SSH接続ホスト名

  • コマンド例
    ssh -D 9999 test@10.10.10.1
    • 補足
      • 使用する場合は以下のいずれかを設定する。
        • proxychains.confsocks5 127.0.0.1 9999
        • FirefoxにNetWork SettingManual proxy configurationを設定する。

通信の詳細

確認コマンド

  • プロセス確認
    ps -auxf | grep ssh
  • ソケット確認
    netstat -an | grep EST*

Windows

イメージ

Netsh コマンド(SSH Serverから実行)

netsh interface portproxy add v4tov4 listenport=ローカルポート番号 listenaddr=ローカルアドレス connectport=転送先ポート番号 connectaddress=転送先アドレス

  • コマンド例
    netsh interface portproxy add v4tov4 listenport=13389 listenaddr=10.10.10.100 connectport=3389 connectaddress=192.168.10.1

その他のコマンド

  • 確認コマンド
    netsh interface portproxy show all

  • 削除コマンド
    netsh interface portproxy delete v4tov4 listenport=13389 listenaddr=10.10.10.100

Discussion