Páginas

sexta-feira, 23 de agosto de 2013

20 truques de segurança para Apache

Deve-se ter em conta que algumas destas recomendações podem diminuir o rendimento de seu servidor dependendo de sua configuração e das especificações do sistema. 

Primeiro, certifique-se de ter instalado os últimos parches de segurança 

Não faz sentido colocar uma fechadura mais resistente na sua porta se você deixa uma janela aberta. Da mesma forma se você não tem os últimos parches de segurança instalado não teria sentido continuar com a otimização de segurança. 
Restringir acesso por IP 

Se tiver um recurso ao que deva somente ter acesso alguma rede, ou IP em concreto você pode configurá-lo em Apache. Por exemplo, se deseja restringir o acesso a sua Intranet para permitir somente a rede 176.16: 

Order Deny,Allow 
Deny from all 
Allow from 176.16.0.0/16 

ou por IP: 

Order Deny,Allow 
Deny from all 
Allow from 127.0.0.1 

Oculte a versão e outra informação delicada 

Por padrão, muitas instalações de Apache mostram o número de versão que está funcionando, o sistema operacional e um informe de módulos de Apache estão instalados no servidor. Os usuários maliciosos podem utilizar esta informação para atacar seu servidor. 

Há duas diretrizes que você necessita agregar, ou corrigir em seu arquivo de httpd.conf: 

ServerSignature Off 
ServerTokens Prod 

O ServerSignature aparece na parte inferior das páginas geradas por apache tais como os famosos erros 404.

A diretriz ServerTokens se utiliza para determinar o que Apache colocará no cabeçalho da resposta HTTP do servidor. 

Apache deve funcionar sob sua própria conta e grupo de usuário 

Algumas versões de Apache funcionam sob o usuário nobody, isto compromete muito sua segurança, portanto faça o seguinte: 

User apache 
Group apache 

Utilize o mod_security 

mod_security é um módulo excelente de Apache escrito por Ivan Ristic, o autor de Apache Security de O'Reilly. 

Esta é uma lista de coisas que você pode fazer com mod_security:
  • Filtragem simples
  • Filtragem baseada em expressões regulares
  • Validação de codificação da URL
  • Validação de codificação Unicode
  • Auditing
  • Prevenção do ataque NULL Byte
  • Limitar a memória de subida
  • Mascarar a identidade do servidor
  • E mais...
Desabilitar qualquer módulo desnecessário 

Apache vem por padrão instalado com uma série de módulos. Você deve dar uma olhada na documentação de Apache e ver para que serve cada um deles, e desta maneira se dará conta de que há alguns que não são úteis em seu servidor. 

Busque em httpd.conf as linhas que contenham LoadModule. Para desabilitar o módulo deve agregar um # ao princípio da linha, para que desta forma passe a ser um comentário. Para buscar os módulos prove com: 

grep LoadModule httpd.conf 

Aqui estão alguns módulos que se instalam por padrão, porém muitas vezes não são necessários: mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex. 

Certifique-se de que os arquivos aos que se acessa são os desejados 

Não desejamos que se possa acessar aos diretórios que não tenham permissões para isso, suponhamos que o diretório raiz para nossas webs é /web, a configuração ótima deverá ser a seguinte: 

Order Deny,Allow 
Deny from all 
Options None 
AllowOverride None 

Order Allow,Deny 
Allow from all 

Desative as opções para explorar diretórios 

Isto pode fazer com as opções de diretriz dentro da etiqueta diretório tem dois possíveis valores none ou indexes. 

Options -Indexes 

Desative os includes do lado servidor 

Isto também se faz com as opções de diretriz dentro da etiqueta diretório tem dois possíveis valores none ou include. 

Options -Includes 

Desative a execução de CGI 

Se não necessitar da execução de CGI por algum motivo em concreto desativá-los se faz com as opções de diretriz dentro da etiqueta diretório tem dois possíveis valores none ou ExecCGI. 

Options -ExecCGI 

Não permitir que apache siga links simbólicos 

De novo se configura com as opções de diretriz dentro da etiqueta diretório tem dois possíveis valores none ou FollowSymLinks. 

Options -FollowSymLinks 

Desativar todas as opções 

Se deseja desativar o uso de todas as opções simplesmente: 

Options None 

Se somente deseja desativar algumas em concreto, separe-as com um espaço nas opções de diretriz: 

Options -ExecCGI -FollowSymLinks -Indexes 

Desativar a ajuda para os arquivos .htaccess 

Isto já está feito, mas com a diretriz AllowOverride. Mude-o a none. 

AllowOverride None 

Outra opção interessante seria bloquear o download de todos os arquivos que comecem com .ht por exemplo, se faria da seguinte maneira: 

AccessFileName .httpdoverride 

Order allow,deny 
Deny from all 
Satisfy All 

Diminua o valor máximo de tempo de espera 

Por padrão, o tempo de espera é de 300 segundos. Pode diminuí-lo por segurança para prevenir ataques desta maneira: 

Timeout 45 

Limitar o tamanho máximo de petições 

Apache tem várias diretrizes que permitem que limite o tamanho de uma petição, isto pode ser muito útil. 

Uma boa maneira de começar é com a diretriz LimitRequestBody. Esta diretriz está fixada a ilimitado por padrão. Se estiver permitindo uploads de arquivos que não sejam maiores a 1MB, poderia fixar este ajuste a algo parecido a isto: 

LimitRequestBody 1048576 

Se não estiver permitindo uploads de arquivos, pode fixá-lo inclusive a um tamanho menor. 

Algumas outras diretrizes para olhar são LimitRequestFields, LimitRequestFieldSize e LimitRequestLine. 

Conclusão 

Espero que estas recomendações tenham sido úteis e lembrem que o uso que têm que dar depende em grande medida dos recursos que necessita e das características de seu servidor, antes de fazer qualquer mudança se não estiver seguro documente-se e utilize este artigo unicamente como uma referência que leve à solução mais ideal. 

fonte : http://www.criarweb.com/artigos/20-truques-de-seguranca-para-apache.html

Nenhum comentário:

Postar um comentário