Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Wiki Classificados Galeria Reviews Jogos Comunidades RSS Feeds FAQ Termos de Uso Sobre
Cadastre-se FotosBlogs Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Ferramentas pessoais
Publicidade

From UnderLinux Wiki

image:Apache_logo.jpg


Protegendo aplicações Web com mod_security

O ModSecurity é uma ferramenta de detecção e prevenção de intrusos para aplicações web (ou um firewall de aplicações). Pode ser utilizado como um módulo para o Apache ou como standalone, o propósito do ModSecurity é aumentar a segurança das aplicações web, as protegendos de ataques conhecidos e até mesmo de desconhecidos. Mas como isso? Ele se baseia em padrões de ataques. Neste exemplo vamos utilizá-lo como módulo do Apache, em primeiro lugar devemos fazer o download do pacote:

wget -c http://www.modsecurity.org/download/modsecurity-1.8.7.tar.gz

Também existem binários prontos para Debian, FreeBSD, Gentoo e Mandrake, para fazer seu download acesse: http://www.modsecurity.org/download/index.html.

Instalação

Vamos compilar e instalar o pacote:

root@under:~/recieved# tar -zxvf modsecurity-1.8.7.tar.gz
root@under:~/recieved# cd modsecurity-1.8.7
root@under:~/recieved/modsecurity-1.8.7# apxs -cia mod_security.c

Esta opção de compilação funciona para o Apache linkado dinâmicamente (DSO), se seu Apache for linkado estaticamente, leia o arquivo INSTALL que está na raiz do diretório modsecurity-1.8.7 para instruções de como proceder.

Agora precisamos criar as regras, recomento a utilização das regras disponíveis pelo site http://www.gotroot.com/tiki-index.php?page=mod_security+rules. Eles atualizam estas regras quase que diariamente com novos ataques que são descobertos.

A configuração é relativamente simples, adicione a seguinte opção em seu httpd.conf:

LoadModule security_module /usr/lib/apache/modules/mod_security.so

Entre na da pasta de configurações do Apache, e faça o download das regras:

root@under:~# cd /var/www/conf/
root@under:/var/www/conf# mkdir modsecurity
root@under:/var/www/conf# cd modsecurity
root@under:/var/www/conf/modsecurity# wget http://www.gotroot.com/downloads/ftp/mod_security/rules.conf
root@under:/var/www/conf/modsecurity# wget http://www.gotroot.com/downloads/ftp/mod_security/blacklist.conf

Agora que temos todos os arquivos necessários vamos habilitar o mod_security, edite o httpd.conf e ao final adicione:

<IfModule mod_security.c>
    # Only inspect dynamic requests
    # (YOU MUST TEST TO MAKE SURE IT WORKS AS EXPECTED)
    #SecFilterEngine DynamicOnly

    SecFilterEngine On
    
    # Reject requests with status 500
    SecFilterDefaultAction "deny,log,status:403" 
    
    # Some sane defaults
    SecFilterScanPOST On
    SecFilterCheckURLEncoding On
    SecFilterCheckCookieFormat On
    SecFilterCheckUnicodeEncoding Off
    SecServerResponseToken Off
    
    #If you want to scan the output, uncomment these
    #SecFilterScanOutput On
    #SecFilterOutputMimeTypes "(null) text/html text/plain"
    # Accept almost all byte values
    SecFilterForceByteRange 1 255
    # Server masking is optional
    #fake server banner - NOYB used - no one needs to know what we are using
    SecServerSignature "NOYB"
    
    #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
    
    #And now, the rules
    #Remove any of these Include lines you do not use or have rules for.
    #Application protection rules
    Include /var/www/conf/modsecurity/rules.conf
    #Comment spam rules
    Include /var/www/conf/modsecurity/blacklist.conf
</IfModule>

Para terminar reinice o apache, os logs do mod_security serão todos gravados na pasta de logs de seu apache com o nome audit_log. Um exemplo do log dele é o seguinte:

HTTP/1.0 403 Forbidden
Connection: close
Content-Type: text/html; charset=iso-8859-1
========================================
Request: 59.112.162.193 - - [11/Jun/2005:16:59:59 -0300] "CONNECT 168.95.4.211:25 HTTP/1.1" 403 210
Handler: (null)
----------------------------------------
CONNECT 168.95.4.211:25 HTTP/1.1
Host: 168.95.4.211:25
mod_security-message: Access denied with code 403. Pattern match "^CONNECT " at THE_REQUEST.
mod_security-action: 403
HTTP/1.1 403 Forbidden
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1

Pode acontecer dele bloquear muito mais do que deveria, para isso você terá que editar as regras manualmente para melhor se adequar ao seu servidor. Caso você deseje desabilitar o mod_security em apenas uma pasta, você deve adicionar o seguinte ao seu httpd.conf:

<Location "/var/www/suapasta">
   SecFilterEngine Off
</Location>

Não se esqueça de reiniciar o apache após realizar as alterações necessárias.


Referências: http://www.modsecurity.com http://www.gotroot.com

Rafael M. Capovilla - 1c3_m4n - iceman NOSPAM underlinux com br

Horários baseados na GMT -3. Agora são 18:30.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.