Межсетевое экранирование

Действия для правила


Можно также указать действия для каждого фильтра. В обеих директивах фильтрования (SecFilter и SecFilterSelective) может быть указано множество действий в качестве дополнительного параметра. Действия, указанные для правила, объединяются с действиями, указанными в директиве SecFilterSignatureAction (значением по умолчанию является log, deny, status:403). Объединение происходит по следующим правилам:

  1. Разрешается только одно первичное действие для каждого списка правил. Первичное действие для правила перекрывает первичное действие в списке по умолчанию;
  2. Действия, указанные в конфигурации для правила, перекрывают эквивалентные действия в списке действий по умолчанию;

  3. Когда задан ограниченный режим (см SecFilterActionsRestricted), только действия над метаданными могут появиться в списке действий для каждого правила;

  4. Правила могут объединяться во время конфигурирования (предпочтительней и понятней) или во время выполнения.

Директива SecFilterSignatureAction упрощает поддержку множества правил. В более ранних версиях, если требовалось использовать список действий для правила, каждый список действий должен был быть полным, т.е. следовало указывать первичное действие, коды статуса и т.п. Это делало очень трудным отделение правил (логику определения атак) от политики конфигурирования. Директива SecFilterSignatureAction может появляться много раз внутри одного конфигурационного контекста, и она применяется к правилам, которые непосредственно следуют за ней. Также нужно заметить, что правила, которые не содержат настраиваемых действий, будут наследовать список действий данной директивы. Правило, указанное ниже, будет распространяться на действия, указанные в контексте, в котором оно выполняется. Следует подчеркнуть, что контекст правила, в котором оно выполняется, не обязательно является тем же контекстом, в котором правило было создано. С помощью наследования одно правило может выполняться во многих различных контекстах. Например:

SecFilterDefaultAction log, deny, status:500 SecFilter 000

# Warning rules SecFilterSignatureAction log, pass SecFilter 111 id:1 SecFilter 222 id:2

# Error rules SecFilterSignatureAction log, pass, status:403 SecFilter 333 id:3 SecFilter 444 id:4

При использовании совместно с директивой SecFilterActionsRestricted данная директива позволяет с легкостью включать в конфигурацию набор правил стороннего разработчика.

Замечание. Значение директивы SecFilterSignatureAction не наследуется в дочерних контекстах.



Содержание раздела