Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

112 страниц V  « 92 93 94 ... 110 111 »

Последние угрозы

, https://c-s.net.ua/forum/topic37395.html
Статус пользователя ZhyJluK
сообщение 15.3.2012, 17:20
Сообщение #1841
Стаж: 17 лет

Сообщений: 21
Благодарностей: 2
Полезность: 73

330863, я ни в коем случае не обвиняю его. Напротив, благодарен хотя бы за то, что сервера не ложатся. Отписываю лишь по факту. То, что вижу, так сказать.
mazdan, да, 5% Большой проект, мощное железо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
by Fan
сообщение 15.3.2012, 17:29
Сообщение #1842
Стаж: 14 лет

Сообщений: 1904
Благодарностей: 556
Полезность: 0

Цитата(mazdan @ 15.3.2012, 19:12) *
у вас при 30 игроках на сервере загрузка процессора 5% ?


CPU | FPS | Players |
49.95 |1036.95 | 14 |
у меня такая загрузка в пределах нормы

вот в дополнение как было так и осталось примерно не особо хорошо но и не особо плохо

Хостинг какой?И как часто сервер падает с этой штучкой?А то я чую,что мои падения не случайны :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.3.2012, 17:42
Сообщение #1843


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

вероятно из-за большого числа легальных коннектов - часто запускается хук консоли
Можно сделать чтобы запускался по условию более 2 коннектов в секунду - это не столь сложно. По идее снизит нагрузку т.к. будет срабатывать только во время вероятного возникновения флуда.

Цитата(by Fan @ 15.3.2012, 17:29) *
Хостинг какой?И как часто сервер падает с этой штучкой?А то я чую,что мои падения не случайны :)

я предупреждал о возможных падениях из-за орфея. У меня нет никакого хостинга :)

Попробуйте в set_task(1.1 "Unreg") заменить 1.1 на 0.5, например. Насколько часто падает?

у меня крашатся периодически. но не сказал бы чтобы очень часто прям :D
Я решил как смог - до этого с орфеем не работал. Наверное, при большом числе коннектов легальных клиентов крашить будет чаще.
попробуйте так:

плагинчеГ
Код
#include <amxmodx>
#include <orpheu>
#define PLUGIN "Anti flood"
#define VERSION "0.8"
#define AUTHOR "kanagava"

new time_last_conn
new ip_old[1024]
new ip_warn[1024]
new Msg[1024]
new OrpheuHook:handlePrintf
new warn
new old_time
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    server_cmd("sv_logecho 1")
    server_cmd("log on")
    set_task(5.0, "regfunctions")  
}

public regfunctions()
{
    OrpheuRegisterHook(OrpheuGetFunction("SV_ConnectClient"),"OnSV_ConnectClientPre", OrpheuHookPost)
}

public OrpheuHookReturn:OnSV_ConnectClientPre()
{
   if(get_systime()-old_time <= 2)
   {
        handlePrintf = OrpheuRegisterHook( OrpheuGetFunction( "Con_Printf" ), "Con_Printf" , OrpheuHookPre);
        set_task(1.1,"Unreg",12345,"",0,"b")
   }
   old_time=get_systime()
   return OrpheuIgnored;
}
public Unreg( ){
OrpheuUnregisterHook(handlePrintf)
}

public OrpheuHookReturn:Con_Printf(const a[], const message[] )
{
    if (containi(message,"^" connected, address ^"")!=-1)
    {
      
        new len=1023
        new temp_right[1024],temp_left[1024]
        formatex( Msg,charsmax( Msg ),"%s", message );
        split(Msg, temp_left, len, temp_right, len, "^" connected, address ^"")
        strtok(temp_right, temp_left, len, temp_right, len, ':')
        if (equal(temp_left,ip_old) && !equal(temp_left,"") && ((get_systime()-time_last_conn)<2))
        {
            warn=warn+1
            if(warn>1 && equal(temp_left,ip_warn))
            {
                log_amx("[NOFLOOD] Connection flood detected from ip %s",ip_old)
                server_cmd("addip 120.0 %s",ip_old)
            }
            ip_warn=temp_left
        }
        else
        {
            warn=0
        }
        ip_old=temp_left
        time_last_conn=get_systime()
        Unreg( )
        OrpheuUnregisterHook(handlePrintf)
    }
    return OrpheuIgnored;
}


Rejiser, привет :D

Отредактировал: mazdan, - 15.3.2012, 20:41


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
test
сообщение 15.3.2012, 18:54
Сообщение #1844
Стаж: 19 лет

Сообщений: 72
Благодарностей: 4
Полезность: 0

