Programación en Pawn - SAMP

Ayuda - Ataque a mi Servidor

¿Tienes dudas sobre un código? Consúltalas aquí y aprende cómo se solucionan diferentes tipos de errores.
Reglas del Foro

  • A la hora de realizar su pregunta, especifique bien los detalles y tenga buena ortografía, de esa manera el resto de los usuarios podrán entender su pregunta.
  • Recuerde proporcionar el código que le trae problemas y sus respectivos errores utilizando el BBCode [Pawn]Código aquí[/Pawn] en su mensaje.
  • En esta sección, sólo podrás publicar preguntas asociadas a programación en PAWN ("¿Cuál es la diferencia entre new y static?"), más no temas relacionados a pedir códigos ("¿Me pueden pasar el sistema de 'X' servidor?"). (Ir a Pedidos para publicar estos temas).
  • Si tu pregunta es relacionada con un GM publicado en PawnScript, no crees tu pregunta en esta sección, créala en el mismo tema desde donde obtuviste el GameMode.
  • Evita colocar títulos como: "[Pregunta]", "[Duda]", "[Ayuda]", etc. Los títulos deben ser descriptivos.
  • Si la pregunta es respondida, no modifiques el título ni el contenido de los mensajes del tema. Quizás le pueda servir a alguien más en otro momento.
  • Si la pregunta es respondida, el tema será movido a "Preguntas Solucionadas".
  • Si la pregunta no cumple con alguna de las reglas antes mencionadas o con las Normas del foro, el tema será movido a "Preguntas Cerradas" o a la Papelera.

Moderador: Ayudantes

Lo que pasa, es que estos ultimos dias han tirado el server, pero el problema es este.

Código: Seleccionar todo

[19:57:52] [connection] incoming connection: 181.129.125.14:21863 id: 0
[19:57:52] [connection] incoming connection: 190.159.109.145:23323 id: 1
[19:57:52] [connection] incoming connection: 174.76.2.21:21605 id: 2
[19:57:52] [connection] incoming connection: 181.211.125.2:32215 id: 3
[19:57:52] [connection] incoming connection: 186.185.52.173:38572 id: 4
[19:57:52] [connection] incoming connection: 186.155.177.68:25024 id: 5
[19:57:52] [connection] incoming connection: 186.86.200.172:25059 id: 6
[19:57:52] [connection] incoming connection: 190.25.191.72:37897 id: 7
[19:57:52] [connection] incoming connection: 190.137.104.196:32350 id: 8
[19:57:52] [connection] incoming connection: 190.163.146.87:31618 id: 9
[19:57:52] [connection] incoming connection: 190.108.8.199:26964 id: 10
[19:57:52] [connection] incoming connection: 181.78.11.80:34744 id: 11
[19:57:52] [connection] incoming connection: 181.103.191.60:28179 id: 12
[19:57:52] [connection] incoming connection: 181.105.63.213:30215 id: 13
[19:57:52] [connection] incoming connection: 186.155.32.193:38140 id: 14
[19:57:52] [connection] incoming connection: 190.199.71.29:20038 id: 15
[19:57:52] [connection] incoming connection: 181.17.37.176:28043 id: 16
[19:57:52] [connection] incoming connection: 190.150.139.60:29346 id: 17
[19:57:52] [connection] incoming connection: 181.138.117.119:29759 id: 18
[19:57:52] [connection] incoming connection: 190.71.188.26:38909 id: 19
[19:57:52] [connection] incoming connection: 190.108.127.89:28236 id: 20
Se conectan distintas IP's aprox unas 40-50 por segundo..

Que tipo de ataque podria ser y como se podria detener esto
Amigo Hola
eso es un Ataque Ddos o Bots por eso te voy a pasar un Anti Bots que encontre encontre en WIKI SA:MP
Spoiler:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172

#include <a_samp>
#pragma tabsize 0
#define red 0xFF0000AA
#define green 0x33FF33AA
#define Release_version 2.1
//=============================Configuracion====================================
#define MAX_CONNECTIONS_FROM_IP 5
#define MAX_R_ATTEMPTS 3
#define STATUS_SECONDS 15
#define RESET_CHECK 7
#define antinick_crash //si ya tienes un anticrash nombres de windows desactivalo poniendo "//" antes del "#"
#define antinick_spam //si quieres bloquear los nick spam debes habilitarlo si no usa "//"antes del "#"
#define Guardar_Logs //Si Quieres Guardar los Logs Del AntiBot Si No Pon "//" Antes del "#"
//=============================Configuracion====================================
new string2[256];

enum IP_DATA
{
	IP_ADDRESS[16],
	bool:Ignore
};

new
	IPDATA[MAX_PLAYERS][IP_DATA],
	JoinAttempts,
	JoinIP[16]
;

public OnFilterScriptInit()
{
	printf("\n--------------------------------------");
	printf("   Anti-Bots Proteccion V: %d Cargado   ",Release_version);
	printf("--------------------------------------\n");
	return 1;
}

public OnFilterScriptExit()
{
	printf("\n--------------------------------------");
	printf(" Proteccion Terminada Anti-Bots y Ataq. ");
	printf("--------------------------------------\n");
	return 1;
}

