baltun
Администратор
- Сообщения
- 12.285
- Реакции
- 3.082
- Баллы
- 1.833
Модуль mod_security наделяет Apache возможностями брандмауэра: мы можем, задавая правила в конфигурации, определять, какие запросы являются легитимными, а какие следует запретить как потенциально опасные. По мимо это модуль позволяет создать дополнительную преграду на пути SQL-инъекций.
Установка:
Правим файл конфигурации:
Обычно формат правила фильтрации выглядит следующим образом:
SecRule <Переменная> <Оператор> [<Действия>]
Переменная определяет объект для сравнения с шаблоном. Самые используемые значения:
Установка:
Код:
yum install mod_security
Правим файл конфигурации:
Код:
nano /etc/httpd/conf.d/mod_security.conf
Обычно формат правила фильтрации выглядит следующим образом:
SecRule <Переменная> <Оператор> [<Действия>]
Переменная определяет объект для сравнения с шаблоном. Самые используемые значения:
- ARGS – параметры запроса GET или тело запроса POST (как частные случаи – ARGS_GET и ARGS_POST).
- ARGS_NAMES – имена параметров в запросе GET или POST
- FILES – запрошенные файлы
- FILES_COMBINED_SIZE – общий объем загружаемых файлов
- FILES_NAMES – имена загружаемых файлов
- FILES_SIZES – отдельные размеры загружаемых файлов
- GEO – наборы параметров для управления трафиком в зависимости от региона, к которому принадлежит IP-адрес
- PATH_INFO – путь (часть URL)
- QUERY_STRING – полная строка запроса с аргументами
- REMOTE_ADDR или REMOTE_HOST – IP-адрес или доменное имя удаленного пользователя
- REMOTE_PORT – порт, с которого устанавливается соединение
- REQUEST_BASENAME – имя запрашиваемого файла (например, index.php)
- REQUEST_HEADERS – заголовки запроса
- REQUEST_HEADERS_NAMES – имена заголовков
- REQUEST_LINE – полная строка запроса, включая версию HTTP
- REQUEST_URI – URL запроса без доменного имени
- REQUEST_URI_RAW – URL запроса с доменным именем
- beginsWith
- contains
- endsWith
- eq ge – больше или равно
- gt le – меньше или равно
- lt pm – сравнение по списку слов
- pmFromFile – сравнение со списком слов из файла
- rx – регулярное выражение
- streq – сравнение строк на точное соответствие
- validateByteRange – сравнение с диапазоном байтов
- allow – прекратить проверку и разрешить транзакцию
- auditlog – сделать запись в auditlog
- deny – прекратить проверку и завершить транзакцию
- deprecatevar – уменьшать переменную с течением времени
- drop – завершить IP-соединение
- exec – выполнить внешний скрипт или команду
- expirevar – обнулять переменную через промежуток времени
- id – уникальный id правила
- initcol – создать набор переменных (например, для слежения за IP-адресами)
- log – создать запись в error.log и audit.log
- logdata – записать часть запроса в лог
- msg – записать в лог дополнительное сообщение
- pass – продолжить проверку pause – задержать обработку транзакции на определенное количество миллисекунд
- phase – приписать правило к определенной фазе
- proxy – перенаправить запрос на другой
- web-сервер redirect – вернуть ответ 302с новым адресом
- setvar – создание и управление переменными
- status – ответить с данным HTTP-кодом within