Limite a regra mod_security para apenas um vhost

1

Eu rodei vários domínios (via vhosts) com a mesma instalação do apache. Alguns domínios exigem regras de mod_security diferentes das outras. Em um arquivo separado excetions.conf eu coleciono todas as regras e tenho esta sintaxe:

<Location "/test">
    SecAuditEngine Off
    SecRuleRemoveById 950134
    SecRuleRemoveById 981265
    SecRuleRemoveById 981289
    SecRuleRemoveById 981244
    SecAuditEngine RelevantOnly     
</Location>

Mas esta regra corresponderia a todas as pastas / teste em todos os domínios! Mas eu só quero limitá-lo a um host específico. Como posso limitar essas regras a um vhost apenas em um arquivo global excetions.conf?

    
por powtac 23.04.2013 / 09:52

1 resposta

1

Aqui estão algumas maneiras diferentes de fazer isso:

  • em vez de ter um arquivo de exceção global, coloque as exceções dentro das definições do host virtual
  • se você deseja ter um arquivo de exceção separado da definição real do host virtual, não o inclua na configuração principal do servidor; em vez disso, inclua-o de dentro do host virtual.
  • em vez de usar <Location> , use o SecRule e a ação ctl:ruleRemoveByID . Exemplo:

SecRule SERVER_NAME "somedomain\.com$" "@streq /test/.*" "ctl:ruleRemoveByID=981244"

Se possível, o primeiro seria de longe o mais simples.

    
por 23.04.2013 / 11:32