#define PLUGIN "Stop Join Flood Exploit"
#define AUTHOR "kostov"

Тестировали уже?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Zero
сообщение 15.3.2012, 19:09
Сообщение #1845


Стаж: 15 лет

Сообщений: 848
Благодарностей: 290
Полезность: 591

Цитата
#define PLUGIN "Stop Join Flood Exploit"
#define AUTHOR "kostov"

Тестировали уже?

Бесполезный плагин
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Arsen_1999
сообщение 15.3.2012, 19:14
Сообщение #1846
Стаж: 14 лет

Сообщений: 85
Благодарностей: 9
Полезность: < 0

Цитата(Zero @ 15.3.2012, 19:09) *
Бесполезный плагин

ахахаха, ты его вообще-то ставил?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Zero
сообщение 15.3.2012, 19:17
Сообщение #1847


Стаж: 15 лет

Сообщений: 848
Благодарностей: 290
Полезность: 591

Цитата
ахахаха, ты его вообще-то ставил?

Если бы не тестил, не писал бы

Отредактировал: Zero, - 15.3.2012, 19:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.3.2012, 19:20
Сообщение #1848


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Цитата(test @ 15.3.2012, 19:54) *
#define PLUGIN "Stop Join Flood Exploit"
#define AUTHOR "kostov"

Тестировали уже?

выкладывайте или в личку покажите что там (если нельзя выкладывать) :)


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Arsen_1999
сообщение 15.3.2012, 19:23
Сообщение #1849
Стаж: 14 лет

Сообщений: 85
Благодарностей: 9
Полезность: < 0

Цитата(Zero @ 15.3.2012, 20:17) *
Если бы не тестил, не писал бы

ахахаха, он у меня стоит и мне лично помогает в логах ип пишет, того кто досил HLDS fake'om

Цитата(mazdan @ 15.3.2012, 20:20) *
выкладывайте или в личку покажите что там (если нельзя выкладывать) :)


Отредактировал: Arsen_1999, - 15.3.2012, 19:24
Прикрепленные файлы:
Прикрепленный файл  stopjoin_flood.zip ( 4,48 килобайт ) Кол-во скачиваний: 0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
test
сообщение 15.3.2012, 19:30
Сообщение #1850
Стаж: 19 лет

Сообщений: 72
Благодарностей: 4
Полезность: 0

Держите исходник сразу.

Код
#include <amxmodx>

#pragma semicolon 1

#define PLUGIN    "Stop Join Flood Exploit"
#define AUTHOR    "kostov"
#define VERSION    "1.0"
#define MAX_PLAYERS 32

new iJoinIP[MAX_PLAYERS][33], iCount[MAX_PLAYERS];
new iCvarEnable, iCvarBanLength, iCvarMaxConnect;

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    iCvarEnable     = register_cvar("amx_join_flood",            "1");
    iCvarBanLength     = register_cvar("amx_join_flood_banlength",    "1");
    iCvarMaxConnect = register_cvar("amx_join_flood_attempts",     "15");
}

public client_authorized(id)
{
    if (!(is_user_bot(id)) && (get_pcvar_num(iCvarEnable)))
    {
        new iUserIp[33], i; get_user_ip(id, iUserIp, sizeof iUserIp - 1, 1);
        new iMaxConnect = get_pcvar_num(iCvarMaxConnect);
        
        for(i = 0; i < MAX_PLAYERS; i++)
        {
            if (equal(iUserIp, iJoinIP[i], 32))
            {
                if (iCount[i] >= iMaxConnect)
                {
                    new uID[1], aID[1]; uID[0] = id; aID[0] = i;
                    set_task(3.0, "BanUserFlood", 77, uID[0], 1);
                    set_task(4.0, "ClearUserID", (id + MAX_PLAYERS), aID[0], 1);
                }
                else
                {
                    iCount[i]++;
                }
                break;
            }
        }

        if (i == MAX_PLAYERS)
        {
            new a;
            for(a = 0; a < MAX_PLAYERS; a++)
            {
                if (iJoinIP[a][0] == 0)
                {
                    get_user_ip(id, iJoinIP[a], 32, 1);
                    iCount[a]++;
                    break;
                }
            }
                
            if (a == MAX_PLAYERS)
            {
                for(new a = 0; a < MAX_PLAYERS; a++)
                {
                    iJoinIP[a][0] = 0;
                    iCount[a] = 0;
                }
            }
        }          
    }
}

