Reunion является продолжением
DProto для
ReHLDS.
Это
metamod плагин для
ReHLDS, который позволяет заходить 47/48 Non-Steam на сервер.
Разработку начал Crock, но, в связи с появлением новых проектов, не успел закончить. На данный момент разработкой и поддержкой занимаются Asmodai и s1lent.
Команда разработки:CrockAsmodais1lentОсобенности:Поддержка всех известных steam/non-steam клиентов.
Поддержка 48/47 протоколов.
Эмуляция AuthID по железу клиента. Для этого на клиенте должен быть установлен один из поддерживаемых эмуляторов.
Эмуляция AuthID по IP-адресу клиента. Для каждого типа клиента можно выбрать свой AuthID.
Например, для клиентов 48 протокола сделать STEAM_ , а для 47 — VALVE_ , либо вообще не пускать их на сервер.
Гибкая настройка разрешенных типов авторизации и префиксов для них.
Выбор протокола ответа на запрос к серверу.
Требования:Движок ReHLDS 653 или новее
MetaMod 1.20(p) или новее
Установка Reunion:1) Устанавливаем один из последних билдов сервера через SteamCMD.
2) Устанавливаем MetaMod в /addons/metamod/, где — папка мода Half-Life, например /cstrike/ для Counter-Strike
3) Создаем папку /addons/reunion/
4) Копируем в нее из архива reunion_X_X_X.zip файл reunion_mm_i386.so или reunion_mm.dll в зависимости от используемой ОС
5) Добавляем эту библиотеку в конфиг MetaMod. Для этого открываем /addons/metamod/plugins.ini (если его нет, создаем сами) и пишем:
Linux:linux addons/reunion/reunion_mm_i386.so
Windows:win32 addons\reunion\reunion_mm.dll
6) Копируем из архива reunion_X_X_X.rar файл reunion.cfg в корень сервера или папку мода. Вносим в него необходимые изменения в соответствии с вашими требованиями к конфигурации.
7) Запускаем сервер и командой meta list проверяем статус
Linux:Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] Reunion RUN - reunion_mm_i386.so vX.X.X ini Start Never
…
WindowsCurrently loaded plugins:
description stat pend file vers src load unlod
[ 1] Reunion RUN - reunion_mm.dll vX.X.X ini Start Never
…
8) Установка Reunion завершена, теперь нужен ReHLDS, переходим
по ссылке.
скачиваем архив rehlds-0.X-XXXXXXXX.XXXXXX-XX.zip по последней дате
Более подробнее о ReHLDS можно почитать
здесь.
dp_rejmsg_steam "Sorry, legit clients are not allowed on this server"
dp_rejmsg_nosteam47 "Sorry, no-steam p47 clients are not allowed on this server"
dp_rejmsg_nosteam48 "Sorry, no-steam p48 clients are not allowed on this server"
dp_rejmsg_hltv "Sorry, HLTV is not allowed on this server"
dp_rejmsg_pending "Sorry, unauthorized clients are not allowed on this server"
dp_rejmsg_revemu "Sorry, RevEmu clients are not allowed on this server"
dp_rejmsg_revemu2013 "Sorry, RevEmu2013 clients are not allowed on this server"
dp_rejmsg_steamemu "Sorry, SteamEmu clients are not allowed on this server"
dp_rejmsg_oldrevemu "Sorry, Old RevEmu clients are not allowed on this server"
dp_rejmsg_avsmp "Sorry, AVSMP clients are not allowed on this server"
dp_rejmsg_revemu_sc2009 "Sorry, revEmu/SC2009 clients are not allowed on this server"
dp_rejmsg_sxei "Sorry, sXe Injected clients are not allowed on this server"
dp_rejmsg_sse3 "Sorry, SSE3 clients are not allowed on this server"
Конфигурационный файл:Цитата:
# ========================================================
# REUNION CONFIGURATION
# ========================================================
#
# General rule for modifying this file:
# DONT CHANGE ANYTHING IF YOU DONT KNOW WHAT IT MEANS!
#
# ========================================================
# AUTHID MANAGEMENT
# ========================================================
# ClientID types (for cid_* options)
# 1: Real (or generated by HW) steam (STEAM_xx:xx:xx)
# 2: Real (or generated by HW) valve (VALVE_xx:xx:xx)
# 3: STEAM_ by IP
# 4: VALVE_ by IP
# 5: Deprecated - client will be rejected
# 6: reserved for future use
# 7: HLTV
# 8: STEAM_ID_LAN
# 9: STEAM_ID_PENDING
# 10: VALVE_ID_LAN
# 11: VALVE_ID_PENDING
# 12: STEAM_666:88:666
# Use these options to set authid's for clients
### AUTH CONTROL ###
# For Legit Steam clients (default is real STEAM_xx:xx:xx [1])
cid_Steam = 1
# Client recognized as pending when they sucessfully authorized, but did not get steam id
# REMARK: Actually, it got steamid, but it is useless (STEAM_0:0:0 for example)
# default is STEAM_ID_PENDING [9]
cid_SteamPending = 9
# for HLTV (default is HLTV [7])
cid_HLTV = 7
# for p.47 clients that do not support unique id generation (default is STEAM_ID_LAN [8])
cid_NoSteam47 = 8
# for p.48 clients that do not support unique id generation (default is VALVE_ID_LAN [10])
cid_NoSteam48 = 10
# For players having revEmu ( >= 9.74) on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_RevEmu = 1
# For players having RevEmu 2013 on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_RevEmu2013 = 1
# For players having SteamClient 2009 / revEmu > 9.82 on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_SC2009 = 1
# For players having old revEmu on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_OldRevEmu = 1
# For players having hCupa's SteamEmu on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_SteamEmu = 1
# For players having AVSMP (Cracked Steam) on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_AVSMP = 1
# For SETTI ServerScanner
# default is STEAM_xx:xx:xx generated by IP [3]
cid_Setti = 3
# For SXEI Clients
# default is real STEAM_xx:xx:xx [1]
cid_SXEI = 1
# For players having SmartSteamEmu > 1.2.4 on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_SSE3 = 1
### AUTH SETTINGS ###
# ServerInfoAnswerType (0/1/2)
# Sets server answer type for query requests
# 0 = New style (Source Engine)
# 1 = Old Style (Fix favorites list for p.47 clients)
# 2 = Hybrid mode - Server is visible anywhere, but there are 3 packets generated for every serverinfo request
ServerInfoAnswerType = 0
# EnableSXEIdGeneration (0 / 1)
# Turns on steamid generation based on info sent by sXeI client
# Enable this ONLY if you have sXeI server installed!
EnableSXEIdGeneration = 0
# SC2009_RevCompatMode (0 / 1)
# Enable fix to make steamids generated for SC2009 compatible with revEmu
SC2009_RevCompatMode = 1
# SteamIdHashSalt (string)
# Salt string for SteamIDs hashing. Irreversibly changes SteamIDs. Applies only to SteamIDs generated by emulators.
# Should be more than 16 chars length. If string is empty, hashing is not applied.
SteamIdHashSalt =
# EnableGenPrefix2 (0 / 1)
# Enable second prefix (0 or 1) for generated by HW authids. Reduces chance of authid collisions.
EnableGenPrefix2 = 0
# HLTVExcept_IP (ip addr)
# HLTV from this IP will be able to join the server even if cid_HLTV is set to 5 (deprecated)
HLTVExcept_IP = 127.0.0.1
### AUTHID PREFIXES ###
# IPGen_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by IP
IPGen_Prefix1 = 0
# IPGen_Prefix2 (int)
# STEAM_a:b:c
# second prefix (b) for authids generated by IP
IPGen_Prefix2 = 4
# Native_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by native auth method (Steam)
Native_Prefix1 = 0;
# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by Steamclient 2009
SC2009_Prefix1 = 0;
# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by RevEmu
RevEmu_Prefix1 = 1;
# RevEmu2013_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by RevEmu2013
RevEmu2013_Prefix1 = 1;
# OldRevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by old RevEmu
OldRevEmu_Prefix1 = 2;
# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by SteamEmu
SteamEmu_Prefix1 = 3;
# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for AVSMP Clients (Cracked steam)
AVSMP_Prefix1 = 4;
# Setti_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for Setti server scanner
Setti_Prefix1 = 5;
# SXEI_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for sXeI clients
SXEI_Prefix1 = 6;
# SSE3_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for SSE3
SSE3_Prefix1 = 7;
# Note that banid will use steamid WITHOUT any prefixes!
# ========================================================
# OTHER STUFF
# ========================================================
# LoggingMode:
# 0 = None
# 1 = Console
# 2 = Log Files
# 3 = Both
LoggingMode = 2
Команды Reunion:dp_clientinfo - сохраняет в квары информацию о типе авторизации игрока. Смотрите пример плагина в комплекте.
Изменения Reunion:0.1.0.133 Beta (15.09.2018)
Улучшена защита от атак. Требуется последний ReHlds.
Исправлено несрабатывание фикса зависаний багнутых клиентов.
0.1.0.130 Beta (15.09.2018)
Исправлено отображение аватаров.
0.1.0.129 Beta (15.09.2018)
Исправлена ошибка в обработке query-запросов (thx BombermaG). К проблеме TAB-а скорее всего отношения не имеет
0.1.0.127 Beta (09 июля 2018)
В версии есть мелкие баги, в том числе с отображением steam игроков, решается кваром ServerInfoAnswerType 2
Исправлены ошибки беты
Пускает HLTV и умеет отдельно фильтровать запросы с нескольких портов одного ip (количество задается в конфиге)
0.1.92 (11 февраля 2018)
Добавлена опция EnableQueryLimiter
QueryFloodBanTime может быть установлен в 0 для блокировки флуда без бана
0.1.0.89 (25 января 2018) (Related post#488)
Hotfix: Bugfixes (Требуется ReHLDS API не ниже 3.4.X.X)
0.1.75 (20 декабря 2016)
исправлена совместимость хеширования с dproto
0.1.74 (12 декабря 2016)
rehlds api обновлено до версии 3.0
0.1.73 (27 сентября 2016)
забаненные через banid клиенты больше не будут автоматически перезаходить с другим доступным эмулятором
добавлен кик клиентов с одинаковым steamid
добавлена опция SteamIdHashDProtoCompat
поправлен подсчет силы флуда пакетами
0.1.67 (22 февраля 2016)
исправлен бан игроков с VALVE_ID_*
улучшена обработка сильного флуда запросами
0.1.66 (7 февраля 2016)
исправлена авторизация steam игроков, которые были забанены через banid
0.1.65 (31 января 2016)
в информацию о сервере добавлен опциональный параметр 'port' для поддержки некоторых новых версий revemu и мониторингов
увеличен буфер для запроса серверных правил (как в steamclient, а не как по протоколу)
getchallenge имеет больший приоритет, чем запрос информации о сервере
чтение appversion из steam.inf
0.1.62 (25 января 2016)
Исправлена ошибка неправильной конвертации steamid для внесения в список банов
HLTV получает корректный steamid при подключении с ExceptIP
Теперь не банятся игроки, зажимающие enter для быстрого обновления информации о сервере
В конфиг добавлен параметр QueryFloodBanTime
0.1.61 (13 января 2016)
Чтение id приложения из steam_appid.txt
Корректное число играющих ботов для модов
Много небольших исправлений
0.1.58 (8 января 2016)
Исправлена генерация steamid по ip
Увеличен лимит опросов сервера для бана
0.1.57 (27 декабря 2015)
Изменен метод определения кривого сервербраузера
0.1.56 (27 декабря 2015)
Исправлена ошибка "STEAM userid keysize is bogus (0/1024)"
Исправлено неверное количество фрагов в информации о сервере
Исправлено зависание клиентов с кривым сервербраузером
0.1.52 (17 декабря 2015)
Исправлен список игроков в информации о сервере
0.1.51 (15 декабря 2015)
Исправлено несоответствие алгоритма хеширования между версиями 0.1.46 и 0.1.50
EnableGenPrefix2 теперь не затрагивает account id (большое число в steamid)
0.1.50 (14 декабря 2015)
Разрешен старый p47 запрос списка игроков
Добавлено C++ API для плагинов
0.1.46 (14 Октября 2015)
Исправлена проблема Bad challenge в HLSW
Исправлена dp_clientinfo для первого слота
0.1.43 (11 Октября 2015)
Исправлены query со steam клиента
0.1.42 (11 Октября 2015)
Улучшено хеширование steamid для большей безопасности
Добавлен параметр EnableGenPrefix2, разрешающий генерировать второй префикс steamid
Вопросы и ответы:Q: Я установил SteamIdHashSalt также, как было в конфиге dproto, но у игроков изменились steamid. Почему?
A: Reunion использует другой, более безопасный алгоритм хеширования. Знание steamid другого игрока до установки SteamIdHashSalt не поможет получить такой же steamid после включения хеширования.
Q: Можно ли что-то сделать против подменяльщиков steamid?
A: Нет, id-чейнджеры генерируют корректную авторизационную информацию, поэтому со стороны сервера нельзя узнать, что steamid был подменен. Вы можете только настроить SteamIdHashSalt чтобы не допустить подмену на конкретный steamid другого игрока.
Q: У меня есть проблемы с использованием HLSW.
A: Используйте наиболее стабильную версию
HLSW 1.3.1 Q: Игроки с ноустима не учитываются при отображении информации о сервере в мастерсервере Valve. Можно ли это исправить?
A: Нет, клиент стима получает информацию о количестве игроков с авторизационных серверов стима. Полученное с сервера значение просто игнорируется.
Q: Почему amxbans и некоторые другие скрипты не могут получить список игроков на сервере?
A: Они используют некорректный формат запроса и должны быть переписаны с использованием
последнего PHP-Source-Query или аналогичного скрипта.
Q: В dproto была опция Game_Name, но в reunion её нет. Как поменять название игры?
A: Используйте
плагин.
Q: В AmxBans 6.0/6.1/gmbans в информации о сервере не отображается список серверных переменных, что делать?
A: Вам потребуется заменить файл include/rcon_hl_net.inc или include/serverinfo_helper.php,
скачать вы можете ниже к прикрепленному посту архив fix_scripts.zip.
Благодарности:dreamstalker за проект ReHLDS
Crock /
Lev за Dproto и всем остальным людям, которые помогали в развитии dproto.
kazakh758 за помощь с тестированием фикса зависания клиентов с кривым сервербраузером
Скачать Reunion: