- 追加された行はこの色です。
- 削除された行はこの色です。
* 多段ポートフォワードでDB接続 [#uedfd1d2]
* 多段ローカルポートフォワード(PostgreSQL接続) [#j1201698]
** 目的 [#d6b8622d]
以下のようなネットワーク環境を想定し、PCからサーバを2台SSHで越えてDBサーバにDB接続する。
[PC]
↓
[踏み台サーバ 10.0.0.1 ]
↓ ↑インターネット
[Webサーバ 10.0.0.2/192.168.0.2] ------------------
↓ ↓ローカルネット
[DBサーバ 192.168.0.3]
- 以下のようなネットワーク環境を想定し、PCからまず踏み台サーバに接続し、そこからWebサーバに接続し、さらにそこからPostgreSQLサーバに接続する。
[PC] グローバルIPアドレス(非固定)
↓
[踏み台サーバ 10.0.0.1] グローバルIPアドレス
↓
[Webサーバ 10.0.0.2/192.168.0.2] グローバルIPアドレス/プライベートIPアドレス
↓
[PostgreSQLサーバ 192.168.0.3] プライベートIPアドレス
- PC: 非固定のグローバルIPアドレスしかない
- 踏み台サーバ: ウェブサイトサーバ群に接続する為の踏み台でどこからの接続でも許可する
- Webサーバ: 踏み台サーバからの接続のみ許可する
- PostgreSQLサーバ: プライベートIPアドレスしかなく、必ずWebサーバを介してしか接続する
*** 上記ネットワーク環境の前提 [#y494e60c]
- 踏み台サーバにはどこからでもSSH接続出来る。
- Webサーバには踏み台サーバからしかSSH接続出来ない。
- DBサーバにはWebサーバからしかSSH接続及びDB接続出来ない。
- ここでは10.0.0.xはグローバルIPアドレス、192.168.0.xはプライベートIPアドレスとする。
** 方法 [#y225a98c]
2回ポートフォワードを行う。
ssh -L 10022:10.0.0.2:22 -fN userA@10.0.0.1
ssh -L 10023:192.168.0.3:5432 -fN -p 10022 userB@localhost
これでPCのローカルポート10023に接続するとDBサーバの5432ポートに接続出来るようになる。
psql -U taro -h localhost -p 10023 test_db
*** 注意 [#vc9a471e]
- userAは踏み台サーバ上のユーザ。
- userBはDBサーバ上のユーザ。