public BanUserFlood(id[])
{
    new iUserIp[17]; get_user_ip(id[0], iUserIp, sizeof iUserIp - 1,1);
    new iUserIpPort[33]; get_user_ip(id[0], iUserIpPort, sizeof iUserIpPort - 1);
    server_cmd("addip %f %s", get_pcvar_float(iCvarBanLength), iUserIp);
    log_to_file("join_flood.log", "IP: %s", iUserIpPort);
}

public ClearUserID(i[])
{
    iJoinIP[i[0]][0] = 0;
    iCount[i[0]] = 0;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.3.2012, 19:32
Сообщение #1851


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

test, от текущей версии вам может помочь ограничение на число портов с одного ip адреса, если такое можно прописать.
Поясню мою мутную фразу - флудер бомбит сразу с многих портов, если ограничить, например, в дипазон 5 секунд не более 3 портов с одного айпи или типа того :) или ваше правило так и работает? :D
флуд порты
14:31:12: >IP:63484"
14:31:13: >IP:60965"
14:31:14: >IP:53097"
14:31:15: >IP:61497"
14:31:16: >IP:62457"
14:31:17: >IP:60449"
14:31:18: >IP:56100"
14:31:19: >IP:65460"
14:31:20: >IP:58215"
14:31:21: >IP:50897"
14:31:22: >IP:60190"
14:31:23: >IP:58692"
14:31:24: >IP:61679"
14:31:25: >IP:55615"
14:31:26: >IP:59266"
14:31:27: >IP:51082"
14:31:28: >IP:57879"
14:31:30: >IP:62874"
14:31:31: >IP:56556"
14:31:32: >IP:64265"
14:31:33: >IP:61609"
14:31:34: >IP:59586"
14:31:35: >IP:50394"
14:31:36: >IP:62651"
14:31:37: >IP:52680"
14:31:38: >IP:64524"
14:31:39: >IP:63163"


плагин сжечь :D

Примерный порядок события amxx:
client_connect(id) -> client_authorized(id) -> client_putinserver(id)
так как я использую орфей (влезаю в память игры), то у меня события выглядят так SV_ClientConnect -> client_connect(id) -> client_authorized(id) -> client_putinserver(id)
Дело в том, что этот флудер не подключается до конца, тем самым не вызывается событие client_connect не говоря уже про последующие.
Хотя периодически сервер отрабатывал флуд как подключение, когда стоял тот плагин, что я написал. Тестить точнее я не стал, события возникали редко.

Отредактировал: mazdan, - 15.3.2012, 19:37


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Arsen_1999
сообщение 15.3.2012, 19:33
Сообщение #1852
Стаж: 14 лет

Сообщений: 85
Благодарностей: 9
Полезность: < 0

Цитата(test @ 15.3.2012, 19:30) *
Держите исходник сразу.

Код
#include <amxmodx>

#pragma semicolon 1

#define PLUGIN    "Stop Join Flood Exploit"
#define AUTHOR    "kostov"
#define VERSION    "1.0"
#define MAX_PLAYERS 32

new iJoinIP[MAX_PLAYERS][33], iCount[MAX_PLAYERS];
new iCvarEnable, iCvarBanLength, iCvarMaxConnect;

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    iCvarEnable     = register_cvar("amx_join_flood",            "1");
    iCvarBanLength     = register_cvar("amx_join_flood_banlength",    "1");
    iCvarMaxConnect = register_cvar("amx_join_flood_attempts",     "15");
}

public client_authorized(id)
{
    if (!(is_user_bot(id)) && (get_pcvar_num(iCvarEnable)))
    {
        new iUserIp[33], i; get_user_ip(id, iUserIp, sizeof iUserIp - 1, 1);
        new iMaxConnect = get_pcvar_num(iCvarMaxConnect);
        
        for(i = 0; i < MAX_PLAYERS; i++)
        {
            if (equal(iUserIp, iJoinIP[i], 32))
            {
                if (iCount[i] >= iMaxConnect)
                {
                    new uID[1], aID[1]; uID[0] = id; aID[0] = i;
                    set_task(3.0, "BanUserFlood", 77, uID[0], 1);
                    set_task(4.0, "ClearUserID", (id + MAX_PLAYERS), aID[0], 1);
                }
                else
                {
                    iCount[i]++;
                }
                break;
            }
        }

        if (i == MAX_PLAYERS)
        {
            new a;
            for(a = 0; a < MAX_PLAYERS; a++)
            {
                if (iJoinIP[a][0] == 0)
                {
                    get_user_ip(id, iJoinIP[a], 32, 1);
                    iCount[a]++;
                    break;
                }
            }
                
            if (a == MAX_PLAYERS)
            {
                for(new a = 0; a < MAX_PLAYERS; a++)
                {
                    iJoinIP[a][0] = 0;
                    iCount[a] = 0;
                }
            }
        }          
    }
}

