- Eve ng linux images
- About
- Установка и использование виртуальной сетевой лаборатории EVE-NG совместно с Ansible. Первый опыт
- Установка EVE-NG
- Подготовка хоста
- Подключение образов сетевых устройств
- Настройка окружения
- Доступ к консоли маршрутизаторов
- Запуск сниффера трафика
- Настройка инстанса сервера ansible
- Настройка telnet-сервера
- Сбор топологии
- Развёртывание подсистемы аnsible
- Настройка CSR для работы с ansible
- Создание первого воркбука
- Создание второго воркбука
- Linux images
- How to create own custom Linux host for EVE:
- Watch how to VIDEO. It very similar process like for Windows. Just follow steps below.
Eve ng linux images
EVE-NG Integration
This repo contains the equivalent of EVE-NG (aka UNetLab) Windows Client Side Pack for Ubuntu/Debian and other Linux distros.
Currently supports the following URL schemes:
Includes a script to work with .rdp files that are generated by EVE-NG.
Ubuntu and derivatives
You can install eve-ng-integration from the official PPA:
or download .deb packages from here.
Alternatively, you can install eve-ng-integration from terminal using the following command:
This method works on most Linux distros. Tested on Arch Linux, Manjaro, Fedora, openSUSE, CentOS, and potentially works with other systems.
If your Linux distribution is not supported yet, don’t give up, try Manual install or open a new issue.
Packages in this section are not part of the official repositories. If you have a problem or a question, please contact the package maintainer.
Distro | Maintainer | Package |
---|---|---|
Arch Linux | Aleksandr Boiko | eve-ng-integration-git AUR |
Arch Linux | Konstantin Shalygin | eve-ng-integration AUR |
NOTE: If you are a maintainer and want to be in the list, please create an issue or make a pull request.
or download and extract the tarball
- Install dependencies
- python >= 2.7 (required)
- telnet (required)
- wireshark (recommended)
- ssh-askpass (recommended)
- vinagre (recommended)
- docker-engine (optional)
- Enjoy!
Error Couldn’t run /usr/bin/dumpcap in child process: Permission denied when starting Wireshark
Add your user to wireshark group:
If you use a Debian-like distro, you can run the next command and choose answer as Yes :
You will need to log out and then log back in again for this change to take effect.
Error End of file on pipe magic during open when starting Wireshark
Install ssh-askpass package for your distro, or setup SSH key-based authentication with EVE-NG (UNetLab) machine.
Click on a node does not open an app (opens another app) in all browsers
Execute the following commands to set the eve-ng-integration.desktop as default handler for telnet, capture, and docker URL schemes:
Does not work in Google Chrome but works in another browser
Quit Chrome and reset protocol handler with the command:
NOTE: Path to the Preferences file will be different for Chromium and other Chromium-based browsers.
Does not work in Firefox but works in another browser
Go to Preferences → Applications (or paste about:preferences#applications in your address bar) and change Action to Always ask for telnet, capture and docker Content Types.
Firefox says The address wasn’t understood when you clicked on a node
- Type about:config into the Location Bar (address bar) and press Enter.
- Right-click → New → Boolean → Name: network.protocol-handler.expose.telnet → Value → false (Repeat this for each supported protocol)
- Next time you click a link of protocol-type foo you will be asked which application to open it with.
Chrome/Chromium downloads RDP files instead of opening
To make RDP file open on your browser, instead of downloading, you have to download the file type once, then right after that download, look at the status bar at the bottom of the browser. Click the arrow next to that file and choose «Always open files of this type». Done.
If your problem hasn’t been solved or reported, please open a new issue.
English, Russian, and Ukrainian are welcomed.
About
integrates EVE-NG (aka UNetLab) with Linux desktop
Источник
Установка и использование виртуальной сетевой лаборатории EVE-NG совместно с Ansible. Первый опыт
В данной статье приведен опыт инженера-сетевика по развертыванию виртуальной лаборатории EVE-NG в домашних условиях, для целей подготовки к экспертным экзаменам Cisco.
Я постарался собрать все основные вехи настройки, разбросанные по статьям в интернете и попытался добавить в топологию, попутно изучая, ansible — систему управления конфигурациями. Черновик статьи появился случайно, поскольку мне стало жаль терять накопленный опыт и решил сохранять его в отдельный файл. Вот его я и представляю на ваш суд.
Все решения, приведенные в статье, не претендуют на оптимальность, но абсолютно точно работают.
Установка EVE-NG
Подготовка хоста
В качестве хостовой я использую следующую систему: Intel Xeon X3240, 32Gb RAM под управлением Gentoo. Настройка KVM на Gentoo дело достаточно тривиальное и, по правде сказать, я не помню с какими подводными камнями мне пришлось столкнуться при её развертывании. Дело было давно.
Основное, что катастрофически сказывается на производительности лабораторного стенда типа EVE-NG, — это параметр ядра, который запускает возможность использования nested virtualization (вложенную виртуальзацию).
Для процессоров Intel:
Подробнее можно прочесть по ссылке.
Подключение образов сетевых устройств
Образы сетевых устройств для подключения находятся в свободном доступе на самом cisco.com, для скачивания достаточно иметь учётную запись начального уровня. Нам понадобятся XRv и CSR.
Скачиваем по указанными ссылкам и следуем рекомендациям в how-to.
Проблема, с которой я столкнулся при добавлении образов — как называть директории, куда нужно складывать файлы hda.qcow2. Решение, как всегда, — реверс-инжиниринг. Список заголовков, обрабатываемых EVE-NG зашит в файле:
Приведу его здесь:
То есть, если нам необходимо добавить образ с любым Linux, как мы будем делать ниже, то достаточно создать директорию /opt/unetlab/addons/qemu/linux-что-то-там/ и положить в неё файл образа hda.qcow2.
Настройка окружения
Под окружением будем понимать всё, что делает нашу жизнь удобнее.
Доступ к консоли маршрутизаторов
Несмотря на то, что в EVE-NG разработчики внедрили возможность доступа к консолям сетевых устройств по web с использованием HTML5, доступ со сторонних клиентов удобнее и привычнее. Основное удобство, которое предоставляется putty в моём случае, — это возможность использования буфера обмена. Не работает copy/paste в web-консоли.
Итак, процесс выглядит следующим образом:
Установка putty на машине, откуда будет осуществляться доступ. Я работаю на ПК c ubuntu, поэтому:
Но этого мало, нужно еще рассказать браузеру, в моём случае это chrome, как реагировать на ссылки вида telnet://. Для этого необходимо создать файл
/.local/share/applications/telnet.desktop следующего содержания:
После этого консоли будут отлично открываться в putty. Задачу перехода на gnome-terminal с вкладками или его аналог оставлю на потом.
Запуск сниффера трафика
Wireshark — насущная необходимость при изучении сетевых технологий. Очень много написано про его использование. Не стану повторяться. Опишу процесс его настройки.
Установка на клиенте:
Но снова браузер не понимает как обработать ссылку capture://
Объяснять ему это придется в три этапа:
Этап 1:
Как и в случае с консолями, файл
Этап 2:
Обработчик в виде скрипта на bash на клиентской машине в любой директории из списка PATH:
Этап 3:
Ключевой ssh-доступ между клиентской машиной и EVE-NG.
На клиентской машине (вместо ip_eve поставить адрес EVE-NG):
После этого будет работать захват трафика в wireshark на стороне клиента. Что нам и требовалось.
На этом непритязательный пользователь может остановиться, но нет предела совершенству и мы продолжаем.
Настройка инстанса сервера ansible
Необходимость ansible для виртуальных лабораторных топологий в начале пути была для меня неочевидна. Но со временем, на втором десятке лабораторных часов, приходит мысль — а не автоматизировать ли загрузку стартовых топологий в устройства, не перегружая их, тем самым экономя время?
Итак, с чего начать? С ограничений ansible! Да, они действительно есть. Для меня, как достаточно далекого от программирования, слишком жестоким оказалось предложение на одном из форумов — дописать обработчик телнета самому. Телнет нужен был для решения в лоб — настроить ansible на виртуальной машине EVE-NG и телнетится на консольные порты виртуальных маршрутизаторов. Но не тут-то было — работает только ssh.
Но мы старые инженеры и не привыкли отступать! Если гора не идёт к Магомету, то двинем мы к ней — настроим отдельный инстанс с ububtu в самой топологии, благо для этого есть возможность.
Как разворачивать в KVM образ скаченный с ubuntu.com я приводить не буду. Делал я это на отдельной машине, настраивал и заливал в EVE-NG. После установки нам понадобятся пакеты с telnet-сервером и настройка статического IP-адреса.
Настройка telnet-сервера
У меня не вышло заставить EVE-NG показать мне консоль сервера стандартным способом через клик по девайсу. Чтобы не закапываться глубоко, я пошел в обход — настроил telnet-сервер. SSH v2, конечно, тоже имеется и работает с CSR, но уж очень медленно для интерактивной работы, да и бесполезно — у нас лабораторный стенд, а не продакшн.
Потом необходимость в сервере отпала, но запись в шпаргалке осталась, поэтому приведу и её.
После автоматического запуска xinetd, конечно, ничего не произошло, как нам обещали в интернете.
Нужно добавить в /etc/xinetd.d файл telnet следующего содержания:
и перезапустить сервер xinetd:
Проверяем телнет локально:
Закачиваем полученный образ в виртуальную машину EVE-NG и пробуем собрать топологию.
Теперь мы можем, настроив на соседней цыске в топологии адрес из подсети сервера, до него достучаться по telnet. Всё работает быстро, не в пример SSH.
Сбор топологии
Здесь всё чрезвычайно просто. Моя топология выглядит следующим образом:
Развёртывание подсистемы аnsible
Настройка CSR для работы с ansible
Выделим на каждом маршрутизаторe отдельный порт для управления и подключим к общему хабу с сервером ansible портами Gi2. Выберем подсеть для управления, у меня это 192.168.0.0/24. И назначим IP-адреса на портах в соответствии с номером маршрутизатора.
Эту же информацию занесем в /etc/hosts сервера:
На каждом маршрутизаторе настроим SSH v2 согласно ссылки. Всё тривиально, скажу лишь то, что для запуска требумеого нам SSHv2 нужно генерировать ключ более 768 бит, я выбрал размер 2048.
Проверяем доступ с сервера до маршрутизаторов по SSH, заодно собирая в хранилище ключи.
Сохраняем конфигурацию на маршрутизаторе:
И экспортируем в EVE-NG конфигурацию для того, чтобы заново не настраивать при перезагрузках девайсы:
Эта фича в EVE-NG, как и Unetlab до неё, работает с переменным успехом. Но будем надеяться.
Создание первого воркбука
Как мы помним, структура ansible состоит из двух основных частей — описания девайсов (inventory), и воркбука, собственно с логикой работы системы.
В нашем случае inventory достаточно примитивен и файл его содержащий (/etc/ansible/hosts) принимает вид:
Что раскрывается списком хостнеймов от R1 до R10 (помним, что мы уже прописали /etc/hosts для разрешения имён).
А вот с ворбуком придется повозиться.
Первым этапом, для того, чтобы залить конфигурацию, представляющую для нас лабораторный интерес, на виртуальный маршрутизатор IOS, нам необходимо сделать откат на начальную нулевую, содержащую только IP управления и настройки VTY.
Для этого мы попытаемся использовать модуль ios_command.
Основой всей работы по смене конфигураций в устройствах IOS для нас будет служить функционал команды привилегированного режима маршрутизатора:
Нулевые конфигурации будем хранить на сервере в домашнем каталоге нового пользователя под именем router в директории /home/router/default_configs/. Забегая вперед, скажу, что файлы будут иметь имена такие же, как и в inventory, т.е. в нашем случае это R1, R2 и т.д.
Создадим в /opt/ansible файл rollback.yml вида:
Итак, по порядку:
Название используемого инвентори:
Количество параллельно конфигурируемых устройств из инвентори. Важная часть последующей оптимизации производительности.
Как я понял, это говорит о соединении с локальным обработчиком заданий. Могу ошибаться.
Отключение сбора информации о хостах:
Имя пользователя для соединения с устройствами:
Передача команды в устройство из инвентори:
Время ожидания отклика в секундах:
Ничего особо сложного, как мы видим, но есть одно но!
Гугл нам об этом не особо много расскажет, поэтому вооружаемся смекалкой и пытаемся найти кто же нам это заявил. И находим файл самого используемого нами модуля: /usr/local/lib/python2.7/dist-packages/ansible-2.3.0-py2.7.egg/ansible/modules/network/ios/ios_command.py, содержащий вот такой код:
Явно, что разработчики немного перегнули палку, отнеся все параметры configure к конфигурационному режиму, поэтому дописываем в соответсвующую строку:
Создание второго воркбука
Не стану описывать так же подробно, как на предыдущем этапе, просто приведу пример воркбука, который заливает тематическую начальную конфигурацию лабораторных работ одного известного бренда с тремя буквами в названии:
Файлы начальных конфигурации лежат в /opt/ansible/IOS-XE-initials/base.ipv4, соответственно. Основное отличие данного сценария — это использование функционала модуля ios_config и передача права ему интерпретировать те команды, которые необходимо выполнить на устройствах.
На этом всё, спасибо за внимание. Если статья достойна продолжения, то следующей темой станет настройка взаимодействия IOS XR и ansible.
Источник
Linux images
Ready to GO Linux Images upload instructions | ||
---|---|---|
Due to very high demand of this section and problems with how to create Linux images under EVE, we are offering ready to go and prepared Linux image pack. You can choose any of Linux image from the pack below and simply upload into EVE.
2. Download your desirable image 3. Using WinSCP or FileZilla SSH (TCP 22) to your EVE and upload downloaded image to the location: /opt/unetlab/addons/qemu/ 4. Using Putty or other telnet client, CLI SSH (TCP 22) to your EVE and go to location: 5. Unzip your uploaded image file, make sure you are using right name of uploaded image. Example for ubuntu desktop image below. 6. Remove raw zipped image file from EVE 7. Fix permissions 6. Repeat this procedure for each downloaded image, expecting right image name in commands Credentials and recommended node settings table: We have used universal credentials in all our Linux images. for new Kali 2019.3 linux with RDP enabled: root/toor How to create own custom Linux host for EVE:
Watch how to VIDEO. It very similar process like for Windows. Just follow steps below. For this you will need real Linux installation CD ISO distro. We are using: ubuntu-16.04.2-desktop-amd64.iso. Be sure that distro name has not spaces in the filename! Any Linux Server installation has same procedure. Create new image directory:
IMPORTANT: Commit the installation to set it as the default image for further use in EVE-NG: 11. On the left side-bar within the lab in the EVE Web-UI choose “Lab Details” to get your lab’s UUID details: In this example: UUID: 3491e0a7-25f8-46e1-b697-ccb4fc4088a2 12. Find out the POD ID of your used and the Node ID of your newly installed node. The POD number is assigned to your username, and can be found in the EVE GUI, Management/User Management. The Admin user uses POD number 0 by default. The Node ID can be obtained by right clicking the node on the topology. In this Example it is 8 12. From the EVE CLI, locate the installed image and commit your changes to be used as default for further use in EVE-NG: Advanced instructions on how to make your image smaller in size (sparsify&compress). 13. After you have done all the steps above and your default image is created, you can compress its HDD and make it smaller. IMPORTANT: for compressing an image you must have sufficient free space on your EVE host, the free space must exceed the total space (30GByte in this example) of the HDD you plan to shrink. The space needed can vary but will be the total space of the disk to be shrunk plus the size of the final sparsified and compressed image. To be safe you should have double the size of the HDD you want to shrink as free space on your EVE host. In our example we needed 35Gbyte of free HDD space. Once this process is done, the temporary file(s) will be deleted and free space reclaimed. 14. From the CLI: go to your windows image directory: and perform the sparsify command: 15. This will take some time and another compressed image will be created in the same image directory (win-7test) 16. Rename the compressed image name to virtioa.qcow2: 17. now you can test your new compressed image on a lab, just wipe the node and start it. If the compressed node works fine, you can delete your original source image: Источник |