Tornando seu Apache mais seguro com o ModSecurity

cvs

ModSecurity é um engine de detecção e prevenção contra intrusos para aplicações web. Operando como um módulo do Apache, se propõe a incrementar a segurança nas aplicações web, protegendo-as de ataques conhecidos e desconhecidos.

[ Hits: 79.353 ]

Por: Thiago Alves em 27/09/2004 | Blog: http://www.seeufosseopresidente.com.br


Configurações



Após ter ele instalado entre no diretório do mod_security, lá você vai encontrar vários exemplos de httpd.conf que são as configurações do módulo. Aqui vamos usar a configuração simples:

# cat httpd.conf.example-minimal >> /usr/local/apache2/conf/httpd.conf

Nisso a configuração vai pro final do arquivo httpd.conf do Apache. Segue abaixo o que vai ser colado lá:

<IfModule mod_security.c>

    # Only inspect dynamic requests
    # (YOU MUST TEST TO MAKE SURE IT WORKS AS EXPECTED)
    SecFilterEngine DynamicOnly

    # Reject requests with status 403
    SecFilterDefaultAction "deny,log,status:403"

    # Some sane defaults
    SecFilterScanPOST On
    SecFilterCheckURLEncoding On
    SecFilterCheckCookieFormat On
    SecFilterCheckUnicodeEncoding Off

    # Accept almost all byte values
    SecFilterForceByteRange 1 255

    # Server masking is optional
      SecServerSignature "GNU Microsoft-IIS/0.9Beta"

    SecUploadDir /tmp
    SecUploadKeepFiles Off

    # Only record the interesting stuff
    SecAuditEngine RelevantOnly
    SecAuditLog logs/audit_log

    # You normally won't need debug logging
    SecFilterDebugLevel 0
    SecFilterDebugLog logs/modsec_debug_log

    # Only accept request encodings we know how to handle
    # we exclude GET requests from this because some (automated)
    # clients supply "text/html" as Content-Type
    SecFilterSelective REQUEST_METHOD "!^GET$" chain
    SecFilterSelective HTTP_Content-Type "!(^$|^application/x-www-form-urlencoded$|^multipart/form-data)"

    # Require Content-Length to be provided with
    # every POST request
    SecFilterSelective REQUEST_METHOD "^POST$" chain
    SecFilterSelective HTTP_Content-Length "^$"

    # Don't accept transfer encodings we know we don't handle
    # (and you don't need it anyway)
    SecFilterSelective HTTP_Transfer-Encoding "!^$"

</IfModule>

Não vou entrar em detalhes, isso fica pra um próximo artigo, mas feito isso e editado da forma que preferir, reinicie o Apache e rode o seguinte comando:

# lynx -dump -head http://localhost/

E você vai obter a seguinte resposta
HTTP/1.1 200 OK
Date: Tue, 07 Sep 2004 16:01:01 GMT
Server: GNU Microsoft-IIS/0.9Beta
Connection: close
Content-Type: text/html; charset=ISO-8859-1
Perceba que o "Server:" ficou diferente do normal, não está informando a versão do Apache que se esta usando e isso pode ajudar um pouco, mas não resolver totalmente o problema de segurança. Isso devido a edição da diretiva "SecServerSignature", onde você pode colocar o que desejar.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Baixando e instalando
   3. Configurações
   4. Conclusão
Outros artigos deste autor

Ubuntu + Zoneminder = Solução Livre para CFTV

Instalação e configuração do Gkrellm

Virtualização com CentOS e VMware Server

CentOS + RAID1 via software

Instalação do CentOS 5.3

Leitura recomendada

Principais fontes de vulnerabilidade no Linux

Checando vulnerabilidades com o Nikto

Squid 3 - Instalação no Debian/Ubuntu

Reaver - Descobrindo senhas Wi-Fi

Solução de backup para servidores Windows, Linux & BSD’s

  
Comentários
[1] Comentário enviado por mbmaciel em 27/09/2004 - 10:29h

Uma dica:
Pra quem não tem o programa apxs instalado, basta digitar
# apt-get install httpd-devel // ou então
# yum install httpd-devel

O meu atalho ficou assim:
/usr/sbin/apxs

E funcionou!
Valeu!

[2] Comentário enviado por y2h4ck em 27/09/2004 - 22:03h

Ficou maneiro o Artigo CVS :)
uso o mod_security a algum tempo e ele realmente da um Gás a mais na configuração do Apache :)

[]s Man

Spawn Locoust

[3] Comentário enviado por removido em 28/09/2004 - 08:50h

Eae Cvs,

POww como sempre supreendendo com artigos muito ótimos e de ótima qualidade

Parabéns!

[4] Comentário enviado por y2h4ck em 11/12/2004 - 12:24h

CVS testou usar outras configurações sem ser a minimal ?
http.conf-reversing-1, me pareceu muito atraente, pois protege contra CSS ( Cross Site Scripting ), caso haja alguma falha em aplicativos como scripts PHP.
ele vai gerar alertas:)

Valew

Falow

[5] Comentário enviado por naoexistemais em 23/05/2005 - 21:17h

Para quem usa Debian, basta instalar o apache-dev

apt-get install apache-dev

Falou,

[6] Comentário enviado por rrneves em 03/10/2012 - 12:06h

Excelente seu artigo, simples, direto e sem as enrolações que tenho encontrado por ai. Meus parabéns

[7] Comentário enviado por marcosnakamine em 11/11/2014 - 11:32h

Muito bom, parabéns!

vlw por compartilhar


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts