|
|||||||
| Wiki | Classificados | Galeria | Reviews | Jogos | Comunidades | RSS Feeds | FAQ | Termos de Uso | Sobre |
| Cadastre-se | Fotos | Blogs | Lista de Membros | Calendário | Pesquisar | Mensagens de Hoje | Marcar Fóruns Como Lidos |
FerramentasPublicidade |
From UnderLinux WikiProtegendo 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 |