SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
漢のPort Forwarding
2014/2/19!
Minoru Nakata / 株式会社ゆめみ
index
•

IPアドレスとPort番号(おさらい)!

•

Port Forwardingとは?!

•

SSH Port Forwarding?!

•

Local ForwardとRemote Forward!

•

Local Forwardの仕組みと利用例!

•

Remote Forwardの仕組みと利用例!

•

Dynamic Forwardとその他応用
IPアドレスとPort番号

•

インターネットのサービスは、番地と窓口で区
別されている!
•

IPアドレス: サーバの番地、住所!

•

Port番号: サーバ内の窓口
IPアドレス と Port番号
Port番号は0-65535!
よく知られたサービスのPortはWell Known
Port Numbersと呼ばれ、0-1023の範囲!
FTP:21, SSH:22, SMTP:25, HTTP:80,
HTTPS:443 等!
http://www.iana.org/assignments/service-names-port-numbers/
service-names-port-numbers.xhtml
Port Forwardingとは?

あるAddress/Portに送られたデータを別の
Address/Portに転送(Forwarding)すること!
!

NATルーター等、様々なところで利用されている
SSH Port Forwarding?
SSHを用いたPort Forwarding!
Secure SHellだけど、shellだけではない!
通信路を暗号化したり、通常はネットワーク的に到達
できない所を通したりする目的で使う!
!

これを知ってると、結構やりたい放題!
Local ForwardとRemote Forward
向きによって2つのPort Forwardがある!
•

Local Forward!
•

•

•

非常によく使う(ほとんどはコレ)!
localhostのPortを指定サーバの指定Portに転送!

Remote Forward!
•

あまり出番はないが、知っておくと意外と便利!

•

相手サーバのPortを指定サーバの指定Portに転送
Local Forwardの仕組み
自分が行いたい通信を相手に代行してもらう
localhost
port 1234

sshhost
SSHトンネル

remotehost
port 5678

port X
(自動決定)

ssh -L 1234:remotehost:5678 sshhost
remotehostから見ると、sshhost:X から接続されている
Local Forwardの使用例
localマシンからサーバ上のMySQLに接続したい!
(当然localから直接は繋がらない)!
!

サーバ: devhost!
MySQL: devhost上のport:3306で動作、localhost
からのみ接続可

devhostからみた場所

ssh -L 13306:localhost:3306 devhost
localhost:13306に接続すればOK!
Local Forwardの使用例
出先から社内のマシンにアクセスしたい!
!

Windows: リモートデスクトップ(RDP)3389!
Mac: 画面共有(VNC)5900
ssh -L 13389:自分のIPアドレス:3389 gateway!
ssh -L 15900:自分のIPアドレス:5900 gateway
localhost:13389/15900に接続すればOK!
Remote Forwardの仕組み
相手が受けた通信を自分が代行する
remotehost

localhost

sshhost
SSHトンネル

port 5678

port 1234

port X
(自動決定)

ssh -R 1234:remotehost:5678 sshhost
remotehostから見ると、localhost:X から接続されている
Remote Forwardの使用例
外部通信ができないサーバでyum updateしたい!
!

サーバ: devhost!
repo baseurl: http://localhost:8080/...!
実際のrepoサーバ/ポート: repohost:80!

ssh -R 8080:repohost:80 devhost
yum updateで localhost:8080 -> repohost:80 に接続
Remote Forwardの使用例
一時的に外部サーバに来たアクセスを自分の開発
環境に向けたい!
!

開発サーバ/ポート: devhost:8080!
local開発サーバ/ポート: mydevhost:18080
localhostからみた場所

ssh -R 8080:mydevhost:18080 devhost
devhost:8080に接続するとmydevhost:10080に来る!
Dynamic Forward
•

SSHをSOCKSプロキシとして動作させる!
•

http://ja.wikipedia.org/wiki/SOCKS!

!

•

アプリケーションレベルの制御で、Forward先
が変化する!

•

アクセス制限されたwebサーバ等に接続するに
は、Local Forwardより使い勝手が良い
Dynamic Forwardの使用例
社内gitlabに外部からアクセスしたい!
!

gitlabは社内アクセスのみ許可!
gatewayからは接続可能
ssh -D 10080 gateway
後はブラウザの設定で、SOCKSプロキシを
localhost:10080にすればOK!
応用:多段Forwarding
接続したいサーバが奥底過ぎてForward 1回じゃ
届かねぇ!!
!

gateway -> ec2-web -> rds-db!
rds-dbはec2-webからしか繋がらない
ssh -t -L13306:localhost:13306 gateway !
ssh -L13306:rds-db:3306 ec2-web
gateway:13306を中継してsshでchain
難点は、gateway:13306を潰してしまうこと
応用:多段Forwarding
接続したいサーバが奥底過ぎてForward 1回じゃ
届かねぇ! 別の方法!
!

gateway -> ec2-web -> rds-db!
rds-dbはec2-webからしか繋がらない
ssh -L10022:ec2-web:22 gateway!
ssh -L13306:rds-db:3306 -p10022 localhost
一旦ec2-webに直接sshできるようにする
2つ目のsshで直接localhost:13306をrdsへ
難点は、2重に暗号化通路を通ること
おまけ:Local/Romote Forwardの
連携例
自宅のiTunesライブラリを外部のiTunesから聞く
home

sshhost

port 3689

port 36890

