如何保護您的網路匿名性和隱私/TOR VPN
TOR 只發布了有關 Linux 中 VPN 模式 的說明,該模式稱為透明代理,透過 TOR 透明地路由所有網路流量。
不建議使用 Vidalia,因為它預設情況下沒有足夠的系統許可權。首先使用多種特定於發行版的其中一種方法安裝 TOR。預設情況下,TOR 作為守護程式執行,並具有 root 許可權。
例如,在 Ubuntu 中,將以下行新增到 /etc/tor/torrc
- VirtualAddrNetwork 10.192.0.0/10
- AutomapHostsOnResolve 1
- TransPort 9040
- DNSPort 53
這將指示 TOR 在埠 9040 上轉發重定向的流量,並在埠 53 上轉發域名伺服器請求。如果 TOR 對 DNS 埠的許可權不足,它將失敗。您可以透過省略 DNSPort 行來使用任何現有的 DNS 伺服器,但這不如 TOR 安全。
要重定向所有應用程式的網路流量,可以使用 Linux 防火牆 iptables
- sudo iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner bob -m tcp -j REDIRECT --to-ports 9040
- sudo iptables -t nat -A OUTPUT -p udp -m owner --uid-owner bob -m udp --dport 53 -j REDIRECT --to-ports 53
- sudo iptables -t filter -A OUTPUT -p tcp -m owner --uid-owner bob -m tcp --dport 9040 -j ACCEPT
- sudo iptables -t filter -A OUTPUT -p udp -m owner --uid-owner bob -m udp --dport 53 -j ACCEPT
- sudo iptables -t filter -A OUTPUT -m owner --uid-owner bob -j DROP
除非您的 Linux 發行版非常舊,否則這將起作用。只需要第一個命令來測試 VPN 功能,將所有網路流量重定向到埠 9040,TOR 在那裡監聽。重定向僅適用於名為 bob 的使用者。重定向後,您需要重新啟動 TOR
- /etc/init.d/tor restart
然後您可以以 bob 的身份登入並啟動瀏覽器,例如,並在任何代理測試站點上檢查您的外部 IP。
使用者 bob 可以是您自己。在這種情況下,您需要將 iptables 重置為先前狀態,以便在不需要 TOR VPN 時使用。另一種方法是在需要 TOR VPN 時以不同的使用者身份登入,其中重定向被設定為“永久”的。
重定向 DNS 埠 53 是可選的,但更安全。即使您 ISP 的觀察者也不會知道您訪問了哪些網站。其他防火牆規則會阻止其他流量,以防止洩漏。
這些規則可以儲存在 shell 指令碼中,並在需要 TOR VPN 時執行。系統重啟後將應用預設防火牆規則。要設定始終開啟 TOR VPN 的使用者,請將上述指令碼複製到(對於 Ubuntu)
- /etc/init.d/bobsvpn
為了進一步防止 DNS 洩漏,在 Ubuntu 中,您需要更改 /etc/resolvconf/run/resovl.conf 中的檔案內容為
- nameserver 127.0.0.1
這將強制所有使用者使用 TOR 作為 DNS 伺服器。更改網路設定後,有時您需要重新整理網路介面
- sudo ifdown -a
- sudo ifup -a
當然,TOR DNS 會更慢,而且您不想在不使用 TOR 時保留原始的 resolv.conf 檔案。
無法直接撤消防火牆規則。為了避免系統重啟,您可以在使用 TOR 之前儲存防火牆狀態
- sudo iptables-save > rulefile
並在使用 TOR 後恢復規則
- sudo iptables-restore < rulefile
可以向無法成為超級使用者的人授予許可權,並向指令碼授予超級使用者許可權而不詢問密碼。您只能透過以下方式編輯配置檔案
- sudo visudo
如果您犯了任何錯誤,您可能需要以 root 身份在恢復模式下重啟才能糾正它。可以將安全指令碼授予不需要 su 密碼的許可權,方法是在其中新增以下行
- bob ALL = NOPASSWD:/home/bob/bin/scriptX, /usr/bin/scriptY