■盧靜
如何用TOR搭建軟路由
■盧靜
文中介紹的方法同樣適用于Tor瀏覽器之外的其他匿名代理,但我們還是專注于介紹如何在研究環(huán)境中建立安全的Tor。
正如大多安全研究者所經(jīng)歷的,在VM(Virtual Machine虛擬機)中分析惡意軟件或者exp的時候都需要做一個重要決定,而大多數(shù)人更愿意選擇在離線環(huán)境中進行逆向,但是如果你是在監(jiān)控C&C通信或者一個exp工具包,那離線環(huán)境就不可行了。你會使用你真實的IP嗎?你會使用強迫所有東西通過tor的第三方代理工具嗎(希望沒有軟件會將你的IP泄露出去)?你會通過一個VPN運行整個系統(tǒng),然后再重新鏈接回你的所有軟件嗎?
我想出的解決方案是使用一個獨立的虛擬機創(chuàng)建一個透明的Tor代理作為路由器,而虛擬機可以用于讓所有流量通過Tor(無須額外配置或者軟件,甚至不會發(fā)現(xiàn)代理的存在)。盡管搭建路由器需要花費15分鐘左右的時間,但是一旦搭建好了之后,所有的VM根本無需任何配置就可以通過Tor進行通信了。
這里舉了一個例子,展示了使用我的(沒有任何代理)設置便可輕松通過tor連接一個全新的虛擬機上。
VM要求:
Ram——至少200MB
Disk——至少500MB
筆者使用pfSense軟件,這是一個基于FreeBSD,專為防火墻和路由器功能定制的開源軟件,你可以從官網(wǎng)上下載最新版本。盡管本文中我使用的是VMware Workstation,但是這個方法應該在大多數(shù)VM軟件中都可以使用。
1、創(chuàng)建一個新的VM,你通常會用到pfSense ISO(但是請暫時不要啟用它)。
2、進入VM設置,將網(wǎng)絡適配器設置為你通常連接互聯(lián)網(wǎng)使用的那個選擇(這里是“NAT”)。
3、點擊“LAN segments…”按鈕,添加一個新的局域網(wǎng)區(qū)段。
4、點擊“Add…”按鈕,添加一個新的網(wǎng)絡適配器(僅保留默認設置然后點擊finish)。
5、設置新的適配器應用你創(chuàng)建的局域網(wǎng)區(qū)段,對另一個適配器不作處理。
在安裝程序時你可以點擊“Accept these Settings”(接受這些設置),然后再“Quick/EasyInstall”(快速安裝)時候選擇“OK”。
接下來提示會要求你安裝內(nèi)核,選擇“Standard Kernel”(標準內(nèi)核),等待完成之后讓系統(tǒng)重新引導(確保在VM開始運行前移除CD以防止任何意外發(fā)生)。
如果一切順利,你會到達歡迎頁面。頂部提供了廣域網(wǎng)和局域網(wǎng)適配器的信息。廣域網(wǎng)應該為em(),你設置連接到互聯(lián)網(wǎng)的適配器,當局域網(wǎng)為em1時,這個適配器便是連接到局域網(wǎng)區(qū)段上的。廣域網(wǎng)適配器的IP地址應該與你host電腦虛擬適配器(通常為“虛擬網(wǎng)絡適配器VMnet8”)為同一子網(wǎng)。
出于安全因素,默認路由器的網(wǎng)絡控制面板不可接受廣域網(wǎng)的訪問,因此為了訪問控制面板你需要啟動另一個虛擬機(最好是你打算鏈接到tor的那個),然后設置虛擬網(wǎng)絡適配器連接到你為路由器設置的局域網(wǎng)區(qū)段。
現(xiàn)在,你只需要打開一個瀏覽器,導航到pfSense路由的局域網(wǎng)IP(在這里我的地址是192.168.1.1),然后你就能看見登錄信息admin:pfSense。
你可以跳過設置導向,直接去修改登錄信息,然后去主配置頁面。
接下來你需要到“Services>DNS Resolver”(服務>DNS解析器)然后取消“Enable DNS Resolver”(啟用DNS解析器)的功能并保存設置(我們將使用tor作為我們的DNS解釋器,系統(tǒng)便可以同時訪問.onion洋蔥域)
你可以直接通過pfSense控制臺完成這個步驟(按下8進入shell),或者進入客戶虛擬機的配置面板,通過“System>Advanced”(系統(tǒng)>高級)開啟SSH,然后選中“Enable Secure Shell”復選框中的“OK”。
如果你選中SSH選項,必須使用來自虛擬機內(nèi)部的putty。IP與控制面板IP相同,并且登錄信息與管理面板一樣。一旦進入shell,我們便可以安裝tor:
pkg install torrm-rf/usr/local/tor/torrc
打開“/usr/local/etc/tor/torrc”,按如下配置編輯后保存:
現(xiàn)在,我們可以在啟動項添加tor然后運行起來:
現(xiàn)在我們需要給通過tor給代理設置一些規(guī)則;不幸的是你無法促進整個端口范圍,因此最好只為每個主流端口(HTTP、HTTPS、IRC等)添加端口傳遞規(guī)則,那么任何與規(guī)則不符的流量則會被阻止。
首先,我們需要去設置“Firewall>Nat>Port Forwarding”(防火墻>Nat>端口轉發(fā)),為我們想通過tor傳遞的每個TCP端口或者端口范圍添加一個規(guī)則(你可以只添加HTTP和HTTPS端口,后面再陸續(xù)添加更多)。
規(guī)則設置如下:443,SSH為22等等),你無法讓(1到65535)全部范圍轉發(fā),但是你可以轉發(fā)大多數(shù)的。值得注意的是Tor不支持UDP,因此你無須轉發(fā)UDP的流量或者使用你的真實IP
現(xiàn)在去設置“Firewall>Rules>LAN”(防火墻>規(guī)則>局域網(wǎng)),同時取消IPv4和IPv6的“默認允許局域網(wǎng)IPv4/6任意鏈接”。
刪除下述規(guī)則將會阻止不遵循端口轉發(fā)規(guī)則(不經(jīng)過tor)的所有流量,這就意味著我們需要創(chuàng)建一個遵循pfSense服務器DNS請求的規(guī)則,在“Firewall>Rules>Lan”(防火墻>規(guī)則>局域網(wǎng))創(chuàng)建一個新的規(guī)則,詳情如下:
如果你想讓流量在鏈接路由器的虛擬機之間流動,請完成如下設置:
完成了所有設置?,F(xiàn)在你應該可以使用dnsleaktest.com檢查一下你的IP地址,你的DNS應該無法被檢測出來(即使你啟動了WebRTC,STUN的exp也仍無法工作)。