Security Blog
Security Blog
Posted By Gregory

Transforme seu WordPress em Fort Knox

Como transformar o WordPress em uma fortaleza protegida como o Fort Knox


English version: Turn your WordPress into Fort Knox


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

Algumas das etapas a seguir podem causar alguns problemas de incompatibilidade com alguns plug-ins estranhos que tentam modificar arquivos diretamente nas pastas do WordPress. Eu recomendo ignorar qualquer plugins desse tipo, porque usá-los pode levar a um monte de problemas e problemas de segurança imediatamente ou no futuro, quando os hackers estudaram buracos nos plugins ou tema que está instalado no seu site. Eu criei este artigo na esperança de que seja útil, mas sem qualquer garantia.

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

Requisitos: acesso root ao servidor Linux onde seu site está hospedado. Se você não tem acesso ao shell com privilégios de root, não pode fazer nada útil para criar um site realmente protegido. Não há nenhuma maneira ou qualquer plugin que possa proteger o WordPress e arquivos em seus diretórios em um nível PRO. Todos os plugins de segurança têm o mesmo nível de privilégios (permissões) que hackers e bots têm. Nenhuma exceção Se algum plug-in de segurança fizer algumas alterações nos arquivos do seu site para protegê-los, qualquer hacker ou código malicioso poderá 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 estar protegidos contra gravação. Nenhuma 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 operam com e tentar 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. Use par ou três símbolos do alfabeto. Alguns ataques e invasores específicos do WordPress fazem a suposição de que o prefixo da tabela é wp_ . Alterar o prefixo nos ajuda a bloquear alguns ataques de injeção de SQL.

Passo dois. Endurecendo o site no nível WordPress

  1. Mova a pasta uploads um nível acima, de dentro da pasta / wp-content / para a raiz da sua 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 conteúdo (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 mudar mídia , conteúdo , mod para valores reais que você escolheu anteriormente .
     define ('AUTOMATIC_UPDATER_DISABLED', true); // sim, é seguro fazer manualmente 
    define ('DISALLOW_FILE_EDIT', true); // nunca permitimos que ninguém toque nos seus arquivos
    define ('DISALLOW_FILE_MODS', true); // sim, é seguro fazer manualmente
    define ('FS_METHOD', 'direto'); // sem FTP, claro
    define ('WP_HTTP_BLOCK_EXTERNAL', true);
    define ('UPLOADS', ' media '); // renomeamos os uploads e movemos o nível para cima
    define ('WP_CONTENT_DIR', '/ caminho / para / wordpress / dir / content '); // sem nome do host, sem barra no final
    define ('WP_CONTENT_URL', 'http://example.com/ content ');
    define ('WP_PLUGIN_DIR', '/ caminho / para / wordpress / dir / content / mod '); // sem nome do host, sem barra no final
    define ('WP_PLUGIN_URL', 'http://example.com/ content / mod ');
    ini_set ('display_errors', 0); // Desativar 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_ usuário_cookie'); // mude para algo diferente 
define ('PASS_COOKIE', 'meu_pass_cookie'); // mude para algo diferente
define ('AUTH_COOKIE', 'my_auth_cookie'); // mude para algo diferente
define ('SECURE_AUTH_COOKIE', 'my_sec_cookie'); // mude para algo diferente
define ('LOGGED_IN_COOKIE', 'my_logged_cookie'); // mude para algo diferente
define ('TEST_COOKIE', 'meu_teste_cookie'); // mude para algo diferente

Passo quatro. Instalar um plugin de segurança imediatamente após o WordPress ter sido instalado

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

Passo cinco. Endurecer o site no nível do servidor.

Nesta etapa, presumo que você esteja usando o servidor com o 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 é o apache . Precisamos mudá-lo para outro usuário, você criou para essa finalidade antes. Vamos dizer que esse usuário é cerber .

  1. Coloque o arquivo .htaccess na pasta de mídia (sua nova pasta de uploads) com a seguinte diretiva. Isso impede que o site execute códigos PHP maliciosos carregados.
     php_flag engine off 

    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 o diretório do site inteiro (/ path / to / wordpress / dir) altere o proprietário e as permissões para todos os arquivos. Para fazer isso, execute os seguintes comandos no shell.
     find / caminho / para / wordpress / dir -exec chber cerber: raiz {} + 
    find / caminho / para / wordpress / dir -tipo d -exec chmod 755 {} +
    find / caminho / para / wordpress / dir -tipo f -exec chmod 644 {} +

  3. Para o diretório de uploads (/ path / to / wordpress / dir / media ), precisamos configurar permissões especiais. Vamos fazer isso usando comandos exec no shell
     localizar / caminho / para / wordpress / dir / media -exec chown cerber: apache {} + 
    find / caminho / para / wordpress / dir / media -tipo d -exec chmod 775 {} +
    find / caminho / para / wordpress / dir / media -tipo 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.
     chown cerber: raiz /path/to/wordpress/dir/.htaccess 
    chmod 644 /path/to/wordpress/dir/.htaccess

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

Passo seis. Endurecendo o site no nível do servidor NGINX

Leia aqui: Endurecimento do WordPress com WP Cerber e NGINX

Etapa sete Endurecendo o site com o Fail2Ban

Leia aqui: Como proteger o WordPress com o 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.