# МИПиАТ

# Лабораторная 1. Веб-сервер, TFTP

Цель:  
  
Получить базовые навыки работы для работы с файловым сервером, и веб-сервером  
  
Задачи:

1. Подключится к виртуальной машине на облачной платформе СПбГУТ
2. Установить и настроить tftp сервер
3. Проверить tftp сервер
4. Настроить веб-сервер
5. Проверить веб-сервер путем подключения Схема виртуального стенда:

<div drawio-diagram="100"><img src="https://docs.resds.ru/uploads/images/drawio/2022-02/dlP6fT5CWmC9cY8m-drawing-3-1645529260.png" alt=""/></div>

#### Задание 1. TFTP.

Подключиться к `labnode1`, логин - `labuser`, пароль - `labpass1!`Для начала необходимо установить пакеты tftp сервера, клиента, и xinetd

```sh
sudo yum install tftp tftp-server xinetd

```

После того как мы установили tftp сервер, нам необходимо настроить в первую очередь демона tftp для работы с подсистемой запуска xinetd, для этого нам необходимо отредактировать конфигурационный файл xineted

```sh
sudo vi /etc/xinetd.d/tftp

```

В нем необходимо модифицировать два параметра server\_args и disable. Аргумент server\_args отвечает за те аргументы, которые будут передаваться серверу при его старте, а параметр disable позволяет изменять состояние заранее прописанных сервисов, без комментирования\\удаления их из конфигурационных файлов

```
server_args = -c -p -u tftpd -U 111 -s /var/lib/tftpboot
disable = no

```

После того как мы отредактировали конфигурационный файл, нам необходимо создать отдельного пользователя tftp:

```sh
sudo useradd --no-create-home -s /sbin/nologin tftpd 

```

Параметр –no-create-home, означает, что при создании пользователя нет необходимости нет необходимости создавать домашнюю директорию, этот параметр часто применяется если необходимо создать сервисного пользователя. После этого нам необходимо изменить владельца папки tftpboot

```sh
sudo chown tftpd:tftpd /var/lib/tftpboot 

```

Далее выставляем разрешения на папку

```sh
sudo chmod 777 /var/lib/tftpboot

```

После того как мы применили прошлые настройки нам необходимо перезапустить xinetd

```sh
sudo systemctl restart xinetd

```

Так же необходимо добавить демоны в автозагрузку, для этого нужно выполнить команду:

```sh
sudo systemctl enable xinetd
sudo systemctl enable tftp

```

#### Задание 2. Веб сервер

Веб-сервер – это программа, работающая в режиме ожидания запросов от пользовательских программ. Взаимодействие сервера с клиентом происходит чаще всего по протоколу HTTP. В качестве веб сервера мы будем использовать Apache. В CentOS пакет Apache называется httpd в первую очередь нам будет необходимо установить его.

```sh
sudo yum install httpd

```

После установки нам необходимо сразу запустить и добавить веб-сервер в автозагрузку.

```sh
sudo systemctl start httpd
sudo systemctl enable httpd

```

Для проверки работы Apache можно использовать команду

```sh
sudo systemctl status httpd

```

