2012-04-24 51 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' />