# **Переход с UserGate 5 на Usergate 6 с сохранением конфигурации**
###### tags: `UserGate` `Linux` `NGFW`
## **DISCLAIMER:**
:::info
**:bulb: ИНФОРМАЦИЯ
Я не являюсь сотрудником UserGate, инструкцию писал для себя и для своих коллег.
При проблемах в переходе обращайтесь в техническую поддержку UserGate**
:::
## **Информация от техподдержки UserGate**
:::danger
**:pushpin: ВНИМАНИЕ
Прямое обновление с 5-ой на 6-ю версию невозможно.
Установка 6-ой версии это заливка новой системы целиком. Соответственно, все настройки нужно будет делать заново.**
:::
Вернуться на версию 5 можно, если сделать Full Backup на флэшку через загрузочное меню - Support menu. Так же желательно сделать экспорт конфигурации из веб-консоли.
Установка версии 6 на аппаратную платформу:
Версию для аппаратной платформы можно скачать по ссылке:
http://static.usergate.com/software/ugutm/6/hdd/utm6-hdd.bz2
http://static.usergate.com/software/ugutm/6/hdd/utm6-hdd.bz2.md5
### **Есть два варианта перехода:**
1) Для создания конфигурации для 6-й версии можете предварительно развернуть UTM в виртуальной среде - на ней сделать конфигурацию, потом перенести на аппаратную через веб-интерфейс.
2) Воспользоваться утилитой:
https://github.com/ran1024/UserGate-utilities/tree/main/ug_convert_config
но там есть нюансы с версией 5-ки, на которой весь функционал работает. Чтобы весь функционал работал, необходимо применить микро-апдейт.
Если у вас UTM развёрнут на виртуальной машине, то процесс перехода будет несколько проще.
:::warning
:warning: **ВАЖНО:
НЕЛЬЗЯ перенести конфигурацию с версии 5 на версию 6 штатными средствами (через экспорт/импорт конфигурации) Получите кирпич. Переносить надо руками, набив всё заново.**
:::
**МЫ ВОСПОЛЬЗУЕМСЯ ВАРИАНТОМ №2**
---
## ==**ПРИСТУПАЕМ К ПЕРЕХОДУ**==
:::info
**:bulb: ИНФОРМАЦИЯ**
- Основная работа проводится на linux системе, её необходимо подготовить заранее.
Мы будем использовать для этого Rocky Linux v8.4. (аналог CentOS)
- Можно попробовать выполнить перенос на Windows системе, однако для запуска скрипта будет необходим Python3 (этот метод не проверял)
:::
### **Развёртываем UserGate6 на виртуальной машине**
Скачиваем образ с сайта UserGate https://my.usergate.com/account#!/downloads

:::info
**:bulb: ИНФОРМАЦИЯ**
**После скачивания не забываем проверять хэш сумму файла.**
:::
Создаём новую виртуальную машину. Можно использовать любой гипервизор, например встроенный в Windows10 Hyper-V. Но мы будем использовать гипервизор на базе ESXi 6

Выбираем пункт "Deploy a virtual machine from an OVF or OVA file"

Переносим файлы из проводника в окно гипервизора

Далее, далее, далее...
Готово
:::warning
**:warning: ВАЖНО
НЕЛЬЗЯ ОБНОВЛЯТЬ ОКНО БРАУЗЕРА ПОКА НЕ РАЗВЕРНЁТСЯ ОБРАЗ**
:::
### **Подготавливаем к работе Linux систему**
Пока виртуалка с UserGate6 разворачивается подключаемся по SSH к Rocky Linux, обновляем ОС, устанавливаем Git и Python3
(Данный этап подразумевает что пользователь под которым вы будете работать есть в группе "SUDO", если нет, его следует в неё добавить)
```
sudo yum update -y
sudo yum install git && sudo yum install python3
```
Копируем из GitHub-а утилиты UserGate
```
cd ~/
sudo git clone https://github.com/ran1024/UserGate-utilities
```
Переходим в директорию программы и распаковываем архив
```
cd ./UserGate-utilities/ug_convert_config/
sudo gzip -r -d ./ug_convert_config.zip ./
```
### **Подготовка UTM к переносу конфигураций**
Теперь для того чтобы скрипт *UserGate Config Converter* мог работать с нашей UTM системой необходимо провести преднастройку UTM.
Для этого нужно включить **"XML-RPC для управления"** в настройках зоны внутри которой расположена ваша Linux система. Для этого нужно перейти по ссылке
```
https://<usergate_ip>:8001/?features=zone-xml-rpc
```
где вместо *<usergateip>* IP адрес ноды UserGate. Настройка должна быть доступна на обеих UserGate как вашей рабочей так и на виртуальной машине.

