Мне нужен скрипт, который блокирует TOR servers
в php
… Мне нужно получить список серверов и заблокировать их.
Или любое решение для установки на сервер (centos).
Более подробная информация о 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]; }
Вам нужно проверить, находится ли ip пользователя в узле выхода TOR DNSBL. Использование статических списков узлов выхода не будет хорошей идеей, так как узлы время от времени появляются / исчезают, и вы, вероятно, не захотите регулярно обновлять список.
Существуют различные черные списки, один из них – EFNET RBL . Обратите внимание, что он также разрешает некоторые другие IP-адреса, которые в некоторых случаях могут считаться нежелательными – если вы просто хотите, чтобы TOR не учитывал эти другие результаты.
Если необходимо заблокировать идентификатор пользователя TOR, выполните следующие действия:
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.
Здесь ( https://github.com/RD17/DeTor ) – простой API REST, чтобы определить, был ли запрос сделан из сети 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' />