При правильной работе вы получите аналогичное состояние работы сервиса [![Рисунок1.png](https://docs.resds.ru/uploads/images/gallery/2022-02/scaled-1680-/8k1qLGzUDzTrmHn4-risunok1.png)](https://docs.resds.ru/uploads/images/gallery/2022-02/8k1qLGzUDzTrmHn4-risunok1.png)

#### Задание 3. Тестовая HTML страница

После этого создадим папку, которую будем использовать в дальнейших своих работах

```sh
sudo mkdir /var/www/deploy

```

В этой папке создаем проверочную страницу

```sh
sudo vi /var/www/deploy/test

```

Заполняем его простым текстом

```
Бригада №
Фамилия 1 человека в бригаде
Фамилия 2 человека в бригаде

```

Создаем новый конфигурационный файл

```sh
sudo vi /etc/httpd/conf.d/default.conf

```

И заполняем его по примеру

```nginx
<VirtualHost *:80>
    DocumentRoot /var/www/deploy
    <Directory /var/www/deploy>
        AllowOverride None
	    Require all granted
    </Directory>
</VirtualHost>

```

После этого необходимо изменять владельца всех файлов в папке /var/deploy на Apache

```sh
sudo chown -R apache:apache /var/www/deploy

```

Перезапускаем веб-сервер

```sh
sudo systemctl restart httpd

```

После этого с помощью консольной программы curl проверяем работу веб сервера

```sh
curl http://192.168.0.10/test

```

После этого нам в выводе будет показан текст который мы записали ранее в /var/www/deploy/test

# Лабораторная 2. Консольные мультиплексоры и управление процессами

Цель:  
  
Приобрести навыки работы для работы с терминальными мультиплексорами  
  
Задачи:

1. Подключится к виртуальной машине на облачной платформе СПбГУТ
2. Установить Tmux
3. Научиться работать с Tmux.
4. Установить Screen
5. Научиться работать с Screen.

#### Установка Tmux

Подключиться к виртуальной машине и установить пакет Tmux

```bash
sudo yum install tmux -y

```

#### Работа с tmux

###### Создание сессии в tmux

```bash
tmux

```

###### Создание сессии с названием Test

```bash
tmux new -s Test

```

##### Управление внутри сессии:

Префикс(клавиши с которых начинаются команды) по умолчанию **CTRL + B**В дальнейшем будет сокращено до **CB**Сначала нажимается префикс в дальнейшем команда

- **CB** + **С** (сначала прожать префикс, затем c) - Создание нового окна
- **CB** + **,** - Переименовать текущее окно
- **CB** + ***Shift + %*** - разделение экрана по вертикали
- **CB** + ***Shift + "*** - разделение экрана по горизонтали
- **CB** + ***t*** - Показать в панели текущее время
- **CB** + ***Стрелки*** - переместиться на панель в которую указывает стрелка
- **CB** + ***Зажатая Ctrl + стрелка*** - Изменить размер панели в зависимости от направлении стрелки
- **CB** + ***D*** - Отключится от сессии Tmux, окна запущенные внутри останутся рабочими(свернутыми)
- **CB** + ***X*** - закрыть панель
- **CB** + ***w*** - посмотреть список открытых окон
- **CB** + ***l*** - Подключится к прошлому(открытое до этого) окну
- **CB** + ***n*** - Переключится к следующему окну
- **CB** + ***p*** - переключится к прошлому окну
- **CB** + ***{номер окна}*** - переключится к окну с необходимым окном
- **CB** + ***Page Up*** - проскролить по терминалу выше
- **CB** + ***Page Down*** - проскролить по терминалу ниже
- **CB** + ***s*** - посмотреть список всех открытых сессий и открытых в ней окон
- **CB** + ***f*** - поиск панели по названию

###### Подключится к сессии

```bash
tmux a

```

> подключение в таком случае произойдет к первой созданной сессии

###### Подключение к сессии с названием Test

```bash
tmux a -t Test

```

###### Посмотреть список открытых сессий в tmux

```bash
tmux ls

```

###### Закрыть сессию в Test в Tmux

```bash
tmux kill-session -t Test

```

###### Закрыть все сессии в tmux

```bash
tmux kill-server

```

##### Задание Tmux

**Cоздать 2 сессии**

- 1 сессия - название lab
    
    
    - first-window
    - second-window-
    - main 
        - создать 3 панели согласно скриношоту [![image-1667236973159.png](https://docs.resds.ru/uploads/images/gallery/2022-10/scaled-1680-/2JFTa91y1rJ2PKL6-image-1667236973159.png)](https://docs.resds.ru/uploads/images/gallery/2022-10/2JFTa91y1rJ2PKL6-image-1667236973159.png)
- 2 сессия - название lab\_2
    
    
    - session

Проверьте все ли правильно создано, сравнив со скриншотом [![image-1667237046855.png](https://docs.resds.ru/uploads/images/gallery/2022-10/scaled-1680-/GWAvqkAKyq9WtM6y-image-1667237046855.png)](https://docs.resds.ru/uploads/images/gallery/2022-10/GWAvqkAKyq9WtM6y-image-1667237046855.png)

#### Работа с Screen

##### Установка Screen

```bash
sudo yum install -y screen

```

###### Создание сессии в screen

Создать сессию в screen можно с помощью команды

```bash
screen

```

###### Проверить, что вы зашли в screen можно выполним команду

```bash
echo $TERM

```

В ответе на эту команду у вас появится строка с названием вашего окружения с приставкой ***screen.***

###### Создать новую сессию screen с названием ***newscreen***

```bash
screen -S newscreen

```

###### Посмотреть список запущенных сессий

```bash
screen -ls

```

###### Подключится к работающей сессии screen c *id* 23771

```bash
screen -r 23771

```

##### Управление внутри сессии:

Префикс(клавиши с которых начинаются команды) по умолчанию **CTRL + A**В дальнейшем будет сокращено до **CB**Сначала нажимается префикс в дальнейшем команда

- **CB** + **С** (сначала прожать префикс, затем c) - Создание нового окна
- **CB** + **A** - Переименовать текущее окно
- **CB** + ***|*** - разделение экрана по вертикали
- **CB** + ***S*** - разделение экрана по горизонтали
- **CB** + ***Tab*** - переместиться в следующую область
- **CB** + ***Зажатая стрелка*** - Изменить размер панели в зависимости от направлении стрелки
- **CB** + ***D*** - Отключится от сессии
- **CB** + ***X*** - Удалить область
- **CB** + ***Q*** - Закрыть все кроме текущей области
- **CB** + ***x*** - заблокировать до введения пароля
- **CB** + ***n*** - Переключится к следующему окну
- **CB** + ***p*** - переключится к прошлому окну
- **CB** + ***{номер окна}*** - переключится к окну с необходимым номером
- **CB** + ***?*** - шпаргалка по командам

#### Управления процессами в Linux

###### Команды для работы с задачами

<table id="bkmrk-%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B0-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-job"><thead><tr><th>Команда</th><th>Описание</th></tr></thead><tbody><tr><td>jobs</td><td>Список всех задач</td></tr><tr><td>bg n</td><td>Помещает текущее или указанное задание в фоновый режим, где n - ID задачи</td></tr><tr><td>fg n</td><td>Выводит на передний план текущее или указанное задание, где n - ID задачи</td></tr><tr><td>CTRL + Z</td><td>Останавливает задание на переднем плане и помещает его в фоновый режим</td></tr><tr><td>CTRL + C</td><td>Отправить сигнал о прерывание(завершение) процесса в на переднем плане</td></tr><tr><td>{command} &amp;</td><td>запуск процесса в фоновом режиме</td></tr></tbody></table>

###### Задание управление процессами

1. Установить `htop`

```bash
sudo yum install -y htop

```

1. Запустите в фоне 5 задач:
    
    
    1. htop
    2. watch ss -tulpan
    3. ping 8.8.8.8
    4. ping 192.168.0.1
    5. ping yandex.ru
2. Посмотрите список всех задач
    
    ```bash
    jobs
    
    ```
3. По очереди переместите все задачи на передний план и верните их обратно в фон и снова проверьте список всех задач
4. Убейте все запущенные ранее процессы
5. Выйдите все сеансы в ***screen*** и ***tmux***

# Лабораторная 3.  Пакетные анализаторы трафика

Цель:  
  
Приобрести навыки работы с пакетными анализаторами трафика  
  
Задачи:

1. Подключится к виртуальной машине на облачной платформе СПбГУТ
2. Установить tcpdump
3. Получить навыки работы c tcpdump
4. Получить навыки работы c SCP
5. Получить навыки работы с Wireshark

##### Работа с анализатором пакетов tcpdump

tcpdump это компьютерная программа анализатор пакетов работающая через интерфейс командной строки. Она позволяет пользователю отображать пакеты, передаваемые или получаемые по сети

##### Синтаксис tcpdump

```bash
tcpdump {опции} -i {название интерфейса} {Фильтры}

```

###### опции tcpdump

<table id="bkmrk-%D0%9A%D0%BB%D1%8E%D1%87-%D0%BE%D0%BF%D1%86%D0%B8%D0%B8-%D0%A7%D1%82%D0%BE-%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5"><thead><tr><th>Ключ опции</th><th>Что делает</th></tr></thead><tbody><tr><td>-A</td><td>Вывод пакетов в кодировке ASCI</td></tr><tr><td>-c n</td><td>перехватить n пакетов</td></tr><tr><td>-C n</td><td>создание дампа трафика определенного при размере, при генерации больше заданного создать новый файл для дампа, где n размер пакета по умолчанию указывается 1000000 байт   
  
 Добавив к значению суффикс k/K, m/M или g/G, единицу измерения можно изменить на 1,024 (КиБ), 1,048,576 (МиБ) или 1,073,741,824 (ГиБ) соответственно.</td></tr><tr><td>-D</td><td>вывести список сетевых интерфейсов</td></tr><tr><td>-e</td><td>выводить информацию уровня соединения для каждого пакета, это может быть полезно, например, для отображения MAC адреса</td></tr><tr><td>-n</td><td>не отображать домены</td></tr><tr><td>-K</td><td>не проверять контрольные суммы пакетов</td></tr><tr><td>-w {название дампа}.pcap</td><td>запись вывода в файл</td></tr><tr><td>-r {название дампа}.pcap</td><td>чтение дампа созданного с помощью ключа -w</td></tr><tr><td>-v -vv -vvv</td><td>Более подробный вывод, желательно устанавливать -vvv, для дальнейшей работы</td></tr><tr><td>-q</td><td>выводить минимум информации</td></tr></tbody></table>

###### Примеры работы с tcpdump

Просмотр всех интерфейсов

```bash
sudo tcpdump -D 

```

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/aL736ydxCgw5yIWC-image-1663324157183.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/aL736ydxCgw5yIWC-image-1663324157183.png)

Просмотр всего трафика на интерфейсе `eno0` с адресом назначения `8.8.8.8`

```bash
sudo tcpdump -i eno0 ip dst 8.8.8.8

```

> Название интерфейса брать из своей конфигурации

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/xzfqPIieNktSBp8Z-image-1663338357721.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/xzfqPIieNktSBp8Z-image-1663338357721.png)

Просмотр всего трафика на интерфейсе `eno0` с адресом отправки `8.8.8.8`

```bash
sudo tcpdump -i eno0 ip src 8.8.8.8

```

> Название интерфейса брать из своей конфигурации

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/fSq6Df8cYFwvMmvy-image-1663338507109.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/fSq6Df8cYFwvMmvy-image-1663338507109.png)

Просмотр всего трафика на интерфейсе `eno0` с доменным именем назначения `resds.ru`

```bash
sudo tcpdump -i eno0 dst host  resds.ru

```

> Название интерфейса брать из своей конфигурации

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/SpNXtU5tkcr7V6yK-image-1663338706473.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/SpNXtU5tkcr7V6yK-image-1663338706473.png)

Просмотр всего трафика на интерфейсе `eth0` с доменном отправки `resds.ru`

```bash
sudo tcpdump -i eno0 dst host resds.ru

```

> Название интерфейса брать из своей конфигурации

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/9VbfUpITLxZEj3fz-image-1663339052108.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/9VbfUpITLxZEj3fz-image-1663339052108.png)

Просмотр трафика на интерфейсу `eno0` с использованием `80` порта

```bash
sudo tcpdump -i eno0 port 80

```

> Название интерфейса брать из своей конфигурации

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/El0ePXABBi4a1Wlu-image-1663339179269.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/El0ePXABBi4a1Wlu-image-1663339179269.png)

