SSHポートフォワーディング

SSHでログインした先をプロクシ的に利用する方法.
特定のドメインからしかアクセスを許していないサーバにアクセスする場合そのドメインのサーバにSSHログインすることができるならば,そのサーバ経由で,目的のサーバにアクセスする事が可能となる.

方法は
ssh ログイン名@経由サーバ -L 自分のポート:目的サーバ:目的サーバのポート
でOK.もちろん
ssh 経由サーバ -lログイン名 -L 自分のポート:目的サーバ:目的サーバのポート
でもOK.

例えば,via_server.comを経由して,http://www.target.co.jp/を閲覧するには
  ssh login_id@via_server.com -L 8080:www.target.co.jp:80
となる.ここで,login_idは経由サーバのログイン名である.
-Lオプションの
www.target.co.jpは目的サーバのアドレスで,
80は目的サーバのポート(httpはポート80なので)
8080は自分のマシンのポートで,これは任意.

上の場合,自分のマシンのポートを8080にする設定なので,ウェブブラウザでのアドレスバーに入力するアドレスは
http://localhost:8080/
あるいは
http://127.0.0.1:8080/
となる.

これで,ドメインをごまかせるようにはなるのだが,目的のサーバを変えるには上述の手順を繰り返さなければならない.したがって,プロクシとは言えないのだろうが,特定の用途には非常に便利だ.

ちなみに,私の環境で上のコマンドの"自分のマシンのポート"を80として実行すると
  Privileged ports can only be forwarded by root.
とおこられる.これは,恐らく他のアプリケーション(apacheですが)が,80番ポートを使用しているため.素直に他のポートを指定するか,sudoを使って無理矢理設定するかで解決できると思われる.

0 コメント:

コメントを投稿