Инструкции по Continent: различия между версиями
Entcor (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
| (не показано 20 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
== | == Общее == | ||
Инструкции для [[Continent]] | |||
== | == Фиксация MAC адресов в PNetLab == | ||
'''ВАЖНО: Подключение флешки, как и другие манипуляции с настройками машин PNetLab и их <u>связями</u>, заново генерируют MAC адреса для сетевых карт. Это приводит к изменению названий сетевых интерфейсов и ломает настройки сети в Continent. Что бы это избежать, необходимо заполнить поле First MAC в настройках каждой виртуальной машины уникальными значениями.''' | |||
[[Файл:First_MAC.png]] | |||
Cоответсвие MAC адресов и названий интерфейсов храняться в файле /etc/udev/rules.d/70-persistent-net.rules ([https://serverfault.com/questions/981952/centos-7-how-to-get-interface-name-by-macaddress/982045#982045 ссылка]) | |||
== Поиск соответствия сетевых интерфейсов в Linux схеме в PNetLab == | |||
Все связи с каждой стороны обозначены как eX. Число X соответствует последнему числу в MAC адресе сетевого интерфейса. | |||
[[Файл:Mac - link.png]] | |||
== Сохранение виртуальных машин в PNetLab == | |||
Виртуальные машины в PNetLab работают в рамках сессии. Если сессия будет по какой-то причине остановлена, то все виртуальные машины будут сброшены до базового состояния. | |||
Что бы этого не произошло состояние виртуальных машин надо периодически сохранять. [https://pnetlab.com/pages/documentation?slug=commit-image-docker-and-qemu Инструкция по сохранению.] | |||
==== Сначал создаем копию виртуальных машин ==== | |||
# Останавливаем машину | |||
# В контекстном меню машины нажимаем Node Commit | |||
# Выбираем Take snapshot .... | |||
# В настройках машины указываем в качестве образа наш snapshot | |||
# В контекстном меню нажимаем Wipe | |||
# Теперь наша машина работают со своим образом, но который основан на базовом образе, т.е. не занимает лишнее место. | |||
==== Сохраняем изменения в собственный образ ==== | |||
# Остановить машину | |||
# В контекстном меню машины нажимаем Node Commit | |||
# Выбираем Commit to original | |||
== Монтирование виртуального диска в хостовую ОС == | |||
=== Предусловия: === | |||
# Установлены пакеты qemu-utils и lvm2 | # Установлены пакеты qemu-utils и lvm2 | ||
Монтирование: | === Монтирование: === | ||
# Загрузить модуль ядра nbd<syntaxhighlight lang="bash"> | # Загрузить модуль ядра nbd<syntaxhighlight lang="bash"> | ||
sudo modprobe nbd max_part=8 | sudo modprobe nbd max_part=8 | ||
| Строка 13: | Строка 45: | ||
insmod /lib/modules/$(uname -r)/kernel/drivers/block/nbd.ko max_part=8 | insmod /lib/modules/$(uname -r)/kernel/drivers/block/nbd.ko max_part=8 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# Отключить виртуальную машину '''(ВАЖНО: виртульную машину можно будет включить только после отключения диска из хостовой ОС!)''' | |||
# Подключить виртуальный диск | # Подключить виртуальный диск | ||
<syntaxhighlight lang="bash" line="1"> | <syntaxhighlight lang="bash" line="1"> | ||
| Строка 18: | Строка 51: | ||
sudo mount /dev/mapper/vg00-lv_root /mnt | sudo mount /dev/mapper/vg00-lv_root /mnt | ||
sudo mount /dev/nbd1p1 /mnt/boot # при необходимости доступа к boot разделу | sudo mount /dev/nbd1p1 /mnt/boot # при необходимости доступа к boot разделу | ||
</syntaxhighlight>Команда lsblk показывает подключенные диски. | </syntaxhighlight>Команда '''lsblk''' показывает подключенные диски. | ||
Если возникнут проблемы монтирования ntfs разделов можно выполнить:<syntaxhighlight lang="bash"> | |||
ntfsfix /dev/nbd1p2 | |||
mount -t ntfs-3g -o remove_hiberfile /dev/nbd1p2 /mnt | |||
</syntaxhighlight>https://unix.stackexchange.com/a/236145 | |||
=== Отключение === | |||
# Отключить диск<syntaxhighlight lang="bash" line="1"> | |||
sudo umount /mnt/boot # если был примонтирован | |||
sudo umount /mnt | |||
sudo vgchange -a n vg00 | |||
sudo qemu-nbd -d /dev/nbd1 | |||
</syntaxhighlight> | |||
# Включить виртуальную машину | |||
# Выгрузить модуль ядра nbd, если в нем больше нет необходимости<syntaxhighlight lang="bash"> | |||
modprobe -r nbd | |||
</syntaxhighlight> | |||
== Монтирование виртуальной флешки в Continent на PNetLab == | |||
=== Предусловия: === | |||
# Установлен пакет qemu-utils | |||
=== Создание виртуальной флешки === | |||
<syntaxhighlight lang="bash" line="1"> | |||
sudo modprobe nbd max_part=8 | |||
#или insmod /lib/modules/$(uname -r)/kernel/drivers/block/nbd.ko max_part=8 | |||
qemu-img create -f raw myflash.img 512M | |||
sudo qemu-nbd -c /dev/nbd2 -f raw ./myflash.img | |||
fdisk /dev/nbd2 | |||
# ввести n | |||
# соглашаться со всеми значениями по-умолчанию | |||
# ввести w | |||
sudo mkfs -t vfat /dev/nbd2p1 | |||
sudo qemu-nbd -d /dev/nbd2 | |||
</syntaxhighlight> | |||
=== Подключение флешки в виртуальную машину с Continent === | |||
'''ВАЖНО: Следующий действия могут сломать виртуальную машину с Continent (см. инструкцию "Фиксация MAC адресов в PNetLab")''' | |||
# ВАЖНО: Убедиться, что флешка не подключена к другой виртуальной машине или хосту! | |||
# В настройки виртуальной машины PNetLab в поле Qemu Options добавить:<syntaxhighlight> | |||
-drive if=none,id=stick,format=raw,file=<ПУТЬ К ФАЙЛУ С ВИРТУАЛЬНОЙ ФЛЕШКОЙ> -device nec-usb-xhci,id=xhci -device usb-storage,bus=xhci.0,drive=stick | |||
</syntaxhighlight>[[Файл:PNetLab_settings.png]]<br /> | |||
3. Перезагрузить Контитент | |||
== Получение root доступа к Continent 4 на виртуальной машине == | |||
# Отключить виртуальную машину с Continent | |||
# Примонтировать виртуальный диск к хостовой машине (см. Монтирование виртуального диска в хостовую ОС) | |||
# Заменить файл /mnt/boot/integrity на программу, которая всегда безусловно возвращает 0.<syntaxhighlight lang="c"> | |||
int main(int argc, char **argv) { | |||
return 0; | |||
} | |||
</syntaxhighlight>[[Медиа:Integrity.txt]] (файл сохранить под именем integrity и дать права на запуск командой chmod +x integrity) | |||
# В файл настроек ограниченной консоли /etc/clish/misc.xml добавить bash. Для примера можно скопировать раздел настроек для команды uptime и заменить uptime на bash. В атрибут help написать Back door. | |||
# Отключить диск, включить виртуальную машину с Continent. Через локальное меню Continent запустить ограниченную консоль (Инструменты - Диагностика - Командная строка) и выполнить команду bash. Получаем полный доступ к Linux под root. | |||
=== Доступ по SSH === | |||
#В /etc/passwd у пользователя admin меняем консоль на /bin/bash | |||
# Включаем ssh доступ, в соответствии с интсрукцией "Руководство администратора. Управление комплексом" | |||
# Заходим на Continent по ssh и вополняем sudo bash | |||
== Перекомпиляция ядра на виртуальной машине Continent == | |||
# Получить root доступ Continent (см. Получение root доступа к Continent 4 на виртуальной машине) | |||
# Примонтировать виртуальный диск к хостовой машине (см. Монтирование виртуального диска в хостовую ОС) | |||
# В виртуальной машине в каталоге /boot по названию файлов определяем базовую версию ядра (например 5.10.210). Cкачиваем исходный код ядра нужной версии https://mirrors.edge.kernel.org/pub/linux/kernel/ . Устанавливаем необходимые для компиляции библиотеки. <syntaxhighlight lang="bash"> | |||
sudo apt update | |||
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev fakeroot | |||
sudo apt install dwarves | |||
</syntaxhighlight> | |||
# Копируем из виртуальной машины в папку с ядром файл /boot/config-XXXX под именем .config. Добавляем/изменяем параметры ядра в конфигурационном файле:<syntaxhighlight lang="text"> | |||
CONFIG_BPF_SYSCALL=y | |||
CONFIG_BPF_UNPRIV_DEFAULT_OFF=y | |||
CONFIG_BPF_JIT_ALWAYS_ON=y | |||
CONFIG_DEBUG_INFO_BTF=y | |||
CONFIG_DEBUG_INFO_REDUCED=y | |||
</syntaxhighlight> | |||
# Компилируем ядро командой make -j<количество параллельных потоков>. -Проверяем успешность компиляции:<syntaxhighlight lang="bash"> | |||
echo $? #должен вернуться 0 в случае отсутсвия ошибок | |||
</syntaxhighlight> | |||
# Устанавливаем новое ядро в Continent <syntaxhighlight lang="bash"> | |||
sudo make INSTALL_MOD_PATH=/mnt modules_install | |||
sudo make INSTALL_PATH=/mnt/boot install | |||
</syntaxhighlight>https://www.nathansweet.me/2017/02/03/build-linux-for-virtualbox | |||
#Добавляем новое ядро в grub В файле /boot/grub/grub.conf дублируем строки загрузки основного ядра, заменяя название старого ядра на новое. | |||
#Увеличиваем раздел /tmp в Continent до 1Гбт Текущего размера раздела tmp не хватает для проведения дальнейший операций, поэтому необходимо сначала уменьшить один из больших разделов, например /var, а затем увеличить раздел /tmp из освобожденного места. Список текущих разделов можно посмотреть командой lsblk https://ostechnix.com/resize-lvm-partitions-linux/ | |||
#Отключаем виртуальный диск, запускаем Continent, заходим в консоль под root | |||
#ОПЦИОНАЛЬНО: ссылаемся в нашем ядре на модули ContinentOS<syntaxhighlight lang="bash"> | |||
cd /lib/modules | |||
mv 5.10.210 _5.10.210 | |||
ln -s 5.10.210-2.continent.x86_64 5.10.210 | |||
</syntaxhighlight> | |||
#Формируем initramfs<syntaxhighlight lang="bash"> | |||
cd /boot | |||
dracut initramfs-<версия ядра>.x86_64.img <версия ядра> | |||
</syntaxhighlight> | |||
#Перезагружаем Continent и выбираем в загрузчике новое ядро. | |||
== Обновление лицензий == | |||
Процесс управления лицензиями описан в документации в томе "Руководство администратора. Управление комплексом.". Документация доступна по [https://www.securitycode.ru/products/kontinent-4/?tab=support ссылке] | |||
Учебные лицензии можно скачать по [https://www.securitycode.ru/download_center/?section=downloads&product=%D0%9A%D0%BE%D0%BD%D1%82%D0%B8%D0%BD%D0%B5%D0%BD%D1%82%204&version=4.1.9 ссылке]. Лицензии имеют небольшой срок действия, но постоянно актуализируются. | |||
Лицензионные файлы необходимо скопировать на компьютер с Менеджером конфигурации (192.168.23.26). Для это можно сначала скопировать файлы на любой компьютер из сети 192.168.23.0/29 доступный по ssh/scp. А затем скопировать на целевую машину при помощи программы WinSCP. | |||
Текущая версия от 06:57, 10 октября 2024
Общее
[править | править код]Инструкции для Continent
Фиксация MAC адресов в PNetLab
[править | править код]ВАЖНО: Подключение флешки, как и другие манипуляции с настройками машин PNetLab и их связями, заново генерируют MAC адреса для сетевых карт. Это приводит к изменению названий сетевых интерфейсов и ломает настройки сети в Continent. Что бы это избежать, необходимо заполнить поле First MAC в настройках каждой виртуальной машины уникальными значениями.
Cоответсвие MAC адресов и названий интерфейсов храняться в файле /etc/udev/rules.d/70-persistent-net.rules (ссылка)
Поиск соответствия сетевых интерфейсов в Linux схеме в PNetLab
[править | править код]Все связи с каждой стороны обозначены как eX. Число X соответствует последнему числу в MAC адресе сетевого интерфейса.
Сохранение виртуальных машин в PNetLab
[править | править код]Виртуальные машины в PNetLab работают в рамках сессии. Если сессия будет по какой-то причине остановлена, то все виртуальные машины будут сброшены до базового состояния.
Что бы этого не произошло состояние виртуальных машин надо периодически сохранять. Инструкция по сохранению.
Сначал создаем копию виртуальных машин
[править | править код]- Останавливаем машину
- В контекстном меню машины нажимаем Node Commit
- Выбираем Take snapshot ....
- В настройках машины указываем в качестве образа наш snapshot
- В контекстном меню нажимаем Wipe
- Теперь наша машина работают со своим образом, но который основан на базовом образе, т.е. не занимает лишнее место.
Сохраняем изменения в собственный образ
[править | править код]- Остановить машину
- В контекстном меню машины нажимаем Node Commit
- Выбираем Commit to original
Монтирование виртуального диска в хостовую ОС
[править | править код]Предусловия:
[править | править код]- Установлены пакеты qemu-utils и lvm2
Монтирование:
[править | править код]- Загрузить модуль ядра nbdВ виртульной машине PNetLab эта команда может вызывать ошибку. Тогда необходимо загрузить модуль командой:
sudo modprobe nbd max_part=8
insmod /lib/modules/$(uname -r)/kernel/drivers/block/nbd.ko max_part=8
- Отключить виртуальную машину (ВАЖНО: виртульную машину можно будет включить только после отключения диска из хостовой ОС!)
- Подключить виртуальный диск
sudo qemu-nbd -c /dev/nbd1 <путь к виртуальному диску vdi или qcow2>
sudo mount /dev/mapper/vg00-lv_root /mnt
sudo mount /dev/nbd1p1 /mnt/boot # при необходимости доступа к boot разделу
Команда lsblk показывает подключенные диски. Если возникнут проблемы монтирования ntfs разделов можно выполнить:
ntfsfix /dev/nbd1p2
mount -t ntfs-3g -o remove_hiberfile /dev/nbd1p2 /mnt
https://unix.stackexchange.com/a/236145
Отключение
[править | править код]- Отключить диск
sudo umount /mnt/boot # если был примонтирован sudo umount /mnt sudo vgchange -a n vg00 sudo qemu-nbd -d /dev/nbd1
- Включить виртуальную машину
- Выгрузить модуль ядра nbd, если в нем больше нет необходимости
modprobe -r nbd
Монтирование виртуальной флешки в Continent на PNetLab
[править | править код]Предусловия:
[править | править код]- Установлен пакет qemu-utils
Создание виртуальной флешки
[править | править код]sudo modprobe nbd max_part=8
#или insmod /lib/modules/$(uname -r)/kernel/drivers/block/nbd.ko max_part=8
qemu-img create -f raw myflash.img 512M
sudo qemu-nbd -c /dev/nbd2 -f raw ./myflash.img
fdisk /dev/nbd2
# ввести n
# соглашаться со всеми значениями по-умолчанию
# ввести w
sudo mkfs -t vfat /dev/nbd2p1
sudo qemu-nbd -d /dev/nbd2
Подключение флешки в виртуальную машину с Continent
[править | править код]ВАЖНО: Следующий действия могут сломать виртуальную машину с Continent (см. инструкцию "Фиксация MAC адресов в PNetLab")
- ВАЖНО: Убедиться, что флешка не подключена к другой виртуальной машине или хосту!
- В настройки виртуальной машины PNetLab в поле Qemu Options добавить:
-drive if=none,id=stick,format=raw,file=<ПУТЬ К ФАЙЛУ С ВИРТУАЛЬНОЙ ФЛЕШКОЙ> -device nec-usb-xhci,id=xhci -device usb-storage,bus=xhci.0,drive=stick

3. Перезагрузить Контитент
Получение root доступа к Continent 4 на виртуальной машине
[править | править код]- Отключить виртуальную машину с Continent
- Примонтировать виртуальный диск к хостовой машине (см. Монтирование виртуального диска в хостовую ОС)
- Заменить файл /mnt/boot/integrity на программу, которая всегда безусловно возвращает 0.Медиа:Integrity.txt (файл сохранить под именем integrity и дать права на запуск командой chmod +x integrity)
int main(int argc, char **argv) { return 0; }
- В файл настроек ограниченной консоли /etc/clish/misc.xml добавить bash. Для примера можно скопировать раздел настроек для команды uptime и заменить uptime на bash. В атрибут help написать Back door.
- Отключить диск, включить виртуальную машину с Continent. Через локальное меню Continent запустить ограниченную консоль (Инструменты - Диагностика - Командная строка) и выполнить команду bash. Получаем полный доступ к Linux под root.
Доступ по SSH
[править | править код]- В /etc/passwd у пользователя admin меняем консоль на /bin/bash
- Включаем ssh доступ, в соответствии с интсрукцией "Руководство администратора. Управление комплексом"
- Заходим на Continent по ssh и вополняем sudo bash
Перекомпиляция ядра на виртуальной машине Continent
[править | править код]- Получить root доступ Continent (см. Получение root доступа к Continent 4 на виртуальной машине)
- Примонтировать виртуальный диск к хостовой машине (см. Монтирование виртуального диска в хостовую ОС)
- В виртуальной машине в каталоге /boot по названию файлов определяем базовую версию ядра (например 5.10.210). Cкачиваем исходный код ядра нужной версии https://mirrors.edge.kernel.org/pub/linux/kernel/ . Устанавливаем необходимые для компиляции библиотеки.
sudo apt update sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev fakeroot sudo apt install dwarves
- Копируем из виртуальной машины в папку с ядром файл /boot/config-XXXX под именем .config. Добавляем/изменяем параметры ядра в конфигурационном файле:
CONFIG_BPF_SYSCALL=y CONFIG_BPF_UNPRIV_DEFAULT_OFF=y CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_DEBUG_INFO_BTF=y CONFIG_DEBUG_INFO_REDUCED=y
- Компилируем ядро командой make -j<количество параллельных потоков>. -Проверяем успешность компиляции:
echo $? #должен вернуться 0 в случае отсутсвия ошибок
- Устанавливаем новое ядро в Continent https://www.nathansweet.me/2017/02/03/build-linux-for-virtualbox
sudo make INSTALL_MOD_PATH=/mnt modules_install sudo make INSTALL_PATH=/mnt/boot install
- Добавляем новое ядро в grub В файле /boot/grub/grub.conf дублируем строки загрузки основного ядра, заменяя название старого ядра на новое.
- Увеличиваем раздел /tmp в Continent до 1Гбт Текущего размера раздела tmp не хватает для проведения дальнейший операций, поэтому необходимо сначала уменьшить один из больших разделов, например /var, а затем увеличить раздел /tmp из освобожденного места. Список текущих разделов можно посмотреть командой lsblk https://ostechnix.com/resize-lvm-partitions-linux/
- Отключаем виртуальный диск, запускаем Continent, заходим в консоль под root
- ОПЦИОНАЛЬНО: ссылаемся в нашем ядре на модули ContinentOS
cd /lib/modules mv 5.10.210 _5.10.210 ln -s 5.10.210-2.continent.x86_64 5.10.210
- Формируем initramfs
cd /boot dracut initramfs-<версия ядра>.x86_64.img <версия ядра>
- Перезагружаем Continent и выбираем в загрузчике новое ядро.
Обновление лицензий
[править | править код]Процесс управления лицензиями описан в документации в томе "Руководство администратора. Управление комплексом.". Документация доступна по ссылке
Учебные лицензии можно скачать по ссылке. Лицензии имеют небольшой срок действия, но постоянно актуализируются.
Лицензионные файлы необходимо скопировать на компьютер с Менеджером конфигурации (192.168.23.26). Для это можно сначала скопировать файлы на любой компьютер из сети 192.168.23.0/29 доступный по ssh/scp. А затем скопировать на целевую машину при помощи программы WinSCP.

