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 queremos obter um site protegido à prova de balas com WordPress. Não é necessário executar 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 plugins estranhos que tentam modificar arquivos diretamente nas pastas do WordPress. Eu recomendo ignorar qualquer plug-in desse tipo, porque usá-los pode levar a muitos problemas e problemas de segurança imediatamente ou no futuro, quando os hackers estudaram falhas nos plug-ins ou no tema instalado em seu site. Eu criei este artigo na esperança de que seja útil, mas sem qualquer garantia.

Observação: este artigo não se aplica se você estiver usando hospedagem compartilhada. Você precisa ter, pelo menos, um site hospedado por 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 útil para criar um site protegido real. Não há nenhuma maneira ou qualquer plug-in que possa proteger o WordPress e os arquivos em seus diretórios no 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. Sem exceção. Se algum plugin de segurança fez alguma alteração 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 tentem alterar arquivos PHP ou .htaccess nas pastas do WordPress

Passo um. Instalando o WordPress

Não use o prefixo wp_ padrão para tabelas de banco de dados. Em vez disso, use dois ou três símbolos do alfabeto. Alguns ataques e invasores específicos do WordPress assumem que o prefixo da tabela é wp_ . Alterar o prefixo nos ajuda a bloquear alguns ataques de injeção de SQL.

Passo dois. Endurecimento do site no nível do 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 assim, o que você quiser).
  3. Renomeie a pasta wp-content para content (ou algo assim, o que você quiser).
  4. Renomeie a pasta de plugins para mod (ou algo assim, 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 atuais que você escolheu anteriormente .
     define('AUTOMATIC_UPDATER_DISABLED', true ); // sim, é seguro fazer manualmente
    define('DISALLOW_FILE_EDIT', true ); // nunca permitimos que ninguém toque em seus arquivos
    define('DISALLOW_FILE_MODS', true ); // sim, é seguro fazer manualmente
    define('FS_METHOD', 'direct'); // sem FTP é claro
    define('WP_HTTP_BLOCK_EXTERNAL', true );
    define('UPLOADS', ' mídia '); // renomeamos uploads e subimos 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/ content ');
    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); // desliga a exibição de erros do PHP no front-end

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

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

 define('USER_COOKIE', 'my_user_cookie' ); // muda para algo diferente
define('PASS_COOKIE', 'my_pass_cookie' ); // muda para algo diferente
define('AUTH_COOKIE', 'meu_auth_cookie' ); // muda para algo diferente
define('SECURE_AUTH_COOKIE', 'my_sec_cookie' ); // muda para algo diferente
define('LOGGED_IN_COOKIE', 'my_logged_cookie' ); // muda para algo diferente
define('TEST_COOKIE', 'meu_teste_cookie' ); // muda para algo diferente

Etapa quatro. Instale um plug-in 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.

Quinto passo. Protegendo o site no nível do servidor.

Nesta etapa, presumo que você esteja usando o servidor com Apache como servidor http. Precisamos alterar 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ê criou para esse fim antes. Digamos que esse usuário seja cerber .

  1. Coloque o arquivo .htaccess na pasta media (sua nova pasta de uploads) com a seguinte diretiva. Isso impede que o site execute o 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 pasta 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.
     encontre /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
     find /path/to/wordpress/dir/ media -exec chown cerber:apache {} +
    find /path/to/wordpress/dir/ media -type d -exec chmod 775 {} +
    find /path/to/wordpress/dir/ media -type f -exec chmod 664 {} +

  4. Configure a estrutura do permalink nas configurações do WordPress e, em seguida, altere a permissão para o 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: Fortalecendo o WordPress com WP Cerber e NGINX

Passo sete. Protegendo 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.