November 9, 2021

Добавляем образы в EVE-NG на Google Cloud

Чтоб работать с устройствами в EVE-NG, надо добавить образы этих устройств. Теоретически там ничего сложного, только вот с цисками надо немного повозиться, сейчас покажу как это делается практически.

Откуда брать образы

Образы можно легко нагуглить, либо скачать с официальных сайтов. Вот те, с которыми мы будем работать (zip разархивировать):

В примере я использую образ микротика, который отмечен на картинке и образ линукс linux-ubuntu-desktop-16.04.4.tar.gz.

Закидываем файлы

Закинуть файлы в Еву можно по FTP, это даже будет удобнее, для этого надо разобраться, как подключиться в виртуальной машинке через FTP-клиент. Я так и сделал, но тут расскажу про способ, не предполагающий дополнительных знаний.

Заходим по SSH в консоль Евы.

Образы хранятся в папке /opt/unetlab/addons/, туда и будем добавлять. Сперва надо загрузить их в саму машинку. Нажимаем на шестерёнку, выбираем пункт Upload file, выбираем образ на компьютере, он загружается в отдельную папку.

Папка, в которой появится файл будет указана после загрузки файла.

Вот тут папка /home/davidkis113_gmail_com

Теперь файл из это папки надо переместить в нашу папку с образами. Переходим туда, где сейчас лежит файл: cd /home/davidkis113_gmail_com. Теперь надо перенести образ в нужную папку.

Для микротика:

Создаём папку в соответствии с версией образа командой.

sudo mkdir /opt/unetlab/addons/qemu/mikrotik-6.49/

Выполняем команду для переноса и изменения имени и расширения файла:

sudo mv НАЗВАНИЕ_ФАЙЛА /opt/unetlab/addons/qemu/mikrotik-6.49/hda.qcow2

Для линукса:

В папке, где находится файл cd /home/davidkis113_gmail_com:

sudo mv НАЗВАНИЕ_ФАЙЛА /opt/unetlab/addons/qemu/НАЗВАНИЕ_ФАЙЛА
cd /opt/unetlab/addons/qemu
sudo tar xzvf НАЗВАНИЕ_ФАЙЛА
rm -f НАЗВАНИЕ_ФАЙЛА

Первая команда для переноса файла, вторая для перехода в ту папку, где теперь лежит файл, третья для разархивирования, четвёртая, чтоб удалить архив.

У меня в примере название файла linux-ubuntu-desktop-16.04.4.tar.gz.

Общая часть:

Выполняем команду /opt/unetlab/wrappers/unl_wrapper -a fixpermissions, чтоб Ева увидела образ. Теперь образ должен отобразиться в списке в лабораторной работе. Если не отобразился обновляем страницу или перезагружаем машинку.

Но с образами Cisco IOL не так просто

Образы Cisco IOL находятся в папке /opt/unetlab/addons/iol/bin. Но просто так они работать не будут, нужна лицензия. Это несложно:

  • Переносим образы по одному в папку так же командой mv но в другую папку: sudo mv НАЗВАНИЕ_ФАЙЛА /opt/unetlab/addons/iol/bin/НАЗВАНИЕ_ФАЙЛА.
  • После переноса всех образов выполняем команду /opt/unetlab/wrappers/unl_wrapper -a fixpermissions – чтоб Ева заметила образы.
  • Создаём файл script.py в той же директории, где лежат образы, – название не принципиально – командой sudo nano script.py и записываем в него код, сохраняем как обычно Ctrl + o, Enter, Ctrl + x:
#! /usr/bin/python
print "\n*********************************************************************"
print "Cisco IOU License Generator - Kal 2011, python port of 2006 C version"
import os
import socket
import hashlib
import struct
# get the host id and host name to calculate the hostkey
hostid=os.popen("hostid").read().strip()
hostname = socket.gethostname()
ioukey=int(hostid,16)
for x in hostname:
 ioukey = ioukey + ord(x)
print "hostid=" + hostid +", hostname="+ hostname + ", ioukey=" + hex(ioukey)[2:]
# create the license using md5sum
iouPad1='\x4B\x58\x21\x81\x56\x7B\x0D\xF3\x21\x43\x9B\x7E\xAC\x1D\xE6\x8A'
iouPad2='\x80' + 39*'\0'
md5input=iouPad1 + iouPad2 + struct.pack('!L', ioukey) + iouPad1
iouLicense=hashlib.md5(md5input).hexdigest()[:16]
# add license info to $HOME/.iourc
print "\n*********************************************************************"
print "Create the license file $HOME/.iourc with this command:"
print " echo -e '[license]\\n" + hostname + " = " + iouLicense + ";'" + " | tee $HOME/.iourc "
print "\nThe command adds the following text to $HOME/.iourc:"
print "[license]\n" + hostname + " = " + iouLicense + ";"
# disable phone home feature
print "\n*********************************************************************"
print "Disable the phone home feature with this command:"
print " grep -q -F '127.0.0.1 xml.cisco.com' /etc/hosts || echo '127.0.0.1 xml.cisco.com' | sudo tee -a /etc/hosts"
print "\nThe command adds the following text to /etc/hosts:"
print "127.0.0.1 xml.cisco.com"
print "\n*********************************************************************"
  • Запускаем скрипт командой python script.py, увидим следующие две строки в выводе:
[license]
название-машинки = НАБОР_ЦИФР_И_БУКВ;
  • Копируем эти две строки, создаём файл iourc снова в той же директории с образами командой sudo nano iourc, записываем в него эти две строчки – они будут разными у каждого – и сохраняем как обычно.

Теперь образы цисок должны отображаться в Еве и работать. Если что – как всегда перезагрузка.

Для остальных образов процедура почти та же, нюансы гуглятся.