Просмотр трафика на интерфейсе `eth0` использующих диапазон портов `80-443`

```bash
sudo tcpdump -i eth0 portrange 80-443

```

Также для некоторых протоколов существуют готовые фильтры к примеру можно отфильтровать все `arp` пакеты интерфейса `eth0`

```bash
sudo tcpdump -i eth0 arp

```

Возможно фильтрация по размеру пакета, так мы можем отфильтровать все пакеты меньше 64 байт

```bash
sudo tcpdump -i eth0 less 64

```

Фильтрация пакетов больше 64

```bash
sudo tcpdump -i eth0 greater 64

```

Сохранить весь `udp` трафик проходящий интерфейс `eth0` в файл `dump.pcap`

```bash
sudo tcpdump -i eth0 udp -w dump.pcap

```

прочитать дамп `dump.pcap`

```bash
tcpdump -r dump.pcap

```

#### Использование SCP

SCP (secure copy) — это утилита командной строки, которая позволяет безопасно копировать файлы и каталоги между двумя локациями. Базовая технология для работы scp - это SSH(Secure Shell)

С помощью scp можно скопировать файл или каталог:

- От локальной машины к удаленной.
- От удаленной системы к вашей локальной машине.
- Между двумя удаленными системами.

##### Синтаксис SCP

```bash
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

```

###### Опции SCP

<table id="bkmrk-%D0%BA%D0%BB%D1%8E%D1%87-%D0%A7%D1%82%D0%BE-%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5%D1%82--p-%D0%BF"><thead><tr><th>ключ</th><th>Что делает</th></tr></thead><tbody><tr><td>-p</td><td>порт ssh на удаленной системе</td></tr><tr><td>-r</td><td>рекурсивное копирование</td></tr><tr><td>-С</td><td>Сжатие при передаче на удаленное устройство</td></tr><tr><td>-i n</td><td>использование ключа авторизации, где n путь к файлу ключа</td></tr><tr><td>-1</td><td>использовать SSH 1</td></tr><tr><td>-2</td><td>использовать SSH 2</td></tr><tr><td>-4</td><td>использовать IPv4</td></tr><tr><td>-6</td><td>использовать IPv6</td></tr><tr><td>-o ssh\_option</td><td>Возможность использовать дополнительные опции реализованные в протоколе SSH, на месте ssh\_option используется ключи используемые ssh клиентом</td></tr><tr><td>-q</td><td>Тихий режим   
 ничего не выводится во время передачи</td></tr></tbody></table>

##### Примеры использования