public OnPlayerConnect(playerid)
{
    new pame[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pame, sizeof(pame));
	new connecting_ip[32+1];
	GetPlayerIp(playerid,connecting_ip,32);
	new num_players_on_ip = GetNumberOfPlayersOnThisIP(connecting_ip);
	
	#if defined antinick_crash
		if(!strcmp("con",pame,true) || !strcmp("aux",pame,true) || !strcmp("prn",pame,true) || !strcmp("lptn",pame,true) || !strcmp("nul",pame,true) || !strcmp("clock$",pame,true))
	{
	    format(string2, sizeof(string2), "[ANTI-BOT]: %s a Sido Baneado Automaticamente [Razon: Nombre Reservado De Windows]", pame);
    	SendClientMessageToAll(red, string2);
    	#if defined Guardar_Logs
    	GuardarAntiBot("NameCrash",string2);
		#endif
    	printf(string2);
		Ban(playerid);
	}
	#endif
	
	#if defined antinick_spam
	if(NickSpam(pame))
	{
	    format(string2, sizeof(string2), "[ANTI-BOT]: ID: [%i] a Sido Baneado Automaticamente [Razon: NickName Spam]", playerid);
    	SendClientMessageToAll(red, string2);
    	printf(string2);
    	#if defined Guardar_Logs
    	GuardarAntiBot("NameSpam",string2);
    	#endif
		Ban(playerid);
	}
	#endif

	if(num_players_on_ip > MAX_CONNECTIONS_FROM_IP) {
 	format(string2, sizeof(string2), "[ANTI-BOT]: %s [%i] a Sido Baneado Automaticamente [Razon: Bot ( %d Bots Detectados )]", pame,playerid,MAX_CONNECTIONS_FROM_IP);
	SendClientMessageToAll(red, string2);
	#if defined Guardar_Logs
	GuardarAntiBot("AntiBot",string2);
	#endif
	Ban(playerid);
  	return 1;
	}

	new CurIP[16]; GetPlayerIp(playerid, CurIP, sizeof CurIP);
	for(new i=0; i<MAX_PLAYERS; i++)
    {
    	if(strlen(IPDATA[i][IP_ADDRESS]) > 2 && !strcmp(CurIP,IPDATA[i][IP_ADDRESS],false))
     	{
            AntiKickReconecction(playerid, CurIP);
            break;
        }
	}
    if (!strcmp(CurIP, JoinIP, false))
	{
	    JoinAttempts++;
	    if (JoinAttempts >= MAX_R_ATTEMPTS)
	    {
	        AntiKickReconecction(playerid, CurIP);
	    }
	} else JoinAttempts = 0;

    GetPlayerIp(playerid, JoinIP, sizeof(JoinIP));
return 1;
}

//==============================================================================
forward AntiKickReconecction(playerid, playerIP[]);
public AntiKickReconecction(playerid, playerIP[])
{
	format(string2,sizeof(string2),"[ANTI-BOT]: Bot/Kick Reconeccion %s [%i] a Sido Baneado!",PlayerName2(playerid),playerid);
 	SendClientMessageToAll(green,string2);
	Ban(playerid);
	return true;
}
//===============================Funciones======================================
stock GetNumberOfPlayersOnThisIP(test_ip[])
{
	new against_ip[32+1];
	new x = 0;
	new ip_count = 0;
	for(x=0; x<MAX_PLAYERS; x++) {
		if(IsPlayerConnected(x)) {
		    GetPlayerIp(x,against_ip,32);
		    if(!strcmp(against_ip,test_ip)) ip_count++;
		}
	}
	return ip_count;
}

stock PlayerName2(playerid) {
  new name[MAX_PLAYER_NAME];
  GetPlayerName(playerid, name, sizeof(name));
  return name;
}

forward GuardarAntiBot(filename[],text[]);
public GuardarAntiBot(filename[],text[])
{
	#if defined Guardar_Logs
	new File:Archivo, file[256], year,month,day, hour,minute,second;
	getdate(year,month,day); gettime(hour,minute,second);

	format(file,sizeof(file),"%s.txt",filename);
	Archivo = fopen(file,io_append);
	format(string2,sizeof(string2),"[%d.%d.%d %d:%d:%d] %s\r\n",day,month,year,hour,minute,second,text);
	fwrite(Archivo,string2);
	fclose(Archivo);
	#endif

	return 1;
}

	stock NickSpam(SPAM[])
	{

    new SpamDetected, CUENTAP,CUENTAN,CUENTAGB;
	for(SpamDetected = 0; SpamDetected < strlen(SPAM); SpamDetected ++)
	{
	    if(SPAM[SpamDetected] == '.') CUENTAP ++;
	    if(SPAM[SpamDetected] == '0' || SPAM[SpamDetected] == '1' || SPAM[SpamDetected] == '2' || SPAM[SpamDetected] == '3' || SPAM[SpamDetected] == '4' || SPAM[SpamDetected] == '5' || SPAM[SpamDetected] == '6' || SPAM[SpamDetected] == '7' || SPAM[SpamDetected] == '8' || SPAM[SpamDetected] == '9') CUENTAN ++; //Cuenta los Numeros
	    if(SPAM[SpamDetected] == '_') CUENTAGB ++;
	}
 	if(CUENTAP >= 3 && CUENTAN >= 7) return 1;
 	if(CUENTAGB >= 1 && CUENTAN >= 7) return 1;
 	if((strfind(SPAM, ".com", true) != -1 || strfind(SPAM, ".com.ar", true) != -1 || strfind(SPAM, ".org", true) != -1 || strfind(SPAM, ".net", true) != -1 || strfind(SPAM, ".es", true) != -1 || strfind(SPAM, ".tk", true) != -1) && CUENTAN >= 4 ) return 1;
	return 0;
	}
  Cantidad de llaves: Abiertas(19)-Cerradas(19) | Lineas Totales: 172
El problema puede ser el host donde estas alojado, o no tiene protección Anti-DDoS o la protección no es muy buena. Tendrás que mudarte a otro host.

¿Quién está conectado?

En total hay 2 usuarios conectados :: 0 registrados, 1 oculto y 1 invitado (basados en usuarios activos en los últimos 5 minutos)
La mayor cantidad de usuarios identificados fue 855 el 27 May 2018 00:03

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado