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
O 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...
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