Tor
Tor 是一個開源實現,第二代洋蔥路由匿名代理網絡,提供免費訪問。其首要目標是通過對流量分析攻擊保護,使網上的匿名性。
介紹[編輯 | 編輯原始碼]
使用Tor網絡在他們的機器上運行洋蔥代理。這個軟體向外連接到Tor,定期的通過Tor網絡連接一個虛擬的電子迴路。Tor在一個分層方式採用加密(因此有了『洋蔥』的比喻),確保路由器之間的完全保密。 同時, 洋蔥代理伺服器軟體,向客戶端提出了SOCKS接口。SOCKS監聽程序是Tor的特點,通過Tor的虛擬電路的流量,然後復。
通過這個過程洋蔥代理將會管理終端用戶的匿名網絡流量。它通過加密流量來保持用戶的匿名, 通過Tor的其他節點來發送信息,在發送信息到你指定的伺服器之前解密。雖然Tor相對的來說比一般的使用DNS目錄連接安全(例如:沒有使用代理), 由於大量的數據加密所以它相對來說比較慢。 此外,盡Tor阻止了流量分析但是Tor不能阻Tor網絡邊界流量的確認。(例如:例如流量進入或者退出網絡)。
Wikipedia:Tor (anonymity network)
安裝[編輯 | 編輯原始碼]
此外,還可以安裝 Qt 前端 vidaliaAUR。除了控制 Tor 進程外,Vidalia 可以查看 Tor 的配置和狀態、監控帶寬使用並查看、過濾和搜索日誌信息。
配置[編輯 | 編輯原始碼]
為了更好的理解Tor/etc/tor/torrc
配置文件. 配置選項在 man tortor(1)和Tor website有介紹.
默認配置應該能夠很好的為大多數Tor用戶服務除了哪些是用Vidalia的用戶, Vidalia是一Tor的圖形界面。 在AUR有可用包vidaliaAUR。除了控制過程中的Vidalia允許您查看Tor狀態監視帶寬使用情況,查看,過濾,搜索日誌消息;和配置Tor的某些方面。
使用TOR_MAX_FD
變量,您可以設置自定義文件為Tor的描述ulimits/etc/conf.d/tor
。
默認情況下的Tor記錄在日誌級別的通知「STDOUT」。如果你能夠記錄在自己的文件torrc
, 他們默認為 /usr/local/var/log/tor/
.
用法[編輯 | 編輯原始碼]
可以通過命令行或 vidalia 等圖形程序啟動 Tor.
要永久連接,可以啟動 tor daemon 並將其加入 DAEMONS
數組。
程序配置成實驗 127.0.0.1 或 localhost 作為 SOCKS5 代理就可以使用 Tor,埠要設置成 9050 (Tor 標準設置) 或 9051 (用 vidalia標準配置).
訪問 Tor、Harvard[失效連結 2021-05-17 ⓘ] 或 Xenobite.eu 可以檢查 Tor 是否正確運行。
網頁瀏覽[編輯 | 編輯原始碼]
Tor主要支持Firefox,但是也支持Chromium。
Firefox[編輯 | 編輯原始碼]
如果你使用Firefox, 你可以安裝這個插件: TorButton。這將允許你很容易地在Tor的網絡和正常網絡切換。
如果你正在使用多代理(例如:如果你想使用 TOR 和 "ssh -D") 也有一個插件叫作 "FoxyProxy" 他允許你對於不同網址或者全部網址指定多個代理。只需將它指向localhost上的埠8118(polipo運行中)。
為了測試他, 在你的瀏覽器打開或者關閉Tor瀏覽這個網址this website。 更多信息請查看這個網址the official doc。
Chromium[編輯 | 編輯原始碼]
當你使用Tor和Chromium時不需要polipo。只需要簡單的運行Tor daemon,
然後運行:
$ chromium --proxy-server="socks://localhost:9050"
即時通信[編輯 | 編輯原始碼]
要讓即時通信程序使用 Tor,並不需要 polipo/privoxy 等 http 代理。直接使用 tor 守護進程監聽的埠 9050 即可。
Pidgin[編輯 | 編輯原始碼]
通過 preferences -> proxy 進入編輯,設置為:
Proxy type SOCKS5 Host 127.0.0.1 Port 9150
之後 pidgin 會使用 Tor 進行通信。有時根據不同帳號的 IM 服務配置,需要修改代理設置。在 Accounts -> Manage Accounts 中選擇要修改的帳號,在 Proxy 標籤頁中選擇:
Proxy type Use Global Proxy Settings
Irssi[編輯 | 編輯原始碼]
Freenode 不推薦使用 Irssi 和 Privoxy。他們推薦 mapaddress
方式,通過運行 torify irssi
啟動。將下行加入 /etc/tor/torrc
:
mapaddress 10.40.40.40 p4fsi4ockecnea7l.onion
Freenode 需要 charybdis 和 ircd-seven 的 SASL 機制在連接時進行 nickserv 確認。從 Freenode 網站(即 https://web.archive.org/web/20150423190608/http://www.freenode.net/sasl/cap_sasl.pl) 下載啟用 SASL 的 cap_sasl.pl
,保存到 ~/.irssi/scripts/cap_sasl.pl
用 pacman 安裝需要的 perl 模塊和 AUR 中的 perl-crypt-dhAUR[損壞的連結:package not found].
$ pacman -S perl-crypt-openssl-bignum perl-crypt-blowfish
也可以通過 perl 直接安裝:
$ perl -MCPAN -e 'install Crypt::OpenSSL::Bignum Crypt::DH Crypt::Blowfish'
啟動 irssi
$ torify irssi
加載使用 SASL 機制的腳本:
/script load cap_sasl.pl
將身份設置到 nickserv,連接時會讀取這個值,支持的機制是 PLAIN 和 DH-BLOWFISH。
/sasl set <network> <username> <password> <mechanism>
連接到 Freenode:
/connect -network <network> 10.40.40.40
如果遇到問題,請訪問 Arch 論壇上的 Cannot Connect to Freenode IRC using Irssi & Tor。
外部連結[編輯 | 編輯原始碼]
使用 HTTP 代理[編輯 | 編輯原始碼]
如果你需要一個 HTTP 代理。
Privoxy[編輯 | 編輯原始碼]
Privoxy 是一個 HTTP 代理,它使用 SOCKS4a 代理進行 html/cookie 過濾。可以安裝 Privoxy 文章安裝。
在Firefox使用Tor 和 Privoxy[編輯 | 編輯原始碼]
最簡單的方法就是使用Torbutton 擴展。
或者, 你可以使用Foxyproxy。然後重啟Firefox你就會發現一個新的工具條。 點Add, 選Standard proxy type. 選 你要的Proxy Label , 例如Tor。進入「HTTP Proxy」和「SSL Proxy」區域:
Hostname: 127.0.0.1 Port: 8118
然後Firefox將會用代理連接。你也可以在No Proxy for 添加例外。
現在,返回 https://whatsmyip.net/ 檢查你的ip地址是否和以前不同了。
在其他程序使用Tor 和Privoxy[編輯 | 編輯原始碼]
你可以在像即時通信, Jabber, IRC,等軟體使用這個方法。
你可以指定代理(127.0.0.1 port 8118)在那些支持HTTP代理的軟體裡面。
如果使用SOCKS 代理,你可以指定你的程序到Tor (127.0.0.1 port 9050)。用這種方法的一個問題是,雖然自己做DNS解析的應用程式可能會洩漏信息。
你可以考慮使用Socks4A (e.g. via privoxy)來取代他。
運行Tor 服務[編輯 | 編輯原始碼]
配置[編輯 | 編輯原始碼]
你的帶寬必須至少20kb/s:
Nickname <tornickname> ORPort 9001 BandwidthRate 20 KB # Throttle traffic to 20KB/s BandwidthBurst 50 KB # But allow bursts up to 50KB/s
允許 Irc 在 6660-6667 埠輸出:
ExitPolicy accept *:6660-6667,reject *:* # Allow irc ports but no more
Tor 作為輸出節點:
ExitPolicy accept *:119 # Accept nntp as well as default exit policy
Tor 作為中間人:
ExitPolicy reject *:*
運行 Tor 橋[編輯 | 編輯原始碼]
根據 https://2019.www.torproject.org/docs/bridges ,將 torrc 修改為:
SocksPort 0 ORPort 443 BridgeRelay 1 Exitpolicy reject *:*
如果在啟動時出現如下錯誤:
Could not bind to 0.0.0.0:443: Permission denied errors on startup
需要選擇一個更高的 ORPort (例如 8080) 或者在路由器中 轉發埠。
TorDNS[編輯 | 編輯原始碼]
Tor 0.2.x系列提供了一個內置的DNS轉發器。在Tor配置文件添加如下文件來啟動它。
/etc/tor/torrc
DNSPort 9053 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion
然後重新啟動 Tor 來加載更新過的配置文件:
/etc/rc.d/tor restart
這將讓Tor接受DNS請求(在這個例子裡面監聽著9053埠)。並通過Tor網絡域名。一個缺點是,它是僅能夠解決一個記錄的DNS查詢; MX 和NS 請求沒有回應。
更多信息請查看 Debian-based introduction。
DNS查詢,也可以通過命令行tor-resolve
來查詢。例如:
$ tor-resolve archlinux.org 66.211.214.131
Torsocks[編輯 | 編輯原始碼]
torsocks包 will allow you use an application via the Tor network without the need to make configuration changes to the application involved. From the man page:
torsocks is a wrapper between the torsocks library and the application in order to make every Internet communication go through the Tor network.
Usage example:
$ torsocks elinks checkip.dyndns.org $ torsocks wget -qO- https://check.torproject.org/ | grep -i congratulations
Torify[編輯 | 編輯原始碼]
torify
允許你的程序不需要更改配置來通過訪問Tor網絡。
man page:
torify is a simple wrapper that calls tsocks with a tor specific configuration file. tsocks itself is a wrapper between the tsocks library and the application that you would like to run socksified
使用例子:
$ torify elinks checkip.dyndns.org $ torify wget -qO- https://check.torproject.org/ | grep -i congratulations
Torify 不會通過Tor網絡來查詢DNS。其中一種解決方法就是和tor-resolve
來解決(前文所述)。在這種情況下, 上面的例子程序將像這樣
$ tor-resolve checkip.dyndns.org 208.78.69.70 $ torify elinks 208.78.69.70
問題解決[編輯 | 編輯原始碼]
User value的問題[編輯 | 編輯原始碼]
如果tor daemon啟動失敗,你可以在root環境下運行一下命令(或者使用sudo)
# tor
如果你收到以下 error
May 23 00:27:24.624 [warn] Error setting groups to gid 43: "Operation not permitted". May 23 00:27:24.624 [warn] If you set the "User" option, you must start Tor as root. May 23 00:27:24.624 [warn] Failed to parse/validate config: Problem with User value. See logs for details. May 23 00:27:24.624 [err] Reading config failed--see warnings above.
它意味著你的User value有問題。通過以下的步驟解決:
運行以下命令檢查/var/lib/tor
目錄的權限
# ls -l /var/lib/
如果/var/lib/tor
權限顯示如下
drwx------ 2 tor tor 4096 May 12 21:03 tor
這意味著它被tor用戶和 tor組所擁有
通過以下命令把擁有者和組改為root, root
# chown -R root:root /var/lib/tor
如果你重新檢查權限,他現在應該顯示為
drwx------ 2 root root 4096 May 12 21:03 tor
現在打開 /etc/tor/torrc
找到以下文字
## Uncomment this to start the process in the background... or use ## --runasdaemon 1 on the command line. RunAsDaemon 1 User tor Group tor
注釋掉User tor 和Group tor, 所以他應該顯示為
## Uncomment this to start the process in the background... or use ## --runasdaemon 1 on the command line. RunAsDaemon 1 #User tor #Group tor
保存更改然後重啟tor daemon, 他應該能夠工作了
# /etc/rc.d/tor restart