1) Скачиваем mod_security тут http://www.apachelounge.com/download/
Качаем нужной вам разрядности.
2) Разархивируем файл на сервере
3) Переписываем файлы libcurl.dll и yajl.dll в каталог apache\bin
4) Переписываем файл mod_security2.so в каталог apache\modules
5) Добавляем в файл httpd.conf слудующую строку:
LoadModule security2_module modules/mod_security2.so
6) Раскомментируем строку
LoadModule unique_id_module modules/mod_unique_id.so
7) Далее в том же файле httpd.conf добавляем три строки
SecRuleEngine On
SecDefaultAction "deny,phase:2,status:403"
SecRule ARGS "\.\./" "t:normalizePathWin,id:50904,severity:4,t:none,t:urlDecodeUni,t:htmlEntityDecode,t:lowercase,msg:'Drive Access'"
8) Рестартуем Apache
9) Проверяем работу модуля через запрос к сайту например: http://localhost/?abc=../../
Должны получить сообщение:
Forbidden
You don't have permission to access / on this server.
10) До этого мы сделали самую простую настройку модуля. Теперь к нему надо прикрутить правила, которые можно скачать тут:
https://github
.com
/SpiderLabs/owasp-modsecurity-crs/tarball/master
11) Создаем каталог crs в каталоге Apache
12) Разархивируем в каталог crs скачанный файл (в моем случае назывался SpiderLabs-owasp-modsecurity-crs-2.2.9-28-g37edea0.tar.gz).
Но разархивируем следующим образом. Внутри этого файла есть каталог:
Заходим в него и уже его содержимое разархивируем в каталог crs.
13) Создаем копию файла modsecurity_crs_10_setup.conf.example и называем его modsecurity_crs_10_setup.conf
14) Чтобы сказать Apache использовать этот файл для модуля mod_security module, вставьте следующие строки в файл httpd.conf
<IfModule security2_module>
Include crs/modsecurity_crs_10_setup.conf
Include crs/base_rules/*.conf
</IfModule>
У вас пути могут быть другие…
15) В файл httpd.conf так же можно добавить еще три строки:
SecRequestBodyAccess On
SecResponseBodyAccess On
SecResponseBodyMimeType text/plain text/html text/xml application/octet-stream
16) Рестартуем Apache. Все должно работать. Радуемся если так :)
17) Настраиваем логи mod_security. Копируем файл mlogc.exe каталог Apache/bin.
18) Далее в каталоге с логами я создал подкаталог data.
В каталоге Apache/conf создал файл mlogc.conf со следующим содержанием:
CollectorRoot "E:/iLogs"
ConsoleURI "https://localhost/rpc/auditLogReceiver"
SensorUsername "username"
SensorPassword "userpass"
LogStorageDir "data"
TransactionLog "mlogc-transaction.log"
QueuePath "mlogc-queue.log"
ErrorLog "mlogc-error.log"
LockFile "mlogc.lck"
KeepEntries 0
ErrorLogLevel 2
MaxConnections 10
MaxWorkerRequests 1000
TransactionDelay 50
StartupDelay 5000
CheckpointInterval 15
ServerErrorTimeout 60
А настройки в httpd.conf для mod_security и mlogc привел к следующему виду:
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|4\d[^4])"
SecAuditLogType Concurrent
SecAuditLogParts ABCDEFGHZ
SecAuditLogStorageDir "E:/iLogs/data/"
SecAuditLog "E:/iLogs/audit.log"
#SecAuditLog "|bin/mlogc.exe"
SecDataDir "E:/iLogs"
SecResponseBodyMimeType text/plain text/html text/xml application/octet-stream
SecDefaultAction "deny,phase:2,status:403"
SecRule ARGS "\.\./" "t:normalizePathWin,id:50904,severity:4,t:none,t:urlDecodeUni,t:htmlEntityDecode,t:lowercase,msg:'Drive Access'"
<IfModule security2_module>
Include crs/modsecurity_crs_10_setup.conf
Include crs/base_rules/*.conf
Include crs/slr_rules/modsecurity_crs_46_slr_et_joomla_attacks.conf
</IfModule>
одна строка там закомментирована, так как она выдавала кучу ошибок в лог файле
чтобы проверить работу что при попытке неправильных запросов пишутся логи можно зайти по следующему адресу на свой хост
в файле audit.log должны появиться записи о попытке использования не правильных URL
так же записи должны появится в файлах в подкаталогах в каталоге data
Комментариев нет:
Отправить комментарий