public BanUserFlood(id[])
{
    new iUserIp[17]; get_user_ip(id[0], iUserIp, sizeof iUserIp - 1,1);
    new iUserIpPort[33]; get_user_ip(id[0], iUserIpPort, sizeof iUserIpPort - 1);
    server_cmd("addip %f %s", get_pcvar_float(iCvarBanLength), iUserIp);
    log_to_file("join_flood.log", "IP: %s", iUserIpPort);
}

public ClearUserID(i[])
{
    iJoinIP[i[0]][0] = 0;
    iCount[i[0]] = 0;
}

В архиве он есть.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.3.2012, 19:38
Сообщение #1853


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

мой ответ выше :) Арсен, не нужно таких цитат больших.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
test
сообщение 15.3.2012, 19:40
Сообщение #1854
Стаж: 19 лет

Сообщений: 72
Благодарностей: 4
Полезность: 0

mazdan, Не вникал в работу плагина. Но идея тоже хорошая. Для нормальной работы вообще только 27005 порта достаточно. Всё остальное можно резать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.3.2012, 19:45
Сообщение #1855


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Цитата(test @ 15.3.2012, 20:40) *
mazdan, Не вникал в работу плагина. Но идея тоже хорошая. Для нормальной работы вообще только 27005 порта достаточно. Всё остальное можно резать.

не стоит отрезать, это около 20% игроков.

Арсен не знаю уж как у вас так хукается client_authorized - почитайте - не хукается ни у кого. Я написал что у меня выстреливало иногда - сейчас поставлю на тест, скажу хукнется или нет

Отредактировал: mazdan, - 15.3.2012, 19:48


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
test
сообщение 15.3.2012, 19:47
Сообщение #1856
Стаж: 19 лет

Сообщений: 72
Благодарностей: 4
Полезность: 0

mazdan,
Я бы сказал 99%
....
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Reality
сообщение 15.3.2012, 20:00
Сообщение #1857


Стаж: 17 лет

Сообщений: 519
Благодарностей: 137
Полезность: 156

Цитата(test @ 15.3.2012, 19:47) *
mazdan,
Я бы сказал 99%
....

Микротик?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
test
сообщение 15.3.2012, 20:02
Сообщение #1858
Стаж: 19 лет

Сообщений: 72
Благодарностей: 4
Полезность: 0

АТО
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.3.2012, 20:07
Сообщение #1859


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Цитата(test @ 15.3.2012, 21:02) *
АТО

вы посчитайте там у вас штук 20-30 и из них штук 5 с другими портами точно => 20%
я же не просто так сказал - на сервере написал статус - там из 13 было 3 штуки => 20%


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.3.2012, 20:24
Сообщение #1860


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

результат - 470 коннектов хукнуто орфеем от флудера, 0 других событий. Разница между коннектами от флуда <=1 секунде
кусок из логов

L 03/15/2012 - 22:16:11: [noflood.amxx] FAKE CONNECT ORPHEU TIME DIFF >> 1
L 03/15/2012 - 22:16:12: [noflood.amxx] FAKE CONNECT ORPHEU TIME DIFF >> 1
L 03/15/2012 - 22:16:13: [noflood.amxx] FAKE CONNECT ORPHEU TIME DIFF >> 1 (флуд остановлен, чтобы я смог подключиться)
L 03/15/2012 - 22:16:19: [noflood.amxx] FAKE CONNECT ORPHEU TIME DIFF >> -4 я подключился, событие SV_ConnectClient
L 03/15/2012 - 22:16:19: [noflood.amxx] FAKE CONNECT CONNECT сработал client_connect()
L 03/15/2012 - 22:16:19: [noflood.amxx] FAKE CONNECT AUTHORIZED сработал client_cauthorized()
L 03/15/2012 - 22:16:23: [noflood.amxx] FAKE CONNECT PUTINSERVER cработал client_putinserver()

А логгировать на сервере может простых игроков и банить. Если игрок жмет отмену при подключении к серверу и снова заходит или несколько раз пробует зайти, а слотов нет. В плагине даже нет никакого временнОго промежутка. Любой клиент может быть забанен за несколько попыток входа.
Кто копировал версию плагина которую я в спойлере оставлял - там ошибочка была - я поправил.

Отредактировал: mazdan, - 15.3.2012, 20:27


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
112 страниц V  « 92 93 94 ... 110 111 »
 
Тема закрытаНачать новую тему
 
0 пользователей и 4 гостей читают эту тему: