⠀
⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀
⠀
⠀
# ⠀⠀⠀⠀⠀⠀⠀Практическая работа №4
⠀
:::info
:bulb: **Цель практической работы №4**
- Получить знания по установке, настройке и работе Web Application Firewall
- Научиться самостоятельно разворачивать WAF в базовой конфигурации
:::
⠀
##
Добавляем репозиторий
```
add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update
```

⠀
Полная установка
```
Now that you have installed the PPA and updated the repository list, install Nginx with the following:
```

⠀
Откроем файл конфигурации, и пропишем вручную исходный код для компиляции
```
nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list
```

⠀
Создадим новую папку

⠀
Загружаем исходники


⠀
Версия NGINX

## Установка libmodsecurity3
Установим GIT
```
sudo apt-get isntall git -y
```

⠀
Копируем репозиторий
```
git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/
```

⠀

⠀
Установка зависимостей
```
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
```

⠀
Установка подмодулей
```
git submodule init && git submodule update
```

⠀
Создание среды
```
./build.sh && ./configure
```

⠀

⠀
Компиляция с помощью команды make
```
make
```

⠀
После компиляции запускаем установку
```
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/
```

⠀
Установим зависимости
```
cd /usr/local/src/nginx/nginx-1.21.*
sudo apt build-dep nginx && sudo apt install uuid-dev -y
```

⠀
Скомпилируем модуль ModSecurity-nginx Connector с флагом –with-compat
```
sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx
```

⠀
Теперь создадим динамические модули
```
sudo make modules
```

⠀
Находясь в исходном каталоге Nginx, переместим созданный динамический модуль, сохраненный в папке objs/ngx_http_modsecurity_module.so, и скопируем его в каталог /usr/share/nginx/modules.
```
sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/
```

⠀
## Загрузка и конфигурация MS-NGINX Connector
Oтредактируем файл конфигурации /etc/nginx/nginx.conf, чтобы заставить ModSecurity работать с веб-сервером Nginx
```
sudo nano /etc/nginx/nginx.conf
```

⠀
Создание и настройка каталога и файлов для ModSecurity
```
sudo mkdir /etc/nginx/modsec/
```

⠀
Теперь нужно скопировать образец файла конфигурации ModSecurity обратно из нашего клонированного каталога GIT
```
sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
```

⠀
Oткроем файл modsecurity.conf и изменим конфигурацию
```
sudo nano /etc/nginx/modsec/modsecurity.conf
```

⠀

⠀
Создадим файл **modsec-config.conf**.

⠀
Скопируем файл unicode.mapping ModSecurity с помощью команды CP

⠀
Протестируем службу Nginx с помощью следующей команды терминала
```
sudo nginx -t
```

⠀
## Установка набора правил OWASP для ModeSecurity
Скачаем архив

⠀
И распакуем

⠀
Сохраним как резервную копию распакованную конфигурацию файла и скопируем ее

⠀
Откроем файл конфигурации и добим 2 новые строчки

⠀

⠀
## Oсновной набор правил OWASP
Откроем файл CRS-setup.conf

⠀
## Тестирование OWASP CRS на сервере
Попробуем перейти на страницу сервера

⠀
## Настройка Reverse-proxy
> [color=lightblue] Указываем IP адрес первой Ubuntu, на которой juice-shop

⠀

⠀
Попробуем перейти на сайт по айпи WAF. Все отлично работает

⠀
## OWASP Top 10
Еще раз проверим правила, которые мы установили

⠀
crf-setup

⠀
## Проведем 3 атаки. Проверим срабатывание правил
1 атака - SQL Injection

⠀
Посмотрим логи, чтобы увидеть детектирование

⠀
2 атака

⠀
Смотри логи

⠀
3 атака XSS. Покупаем товар, переходим в отслеживание трек номера, и подменяем url

⠀
Получаем 403

⠀
Логи

⠀
Атака 4
Еще одна XSS атака

⠀
И опять мимо)

⠀
Смотрим логи

⠀
/var/log/nginx/error.log

⠀
⠀
⠀
⠀
###### tags: `Web Basic`