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/Ferramenta | Pré-requisito |
---|---|
Sistema local | Linux / Windows / Mac |
Sistema remoto | Linux |
Ferramentas locais | Terminal (Linux) ou um cliente SSH (PuTTY, por exemplo) |
Ferramentas remotas | Servidor Linux com Apache instalado |
Mais detalhes | Usuá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
.
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
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)./var/www/usuariosEsenhas
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.
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:
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):
- Criação do
.htaccess
; - Criação do
.htpasswd
; - 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:
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.
É 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!
0 comentários