Установите mod_security для лучшей безопасности Apache
Недавно я написал статью, которая поможет вам защитить вашу установку Linux Apache (см. «Пять способов защитить Apache в Linux»).
В той статье я упомянул об использовании Apache mod_security, но не нашел места для руководства по его установке. Итак, вот как установить этого выдающегося помощника для обеспечения безопасности Apache.
Что такое mod_security?
Дополнение mod_security к Apache — это модульный способ добавления или удаления различных функций безопасности на вашем сервере Apache. Вы можете добавлять или удалять эти модули, просто добавляя или удаляя (или комментируя) строки в вашем httpd.conf файл и перезапуск демона httpd. А установить mod_rewrite так же просто, как и установить.
Получение и установка
Я собираюсь провести вас через установку mod_security в дистрибутиве CentOS. Будет комбинация использования yum и установки из исходников. Я предполагаю, что Apache уже установлен.
Есть несколько способов установить этот пакет. Вы можете установить из исходного кода, но это потребует установки множества зависимостей только для компиляции. Поскольку мы рассматриваем CentOS (и это также относится к Red Hat и Fedora), вы можете использовать Yum для упрощения установки. Но если вы запустите Yum, вы обнаружите, что mod_security отсутствует в стандартных репозиториях.
К счастью, есть простой способ добавить репо для этой установки. Команда для добавления репозитория:
su -c ‘rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm ‘
Вам нужно будет ответить «Y» на пару вопросов, чтобы завершить установку. После того, как вы добавили репозиторий, выполните команду:
yum установить mod_security
установить систему. Вам нужно будет принять все зависимости, необходимые вашей системе для завершения установки. После установки mod_security вы готовы запустить его на своем сервере Apache.
Обратите внимание, что вы также можете запустить yum install mod_security mod_security_crs для установки с предопределенными правилами.
Базовая конфигурация
Выполните команду:
grep -n security2_module httpd.conf
изнутри / и т.д. / httpd / conf / каталог. Если вы не видите вывода, это означает, что вам нужно добавить директиву в свой httpd.conf файл. Это просто. В конце раздела загрузки модуля добавьте следующую строку:
LoadModule security2_module модули / mod_security2.so
Теперь сохраните файл и перезапустите Apache с помощью команды:
/etc/rc.d/init.d/httpd перезапуск
На этом этапе вы не должны получать никаких ошибок.
Самый сложный аспект использования mod_security — это раздел IfModule в httpd.conf файл. Причина, по которой этот раздел настолько сложен, заключается в том, что существует множество возможных вариантов. Лучший шанс познакомиться с этим — взглянуть на Директивы конфигурации на веб-сайте mod_security. Чтобы дать вам пример раздела директив конфигурации, взгляните на следующий образец на рисунке 1.
фигура 1
Как видите, этот раздел кажется довольно сложным. Но это в основном базовый пример того, что может делать mod_security. В этом примере мы делаем следующее:
- SecFilterEngine On: запустить двигатель
- SecFilterDefaultAction: установите действие по умолчанию для модуля. Обратите внимание, что в примере кода для действия по умолчанию установлено значение «Разрешить». Для большей безопасности вы захотите установить это значение «deny».
- SecFilterScanPOST: Сообщите mod_security сканировать полезные нагрузки, а также запросы получения.
- SecFilterCheckURLEncoding: проверка допустимых шестнадцатеричных значений в запросах.
- SecFilterCheckUnicoding: отключите это значение, если ваш веб-сайт не использует Unicoding.
- SecFilterForceByteRange: установите допустимые значения ascii в запросе GET и в сообщениях данных FORM.
- SecUploadDir: установите каталог для загрузки.
- SecUploadKeepFiles: для этого должно быть установлено значение «Вкл.». В целях безопасности вы хотите отключить его, чтобы загружаемые файлы не сохранялись.
- SecAuditEngine: включает возможность ведения журнала. Это значение имеет значение RelevantOnly или DynamicOrRelevant.
- SecAuditLog: расположение файла журнала.
- SecFilterDebugLog: установите файл журнала отладки.
- SecFilterDebugLevel: установите уровень отладки.
Это минимальные директивы, которые я бы использовал для вашей конфигурации mod_security.
Когда вы закончите этот раздел, перезапустите Apache еще раз и наслаждайтесь гораздо более безопасным сервером Apache.
Вывод
Конечно, это лишь малая часть mod_security. Чтобы получить максимальную отдачу от этой мощной функции, вам нужно внимательно изучить раздел директив на сайте mod_security.