Существует ли журнал, в котором перечислены все IP-адреса, с которых пользователь когда-либо входил на наш форум? В панели администратора пользователя мы видим «Последний IP» и «IP регистрации». Есть ли способ увидеть список всех IP-адресов, с которых пользователь заходил на сайт?
Это можно сделать с помощью плагина data explorer и следующего запроса.
SELECT id, username, ip_address, registration_ip_address FROM users
Этот запрос выберет id, имя пользователя, последний IP-адрес и IP-адрес регистрации для каждого пользователя.
Записывается только последний IP-адрес.
Все IP-адреса находятся в логах nginx, но сопоставить их с пользователем будет непросто.
Какую проблему вы пытаетесь решить?
В последнее время мы сталкиваемся с большим наплывом новых спам-аккаунтов, созданных для проведения атак. Они приходят с диапазона динамических IP-адресов из Азии. Когда появляется новый подозрительный аккаунт, нам иногда удаётся зафиксировать его текущий IP-адрес как совпадающий с одним из ранее использовавшихся (используя поле «Последний IP»). Однако в следующий раз, когда они заходят, они могут быть с нового IP-адреса, который ранее не встречался. Всё зависит от того, в какой момент мы проводим проверку.
В следующий раз они могут появиться с другого IP-адреса, который ещё не был зафиксирован. Но если бы мы знали, что IP-адрес, на котором они находились в прошлый раз (после «IP при регистрации» и до «Последнего IP»), совпадает с одним из других известных подозрительных адресов, мы могли бы с большей уверенностью заблокировать их.
Мы рассматривали возможность блокировки целого диапазона IP-адресов, но должны быть осторожны, чтобы случайно не заблокировать легитимных пользователей.
Это была моя лучшая идея.
Я думаю, что лучшее, что можно сделать без написания плагина, отслеживающего все IP-адреса, — это как можно быстрее удалять аккаунты и блокировать эти IP-адреса. Люди очень обеспокоены отслеживанием IP-адресов, поэтому Discourse хранит только первый и последний IP-адрес.
Но у них, скорее всего, больше IP-адресов, чем вы можете заблокировать по одному. Возможно, стоит изменить настройки TL0, чтобы уровень TL0 мог делать меньше, и чтобы переход на уровень TL1 был сложнее.