Segurança do WordPress: proteja a área administrativa com .htaccess no Apache

por | 31/03/2023 | Configuração

Medidas para aumentar a segurança do WordPress são essenciais. Proteger a área administrativa (o diretório /wp-admin) com .htaccess, nesse sentido, é uma ótima ideia.

Assim, você cria uma camada extra de proteção, uma vez que para chegar até a dashboard do CMS, qualquer pessoa (inclusive você) terá de passar por uma nova autenticação.

O WordPress, como você provavelmente deve saber, é o CMS (Content Management System, ou Sistema de Gerenciamento de Conteúdo) mais usado atualmente.

Uma enorme parcela dos websites do mundo todo fazem uso do software. Este blog que você está lendo, por exemplo, também roda em WordPress.

Ou seja, a probabilidade do software da Automattic se transformar em alvo de hackers e ataques diversos é bem grande. E, uma vez que pessoas mal intencionadas ganham acesso à área administrativa, bem, os estragos podem ser enormes.

Este guia conta com instruções detalhadas para que você aumente a segurança do WordPress, de modo a evitar acessos indesejados.

É importante lembrar, antes de mais nada, que os procedimentos abaixo devem ser executados em um servidor Linux que tenha o Apache como web server.

Pré-requisitos

Sistema/FerramentaPré-requisito
Sistema localLinux / Windows / Mac
Sistema remotoLinux
Ferramentas locaisTerminal (Linux) ou um cliente SSH (PuTTY, por exemplo)
Ferramentas remotasServidor Linux com Apache instalado
Mais detalhesUsuário com privilégios administrativos – sudo

Segurança do WordPress: por que proteger a área administrativa?

Através da proteção mediante uso de senha sugerida neste tutorial, você aprimora a segurança da área mais importante do seu site ou blog em WordPress.

É através da área administrativa que você gerencia seu site ou blog, cria, edita e publica posts e páginas, instala plugins, personaliza temas, etc.

A dashboard do WP, acessível através do diretório /wp-admin, é alvo frequente de atacantes. Embora a segurança da ferramenta também possa ser aprimorada através de outros métodos, proteger a dashboard através de uma senha adicional é crucial.

Assim, você cria uma espécie de “porta de entrada blindada”. Apenas tenha o cuidado de guardar os dados de acesso (usuário e senha) em um local seguro, de preferência em um gerenciador de senhas.

Agora você vai conhecer um pouco mais a respeito do .htaccess, um tipo de arquivo muito utilizado em servidores web baseados no Apache.

O que é .htaccess?

O .htaccess é um arquivo de configuração utilizado geralmente em servidores web Apache. Basicamente, este arquivo é capaz de alterar o modo de comportamento do servidor, com base no diretório onde ele foi criado.

A palavra .htaccess vem de Hypertext Access, e este tipo de arquivo pode ser utilizado em redirecionamentos e proteção de diretórios, dentre outros elementos.

E é justamente a respeito da função de proteção de diretórios do .htaccess que este guia trata. Ou seja, quando eu mencionei, acima, o aprimoramento na segurança do WordPress através da proteção de sua área administrativa, eu estava me referindo a uma das funcionalidades dos arquivos .htaccess.

Diretório protegido

Cada .htaccess altera o modo de funcionamento do servidor apenas em relação ao diretório onde ele se encontra.

Dessa forma, o administrador ganha mais poder e flexibilidade, podendo trabalhar de forma bastante distribuída. Tais arquivos podem ser usados de diversas formas, e dentre seus possíveis usos, está também a prevenção de hotlinking (quando alguém não autorizado utiliza imagens hospedadas no seu servidor, gastando, assim, a sua largura de banda).

O Apache processa cada .htaccess assim que uma solicitação para o diretório em que ele se encontra é feita.

Obviamente, se um destes arquivos de configuração for adicionado à pasta raiz de um website (a public_html, por exemplo), as diretivas nele presentes valerão para o site como um todo.

Cada .htaccess pode contar com várias diretivas diferentes, as quais instruem o servidor a respeito do que deve ser feito em relação à pasta em questão.

Estas diretivas, na verdade, são representadas por linhas de texto. Cada .htaccess é também um arquivo de texto, e inúmeros editores são capazes de abri-lo, incluindo até mesmo os mais comuns utilizados no Windows.

