Adidasman,
В связи с появлением новой (старой, но под новым вектором) атаки ботами-"навидимками", модуль следует доработать. Суть атаки:
Бот подключается на сервер, но процесс не доходит до полноценного подключения. Т.е. как я понимаю в цепочке
Цитата:
cl: -> connect
sv: -> cmd "connect" -> SV_ConnectClient -> Send accept connection
cl: <- CL_ConnectClient -> Send cmd "new" -> Print Connection accepted by 127.0.0.1:27015
sv: -> SV_New_f -> pfnClientConnect |
Бот не посылает "new" и висит балластом, занимая выделенный слот. В status его соотстветственно не видно, и amxx-плагинами его выловить нет возможности (client_connect(ex) от не триггерит). Программа для атаки подразумевает использование proxy-листа, соотественно защита от ReAuthCheck при наличии большого кол-ва proxy оказывается бесполезной. Боты просто реконнектятся по таймауту с разных адресов. В результате сервер 32/32 забит ботами.
Я не очень в этом понимаю и могу ошибаться, но истина где-то рядом. Если что, программа для атаки имеется на руках, могу предоставить разработчикам модуля. В ReAuthCheck мы имеем
Цитата:
# Время Для Обнаружения Простоя Авторизации 1 Стадия (Начало Соединения Игрока)
# Дробное Значение (5.0 | 120.0)
IdleTime1 = 15.0
# Время Для Обнаружения Простоя Авторизации 2 Стадия (Ожидание Команды От Игрока #1)
# Дробное Значение (7.0 | 120.0)
IdleTime2 = 14.0 |
Вероятно нужно позволить устанавливать значения ниже существующих порогов, и добавить наказание, основанное на системе предупреждений, как это сделано с MaxDrop. Т.е. чтобы после # "болтаний балластом" в интервале # минут игрок мог быть наказан баном по IP (addip).
На данный момент существует решение на основе amxx-плагина и модуля Orpheu. Метод защиты рабочий, ознакомиться можно здесь:
https://dev-cs.ru/resources/1231/field?field=source
Если кратко - мы ловим начало подключения и ожидаем от клиента триггер client_connect(). Если его не происходит в течение # секунд - игрок считается "зависшим балластом" и получает предупреждение на IP. Набрав # предупреждений IP банится на # минут addip'ом.