[Ajuda] Seguranзa RCON
#1

Olб amigos, hoje fui ver o log do servidor e vi que no host o log ficava aumentando rapidamente, quando fui olha tinha, acho que um bot ou algum tipo de hack tentando pega a rcon loucamente, int usei varios modos como RCON 0 e isso
pawn Код:
public OnRconLoginAttempt(ip[], password[], success)
{
    new pIP[20],
    pName[MAX_PLAYER_NAME];
    if(success)
    {
        for(new i; i < GetMaxPlayers(); i++)
        {
            GetPlayerIp(i, pIP, sizeof(pIP));
            if(strcmp(pIP, ip, true) != 0) continue;
            GetPlayerName(i, pName, sizeof(pName));
            if(!strcmp(pName, "Meunick:D", true) || !strcmp(pName, "Meunick:D", true)) // vc pode definir mais ou menos nicks
            {
                SendClientMessage(i, -1, "Bem vindo a Administraзгo pela RCON");
            }
            else
            {
                Ban(i);
            }
            break;
        }
    }
    return 1;
}
mais nгo fuicionou nenhum dos modos o bot ainda estб nesse exato momento tentando pegar a RCON olhem
pawn Код:
[13:11:29] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:30] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:30] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:30] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:31] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:31] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:31] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:31] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:32] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:32] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:32] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:32] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:32] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:33] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:33] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:33] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:33] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:34] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:34] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:34] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:34] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:35] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:35] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:36] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:36] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:36] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:36] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:37] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:39] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:40] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:40] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:40] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:40] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:42] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:42] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:42] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:43] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:43] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:43] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:43] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:44] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:44] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:44] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:44] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:45] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:46] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:46] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:46] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:46] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:47] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:47] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:47] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:47] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:47] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:48] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:48] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:48] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:48] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:49] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:49] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:49] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:49] BAD RCON ATTEMPT BY: 201.19.107.111
[13:11:50] BAD RCON ATTEMPT BY: 201.19.107.111
ja usei ate /rcon banip mais nao fuciona
Reply
#2

Tente colocar um BlockIpAdress.
Reply
#3

Recomendo nгo usar a RCon, crie uma outra rcon. Um exemplo de rcon que acabei de criar:
pawn Код:
//Topo
new senha_rcon[50];

new bool:Nova_Rcon[500];

//OnGameModeInit
GetServerVarAsString("rcon_password", senha_rcon, sizeof senha_rcon);

//Comando
CMD:logarrcon(playerid, params[])
{
    if(Nova_Rcon[playerid] == true) return SendClientMessage(playerid, -1, "Vocк jб estб logado na RCON.");
    if(sscanf(params, "s", senha)) return SendClientMessage(playerid, -1, "Use: /logarrcon [senha]");
    if(!strcmp(senha, senha_rcon, true) == 0) return Kick(playerid);
    Nova_Rcon[playerid] = true;
    return 1;
}
CMD:gmx(playerid)
{
    if(Nova_Rcon[playerid] == false) return SendClientMessage(playerid, -1, "Vocк nгo estб logado na rcon");
    SendRconCommand("gmx");
    return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
    new ip2[20],i=0;;
    while(i<500; i++)
    {
        if(IsPlayerConnected(i))
        {
            GetPlayerIp(i, ip2, sizeof ip2);
            if(strcmp(ip, ip2, true) == 0)
            {
                Kick(i);
                break;
            }
            else
            {
                i++;
                continue;
            }
        }
    }
    return 1;
}
Neste modo ele usa a senha da rcon mas nгo loga pelo comando /rcon login.
Reply
#4