Перемещение файла `foobar.txt` с узла `resds.ru` под пользователем `test` в локальную домашнюю директорию

```bash
scp test@resds.ru:foobar.txt ~/

```

> является примером, не выполнять

Перемещение файла `dump.pcap` из текущей директории на компьютер с именем `windows-ad-pc` для пользователя `tarabanov.if` находящимся в домене `ad`, в домашнюю директорию пользователя

```bash
scp dump.pcap ad\\tarabanov.if@windows-ad-pc:c:/users/tarabanov.if

```

- windows-ad-pc - ip адрес вашего PC
- ad\\tarabanov.if - учетная запись на вашем ПК
- c:/users/tarabanov.if - путь к директории, куда перемещается файл

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/BzE1VrUIJIOoHA4F-image-1663581791931.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/BzE1VrUIJIOoHA4F-image-1663581791931.png)

###### Заданием scp

1. Создайте текстовый файл с вашими ФИО и группой и переместите его на локальный пк(аудиторный) ```
    Группа ИКТК-XY
    Иванов Иван Иванович
    Петров Петр Петрович
    
    ```
2. создайте нового пользователя `test_scp` с паролем `password`
    1. смените пользователя на test\_scp
    2. Создайте текстовый файл с названием лабораторной работы
    3. Вернуться на основную учетную запись
    4. передать с пользователя test\_scp на локальный пк(аудиторный)

#### Задание

1. Открыть консольный мультиплексор 
    1. Запустить снятие трафика, с записью трафика в файл `http.pcap`
    2. Разделить экран вертикально на половину
    3. Загрузить страницу, сделанную в первой лаб. работе
    4. Закончить снятие трафика
2. Передать файл на локальный(аудиторный пк)
3. Открыть файл в `wireshark`, отфильтровать для отображения только задействованных пакетов в передачи html страницы

# Лабораторная 4. Сетевая загрузка

Цель:  
  
Получение навыков по работе с сетевой загрузкой операционной системы  
  
Задачи:

1. Подключится к виртуальной машине на облачной платформе СПбГУТ
2. Подготовить образ операционной системы Ubuntu
3. Скомпилировать загрузчик IPXE
4. Настроить dnsmasq
5. Снять дамп трафика во время установки ОС по сети
6. Установить операционную систему, с помощью сетевой загрузки

#### Задание 1. Подготовка образа

В первую очередь необходимо скачать минимальный образ Ubuntu 20.04 Server на виртуальный сервер

```sh
cp /var/lib/cloud/s3cfg .s3cfg
s3cmd get s3://lab5/ubuntu-20.04-server.iso ~/  

```

После этого необходимо смонтировать образ в папку `/mnt/`

```sh
sudo mount ubuntu-20.04-server.iso /mnt/

```

Создайте папку, где в дальнейшем мы разместим образ ubuntu

```sh
sudo mkdir /var/www/deploy/ubuntu

```

Скопируйте все файлы из папки `/mnt/` в папку `/var/www/deploy/ubuntu`

```sh
sudo cp -Rf /mnt/* /var/www/deploy/ubuntu

```

Также необходимо перенести и сам образ Ubuntu в папку `/var/www/deploy/ubuntu`

```sh
sudo cp ubuntu-20.04-server.iso /var/www/deploy/ubuntu

```

Измените владельца директории и его все его содержимого на Apache

```sh
sudo chown -R apache:apache /var/www/deploy

```

#### Задание 2. Подготовка загрузчика IPXE

IPXE - это свободная реализация программного обеспечения для начальной загрузки по сети. В первую очередь устанавливаем все необходимые пакеты для скачивания и сборки пакета

```sh
sudo yum install git-core gcc binutils make perl syslinux xz-devel

```

Перейдите в домашнюю директорию

```sh
cd ~

```

Скопируете репозиторий ipxe c копии официального git репозитория

```sh
git clone https://gitlab.resds.ru/tarabanov.if/ipxe.git

```

> Ничего изменять в комманде не нужно

Перейти в директорию репозитория и перейти на ветку версии 1.21.1

```bash
cd ipxe
git checkout v1.21.1

```

Перейдите в директорию с исходным кодом

```sh
cd src/

```

Включаем поддержку сетевого хранилища

```sh
sed -i  's/#undef\tDOWNLOAD_PROTO_NFS/#define\tDOWNLOAD_PROTO_NFS/' config/general.h

```

> выполнять внимательно

Также нам необходим добавить поддержку команды Ping

```sh
sed -i 's/\/\/#define\ PING_CMD/#define\ PING_CMD/' config/general.h
sed -i 's/\/\/#define\ IPSTAT_CMD/#define\ IPSTAT_CMD/' config/general.h
sed -i 's/\/\/#define\ REBOOT_CMD/#define\ REBOOT_CMD/' config/general.h
sed -i 's/\/\/#define\ POWEROFF/#define\ POWEROFF/' config/general.h

```

> выполнять внимательно

Создайте встроенный скрипт `embed.ipxe`

```sh
vi embed.ipxe

```

Заполните скрипт такой конфигураций

```
#!ipxe

dhcp
chain http://${next-server}/boot.ipxe || shell

```

> Не допускается пустая строка сверху

Скомпилируйте образ загрузчика IPXE

```sh
make bin-x86_64-efi/ipxe.efi EMBED=embed.ipxe

```

Скопируйте, скомпилированный загрузчик в папку `/var/lib/tftpboot/`

```sh
sudo cp bin-x86_64-efi/ipxe.efi /var/lib/tftpboot/

```

Дальше необходимо подготовить скачать загрузочное меню

```
s3cmd get s3://lab5/boot.ipxe ~/boot.ipxe
sudo cp ~/boot.ipxe /var/www/deploy/boot.ipxe
sudo chown -R apache:apache /var/www/deploy/

```

#### Задание 3. Настройка DNSMASQ

Установите пакет dnsmasq

```sh
sudo yum install dnsmasq

```

Запустите демон dnsmasq

```sh
sudo systemctl start dnsmasq

```

Добавьте в автозагрузку

```sh
sudo systemctl enable dnsmasq

```

Измените конфигурацию dnsmasq `/etc/dnsmasq.conf`

