Использование модуля ModSecurity Apache на облачном сервере с Ubuntu 16.04

ModSecurity — это бесплатный брандмауэр веб-приложений (WAF), который является простым и мощным способом защиты сервера от вредоносных программ и попыток взлома. Узнайте, как установить ModSecurity и официально рекомендованный OWASP Core Rule Set (CRS), который защитит сервер от вредоносного ПО и взлома в виде SQL-инъекций, перехвата сессий, межсайтового скриптинга, троянов и многих других форм веб-эксплойтов.

Примечание

Apache по умолчанию установлен и работает на стандартной установке. Если ваш сервер был создан с минимальной установкой, вам нужно будет установить и настроить Apache, прежде чем продолжить.

Установите ModSecurity

Установите пакет libapache2-modsecurity:

sudo apt-get install libapache2-modsecurity

Используйте apachectl -M | grep security, чтобы убедиться, что пакет установлен. Сервер ответит сообщением:

user@localhost:~# apachectl -M | grep security
security2_module (shared)

Создайте каталог для правил ModSecurity:

sudo mkdir /etc/modsecurity

Создайте файл для правил ModSecurity и откройте его для редактирования:

sudo nano /etc/modsecurity/mod_security.conf

Добавьте в файл следующее:

<IfModule mod_security2.c>
    SecRuleEngine On
    SecRequestBodyAccess On
    SecResponseBodyAccess On 
    SecResponseBodyMimeType text/plain text/html text/xml application/octet-stream 
    SecDataDir /tmp
</IfModule>

Сохраните и выйдите из файла. Затем перезапустите Apache, чтобы изменения вступили в силу:

sudo systemctl restart apache2

Установка и настройка набора основных правил OWASP (CRS)

OWASP Core Rule Set (CRS) расширяет функциональность ModSecurity, предоставляя набор правил безопасности для защиты вашего сервера.

Сначала установите пакет git:

sudo apt-get install git

Перейдите в каталог /etc/apache2:

cd /etc/apache2/

Скачайте установочные файлы OWASP:

sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

Переместитесь в новый каталог OWASP:

cd owasp-modsecurity-crs

Создайте копию файла настройки примера и переименуйте его:

sudo cp crs-setup.conf.example crs-setup.conf

Откройте для редактирования основной файл конфигурации Apache:

sudo nano /etc/apache2/apache2.conf

Прокрутите вниз до раздела, который гласит:

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

Добавьте следующие две строки:

Include /etc/apache2/owasp-modsecurity-crs/crs-setup.conf
Include /etc/apache2/owasp-modsecurity-crs/rules/*.conf

Сохраните и выйдите из файла. Затем перезапустите Apache, чтобы изменения вступили в силу:

systemctl restart apache2

Проверьте, что ModSecurity установлен и OWASP CRS загружен

Вы можете проверить OWASP CRS от ModSecurity, посетив URL:

http://example.com/?param="><script>alert(1);</script>

example.com заменен на доменное имя или IP-адрес вашего сервера.

Вам будет отказано в доступе с ошибкой 403: Forbidden. Кроме того, эта ошибка будет отмечена в файле /var/log/apache2/error.log с записью, подобной этой:

[Tue Aug 01 21:28:41.118995 2017] [:error] [pid 59913] [client 79.196.255.255] ModSecurity: Warning. Pattern match "^[\\d.:]+$" at REQUEST_HEADERS:Host. [file "/etc/apache2/owasp-modsecurity-crs/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf"] [line "810"] [id "920350"] [rev "2"] [msg "Host header is a numeric IP address"] [data "50.21.182.126:80"] [severity "WARNING"] [ver "OWASP_CRS/3.0.0"] [maturity "9"] [accuracy "9"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-protocol"] [tag "OWASP_CRS/PROTOCOL_VIOLATION/IP_HOST"] [tag "WASCTC/WASC-21"] [tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"] [hostname "50.21.182.126"] [uri "/phpmanager/"] [unique_id "WYDyiX8AAAEAAOoJ5qMAAAAA"]

Обновление набора основных правил OWASP (CRS)

OWASP CRS поставляется со сценарием, который можно запустить для обновления правил до последней версии. Чтобы обновить OWASP:

sudo python /etc/apache2/owasp-modsecurity-crs/util/upgrade.py --crs

Если вы запустите его сейчас, чтобы проверить команду, он выдаст ответ:

crs:
From https://github.com/SpiderLabs/owasp-modsecurity-crs
 * branch            HEAD       -> FETCH_HEAD
Already up-to-date.

Мы рекомендуем периодически запускать этот сценарий для обновления OWASP CRS последними исправлениями безопасности.

Оцените статью
cdelat.ru
Добавить комментарий