今天的 Tetralet 又在唧唧喳喳了



« 四月 2017 »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30






 

在 Internet 上隱匿行蹤!(十五) - 架設 Tor Server!

Tetralet | 25 元月, 2007 05:01

要在 GNU/Linux 上架設 Tor Server 絕非難事 - 您只要修改 Tor 的設定檔、並設定好防火牆讓 Tor 能夠連線,然後重新啟動 Tor 即可。

但當 Tor 使用者利用 Tor 上 Internet 時,所被記錄的 IP 其實是用來當作出口點(exit node)的 Tor Server 的。這將可能會替 Tor Server 的架設者帶來不必要的麻煩。如果您想架設 Tor Server,建議您先閱讀以下資訊:

Legal FAQ for Tor Server Operators

而或者,您可以指定您的 Tor Server 只願當中繼點而不要做出口點。

編輯 /etc/tor/torrc

Tor Server 的設定檔為 /etc/tor/torrc。您可以修改它讓 Tor Server 能符合您的需求。例:

指定您的 Server 的基本資料

## Required: A unique handle for this server
# 指定 Server 的暱稱
Nickname Luna

## The IP or fqdn for this server. Leave commented out and Tor will guess.
#Address noname.example.com
# 指定 Server 的完整網域名稱
Address tor.luna.com.tw

## Contact info that will be published in the directory, so we can
## contact you if you need to upgrade or if something goes wrong.
## This is optional but recommended.
## You might also include your PGP or GPG fingerprint if you have one:
#ContactInfo 1234D/FFFFFFFF Random Person <nobody AT example dot com>

# 指定該 Server 的聯絡人
ContactInfo Tetralet <tetralet AT gmail dot com>

指定所監聽的 Port

Tor 會監聽兩個 Port:

  • ORPort:Tor Server 用的連接埠

  • DirPort:Tor Directory Server 用的連接埠(非必要)

一般而言我們會建議將 ORPort 及 DirPort 設定為 80/443,以便能讓那些位於管制嚴密的防火牆內部的使用者還是可以利用這兩個最常用的連接埠和 Onion Routing 連線。但在 GNU/Linux 上,多半不會以 root 來執行 Tor Server,(例如在 Debian 上就是以 debian-tor 這個帳號來啟動 Tor 的),所以在此情況下 Tor Server 是無法 bind 在 80/443 埠上的。取而代之的,您可以公告您的 Tor Server 正在監聽 80/443 埠,但還是指定 Tor Server 監聽任意 1024 以上的連接埠,然後用 iptables 來進行轉埠:

## Required: what port to advertise for tor connections
# 公告正在監聽的 Port
ORPort 9001
## If you want to listen on a port other than the one advertised
## in ORPort (e.g. to advertise 443 but bind to 9090), uncomment
## the line below. You'll need to do ipchains or other port forwarding
## yourself to make this work.
# 指定真正在監聽的 Port。(非必要)
# 如果您的機器沒有執行 HTTPS Server,
# 您可以公告您用的是 443 Port,
# 並用 iptables 將
443 連線轉至這個 Port 上。
# ORPort 443
# ORListenAddress 0.0.0.0:9001

## Uncomment this to mirror the directory for others. Please do
## if you have enough bandwidth: see the bottom of
## http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#LimitBandwidth
# 公告您要做為 Dirtory Server,以及監聽的 Port(非必要)
DirPort 9030 # what port to advertise for directory connections
## If you want to listen on a port other than the one advertised
## in DirPort (e.g. to advertise 80 but bind 9091), uncomment the line
## below. You'll need to do ipchains or other port forwarding yourself
## to make this work.
# 指定真正在監聽的 Port。(非必要)
# 如果您的機器沒有執行 HTTPS Server,
# 您可以公告您用的是 80 Port,
# 並用 iptables 將 80
連線轉至這個 Port 上。
# DirPort 80
# DirListenAddress 0.0.0.0:9030

設定 exit policy(出口政策)

就如前言所說,當使用者利用 Tor 上 Internet 時,所被記錄的 IP 其實是用來當作出口點(exit node)Tor Server 的。而這的確會讓人不太舒服。您可以指定您只願當中繼點而不要做出口點:
## A comma-separated list of exit policies. They're considered first
## to last, and the first match wins. If you want to _replace_
## the default exit policy, end this with either a reject *:* or an
## accept *:*. Otherwise, you're _augmenting_ (prepending to) the
## default exit policy. Leave commented to just use the default, which is
## available in the man page or at http://tor.eff.org/documentation.html
##
## Look at http://tor.eff.org/faq-abuse.html#TypicalAbuses
## for issues you might encounter if you use the default exit policy.
##
## If certain IPs and ports are blocked externally, e.g. by your firewall,
## you should update your exit policy to reflect this -- otherwise Tor
## users will be told that those destinations are down.
##
#ExitPolicy accept *:6660-6667,reject *:* # allow irc ports but no more
#ExitPolicy accept *:119 # accept nntp as well as default exit policy
ExitPolicy reject *:* # middleman only -- no exits allowed

