Raspberry Pi 的應用 - 可以隱藏上網足跡的 Tor 洋蔥路由器

by 5月 23, 2014 0 意見        

「凡走過,必留下痕跡」,這句話不僅限於真實世界,在網際網路上更是如此,曾經連線過的站台都會被存在瀏覽器的歷史記錄裡,別以為這些紀錄就只有存在我們自己的電腦,凡是所有封包必須流經過的網路設備及伺服器,全部都知道「你曾經來過」的這回事。

害怕被 查水表 嗎? 不想 被自殺 嗎 ??? 那麼,你就要確實的保護,以及隱藏好自己的身份。

最後更新日期 - 2015/01/26


簡介


洋蔥路由器,簡稱 Tor (The Onion Router),官方網站是 https://www.torproject.org/,透過建立重重的虛擬通道來提高網際網路通訊的安全性及隱私保護,如同洋蔥一層一層的包裹核心資料,它的工作原理可參考 Tor 官方的介紹


事前準備


開始安裝


直接從 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) 的連線。
  • 在被隔離的環境裡執行服務。

系列文章


參考資料


更新紀錄

  • 2014/05/23 撰文。
  • 2015/01/20 修正內容。
  • 2015/01/26 加入安裝過程的畫面截圖,並加入測試結果的畫面。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

0 意見 :

張貼留言