我目前正在嘗試在個人 VPS 上設定 OpenVPN,主要透過過度限制的防火牆進行連線。當透過合理的防火牆連線使用時,下面提到的所有設定都可以工作。
我努力了:
- 在標準連接埠上執行的 OpenVPN
- OpenVPN 在連接埠 443 上運行(我從 VPS 上的命令列手動啟動 OpenVPN,看到伺服器幾乎立即報告連接已關閉,我認為這是防火牆上 DPI 的結果)
- STunnel 運行在連接埠 443 上,用於存取 OpenVPN 並規避 DPI。這是最成功的,在連接被強制關閉之前,允許透過 VPN 進行連接和互聯網訪問約 10-20 秒。
我還有什麼可以嘗試的嗎?
答案1
連接在一段時間後被切斷有時表示每秒位元組數類型的限制。試試看減慢 VPN 連線速度是否有效。另外,如果您為 UDP 設定了 OpenVPN,請嘗試 TCP(443 UDP 可能會被阻止,而 443 TCP 可能不會被偵測到)。
造訪使用 SSL 的知名網站並檢查憑證。然後在家裡做同樣的事情。如果它們不匹配,則您的位置正在使用透明的 HTTPS SSL 代理,並且實際上可以看到您的 HTTPS 流量。
可能不是連接埠 443 的某些內容沒有受到如此密切的監視。嘗試22。
這可能聽起來很愚蠢,但嘗試透過連接埠 80 執行此操作,看看會得到什麼。您也可以嘗試在您和 VPS 之間設定 HTTP 隧道,使流量看起來像 HTTP 請求。
如果你感覺瘋狂,請嘗試碘。
答案2
我想我知道為什麼 stunnel 方法會這樣。這是因為您網路為 stunnel 伺服器設定了「靜態路由」。讓我解釋一下。當您連接到 openvpn 伺服器時,它會變更您的路由表並透過 vpn 路由所有封包(openvpn 封包除外)。實際上 openvpn 將為您的伺服器 IP 位址新增一條路由。但是,當您使用stunnel 連接到您的openvpn 伺服器時,您會將openvpn 連接到環回接口,並且在您的VPN 之外沒有到您的伺服器的路由,因此stunnel 封包想要傳送到伺服器,它們將發送到您的VPN,而您的VPN 封包將發送到您的VPN。
因此,您需要新增一條到您的伺服器 IP 的路由,該路由位於您的 VPN(您的家庭路由器)之外。
對於方法連接埠 443 的問題,我想說也許您的防火牆使用 SPI 或 DPI,並且可以輕鬆地從 https (ssl) 封包產生不同的 openvpn 封包。所以最好的方法是使用 stunnel,或者如果防火牆阻止 ssl 封包,最好使用 obfsproxy 或 fteproxy 來繞過它。
(我知道這篇文章已經過時了,但我幾週來一直在尋找相同問題的答案,所以我想分享我學到的東西)
答案3
Reza Askari 的回答正是第三個問題的答案。我的 Linux 電腦和 Android 上都發生過這種情況。
在電腦上,在透過以下方式連接到 OpenVPN 之前
sudo openvpn --config configFile.ovpn
您應該新增一條規則以從 OpenVPN 隧道中移除 stunnel 伺服器。
sudo /sbin/ip route add stunnel_ip via default_gateway_ip
然後連接到您的 OpenVPN 伺服器。完成後,您可以透過以下方式刪除該規則:
sudo /sbin/ip route del stunnel_ip
為了讓事情變得更簡單,這樣你就不會忘記,建立一個 shell 腳本來新增規則並執行 OpenVPN,當 OpenVPN 退出時,規則將被刪除:
sudo /sbin/ip route add stunnel_ip via default_gateway_ip
sudo openvpn --config configFile.ovpn
sudo /sbin/ip route del stunnel_ip
在 Android 上,使用「Arne Schwabe」的「OpenVPN for Android」用戶端和「Balint Kovacs」的「SSLDroid」用戶端。
然後在 OpenVPN 用戶端中,從通過隧道的 VPN 設定檔中排除「SSLDroid」。
我很想對 Reza 的回答或評論投贊成票,但這個聲譽評分規則阻止了我。
答案4
除了 LawrenceC 的回答之外,我還想補充一點,針對慢速 loris 和源自該網路的其他「低速」DDoS 攻擊的傳出 DDoS 保護將在一段時間後強制關閉會話。
前面說過,也有可能是流量限製造成的,但還有一個原因,就是流量限制。對於當今(2021 年)的技術來說,限制每台設備的頻寬是微不足道的,並且不再使用會話超時來強制執行,但傳出DDoS 保護也可能會踢掉使用行為本質上是零星的協議發送持續資料流的會話,特別是如果流量包含的資料包要么過於統一,要么過於碎片化,無法與合法 HTTPS 會話的行為相匹配(這就是許多洪水型 DDoS 攻擊的樣子)。
近年來,狀態防火牆已經取得了長足的進步,在防止資料外洩以及我剛剛列出的 DDoS 保護的背景下,防止這種確切行為已提上議程。
今天,要在建造良好的防火牆上實現這一目標,需要的不僅僅是關於使用哪些配置的一些建議。