⠀ ⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀![](https://i.imgur.com/l6GHi51.png) ⠀ ⠀ ⠀ # ⠀⠀⠀⠀⠀⠀⠀Практическая работа №4 ⠀ :::info :bulb: **Цель практической работы №4** - Получить знания по установке, настройке и работе Web Application Firewall - Научиться самостоятельно разворачивать WAF в базовой конфигурации ::: ⠀ ## Добавляем репозиторий ``` add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update ``` ![](https://i.imgur.com/mQD9dW7.png) ⠀ Полная установка ``` Now that you have installed the PPA and updated the repository list, install Nginx with the following: ``` ![](https://i.imgur.com/BLk65CM.png) ⠀ Откроем файл конфигурации, и пропишем вручную исходный код для компиляции ``` nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list ``` ![](https://i.imgur.com/Z7I4zNZ.png) ⠀ Создадим новую папку ![](https://i.imgur.com/9zx4ikK.png) ⠀ Загружаем исходники ![](https://i.imgur.com/cg3Q3Cg.png) ![](https://i.imgur.com/naGSahL.png) ⠀ Версия NGINX ![](https://i.imgur.com/xVsVhB6.png) ## Установка libmodsecurity3 Установим GIT ``` sudo apt-get isntall git -y ``` ![](https://i.imgur.com/yDeMNPk.png) ⠀ Копируем репозиторий ``` git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/ ``` ![](https://i.imgur.com/5hgOyad.png) ⠀ ![](https://i.imgur.com/7l7dhQ5.png) ⠀ Установка зависимостей ``` sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y ``` ![](https://i.imgur.com/edkfQLp.png) ⠀ Установка подмодулей ``` git submodule init && git submodule update ``` ![](https://i.imgur.com/VDR6cym.png) ⠀ Создание среды ``` ./build.sh && ./configure ``` ![](https://i.imgur.com/VQGgeZq.png) ⠀ ![](https://i.imgur.com/vPOGQhD.png) ⠀ Компиляция с помощью команды make ``` make ``` ![](https://i.imgur.com/kliX6Ra.png) ⠀ После компиляции запускаем установку ``` sudo make install ``` ⠀ ## Установка ModSecurity-nginx Connector Клонируем MS-NGINX с Github ``` sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git /usr/local/src/ModSecurity-nginx/ ``` ![](https://i.imgur.com/Q0U006a.png) ⠀ Установим зависимости ``` cd /usr/local/src/nginx/nginx-1.21.* sudo apt build-dep nginx && sudo apt install uuid-dev -y ``` ![](https://i.imgur.com/X2Luvz7.png) ⠀ Скомпилируем модуль ModSecurity-nginx Connector с флагом –with-compat ``` sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx ``` ![](https://i.imgur.com/grQ3E1r.png) ⠀ Теперь создадим динамические модули ``` sudo make modules ``` ![](https://i.imgur.com/dNlbD6R.png) ⠀ Находясь в исходном каталоге Nginx, переместим созданный динамический модуль, сохраненный в папке objs/ngx_http_modsecurity_module.so, и скопируем его в каталог /usr/share/nginx/modules. ``` sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/ ``` ![](https://i.imgur.com/W0CVoMO.png) ⠀ ## Загрузка и конфигурация MS-NGINX Connector Oтредактируем файл конфигурации /etc/nginx/nginx.conf, чтобы заставить ModSecurity работать с веб-сервером Nginx ``` sudo nano /etc/nginx/nginx.conf ``` ![](https://i.imgur.com/4xBKTAR.png) ⠀ Создание и настройка каталога и файлов для ModSecurity ``` sudo mkdir /etc/nginx/modsec/ ``` ![](https://i.imgur.com/jWLhhDz.png) ⠀ Теперь нужно скопировать образец файла конфигурации ModSecurity обратно из нашего клонированного каталога GIT ``` sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf ``` ![](https://i.imgur.com/7GOgyS5.png) ⠀ Oткроем файл modsecurity.conf и изменим конфигурацию ``` sudo nano /etc/nginx/modsec/modsecurity.conf ``` ![](https://i.imgur.com/YXgYPDJ.png) ⠀ ![](https://i.imgur.com/lgbgjfM.png) ⠀ Создадим файл **modsec-config.conf**. ![](https://i.imgur.com/YRRXtQL.png) ⠀ Скопируем файл unicode.mapping ModSecurity с помощью команды CP ![](https://i.imgur.com/ObD5Hkm.png) ⠀ Протестируем службу Nginx с помощью следующей команды терминала ``` sudo nginx -t ``` ![](https://i.imgur.com/BTbyiii.png) ⠀ ## Установка набора правил OWASP для ModeSecurity Скачаем архив ![](https://i.imgur.com/pZyF6ny.png) ⠀ И распакуем ![](https://i.imgur.com/dF8Hdv1.png) ⠀ Сохраним как резервную копию распакованную конфигурацию файла и скопируем ее ![](https://i.imgur.com/onhYmpX.png) ⠀ Откроем файл конфигурации и добим 2 новые строчки ![](https://i.imgur.com/6AFi2Sz.png) ⠀ ![](https://i.imgur.com/8NaUxyx.png) ⠀ ## Oсновной набор правил OWASP Откроем файл CRS-setup.conf ![](https://i.imgur.com/P9x3MCp.png) ⠀ ## Тестирование OWASP CRS на сервере Попробуем перейти на страницу сервера ![](https://i.imgur.com/r2YLcab.png) ⠀ ## Настройка Reverse-proxy > [color=lightblue] Указываем IP адрес первой Ubuntu, на которой juice-shop ![](https://i.imgur.com/SGiyZI1.png) ⠀ ![](https://i.imgur.com/hsu8yAE.png) ⠀ Попробуем перейти на сайт по айпи WAF. Все отлично работает ![](https://i.imgur.com/AfrTMlg.png) ⠀ ## OWASP Top 10 Еще раз проверим правила, которые мы установили ![](https://i.imgur.com/61u8kxE.png) ⠀ crf-setup ![](https://i.imgur.com/EmgBQXQ.png) ⠀ ## Проведем 3 атаки. Проверим срабатывание правил 1 атака - SQL Injection ![](https://i.imgur.com/pqPw7Pz.png) ⠀ Посмотрим логи, чтобы увидеть детектирование ![](https://i.imgur.com/0upwtNp.png) ⠀ 2 атака ![](https://i.imgur.com/2eniB2i.png) ⠀ Смотри логи ![](https://i.imgur.com/MPDXAyb.png) ⠀ 3 атака XSS. Покупаем товар, переходим в отслеживание трек номера, и подменяем url ![](https://i.imgur.com/RUnKEnd.png) ⠀ Получаем 403 ![](https://i.imgur.com/9hqtyil.png) ⠀ Логи ![](https://i.imgur.com/SNMN73s.png) ⠀ Атака 4 Еще одна XSS атака ![](https://i.imgur.com/XaxoSj7.png) ⠀ И опять мимо) ![](https://i.imgur.com/bcu8wSv.png) ⠀ Смотрим логи ![](https://i.imgur.com/LOxzhHH.png) ⠀ /var/log/nginx/error.log ![](https://i.imgur.com/MVQB44g.png) ⠀ ⠀ ⠀ ⠀ ###### tags: `Web Basic`