Segurança do WordPress: onde criar o .htaccess

Perceba, portanto, que um .htaccess deverá ser criado na pasta administrativa do seu WordPress. Por exemplo, o caminho completo para o arquivo poderá ser similar ao abaixo, dependendo de onde o seu CMS foi instalado:

/var/www/html/dominio.com/public_html/wp-admin/.htaccess

Você pode verificar este caminho facilmente. Se você faz uso de virtual hosts, por exemplo, é possível encontrar o caminho completo no respectivo arquivo de configuração. Por exemplo:

/etc/apache2/sites-available/dominio.com.conf

Obs: lembre-se apenas de substituir “dominio.com.conf” conforme seu próprio domínio.

Também é possível conferir o caminho completo para seu diretório /wp-admin através da própria barra de endereços do seu navegador.

E você ainda pode verificar tudo isto através de uma interface gráfica, caso seu provedor de hospedagem disponibilize algum painel de controle, como o cPanel, o Plesk ou o Webmin, por exemplo.

Segurança do WordPress: utilizando o .htaccess

Em primeiro lugar, é importante dizer que você pode criar um .htaccess através de vários métodos, inclusive através de interfaces gráficas.

No Windows, por exemplo, você pode simplesmente criá-lo através do bloco de notas. Apenas tenha cuidado ao salvá-lo: o ponto (.) antes do nome do arquivo é imprescindível (trata-se de um arquivo oculto).

Da mesma forma, você pode optar pelo método de sua preferência para o envio do arquivo para o servidor. É possível até mesmo utilizar um cliente FTP/SFTP como o FileZilla.

Porém, como este tutorial é focado no Linux propriamente dito, optei por trabalhar com um método de criação e edição diretamente no terminal, para maior rapidez e simplicidade.

Obs: também é importante dizer que é possível que seu provedor de hospedagem ofereça algum método de proteção de diretórios mediante senha, através de uma interface gráfica em algum painel de controle. Neste caso, se você preferir, pode usar este método.

Como criar um .htaccess para proteger a pasta /wp-admin

Agora, a fim de aprimorar a segurança do WordPress, seguem instruções detalhadas para proteção do diretório /wp-admin através de senha.

No seu terminal, navegue até a pasta administrativa do seu WordPress. Por exemplo, você pode utilizar um comando como o abaixo, lembrando sempre de realizar as substituições necessárias conforme seu domínio:

cd /var/www/html/dominio.com/public_html/wp-admin/

Obs: sinta-se à vontade para alterar o comando acima de acordo com sua necessidade, isto é, caso o caminho e/ou a estrutura de diretórios sejam diferentes.

Agora digite o seguinte comando, para que o .htaccess seja criado e imediatamente aberto para edição:

sudo nano .htaccess

Obs: através do comando acima, estamos utilizando o editor nano. Mas você pode utilizar o editor de sua preferência, como o Vim, por exemplo.

Neste momento, o arquivo está aberto em sua tela, pronto para edição (estou assumindo que você utilizou o nano). Copie todo o código abaixo e cole no seu arquivo:

AuthType Basic
AuthName "Acesso restrito!"
AuthUserFile /caminho/para/arquivo/.htpasswd
Require user usuario

Entendendo melhor:

  • AuthType Basic: habilita a autenticação básica;
  • AuthName: texto que será exibido na janela de login;
  • AuthUserFile: caminho absoluto para o arquivo de senhas (.htpasswd);
  • Require user: o(s) usuário(s) autorizado(s).

Observe que você deve alterar apenas as linhas AuthUserFile e Require user. Assim, segue mais um exemplo, o qual você pode copiar, alterar com as suas informações e então colar em seu .htaccess:

AuthType Basic
AuthName "Acesso restrito!"
AuthUserFile /var/www/usuariosEsenhas/.htpasswd
Require user marcos

Lembre-se de alterar /var/www/usuariosEsenhas/.htpasswd e marcos pelo caminho completo do arquivo de senhas e pelo seu usuário, respectivamente. Claro: você também pode criar este diretório, /usuariosEsenhas, dentro de /var/www/.

Obs: por motivos óbvios, você deve optar por armazenar o arquivo .htpasswd em um diretório que não seja acessível pela web. Ou seja, mantenha-o fora da raiz do site (não o crie/armazene na pasta public_html).