cara nгo fucionou fiz um teste assim, so para bloquiar o ip desse mlk ae so para teste mais nao fuciona
pawn Код:
public OnRconLoginAttempt(ip[], password[], success)
{
        if(!success)
    {
        BlockIpAddress("201.19.107.111", 60 * 1000);
    }
Reply
#5

Para usar estб funзгo vocк tem que estar coma versгo 0.3z R2-2 ou superior, caso nгo tenha baixe a versгo 0.3z R4 que eu acho que й a ultima versгo.

https://sampforum.blast.hk/showthread.php?tid=531302
Reply
#6

ae gente consegui fazer varios modos porque nem uso a rcon mesmo, vou deixa abaixo o code que eu fui editando aqui que peguei em outro topico caso alguem um dia esteja com o mesmo problema

pawn Код:
public OnRconLoginAttempt(ip[], password[], success)
{
    new pIP[20],
    pName[MAX_PLAYER_NAME];
    if(success)// Caso o player logue na Rcon
    {
        for(new i; i < GetMaxPlayers(); i++)
        {
            //aqui sua variavel de login, esse minha so e chamada apos fazer o login
            //Caso o player logar na rcon antes de fazer login na dialog toma ban como estб la em baixo no ELSE
            // \/ \/ \/ \/ \/
            if (APlayerData[i][LoggedIn] == true)
            {
                GetPlayerIp(i, pIP, sizeof(pIP));
                if(strcmp(pIP, ip, true) != 0) continue;
                GetPlayerName(i, pName, sizeof(pName));
                if(!strcmp(pName, "[FxT]LoocK.", true) || !strcmp(pName, "[FxT]LoocK.", true)) //aqui vocк coloca so para vocк logar na rcon caso nгo seja vocк tomara ban
                {
                    SendClientMessage(i, -1, "Bem vindo a Administraзгo via RCON");
                }
                else
                {
                    Ban(i);//ban o player caso nгo seja vocк que logue na rcon
                }
                break;
            }
            else
                Ban(i);//ban o player caso nгo logue na dialog antes de logar na rcon
        }
    }
    if(!success)
    {
        Ban(ip);//ban o player caso erre a senha
    }
    return 1;
}
Reply
#7

Quote:
Originally Posted by ExPLORE
Посмотреть сообщение
ae gente consegui fazer varios modos porque nem uso a rcon mesmo, vou deixa abaixo o code que eu fui editando aqui que peguei em outro topico caso alguem um dia esteja com o mesmo problema

pawn Код:
public OnRconLoginAttempt(ip[], password[], success)
{
    new pIP[20],
    pName[MAX_PLAYER_NAME];
    if(success)// Caso o player logue na Rcon
    {
        for(new i; i < GetMaxPlayers(); i++)
        {
            //aqui sua variavel de login, esse minha so e chamada apos fazer o login
            //Caso o player logar na rcon antes de fazer login na dialog toma ban como estб la em baixo no ELSE
            // \/ \/ \/ \/ \/
            if (APlayerData[i][LoggedIn] == true)
            {
                GetPlayerIp(i, pIP, sizeof(pIP));
                if(strcmp(pIP, ip, true) != 0) continue;
                GetPlayerName(i, pName, sizeof(pName));
                if(!strcmp(pName, "[FxT]LoocK.", true) || !strcmp(pName, "[FxT]LoocK.", true)) //aqui vocк coloca so para vocк logar na rcon caso nгo seja vocк tomara ban
                {
                    SendClientMessage(i, -1, "Bem vindo a Administraзгo via RCON");
                }
                else
                {
                    Ban(i);//ban o player caso nгo seja vocк que logue na rcon
                }
                break;
            }
            else
                Ban(i);//ban o player caso nгo logue na dialog antes de logar na rcon
        }
    }
    if(!success)
    {
        Ban(ip);//ban o player caso erre a senha
    }
    return 1;
}
Pra mandar mensagem global tipo

| BAN | O player [FxT]LoocK. foi banido por tentar logas na rcon

Й sу adicionar SendClientMessage ?
Reply
#8

muda isso
pawn Код:
if(!success)
{
    new MsgBan[128];
    format(MsgBan,sizeof(MsgBan),"|BAN|O jogador %s foi banido por logar na rcon", pName(ip));
    SendClientMessage(-1, MsgBan);
    Ban(ip);
}
Reply
#9

Quote:
Originally Posted by ExPLORE
Посмотреть сообщение
pawn Код:
SendClientMessage(-1, MsgBan);
pawn Код:
//Acho que seria:

SendClientMessageToAll(-1, MsgBan);
Reply
#10

Код:
(33597) : error 017: undefined symbol "APlayerData"
(33597) : warning 215: expression has no effect
(33597) : error 001: expected token: ";", but found "]"
(33597) : error 029: invalid expression, assumed zero
(33597) : fatal error 107: too many error messages on one line
Linha :

pawn Код:
if (APlayerData[i][LoggedIn] == true)
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)