20 dicas para proteger um servidor Web Apache em UNIX / Linux


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
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…
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: www.petefreitag.com
20 dicas para proteger um servidor Web Apache em UNIX / Linux 20 dicas para proteger um servidor Web Apache em UNIX / Linux Reviewed by Kembolle Amilkar on terça-feira, janeiro 31, 2012 Rating: 5

Nenhum comentário