Step:1 home から sshhost へ Remote Forward
ssh -R36890:localhost:3689 sshhost
おまけ:Local/Romote Forwardの
連携例
自宅のiTunesライブラリを外部のiTunesから聞く
home

sshhost

localhost

port 3689

port 36890

port 36890

Step:2 localhost から sshhost へ Local Forward
ssh -L36890:localhost:36890 sshhost
おまけ:Local/Romote Forwardの
連携例
自宅のiTunesライブラリを外部のiTunesから聞く
home

sshhost

localhost

port 3689

port 36890

port 36890

Step:3 Network Beaconを使ってlocalhost:36890を
DAAPサービスとしてBonjourに認識させる
http://www.chaoticsoftware.com/ProductPages/NetworkBeacon.html
Forwardingを使いこなすにはsshコマンドが基本!!
~/.ssh/configを使うとその他様々な設定が可能!
!

Windowsな人はPuTTYを捨ててzsh!
もしくは、Macに移行しよう

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

llvm入門
llvm入門llvm入門
llvm入門
 
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦う
 
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
計算力学シミュレーションに GPU は役立つのか?
計算力学シミュレーションに GPU は役立つのか?計算力学シミュレーションに GPU は役立つのか?
計算力学シミュレーションに GPU は役立つのか?
 
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
 
H.264で相互接続 - WebRTC Meetup Tokyo #10
H.264で相互接続 - WebRTC Meetup Tokyo #10H.264で相互接続 - WebRTC Meetup Tokyo #10
H.264で相互接続 - WebRTC Meetup Tokyo #10
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
DSPでgolangの屍を超えた話 (オレシカナイト Vol.2)
DSPでgolangの屍を超えた話 (オレシカナイト Vol.2)DSPでgolangの屍を超えた話 (オレシカナイト Vol.2)
DSPでgolangの屍を超えた話 (オレシカナイト Vol.2)
 
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンス
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
Microsoft License の基本
Microsoft License  の基本Microsoft License  の基本
Microsoft License の基本
 
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
 
vSRX on Your Laptop : PCで始めるvSRX ~JUNOSをさわってみよう!~
vSRX on Your Laptop : PCで始めるvSRX ~JUNOSをさわってみよう!~vSRX on Your Laptop : PCで始めるvSRX ~JUNOSをさわってみよう!~
vSRX on Your Laptop : PCで始めるvSRX ~JUNOSをさわってみよう!~
 
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
 
KeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについてKeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについて
 
CloudNative Days Spring 2021 Online: Apache CamelおよびKeycloakを用いたAPI管理基盤の実現
CloudNative Days Spring 2021 Online: Apache CamelおよびKeycloakを用いたAPI管理基盤の実現CloudNative Days Spring 2021 Online: Apache CamelおよびKeycloakを用いたAPI管理基盤の実現
CloudNative Days Spring 2021 Online: Apache CamelおよびKeycloakを用いたAPI管理基盤の実現
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 

Ähnlich wie 漢のPort forwarding

ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2
Taichi Inaba
 
[D23] SQL Server 2014 リリース記念!~Hekaton, カラムストアを試して、さらにギンギンに速くしてみました!~by Daisuk...
[D23] SQL Server 2014 リリース記念!~Hekaton, カラムストアを試して、さらにギンギンに速くしてみました!~by Daisuk...[D23] SQL Server 2014 リリース記念!~Hekaton, カラムストアを試して、さらにギンギンに速くしてみました!~by Daisuk...
[D23] SQL Server 2014 リリース記念!~Hekaton, カラムストアを試して、さらにギンギンに速くしてみました!~by Daisuk...
Insight Technology, Inc.
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
 

Ähnlich wie 漢のPort forwarding (13)

コンピューターネットワーク入門
コンピューターネットワーク入門コンピューターネットワーク入門
コンピューターネットワーク入門
 
ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2
 
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
 
20120519 #qpstudy インターフェース入門
20120519 #qpstudy インターフェース入門20120519 #qpstudy インターフェース入門
20120519 #qpstudy インターフェース入門
 
Hipとは?
Hipとは?Hipとは?
Hipとは?
 
Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16
 
[D23] SQL Server 2014 リリース記念!~Hekaton, カラムストアを試して、さらにギンギンに速くしてみました!~by Daisuk...
[D23] SQL Server 2014 リリース記念!~Hekaton, カラムストアを試して、さらにギンギンに速くしてみました!~by Daisuk...[D23] SQL Server 2014 リリース記念!~Hekaton, カラムストアを試して、さらにギンギンに速くしてみました!~by Daisuk...
[D23] SQL Server 2014 リリース記念!~Hekaton, カラムストアを試して、さらにギンギンに速くしてみました!~by Daisuk...
 
Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜
Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜
Developer Festa Sapporo 2016 | 誰もがIoTエンジニアになれる 〜IoT 通信プラットフォーム SORACOM〜
 
Arch TCP/IP Other Application
Arch TCP/IP Other ApplicationArch TCP/IP Other Application
Arch TCP/IP Other Application
 
LPWA 勉強会 #4 | 事例から見る LPWA と実装の現場 〜SORACOM プラットフォームの活用方法 〜
LPWA 勉強会 #4 | 事例から見る LPWA と実装の現場 〜SORACOM プラットフォームの活用方法 〜LPWA 勉強会 #4 | 事例から見る LPWA と実装の現場 〜SORACOM プラットフォームの活用方法 〜
LPWA 勉強会 #4 | 事例から見る LPWA と実装の現場 〜SORACOM プラットフォームの活用方法 〜
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

漢のPort forwarding