Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
  • 0

Ataque DDOS


badcorp
 Compartilhar

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 1
Grego
Alerta de post de qualidade! WebCheats aprovou!

Crazy Player-1 recebeu a conquista Suporte Excelente e 100 pontos!


um host com proteção ddos syn, e ou um programa de bloqueio, como o ataque acontece no socket o flood pode acontecer na hora que o socket se conecta, o atacante pode ficar enviando varias aberturas de conexão, oque vai inundar a fila do seu socket fazendo com que novas conexão não sejam estabelecidas e faz com que os jogadores não consigam logar no seu jogo, se você preferir pode implementar algo no accept do socket.
Exemplo:
defina uma variavel do tipo fd_set e uma array ou vetor de string para armazenar os ips conectados na estrutura do seu servidor de forma que ela seja acessivel no socket exemplo: 
no meu caso em cServer.h
 

É necessário se cadastrar para acessar o conteúdo.


em cServer.cpp
 

É necessário se cadastrar para acessar o conteúdo.


em Basedef ou no local que tu achar mais adequado crie um método para verificação 
 

É necessário se cadastrar para acessar o conteúdo.

metodo que faz o bloqueio pode ser adicionado tambem no basedef
estamos usando o firewall do windows para efetuar o bloqueio pois seria a unica forma
de não receber mais flood desse endereço
 

É necessário se cadastrar para acessar o conteúdo.

agora onde esta o accept do seu socket caso não tenha voce adiciona.
 

É necessário se cadastrar para acessar o conteúdo.

o std::vector<std::string> IpBlockList; seria para tu armazenar os ips bloqueados para vc salvar em algum lugar para seu controle de ips bloqueados, e até mesmo para desboquer ips.

Atenção: isso é um exemplo de como voce poderia fazer manualmente, não é para copiar e colar no seu servidor achando que vai funcionar.

a ideia aqui é capturar as conexões por ip, definir um limite de conexões pendentes por ip, cuidado que um limite baixo voce pode pegar jogadores que não estejam atacando, por isso repito isso é um exemplo para talvez te dar uma ideia.

talvez seu exe precise de permissão de admin para conseguir executar  a rotina de bloqueio no firewall

voce vai precisar da lib netfw

Link para o comentário
Compartilhar em outros sites

  • 0
14 horas atrás, Crazy Player-1 disse:

um host com proteção ddos syn, e ou um programa de bloqueio, como o ataque acontece no socket o flood pode acontecer na hora que o socket se conecta, o atacante pode ficar enviando varias aberturas de conexão, oque vai inundar a fila do seu socket fazendo com que novas conexão não sejam estabelecidas e faz com que os jogadores não consigam logar no seu jogo, se você preferir pode implementar algo no accept do socket.
Exemplo:
defina uma variavel do tipo fd_set e uma array ou vetor de string para armazenar os ips conectados na estrutura do seu servidor de forma que ela seja acessivel no socket exemplo: 
no meu caso em cServer.h
 

É necessário se cadastrar para acessar o conteúdo.


em cServer.cpp
 

É necessário se cadastrar para acessar o conteúdo.


em Basedef ou no local que tu achar mais adequado crie um método para verificação 
 

É necessário se cadastrar para acessar o conteúdo.

metodo que faz o bloqueio pode ser adicionado tambem no basedef
estamos usando o firewall do windows para efetuar o bloqueio pois seria a unica forma
de não receber mais flood desse endereço
 

É necessário se cadastrar para acessar o conteúdo.

agora onde esta o accept do seu socket caso não tenha voce adiciona.
 

É necessário se cadastrar para acessar o conteúdo.

o std::vector<std::string> IpBlockList; seria para tu armazenar os ips bloqueados para vc salvar em algum lugar para seu controle de ips bloqueados, e até mesmo para desboquer ips.

Atenção: isso é um exemplo de como voce poderia fazer manualmente, não é para copiar e colar no seu servidor achando que vai funcionar.

a ideia aqui é capturar as conexões por ip, definir um limite de conexões pendentes por ip, cuidado que um limite baixo voce pode pegar jogadores que não estejam atacando, por isso repito isso é um exemplo para talvez te dar uma ideia.

talvez seu exe precise de permissão de admin para conseguir executar  a rotina de bloqueio no firewall

voce vai precisar da lib netfw

 

 

Opa, tudo bem? Achei interessante sua ideia pra lidar com flood, mas tem umas coisas que podem complicar a vida no longo prazo. Usar FD_SET funciona em cenários pequenos, mas conforme o número de conexões cresce, ele vira um gargalo, e vai matar o windows. Também notei que a lógica no accept tá um pouco sobrecarregada. Colocar muita coisa ali pode travar o servidor se o ataque for intenso. Passar a verificação pra outra thread ou fila de processamento seria mais seguro.

 

Por fim, lembrem que isso protege só de floods básicos. Ataques DDoS distribuídos ou volumétricos precisam de proteção externa, como um proxy reverso ou um serviço dedicado tipo Cloudflare. Minha sugestão? Investe em um VPS de qualidade.

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.