Включите /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf

Включите /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf

скачал v3.2.0 https://coreruleset.org/installation/ следуя инструкциям, находящимся в файле INSTALL

Но Apache не может запуститься и возвращает эту ошибку -

AH00526: Syntax error on line 800 of /etc/apache2/crs/crs-setup.conf:
яну 19 01:36:09 VMhomeServer apachectl[20761]: ModSecurity: Found another rule with the same id

это мой файл apache2.conf для security2

LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so
<IfModule security2_module>
Include /etc/apache2/crs/crs-setup.conf
Include /etc/apache2/crs/rules/*.conf
</IfModule>

Согласно этому вопросуhttps://github.com/SpiderLabs/ModSecurity/issues/1227

Я «решил» это, прокомментировав:

Включите /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf

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

У меня modsecurity-crs/bionic,bionic,now 3.0.2-1 все [установлено], как того требует руководство по установке

Буду признателен за любую помощь, но пока я не нашел в интернете ничего о такой проблеме в этой версии.

решение1

Не могли бы вы проверить, что вы включаете файл modsecurity.conf со строкой типа: Include "/etc/apache2/modsecurity.d/modsecurity.conf"перед включением crs-setup.conf Вы используете версию modsecurity из репозитория Ubuntu или вытащили ее из репозитория git вместе с правилами? Версия репозитория Ubuntu поместит конфигурацию в /etc/modsecurity/modsecurity.confЯ не знаю, куда вы поместили этот файл, но ваш файл conf может выглядеть так. Примечание: если вы используете версию modsecurity из репозитория git, вам может потребоваться загрузить некоторые дополнительные библиотеки.

LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so

<IfModule security2_module>
        # Include the main modsecurity conf file
        Include "/etc/apache2/modsecurity.d/modsecurity.conf"

        # Include OWASP ModSecurity CRS rules from github
        Include /etc/apache2/crs/crs-setup.conf
        IncludeOptional /etc/apache2/crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
        Include /etc/apache2/crs/rules/*.conf
        IncludeOptional /etc/apache2/crs/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf
</IfModule>

Это не совсем отвечает на ваш вопрос, но вам действительно нужен этот файл. Apache не запускается, потому что есть два правила с одинаковым номером идентификатора. ModSecurity не позволит этого. Вам просто нужно найти дублирующийся номер правила и изменить его. Согласно стандартам modsecurity, вы не должны изменять ни один из существующих файлов conf в каталоге /rules. Вы можете и должны изменять файлы modsecurity.confи crs-setup.conf. У вас есть дублирующийся номер идентификатора правила on line 800 of /etc/apache2/crs/crs-setup.confИмейте в виду, что номера строк могут не совпадать идеально. Я думаю, что они считаются одной строкой, когда строки экранируются с помощью \. По умолчанию crs-setup.conf.exampleвсе правила закомментированы, за исключением последнего, в котором перечислена версия правил, которые вы используете. Проверьте свой crs-setup.confфайл и посмотрите, что вы раскомментировали. Если вы найдете какие-то номера идентификаторов правил, которые могут быть подозрительными, вы можете проверить все свои правила на наличие дубликатов, выполнив что-то вроде этого (изменяя номер правила, который вы ищете, конечно):

grep -r '900990' /etc/apache2/crs/rules/*

Если вы просто хотите найти все номера идентификаторов правил в файлах, то это может помочь:

grep -ho 'id:[0-9]*' /etc/apache2/crs/rules/*  | sort | uniq -c | less

Связанный контент