Aspire
Koineks
  • 04-02-2013, 17:24:23
    #1
    1/2
    Merhaba Arkadaşlar, Bugün sunucularıma gelen saldırı üzerine bu konuyu açıyorum .Sunucularında eklenti kullanmayıpda IPTables ile fixleyenler için açtım.HLDS Fake Players ın yeni 2012 sürümü çıktı bu sürümle beraber farklı port kombinasyonları ve farklı hız akışıyla IPTables ve eski flood eklentisini atlatıp sunucuya saldırı yapabiliyor.Fixini Paylaşıyorum Sıkıntısı Olan Arkadaşlar hemen uygulasınlar.Bazı çoluk çocuklar ellerine oyuncak geçince firmalara saldırıp ekmekleriyle oynamaya çalışıyorlar.Dediğim kişiler kendilerini biliyorlar eminim o kişiler yorumda atıcaktır kendini belli etmeden uzatmadan eklenti kaynak kodlarını veriyorum

    PHP- Kodu:
    #include <amxmodx> 
    #include <orpheu> 
    #define PLUGIN "Anti flood" 
    #define VERSION "1.1" 
    #define AUTHOR "kanagava" 
    //native halflife_time ( ) 
    // Ajustes menores al plug-in 
    new MAX_WARN=// El número de advertencias después de que la IP se prohibió recomendado [1-2] 
    new CONN_TIME=// Tiempo mínimo entre conexiones al servidor para permitir 
    // (Si las conexiones entre segundo conn_time más pequeños de la prueba) se recomienda [1-3] 
    new CONN_TIME_IP=// El tiempo mínimo entre las conexiones de una IP a emitir advertencias recomendadas [1-5] 
    new RST_WARN_TIME_IP=10 // Tiempo máximo entre las conexiones de una IP a restablecer advertencias 
    // Necesidad [RST_WARN_TIME_IP>CONN_TIME_IP] 

    new Msg[256
    new 
    OrpheuHook:handlePrintf 
    new ip_list[5][16
    new 
    time_list[5
    new 
    warn_list[5
    new 
    old_time 
    new registered 
    public plugin_init() 

        
    register_plugin(PLUGINVERSIONAUTHOR
        
    set_task(5.0"regfunctions")  
        
    register_srvcmd("floodlist","floodlist")  


    public 
    regfunctions() 

        
    //log_amx("try to reg_func") 
        
    OrpheuRegisterHook(OrpheuGetFunction("SV_ConnectClient"),"OnSV_ConnectClientPre"OrpheuHookPre
        
    OrpheuRegisterHook(OrpheuGetFunction("SV_ConnectClient"),"OnSV_ConnectClientPost"OrpheuHookPost
        
    server_cmd("mp_logecho 1"
        
    server_cmd("log on"


    public 
    OrpheuHookReturn:OnSV_ConnectClientPre() 

        
    registered=
        
    if(get_systime()-old_time <= CONN_TIME
        { 
            
    //log_amx("Reg %d %d ",halflife_time ( ), get_systime()) 
            
    handlePrintf OrpheuRegisterHookOrpheuGetFunction"Con_Printf" ), "Con_Printf" OrpheuHookPre); 
            
    registered=
            
    //log_amx("Reg %d %d ",halflife_time ( ), get_systime()) 
        

        
    old_time=get_systime() 
        return 
    OrpheuIgnored



    public 
    OrpheuHookReturn:OnSV_ConnectClientPost() 

        if(
    registered
        { 
            
    OrpheuUnregisterHook(handlePrintf
            
    //log_amx("Unreg %d %d ",halflife_time ( ), get_systime()) 
        

        return 
    OrpheuIgnored


    public 
    OrpheuHookReturn:Con_Printf(const a[], const message[] ) 

        
    registered=
        
    if (containi(message,"^" connectedaddress ^"")!=-1
        { 
            new 
    msg[256
            
    copy(msg,255,message
            
    checkip(msg
        } 
        return 
    OrpheuIgnored


    public 
    floodlist() 

        new 
    h_time[32
        
    console_print(0,"Floodding IP list by Dan'ka :D"
        for (new 
    i=0;i<5;i++) 
            {    if(
    time_list[i]!=0
        { 
            
    format_time h_time,31"%d.%m %H:%M:%S",time_list[i]) 
            
    console_print(0,"[%d] [IP %s] [TIME %s]   [WARN's %d]",i,ip_list[i],h_time,warn_list[i]) 
        } 



    public 
    checkip(message[]) 

        new 
    len=255 
        
    new temp_right[256],temp_left[256],conn_ip[256
        
    formatexMsg,charsmaxMsg ),"%s"message ); 
        
    split(Msgtemp_leftlentemp_rightlen"^" connectedaddress ^""
        
    strtok(temp_rightconn_iplentemp_rightlen':'
        new 
    mintime 
        
    new replace_index 
        mintime
    =get_systime() 
        for (new 
    i=0;i<5;i++) 
        { 
            if (
    time_list[i]<mintime 
            { 
                
    mintime=time_list[i
                
    replace_index=
            

            
        } 
        new 
    ipwarn 
        ipwarn
    =false 
        
    for (new i=0;i<5;i++) 
        {    
            if (
    equal(conn_ip,ip_list[i]) && !equal(conn_ip,"")) 
            { 
                if ((
    get_systime()-time_list[i])<CONN_TIME_IP
                { 
                    
    warn_list[i]=warn_list[i]+
                    
    if(warn_list[i]>MAX_WARN
                    { 
                        
    //log_amx("Ban %d %d ",halflife_time ( ), get_systime()) 
                        
    log_amx("[NOFLOOD] Connection flood detected from ip %s",conn_ip
                        
    server_cmd("addip 120.0 %s",conn_ip
                    } 
                } 
                else 
                { 
                    if ((
    get_systime()-time_list[i])>RST_WARN_TIME_IP
                        
    warn_list[i]=
                

                    
                
    time_list[i]=get_systime() 
                
    ipwarn=true 
                
    break 
            } 
        } 
            
        if (!
    ipwarn
        { 
            
    warn_list[replace_index]=
            time_list
    [replace_index]=get_systime() 
            
    copy(ip_list[replace_index],15,conn_ip
        } 

    PHP, Linux, Clustering, Access list birlikteliği..
  • Sponsor Reklam
  • 04-02-2013, 17:55:28
    #2
    1/2
    Ellerine sağlık kardeşim.Serverime son zamanlarda fazlasıyla saldırı alıyordum bende.Çok işime yaradı ellerine emeğine sağlık teşekkür ederim.
  • 04-02-2013, 18:18:44
    #3
    1/2
    paylaşım için teşekürler alper IPTables kulanmayanlar için ideal bende deniyorum
    2004 - 2012
  • 04-02-2013, 18:29:50
    #4
    1/2
    Teşekkür ederim kardeşim paylaşım için çalışıyorsun yapıyorsun emeğine sağlık işime yaradı benimde..