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