Ads

Este tutorial é indicado para quem administra, gerencia VPS, dedicados ou serviços em nuvem que rodam Apache.

Embora seja possível bloquear o arquivo xmlrpc.php do WordPress usando plugins ou até mesmo configurações personalizadas no arquivo .htacess nem sempre podemos contar que usuários do WordPress irão se preocupar com estas questões de segurança.

Se você utiliza Apache, mesmo com NIGNX configurado como proxy reverso você pode facilmente bloquear acesso a arquivos comuns do WordPress que recebem ataques;

Neste exemplo irei bloquear o xmlrpc.php de todos os sites do servidor e que quando acessados o servidor irá retornar 403, ou seja, acesso proibido.

Porque devemos bloquear o arquivo xmlrpc.php do WordPress?

O arquivo xmlrprc.php pode ser usado para ativar um ataque no seu site usando pingbacks e gerar uma carga alta de uso de recursos do servidor, em alguns casos o servidor pode ficar muito lento ou até mesmo indisponível.

Outro problema, é que o xmlrprc.php permite autenticações de usuários sendo uma forma interessante de se fazer um ataque de força bruta em seu site se ele não estiver devidamente protegido.

Como bloquear o acesso ao XMLRPC em todo o servidor.

  1. Verifique se realmente o acesso ao xmlrpc é permitido em seu servidor ou VPS. Tente acessar o xmlrpc.php de algum site seu.


  2. Localize a pasta de configuração do Apache. Em servidores com CPanel normalmente esta pasta padrão fica em /etc/apache2/conf.d/, já em servidores com CWP a pasta pode ficar em /usr/local/apache/

    cd /etc/apache2/conf.d/

  3. Crie e edite um arquivo novo com o nome de block.conf;

    nano block.conf

    OBS: Caso não tenha o nano instalado em seu servidor, instale-o. Em servidores baseados em RedHat / Fedora / CentOS use o comando yum install nano
  4. Acrescente o seguinte código;

    <Files xmlrpc.php>
    order deny,allow
    deny from all
    </Files>

  5. Salve o arquivo usando o atalho Ctrl + X e em seguida pressione Y.
  6. Reinicie o apache.

    service httpd restart

  7. Feito! Agora teste;



Alternativa com FilesMatch

Uma alternativa para o código do arquivo block.conf seria usar a diretiva FilesMatch do Apache, neste caso o conteúdo do arquivo ficaria assim;

<FilesMatch "(^.|wp-config.php|xmlrpc.php|(liesmich|readme).*)">
Require all denied
</FilesMatch>

Ads

Anderson Oliveira

Anderson Oliveira é desenvolvedor, escritor e docente no CEETPS - Centro Estadual de Educação Tecnologia de São Paulo. Atualmente trabalha na Administração Central do CPS e leciona aulas de programação na Etec Prof. Carmine Biagio Tundisi de Atibaia.