Авторы:
Благодарность:
Требования:
Мультиязычность:
darwin128k (Egor Tsyganchuk)
Благодарность:
- IPHub — за API определения прокси/VPN
Требования:
- Linux-сервер HLDS (сборка i386)
- Metamod
- Authum с ABI 0.3 — версия 0.1.0 НЕ работает с Authum 3.0.0
- Бесплатный API-ключ IPHub
- SQLite (ничего ставить не нужно) или MySQL/MariaDB +
libmariadb3:i386
Мультиязычность:
- EN
Знакомая ситуация?
Вы забанили читера, а через минуту он снова на сервере: сменил VPN или переподключился через бесплатный прокси.
Бан по IP не держит, бан по SteamID обходится вторым аккаунтом.
Или так: у постоянного игрока с хорошей репутацией вдруг начинаются странности, потому что его аккаунтом (или сессией Steam) пользуется кто-то другой из другой страны.
Gatekeeper закрывает эти дыры ещё на входе.
Нарушитель отсеивается до того, как попадёт в игру.
Что он делает при каждом подключении
Почему это удобно админу
Вы забанили читера, а через минуту он снова на сервере: сменил VPN или переподключился через бесплатный прокси.
Бан по IP не держит, бан по SteamID обходится вторым аккаунтом.
Или так: у постоянного игрока с хорошей репутацией вдруг начинаются странности, потому что его аккаунтом (или сессией Steam) пользуется кто-то другой из другой страны.
Gatekeeper закрывает эти дыры ещё на входе.
Нарушитель отсеивается до того, как попадёт в игру.
Что он делает при каждом подключении
Проверяет, откуда пришёл игрок. Узнаёт страну, провайдера и тип сети через сервис IPHub.
Отсекает VPN, прокси и хостинги. IPHub оценивает каждый IP. Домашний интернет пропускается, адрес из дата-центра или VPN блокируется. Порог строгости настраиваете вы.
Фильтрует по странам. Можно задать список разрешённых стран (по умолчанию это СНГ и соседи) или, наоборот, список запрещённых.
Охраняет Steam-аккаунты (steam_guard). Модуль запоминает, из каких сетей (ASN) обычно заходит каждый SteamID. Если аккаунт внезапно пришёл из новой сети сверх лимита или из другой страны, такой вход блокируется. Так ловятся украденные и «одолженные» аккаунты.
Белый список. Друга с VPN, админа на хостинге или целого провайдера можно пустить в обход фильтра: по IP, ASN, SteamID или оценке блокировки.
Понятная причина кика. Игрок видит не безликое «access denied», а конкретную причину: country XX is not allowedилиproxy/VPN is not allowed. Ему понятно, что произошло, а вам меньше вопросов в личку.
Почему это удобно админу
- Ставится один раз и работает сам. Один файл
.soи один конфиг, ручного обслуживания нет. - Бережёт лимит IPHub. Ответы сервиса кешируются в базе: каждый IP запрашивается один раз, повторные заходы проверяются мгновенно и бесплатно.
- Безопасный старт. steam_guard по умолчанию работает в режиме обучения: он только записывает историю и никого не кикает. Когда база наберётся, включаете
steam_guard_enforce = 1. - SQLite или MySQL на выбор. SQLite работает сразу без настройки. MySQL/MariaDB подходит, если хотите общую базу на несколько серверов. Если MariaDB стартует одновременно с HLDS, модуль подождёт её и переподключится.
- Работает вместе с другими модулями. Gatekeeper публикует событие
gatekeeper.client.resolvedсо страной, ASN и провайдером игрока. Его можно использовать в других модулях Authum, например в связке с qproto (авторизация non-Steam). - Открытый код, лицензия Apache-2.0.