Я удивлён, что Discourse ещё не делает этого (особенно учитывая, что большинство пользователей Tor, пытающихся получить доступ к форумам, вероятно, обходят предыдущие блокировки), но есть ли способ запретить пользователям Tor регистрироваться на моём форуме?
Один конкретный пользователь использует Tor, чтобы снова и снова обходить любые баны по IP и ограничения, основанные на отпечатках браузера. С этим стало огромной головной болью иметь дело…
Discourse сам по себе не является веб-сервером. Tor создаёт определённые проблемы, но они гораздо менее серьёзны по сравнению с «обычной» сетью. Но чем эта ситуация отличается от того, если бы тот же человек использовал просто другой VPN-сервис?
На уровне сервера можно распознавать известные IP-адреса Tor и блокировать их, но это не реализуется «из коробки» легко. Непубличные (частные) адреса… шансов нет.
Но если рассматривать вопрос в более общем плане… IP-адреса бесполезны. Мой IP-адрес у мобильного провайдера меняется как минимум раз в неделю. Удачи в попытке заблокировать меня по IP, ведь на следующей неделе он уже будет другим. На самом деле он может измениться даже сегодня, если я совершу поездку на 10 миль.
IP-адреса помогают только при проводных подключениях. Но тогда тот же человек переключится на VPN, и блокировка по IP становится бессмысленной.
Фингерпринтинг… где это всё ещё разрешено, и правовая система идентифицирует пользователей?
Не всегда. Многие кабельные операторы используют DHCP для распределения IP-адресов, и когда срок аренды адреса истекает, они могут и действительно назначают новый. Следующий, скорее всего, будет в том же диапазоне IP-адресов, но даже это может не произойти. Мой провайдер перемещает меня, и новая точка доступа может определить мое местоположение в любой точке страны.
Это правда. Но скорее всего IP-адреса, привязанные к кабелю, меняются реже, чем у мобильных устройств.
В любом случае, блокировка IP-адресов — довольно неэффективный, а то и вовсе бесполезный инструмент. То же самое касается и точного геоблокирования, но это уже совсем другая история.
Я с радостью приму любое решение, которое позволит мне запретить пользователям Tor доступ к моему форуму. Это уже серьёзная проблема в моём сообществе, и, на мой взгляд, она может вызвать эффект домино в других сообществах, если о ней узнает больше людей.
Я заблокировал все известные Tor-ноды на уровне сервера с помощью iptables. Также можно использовать сам Nginx или другой обратный прокси-сервер.
Использование любого из этих решений перед Discourse — действительно тривиальная задача. Но Docker вызывает наибольшие вопросы, так как он обходит UFW/iptables на VPS способом, который я не до конца понимаю, поскольку только осваиваю эту тему (по моему мнению, это самая серьёзная проблема безопасности, о которой говорят меньше всего).
Вот информация по вопросу файрвола:
Конечно, кто-то может создать плагин, блокирующий IP-адреса. Я не эксперт, но не понимаю, почему это должно быть сложно — даже WordPress умеет это делать.
Однако, на мой взгляд, есть две проблемы:
приложение начинает выполнять задачи, которые должны выполняться на уровне сервера;
приложение всегда действует с опозданием, и даже если оно что-то блокирует, атака на сервер уже произошла.
Вы можете использовать этот плагин, который мы создали и который блокирует не только Tor, но и другой трафик VPN и прокси при регистрации, входе или на всем сайте в зависимости от вашей желаемой конфигурации: