Security Blog
Security Blog
Posted By Gregory

Transforme seu WordPress em Fort Knox

Como transformar o WordPress em uma fortaleza protegida como Fort Knox


English version: Turn your WordPress into Fort Knox


Este artigo pressupõe que desejamos obter um site protegido à prova de balas com tecnologia WordPress. Não é necessariamente seguir todas as etapas a seguir, palavra por palavra e ponto por ponto, exatamente como descrito. Mas eu recomendo isso se você quiser criar seu próprio Fort Knox.

Algumas das etapas a seguir podem ser a causa de alguns problemas de incompatibilidade com alguns plug-ins estranhos que tentam modificar arquivos diretamente nas pastas do WordPress. Recomendo ignorar quaisquer plugins desse tipo, pois usá-los pode levar a muitos problemas e questões de segurança imediatamente ou no futuro, quando hackers estudarem falhas nos plugins ou tema que está instalado em seu site. Criei este artigo na esperança de que seja útil, mas sem qualquer garantia.

Nota: este artigo não se aplica se você estiver usando hospedagem compartilhada. Você precisa ter, pelo menos, um site hospedado em VPS.

Requisitos: acesso root ao servidor Linux onde seu site está hospedado. Se você não tiver acesso shell com privilégios de root, não poderá fazer nada de útil para criar um site realmente protegido. Não há nenhuma maneira ou plug-in que possa proteger o WordPress e os arquivos em seus diretórios em nível PRO. Todos os plug-ins de segurança têm o mesmo nível de privilégios (permissões) que hackers e bots têm. Sem exceção. Se algum plugin de segurança fez algumas alterações nos arquivos do seu site para protegê-los, qualquer hacker ou código malicioso pode DESFAZER essas alterações ou remover a proteção.

Aqui estão alguns pontos importantes sobre minha abordagem

  • Todos os arquivos de código (código PHP) e todos os arquivos .htaccess devem ser protegidos contra gravação. Sem exceção
  • Precisamos alterar todos os padrões (pasta, cookies, caminho de login, quaisquer outros pontos de referência) para valores diferentes
  • Não devemos usar plugins ou temas que operem e tentar alterar arquivos PHP ou .htaccess nas pastas do WordPress

Passo um. Instalando WordPress

Não use o prefixo wp_ padrão para tabelas de banco de dados. Use alguns ou três símbolos do alfabeto. Alguns ataques e invasores específicos do WordPress presumem que o prefixo da tabela é wp_ . A alteração do prefixo nos ajuda a bloquear alguns ataques de injeção de SQL.

Passo dois. Fortalecendo o site no nível WordPress

  1. Mova a pasta de uploads um nível acima, de dentro da pasta /wp-content/ para a raiz da pasta de instalação do WordPress.
  2. Renomeie a pasta de uploads para mídia (ou algo parecido, o que você quiser).
  3. Renomeie a pasta wp-content para content (ou algo parecido, o que você quiser).
  4. Renomeie a pasta de plugins para mod (ou algo parecido, o que você quiser).
  5. Adicione as seguintes linhas ao início do arquivo wp-config.php , não se esqueça de alterar media , content , mod para os valores reais que você escolheu anteriormente .
     define('AUTOMATIC_UPDATER_DISABLED', verdadeiro); // sim, é seguro fazer isso manualmente
    define('DISALLOW_FILE_EDIT', verdadeiro); // nunca permitimos que ninguém toque em seus arquivos
    define('DISALLOW_FILE_MODS', verdadeiro); // sim, é seguro fazer isso manualmente
    define('FS_METHOD', 'direto'); // sem FTP é claro
    define('WP_HTTP_BLOCK_EXTERNAL', verdadeiro);
    define('UPLOADS', ' mídia ' ); // renomeamos os uploads e os elevamos de nível
    define('WP_CONTENT_DIR', '/caminho/para/wordpress/dir/ conteúdo '); // sem nome de host, sem barra final
    define('WP_CONTENT_URL', ' http://example.com/conteúdo ');
    define('WP_PLUGIN_DIR', '/caminho/para/wordpress/dir/ conteúdo / mod '); // sem nome de host, sem barra final
    define( ' WP_PLUGIN_URL', ' http://example.com/content/mod ');
    ini_set('display_errors',0); //desativa a exibição de erros de PHP no front-end

Passo três. Altere o nome dos cookies padrão.

Adicione estas linhas ao início do arquivo wp-config.php

 define('USER_COOKIE', 'meu_user_cookie' ); //mude para algo diferente
define('PASS_COOKIE', 'minha_pass_cookie' ); //mude para algo diferente
define('AUTH_COOKIE', 'meu_auth_cookie' ); //mude para algo diferente
define('SECURE_AUTH_COOKIE', 'meu_sec_cookie' ); //mude para algo diferente
define('LOGGED_IN_COOKIE', 'meu_cookie_logado' ); //mude para algo diferente
define('TEST_COOKIE', 'meu_cookie_teste' ); //mude para algo diferente

Etapa quatro. Instale um plugin de segurança imediatamente após a instalação do WordPress

Proteja sua página de login com WP Cerber Security . Mesmo com as etapas de proteção acima, os hackers tentarão aplicar ataques de força bruta (tentativas de login) para arrombar a porta do seu site WordPress. Esconda e feche esta porta com WP Cerber.

Etapa cinco. Protegendo o site no nível do servidor.

Nesta etapa presumo que você esteja usando um servidor com Apache como servidor http. Precisamos mudar o proprietário de todos os arquivos do WordPress, incluindo plugins e temas. Por padrão esse usuário é apache . Precisamos alterá-lo para outro usuário, que você já criou para esse fim. Digamos que este usuário seja cerber .

  1. Coloque o arquivo .htaccess na pasta media (sua nova pasta de uploads) com a seguinte diretiva. Isso evita que o site execute código PHP malicioso carregado.
     Motor php_flag desligado

    Nota: O arquivo de configuração do Apache deve conter a diretiva AllowOverride Options para sua pasta de uploads ou qualquer uma de suas pastas pai para que esta diretiva funcione.

  2. Para todo o diretório do site (/caminho/para/wordpress/dir), altere o proprietário e as permissões de todos os arquivos. Para fazer isso, execute os seguintes comandos no shell.
     encontrar /caminho/para/wordpress/dir -exec chown cerber:root {} +
    encontre /caminho/para/wordpress/dir -type d -exec chmod 755 {} +
    encontre /caminho/para/wordpress/dir -type f -exec chmod 644 {} +

  3. Para o diretório de uploads (/path/to/wordpress/dir/ media ), precisamos definir permissões especiais. Vamos fazer isso usando comandos exec no shell
     encontre /caminho/para/wordpress/dir/ media -exec chown cerber:apache {} +
    encontre /caminho/para/wordpress/dir/ media -type d -exec chmod 775 {} +
    encontre /caminho/para/wordpress/dir/ media -type f -exec chmod 664 {} +

  4. Configure a estrutura do link permanente nas configurações do WordPress e altere a permissão do arquivo .htaccess para protegê-lo contra gravação.
     chown cerber:root /caminho/para/wordpress/dir/.htaccess
    chmod 644 /caminho/para/wordpress/dir/.htaccess

  5. Mova o arquivo wp-config.php para o diretório acima do diretório de instalação do WordPress.

Etapa seis. Protegendo o site no nível do servidor NGINX

Leia aqui: Endurecimento do WordPress com WP Cerber e NGINX

Etapa sete. Fortalecendo o site com Fail2Ban

Leia aqui: Como proteger o WordPress com Fail2Ban


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.