若您不在乎惹上什麼麻煩,您可以將您的 Tor Server 設定為出口點。其建議設定如下:
# ExitPolicy reject 0.0.0.0/8 # Reject non-routable IP's requests
# ExitPolicy reject 169.254.0.0/16 # Reject non-routable IP's requests
# ExitPolicy reject 127.0.0.0/8 # Reject non-routable IP's requests
# ExitPolicy reject 192.168.0.0/16 # Reject non-routable IP's requests
# ExitPolicy reject 10.0.0.0/8 # Reject non-routable IP's requests
# ExitPolicy reject 172.16.0.0/12 # Reject non-routable IP's requests
# ExitPolicy reject *:25 # Reject SMTP for anti-spam purposes
# ExitPolicy reject *:119 # Reject NNTP (News Network Transfer Protocol)
# ExitPolicy reject *:135-139 # Reject NetBIOS (File sharing for older versions of windows)
# ExitPolicy reject *:445 # Reject Microsoft-DS (a.k.a NetBIOS for newer NT versions)
# ExitPolicy reject *:1214 # Reject Kazaa
# ExitPolicy reject *:4661-4666 # Reject eDonkey network
# ExitPolicy reject *:6346-6429 # Reject Gnutella networks
# ExitPolicy reject *:6699 # Reject Napster
# ExitPolicy reject *:6881-6999 # Reject (Dark Star) deltasource & Bittorent network
# ExitPolicy accept *:* # Accept the rest of 65535 possible ports

ExitPolicy
reject 0.0.0.0/8,reject 169.254.0.0/16,reject 127.0.0.0/8,reject 192.168.0.0/16,reject 10.0.0.0/8,reject 172.16.0.0/12,reject *:25,reject *:119,reject *:135-139,reject *:445,reject *:1214,reject *:4661-4666,reject *:6346-6429,reject *:6699,reject *:6881-6999,accept *:*
而在您的 Tor Server 啟動之後,您的 Server 的資料將會出現在 Vidalia 的伺服器列表裡:
上線中的 Tor Server
而同時,您的資料將會出現在 /var/lib/tor/cached-routers 裡。另外,/var/lib/tor/keys/secret_id_key 為您的身份密鑰,如果您的 Tor Server 在日後進行軟體昇級或是移機時將會用得著,請妥善保存並注意不要輕易洩露給任何人。

限定頻寬:

由於我們很可能無法讓所有的頻寬都給 Tor Server 使用,所以您可能會希望進行頻寬的控管:
## BandwidthRate is the maximum long-term bandwidth allowed (bytes per second).
# 平均頻寬
BandwidthRate 20 KB


## BandwidthBurst is a pool of bytes used to fulfill requests during short
## periods of traffic above BandwidthRate but still keeps the average over a
## long period to BandwidthRate. A low Rate but a high Burst enforces a
## long-term average while still allowing more traffic during peak times if
## the average hasn't been reached lately.
# 瞬間最高可用頻寬
BandwidthBurst 30 KB

設定 iptables 規則

在設定好 /etc/tor/torrc 後,您可能要更改您的防火牆的設定,讓 Tor Server 可以對外通連。例如:
ServerIP=11.22.33.44

iptables -A INPUT -i eth1 -p tcp -d $ServerIP --dport 9001 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -d
$ServerIP --dport 9030 -j ACCEPT
如果您公告了您所使用的是 80 和 443 Port,並想用 iptables 來進行轉 Port,您可以替而設定如下:
ServerIP=11.22.33.44

iptables -t nat -A PREROUTING -i eth1 -p tcp -d
$ServerIP --dport 443 -j REDIRECT --to-ports 9001
iptables -t nat -A PREROUTING -i eth1 -p tcp -d
$ServerIP --dport 80 -j REDIRECT --to-ports 9030
iptables -A INPUT -i eth1 -p tcp -d
$ServerIP --dport 9001 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -d
$ServerIP --dport 9030 -j ACCEPT
而如何設定良好的 iptables 規則不在本文的範圍之內,在此就略過不介紹了。

啟動 Tor Server

請下達:
/etc/init.d/tor restart
就可以以新的設定重新啟動 Tor Server 了。請觀察 /var/log/tor/log 裡的內容是否有類似以下的訊息:
# 找到 Tor 的識別碼
Jan 14 23:46:44.164 [notice] Your Tor server's identity key fingerprint is 'Lunar 257E 615A D357 019C B4FC 471A 7C04 4A7D 31DF 9E14'

# 自我測試所設定的 Tor Directory Server 的 Port 是否可以通連
Jan 14 23:46:56.129 [notice] router_dirport_found_reachable(): Self-testing indicates your DirPort is reachable from the outside. Excellent.

# 自我測試所設定的 Tor Server 的 Port 是否可以通連
Jan 14 23:47:28.256 [notice] router_orport_found_reachable(): Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.
如果有,就大功告成了。您的 Tor Server 會在極短的時間內成為 Onion Routing 的一員,然後位於世界各地的 Tor 使用者就會藉由您的機器進行匿名通訊了。

在 Tor Server 上線後,您會發現您的 Tor Server 會異常忙碌,因為現今上線中的 Tor Server 約只有 1,000 台,但使用者卻至少有數萬甚至數十萬以上,如此僧多粥少的狀況使得每台 Tor Server 其頻寬往往都是滿載。但由於在台灣的網路環境裡,ADSL 的上傳頻寬實在低得可憐,所以只能說各盡其力了。

參考資訊:

Configuring a Tor server

Configuring Hidden Services for Tor

How to Run a Secure Tor Server

(待續)
迴響
authimage
驗證碼皆為英文大寫字母
僅輸入前4碼即可。後2碼是假的,欺敵用。
這是為了防制 Spam 而設計的。若造成您的不便還請見諒!
Accessible and Valid XHTML 1.0 Strict and CSS
Powered by LifeType - Design by BalearWeb