A seguir, é necessário salvar as alterações. Portanto, use a combinação de teclas CTRL + O, para salvar, e feche o arquivo com CTRL + X.

Em relação ao arquivo onde o usuário e a senha serão armazenados, ou seja, o .htpasswd, nós iremos criá-lo logo a seguir.

Como criar o arquivo .htpasswd

Antes de tudo, você deve definir em qual diretório o .htpasswd será armazenado. Por exemplo, você pode criá-lo em:

/var/www/usuariosEsenhas/.htpasswd

Lembre-se mais uma vez de que é necessário alterar o trecho /var/www/usuariosEsenhas conforme os caminhos no seu servidor/site (apesar de também ser possível utilizar este mesmo caminho, o que requer, portanto, a criação do devido diretório).

Agora, levando em consideração o exemplo acima, use o comando abaixo:

sudo htpasswd -c /var/www/usuariosEsenhas/.htpasswd marcos

Obs: lembre-se de substituir marcos pelo nome de usuário que deseja utilizar.

Senha

Neste momento, o utilitário htpasswd entra em ação e solicita que você informe uma senha para o usuário (no exemplo acima, marcos).

Veja:

Segurança do WordPress - Criando arquivo .htpasswd

Informe uma senha robusta, confirme-a a seguir e o arquivo será criado, sendo que a senha foi nele armazenada mediante o uso de criptografia.

Lembre-se de que nosso .htaccess vai procurar o arquivo .htpasswd no caminho /var/www/usuariosEsenhas/.htpasswd. Caso isto não aconteça, a proteção do diretório /wp-admin não irá funcionar.

De preferência, e até mesmo para evitar confusão, não faça nenhuma alteração nesse sentido (em relação aos caminhos).

Neste momento, tudo já está devidamente configurado para uma maior proteção do WordPress. Ou seja, a área administrativa do CMS já está protegida através do .htaccess, e somente será acessível pelo usuário que você especificou (no exemplo acima, o usuário marcos). Claro: a senha correspondente também será solicitada.

Obs: caso você precise adicionar usuários adicionais para acessar o mesmo diretório, basta usar o comando abaixo, lembrando sempre de realizar as devidas modificações de acordo com suas necessidades:

sudo htpasswd /var/www/usuariosEsenhas/.htpasswd novoUsuario

Observe que a flag -c foi removida, e assim um novo usuário (o novoUsuario) foi adicionado ao arquivo .htpasswd. Este novo usuário também pode, a partir de agora, acessar a dashboard do seu WordPress.

Método alternativo (opcional)

A proteção da área administrativa do WordPress envolve 3 procedimentos em um servidor Apache (cobertos acima):

  1. Criação do .htaccess;
  2. Criação do .htpasswd;
  3. Upload dos dois arquivos para o servidor*.

Em relação ao procedimento *3, ele não é necessário no modo de trabalho que estamos desenvolvendo, porque estamos criando ambos os arquivos diretamente através da linha de comando.

De qualquer modo, você também pode criar o .htaccess através de um editor de textos qualquer no seu computador e então utilizar uma ferramenta online para a geração do .htpasswd.

Neste caso, você pode realizar uma busca no Google, pelo termo abaixo:

online .htpasswd generator

Assim, milhares de resultados serão retornados, e você pode, por exemplo, utilizar aqueles exibidos nos primeiros lugares.

Tais ferramentas online (gratuitas) geram o necessário arquivo de senhas. As senhas são devidamente criptografadas, e você então só precisa copiar o conteúdo que as ferramentas exibem, na íntegra (após a informação de um usuário e uma senha), para um arquivo chamado .htpasswd.

Algo mais ou menos parecido com o exemplo abaixo:

marcos:$2y$10$WRCViQ/MXu.ZfwqR.VMUTOBFAytO5i8vGv9S5KvPZtZDt2pvAFOhy

Finalmente, basta efetuar o upload de ambos os arquivos (via FileZilla, por exemplo) para o seu web server, conforme abaixo (e de acordo com os exemplos acima):

  • .htaccess: para /var/www/html/dominio.com/public_html/wp-admin/;
  • .htpasswd: para /var/www/usuariosEsenhas/;

