2012-04-24 13 views
4

我需要一個腳本,阻止TOR serversphp ...我需要獲取服務器列表並阻止它們。塊TOR服務器

或者,安裝在服務器上的任何解決方案(centos)。

回答

6

您需要檢查用戶的IP是否在TOR出口節點DNSBL中。使用靜態出口節點列表並不是一個好主意,因爲節點會不時出現/消失,並且您可能不希望定期更新列表。

存在各種黑名單,EFNET RBL就是其中之一。請注意,它也解決了某些其他IP在某些情況下可能被認爲不可取的情況 - 如果您只是希望TOR確保忽略其他結果。

+0

偉大!我會深入調查。謝謝您的幫助。 – Maxpower 2012-04-24 08:29:57

+0

@Maxpower,我不太清楚EFNET RBL的工作原理。網站上有下載列表的地方嗎?我沒有看到鏈接。 – 2014-05-30 23:59:45

11

這裏是關於TorDNSEL https://www.torproject.org/projects/tordnsel.html.en以及如何構造查詢的更多信息。

以下是我在網上找到的可以執行動態檢查的功能。

(​​必須使用類似的東西)。

我不確定在較重的流量下的性能。

function IsTorExitPoint(){ 
if (gethostbyname(ReverseIPOctets($_SERVER['REMOTE_ADDR']).".".$_SERVER['SERVER_PORT'].".".ReverseIPOctets($_SERVER['SERVER_ADDR']).".ip-port.exitlist.torproject.org")=="127.0.0.2") { 
return true; 
} else { 
return false; 
} 
} 
function ReverseIPOctets($inputip){ 
$ipoc = explode(".",$inputip); 
return $ipoc[3].".".$ipoc[2].".".$ipoc[1].".".$ipoc[0]; 
} 
0

如果需要阻斷TOR用戶ID,按照方法:

ipset -N tor iphash 

得到Tor出口節點列表,可以訪問$YOUR_IP,跳過的意見和閱讀逐行

wget 

ipset -q -A tor $IP 

done 

過濾我們在itables一套新的過濾

iptables -A INPUT -m set --match-set tor src -j DROP. 
0

Herehttps://github.com/RD17/DeTor)是一個簡單的REST API,用於確定請求是否來自TOR網絡。我認爲這將是非常簡單的使用它從PHP

請求是: curl -X GET http://detor.ambar.cloud/

的響應是 { "sourceIp": "104.200.20.46", "destIp": "89.207.89.82", "destPort": "8080", "found": true }

作爲獎勵,你可以徽章添加到您的網站來檢測用戶是否來自TOR與否:

<img src='http://detor.ambar.cloud/badge' />