### **Процедура переноса конфигураций**
Запускаем на нашей Linux системе файл скрипта
```
sudo ./ug_convert_config.py
```
Видим в консоли окно авторизации и вводим IP адрес системы с которой переносим конфигурацию + логин пароль.

Выбираем пункт 1 и жмём Enter

Выбираем пункт Выбрать всё, т.е. вводим 99 и жмём Enter

Ждём надписи "экспорт завершён" 
и смотрим в логах выше что не скопировалось
:::info
**:bulb: ИНФОРМАЦИЯ**
- Вся конфигурация хранится в директории
`~/UserGate-utilities/ug_convert_config/data`
- При выполнении скрипта будет показано какие настройки сохраняться а какие нет
:::
В случае появления ошибок нужно их изучить

Если после появления ошибки копирование завершилось на каком то из пунктов необходимо в ручном режиме экспортировать каждый пункт отдельно.
:::info
**:bulb: ИНФОРМАЦИЯ**
В моём случае, например, конфигурации Firewall не экспортировались пока не были удалены из правил доменные учётные записи пользователей или как в примере выше из-за не подходящей версии UTM
:::
Для импорта сохранённой конфигурации на UTM6 нужно проделать всё тоже самое но введя IP адрес\логин\пароль при авторизации от UTM6 + в пункте выбора "Экспорт\Импорт" выбрать **"Импорт"**
:::warning
:warning: **ВАЖНО:
После успешного импорта конфигурации необходимо обязательно убедиться что конфигурации на UTM5 и UTM6 идентичны. В случае расхождений добиваем конфигурации руками чтобы было 100% соответствие**
:::
### **Экспорт настроек**
Сохраняем файл конфигураций в виде документа на выходе будет такой файл


## ==**ПОДГОТОВКА USB НАКОПИТЕЛЯ И УСТАНОВКА НОВОЙ ВЕРСИИ**==
Далее подготавливаем USB накопитель для обновления по данной инструкции.
В отличии от Rufus'a указанного в инструкции для записи на USB любых Linux систем рекомендую использовать Balena Etcher
:::info
https://www.balena.io/etcher/
:::
<br>
<a href=https://drive.google.com/file/d/1K0KSqckTZoweGKexTyc2SpOj97-8Ytwk/view?usp=sharing
class="back">СКАЧАТЬ ИНСТРУКЦИЮ PDF</a>
<br/>
## ==**Импорт настроек в новую систему**==
Далее необходимо авторизоваться со стандартным логином и паролем (Admin\utm) на обновлённом UTM
и импортировать сохранённые ранее настройки.
После импорта система попросит перезагрузку

:::success
### :heavy_check_mark: **Готово**
Поздравляем, вы успешно перешли на UserGate v6
:::
<style>
.button {
border-radius: 14px;
color: rgb(0, 41, 123);
display:block;
text-align: center;
font-family: Arial, Helvetica, sans-serif;
font-size: 100%;
padding: 10px 25px;
margin-top: 1%;
margin-left: 1%;
text-decoration: none;
background-color: rgb( 213, 233, 255);
border: none;
display:inline-block;
}
a.back{
border-radius: 4px;
color: black;
display:block;
width:200px;
text-align: center;
font-weight:bold;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
padding: 8px 10px;
margin: left;
margin-top: 5px;
margin-bottom: 20px;
text-decoration: none;
background-color: rgb(255,237,55);
}
</style>
```
```
:::success
:alien: Системный администратор
### Паламарчук Антон
:e-mail: Email: mrpalamarchuk93@gmail.com
:airplane: Telegram Channel [@ipraptor_blog](https://t.me/ipraptor_blog)
:incoming_envelope: Telegram [@IPraptor](https://t.me/IPraptor)
:::
<a href="https://hackmd.io/@IPraptor
" class="back">К списку заметок</a>