---
# System prepended metadata

title: ⠀⠀⠀⠀⠀⠀⠀Практическая работа №4
tags: [Web Basic]

---

⠀
⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀![](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`