這裡介紹如何使用自己的 Linux 伺服器配合 SSH 加密通道,打造安全加密的代理伺服器。
現在許多的網站都沒有使用加密的連線,所以所有的資料封包在網路上都可以被輕易竊取,比較不安全。
SSH 加密通道的角色就是在使用者端與自己的 Linux 伺服器之間,架設一個安全的通道,讓原本的網路資料透過這個通道傳送出去,強化前半段的網路通訊。
以下是在 Windows client 與 Linux client 中,以自己的 Linux 伺服器建立與使用加密代理伺服器的方法。
在 Windows 的系統上,若想建立 SSH 加密通道的話,最方便的方式就是使用 putty 這個 SSH 連線工具。
Step 1
請先從 putty 的官方網站下載軟體並執行之。
Step 2
填入自己放在外部的 Linux 伺服器位址。
Step 3
選擇「SSH」之下的「Tunnels」設定頁面。
Step 4
若要建立作為代理伺服器(proxy)用的 SSH 加密通道,首先選擇一個連接埠(port)號碼,填入「Source port」欄位,這裡我使用 8080
這個連接埠作為示範。接著在下方的選項中,點選「Dynamic」,最後按下「Add」按鈕,加入這組設定值。
Step 5
點選「Open」即可開啟 SSH 的連線,然後依照一般的 SSH 登入方式,登入自己的 Linux 系統,在登入之後不需要執行任何指令,只要把這個 SSH 連線的視窗留著即可。
這樣就把 SSH 的加密通道建立好了,接著要設定 Windows 系統上的代理伺服器設定,讓 Windows 可以透過這個 SSH 加密通道上網。
Step 6
在 Windows 10 的搜尋功能中,尋找「網際網路選項」,找到後把它開啟。
Step 7
選擇「連線」籤頁,點選「LAN 設定」。
Step 8
將「自動偵測設定」取消,並將下方的 Proxy 伺服器功能打勾,並點選「進階」按鈕。(這裡的位址與連接埠請留白,不要填)
Step 9
在「Socks」這一欄的位址填入 localhost
,連接埠則填入剛剛上面設定的 SSH 加密通道連接埠,以這裡的例子來說就是 8080
。
這樣就完成所有的設定了,接下來只打開瀏覽器(例如 Google Chrome 或 Firefox 等)上網,就會自動透過 SSH 加密通道上網。
若要在 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 的設定範例: