Pesquisar este blog

quarta-feira, 23 de março de 2011

Regras Mod_Secure Atualizadas

Sobre o post das regras do Mod_secure em http://cpanelmania.blogspot.com/2010/10/mod-secure.html cabem algumas atualizações necessárias, seguem as mesmas abaixo.

Agradecimentos ao YSAAC por ter compartilhado a informação pelo post do Forum do Host em http://forum.portaldohost.com.br/showthread.php?t=3037&p=30086#post30086. Segue aqui o post completo:
Acessando como root execute:

cd /usr/local/apache/conf/
mkdir modsec_rules
cd modsec_rules
wget http://updates.atomicorp.com/channel...8191901.tar.gz
tar zvxf modsec-201008191901.tar.gz
rm -fr zvxf modsec-201008191901.tar.gz

Crie os diretórios abaixo, eles são necessários para gravação e leitura de arquivos temporários do ASL:

mkdir /var/asl
mkdir /var/asl/tmp
mkdir /var/asl/data
mkdir /var/asl/data/msa
mkdir /var/asl/data/audit
mkdir /var/asl/data/suspicious
mkdir /etc/asl

Corrija as permissões :

chown nobody.nobody /var/asl/data/msa
chown nobody.nobody /var/asl/data/audit
chown nobody.nobody /var/asl/data/suspicious
chmod o-rx -R /var/asl/data/*
chmod ug+rwx -R /var/asl/data/*

e crie o arquivo "lista branca":
touch /etc/asl/whitelist

Agora acesse o WHM e clique no "Mod Security", deletando as regras atuais e no lugar delas adicione:

SecComponentSignature 201008191901
SecRequestBodyAccess On
SecResponseBodyAccess On
SecResponseBodyMimeType (null) text/html text/plain text/xml
SecResponseBodyLimit 2621440
SecServerSignature Apache
SecUploadDir /var/asl/data/suspicious
SecUploadKeepFiles Off
SecAuditLogParts ABIFHZ
SecArgumentSeparator '&'
SecCookieFormat 0
SecRequestBodyInMemoryLimit 131072
SecDataDir /var/asl/data/msa
SecTmpDir /tmp
SecAuditLogStorageDir /var/asl/data/audit
SecResponseBodyLimitAction ProcessPartial

# ConfigServer ModSecurity - descomente caso vc use o ConfigServer CMC.
#Include /usr/local/apache/conf/modsec2.whitelist.conf

#ASL Rules
Include /usr/local/apache/conf/modsec_rules/modsec/99_asl_jitp.conf
Include /usr/local/apache/conf/modsec_rules/modsec/50_asl_rootkits.conf
#Include /usr/local/apache/conf/modsec_rules/modsec/00_asl_rbl.conf
Include /usr/local/apache/conf/modsec_rules/modsec/00_asl_whitelist.conf
Include /usr/local/apache/conf/modsec_rules/modsec/05_asl_scanner.conf
Include /usr/local/apache/conf/modsec_rules/modsec/20_asl_useragents.conf

Observação: Caso você use o ConfigServer CMC (http://www.configserver.com/cp/cmc.html) deixe a linha "Include /usr/local/apache/conf/modsec2.whitelist.conf" liberada, caso não use, deixe comentado com o # no início.

Existem vários arquivos de regras específicas no /usr/local/apache/conf/modsec_rules/ - estas acima são sugestões.

Tome cuidado com o load do servidor - quanto mais regras forem adicionadas ao modulo mais o apache demorará a carrega-las em cada processo aberto. O que sugiro neste caso para usar são:

Include /usr/local/apache/conf/modsec_rules/99_asl_jitp.conf
Include /usr/local/apache/conf/modsec_rules/50_asl_rootkits.conf
Include /usr/local/apache/conf/modsec_rules/20_asl_useragents.conf

Após tudo isso salve e reinicie o apache. Acompanhe os logs do mod_security para ver que tipo de tentativa de acesso indevido ocorre, em quais scripts e domínios de seu servidor.

6 comentários:

Anônimo disse...

Boa tarde,

Após implementar as regras, quando vou restartar o apache... me retorna um erro:
/etc/init.d/httpd restart: configuration broken, ignoring restart
/etc/init.d/httpd restart: (run 'apachectl configtest' for details)

se eu retirar as recras, ele restarta numa boa.

obrigado.

Alexandre Duran disse...

Opa desculpe pela demora, vc criou o arquivo de "lista branca" ?

touch /etc/asl/whitelist

Redirect disse...

Essas configurações são suficientes para pequenos servidores vps ou dedicados de hospedagem de site?

Alexandre Duran disse...

Sim podem ser usadas em VPS ou dedicados, porem quanto mais regras no mod_secure vc adicionar mais carga de processamento será usada pelo apache.

Anônimo disse...

Bom dia,

Alguma dessas regras pode interferir no envio de mailing através do PHPlist? Vlw...

Anônimo disse...

Primeiramente parabéns pelo blog, alta qualidade do material.
Não consegui interpretar direito os logs, eles indicam tentativas de ataque no script indicado, ou indica que aquele script está tentando atacar o servidor? Espero não ter sido confuso ehhehe