```sh
dhcp-range=192.168.0.15,192.168.0.15,12h
dhcp-option=option:router,192.168.0.1
dhcp-boot=ipxe.efi,192.168.0.10
enable-tftp
tftp-root=/var/lib/tftpboot/
log-queries
conf-dir=/etc/dnsmasq.d

```

> конфигурацию можно изначально полностью очистить

Перезапустите dnsmasq

```sh
sudo systemctl restart dnsmasq

```

Для проверки состояния можно воспользоваться командой

```sh
sudo systemctl status dnsmasq

```

Отключите фаервол

```bash
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask firewalld

```

#### Задание 4. Снятие трафика

Во время установки операционной системы будет необходимо снять трафик, который идет при взаимодействии `labnode1` и `labnode2`, самый простой способ записи в файл это

```bash
sudo tcpdump -i eth0 -w dump.pcap

```

#### Задание 5. Развертывания Ubuntu

Для дальнейшей работы нам необходим на виртуальной машине `labnode2`

1. Перед вами после перехода в консоль появится UEFI shell в нем необходимо вписать команду `exit`
2. После этого в меню вам необходимо выбрать Boot Manager, после этого выбрать вариант загрузки в виде `UEFI PXEv4`, дальше будет происходить получения ранее созданного ipxe
3. В меню загрузчика необходимо выбрать образ ubuntu, после нажатия `Enter`, будет загружен live образ Ubuntu с помощью которого в дальнейшем мы будем производить установку системы. На самом деле перед вами установочное меню операционной системы ubuntu 20 в серверном исполнении, и возможностью установки различных сервисов. В данной работе установка подразумевает под собой установку параметров в режиме по умолчанию. Для навигации по установочному меню используются кнопки клавиатуры: `вверх-вниз`– для перемещения фокуса выделения по пунктам меню, `enter` – для нажатия на необходимый пункт, `пробел` – для выбора пунктов в меню со списком выбора, `Tab` – для переключения между группами пунктов выбора.
4. В первом пункте по умолчанию выбран язык English – лучше его изменить на русский, для избегания проблем с локализацией. Для этого переместить фокус выделения на русский язык и нажать – `enter`.
5. В следующем пункте выберете вариант продолжения установки без обновления загрузчика
6. В следующем меню оставить английскую раскладку клавиатуры и нажать готово
7. В следующем меню – сетевые соединения – оставить все параметры по умолчанию и нажать `готово`
8. Меню ввода адреса прокси сервера оставить пустым и нажать – готово
9. В меню выбора зеркала для скачивания архивов ничего не менять и нажать готово
10. В меню настройки дисковых устройств выбрать пункт автоматической разметки диска, и если он и выбран – нажать готово

Когда вы убедитесь, что все сделали правильно нажмите «Готово» В следующем меню заполнить все поля имени пользователя и пароля, в качестве имени пользователя и пароля можно использовать: `labuser``labpass1!`

