Esta dica de segurança foi aplicada em um site WordPress mas pode ser usada para qualquer outro site que esteja em NginX.
Talvez você já conheça a ferramenta WPScan. Basicamente ela faz uma varredura em seu site e reporta se há falhas de segurança, plugins sem atualizar entre outras coisas. Porém ela também permite enumerar os usuários do site por autor, ou seja ela executa um “sniffing” e lista os usuários autores de post e a função de cada um no site. Isso permite buscar os usuários com poderes administrativos.
E com a mesma ferramenta é possível passar uma wordlist (lista de palavras) e tentar fazer um brute force attack em determinado usuário admin.
Logicamente que após um ataque devemos trocar a senha do admin, alterar a senha do banco de dados e as Chaves únicas de autenticação e salts no wp-config.php. Fazendo isso todos que estiverem logados no seu site terão que fazer login novamente.
Mas para prevenir novas tentativas de enumeração siga os seguintes passos:
– Edite o bloco NginX do site. Como usamos o ISPConfig então acesse o site pelo painel e clique na aba Opções.
– No bloco “location /” que é o principal do site, adicione a seguinte linha logo abaixo do try_files para os permalinks do WordPress, exemplo:
#Diretiva para permalinks do WordPress
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
if ($args ~ "^author=\d") { return 403; }
}
Salve e pronto.
Pode-se também bloquear a funcionalidade do XML-RPC
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}