如果您在某些網站上看到大量的橫幅廣告,您就會知道,如果沒有虛擬私人網路(VPN),駭客將迅速侵入您的計算機,甚至可能會造成更大的損失。雖然這聽起來有些誇張,但實際上,使用VPN的原因主要有兩個。您當然可以付費購買服務,但如果您可以透過SSH存取互聯網公共計算機,您也可以無需額外費用自行設定VPN服務。
什麼是VPN?
VPN(虛擬私人網路)的基本思想是,您連接到另一個網路上的遠端計算機,這樣所有的網路流量看起來就像是來自於該網路的本地流量。這種方式可以幫助您繞過或增強安全性。例如,您可能想要在不將網路印表機暴露於公共網路的情況下,直接列印檔案。即使您在咖啡店,也可以透過VPN連接到您的網絡,像在辦公室一樣進行列印,同時在咖啡店的WiFi上,您的流量也會被加密。
使用VPN的兩大理由
-
提升安全性
在公共場所使用WiFi時,VPN可以幫助您保護個人訊息,並防止駭客攻擊。 -
隱匿位置
如果您想觀看BBC的影片但居住在厄瓜多爾,您可以透過VPN連接到英國的網絡,這樣就不會被限制存取。
使用SSH建立VPN
使用SSH進行VPN連線可以滿足以上兩種需求。儘管如果您主要關注第一個原因,使用專用路由器或小型電腦(如Raspberry Pi)可能更合適,但如果您正在租用某個伺服器,這種方法將非常有效。
前提條件
您只需具備對兩台機器的root存取權限,並在遠端機器上安裝SSH伺服器以及SSH客戶端。兩邊都需要進行一些配置。如果您使用KDE,可以使用NetworkManager來設置,雖然這並不是必要的。
在伺服器端,您需要在/etc/ssh/sshd_config中設定PermitTunnel=yes ,並可能需要將AllowTCPForwarding設定為yes。防火牆也可能需要進行一些調整。
客戶端設定
如果您使用NetworkManager,您需要安裝對應的插件。對於Debian類型的發行版,可以找到network-manager-ssh包,這就是您需要的全部。如果不想使用插件,可以使用以下命令:
bash
ssh -f -v -o Tunnel=point-to-point -o ServerAliveInterval=10 -o TCPKeepAlive=yes -w 100:100 root@YOUR_SSH_SERVER \
'/sbin/ifconfig tun100 172.16.40.1 netmask 255.255.255.252 pointopoint 172.16.40.2' && \
/sbin/ifconfig tun100 172.16.40.2 netmask 255.255.255.252 pointopoint 172.16.40.1
您需要在兩端都以root身分執行此操作,因為您正在建立一個隧道裝置。
常見問題
現代系統通常不允許使用密碼進行root登錄,您需要先解決這個問題。此外,當NetworkManager執行SSH時,它會以root身分尋找主機金鑰,而不是您的使用者身分。如果找不到相關訊息,它將會失敗。
若要允許root登入伺服器,您需要編輯/etc/ssh/sshd_config ,將PermitRootLogin設定為yes。在完成下一步後,建議您將其變更回PermitRootLogin prohibit-password 。
總結
完成上述步驟後,如果您使用NetworkManager插件,只需建立一個新連接,選擇VPN連接部分並選擇SSH。填寫所需的參數,包括用於登入遠端電腦的憑證。儲存連線後,您可以像使用其他網路介面一樣啟動它。
如果您想檢查VPN是否正常運作,可以造訪一個網站查看您的IP位址,然後啟動VPN,再次查看。如果連線出現問題,可以查看系統日誌以尋找SSH拋出的錯誤訊息。
結論
雖然有其他VPN解決方案,但由於幾乎可以肯定您的遠端電腦上安裝了SSH伺服器,因此這種方法設定起來非常簡單,幾乎不需要額外的計劃。只要掌握一些技巧,您就可以利用SSH完成更多操作,包括文件掛載等。
如果您正在尋找快速、可靠的VPN解決方案,建議您考慮使用SSH建立VPN連接,既經濟又實用。