# Лабораторная работа 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)