Até agora, na nossa série de postagens sobre o servidor Apache, ensinamos:
- Instalar servidor Apache
- Configurar Servidor Virtual (virtualhost)
- Habilitar o mod_deflate no Apache
- Habilitar cache de navegador no Apache (mod_expires)
Agora vamos ensinar algumas configurações extras para melhorar segurança e performance do servidor, para que este responda aos usuários de forma mais rápida. Essas configurações incluem, esconder a versão do servidor utilizado, retirar cabeçalhos inúteis no response de imagens, habilitar múltiplas requisições por conexão e esconder a assinatura do servidor apache.
Índice
- Escondendo a versão do apache utilizada
- Habilitando uma conexão para várias requisições
- Ativar / Desativar Assinatura do servidor
- Configurando
- Conclusão
Escondendo a versão do apache utilizada
Em cada requisição feita ao Apache (Request), é enviada uma resposta (Response) com os cabeçalhos necessários. No entanto, o Apache envia por padrão o seu nome, versão e alguns módulos instalados em todas as requisições, como pode ser visto na figura 1 abaixo.

Figura 1 - Diretiva ServerTokens padrão do apache
Note que em Server, circulado de vermelho, é passado a configuração completa do servidor, pois informa à qualquer um a versão do Apache, PHP, Sistema Operacional e etc. Alterando o valor da diretiva "ServerTokens" para "ProductOnly",as novas requisições ficarão conforme figura 2 abaixo.

Figura 2 - Diretiva ServerTokens habilitada e com o valor "ProductOnly"
Com isso as informações descessárias ao response são removidas tornando-o menor e evitando falhas de segurança.
Habilitando uma conexão para várias requisições (KeepAlive)
O KeepAlive é uma configuração do Apache que permite conexões persistentes para um usuário, ou seja, permite que o servidor utilize a mesma conexão para transferir múltiplos arquivos ao cliente. Quando um usuário acessa um site, são feitas várias conexões TCP para os diversos arquivos a serem baixados. Com o KeepAlive, o cliente executa apenas uma conexão TCP, e esta fica aberta por um determinado tempo (configurável no Apache em KeepAlive Timeout). Isso aumenta a velocidade de carregamento do site e a velocidade do servidor (reduzindo o número de conexões, o Server Load também é reduzido). Porém, o KeepAlive causa um aumento de memória, pois as conexões ficam abertas (geralmente por alguns segundos ou quando atingir o número máximo de requisições, configurando em Max KeepAlive Requests) esperando o uso do cliente. Portanto, se o Servidor tiver uma boa quantidade de Memória RAM, ative o KeepAlive.
Traduzindo...
Vantagens
- Aumenta velocidade do website: Reduz a latência associada com a transferência HTTP
- Reduz uso da CPU: Ativar o KeepAlive reduz o uso de CPU. Considere que um website com várias imagens, arquivos e etc, o servidor precisará fazer uma conexão para cada arquivo, aumentando o uso de CPU. Com o KeepAlive ativado somente uma conexão é feitaOn the server side enabling KeepAlive reduces CPU usage.
Desvantagens
- Aumenta o uso de memória: Ativar o KeepAlive aumenta o uso de memória no servidor. Processos do Apache tem que manter conexões abertas à espera de novos pedidos de conexões estabelecidas.
Quando usar: Dependerá de várias situações como quantidade de recursos de seu servidor, tipo de website e etc. Um servidor com pouca Ram recomenda-se utilizar o KeepAlive Off, reduzindo assim o uso de memória e dando possibilidade ao servidor antender mais usuários. Se você se preocupa muito com a experiência do usuário com o website e seu servidor dispõe de uma boa quantidade de recursos (Memória Ram, CPU), se seu website tem muitas imagens ou outros arquivos, é recomendado manter o KeepAlive ativado.
Ativar / Desativar Assinatura do servidor
Há muitos posts na internet falando sobre a diretiva "ServerSignature, mas quase nenhum de fato explica o que ela é. Pois bem, a diretiva ServerSignature é permite a configuração de uma trilha no rodapé de documentos gerados pelo próprio servidor, como mensagens de erro http, mod_proxy, ftp, listagem de diretórios entre outros documentos. A rasão pela qual alguém pode querer esta diretiva habilitada pode ser por exemplo alguém que use um servidor junto com uma cadeia de proxies, para permitir que caso o servidor fosse o culpado pelo erro, esta informação esteja explícita no documento.
Nas versões atuais do apache, o padrão já é esta diretiva vir com valor off, não precisando especificar tal valor. Após a versão 2.0.44, os detalhes do servidor que aparecem na assinatura, são especificados pela diretiva ServerTokens, explicada logo acima.
Nas figuras 3 e 4 abaixo, podemos verificar a diferença no comportamento do servidor.

Figura 3 - Diretiva ServerSignature desativada, como padrão do Apache

Figura 4 - Diretiva ServerSignature habilitada
Configurando
A configuração exibida abaixo serve apenas para desativar a diretiva ServerTokens e deve ser feita no arquivo "httpd.conf".
ServerTokens ProductOnly
A configuração exibida abaixo serve apenas para habilitar e configurar a diretiva KeepAlive e deve ser feita no arquivo "httpd.conf" ou no arquivo "httpd-vhosts.conf", isso vai depender da sua configuração.
KeepAlive On
KeepAliveTimeout 10
MaxKeepAliveRequests 100
Conclusão
Neste post foi ensinado um pouco mais sobre algumas diretivas simples do apache, mas que podem aumentar a segurança e a performance do seu servidor. Espero que tenham gostado do post.

Nenhum comentário:
Postar um comentário