Лабораторная 4. Сетевая загрузка Цель: Получение навыков по работе с сетевой загрузкой операционной системы Задачи: Подключится к виртуальной машине на облачной платформе СПбГУТ Подготовить образ операционной системы Ubuntu Скомпилировать загрузчик IPXE Настроить dnsmasq Снять дамп трафика во время установки ОС по сети Установить операционную систему, с помощью сетевой загрузки Задание 1. Подготовка образа В первую очередь необходимо скачать минимальный образ Ubuntu 20.04 Server на виртуальный сервер cp /var/lib/cloud/s3cfg .s3cfg s3cmd get s3://lab5/ubuntu-20.04-server.iso ~/ После этого необходимо смонтировать образ в папку /mnt/ sudo mount ubuntu-20.04-server.iso /mnt/ Создайте папку, где в дальнейшем мы разместим образ ubuntu sudo mkdir /var/www/deploy/ubuntu Скопируйте все файлы из папки /mnt/ в папку /var/www/deploy/ubuntu sudo cp -Rf /mnt/* /var/www/deploy/ubuntu Также необходимо перенести и сам образ Ubuntu в папку /var/www/deploy/ubuntu sudo cp ubuntu-20.04-server.iso /var/www/deploy/ubuntu Измените владельца директории и его все его содержимого на Apache sudo chown -R apache:apache /var/www/deploy Задание 2. Подготовка загрузчика IPXE IPXE - это свободная реализация программного обеспечения для начальной загрузки по сети. В первую очередь устанавливаем все необходимые пакеты для скачивания и сборки пакета sudo yum install git-core gcc binutils make perl syslinux xz-devel Перейдите в домашнюю директорию cd ~ Скопируете репозиторий ipxe c копии официального git репозитория git clone https://gitlab.resds.ru/tarabanov.if/ipxe.git Ничего изменять в комманде не нужно Перейти в директорию репозитория и перейти на ветку версии 1.21.1 cd ipxe git checkout v1.21.1 Перейдите в директорию с исходным кодом cd src/ Включаем поддержку сетевого хранилища sed -i 's/#undef\tDOWNLOAD_PROTO_NFS/#define\tDOWNLOAD_PROTO_NFS/' config/general.h выполнять внимательно Также нам необходим добавить поддержку команды Ping 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 vi embed.ipxe Заполните скрипт такой конфигураций #!ipxe dhcp chain http://${next-server}/boot.ipxe || shell Не допускается пустая строка сверху Скомпилируйте образ загрузчика IPXE make bin-x86_64-efi/ipxe.efi EMBED=embed.ipxe Скопируйте, скомпилированный загрузчик в папку /var/lib/tftpboot/ 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 sudo yum install dnsmasq Запустите демон dnsmasq sudo systemctl start dnsmasq Добавьте в автозагрузку sudo systemctl enable dnsmasq Измените конфигурацию dnsmasq /etc/dnsmasq.conf 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 sudo systemctl restart dnsmasq Для проверки состояния можно воспользоваться командой sudo systemctl status dnsmasq Отключите фаервол sudo systemctl stop firewalld sudo systemctl disable firewalld sudo systemctl mask firewalld Задание 4. Снятие трафика Во время установки операционной системы будет необходимо снять трафик, который идет при взаимодействии labnode1 и labnode2 , самый простой способ записи в файл это sudo tcpdump -i eth0 -w dump.pcap Задание 5. Развертывания Ubuntu Для дальнейшей работы нам необходим на виртуальной машине labnode2 Перед вами после перехода в консоль появится UEFI shell в нем необходимо вписать команду exit После этого в меню вам необходимо выбрать Boot Manager, после этого выбрать вариант загрузки в виде UEFI PXEv4 , дальше будет происходить получения ранее созданного ipxe В меню загрузчика необходимо выбрать образ ubuntu, после нажатия Enter , будет загружен live образ Ubuntu с помощью которого в дальнейшем мы будем производить установку системы. На самом деле перед вами установочное меню операционной системы ubuntu 20 в серверном исполнении, и возможностью установки различных сервисов. В данной работе установка подразумевает под собой установку параметров в режиме по умолчанию. Для навигации по установочному меню используются кнопки клавиатуры: вверх-вниз – для перемещения фокуса выделения по пунктам меню, enter – для нажатия на необходимый пункт, пробел – для выбора пунктов в меню со списком выбора, Tab – для переключения между группами пунктов выбора. В первом пункте по умолчанию выбран язык English – лучше его изменить на русский, для избегания проблем с локализацией. Для этого переместить фокус выделения на русский язык и нажать – enter . В следующем пункте выберете вариант продолжения установки без обновления загрузчика В следующем меню оставить английскую раскладку клавиатуры и нажать готово В следующем меню – сетевые соединения – оставить все параметры по умолчанию и нажать готово Меню ввода адреса прокси сервера оставить пустым и нажать – готово В меню выбора зеркала для скачивания архивов ничего не менять и нажать готово В меню настройки дисковых устройств выбрать пункт автоматической разметки диска, и если он и выбран – нажать готово Когда вы убедитесь, что все сделали правильно нажмите «Готово» В следующем меню заполнить все поля имени пользователя и пароля, в качестве имени пользователя и пароля можно использовать: labuser labpass1! В новом меню включите установку сервера OpenSSH и нажмите готово В следующем меню, сразу нажмите готов Дождитесь установки операционной системы и с помощью нажатия Cancel update and reboot , произойдет перезагрузка системы, введите свой логин и пароль установленный в прошлых пунктах и попробуйте проверить работу сети с помощью команды ping 192.168.0.10 Задание 6. Анализ трафика закончите снятие трафика перенесите дамп на аудиторный пк Ответьте на вопросы: Какие протоколы использовались во время установки ОС? Как выглядит сценарий взаимодействия при сетевой загрузки? За что отвечает dnsmasq? Что такое IPXE? Показать сценарий взаимодействия загрузки