Obs: se você preferir, o .htpasswd também pode ser armazenado na pasta /wp-admin. Fica a seu critério.

Pronto, a proteção foi configurada.

Segurança do WordPress: acessando um diretório protegido

De agora em diante, e tendo uma maior segurança do WordPress em mente, você deverá digitar os dados de uma segunda credencial de acesso sempre que precisar acessar a sua dashboard.

Ou seja, uma vez que os procedimentos acima foram realizados, a área administrativa do seu WordPress já se encontra protegida.

E em relação às novas credenciais de acesso, basta utilizar os dados que você escolheu nos procedimentos anteriores.

Assim, você deve utilizar o usuário informado no .htaccess (em nosso exemplo, o usuário marcos), e a senha informada no momento da criação do arquivo .htpasswd.

A partir de agora, sempre que você tentar acessar a sua dashboard, uma janela semelhante à abaixo será exibida:

.htaccess - Login

Basta, neste momento, informar o usuário e a senha, clicando a seguir no botão “Entrar”.

E nunca é demais lembrar: mantenha seus dados de login sempre à salvo. Utilize um gerenciador de senhas como o Bitwarden ou o KeePassXC, por exemplo (ambos open source).

Desativando a proteção do diretório

Se você precisar, por qualquer motivo que seja, desativar a proteção do diretório /wp-admin, basta apenas remover os respectivos .htaccess e .htpasswd.

Este também é um procedimento muito simples, mas é importante lembrar que, através dele, você estará deixando de utilizar tudo o que fizemos anteriormente visando aumentar a segurança do WordPress.

Ou seja, dessa forma sua dashboard passará novamente a ser plenamente acessível sem a necessidade de uma segunda tela de login. A sua área administrativa não estará mais protegida através dos procedimentos anteriores.

Algumas considerações

É importante ressaltar que as medidas cobertas através deste guia não representam os únicos métodos de proteção do nosso CMS preferido.

Na verdade, a segurança do WordPress, bem como de servidores Linux remotos em geral, depende de uma série de fatores e procedimentos.

Firewall

É possível, por exemplo, instalar e utilizar um Web Application Firewall (WAF) para uma maior proteção do WordPress, e aqui é possível destacar inclusive algumas ótimas alternativas:

  • Sucuri (é uma pena, entretanto, o fato de que justamente o firewall deste plugin não é gratuito);

Apenas tome cuidado durante a instalação de um destes plugins, uma vez que estamos lidando com áreas críticas de nosso site. Além disso, não se esqueça dos backups.

De qualquer modo, boas práticas de segurança nunca são demais, desde que uma não “atropele” a outra. Além disso, e lidando “apenas” com sistemas de código aberto, existem inúmeros métodos e ferramentas capazes de aprimorar a segurança não apenas do WordPress, mas de servidores como um todo.

Isto inclui o uso de ferramentas de prevenção de intrusão, como o Fail2Ban, o uso de chaves SSH, a instalação e a configuração de um firewall como o UFW (Uncomplicated Firewall), etc.

Conclusão

Espero que você tenha gostado deste conteúdo, e que ele lhe seja útil. Uma maior segurança do WordPress, como você pôde perceber, envolve muitas vezes procedimentos simples, de fácil execução.

Dessa forma, você previne dores de cabeça e garante a continuidade do seu trabalho, afinal de contas, ninguém deseja perder tempo (e dinheiro) refazendo tarefas que já estavam prontas, porém em um site ou servidor que, de repente, foi invadido.

Como diz o ditado, “é melhor prevenir do que remediar”, e quando se trata de computadores, sistemas e redes, isto deve ser levado muito a sério.

Se você tiver alguma dúvida ou sugestão, não hesite em deixar um comentário.

Até a próxima!

Compartilhe este conteúdo:

<a href="https://teclinux.com/author/marcos-zy/" target="_self">Marcos A.T. Silva</a>

Marcos A.T. Silva

Apaixonado por tecnologia desde tenra idade, trabalha com TI há mais de 20 anos. Tem no rock and roll (em suas mais variadas vertentes) uma válvula de escape, e adora escrever guias e tutoriais, além de ser um grande entusiasta do Linux e do software livre.

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Pin It on Pinterest

Share This

Compartilhe

Compartilhe este post com seus amigos!