Esta semana a Base de Conhecimento ficou fora do ar devido a um ataque DDoS. Ele estava atacando uma falha conhecida no WordPress causada pelo XML RPC habilitado para pingbacks.
Os sintomas eram a dificuldade para acessar o site, que ficou muito lento devido a quantidade de requisições sendo realizadas ao arquivo “xmlrpc.php” contido no pacote do WordPress.
Para detectar o ataque é muito simples, visualize a quantidade de conexões abertas para determinados endereços IPs em seu servidor. No linux isto pode ser feito através do comando:
netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
Em meu servidor foram detectados dois endereços (51.15.50.51 e 51.15.51.63) com 300 conexões abertas cada um.
A primeira ação foi bloqueá-los via Firewall executando os comandos abaixo:
sudo su iptables -A INPUT -s 51.15.50.51 -j DROP iptables -A INPUT -s 51.15.51.63 -j DROP
Para que estes endereços permaneçam bloqueados mesmo depois do servidor ser reiniciado, execute:
iptables-save > /opt/bitnami/iptables-rules crontab -e
Abrirá o editor, adicione a linha abaixo e salve:
@reboot /sbin/iptables-restore < /opt/bitnami/iptables-rules
Reinicie o servidor.
Agora, estes endereços estão boqueados. Mas outros atacantes podem aparecer, então será necessário bloquear o acesso do arquivo xmlrpc.php a qualquer usuário. Para fazer isso, edite o arquivo .htaccess de sua instalação WordPress (geralmente na pasta raiz, mas para os usuários da instalação BitNami este arquivo se localiza na pasta /opt/bitnami/apps/wordpress/conf/htaccess.conf) adicionando o código abaixo:
<Directory "/opt/bitnami/apps/wordpress/htdocs"> # Only allow direct access to specific Web-available files. # protect xmlrpc <IfModule mod_alias.c> RedirectMatch 403 /xmlrpc.php </IfModule> </Directory>
Observação 1:Lembre-se de modificar o diretório para conter a pasta onde estão os arquivos do WordPress em sua instalação.
Observação 2:Lembre-se que para alterar o arquivo acima, será necessário ter permissão:
sudo su chmod 777 htaccess.conf
Finalizada a modificação retorne a permissão para a original por motivos de segurança:
sudo su chmod 644 htaccess.conf
Agora você deve reiniciar o servidor apache e pronto.
Observação: Caso deseje remover aqueles endereços IPs que estavam atacando do bloqueio via Firewall, basta executar o comando abaixo:
sudo su iptables -D INPUT -s 51.15.50.51 -j DROP iptables -D INPUT -s 51.15.51.63 -j DROP
Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (2003), e especialista em Engenharia de Software pela Universidade Salvador (2010). Exerce atualmente o cargo de Analista Judiciário na Justiça do Trabalho.