---
# System prepended metadata

title: 'Отчет по заданиям к практической работе №4. Web Application Firewall :'
tags: [WEB]

---

###### tags: `WEB`
Город проживания: Москва.
# Отчет по заданиям к практической работе №4. Web Application Firewall :

| 1.Начальные настройки ОС.|
|-|
|`sudo apt update`|
|![](https://i.imgur.com/Lu9RiBo.png =500x)|
|`sudo apt upgrade -y`|
|![](https://i.imgur.com/Wu1xSKz.png =500x)|

| 2.Устанавливаем последнюю версию `Nginx`.|
|-|
|`sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update`|
|![](https://i.imgur.com/a4htISO.png =500x)|
|`sudo apt install nginx-core nginx-common nginx nginx-full`|
|![](https://i.imgur.com/MMMdqCF.png =500x)|
|Добавим `Nginx Source Code` в репозиторий.|
|`sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list`|
|Расскомментируем строку.|
|`# deb-src http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu/ focal main`|
|![](https://i.imgur.com/CJISbcc.png =500x)|
|Cкачаем `Nginx Source Code`.|
|Для этого создадим необходимые директории.|
|`sudo mkdir /usr/local/src/nginx && cd /usr/local/src/nginx`|
|![](https://i.imgur.com/nObkuSJ.png =500x)|
|Назначим права для каталога.|
|`sudo chown ubuntuwaf:ubuntuwaf /usr/local/src/ -R`|
|![](https://i.imgur.com/6ksRCox.png =500x)|
|Загрузим необходимые пакеты.|
|`sudo apt install dpkg-dev -y && sudo apt source nginx`|
|![](https://i.imgur.com/JpBNTkD.png =500x)|
![](https://i.imgur.com/UReSmqE.png =500x)|
|Проверяем, что все установили корректно.|
|`nginx -v`|
|![](https://i.imgur.com/oBh0ZJ0.png =500x)|

|3. Установим `libmodsecurity3` для `ModSecurity`.|
|-|
|Устанавливаем `Git`.|
|`sudo apt install git -y`|
|![](https://i.imgur.com/O1wbBtP.png =500x)|
|Клонируем `libmodsecurity3` с `GIT`-репозитория.|
|`git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/`|
|![](https://i.imgur.com/VIZ29C1.png =500x)|
|![](https://i.imgur.com/PAecLJ7.png =500x)|
|Установим зависимости `libmodsecurity3`.|
|`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/U6krB3F.png =500x)|
|Установим и обновим `GIT submodules`.|
|`git submodule init`|
|`git submodule update`|
|![](https://i.imgur.com/DnSN9xS.png =500x)|
|Создание среды `ModSecurity`.|
|`./build.sh`|
|![](https://i.imgur.com/boL1MwC.png =500x)|
|`./configure`|
|![](https://i.imgur.com/LQgxKqg.png =500x)|
|Компиляция исходного кода `ModSecurity`.|
|`make -j 4`|
|![](https://i.imgur.com/YuJZYSW.png =500x)|
|`sudo make install`|
|![](https://i.imgur.com/3W0rnlK.png)|


|4. Устанавливаем `ModSecurity-nginx Connector`.|
|-|
|Клонируем `ModSecurity-nginx` репозиторий с `Github`.|
|`sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git /usr/local/src/ModSecurity-nginx/`|
|![](https://i.imgur.com/aaYObLU.png)|
|Устанавливаем зависимости `ModSecurity-nginx`.|
|`cd /usr/local/src/nginx/nginx-1.23.1`|
|`sudo apt build-dep nginx && sudo apt install uuid-dev -y`|
|![](https://i.imgur.com/kprfOeP.png)|
|Далее вы скомпилируете модуль M`odSecurity-nginx Connector` только с флагом `–with-compat`.|
|`sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx`|
|![](https://i.imgur.com/VKVXzQt.png)|
|Теперь создадим динамические модули.|
|`sudo make modules`|
|![](https://i.imgur.com/Sk19RpT.png)|
|Переместим только что созданный динамический модуль, который был сохранен в расположении в каталог `/usr/share/nginx/modules`.|
|`sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/`|
|![](https://i.imgur.com/kZOuRGF.png)|

|5. Загрузка и настройка `ModSecurity-nginx Connector` с помощью `Nginx`.|
|-|
|Включим `ModSecurity` в `nginx.conf`.|
|Во-первых, нам нужно указать `load_module` и путь к нашему модулю `modsecurity`. Откроем `nginx.conf`|
|`sudo nano /etc/nginx/nginx.conf`|
|Добавим следующую строку в конфиг:|
|`load_module modules/ngx_http_modsecurity_module.so;`|
|![](https://i.imgur.com/SN3XZc7.png)|
|Теперь добавим текст в раздел `HTTP {}`:|
|`modsecurity on; modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;`|
|![](https://i.imgur.com/7XyFqDT.png)|
|Создание и настройка каталогов и файлов для `ModSecurity`.|
|`sudo mkdir /etc/nginx/modsec/`|
|![](https://i.imgur.com/zRBw4bL.png)|
|Теперь нам нужно скопировать пример файла конфигурации `ModSecurity` обратно из нашего клонированного каталога `GIT`:|
|`sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf`|
|![](https://i.imgur.com/5HNnPiG.png)|
|Откроем `modsecurity.conf`.|
|По умолчанию в конфигурации `ModSecurity` механизм срабатывания правил указан как **(DetectionOnly)**, который запускает `ModSecurity` и обнаруживает все вредоносные действия, но не блокирует их , а просто регистрирует эти действия. Это следует использовать только в том случае, если у вас много ложных срабатываний или вы увеличили настройки уровня безопасности до крайнего уровня и проверяете, не происходит ли каких-либо ложных срабатываний.|
|Изменим правило.|
|`SecRuleEngine On`|
|Теперь найдем следующее правило, которое находится в строке `224`, и изменим его:|
|`SecAuditLogParts ABCEFHJKZ`|
|![](https://i.imgur.com/Ypm65Kh.png)|
|Создадим файл **modsec-config.conf**. В него мы добавим файл **modsecurity.conf** вместе с другими правилами, такими как **OWASP CRS**.|
|`sudo nano /etc/nginx/modsec/modsec-config.conf`|
|Добавим в файл строку:|
|`Include /etc/nginx/modsec/modsecurity.conf`|
|![](https://i.imgur.com/o4VSYD3.png)|
|Скопируем файл `ModSecurity` **unicode.mapping**.|
|`sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/`|
|![](https://i.imgur.com/uXBjV7d.png)|
|Запустим `Nginx`.|
|`sudo nginx -t`|
|![](https://i.imgur.com/VWyCcsm.png)|
|Перезапустим `Nginx`.|
|`sudo systemctl restart nginx`|
|![](https://i.imgur.com/ReX7jIt.png)|

|6. Установим базовый набор правил `OWASP` для `ModSecurity`.|
|-|
|`wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.2.zip`|
|![](https://i.imgur.com/sQpnueF.png)|
|Распакуем архив.|
|`sudo unzip v3.3.2.zip -d /etc/nginx/modsec`|
|![](https://i.imgur.com/7Es5Tsv.png)|
|Скопируем кофигурацию.|
|`sudo cp /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf.example /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf`|
|![](https://i.imgur.com/sVrDTYh.png)|
|Чтобы включить правила, снова откроем файл `/etc/nginx/modsec/modsec-config.conf`|
|`sudo nano /etc/nginx/modsec/modsec-config.conf`|
|Внесем правила.|
|`Include /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf`|
|`Include /etc/nginx/modsec/coreruleset-3.3.2/rules/(star).conf`|
|![](https://i.imgur.com/0fm7uBx.png)|
|Протестируем новые дополнения к нашей службе `Nginx`.|
|`sudo nginx -t`|
|![](https://i.imgur.com/ixSI8kk.png)|
|Перезапустим `Nginx`.|
|`sudo systemctl restart nginx`|
|![](https://i.imgur.com/3aB3U7h.png)|

|7. Настроим `proxy`.|
|-|
|`IP WAF:`|
|![](https://i.imgur.com/fM3ZGwj.png)|
|`IP Ubuntu:`|
|![](https://i.imgur.com/VuCTArq.png)|
|Настроим прокси для `Ubuntu`:|
|![](https://i.imgur.com/Lw98euu.png)|
|Настроим `WAF`:|
|`sudo nano /etc/nginx/sites-enabled/default`|
|![](https://i.imgur.com/jtZ7QLr.png)|
|Настройка прошла успешно.|
|![](https://i.imgur.com/EGtTdfC.png)|

|8. Проводим атаки.|
|-|
|**SQL-injection**|
|![](https://i.imgur.com/Da2GHOw.png)|
|Инъекция не удалась,увидим логи.|
|![](https://i.imgur.com/8rJ3D74.png)|
![](https://i.imgur.com/pywdiOd.png)
|**Path Traversal**|
|Отправим POST-запрос с /etc/passwd.|
|![](https://i.imgur.com/ZDgNnPo.png)|
|Логи.|
|![](https://i.imgur.com/TeGU8f6.png)|
|**XSS**|
|Введем в поле фидбека `<script>alert(123)</script>`|
|Атака не прошла.|
|![](https://i.imgur.com/nzXI83C.png)|
|Увидим в логах данное событие.|
|![](https://i.imgur.com/vrF5d6L.png)|
|![](https://i.imgur.com/ZzbRsnV.png)|