「凡走過,必留下痕跡」,這句話不僅限於真實世界,在網際網路上更是如此,曾經連線過的站台都會被存在瀏覽器的歷史記錄裡,別以為這些紀錄就只有存在我們自己的電腦,凡是所有封包必須流經過的網路設備及伺服器,全部都知道「你曾經來過」的這回事。
害怕被 查水表 嗎? 不想 被自殺 嗎 ??? 那麼,你就要確實的保護,以及隱藏好自己的身份。
最後更新日期 - 2015/01/26
簡介
洋蔥路由器,簡稱 Tor (The Onion Router),官方網站是 https://www.torproject.org/,透過建立重重的虛擬通道來提高網際網路通訊的安全性及隱私保護,如同洋蔥一層一層的包裹核心資料,它的工作原理可參考 Tor 官方的介紹。
事前準備
- Raspberry Pi Type B、B+,Type A / A+ 無法實作,除非一次安裝兩張網卡。
- Raspbian 作業系統。
- USB 無線網卡,這裡用的是 Edimax EW-7811Un。
- 內建的 Ethernet 為 eth0 負責對外連線,而外接的 Wireless 為 wlan0 負責對內連線。
- 請按照 Raspberry Pi 的應用 - Wi-Fi 無線基地台,完成路由模式的功能。
- 按照 Raspberry Pi 的實作 - 自動配置 IP 位址資訊的 DHCP Server 建置 DHCP Service 時,請安裝 Dnsmasq 套件,不可以選擇 udhcpd 套件。
開始安裝
直接從 Raspbian 官方套件庫安裝就可以了。
sudo apt-get -y install tor
若要安裝最新版本,目前穩定版版號為 0.2.5.10,可以到 Tor 官網下載,再自行編譯與安裝。
修改主設定檔
我們必須修改設定值,才能讓 Tor 服務配合 hostapd 運作,詳細的說明請參閱 Tor Project: manual 官網的說明。。
sudo vi /etc/tor/torrc
在設定檔的最下面加入這些內容。
TransPort 可以自訂,只要千萬別忘了也要修改 iptables 的設定值。
TransListenAddress 與 DNSListenAddress 的 IP 位址就是 Raspberry Pi 的本機 IP。
########## 我是分隔線 ##########
Log notice file /var/log/tor/notices.log
ExitPolicy reject *:*
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9999
TransListenAddress 192.168.0.1
DNSPort 53
DNSListenAddress 192.168.0.1
########## 我是分隔線 ##########
修改 iptables 的規則
我們調整一下 iptables 的設定,讓使用者不用做任何設定,只要透過 Raspberry Pi 的 Wi-Fi 上網,就可以直接受到 Tor 的保護。
sudo iptables -F
sudo iptables -F -t nat
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9999
sudo bash -c 'iptables-save > /etc/network/iptables.tor'
sudo iptables-restore < /etc/network/iptables.tor
ipabltes 的規則會變成這樣子,而額外設定 Port 22 及 Port 53 是因為要讓 SSH、DNS 封包直接讓 Raspberry Pi 處理,不透過 Tor。
啟動服務
設定完成後,就可以啟動服務。
sudo service tor restart
順使設定成開機後自動啟動。
sudo update-rc.d tor defaults
再修改一下開機時的自動啟動巨集,把 iptables 規則的設定檔換掉,讓原本僅適用 hostapd 的規則,改成適用於 Tor 的規則。
sudo vi /etc/rc.local
把「sudo iptables-restore < /etc/network/iptables」換成「sudo iptables-restore < /etc/network/iptables.tor」。
這樣子做有另一個好處,如果不想用 Tor 的話,只要在這裡把 iptables 的規則換掉,可以直接還原回普通 Wi-Fi 無線基地台的功能。
連線實測
這裡我們用 iPhone 做為 Tor 的 Client 來測試。
首先要透過 Wi-Fi 連上 Raspberry Pi 的 SSID。
確認已取得 IP 設定值。
打開Safari,連上 http://ip-detect.net/,畫面上就會出現我們的 Public IP。
重新連上一次 Raspberry Pi 的 Wifi,這時候會發現一件事,IP 不一樣了。
這個就是 Tor 的功勞,讓別人無法追蹤到我們的來源地點。
資訊安全的再強化
請參閱 Tor Wiki - How to Run a Secure Tor Server 的說明。
- 安裝 cryptsetup 套件,將普通分割區及 SWAP 分割區加密。
- 定期更新系統套件。
- 注意實體的資訊安全。
- 關閉不必要的服務及使用者帳號。
- 留心 LOG 資料的保存時限。
- 從可靠的來源安裝套件。
- 阻擋 BT (Bit-Torrent) 的連線。
- 在被隔離的環境裡執行服務。
系列文章
- Raspberry Pi 的基礎 - 使用 Wi-Fi 無線網卡連上網路
- Raspberry Pi 的應用 - Wi-Fi 無線基地台
- Raspberry Pi 的應用 - 可以隱藏上網足跡的 Tor 洋蔥路由器
- Raspberry Pi 的應用 - 加快上網速度的 Squid 快取伺服器
參考資料
- Adafruit:Onion Pi - make a Raspberry Pi into a Anonymizing Tor Proxy!
- 維基百科:Tor
- Tor Project - Running the Tor client on Linux/BSD/Unix
- Tor Project - Configuring a Tor relay on Debian/Ubuntu
- instructables - Raspberry Pi Tor relay
- 今天的 Tetralet 又在唧唧喳喳了 - 在 Internet 上隱匿行蹤!(十五) - 架設 Tor Server!
更新紀錄
- 2014/05/23 撰文。
- 2015/01/20 修正內容。
- 2015/01/26 加入安裝過程的畫面截圖,並加入測試結果的畫面。
0 意見 :
張貼留言