Ari's Blog

Reading makes me rich !

元土木屋が仮想のトンネルを掘ったら…

leave a comment »

色々と制約が世の中にはある。いいか悪いかは別として、その制約を受け入れつつ、やりたいことを安全に実行する必要があるシーンもある。制約を作っている人達は、その制約が自分たちが要求したことへの「制約」「制限事項」になっていることなど「知らんぷり」で「こうしたい」「ああしたい」と言ってくるわけだ。世の中そういうものだ。そして元土木屋は得意のトンネルを掘ってそれを実現するのだ。

現場では紙に走り書きをしてやりたいことをやってしまったが、今回はなかなかおもしろかったので、こんな風に紙に書いて頭の中を整理してみた。

img_5461

これじゃ見えにくいかもしれないから、順を追って整理する。

要件:

  • DMZ 上にあるホストCから、INTERNAL①を経て WAN 越しにある INTERNAL②上のホストS上の Web サービスにアクセスしたい。

制約条件:

  1. DMZ → INTERNAL①方向への通信は NG
  2. INTERNAL② → INTERNAL①方向への通信は NG
  3. INTERNAL① → DMZ への ssh 通信は OK
  4. INTERNAL① → INTERNAL②への ssh 通信は OK

実現方法:

  • INTERNAL①上のホストRを使って、ホストCへの ssh、ホストRへの ssh でトンネルを掘り、そのトンネルをホストR上で連結することで、ホストC上のポートにアクセスすることで、ホストRの Web サービス(ポート 80)へアクセスする。
  • ssh -L 8000:localhost:80 host-S
    ホストRのポート 8000 をホストSのポート 80 へバインド
  • ssh -R 8080:localhost:8000 host-C
    ホストCのポート 8080 をホストRのポート 8000 へバインド
    この時点でホストRのポート 8000 がホストR上で連結され、2つのトンネルが連結される
  • ホストC上で「http://localhost:8080/」へアクセスすることで、上記2つのトンネルを通ってホストSのポート 80(Web サービス)にアクセスできる。

上記を図示したら以下のような感じ。

さすが元土木屋だ。寸分の狂いもなく繋がった!測量も何も必要のない仮想(ssh)のトンネルじゃ当たり前だが。(笑)

追伸:
ノートに書いてある「掘る」が「堀る」になっていないか?(苦笑)

広告

Written by arito

2016-10-22 @ 23:35

カテゴリー: Linux

Tagged with , ,

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。