---
# System prepended metadata

title: Лабораторная работа 3. IDS/IPS

---

# Лабораторная работа 3. IDS/IPS

## Инфраструктура

![](https://i.imgur.com/WACaHm6.png)


## Настройка pfSense_dmz

Первичная конфигурация выглядит следующим образом:
![](https://i.imgur.com/yg9P8Yf.png)

## Настройка kali_dmz

Для кали ip-адрес выглядит следующим образом:
![](https://i.imgur.com/gNVPBdP.png)

Затем с kali перейдём в браузер и наберем `172.16.0.254` и попадём на pfSense.

Первично выполним настройку, которая поможет с хостовой машинки подключаться к этому pfSense_dmz (в рамках лабораторной работы можно позволить себе воспользоваться этим правилом, но в реалиях ИБ так делать нельзя):

1. Заходим в правила
2. Нажимаем кнопку "Add"
3. Затем создаем правило:
    ![](https://i.imgur.com/M5ldEkA.png)
    ![](https://i.imgur.com/RSSC6jJ.png)

4. Теперь нам нужно отключить первые 2 правила:
   ![](https://i.imgur.com/t5N0Mad.png)
    
    Для их отключения нужно нажать на шестерёнку под словом Actions и увидим галочки, которые нужно убрать:
    ![](https://i.imgur.com/ErbAEu1.png)

    Теперь список наших правил выглядит следующим образом:
    ![](https://i.imgur.com/ZMl1yVn.png)

## NGFW из pfSense_dmz

Для этого нам потребуется сделать несколько важных действий:

1. Смена пароля, потому что *"Без изменения пароля он нормально не работает"* - цитата:

    Нажимаем на "Change the password in the User Manager"
    ![](https://i.imgur.com/MnZxrnW.png)
    
    Изменяем пароль и подтверждаем:
    ![](https://i.imgur.com/fjZMloR.png)
    
    `admin 
    eve@123 ;
    незабытьнезабытьнезабыть`

    Нажимаем "Save" и видим, что пароль изменен:
    ![](https://i.imgur.com/OOdsLPZ.png)

2. Изменение с LAN на DMZ:
        → Переходим на Interfaces
        → Выбираем интерфейс LAN
        → Затем переименовываем из LAN в DMZ

    Теперь наши интерфейсы выглядят следующим образом:
    ![](https://i.imgur.com/TQaV3B6.png)
    
3. Если мы будем подключаться к pfSense_dmz из браузера на хостовой машинке, то потребуется переименовать из home.arpa во что-то более понятное для нас:
    → Заходим в System
    → Выбираем General Setup
    → Изменяем следующие 2 параметра:
        ![](https://i.imgur.com/l1JjZQ9.png)

    Вместо них будет:
        ![](https://i.imgur.com/43SEfEH.png)

    → Нажимаем "Save" и ждём
    → В случае успешного выполнения мы увидим:
    ![](https://i.imgur.com/975rCJo.png)

Поскольку у нас в инфраструктуре есть не только DMZ зона, но и LAN, нам нужно изменить правила для того, чтобы трафик мог проходить и в зону LAN. Правила, которые не дают пустить трафик дальше DMZ зоны представлены ниже:
![](https://i.imgur.com/JY0FEcJ.png)

Для корректного прохождения трафика произведем следующие изменения:
1. Удалим правило с iPv6
2. Изменим этот параметр:
    ![](https://i.imgur.com/JjQzisr.png)

    Его изменение необходимо для того, чтобы мы могли выходить через DMZ зону наружу:
    ![](https://i.imgur.com/FqllhZJ.png)

Так выглядит действующий список правил:
![](https://i.imgur.com/EuLp2FM.png)

Теперь трафик из LAN зоны может ходить куда угодно.

Чтобы окончательно привести наш pfSense к виду NGFW, то требуется поставить систему IPS/IDS, для этого нужно проделать следующее:
1. Зайти в System
2. Выбрать Packet Manager
3. В нём выбрать Available packages

Введём в поиск "ids", и увидим подходящие нам системы:
![](https://i.imgur.com/SGq8IMY.png)

Установим snort *(он позволит нам анализировать трафик внутри системы, но в чистом виде он представляет из себя просто движок, чтобы он работал корректно, то нам дальше надо написать правила, как мы это делали для Firewall)* - нажмем кнопку install.

В случае успешной установки мы увидим:
![](https://i.imgur.com/P0cKv39.png)

Проверим, что пакет со snort установлен:
![](https://i.imgur.com/Zy7YDIj.png)

Перейдем по этой вкладке для того, чтобы посмотреть на настройку snort:
![](https://i.imgur.com/d8Urc6O.png)

Увидим в глобальных настройках, что можно подгрузить правила с помощью Oinkmastercode, который позволяет нам загружать правила для snort:
![](https://i.imgur.com/C69MLKr.png)

Включим ВПН, поскольку мы из России, и перейдём по первой ссылке. ВПН работает, полёт нормальный, проходим регистрацию:
![](https://i.imgur.com/axyXPkX.png)

Наша настройка snort выглядит следующим образом:
![](https://i.imgur.com/87WeZRc.png)
![](https://i.imgur.com/W1BMdMV.png)
![](https://i.imgur.com/0G24t7K.png)
![](https://i.imgur.com/naAmnG2.png)

Затем перейдём во следующую вкладку и обновим правила:
![](https://i.imgur.com/Z8hbFi8.png)

Все правила были успешно обновлены:
![](https://i.imgur.com/UeeHgMv.png)

### Настройка snort

#### WAN - Interface Settings

Сначала разберемся с тем, какой интерфейс будет прослушиваться у pfSense:

Обычно, решения в виде IDS/IPS принято ставить на внутренний интерфейс, но если произойдет атака на внешний интерфейс, то мы её не увидим. Перейдём к настройке:

![](https://i.imgur.com/rUX7HZI.png)
![](https://i.imgur.com/0Zv11S0.png)
![](https://i.imgur.com/zRmOUMF.png)

**Где:**

``` Allert Settings``` - этой настройке необходима система, в которою будут собираться все логи (пока нет этой системы, ничего можно не указывать)

``` Block Settings```  - делает из нашей IDS системы IPS систему (система начинает не просто посылать attert-ы, а еще бороться с несанкционированными действиями)

``` Choose the Networks Snort Inspect...``` - сюда автоматически подставляются сети, которые при желании можно поменять

#### WAN - DMZ categories

Здесь у нас есть возможность включить либо одно правило либо несколько или же все. Важное замечание: даже, если включить все правила, то некоторые allert-ы в них будут отключены (потому что они закоментированы).

![](https://i.imgur.com/u0VUh5R.png)

Включаем все правила:

1. Select all
2. Save
3. Немного ждём и готово

![](https://i.imgur.com/wnp1iZo.png)

#### WAN - DMZ rules

Тут мы можем просмотреть правила, находящиеся в каждой категории:

![](https://i.imgur.com/dDQpJSd.png)

**Посмотрим на emerging-exploit.rules** 

1. `Значок` указывает на то, включено правило или нет
2. `tcp/udp` - протокол
3. `$EXTERNAL_NET` - (исходящая) указанная сеть в дефолтных настройках выше
4. `SPort` - any/... , порт-источник
5. `$HOME_NET` - (домашняя) указанная сеть в дефолтных настройках выше
6. `DPort` - any/... , порт-пункт_назначения
7. `Message` - описание сработанного правила 

![](https://i.imgur.com/ZfWDqv8.png)

Сделаем применимыми все правила из категории **emerging-scan.rules** :

![](https://i.imgur.com/2eKPryw.png)

Если перейти в интерфейсы Snort-а и посмотреть на интерфейс DMZ, то можно во второй колонке увидеть статус Snort-a: 

![](https://i.imgur.com/aK36pbX.png)

Чтобы запустить работу правил, достаточно нажать кнопку плей. Вывод при успешном запуске системы:

![](https://i.imgur.com/7bdexEr.png)

### Проверка работоспособности snort (1)

Попробуем с kali_dmz просканировать dmz-ый FW:
![](https://i.imgur.com/53DkXA8.png)

Смотрим, как отработал Snort:
![](https://i.imgur.com/OPWqcar.png)

### Проверка всех сетей

Для того, чтобы проверялся трафик по всем сетям необходимо выполнить следующую настройку:

Настроим Pass List и добавим в него все сети:
![](https://i.imgur.com/sOy8vdG.png)

Затем перейдём в интерфейсы Snort-a и внесём некоторые изменения:
1. Остановим работу Snort-a
    ![](https://i.imgur.com/6iitvIW.png)
2. Отредактируем конфиг интерфейса
    ![](https://i.imgur.com/V8tb50G.png)
3. Сохраняем настройки
4. Запускаем снова DMZ-интерфейс Snort-a

### Проверка работоспособности snort (2)

Попробуем просканировать FW ещё раз, но в обычном режиме:
![](https://i.imgur.com/pIZOrX8.png)

Зайдя на FW мы увидим большое количество allert-ов:
![](https://i.imgur.com/DOduefI.png)

## Тестовая атака

Попробуем пробросить порт во внутрь до машинки-жерты и посмотрим на то, как отрабатывает Snort. 

1. Переместим Windows-машинку в DMZ зону
2. Пока загружается Windows-машинка, пробросим порты на FW_dmz (**172.16.0.15** - это будущий ip адрес Windows-машинки):
    ![](https://i.imgur.com/AlfWsny.png)
    ![](https://i.imgur.com/MMmM6Sz.png)
3. Зададим Windows-машинке статический ip адрес:
    - панель управления
    - сеть и интернет
    - центр управления сетями и общим доступом
    - нажать сюда:
    ![](https://i.imgur.com/kuYqI3Z.png)
    - затем:
    ![](https://i.imgur.com/3J7NPOl.png)
    - далее:
    ![](https://i.imgur.com/pcmf7GV.png)
    - вписываем следующее:
    ![](https://i.imgur.com/rADQ1TP.png)
    - следующий шаг:
    ![](https://i.imgur.com/80zwr5s.png)
    - машинка подключена к интернету, всё прекрасно
4. Переходим на kali, которая находится вне DMZ и запускаем metasploit, делаем всё, как в лабе №2:
    
    ![](https://i.imgur.com/cGX8jNd.png)
    ![](https://i.imgur.com/G03bB1V.png)
    ![](https://i.imgur.com/G6VwwLB.png)
5. На машинке жертвы отключаем защитника и скачиваем вредонос:
    ![](https://i.imgur.com/VRk2YrM.png)
6. Смотрим, как отрабатывает Snort:
    ![](https://i.imgur.com/jBR1GWa.png)
    ![](https://i.imgur.com/2s2vJyo.png)
    
    Таким образом, на Snort был зафиксирован аномальный трафик.
    
## Настройка безопасности Snort

Переходим на DMZ FW и переводим Snort в режим блокировки:

![](https://i.imgur.com/MmPmLty.png)

Пробуем еще раз атаковать и увидим заблокированный ip адрес, справа от него будет находиться описание, дающее нам понять на основании чего произошла блокировка. 

![](https://i.imgur.com/eDyZYbQ.png)
