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 é necessariamente fazer todos os passos 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.
Alguns dos passos 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 quaisquer plugins desse tipo, porque usá-los pode levar a muitos problemas e questões de segurança imediatamente ou no futuro, quando hackers estudarem buracos nos plugins ou tema que está instalado no seu site. Eu criei este artigo na esperança de que seja útil, mas sem nenhuma garantia.
Nota: este artigo não é aplicável 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 root, não poderá fazer nada útil para criar um site realmente protegido. Não há nenhuma maneira ou plugin que possa proteger o WordPress e os 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. 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 com 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. Use dois ou três símbolos do alfabeto em vez disso. 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.
Segundo passo. Endurecendo o site no nível do WordPress
- Mova a pasta de uploads um nível acima, de dentro da pasta /wp-content/ para a raiz da sua pasta de instalação do WordPress.
- Renomeie a pasta de uploads para mídia (ou algo parecido, o que você quiser).
- Renomeie a pasta wp-content para content (ou algo parecido, o que você quiser).
- Renomeie a pasta de plugins para mod (ou algo assim, o que você quiser).
- Adicione as seguintes linhas ao início do arquivo wp-config.php , não se esqueça de alterar media , content e mod para os valores reais que você escolheu anteriormente .
define('AUTOMATIC_UPDATER_DISABLED', true ); // sim, é seguro fazer isso manualmente
define('DISALLOW_FILE_EDIT', true ); // nunca permitimos que ninguém toque em seus arquivos
define('DISALLOW_FILE_MODS', true ); // sim, é seguro fazer isso manualmente
define('FS_METHOD', 'direct'); // sem FTP, é claro
define('WP_HTTP_BLOCK_EXTERNAL', verdadeiro );
define('UPLOADS', ' media ' ); // renomeamos uploads e os movemos para um nível superior
define('WP_CONTENT_DIR', '/caminho/para/diretório/wordpress/ conteúdo '); // sem nome de host, sem barra final
define('WP_CONTENT_URL', 'http://example.com/ content ');
define('WP_PLUGIN_DIR', '/caminho/para/diretório/wordpress/ 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 PHP no front-end
Passo três. Alterar o nome padrão dos cookies.
Adicione essas linhas ao início do arquivo wp-config.php
define('USER_COOKIE', 'my_user_cookie' ); // altere para algo diferente
define('PASS_COOKIE', 'my_pass_cookie' ); // altere para algo diferente
define('AUTH_COOKIE', 'my_auth_cookie' ); // altere para algo diferente
define('SECURE_AUTH_COOKIE', 'my_sec_cookie' ); // altere para algo diferente
define('LOGGED_IN_COOKIE', 'my_logged_cookie' ); // altere para algo diferente
define('TEST_COOKIE', 'my_test_cookie' ); // altere para algo diferente
Passo quatro. Instale 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 arrombar a porta do seu site WordPress. Oculte e feche essa porta com o WP Cerber.
Quinto passo. Reforçando o site no nível do servidor.
Nesta etapa, presumo que você esteja usando um 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 propósito antes. Digamos que esse usuário seja cerber .
- Coloque o arquivo .htaccess na pasta media (sua nova pasta uploads) com a seguinte diretiva nela. Isso impede que o site execute o código PHP malicioso carregado.
php_flag motor desligado
Observação: 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 essa diretiva funcione. - Para todo o diretório do site (/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.
encontrar /caminho/para/diretório/wordpress -exec chown cerber:root {} +
encontrar /caminho/para/diretório/wordpress -type d -exec chmod 755 {} +
encontrar /caminho/para/diretório/wordpress -type f -exec chmod 644 {} + - Para o diretório de uploads (/caminho/para/wordpress/dir/ media ) precisamos definir permissões especiais. Vamos fazer isso usando comandos exec no shell
encontrar /caminho/para/diretório/wordpress/ media -exec chown cerber:apache {} +
encontrar /caminho/para/diretório/wordpress/ media -type d -exec chmod 775 {} +
encontrar /caminho/para/diretório/wordpress/ media -type f -exec chmod 664 {} + - Configure a estrutura do permalink nas configurações do WordPress e depois 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 - Mova o arquivo wp-config.php para o diretório acima do diretório de instalação do WordPress.
Etapa seis. Endurecimento do site no nível do servidor NGINX
Leia aqui: Fortalecendo o WordPress com WP Cerber e NGINX
Passo sete. Endurecendo o site com Fail2Ban
Leia aqui: Como proteger o WordPress com Fail2Ban