O que você quer é Fail2ban (assumindo que esta seja uma máquina Linux, você não disse ...)
O que é o Fail2ban?
Fail2ban analisará os logs do sistema, procurando por expressões regulares específicas a serem bloqueadas. Quando encontra uma correspondência (ou várias correspondências do mesmo IP, dependendo de como você a configura), ele será bloqueado, geralmente através do IPTables. Normalmente, isso é usado para bloquear tentativas de autenticação com falha contra SSH ou servidores da web.
Você o configura para bani-los por um período de tempo definido (pode ser minutos, pode levar dias ... depende de quão persistentes eles são), após o qual o banimento expirará, a menos que tente novamente.
Como isso ajuda a bloquear os robôs de verificação do phpmyadmin?
Ele pode ser usado com a mesma facilidade para corresponder a sinais comuns de um ataque, como tentar acessar pastas phpmyadmin inexistentes. Você precisará descobrir a expressão regular correta para corresponder a essas tentativas e garantir que não bloqueie usuários legítimos.
A configuração fornecida nesta postagem do blog pode funcionar literalmente ou exigir alguns ajustes na sua configuração.
Por que eu deveria bloqueá-los? Os erros 404 não custam muito
Bloqueá-los no iptables DEVE ter alguma utilidade - as probabilidades são de que, se estiverem verificando vulnerabilidades do phpmyadmin, eles também podem tentar outros serviços, até encontrarem algo que funcione. A proibição deles fará com que a maioria dos bots / scripts desista depois de um tempo, e eles passarão a alvos melhores.
Mesmo com as verificações não custando muito (a menos que encontrem uma vulnerabilidade), elas inundam seus logs, dificultando a visualização de ataques e problemas bem-sucedidos no servidor da web.
Como diz o comentário abaixo, o Fail2ban requer alguns recursos do sistema. Mas não muito. No mínimo, posso dizer que nunca tive um problema de desempenho que pudesse atribuir ao Fail2ban. No entanto, tive problemas de desempenho de scripts muito agressivos, tentando usar senhas de força bruta ou lançando milhares de tentativas de injeção de SQL e outras explorações por segundo no meu servidor. Bloqueá-los no nível do firewall leva MUITO menos recursos do que bloqueá-los no nível do servidor / aplicativo. Também pode ser estendido para executar scripts personalizados para banir endereços IP - portanto, em vez de bani-los em tabelas de IP, você pode bani-los em um firewall de hardware ou enviar um e-mail a alguém se a mesma pessoa continuar tentando atacá-lo para que você possa reclamar ao provedor de serviços de Internet ou peça ao seu datacenter que os bloqueie nos firewalls.
Alguma outra dica?
É ALTAMENTE RECOMENDADO que você coloque na lista branca alguns endereços IP que você controla para não se bloquear acidentalmente.