Dicas, informação e principalmente anotações!

Main menu:




Archive

Meta

Instalando e configurando o mod_secutity no apache1

Olá pessoal,

O mod_security é um módulo muito importante no apache na questão de segurança.
Com ele é possível filtrar o que é passado na URL, ou enviado por post ou get.
Um dos roblemas que podem ser reoslvidos com esse módulo é a vulnerabilidade em scripts de clientes. No meu caso o principal problema era os formulários de clientes que aceitavam código bcc:…. e um monte de endereços de e-mail. Com isso o spammer enviava e-mail para a lista toda dele, através de uma vulnerabilidade de código de um cliente.

Agora vamos bloquear o espertinho!

- Download
Faça o download do mod_security no site http://www.modsecurity.org. Lembro que para o apache1 baixe versão do mod_security 1.9.x.

- Compilando:
* Faça um backup or segurança de seu arquivo httpd.conf
tar -xzpf modsecurity-apache_1.9.5.tar.gz
cd modsecurity-apache_1.9.5/apache1/
apxs -cia mod_security.c
mkdir /usr/logs
touch /usr/logs/audit_log

O que fizemos agora foi compilar o mod_security e criar o local onde serão guardados os logs suspeitos.

- Adicionando regras:
Edite o arquivo httpd.conf e verifique se existem essas 2 linhas sobre o mod_securuty:
LoadModule security_module    libexec/mod_security.so
Mais embaixo agora….
AddModule mod_security.c

Inclua as regras de filtro.

<IfModule mod_security.c>
# Turn the filtering engine On or Off
SecFilterEngine On

## Change Server: string
SecServerSignature “Apache”
SecFilterCheckUnicodeEncoding Off
SecAuditEngine RelevantOnly
SecFilterScanPOST On
SecFilterDefaultAction “deny,log,status:403″
SecFilterSelective REQUEST_METHOD “^POST$” chain
SecFilterSelective HTTP_Content-Length “^$”
SecFilterSelective ARG_PHPSESSID “!^[0-9a-z]*$”
SecFilterSelective COOKIE_PHPSESSID “!^[0-9a-z]*$”
SecFilter “viewtopic\.php\?” chain
SecFilter “chr\(([0-9]{1,3})\)” “deny,log”

# Aqui são é possível incluir e retirar linhas de acordo com suas necessidades. Para bloqueio de spam por bcc utilize:
SecFilter “bcc:”
SecFilter “bcc\x3a”
SecFilter “cc:”
SecFilter “cc\x3a”
SecFilter “bcc:|Bcc:|BCC:” chain
SecFilter “[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\,\x20[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}”
SecFilterSelective POST_PAYLOAD “Bcc:”

SecFilterSelective POST_PAYLOAD “Bcc:\x20″
SecFilterSelective POST_PAYLOAD “cc:”
SecFilterSelective POST_PAYLOAD “cc:\x20″
SecFilterSelective POST_PAYLOAD “bcc:”
SecFilterSelective POST_PAYLOAD “bcc:\x20″
SecFilterSelective POST_PAYLOAD “bcc: ”

SecFilterSelective THE_REQUEST “Bcc:”
SecFilterSelective THE_REQUEST “Bcc:\x20″
SecFilterSelective THE_REQUEST “cc:”
SecFilterSelective THE_REQUEST “cc:\x20″
SecFilterSelective THE_REQUEST “bcc:”
SecFilterSelective THE_REQUEST “bcc:\x20″
SecFilterSelective THE_REQUEST “bcc: ”
SecFilterSelective “POST_PAYLOAD” “Content-Type: multipart/mixed; boundary=” “deny,log,status:404″
</IfModule>

Abraços!


Rec6
Linkto
del.icios
Linkk
Technorati
Digg
Blogblogs
Eucurti
Google
Adicionar ao Rec6
Adicionar ao Linkto
Adicionar ao del.icio.us
Adicionar ao Linkk
Adicionar ao Technorati
Adicionar ao Digg
Adicionar aos Bookmarks do Blogblogs
Adicionar ao EuCurti
Adicionar ao Google

Write a comment