這裡介紹如何使用自己的 Linux 伺服器配合 SSH 加密通道,打造安全加密的代理伺服器。

現在許多的網站都沒有使用加密的連線,所以所有的資料封包在網路上都可以被輕易竊取,比較不安全。


如果想讓上網的連線更安全一些,可以用自己在外部的 Linux 伺服器,以 SSH 加密通道(SSH tunnel)打造一個代理伺服器(proxy),讓原本的上網連線可以走安全加密的通道,多一層保護。

SSH 加密通道的角色就是在使用者端與自己的 Linux 伺服器之間,架設一個安全的通道,讓原本的網路資料透過這個通道傳送出去,強化前半段的網路通訊。

SSH 加密通道(LibreOffice 原始圖檔

以下是在 Windows client 與 Linux client 中,以自己的 Linux 伺服器建立與使用加密代理伺服器的方法。

Windows Client

在 Windows 的系統上,若想建立 SSH 加密通道的話,最方便的方式就是使用 putty 這個 SSH 連線工具。
Step 1
請先從 putty 的官方網站下載軟體並執行之。
Step 2
填入自己放在外部的 Linux 伺服器位址。

填入伺服器位址

Step 3
選擇「SSH」之下的「Tunnels」設定頁面。

選擇「Tunnels」

Step 4
若要建立作為代理伺服器(proxy)用的 SSH 加密通道,首先選擇一個連接埠(port)號碼,填入「Source port」欄位,這裡我使用 8080 這個連接埠作為示範。接著在下方的選項中,點選「Dynamic」,最後按下「Add」按鈕,加入這組設定值。

設定 SSH 加密通道

Step 5
點選「Open」即可開啟 SSH 的連線,然後依照一般的 SSH 登入方式,登入自己的 Linux 系統,在登入之後不需要執行任何指令,只要把這個 SSH 連線的視窗留著即可。

點選「Open」開啟連線

這樣就把 SSH 的加密通道建立好了,接著要設定 Windows 系統上的代理伺服器設定,讓 Windows 可以透過這個 SSH 加密通道上網。

Step 6
在 Windows 10 的搜尋功能中,尋找「網際網路選項」,找到後把它開啟。

開啟「網際網路選項」

Step 7
選擇「連線」籤頁,點選「LAN 設定」。

網際網路選項

Step 8
將「自動偵測設定」取消,並將下方的 Proxy 伺服器功能打勾,並點選「進階」按鈕。(這裡的位址與連接埠請留白,不要填)

區域網路設定

Step 9
在「Socks」這一欄的位址填入 localhost,連接埠則填入剛剛上面設定的 SSH 加密通道連接埠,以這裡的例子來說就是 8080

Proxy 設定

這樣就完成所有的設定了,接下來只打開瀏覽器(例如 Google Chrome 或 Firefox 等)上網,就會自動透過 SSH 加密通道上網。

Linux Client

若要在 Linux 的 client 上建立 SSH 的加密通道可以使用以下的指令:

ssh -D 8080 user@my.host.org

其中 -D 參數所附帶的 8080 就是開在本機的連接埠號,登入時就跟一般的 SSH 遠端登入一樣輸入帳號與密碼,登入之後不需要執行任何指令,只要保留這個 SSH 的連線即可。

接著調整系統上的代理伺服器設定,以 Ubuntu Linux 來說,先在系統設定值中,選擇「網路」。

系統設定值

然後在「Socks 主機」的部份填入 localhost,連接埠則填入自己設定的值。

網路設定

設定好之後,關閉瀏覽器再重新打開,這樣即可透過 SSH 加密通道上網了。

要設定系統的代理伺服器,除了圖形介面之外,也可以手動直接更改 /etc/environment 這個設定檔,加入以下這一行設定:

socks_proxy="socks://localhost:8080/"

不管是使用圖形介面來設定,還是直接更改系統設定檔,效果都相同。

如果不想更改整個系統的代理伺服器設定,也可以直接修改瀏覽器的代理伺服器設定,以下是 Firefox 的設定範例:

Firefox 代理伺服器設定