Neste post vou mostrar como alterar a configuração do Apache para não mostrar mais sua versão a requisições remotas. Esta é uma das várias medidas para fortalecer a segurança de um servidor web.
No artigo Como descobrir a versão do Apache em execução, mostro como obter informações sobre um servidor web remoto (e local). Neste artigo vou mostrar como inibir a exibição deste “excesso” de informações a pessoas estranhas.
Ninguém precisa saber que versão do Apache você está executando; que módulos você tem rodando e quais são as suas vulnerabilidades (baseado na versão do servidor web em execução).
Para ficar claro, o procedimento não protege contra vulnerabilidades existentes — mas dificulta a vida de quem deseja obter informações sobre o seu sistema.
Nos tópicos, a seguir, vou motrar como alterar as diretrizes ServerTokens
e ServerSignature
dentro do arquivo de configuração do Apache, para ser o mais objetivo possível. Depois vou explicar um pouco melhor a função delas.
Como configurar o Apache
Antes de se aventurar a alterar um arquivo do sistema, faça uma cópia de segurança dele:
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.original
Em seguida abra o arquivo com o seu editor de texto favorito (eu vou usar o nano):
sudo nano /etc/apache2/apache2.conf
Agora altere (ou inclua) as diretrizes a que me referi acima para os seguintes valores:
ServerTokens ProductOnly ServerSignature Off
Agora, reinicie o Apache:
sudo apachectl stop sudo apachectl start
Agora faça um teste:
HEAD http://localhost
Altere o comando acima para os valores adequados à sua situação.
Note que no meu resultado, na 6a. linha, o nome do servidor é exibido apenas como Apache. Sua versão não é divulgada, nem tampouco o nome do sistema operacional.
200 OK Connection: close Date: Tue, 10 Mar 2015 21:17:25 GMT Accept-Ranges: bytes ETag: "2cf6-50fc9c4fbc26b" Server: Apache Vary: Accept-Encoding Content-Length: 11510 Content-Type: text/html
Se quiser aumentar um pouco mais os seus conhecimentos, veja os testes descritos neste artigo.
O que é ServerTokens
A diretriz ServerTokens controla quando o cabeçalho (header) de resposta do servidor deverá, ou não, incluir uma descrição genérica do tipo de sistema operacional instalado — bem como informações sobre módulos compilados e disponíveis para uso.
Dentro do arquivo de configurações /etc/apache2/apache2.conf
, esta diretriz pode ter os seguintes valores:
ProductOnly
ouProd
— Diz para o Apache mostrar apenas o nome produto (que é o software de servidor web): Apache.Major
— Permite mostrar parcialmente a versão do Apache. Por exemplo:Apache/2
Minor
— Permite ao Apache mostrar um pouco mais de sua versão. Por exemplo:Apache/2.4
Minimal
ouMin
— Torna o Apache ainda mais verboso sobre a sua versão. Por exemplo:Apache/2.4.12
OS
— Vai além da exibição do número completo da versão do Apache e dá uma dica do sistema operacional usado no servidor. Por exemplo:Apache/2.4.12 (Unix)
Full
ou padrão (sem parâmetros) — Mostra outros dados, como a versão do OPenSSL. Por exemplo:Apache/2.4.12 (Unix) OpenSSL/1.0.1l
Ajustar a diretiva
ServerTokens
para menos do queminimal
não é recomendado pela documentação oficial do Apache — uma vez que dificulta encontrar erros (interoperacionais) no produto.
Além disto, a “obscuridade” não é política de segurança ideal. O correto é manter os seus servidores atualizados e ficar “ligado” no que tange eventuais descobertas de falhas de segurança
A diretriz ServerSignature do Apache
Dependendo do seus parâmetros de configuração, esta diretriz permite exibir um rodapé nos documentos gerados pelo servidor web (mensagens de erro, mod_proxy
, a listagem do diretório ftp, saída do mod_info
etc.)
O motivo para deixar esta opção ligada é que, em uma cadeia de proxies, pode ficar difícil dizer em qual dos servidores houve um erro.
A opção padrão é Off
.
As outras opções são:
On
— Adiciona uma linha com o número da versão do servidor e o valor deServerName
do host virtual.Email
— cria uma referênciamailto:
aoServerAdmin
, que permite a um visitante contatar o administrador do documento em exibição.
Após a versão 2.0.44, do Apache, a informação sobre a versão do servidor passou a ser controlada pelo ServerTokens
.
Este site tem outros artigos sobre Apache, MySQL, PHP e configuração de servidores. Use o campo de busca, no canto superior direito para descobrir mais textos interessantes para você.
Referências
Leia a documentação oficial do Apache, sobre o assunto deste post, aqui.