多段プロキシーでMySQLに接続するメモ

はじめてQiitaに書いてみる。
とりあえず多段プロキシーでMySQLに繋がないといけなかったので、設定のメモだけ

最近多段プロキシーでMySQLにアクセスしないといけなくなったので、忘れないように設定等をメモしてみる

※Qiitaってmermaid.js使えないのか...

用語・略語

  • A5: SQL開発ツール(Windows用)
  • VB: VirtualBox
  • AP: アプリケーション

概要

環境

  • クライアント側
    • A5でMySQLに接続する
    • クライアントOSはWindows10
    • VirtualBoX上でCentOS7を起動
  • サーバー側
    • 踏み台サーバー経由でAPサーバーへ接続
    • APサーバーからしかMySQLに接続出来ない

IPアドレス(説明のために適当に記載)

  • Windowsクライアント: 192.168.0.10
  • CentOS(VB): 192.168.56.200
    • ホストオンリーアダプターにWindows側から接続
  • 踏み台サーバー: 192.168.0.100
  • APサーバー: 192.168.0.101
  • MySQLサーバー: 192.168.0.102

接続方法

  • まずCentOSからMySQLに直接接続するためのSSHトンネルを作成する
    • CentOS7のポート10000がMySQLのポート3306に接続される
  • クライアントからは、SSHトンネル経由でCentOSに接続
    • CentOS7のポート10000に接続

概要図

※Qiitaでは、mermaid.js使えないのは辛い。他で作って図だけ挿入
スクリーンショット 2018-01-14 3.09.30.png

CentOS .ssh以下の設定

configの設定

踏み台サーバーへのログインは公開鍵でログインする

.ssh/config
Host fumidai
  Hostname 192.168.0.100
  User user100
  IdentityFile=~/.ssh/id_rsa_fumidai

Host ap_server
  Hostname 192.168.0.101
  User user101
  ProxyCommand ssh fumidai nc %h %p

トンネル(2)の作成

ssh -f -N -C -L 10000:MySQLサーバー:3306 APサーバー

実際にはIPアドレスで以下のように指定

ssh -f -N -C -L 10000:192.168.0.102:3306 192.168.0.101

トンネル(1)経由でA5からMySQLサーバーへ接続

A5にはトンネル経由の接続が設定可能なので、A5のSSHトンネルの設定は以下

  • SSH2ホスト名:192.168.56.200
  • ユーザーID: User10
    • CentOS7のユーザーID
  • パスワード: CentOS7のパスワード
  • パスワード認証で接続

まとめ

  • とりあえず上記設定で、A5から直接MySQLサーバーに接続出来た
  • ERMaster等で接続する場合は、WindowsマシンからCentOS7に対してSSHトンネルを先に作成する必用がある
    • putty等でトンネリング設定をして接続しておけば良いはず
  • Macの場合は、CentOSで設定したsshトンネリングを直接記載すれば良いだけなので、より簡単に接続出来る
    • ※もう開発にWindowsマシン使うのやめたい!(切実な思い)
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.