[![Рисунок4.png](https://docs.resds.ru/uploads/images/gallery/2022-02/scaled-1680-/3cKddI65UKKPxis8-risunok4.png)](https://docs.resds.ru/uploads/images/gallery/2022-02/3cKddI65UKKPxis8-risunok4.png)

В новом меню включите установку сервера `OpenSSH` и нажмите готово

[![Рисунок5.png](https://docs.resds.ru/uploads/images/gallery/2022-02/scaled-1680-/fhzVwMKLdtMuJc98-risunok5.png)](https://docs.resds.ru/uploads/images/gallery/2022-02/fhzVwMKLdtMuJc98-risunok5.png)

В следующем меню, сразу нажмите готов Дождитесь установки операционной системы и с помощью нажатия ***Cancel update and reboot***, произойдет перезагрузка системы, введите свой логин и пароль установленный в прошлых пунктах и попробуйте проверить работу сети с помощью команды

```sh
ping 192.168.0.10

```

#### Задание 6. Анализ трафика

1. закончите снятие трафика
2. перенесите дамп на аудиторный пк
3. Ответьте на вопросы: 
    1. Какие протоколы использовались во время установки ОС?
    2. Как выглядит сценарий взаимодействия при сетевой загрузки?
    3. За что отвечает dnsmasq?
    4. Что такое IPXE?
4. Показать сценарий взаимодействия загрузки

# Лабораторная 5. Облачное хранилище

#### Цель:

Приобрести навыки работы с пакетными анализаторами трафика

#### Задачи:

1. Подключится к виртуальной машине на облачной платформе СПбГУТ
2. Создать порт
3. Подключить порт к работающей VM
4. Установить NextCloud
5. Загрузить тестовый файл в nextcloud
6. проанализировать трафик, во время загрузки файла в облачное хранилище

##### 1. Подключение к облачной платформе

1. Перейдите в браузере по адресу [cloud.resds.ru](https://cloud.resds.ru/)
2. Авторизуйтесь на платформе
3. В верхнем левом углу выберите свой проект `$GROUP-team$N:pxe-lab`, где $GROUP-название вашей группы, $N - номер бригады
    
    [![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/fYn1jxrFrKvZ98us-image-1663938136387.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/fYn1jxrFrKvZ98us-image-1663938136387.png)

##### 2. Подключение порта к работающей VM

1. В меню в левой части экрана выбрать `Проект`-&gt;`Вычислительные ресурсы`-&gt;`Инстансы`
2. Нажать у labnode-2 на стрелочку вниз
    
    [![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/CwdnTwyXyQA7pMme-image-1663942554436.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/CwdnTwyXyQA7pMme-image-1663942554436.png)
3. В выпавшем меню нажать `Подключить интерфейс`
    
    [![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/1i2fAAJKMnkIBDvV-image-1663942803578.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/1i2fAAJKMnkIBDvV-image-1663942803578.png)
4. В окне выбрать аналогичные пункты [![](https://docs.resds.ru/uploads/images/gallery/2022-11/scaled-1680-/hfI8e28Ie5zU6cOz-image-1668075735417.png)](https://docs.resds.ru/uploads/images/gallery/2022-11/hfI8e28Ie5zU6cOz-image-1668075735417.png)
5. Нажать `Подключить интерфейс`

##### 3. Установка NextCloud

1. Скачиваем и устанавливаем пакеты `Nextcloud`
    
    ```bash
    sudo snap install nextcloud
    
    ```
2. Запускаем облачное хранилище `Nextcloud`
    
    ```bash
    sudo snap start nextcloud
    
    ```
3. Настроим группы безопасности, чтобы у нас появилась возможность подключение по этому адресу с других портов
    
    
    1. Переходим в `Проект`-&gt;`Сеть`-&gt;`Группа безопасности`
    2. Выберите группу безопасности default
    3. Нажмите в ней `Управление правилами`
    4. И добавьте правило разрешающее http
4. Включаем интерфейс и получаем ip адрес
    
    ```bash
    sudo dhclient enp8s0
    
    ```
5. Для подключения – в браузере набрать адрес виртуального сервиса [![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/oIqp21TmKga8I8Za-image-1663943052371.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/oIqp21TmKga8I8Za-image-1663943052371.png)
6. После подключения в браузере - задать логин и пароль администратора системы (можно использовать ***labuser*** и ***labpass1!***), снять опцию – установить рекомендуемые приложения и нажать – завершить установку
    
    [![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/QSnQY4Z7V9rEMr4d-image-1663943808397.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/QSnQY4Z7V9rEMr4d-image-1663943808397.png)
7. После завершения настройки облачного сервиса вы сможете начать им пользоваться, он будет полностью под вашим контролем. Все файлы будут в меню файлы, вы сможете как загрузить их через браузер с вашего локального компьютера просто перетащив, так и скачать их с облака.
    
    [![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/kfNPLtgwyYqgh0AY-image-1663944093049.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/kfNPLtgwyYqgh0AY-image-1663944093049.png)
    
    P.S.  
    Nextcloud так же имеет приложения для различных платформ:  
    Для [компьютера](https://nextcloud.com/install/#install-clients)  
    Для [android](https://play.google.com/store/apps/details?id=com.nextcloud.client)  
    Для [iOS](https://apps.apple.com/ru/app/nextcloud/id1125420102?mt=8&ign-mpt=uo%3D4)  
    При установке этого приложения вам нужно будет ввести адрес вашего сервиса, ваш логин, и ваш пароль который вы задали на пункте 4

##### 4. Загрузка тестового файла

1. Запустите на сервере снятие трафика с помощью tcpdump
2. С помощью одного из приложений, загрузите любой файл на сервер
3. Закончите сбор трафика
4. Перенесите дамп файл себе на ПК

##### 5. Ответьте на вопросы

1. Проанализируете и назовите используемые для передачи протоколы.
2. Какой пакет отвечает за началу загрузки файла с облачного хранилища?
3. Какой HTTP метод использовался для скачивания, и какие поля пакета использовались для этого?

# Лабораторная 6. Развертывание Asterisk

### Цель:

Получение базовых навыков работы в настройке программной АТС Asterisk.

### Задачи:

1. Подключится к облачной платформе СПбГУТ
2. Скачать исходные файлы Asterisk
3. Скомпилировать Asterisk
4. Настроить Asterisk
5. Запустить Asterisk
6. Зарегистрировать пользователя в программном телефоне Linphone

### Схема виртуального стенда:

<div drawio-diagram="347"><img src="https://docs.resds.ru/uploads/images/drawio/2022-11/IEiwRGspjxRg5AEj-drawing-3-1668594518.png" alt=""/></div>

### Ход работы:

#### Подготовка стенда

Для прохождения трафика с ***Asterisk***, во внешнюю сеть нам необходимо настроить работу с внешней сетью, для этого нам нужно из узла ***Labnode-2***, сделать маршрутизатор и маршрутизировать трафик, из сети **192.168.0.0/24** во внешнюю сеть.

<span style="color:blue">Перейдите в проект ***\[group-name\]-\[team number\]:dpi***</span>

##### Действия на инстансе **Labnode-1**

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

```bash
sysctl net.ipv4.ip_forward

```

> **net.ipv4.ip\_forward = 0** - означает, что модуль ядра выключен

Для включения этого параметра необходимо ввести команду:

```bash
sudo sysctl -w net.ipv4.ip_forward=1

```

Проверяем, включился ли модуль пересылки пакетов:

```bash
cat /proc/sys/net/ipv4/ip_forward

```

> Команда аналогична первой команде для проверки работы модуля, в данном случае вам должно быть выведено просто значение **1**

Введенные выше команды включают работу модуля, только на время пока работает ОС, и при перезагрузке будет сброшено для дефолтного состояния, чтобы это работало и после перезагрузке системы необходимо добавить в для включения этого параметра.

```bash
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf

```

Если мы хотим, чтобы правило дописанное нами применилось, стоит ввести команду

```bash
sudo sysctl -p 

```

Выполняем настройку **iptables**

1. Добавим правило позволяющее пакетам, исходящим из сети 192.168.0.0/24 на интерфейсе eth0, проходить через фаервол без дополнительной проверки. ```bash
    sudo iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j ACCEPT
    
    ```
2. Добавим правило, которое разрешает проходить через фаервол пакетам, относящимся к уже установленным и работающим сетевым соединениям, таким как соединения по протоколам TCP или UDP. ```bash
    sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    
    ```
3. Добавим правило, которое разрешает прохождение всех пакетов, относящихся к уже установленному соединению или новому соединению, через интерфейс **eth0** к **eth1**```bash
    sudo iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    
    ```
4. Добавим правило, которое разрешает прохождение всех пакетов, относящихся к уже установленному соединению или новому соединению, через интерфейс **eth1** к **eth0**```bash
    sudo iptables -A FORWARD -i eth1 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    
    ```
5. Добавляем правило для включения маскардинге для проходящих через интерфейс `eth1````bash
    sudo iptables -t  nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
    
    ```

Возможна необходимость заменить название интерфейсов

<table id="bkmrk-%D0%9D%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-"><thead><tr><th>Название интерфейса в примере</th><th>К какой сети относится адрес</th></tr></thead><tbody><tr><td>eth1</td><td>172.17.32.0/19</td></tr><tr><td>eth0</td><td>192.168.0.0/24</td></tr></tbody></table>

##### Действие на узле Asterisk

###### Установка Asterisk

Для прохождения трафика во внешнею сеть на **labnode-2** необходимо прописать маршрут по умолчанию через **labnode-1**, для этого нам необходимо ввести команду:

```bash
sudo ip route add 0.0.0.0/0 via 192.168.0.1 dev eth0 

```

Нам необходимо подготовить виртуальную машину **labnode-2**, для работы с s3, для этого необходимо выполнить несколько действий, сначала необходимо установить пакет для работы с s3

```bash
sudo apt install s3cmd -y

```

После этого нам необходимо скопировать файл конфигурации в домашнию папку пользователя

```bash
cp /var/lib/cloud/s3cfg ~/.s3cfg

```

После этого у нас полноценно работает s3

Скачиваем Астерикс

```bash
s3cmd get s3://dpi/asterisk-certified-18.9-current.tar.gz

```

Распаковываем архив

```bash
tar xvf asterisk*

```

Переходим в директорию

```bash
cd asterisk-certified*/

```

Добавляем звуки и устанвливаем необходимые компоненты

```bash
sudo apt update
sudo apt -y install git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev  uuid-dev
sudo contrib/scripts/get_mp3_source.sh

```

Устанвливаем зависимости Asterisk

```bash
sudo contrib/scripts/install_prereq install

```

Вам будет предложено выбрать [национальный код](https://www.itu.int/oth/T0202.aspx?parent=T0202)

Собираем и устанавливаем Asterisk и заполняем конфигурациями по умолчанию для работы

```bash
sudo ./configure
sudo make menuselect
sudo make
sudo make config
sudo make install
sudo make progdocs
sudo make basic-pbx
sudo ldconfig

```

Добавляем новую группу **asterisk**

```bash
sudo groupadd asterisk

```

Создаем пользователя **asterisk**, и указываем ему домашнию директорию **/var/lib/asterisk**

```bash
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk

```

Добавляем пользователя **asterisk** в группы **audio** и **dialout**

```bash
sudo usermod -aG audio,dialout asterisk

```

Меняем права и владельцев директорий которые мы используем в процессе работы

```bash
sudo chown -R asterisk:asterisk /etc/asterisk
sudo chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
sudo chown -R asterisk:asterisk /usr/lib/asterisk
sudo chmod -R 750 /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk

```

Приводим **/etc/default/asterisk** к виду

```plain
AST_USER="asterisk"
AST_GROUP="asterisk"
COLOR=yes

```

Добавляем строки в **/etc/asterisk/asterisk.conf**

```plain
[options]
runuser = asterisk
rungroup = asterisk

```

Редактируем файл pjsip **/etc/asterisk/pjsip.conf** и приводим его к ввиду который указан ниже(удаляем существующую конфигурацию)

```text
[transport-udp-nat]
type = transport
protocol = udp
bind = 0.0.0.0

[100]
type = endpoint
disallow = all
allow = alaw
allow = ulaw
direct_media= no
context = internal
callerid = 100
auth = 100-auth
aors = 100

[100-auth]
type = auth
auth_type = userpass
username = 100
password = 123

[100]
type = aor
max_contacts = 5


[101]
type = endpoint
disallow = all
allow = alaw
allow = ulaw
direct_media= no
context = internal
callerid = 101
auth = 101-auth
aors = 101

[101-auth]
type = auth
auth_type = userpass
username = 101
password = 123

[101]
type = aor
max_contacts = 5

```

Файл **/etc/asterisk/extensions.conf**, приводим его к виду(удаляем существующую конфигурацию):

```
[globals]
[general]
[default]

[internal]
exten => _1xx,1,Dial(PJSIP/${EXTEN})
exten => s,n,Hangup

```

Запускаем Asterisk и добавляем его в автозагрузку

```bash
sudo systemctl restart asterisk.service
sudo systemctl enable asterisk.service --now

```

Проверка

```bash
sudo asterisk -rvvvv

```

```bash
pjsip show endpoints

```

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/DMLMtyfMJ77ZaHh7-image-1662491041014.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/DMLMtyfMJ77ZaHh7-image-1662491041014.png)

```bash
pjsip show transports

```

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/2v8ydtgvQ4MOIz1E-image-1662491134931.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/2v8ydtgvQ4MOIz1E-image-1662491134931.png)

# Лабораторная 7. Linphone, анализ трафика

### Цель:

Получение базовых навыков работы в настройке программной АТС Asterisk.

### Задачи:

1. Подключится к облачной платформе СПбГУТ
2. Скачать исходные файлы Asterisk
3. Скомпилировать Asterisk
4. Настроить Asterisk
5. Запустить Asterisk
6. Зарегистрировать пользователя в программном телефоне Linphone

### Схема виртуального стенда:

<div drawio-diagram="347"><img src="https://docs.resds.ru/uploads/images/drawio/2022-11/IEiwRGspjxRg5AEj-drawing-3-1668594518.png" alt=""/></div>

### Ход работы:

На узле **Labnode-2**

Создать файл **rtp.conf** по пути ***/etc/asterisk/rtp.conf***

```
[general]

rtpstart=10000
rtpend=10005

```

Перезагрузить Asterisk

```bash
sudo systemctl restart asterisk.service

```

Добавляем на инстансе **labnode-1**, перенаправления трафика **SIP** напрямую к **Asterisk**

```bash
sudo iptables -t nat -A PREROUTING -p udp --dport 5060 -j DNAT --to-destination 192.168.0.10:5060

```

Подключаем Linphone на аудиторном пк и вашем устройстве\* или втором аудиторном пк, вводим на устройствах на устройствах данные которые мы задали ранее

<table id="bkmrk-%E2%84%96-%D0%9B%D0%BE%D0%B3%D0%B8%D0%BD-%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D1%8C-1-100"><thead><tr><th>№</th><th>Логин</th><th>Пароль</th></tr></thead><tbody><tr><td>1</td><td>100</td><td>123</td></tr><tr><td>2</td><td>101</td><td>123</td></tr></tbody></table>

> Cсылки для скачивания на пользовательские устройства
> 
> [Android](https://play.google.com/store/apps/details?id=org.linphone&hl=en)
> 
> [![](https://docs.resds.ru/uploads/images/gallery/2022-11/scaled-1680-/ZPcXBOAoCJSfLQ0b-image-1668597001498.png)](https://docs.resds.ru/uploads/images/gallery/2022-11/ZPcXBOAoCJSfLQ0b-image-1668597001498.png)
> 
> [iOS](https://apps.apple.com/us/app/linphone/id360065638)
> 
> [![](https://docs.resds.ru/uploads/images/gallery/2022-11/scaled-1680-/KI2oK3mBpzn1Bmzp-image-1668596952364.png)](https://docs.resds.ru/uploads/images/gallery/2022-11/KI2oK3mBpzn1Bmzp-image-1668596952364.png)

После подключение устройств на инстансе можно проверить, прошло ли подключение зайдя в консоль **Asterisk**

```bash
sudo asterisk -rvvvvv

```

Перед вами появится консоль **Asterisk**

[![](https://docs.resds.ru/uploads/images/gallery/2022-11/scaled-1680-/5KsfuQVAUytdqOeM-image-1667915240874.png)](https://docs.resds.ru/uploads/images/gallery/2022-11/5KsfuQVAUytdqOeM-image-1667915240874.png)

В этой консоли вам необходимо ввести

```asterisk
pjsip show endpoints

```

У вас должен получится, аналогичный ответ, только с вашими **IP** адресами

[![](https://docs.resds.ru/uploads/images/gallery/2022-11/scaled-1680-/hIvsG9oLdNxBkMaR-image-1667915338523.png)](https://docs.resds.ru/uploads/images/gallery/2022-11/hIvsG9oLdNxBkMaR-image-1667915338523.png)

После того как убедились, что стенд работает, вам необходимо выключить программный телефон ***Linphone***, после того как вы отключили программные телефона, снова проверьте отключиться ли они от станции с помощью команды в консоли **Asterisk**

```asterisk
pjsip show endpoints

```

В этот раз у вас, должна получиться такая конфигурация

[![](https://docs.resds.ru/uploads/images/gallery/2022-11/scaled-1680-/qreyXuCxa7sqpEQl-image-1667916225804.png)](https://docs.resds.ru/uploads/images/gallery/2022-11/qreyXuCxa7sqpEQl-image-1667916225804.png)

#### Задание

1. Включите снятие трафика с помощью **tcpdump**
    1. На Аудиторном пк, с которого Вы выполняете звонок
    2. На инстансе **Labnode-1**
    3. На инстансе **Labnode-2**
2. Залогиньтесь в программных телефонах
3. Закончите снятие трафика с помощью **tcpdump**
    1. На Аудиторном пк, с которого Вы выполняете звонок
    2. На инстансе **Labnode-1**
    3. На инстансе **Labnode-2**
4. Включите снятие трафика с помощью **tcpdump**
    1. На Аудиторном пк, с которого Вы выполняете звонок
    2. На инстансе **Labnode-1**
    3. На инстансе **Labnode-2**
5. Выполните звонок с одного Linphone на другой
6. Закончите вызов
7. Закончите снятие трафика с помощью **tcpdump**
    1. На Аудиторном пк, с которого Вы выполняете звонок
    2. На инстансе **Labnode-1**
    3. На инстансе **Labnode-2**
8. Сравните различия снятого трафика с разных устройств с помощью Wireshark
9. В дампах каких устройств можно прослушать разговор?
10. Как можно прослушать в wireshark разговор между абонентами?
11. Нарисуйте MSC-сценарий звонка

# Лабораторная 8. Развертывание nDPI

### Цель:

Получение базовых навыков работы в настройке программной АТС Asterisk.

### Задачи:

1. Подключится к облачной платформе СПбГУТ
2. Добавить репозитории ntop
3. Установить пакеты nDPI
4. Отловить трафик пользователей по приложению

### Схема виртуального стенда:

<div drawio-diagram="347"><img src="https://docs.resds.ru/uploads/images/drawio/2022-11/IEiwRGspjxRg5AEj-drawing-3-1668594518.png" alt=""/></div>

### Ход работы:

Переходим на **Labnode1**

1. Настройка репозитория ```bash
    cp /var/lib/cloud/s3cfg .s3cfg
    s3cmd get s3://dpi/ntop.deb
    sudo apt install ./ntop.deb -y 
    
    ```
2. Обновляем локальные индексы пакетов ```bash
    sudo apt update
    
    ```
3. Устанавливаем пакеты nDPI ```bash
    sudo apt install pfring-dkms nprobe ntopng n2disk cento -y
    
    ```
4. Запускаем ntopng и добавляем в автозапуск ```bash
    sudo systemctl enable ntopng --now
    
    ```
5. Переходим в вeб-интерфейс dpi
6. Перейти в браузер по адресу \[ip адрес из сети 172.17.32.0/19\]:3000
7. Авторизуйтесь

<table id="bkmrk-%D0%9B%D0%BE%D0%B3%D0%B8%D0%BD-%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D1%8C-admin-a"><thead><tr><th>Логин</th><th>Пароль</th></tr></thead><tbody><tr><td>admin</td><td>admin</td></tr></tbody></table>

1. После авторизации потребуется сменить пароль, приведите к виду

<table id="bkmrk-%D0%9B%D0%BE%D0%B3%D0%B8%D0%BD-%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D1%8C-admin-l"><thead><tr><th>Логин</th><th>Пароль</th></tr></thead><tbody><tr><td>admin</td><td>labpass1!</td></tr></tbody></table>

1. Авторизуйтесь в Linphone
2. Найдете в веб интерфейсе SIP трафик
3. Снимите трафик за 1 минуту

Вопросы:

1. Какие функциональные возможности есть у nDPI?
2. Что необходимо сделать, чтобы увидеть проходящий через nDPI сетевой трафик?
3. Как возможно изменять политику обслуживания пользователей?
4. Какие есть способы добавить свою сигнатуру в nDPI