# Web Basik №4 **Web Basic - Гежа Николай - Практика №4* 1) Используя стенд первой практической работы - изменить инфраструктуру в соответсвии со схемой. Главное условие - чтобы машинка с WAF была проксей для WEB-сервера, развернутого во время первой практической работы: WAF - Ubuntu 20.04 WEB-сервер - Ubuntu 20.04 c docker и приложением juice-shop *Настройки сети:* WEB-сервер: ![](https://i.imgur.com/gFb2i8G.png) WAF: ![](https://i.imgur.com/VroTQkT.png) Настройки прокси: ![](https://i.imgur.com/jorBT45.png) 2) Установить WAF (ModSecurity 3) на машинку c названием WAF, продемонстрировать что ранее развернутый web-сайт открывается при коннекте на машинку с WAF: Обновляем систему: ![](https://i.imgur.com/SQGF2Mh.png) Добавим репозиторий с MAINLINE версией nginx и обновим индексы репозиториев: ![](https://i.imgur.com/P4xwKBa.png) Установим nginx: ![](https://i.imgur.com/Y6oq87N.png) Добавим исходный код nginx в репозиторий: ![](https://i.imgur.com/HiK0trn.png) Создаём директорию, устанавливаем зависимости и выполняем загрузку: ![](https://i.imgur.com/0UhZ2b3.png) Проверим версию: ![](https://i.imgur.com/A8v8Xen.png) Клонируем репозиторий ModSecurity с github: ![](https://i.imgur.com/m7fRDzo.png) Устанавливим зависимости libmodsecurity3: ![](https://i.imgur.com/TgQNzxC.png) Устанавливаем подмодули git: ![](https://i.imgur.com/VZYc7MK.png) Обновляем подмодули: ![](https://i.imgur.com/W9e5UDt.png) Создаём среду ModSecurity: ![](https://i.imgur.com/YiUZnZI.png) Выполним .configure: ![](https://i.imgur.com/SQJHkzU.png) Компиляция исходного кода ModSecurity: ![](https://i.imgur.com/iNRcz8X.png) Запускаем установку: ![](https://i.imgur.com/hOplT4F.png) *Установка ModSecurity-nginx Connector:* Клонируем репозиторий connector: ![](https://i.imgur.com/IBt7NXV.png) Устанавливаем зависимости: ![](https://i.imgur.com/Z6LLVyj.png) Скомпилируем модуль ModSecurity-nginx: ![](https://i.imgur.com/HImauVH.png) Создадим динамические модули: ![](https://i.imgur.com/Rw98Ds4.png) Скопируем созданный динамический модуль в каталог /usr/share/nginx/modules: ![](https://i.imgur.com/BHiL3ZR.png) *Загрузка и настройка коннектора ModSecurity-nginx с Nginx:* Указываем load_module и путь к нашему модулю modsecurity, местоположение правил: ![](https://i.imgur.com/2c9zKXn.png) ![](https://i.imgur.com/nbuxd52.png) *Создание и настройка каталогов и файлов для ModSecurity:* Создаём директорию /etc/nginx/modsec, копируем и переименуем файл /usr/local/src/ModSecurity/modsecurity.conf-recommended: ![](https://i.imgur.com/iX1j7D9.png) Изменяем правило в modsecurity.conf: ![](https://i.imgur.com/6NGI1ab.png) ![](https://i.imgur.com/W5NIxa1.png) Создаем файл modsec-config.conf: ![](https://i.imgur.com/VYbBpE7.png) Скопируем ModSecurity’s unicode.mapping, проверим правильность файлов и перезапустим nginx: ![](https://i.imgur.com/LbEkc0f.png) Pанее развернутый web-сайт открывается при коннекте на WAF: ![](https://i.imgur.com/LRaZXCN.png) 3) Настроить WAF c детектом OWASP top 10: Используем wget, чтобы скачать OWASP CRS 3.3.2 archive: ![](https://i.imgur.com/oDkrDhd.png) Разархивируем архив: ![](https://i.imgur.com/yuD1Vrg.png) Скопируем и переименуем файл crs-setup.conf.example в файл crs-setup.conf в директории /etc/nginx/modsec/corerulleset-3.3.2: ![](https://i.imgur.com/IFzK71q.png) Изменим файл /etc/nginx/modsec/modsec-config.conf: ![](https://i.imgur.com/1Gn6Dma.png) Проверим наличие ошибок и перезагрузим nginx: ![](https://i.imgur.com/9ylvYoC.png) 4) Провести 3 атаки из списка OWASP top 10 и продемонстрировать работоспособность WAF (должны быть сработки правил WAF): SQL Injection: ![](https://i.imgur.com/5sA2HBK.png) ![](https://i.imgur.com/2v8jU5g.png) XSS: ![](https://i.imgur.com/O01AmmM.png) ![](https://i.imgur.com/BSTfy4S.png) RCE: ![](https://i.imgur.com/7xY89yJ.png) ![](https://i.imgur.com/SMH6WS7.png)