2010/09/06
カテゴリ : Tech
Linux
openssh
ポートフォワード
Debian・・・だけじゃない
sshでポートフォワード
sshには言わずと知れた「ポートフォワード」という機能があります。
読んで時の如しで、sshの暗号化されたトンネルを利用し、任意のポートに来た通信を転送できます。
何がうれしいかと言うと、リモートの 5432番 をローカルの 5432 にマッピング出きる。
つまり、sshさえ繋がれば、そのサーバから見える範囲ならなんでも使える!と言うことです。
1・ローカルへリモートのポートをマッピング
例えば、二つのホスト(chiba, shiga)があるとします。
chibaに、shigaの5900ポートをフォワードする場合は以下のようになります。
この状態で、下記のようにするとshigaのVNCにつながります。(もちろん、shigaが5900でVNC待ち受けしていれば)
では、コマンドの意味を解説します。
・ ssh
コマンドです。
・ shiga
接続先ホストです。192.168.0.100とか www.asial.co.jp とか色々入ります。
・ -L 5900:localhost:5900
今回の肝です。-Lは、「ローカルにリモートのボートをマッピング」という命令で、書式は
この場合は、ローカルの5900に、リモートから見たlocalhostの5900番をマッピングと言う意味になります。
細かいことはmanpageで。
もちろん、localhost以外の場合は以下のようになります。
この方法は、chibaからhikoneに直接アクセス出来ない場合に役立ちます。(chibaからのパケットをRejectしているとか、hikoneがnatの中など)
2・ローカルのポートをリモートにマッピング
先ほどとは逆です。オプションは、-Rを使用します。
chibaの5900番をshigaの5900番にマッピング
こんなこと出来て何がうれしいかというと、例えば、natの中にあるホストにnatの外から直接アクセス出来ます。
さっきのhikoneがプライベートアドレスしか持っていないが、shigaがnatしている場合、chibaからhikoneへは、chiba->saga->hikoneとフォワードする必要があるが、逆にhikoneからchibaは直接見えるため、以下のようにすれば一発でできる。
3・共有
通常 -L または -R でセッションを張った場合、ローカル(接続元)では、127.0.0.1:5900のように、loが使用されます。
-g をつけると、0.0.0.0:5900のように、どこからでも接続を受け付けるようになるので、他のマシンからもアクセスさせることが出来ます。
データセンタのDBサーバに、オフィスの中からつなぎたいなどの場合に便利ですね。
2.5・少々複雑なフォワード
-Lでネスト
-Lと-Rを組み合わせ
やっていることは同じですが、後者の方がトンネル内に通している本数が少ないため軽量です。
4・暗号化
もちろん、sshでつないでいる範囲しかされないので注意してください。
3の例の場合は
5・最後に
長々と書いてきましたが、何といっても「百聞は一見に如かず」と言うことで、実際に動かしてみるのが一番です。
実際、複雑な条件なんて使おうと思う環境が無ければ使いません。
実際に使う機会がやってきたときは、
・sshにはポートをマッピングする機能がある
・ポートフォワードという
あたりを覚えていれば、ググれば何か出てきます。あとは使って覚えてください。
本文中のchibaとかshigaは特に意味はありません。
ホスト名になにかないかと思ったら突然チバ!シガ!サガ!と思ったのでそのまま使いました。
読んで時の如しで、sshの暗号化されたトンネルを利用し、任意のポートに来た通信を転送できます。
何がうれしいかと言うと、リモートの 5432番 をローカルの 5432 にマッピング出きる。
つまり、sshさえ繋がれば、そのサーバから見える範囲ならなんでも使える!と言うことです。
1・ローカルへリモートのポートをマッピング
例えば、二つのホスト(chiba, shiga)があるとします。
chibaに、shigaの5900ポートをフォワードする場合は以下のようになります。
- chiba:~$
ssh shiga -L 5900:localhost:5900
この状態で、下記のようにするとshigaのVNCにつながります。(もちろん、shigaが5900でVNC待ち受けしていれば)
- chiba:~$
xvncviewer localhost:0
では、コマンドの意味を解説します。
・ ssh
コマンドです。
・ shiga
接続先ホストです。192.168.0.100とか www.asial.co.jp とか色々入ります。
・ -L 5900:localhost:5900
今回の肝です。-Lは、「ローカルにリモートのボートをマッピング」という命令で、書式は
- ローカルのポート:リモートから見たホスト:リモートから見たホストに対してマッピングしたいポート
この場合は、ローカルの5900に、リモートから見たlocalhostの5900番をマッピングと言う意味になります。
細かいことはmanpageで。
もちろん、localhost以外の場合は以下のようになります。
- chiba:~$
ssh shiga -L 5900:hikone:5900
この方法は、chibaからhikoneに直接アクセス出来ない場合に役立ちます。(chibaからのパケットをRejectしているとか、hikoneがnatの中など)
2・ローカルのポートをリモートにマッピング
先ほどとは逆です。オプションは、-Rを使用します。
chibaの5900番をshigaの5900番にマッピング
- chiba:~$
ssh shiga -R 5900:localhost:5900
こんなこと出来て何がうれしいかというと、例えば、natの中にあるホストにnatの外から直接アクセス出来ます。
さっきのhikoneがプライベートアドレスしか持っていないが、shigaがnatしている場合、chibaからhikoneへは、chiba->saga->hikoneとフォワードする必要があるが、逆にhikoneからchibaは直接見えるため、以下のようにすれば一発でできる。
- hikone~:$
ssh chiba -R 5900:localhost:5900
3・共有
通常 -L または -R でセッションを張った場合、ローカル(接続元)では、127.0.0.1:5900のように、loが使用されます。
-g をつけると、0.0.0.0:5900のように、どこからでも接続を受け付けるようになるので、他のマシンからもアクセスさせることが出来ます。
- chiba:~$
ssh shiga -g -L 5900:hikone:5900
- ichikawa:~$
xvncviewer chiba:0
データセンタのDBサーバに、オフィスの中からつなぎたいなどの場合に便利ですね。
2.5・少々複雑なフォワード
-Lでネスト
- ichikawa:~$
ssh chiba -L 5900:localhost:5900 - chiba:~$
ssh saga -L 5900:hikone:5900
-Lと-Rを組み合わせ
- ichikawa:~$
ssh chiba -L 5900:localhost:5900 - hikone:~$
ssh chiba -R 5900:localhost:5900
やっていることは同じですが、後者の方がトンネル内に通している本数が少ないため軽量です。
4・暗号化
もちろん、sshでつないでいる範囲しかされないので注意してください。
3の例の場合は
- ichikawa
-vnc-> chiba -ssh-> shiga -vnc-> hikone
5・最後に
長々と書いてきましたが、何といっても「百聞は一見に如かず」と言うことで、実際に動かしてみるのが一番です。
実際、複雑な条件なんて使おうと思う環境が無ければ使いません。
実際に使う機会がやってきたときは、
・sshにはポートをマッピングする機能がある
・ポートフォワードという
あたりを覚えていれば、ググれば何か出てきます。あとは使って覚えてください。
本文中のchibaとかshigaは特に意味はありません。
ホスト名になにかないかと思ったら突然チバ!シガ!サガ!と思ったのでそのまま使いました。
トラックバックURI
-
- 安全に接続する(ssh) : Debian Squeeze from ICR Blog
- ssh で安全に接続する。ssh でいつも使っているマシンから設定する方が...
2011年10月16日 13:41
-
- 安全に接続する(ssh) : Debian Squeeze from ICR Blog
- ssh で安全に接続する。ssh でいつも使っているマシンから設定する方が...
2011年10月16日 14:01
最近の記事
システム開発エンジニア募集! [2012年02月03日 : 小林有佳]
OpenVPNで細々便利な設定 [2012年01月31日 : 門脇優児]
【iOS】Viewの開発・デバッグに役立つ色々 [2012年01月23日 : 中川善樹]
PHPDocumentorの利用方法まとめ [2012年01月19日 : 笹亀弘]
Google Chart Toolsを使ってサイトマップを描こう! [2011年12月21日 : 志田仁美]
stumpwm設定v2 [2011年12月19日 : 門脇優児]
Mashup Awards 7の授賞式が行われました [2011年12月16日 : 中川善樹]
社員旅行に行きました [2011年12月12日 : 大橋寛子]
iCloud風のアイコンを作成する(Fireworks) [2011年12月07日 : 和田記光]
iScroll4でネイティブに近いスマホ向けHTMLページを作成する [2011年12月02日 : 松田惇]













コメントフォーム