Bots bater xmlrpc.php e causando alta carga no servidor

1

Recentemente, estamos tendo muitos acessos ao wordpress xmlrpc.php, o que, no final, causa alta carga nos servidores.

Nós tentamos reescrever todo o xmlrpc.php para 127.0.0.1, mas não ajudou muito. Já que o apache ainda estava lidando com as conexões. No final, bloqueamos esse tipo de conexão usando

iptables -I INPUT 1 -p tcp --dportar 80 -m string --string "xmlrpc.php" --algo bm -j DROP

Infelizmente, tudo isso está causando problemas com plugins que usam xmlrpc.php como o jetpack etc.

Alguém teve experiência com esse tipo de problema e tem algumas sugestões sobre como lidar com isso?

Editar: É possível adicionar uma regra adicional que permita o acesso do intervalo de IP do wordpress? Como seria essa regra desde que a regra de bloqueio está usando string?

    
por DasGjinovskaLignja 31.12.2015 / 09:59

3 respostas

3

A regra de firewall que você descreveu tem 2 problemas:

  1. Você deve fazer alguns limites de taxa, em vez de apenas bloquear tudo.

  2. Usar o módulo de string no firewall não é muito inteligente devido a motivos de desempenho.

Sua melhor escolha é colocar o HAProxy na frente do Apache. Você pode dar uma olhada na minha resposta em este post para mais detalhes sobre como fazer e por quê.

    
por 31.12.2015 / 10:10
2

Minha experiência pessoal nesse tipo de coisa é evitar "corrigir" o problema. Não bloqueie um bot atingindo um link. Outros bots apenas entrarão e acertarão outros links. Você precisa configurar algum tipo de força bruta / proteção que bloqueie ocorrências repetitivas em seu servidor.

ModSecurity é ótimo para isso e é um apache embutido se você estiver usando o apache como seu servidor web.

Se você não é você mencionou wordpress. O Wordpress tem vários plugins para bloquear este tipo de atividade repetitiva. WordFence é uma boa que nós tivemos sucesso com nossos clientes no uso.

No geral, eu recomendo que você corrija a causa raiz e não apenas tente consertar a instância singular.

    
por 31.12.2015 / 18:37
1

A minha sugestão é sobre o assunto, por favor tente bloquear o acesso adicionando este código em

.htaccess
<Files "xmlrpc.php">
Order Deny,Allow
Deny from all
</Files>
    
por 31.12.2015 / 10:16