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: 86.870 ]

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

Servidor de rede (PDC - Proxy Transparente - DNS)

CentOS + RAID1 via software

Instalando o Apache + PHP + MySQL no Slackware

Servidor FTP com NetBSD (PureFTPD + MySQL)

Compilando o Apache 2 com PHP e MySQL

Leitura recomendada

Instalando e configurando o Nagios 3.3.1 com NDOUtils 1.4

IPtables e seus módulos

PaX: Solução eficiente para segurança em Linux

Descobrir a senha de configuração pelo browser de um Access Point (AP)

SELinux - Security Enhanced Linux

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts