Инструкции по Continent: различия между версиями

Материал из EWiki
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 98: Строка 98:
-drive if=none,id=stick,format=raw,file=<ПУТЬ К ФАЙЛУ С ВИРТУАЛЬНОЙ ФЛЕШКОЙ> -device nec-usb-xhci,id=xhci -device usb-storage,bus=xhci.0,drive=stick
-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|слева]]
</syntaxhighlight>[[Файл:PNetLab settings.png|слева]]
# Перезагрузить Continent
 
 
 
 
 
 
 
 
 
 
 
 
3. Перезагрузить Контитент


== Получение root доступа к Continent 4 на виртуальной машине ==
== Получение root доступа к Continent 4 на виртуальной машине ==

Версия от 04:34, 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 работают в рамках сессии. Если сессия будет по какой-то причине остановлена, то все виртуальные машины будут сброшены до базового состояния.

Что бы этого не произошло состояние виртуальных машин надо периодически сохранять. Инструкция по сохранению.

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

  1. Останавливаем машину
  2. В контекстном меню машины нажимаем Node Commit
  3. Выбираем Take snapshot ....
  4. В настройках машины указываем в качестве образа наш snapshot
  5. В контекстном меню нажимаем Wipe
  6. Теперь наша машина работают со своим образом, но который основан на базовом образе, т.е. не занимает лишнее место.

Сохраняем изменения в собственный образ

  1. Остановить машину
  2. В контекстном меню машины нажимаем Node Commit
  3. Выбираем Commit to original

Монтирование виртуального диска в хостовую ОС

Предусловия:

  1. Установлены пакеты qemu-utils и lvm2

Монтирование:

  1. Загрузить модуль ядра nbd
    sudo modprobe nbd max_part=8
    
    В виртульной машине PNetLab эта команда может вызывать ошибку. Тогда необходимо загрузить модуль командой:
    insmod /lib/modules/$(uname -r)/kernel/drivers/block/nbd.ko max_part=8
    
  2. Отключить виртуальную машину (ВАЖНО: виртульную машину можно будет включить только после отключения диска из хостовой ОС!)
  3. Подключить виртуальный диск
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

Отключение

  1. Отключить диск
    sudo umount /mnt/boot # если был примонтирован
    sudo umount /mnt
    sudo vgchange -a n vg00
    sudo qemu-nbd -d /dev/nbd1
    
  2. Включить виртуальную машину
  3. Выгрузить модуль ядра nbd, если в нем больше нет необходимости
    modprobe -r nbd
    

Монтирование виртуальной флешки в Continent на PNetLab

Предусловия:

  1. Установлен пакет 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")

  1. ВАЖНО: Убедиться, что флешка не подключена к другой виртуальной машине или хосту!
  2. В настройки виртуальной машины 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 на виртуальной машине

  1. Отключить виртуальную машину с Continent
  2. Примонтировать виртуальный диск к хостовой машине (см. Монтирование виртуального диска в хостовую ОС)
  3. Заменить файл /mnt/boot/integrity на программу, которая всегда безусловно возвращает 0.
    int main(int argc, char **argv) {
       return 0;
    }
    
    Медиа:Integrity.txt (файл сохранить под именем integrity и дать права на запуск командой chmod +x integrity)
  4. В файл настроек ограниченной консоли /etc/clish/misc.xml добавить bash. Для примера можно скопировать раздел настроек для команды uptime и заменить uptime на bash. В атрибут help написать Back door.
  5. Отключить диск, включить виртуальную машину с Continent. Через локальное меню Continent запустить ограниченную консоль (Инструменты - Диагностика - Командная строка) и выполнить команду bash. Получаем полный доступ к Linux под root.

Доступ по SSH

  1. В /etc/passwd у пользователя admin меняем консоль на /bin/bash
  2. Включаем ssh доступ, в соответствии с интсрукцией "Руководство администратора. Управление комплексом"
  3. Заходим на Continent по ssh и вополняем sudo bash

Перекомпиляция ядра на виртуальной машине Continent

  1. Получить root доступ Continent (см. Получение root доступа к Continent 4 на виртуальной машине)
  2. Примонтировать виртуальный диск к хостовой машине (см. Монтирование виртуального диска в хостовую ОС)
  3. В виртуальной машине в каталоге /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
    
  4. Копируем из виртуальной машины в папку с ядром файл /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
    
  5. Компилируем ядро командой make -j<количество параллельных потоков>. -Проверяем успешность компиляции:
    echo $? #должен вернуться 0 в случае отсутсвия ошибок
    
  6. Устанавливаем новое ядро в Continent
    sudo make INSTALL_MOD_PATH=/mnt modules_install
    sudo make INSTALL_PATH=/mnt/boot install
    
    https://www.nathansweet.me/2017/02/03/build-linux-for-virtualbox
  7. Добавляем новое ядро в grub В файле /boot/grub/grub.conf дублируем строки загрузки основного ядра, заменяя название старого ядра на новое.
  8. Увеличиваем раздел /tmp в Continent до 1Гбт Текущего размера раздела tmp не хватает для проведения дальнейший операций, поэтому необходимо сначала уменьшить один из больших разделов, например /var, а затем увеличить раздел /tmp из освобожденного места. Список текущих разделов можно посмотреть командой lsblk https://ostechnix.com/resize-lvm-partitions-linux/
  9. Отключаем виртуальный диск, запускаем Continent, заходим в консоль под root
  10. ОПЦИОНАЛЬНО: ссылаемся в нашем ядре на модули ContinentOS
    cd /lib/modules
    mv 5.10.210 _5.10.210
    ln -s 5.10.210-2.continent.x86_64 5.10.210
    
  11. Формируем initramfs
    cd /boot
    dracut initramfs-<версия ядра>.x86_64.img <версия ядра>
    
  12. Перезагружаем Continent и выбираем в загрузчике новое ядро.

Обновление лицензий

Процесс управления лицензиями описан в документации в томе "Руководство администратора. Управление комплексом.". Документация доступна по ссылке

Учебные лицензии можно скачать по ссылке. Лицензии имеют небольшой срок действия, но постоянно актуализируются.

Лицензионные файлы необходимо скопировать на компьютер с Менеджером конфигурации (192.168.23.26). Для это можно сначала скопировать файлы на любой компьютер из сети 192.168.23.0/29 доступный по ssh/scp. А затем скопировать на целевую машину при помощи программы WinSCP.