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