# Лабораторная работа 3. IDS/IPS
## Инфраструктура

## Настройка pfSense_dmz
Первичная конфигурация выглядит следующим образом:

## Настройка kali_dmz
Для кали ip-адрес выглядит следующим образом:

Затем с kali перейдём в браузер и наберем `172.16.0.254` и попадём на pfSense.
Первично выполним настройку, которая поможет с хостовой машинки подключаться к этому pfSense_dmz (в рамках лабораторной работы можно позволить себе воспользоваться этим правилом, но в реалиях ИБ так делать нельзя):
1. Заходим в правила
2. Нажимаем кнопку "Add"
3. Затем создаем правило:


4. Теперь нам нужно отключить первые 2 правила:

Для их отключения нужно нажать на шестерёнку под словом Actions и увидим галочки, которые нужно убрать:

Теперь список наших правил выглядит следующим образом:

## NGFW из pfSense_dmz
Для этого нам потребуется сделать несколько важных действий:
1. Смена пароля, потому что *"Без изменения пароля он нормально не работает"* - цитата:
Нажимаем на "Change the password in the User Manager"

Изменяем пароль и подтверждаем:

`admin
eve@123 ;
незабытьнезабытьнезабыть`
Нажимаем "Save" и видим, что пароль изменен:

2. Изменение с LAN на DMZ:
→ Переходим на Interfaces
→ Выбираем интерфейс LAN
→ Затем переименовываем из LAN в DMZ
Теперь наши интерфейсы выглядят следующим образом:

3. Если мы будем подключаться к pfSense_dmz из браузера на хостовой машинке, то потребуется переименовать из home.arpa во что-то более понятное для нас:
→ Заходим в System
→ Выбираем General Setup
→ Изменяем следующие 2 параметра:

Вместо них будет:

→ Нажимаем "Save" и ждём
→ В случае успешного выполнения мы увидим:

Поскольку у нас в инфраструктуре есть не только DMZ зона, но и LAN, нам нужно изменить правила для того, чтобы трафик мог проходить и в зону LAN. Правила, которые не дают пустить трафик дальше DMZ зоны представлены ниже:

Для корректного прохождения трафика произведем следующие изменения:
1. Удалим правило с iPv6
2. Изменим этот параметр:

Его изменение необходимо для того, чтобы мы могли выходить через DMZ зону наружу:

Так выглядит действующий список правил:

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

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

Проверим, что пакет со snort установлен:

Перейдем по этой вкладке для того, чтобы посмотреть на настройку snort:

Увидим в глобальных настройках, что можно подгрузить правила с помощью Oinkmastercode, который позволяет нам загружать правила для snort:

Включим ВПН, поскольку мы из России, и перейдём по первой ссылке. ВПН работает, полёт нормальный, проходим регистрацию:

Наша настройка snort выглядит следующим образом:




Затем перейдём во следующую вкладку и обновим правила:

Все правила были успешно обновлены:

### Настройка snort
#### WAN - Interface Settings
Сначала разберемся с тем, какой интерфейс будет прослушиваться у pfSense:
Обычно, решения в виде IDS/IPS принято ставить на внутренний интерфейс, но если произойдет атака на внешний интерфейс, то мы её не увидим. Перейдём к настройке:



**Где:**
``` Allert Settings``` - этой настройке необходима система, в которою будут собираться все логи (пока нет этой системы, ничего можно не указывать)
``` Block Settings``` - делает из нашей IDS системы IPS систему (система начинает не просто посылать attert-ы, а еще бороться с несанкционированными действиями)
``` Choose the Networks Snort Inspect...``` - сюда автоматически подставляются сети, которые при желании можно поменять
#### WAN - DMZ categories
Здесь у нас есть возможность включить либо одно правило либо несколько или же все. Важное замечание: даже, если включить все правила, то некоторые allert-ы в них будут отключены (потому что они закоментированы).

Включаем все правила:
1. Select all
2. Save
3. Немного ждём и готово

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

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

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

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

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

### Проверка работоспособности snort (1)
Попробуем с kali_dmz просканировать dmz-ый FW:

Смотрим, как отработал Snort:

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

Затем перейдём в интерфейсы Snort-a и внесём некоторые изменения:
1. Остановим работу Snort-a

2. Отредактируем конфиг интерфейса

3. Сохраняем настройки
4. Запускаем снова DMZ-интерфейс Snort-a
### Проверка работоспособности snort (2)
Попробуем просканировать FW ещё раз, но в обычном режиме:

Зайдя на FW мы увидим большое количество allert-ов:

## Тестовая атака
Попробуем пробросить порт во внутрь до машинки-жерты и посмотрим на то, как отрабатывает Snort.
1. Переместим Windows-машинку в DMZ зону
2. Пока загружается Windows-машинка, пробросим порты на FW_dmz (**172.16.0.15** - это будущий ip адрес Windows-машинки):


3. Зададим Windows-машинке статический ip адрес:
- панель управления
- сеть и интернет
- центр управления сетями и общим доступом
- нажать сюда:

- затем:

- далее:

- вписываем следующее:

- следующий шаг:

- машинка подключена к интернету, всё прекрасно
4. Переходим на kali, которая находится вне DMZ и запускаем metasploit, делаем всё, как в лабе №2:



5. На машинке жертвы отключаем защитника и скачиваем вредонос:

6. Смотрим, как отрабатывает Snort:


Таким образом, на Snort был зафиксирован аномальный трафик.
## Настройка безопасности Snort
Переходим на DMZ FW и переводим Snort в режим блокировки:

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