我需要一个阻止TOR servers
中php
的脚本...我需要获取服务器列表并阻止它们。
或者,在服务器上安装的任何解决方案(centos)。
答案 0 :(得分:11)
以下是有关TorDNSEL https://www.torproject.org/projects/tordnsel.html.en以及如何构建查询的更多信息。
以下是我在网上找到的可以执行动态检查的功能。
(https://check.torproject.org/必须使用类似的东西)。
我不确定在较重的流量下的表现。
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];
}
答案 1 :(得分:6)
您需要检查用户的IP是否在TOR退出节点DNSBL中。使用静态出口节点列表不是一个好主意,因为节点会不时出现/消失,您可能不希望定期更新列表。
存在各种黑名单,EFNET RBL就是其中之一。请注意,它还解决了在某些情况下可能被认为不合需要的其他IP - 如果您只是希望TOR确保忽略其他结果。
答案 2 :(得分:0)
如果需要阻止TOR用户ID,请按照以下方法操作:
ipset -N tor iphash
获取可以访问$YOUR_IP
的Tor出口节点列表,跳过评论并逐行阅读
wget
ipset -q -A tor $IP
done
在itables过滤器中过滤我们的新设置
iptables -A INPUT -m set --match-set tor src -j DROP.
答案 3 :(得分:0)
Here(https://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' />