# Заочники

# Задание на выполнение(!!! СНАЧАЛА ЧИТАЙ МЕНЯ !!!)

адрес облака:

[https://cloud.resds.ru](https://cloud.resds.ru)

[![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/IcwrTarc9ijLpIl0-image-1655287955108.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/IcwrTarc9ijLpIl0-image-1655287955108.png)

Для входа:

выбрать домен <u>**AD**</u>

<u>**Логин и пароль**</u> в сервисах Личного Кабинета СПбГУТ

<details id="bkmrk-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD%D0%B0-%D0%B8-%D0%BF"> <summary>**Получение <u>логина и пароля</u> в сервисах личного кабинета**</summary>

 1. Перейти в личный кабинет   
 2. Перейти в меню "Достцпы к сервисам"   
 3. ПОсмотреть имя пользователя, и, при необходимости восстановить пароль(данный пароль явлется так же пародем доступа к LMS СПбГУТ и WiFi)   
[![Screenshot_lk.png](https://docs.resds.ru/uploads/images/gallery/2023-06/scaled-1680-/lr8W5MqtphBronqX-screenshot-lk.png)](https://docs.resds.ru/uploads/images/gallery/2023-06/lr8W5MqtphBronqX-screenshot-lk.png)

 </details>  
После выполнения каждого задания необходимо удалить инстансы, созданные в результате выполнения предыдущего задания (в меню справа сверху - кнопка - "удалить инстанс") #### **1 практическое задание:**

[https://docs.resds.ru/books/zaochniki/page/prakticheskoe-zadanie-1-sozdanie-virtualnoy-mashiny-v-novom-proekte ](https://docs.resds.ru/books/zaochniki/page/prakticheskoe-zadanie-1-sozdanie-virtualnoy-mashiny-v-novom-proekte)

[![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/yyovKeHr4VwYXDAU-image-1655287989527.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/yyovKeHr4VwYXDAU-image-1655287989527.png)

#### **2 практическое задание:**

[https://docs.resds.ru/books/zaochniki/page/prakticheskoe-zadanie-2-sozdanie-servisa-oblachnogo-khranilishcha](https://docs.resds.ru/books/zaochniki/page/prakticheskoe-zadanie-2-sozdanie-servisa-oblachnogo-khranilishcha)

[![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/HisvrEcAy7hyzpFh-image-1655290489649.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/HisvrEcAy7hyzpFh-image-1655290489649.png)

#### **3 практическое задание**

[https://docs.resds.ru/books/zaochniki/page/prakticheskoe-zadanie-4wireguard](https://docs.resds.ru/books/zaochniki/page/prakticheskoe-zadanie-4wireguard)

[![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/f0HXp0RVumnw63RV-image-1655288029431.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/f0HXp0RVumnw63RV-image-1655288029431.png)

# Практическое задание №1. Создание виртуальной машины в новом проекте

Задачи:

1. Подключиться к облачной инфраструктуре.
2. Убедиться в наличии доступных сетей.
3. Создать виртуальную машину.
4. Настройка правил безопасности.
5. Узнать адрес виртуальной машины.
6. Подключиться к ВМ по ssh

<center id="bkmrk-1.-%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D0%BA-%D0%BE%D0%B1">#####  1. Подключиться к облачной инфраструктуре.

</center>Необходимо перейти по ссылке https://cloud.resds.ru . Для подключения использовать домен AD, а также учётную запись пользователя, используемую для подключения к WiFi СПбГУТ

---

<center id="bkmrk--0">![](https://docs.resds.ru/uploads/images/gallery/2022-03/a5uqXKP9hMSA0EYx-image001.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-1">Рис. 1</center><center id="bkmrk-2.-%D0%A3%D0%B1%D0%B5%D0%B4%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D0%B2-%D0%BD%D0%B0%D0%BB%D0%B8%D1%87">#####  2. Убедиться в наличии доступных сетей. 

</center>---

Открыть: проект -&gt; сеть -&gt; сети, и убедиться, что там есть сеть external-net (рис. 2) ---

<center id="bkmrk--3">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/minvRZbVSutexgY3-image003.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-2">Рис. 2</center>---

<center id="bkmrk-3.-%D0%A1%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BA%D0%BB%D1%8E">##### 3. Сгенерировать ключевую пару.

</center>При первом входе сгенерировать ключевую пару, для доступа к Linux виртуальным машинам. Открыть: Проект -&gt; ключевая пара -&gt; создать ключевую пару (рис. 3) ---

<center id="bkmrk--6">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/4902bPiiMP8rAJw0-image005.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-3">Рис. 3</center>В открывшемся окне (рис. 4) ввести имя ключевой пары и тип ключа(ssh-key). В имени рекомендуется использовать ваш логин. ---

<center id="bkmrk--8">![](https://docs.resds.ru/uploads/images/gallery/2023-06/j1StzsC4jUTpnx2l-screenshot-keypair.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-4">Рис. 4</center>Ключ будет сохранен на ваш компьютер, он понадобится в дальнейшем. <center id="bkmrk-4.-%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD">##### 4. Создать виртуальную машину. 

</center>Открыть меню Проект &gt; вычислительные ресурсы &gt; инстансы &gt; запустить инстанс (рис. 5) ---

<center id="bkmrk--10">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/0OVmGqpUMX6j6Pk0-image009.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-5">Рис. 5</center>---

В открывшемся окне (рис. 6), во вкладке подробности ввести имя инстанса и нажать Следующая &gt; внизу страницы. ---

<center id="bkmrk--13">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/EbiVrAdkw4Hh11I2-image011.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-6">Рис. 6</center>---

В следующем меню (Источник) выбрать источник – образ, указать размер тома данных, выбрать удаление диска при удалении инстанса, выбрать необходимый вам образ из доступных (например Ubuntu-server-20.04:docker), и нажать справа от него стрелку вверх (рис. 7) ---

<center id="bkmrk--16"><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/GRWhJjYFrFTu0uua-image013.jpg"></image></center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-7">Рис. 7</center>В следующем меню (тип инстанса) определить объем выделяемых виртуальной машине вычислительных ресурсов. Для этого нужно выбрать <u>**один из предопределённых типов инстансов**</u> (например small), и нажать справа от него стрелку вверх (рис. 8).

---

<center id="bkmrk--18"><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/RuUj8904Z2ZFgSMJ-image015.jpg"></image></center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-8">Рис. 8</center>---

В меню сети выбрать нужную вам сеть, к которой будет подключена виртуальная машина (наличие сети было проверено в п.1). Если в инфраструктуре доступна только одна сеть, она будет выбрана автоматически, и выбирать ничего не нужно. (рис. 9) ---

<center id="bkmrk--21"><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/X709bbCOCQjg2Azt-image017.jpg"></image></center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-9">Рис. 9</center>---

Затем перейти к меню Ключевая пара, выбрать созданную ключевую пару, и нажать справа от неё стрелку вверх. (рис. 10) ---

<center id="bkmrk--24"><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/6DtKSmtNNk6Be1TP-image019.jpg"></image></center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-10">Рис. 10</center>---

После выполнения всех действий - нажать справа снизу кнопку «запустить инстанс» для создания и запуска виртуальной машины. <center id="bkmrk-5.-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB-">#####  5. Настройка правил безопасности. 

</center>Для работы с инстансом необходимо разрешить ему сетевое взаимодействие (например 80/TCP – HTTP, 22/TCP – SSH, 51820/UDP - other): Для этого нужно открыть Проект &gt; Сеть &gt; Группы безопасности &gt; выбрать группу безопасности default и нажать – управление правилами (рис. 11) ---

<center id="bkmrk--27"><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/IimDgrIvnV5xjLg1-image020.png"></image></center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-11">Рис. 11</center>---

В открывшемся меню добавить правило для входящего трафика (рис. 12) ---

<center id="bkmrk--30"><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/0nR7lwDumyhK1pDj-image021.png"></image></center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-12">Рис. 12</center>---

В открывшемся меню добавления правил (рис. 13), добавить правило для порта 80(tcp) Для этого выбрать: - Правило: «Настраиваемое правило TCP»
- Направление: Входящий трафик
- Порт: 80
- Формат записи подключаемого диапазона адресов: CIDR
- Сам подключаемый диапазон адресов: 0.0.0.0/0

Последняя запись означает разрешение подключения с любого адреса После заполнения всех полей нажать кнопку «Добавить» в правом нижнем углу.

<center id="bkmrk--32"><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/iADChjMLQRvRpdR8-image023.png"></image></center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-13">Рис. 13</center>---

Тоже самое необходимо сделать для всех остальных портов: - 22/TCP,
- 51820/UDP
 
<center id="bkmrk-6.-%D0%A3%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-%D0%B0%D0%B4%D1%80%D0%B5%D1%81-%D0%B2%D0%B8%D1%80%D1%82">##### 6. Узнать адрес виртуальной машины. 

</center>Для этого вернуться во вкладку инстансы и в поле ip адрес будет ip адрес вашего виртуального инстанса (рис 14). Этот адрес понадобится в дальнейшем, для подключения к нему и его настройки. <center id="bkmrk--34"><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/j775DBhTELenEevV-image025.png"></image></center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-14">Рис. 14</center>---

<center id="bkmrk-7.-%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D0%BA-%D0%92%D0%9C">##### 7. Подключиться к ВМ по ssh 

</center>Сделать это можно двумя способами: встроенными средствами windows(начиная с windows 10) и с помощью putty

<details id="bkmrk-%D0%92%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0-"> <summary>**Встроенные средства Windows (Для windows 10 и выше)**</summary>

 1. Открыть командную строку, нажав Win+R 2. Ввести строку подключения, указав путь к скачанному ключевому файлу, а так же адрес хоста, к которому происходит подключение. Так же, перед адресом можно указать имя пользователя

[![Screenshot_20.png](https://docs.resds.ru/uploads/images/gallery/2023-06/scaled-1680-/OPNrTYeDE81mFIUZ-screenshot-20.png)](https://docs.resds.ru/uploads/images/gallery/2023-06/OPNrTYeDE81mFIUZ-screenshot-20.png)

3. При первом подключении вам будет задан вопрос, о принятии ключа сервера. Для принятия этого ключа нужно нажать `y`

</details><details id="bkmrk-%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C"> <summary>**Подключение с помощью PuTTY**</summary>

Проверить его наличие можно с помщью выполнения команд <u>**win+R**</u>, в открывшемся окне ввести <u>**putty**</u> и нажать <u>**Enter**</u>. Если откроется рабочее окно putty, значит он корерктно установлен в системе.

 <details> <summary>**Если putty не установлен в системе**</summary>

 Для работы потребуются два файла, putty.exe и puttygen.exe Загрузить putty можно по ссылке:  
 [PuTTY](https://drive.resds.ru/index.php/s/iAmHS6Pcxd9RAwg/download/putty.exe)  
Загрузить puttygen можно по ссылке:  
 [puttygen](https://drive.resds.ru/index.php/s/a99wWzzrE2qA693/download/puttygen.exe)  
 </details>  
Открыть <u>**puttygen**</u> (<u>**win+R**</u>), нажать кнопку load и выбрать скачанный п п.2 ключ с расширением .pem (если файл не отображатеся, то необходимо в правом нижнем углу выбрать пункт "All Files") Puttygen автоматически подставит все поля из ключа. Далее необходимо нажать кнопку save private key, и выбрать место, куда ключ будет сохранен (рис. 15).

<center><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/TmsODPrGZVZtEPiv-image027.png"></image></center><center>Рис. 15</center>---

Запустить putty Открыть меню connection -&gt; SSH -&gt; Auth -&gt; Credentials и в открывшемся меню в поле private key for authentication выбрать путь к сгенерированному ключу (рис. 16) ---

<center><image src="https://docs.resds.ru/uploads/images/gallery/2023-06/S42kqEkC1slqnEQ0-putty-cred.png"></image></center><center>Рис. 16</center>---

 Открыть заново вкладку **Session**, ввести адрес нашей ВМ и нажать Open (рис. 17) ---

<center><image src="https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/vqfavJYHoceH6kTm-image031.jpg"></image></center><center>Рис. 17</center>---

В открывшемся окне терминала ввести имя пользователя **cloudadmin**. Это позволит получить удалённый доступ к вашей виртуальной машине. </details>

# Практическое задание №2. Создание сервиса облачного хранилища

#### Создание облачного сервиса.

1. Необходимо войти в панель управления облачной платформой – [https://cloud.resds.ru/](https://cloud.resds.ru/)
2. Создать новый виртуальный сервер, на базе которого будет произведено создание образа собственного сервиса.

При создании сервиса задать образ - Ubuntu-20-Installer, при этом не создавая новый образ, и используя имеющийся для установки необходимых компонентов сервера (рис. 1).

<center id="bkmrk-">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/uvsLk1GFh62hpz6a-image-1646933216217.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-1-%E2%80%93-%D0%B2%D1%8B%D0%B1%D0%BE%D1%80-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7">Рис. 1 – выбор образа для установки</center>Тип инстанса выбрать **Small**  
Выбрать сеть с внешним подключением **(external-net)**  
После выбора сети появится возможность запуска инстанса - нажать **«запустить инстанс»** (справа снизу).

4. Необходимо создать виртуальный диск, который будет являться образом нового сервиса. Для этого слева в панели выбрать меню – Диски -&gt; Диски -&gt; Создать диск (рис. 2)

<center id="bkmrk--0">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/ldx6nZx2JOvgtbNU-image-1646933370816.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-2-%E2%80%93-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8">Рис. 2 – создание диска.</center>5. В появившемся меню задать имя диска и размер (10GB) и нажать – создать диск( рис. 3) Все

<center id="bkmrk--1">![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/9WEK19X6FpJHawLW-image-1655304818600.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-3">Рис. 3</center>6. Когда диск создан, необходимо подключить его к виртуальному серверу, на котором планируется создание нового сервиса. Для этого в раскрывающемся меню справа от нового диска выбрать «управление подключением дисков», а в открывшемся меню выбрать виртуальный сервер, к которому его необходимо подключить. (рис. 4) <center id="bkmrk--2">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/mUbgR3ACVPJLMANh-image-1646933466190.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-4.-%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-">Рис. 4. Подключение дисков к виртуальному серверу.</center>7. Дальше можно переходить в меню установки нового сервиса. Для этого необходимо вернуться в меню инстансы(слева), и нажать на имя нашего нового инстанса, созданного на этапе 1.2. После этого необходимо открыть консоль этого инстанса, на вкладке – консоль. На самом деле перед вами установочное меню операционной системы ubuntu 20 в серверном исполнении, и возможностью установки сервисов.
8. В данной работе установка подразумевает под собой установку параметров в режиме по умолчанию. Для навигации по установочному меню используются кнопки клавиатуры: вверх-вниз – для перемещения фокуса выделения по пунктам меню, enter – для нажатия на необходимый пункт, пробел – для выбора пунктов в меню со списком выбора, Tab – для переключения между группами пунктов выбора.
9. – в первом пункте по умолчанию выбран язык English – лучше его изменить на русский, для избегания проблем с локализацией. Для этого переместить фокус выделения на русский язык и нажать – enter.
10. – В следующем меню оставить английскую расскладку клавиатуры и нажать готово
11. В следующем меню – сетевые соединения – оставить все параметры по умолчанию и нажать готово
12. – меню ввода адреса прокси сервера оставить пустым и нажать – готово
13. – в меню выбора зеркала для скачивания архивов ничего не менять и нажать готово
14. – в меню настройки дисковых устройств убедиться, что выбран диск на 20 гигабайт (созданный в пункте 1.4), и если он и выбран – нажать готово (рис. 5)

<center id="bkmrk--3">![](https://docs.resds.ru/uploads/images/gallery/2022-06/LanwSk7RbxhI5Eum-2022-06-16-170127.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-5">Рис. 5</center>15. в меню детальной настройки диска оставить всё без изменений и нажать – **готово** (в появившемся окне с предупреждением – нажать продолжить)
16. заполнить все поля имени пользователя и пароля (рис. 6).

<center id="bkmrk--4">![](https://docs.resds.ru/uploads/images/gallery/2022-02/scaled-1680-/3cKddI65UKKPxis8-risunok4.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-6">Рис. 6</center>  
<table id="bkmrk-server-name-%D0%92%D0%B0%D1%88%D0%B5-%D0%B8%D0%BC%D1%8F"><thead><tr><th align="center">Server name</th><th align="center">Ваше имя</th><th align="center">Имя пользователя</th><th align="center">Пароль</th></tr></thead><tbody><tr><td align="center">cloudstorage</td><td align="center">labuser</td><td align="center">labuser</td><td align="center">labpass1!</td></tr></tbody></table>

17. установить OpenSSH server. Для этого в меню выбора при мигающем курсоре нажать – **пробел** – рис. 7

<center id="bkmrk--6">![](https://docs.resds.ru/uploads/images/gallery/2022-02/scaled-1680-/fhzVwMKLdtMuJc98-risunok5.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-7">Рис. 7</center>18. В меню выбора функций выбрать ***nextcloud*** и нажать **пробел.** (рис. 8) После того, как выбор сделан – нажать готово.

<center id="bkmrk--7">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/eGnsHZlRSPZRyzgZ-image-1646934428051.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-8">Рис. 8</center>Если всё было сделано корректно, установка должна успешно начаться. Когда установка дойдёт до «downloading and installing security update», можно удалять инстанс, так как эти компоненты не обязательны, а их установка может занять длительное время (рис. 9).

<center id="bkmrk--8">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/iumlJU7D76vz3cOo-image-1646934530703.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-9">Рис. 9</center>Для удаления необходимо в правом верхнем меню инстанса выбрать – удалить инстанс (рис. 10).

<center id="bkmrk--9">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/mwTeCG5cnwRoCEdg-image-1646934566437.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-10-%D0%A3%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D0%B8%D1%80">Рис. 10 Удаление виртуального сервера.</center>Теперь, когда виртуальный сервер удалён, можно приступать к развёртыванию собственного сервиса.

#### Развертывания из образа

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

1. необходимо сделать диск образа загрузочным. Для этого перейти в меню диски – диски – образ – редактировать диск (рис. 11)

<center id="bkmrk--10">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/c4Ar20Ax9Qo65GXj-image-1646934751927.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-11">Рис. 11</center>2. В открывшемся меню выбрать пункт – загрузочный, и нажать – отправить (рис. 12) <center id="bkmrk--11">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/N4DoszQN6fU2b8V4-image-1646934789234.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-12">Рис. 12</center>3. Необходимо развернуть новый инстанс, выбрав источником диск, созданный в разделе 1. 0. При выборе источника диска выбрать меню диск, и выбрать созданный на предыдущих этапах диск для развёртывания (рис. 13) <center id="bkmrk--12">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/F5Y3y7wj6zDcJk0z-image-1646934839386.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-13">Рис. 13</center>Выбрать тип виртуального сервера – ***small***, и в качестве сети выбрать ***external-net***

4. После выборы сети – нажать запустить инстанс – всё, сервис готов, осталось дождаться, пока он запустится и подключиться к нему.
5. Для подключения – в браузере набрать адрес виртуального сервиса (рис. 14).

<center id="bkmrk--13">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/M0BqIXom6qaMFQmX-image-1646934916563.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-14">Рис. 14</center>6. После подключения в браузере - задать логин и пароль администратора системы (можно использовать ***labuser*** и ***labpass1!***), снять опцию – установить рекомендуемые приложения и нажать – завершить установку (рис. 15)

<center id="bkmrk--14">![](https://docs.resds.ru/uploads/images/gallery/2022-03/scaled-1680-/w0UjWnN2APhLABMj-image-1646934997140.png)</center><center id="bkmrk-%D0%A0%D0%B8%D1%81.-15">Рис. 15</center>7. После завершения настройки облачного сервиса вы сможете начать им пользоваться, он будет полностью под вашим контролем. Все файлы будут в меню файлы, вы сможете как загрузить их через браузер с вашего локального компьютера просто перетащив их, так и скачать их с облака.

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)  
При установке этого приложения вам нужно будет ввести адрес вашего сервиса, ваш логин, и ваш пароль который вы задали на этапе 6

# Практическое задание №3.Wireguard

<details id="bkmrk-%D0%91%D0%BE%D0%BD%D1%83%D1%81%D0%BD%D0%BE%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%9F%D0%BE%D0%BB"> <summary>**Бонусное задание**</summary>

[Пользовательская установка wireguard](https://docs.resds.ru/books/zaochniki/page/bonusnoe-zadanie-2)

</details>### Автоматизация развёртывания облачного сервиса.

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

> Добавлять в контейнер установку Docker не нужно, так как вы будете запускать из виртуального инстанса с предустановленным и запущенным Docker

#### Создание преднастроенной виртуальной машины

Необходимо создать виртуальную машину:

- **Источник**: ubuntu-server-20:docker,
- **Тип инстанса**: small,
- **Сеть**: external-net,
- Дополнительно заполнить раздел **Конфигурация**[![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/zGSX14D1ZYaWjwyL-image-1655218465613.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/zGSX14D1ZYaWjwyL-image-1655218465613.png)В разделе конфигурация в текстовое поле ввести скрипт, автоматизирующий установку и развёртывание облачного сервиса. Сам скрипт автоматизации должен включать в себя запуск wireguard контейнера, и запись необходимых параметров в системные файлы.

<details id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D0%B0-%23%21%2Fbi"> <summary>**Пример конфига**</summary>

\#!/bin/bash

cat &lt;&lt; EOF | sudo tee -a /etc/sysctl.conf   
net.ipv4.ip\_forward = 1   
net.ipv6.conf.default.forwarding = 1  
net.ipv6.conf.all.forwarding = 1  
net.ipv4.conf.all.rp\_filter = 1  
net.ipv4.conf.default.proxy\_arp = 0  
net.ipv4.conf.default.send\_redirects = 1  
net.ipv4.conf.all.send\_redirects = 0  
EOF

sudo sysctl -p

ip=$(ip a | grep 172.17 | awk '{print $2}' | awk -F "/" '{print $1}')

sudo docker run -ti -d -p 80:80 -p 51820:51820 --restart=always --network host --entrypoint "/wireguard-ui" -v /tmp/wireguard-ui:/data --privileged embarkstudios/wireguard-ui:latest --data-dir=/data --wg-listen-port=51820 --wg-endpoint="$ip:51820" --wg-allowed-ips=0.0.0.0/0 --wg-dns="172.17.1.10" --wg-device-name="wg0" --listen-address=":80" --nat --nat-device="eth0" --client-ip-range="10.0.8.1/24"

sudo reboot -h now

</details>В конце данного скрипта должна быть инструкция на перезагрузку сервера После запуска виртуальной машины с указанным скриптом необходимо дождаться запуска виртуальной машины и находящихся на ней сервисов.

#### Настройка VPN тоннелей

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

http://«ip адрес вашего виртуального сервера»

В открывшемся окне нажать + в правом нижнем углу [![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/5AZ8dMoe5lFNMesz-image-1655218540071.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/5AZ8dMoe5lFNMesz-image-1655218540071.png)

В появившемся окне ввести имя клиента и нажать create

[![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/RaJGnfaJjk9KDoA8-image-1655218561388.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/RaJGnfaJjk9KDoA8-image-1655218561388.png)

Клиент для подключения создан, так же создан конфигурационный файл для клиента и QR код, по которому можно скачать содержимое этого конфигурационного файла [![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/r5dDEjBzvNnEdTTA-image-1655218586460.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/r5dDEjBzvNnEdTTA-image-1655218586460.png)После создания клиента VPN сервер готов к подключениям внешних клиентов, и можно переходить к проверке.

### Проверка

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

<table id="bkmrk-android-ios"><thead><tr><th>[Android](https://play.google.com/store/apps/details?id=com.wireguard.android)</th><th>[IOS](https://apps.apple.com/ru/app/wireguard/id1441195209)</th></tr></thead><tbody><tr><td>[![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/PP2nSSSELN12es76-image-1655218856712.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/PP2nSSSELN12es76-image-1655218856712.png)</td><td>[![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/1MVrnDqOHjYHCi23-image-1655218708586.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/1MVrnDqOHjYHCi23-image-1655218708586.png)</td></tr></tbody></table>

Проверку необходимо выполнить со своего персонального устройства. Для начала убедиться, что вы работаете из сети СПбГУТ **(Необходимо быть подключенным к WiFi сети)**Перед подключением к VPN серверу необходимо проверить свой текущий ip адрес, под которым вас идентифицируют внешние службы. Сделать это можно открыв сайт [ifconfig.resds.ru](https://ifconfig.resds.ru/). На этой странице будет показано, c каким ip адресом вы обращайтесь как к этой странице.

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

1. Открыть скачанное приложение WireGuard
2. Нажать Add a tunnel для добавления VPN тоннеля
3. Выбрать Create from QR code
4. Отсканировать QR код с настройками вашего тоннеля
5. В появившемся меню ввести произвольное имя тоннеля и нажать Save
6. Подключиться к созданному тоннелю, нажав на переключатель в списке подключений Теперь снова необходимо открыть сайт ifconfig.resds.ru. Если значения изменились, можно сделать вывод о том, что ваш трафик идёт через сервер WireGuard

В случае возникновения проблем у WireGuard нет подробных логов, где можно было бы посмотреть какая ошибка произошла, а причин проблем может быть очень много. Чаще всего — это несоответствующие ключи, закрытый порт или неверный адрес сервера. Для исправления этих ошибок необходимо заново проверить все выполненные настройки.

# Бонусное задание

### Пользовательская установка wireguard

Зайти в режим привилегированного пользователя

```bash
sudo su

```

установить нужные пакеты:

```bash
apt update
apt install -y wireguard qrencode

```

#### Настройка системы

Разрешить перенаправление сетевых пакетов на уровне ядра. Для этого откройте файл /etc/sysctl.conf и добавьте в конец такие строки:

```bash
vi /etc/sysctl.conf

```

```plain
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

```

Затем необходимо выполнить команду sysctl -p чтобы система перечитала конфигурацию:

```bash
sysctl -p

```

#### Генерация ключей сервера

Для сервера надо создать приватный и публичный ключ. Эти ключи, потом надо будет записать в конфигурационный файл сервера и клиента, сами файлы ключей вам не нужны, поэтому можете создавать их где хотите, например, в домашней папке. Так же полученный ключ можно записать в переменную окружения:

```bash
wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key

```

Ключи созданы, утилита tee запишет их в файл, а также выведет на экран, что очень удобно для сохранения значения в переменную

#### Генерация ключей клиента

Аналогичным образом создаём ключи для клиента. Команда та же:

```bash
wg genkey | sudo tee client_private.key | wg pubkey | sudo tee client_public.key

```

#### Конфигурационный файл сервера

Наш конфигурационный файл сервера будет находится по пути /etc/wireguard/wg0.conf и будет выглядеть следующим образом:

```bash
vi /etc/wireguard/wg0.conf

```

```plain
[Interface]
Address = 10.10.10.1/24 
ListenPort = 62666
PrivateKey = “приватный ключ сервера из файла server_private.key”
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = “публичный файл клиента из файла client_public.key”
AllowedIPs = 10.10.10.2/32

```

Файл разделен на две секции:

- Interface - настройка сервера;
- peer - настройка клиентов, которые могут подключаться к серверу, секций Peer может быть несколько.

В данном случае мы настраиваем сервер WireGuard для работы с IPv4 вот, что значат основные параметры:

- Address - адрес сервера в сети VPN;
- ListenPort - порт, на котором будет ожидать подключения WireGuard;
- PrivateKey - приватный ключ сервера, сгенерированный ранее;
- PostUp - команда, которая выполняется после запуска сервера. В данном случае включается поддержка MASQUERADE для интерфейса enp0s8, а также разрешается прием пакетов на интерфейсе wg0. Сетевые интерфейсы вам придется заменить на свои.
- PostDown - выполняется после завершения работы WireGuard, в данном случае удаляет все правила, добавленные в PostUp.

Секции Peer содержат настройки клиентов, которые могут подключится к серверу:

- PublicKey - публичный ключ клиента, сгенерированный ранее;
- AllowedIPs - IP адрес, который может взять клиент. Обратите внимание, маска для IPv4 должна быть 32.

Теперь можно переходить к созданию конфигурационного файла непосредственно для клиента.

Конфигурационный файл клиента Конфигурационный файл клиента будет выглядеть примерно так:

```bash
vi client.conf

```

```plain
[Interface]
PrivateKey = “содержимое файла  client_private.key”
Address = 10.10.10.2DNS = 172.17.1.10
[Peer]
PublicKey = “публичный ключ сервера server_public.key”
Endpoint = “ip адрес вашего инстанса”:62666
AllowedIPs = 0.0.0.0/0

```

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

- PrivateKey - приватный ключ клиента, сгенерированный ранее;
- Address - IP адрес интерфейса wg0 клиента;
- DNS - серверы DNS, которые будут использоваться для разрешения доменных имён;
- PublicKey - публичный ключ сервера, к которому надо подключится.
- Endpoint - здесь надо указать IP адрес сервера, на котором установлен WireGuard и порт;
- AllowedIPs - IP адреса, трафик с которых будет перенаправляться в сеть VPN, в данном примере выбраны все адреса.

#### Запуск сервера

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

```bash
sudo systemctl start wg-quick@wg0

```

С помощью systemd можно настроить автозагрузку интерфейса:

```bash
sudo systemctl enable wg-quick@wg0

```

#### Подключение клиента

Вывести в консоль qr код, для подключения к vpn. Подключаться к ВПН с использованием клиента wireguard с мобильного телефона Для этого в консоли сгенерировать qr код:

```bash
qrencode -t ansiutf8 < client.conf

```

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

### Автоматизация установки wireguard

Для автоматизации установки необходимо создать скрипт, автоматически устанавливающий и запускающий все нужные сервисы. Скрипт – последовательное выполнение действий оболочкой командной строки, без участия оператора. Например, все команды, которые оператор ввёл в командной строке, могут быть записаны в один файл, и при вызове этого файла, они все подряд будут исполняться.

Для того, чтобы создать скрипт автоматизации, необходимо:

1. Создать файл скрипта

```bash
vi script.sh

```

2. Записать в заголовке (самой верхней строке) файла используемый интерпретатор:

```plain
#!/bin/bash

```

3. Записывать все введённые в терминале команды подряд (из части 1)
4. В случае, если необходимо изменить содержимое файла напрямую из командной строки, можно использовать конструкцию

```plain
cat <<EOF >>file.txt
text
EOF

```

Такая конструкция допишет вывод “text” в конец файла file.txt (так как используется &gt;&gt;) При необходимости заменить содержимое файла, необходимо использовать &gt;

```plain
cat <<EOF >file.txt
text
EOF

```

Такая конструкция перезапишет содержимое файла file.txt, и добавит в него только строку text.

Данную схему удобно использовать, при необходимости изменения фалов, например при необходимости дописать содержимое /etc/sysctl.conf

```plain
cat << EOF >>/etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
EOF

```

Так же, при необходимости добавить в файл содержимое какой либо переменной, это можно сделать с помощью указания этой переменной в выводе EOF:

```plain
cat <<EOF > file.txt
$HOSTNAME
EOF

```

Запишет в файл file.txt имя вашего хоста. Чтобы создать переменную, можно в консоли просто указать необходимое ей значение

```bash
myhost=$HOSTNAME

```

создаст переменную myhost и присвоит ей значение переменной $HOSTNAME

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

```bash
ip a | grep 172.17 | awk '{print $2}' | awk -F "/" '{print $1}'

```

Для того, чтобы записать этот адрес в переменную (например, myaddr), можно использовать следующую команду:

```bash
myaddr=$(ip a | grep 172.17 | awk '{print $2}' | awk -F "/" '{print $1}')

```

И проверить результат её исполнения

```bash
echo $myaddr

```

Таким образом в файл можно записывать как текст, так и значения переменных, что необходимо для автоматизации различных процессов 5. Для того, чтобы сделать скрипт исполняемым, необходимо выдать ему права на исполнение командой chmod. 6. На запущенной виртуальной машине необходимо запустить этот скрипт и проверить его исполнение. Запустить скрипт можно указав в командной строке команду на запус в следующем виде:

```bash
# ./«имя скрипта»

```

После того, как скрипт отработал, он должен вывести QR код для подключения к VPN серверу. Проверить правильность работы можно подключившись к VPN серверу.

### Установка wireguard из готового контейнера

Контейнер сам по себе является операционной системой минимального размера, с установленным внутри необходимым программным обеспечением. Контейнеры могут быть преднастроенными, и всё, что необходимо с ними сделать, это установить, передав нужные аргументы. Для работы с контейнерами чаще всего используются docker контейнеры, настроенные на необходимый режим работы путём передачи в них переменных окружения.

Перед установкой Docker нужно выполнить все необходимые настройки системы.

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

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

```bash
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release

```

Далее необходимо скачать ключи доступа к репозиториям (одной командой):

```bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

```

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

```bash
echo   "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

```

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

```bash
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io nftables

```

#### Запуск контейнера

Как только все необходимые приготовления сделаны, необходимо запустить контейнер с нужными параметрами (одной командой):

```bash
sudo docker run -ti -d  --restart=always --network host \
--entrypoint "/wireguard-ui" -v /tmp/wireguard-ui:/data \
--privileged embarkstudios/wireguard-ui:latest  \
--data-dir=/data --wg-listen-port=51820 \
--wg-endpoint="«ip адрес вашего виртуального сервера»:51820" \
--wg-allowed-ips=0.0.0.0/0 --wg-dns="172.17.1.10" \
--wg-device-name="wg0" --listen-address=":80" \
--nat --nat-device="eth0" --client-ip-range="10.0.8.1/24"

```

#### Настройка VPN тоннелей

Как только контейнер запущен, необходимо подключиться к web интерфейсу VPN сервера для того, чтобы добавить клиентов для подключения. Для этого необходимо открыть в браузере адрес: http://«ip адрес вашего виртуального сервера» В открывшемся окне нажать + в правом нижнем углу [![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/j9YKMLslDveN0D6I-image-1655218320829.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/j9YKMLslDveN0D6I-image-1655218320829.png)

В появившемся окне ввести имя клиента и нажать create [![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/SwoVTSIY08MC4Gin-image-1655218366871.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/SwoVTSIY08MC4Gin-image-1655218366871.png)

Клиент для подключения создан, так же создан конфигурационный файл для клиента и QR код, по которому можно скачать содержимое этого конфигурационного файла [![](https://docs.resds.ru/uploads/images/gallery/2022-06/scaled-1680-/4yKegPQKPDHH32ZI-image-1655218396847.png)](https://docs.resds.ru/uploads/images/gallery/2022-06/4yKegPQKPDHH32ZI-image-1655218396847.png)После создания клиента VPN сервер готов к подключениям внешних клиентов, и можно переходить к проверке.