搜尋此網誌

2013年12月28日 星期六

[迷你好兔] 利用 SSH Tunnel 保護你的 MySQL 連線 (三)

BundSightseeingTunnel2在前面兩篇文章裡,我提到如何利用 SSH Tunnel 的技術來保護遠端的 MySQL 連線。在第二種作法中,使用者利用自己的電腦達成 SSH Tunnel 的功能。因為大多數的使用者為 Windows 環境,所以在這篇文章中,我將示範如何在 Windows 的環境下設置 SSH Tunnel 以提供遠端 MySQL 連線。範例中使用的工具為 Putty,其他類似的 SSH Client 工具多也提供同樣的功能。

ssh proxy 2

  1. 開啟 Putty
  2. 新增 Putty 設定
    image
  3. 完成設定
    按下按鈕「Save」即可完成設定。
    image
  4. 對 SSH 主機進行連結並登入系統
  5. 進入設定畫面
    在連線視窗按下右鍵,並選取 Change Settings…
    image
  6. 開啟 Tunnel 選項畫面
    位置是 Connection –> SSH –>Tunnels。
    image
  7. 輸入 Tunnel 設定
    Source Port 與 Destination 分別輸入 3307 與 192.168.0.20:3306。同樣的,我們選用 3307 當做 SSH Tunnel 的連結埠,以與 MySQL 預設埠號 3306 做一區別。 
    image
  8. 按下按鈕 「Add」 完成新增動作
    應可看到下列畫面
     image
  9. 完成設定
    按下按鈕「Apply」即可完成設定。
    image

進行至此,我們就可以利用 MySQL Client 端工具來進行遠端的 MySQL 連線了。後面的例子我將以 MySQL Query Browser 為例。

  1. 開啟 MySQL Query Browser
  2. 設定 MySQL 連線資訊
    Server Host 與 Port 分別填入 127.0.0.1 與 3307。此外,請填入 MySQL 的帳號/密碼。
    image
  3. 進行連線
    按下按鈕「OK」就可以連線到遠端的 MySQL 資料庫。雖然畫面上顯示是本機的 IP (127.0.0.1),但是實際上卻是連到遠端站台的資料庫主機,也就是 192.168.0.20。
    image
  4. 確認 MySQL 的權限
    因為 MySQL 的權限會根據帳號以及登入 IP 的不同而改變,所以需要特別注意原本的權限設定。以上述的例子而言,登入的 IP 會是 192.168.0.10,也就是 SSH 主機的內部網段 IP。如果有所不確定,可透過 MySQL 指令 show full processlist 來確認連結的帳號與 IP。也就是說,在這個作法下內部網路的資料傳輸是沒有經過加密的

利用 Putty 的 SSH Tunnel 功能,我們就可以在 Windows 下利用各式各樣的管理工具來操作 MySQL 資料庫,而且不用再擔心資料外洩的問題。

About