Команда GNS3 с каждым днем работает все умнее и усерднее, чтобы сделать GNS3 незаменимым инструментом при изучении и тестировании сценария реализации сети.
GNS3 – это графический симулятор сети, который позволяет имитировать сложные сети.
Это важный инструмент при подготовке к сетевой сертификации, такой как CCNA, JNCIA, CCNP, а также на уровне CCIE.
С каждым новым выпуском добавляются новые функции, а также улучшения существующих.
В этой статье мы обсудим установку GNS3 в Kali Linux 2020.x и последних скользящих выпусках.
Проект GNS3 эволюционировал для поддержки множества устройств от различных сетевых поставщиков, включая виртуальные коммутаторы Cisco, Cisco ASA, Brocade vRouters, коммутаторы Cumulus Linux, экземпляры Docker, HPE VSR, несколько устройств Linux и многие другие.
Некоторые основные особенности GNS3:
- Полностью бесплатный и открытый исходный код – без ежемесячных или годовых лицензионных сборов
- Нет ограничений на количество поддерживаемых устройств – ваше единственное ограничение – это оборудование ЦП и ОЗУ
- . GNS3 поддерживает все образы VIRL (IOSv, IOSvL2, IOS-XRv, CSR1000v, NX-OSv, ASAv)
- GNS3 может работать с гипервизорами или без них в мультивендорных средах.
- Он поддерживает несколько вариантов коммутации (ESW16 Etherswitch, образы IOU / IOL Layer 2, VIRL IOSvL2) GNS3 поддерживает как бесплатные, так и платные гипервизоры – Virtualbox, VMware Workstation, VMware Player, ESXi, Fusion.
- GNS3 имеет встроенную поддержку Linux без необходимости в дополнительном программном обеспечении для виртуализации.
Шаг 1. Обновите систему
Начните установку с обновления системы и всех установленных пакетов до последних версий.
sudo apt update
sudo apt upgrade
Поскольку обновление может содержать обновления ядра, давайте перезагрузим нашу систему.
sudo reboot
Шаг 2. Установите необходимые зависимости
Убедитесь, что в вашем Kali Linux настроены правильные репозитории.
🐧 Как добавить официальные репозитории Kali Linux в sources.list
$ sudo apt update
Get:1 http://kali.download/kali kali-rolling InRelease [30.5 kB]
Get:2 http://kali.download/kali kali-rolling/contrib Sources [63.7 kB]
Get:4 http://kali.download/kali kali-rolling/main Sources [13.8 MB]
Get:8 http://kali.download/kali kali-rolling/non-free Sources [127 kB]
Get:9 http://kali.download/kali kali-rolling/main amd64 Packages [17.5 MB]
Get:10 http://kali.download/kali kali-rolling/non-free amd64 Packages [202 kB]
Get:11 http://kali.download/kali kali-rolling/contrib amd64 Packages [106 kB]
Fetched 28.2 MB in 16s (1,769 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
Установите следующие программные зависимости
sudo apt install -y python3-pip python3-pyqt5 python3-pyqt5.qtsvg python3-pyqt5.qtwebsockets qemu qemu-kvm qemu-utils libvirt-clients libvirt-daemon-system virtinst wireshark xtightvncviewer apt-transport-https ca-certificates curl gnupg2 software-properties-common
Шаг 3. Установите GNS3 на Kali Linux Rolling
Наконец, выполните установку GNS3 в выпуске Kali Linux Rolling.
Установите компонент GNS3 Server
$ sudo pip3 install gns3-server
Collecting gns3-server
Downloading gns3-server-2.2.17.tar.gz (8.7 MB)
|████████████████████████████████| 8.7 MB 4.2 MB/s
Requirement already satisfied: Jinja2>=2.7.3 in /usr/lib/python3/dist-packages (from gns3-server) (2.11.2)
Collecting aiofiles==0.5.0
Downloading aiofiles-0.5.0-py3-none-any.whl (11 kB)
Collecting aiohttp-cors==0.7.0
Downloading aiohttp_cors-0.7.0-py3-none-any.whl (27 kB)
Requirement already satisfied: aiohttp==3.6.2 in /usr/lib/python3/dist-packages (from gns3-server) (3.6.2)
Requirement already satisfied: async-timeout==3.0.1 in /usr/lib/python3/dist-packages (from gns3-server) (3.0.1)
Requirement already satisfied: distro>=1.3.0 in /usr/lib/python3/dist-packages (from gns3-server) (1.5.0)
Requirement already satisfied: jsonschema==3.2.0 in /usr/lib/python3/dist-packages (from gns3-server) (3.2.0)
Collecting psutil==5.6.7
Downloading psutil-5.6.7.tar.gz (448 kB)
|████████████████████████████████| 448 kB 4.9 MB/s
Collecting py-cpuinfo==7.0.0
Downloading py-cpuinfo-7.0.0.tar.gz (95 kB)
|████████████████████████████████| 95 kB 3.0 MB/s
Collecting sentry-sdk>=0.14.4
Downloading sentry_sdk-0.19.5-py2.py3-none-any.whl (128 kB)
|████████████████████████████████| 128 kB 4.7 MB/s
Requirement already satisfied: urllib3>=1.10.0 in /usr/lib/python3/dist-packages (from sentry-sdk>=0.14.4->gns3-server) (1.26.2)
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from sentry-sdk>=0.14.4->gns3-server) (2020.6.20)
Building wheels for collected packages: gns3-server, psutil, py-cpuinfo
Building wheel for gns3-server (setup.py) ... done
Created wheel for gns3-server: filename=gns3_server-2.2.17-py3-none-any.whl size=9362887 sha256=d41b291e64f3296c747f99ccfd7a85080572274b270a173070d84abe03fa3e32
Stored in directory: /root/.cache/pip/wheels/7c/93/bf/6988e561eb06b210a54928f884483e35ce48ca7fad4c8bffc0
Building wheel for psutil (setup.py) ... done
Created wheel for psutil: filename=psutil-5.6.7-cp39-cp39-linux_x86_64.whl size=265842 sha256=02c84201fd411405155645990d6c833588c130ffb8dc4978c652e7561344e424
Stored in directory: /root/.cache/pip/wheels/67/e7/5d/b8eb44db682bf1a1859a6e6d2540045869edaee3731552adc0
Building wheel for py-cpuinfo (setup.py) ... done
Created wheel for py-cpuinfo: filename=py_cpuinfo-7.0.0-py3-none-any.whl size=20068 sha256=15426c9fbf5132b19bc648bc50137d21413486439ea1a25786f738ec3fa138f3
Stored in directory: /root/.cache/pip/wheels/7f/2c/24/85d73581e5927be15689598ed1f02fe2a40cc66314232507c4
Successfully built gns3-server psutil py-cpuinfo
Installing collected packages: aiofiles, aiohttp-cors, psutil, py-cpuinfo, sentry-sdk, gns3-server
Attempting uninstall: psutil
Found existing installation: psutil 5.7.3
Not uninstalling psutil at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'psutil'. No files were found to uninstall.
Successfully installed aiofiles-0.5.0 aiohttp-cors-0.7.0 gns3-server-2.2.17 psutil-5.6.7 py-cpuinfo-7.0.0 sentry-sdk-0.19.5
Дождитесь завершения установки, затем установите компонент графического интерфейса.
$ sudo pip3 install gns3-gui
Collecting gns3-gui
Downloading gns3-gui-2.2.17.tar.gz (4.9 MB)
|████████████████████████████████| 4.9 MB 1.2 MB/s
Requirement already satisfied: distro>=1.3.0 in /usr/lib/python3/dist-packages (from gns3-gui) (1.5.0)
Requirement already satisfied: jsonschema==3.2.0 in /usr/lib/python3/dist-packages (from gns3-gui) (3.2.0)
Requirement already satisfied: psutil==5.6.7 in /usr/local/lib/python3.9/dist-packages (from gns3-gui) (5.6.7)
Requirement already satisfied: sentry-sdk>=0.14.4 in /usr/local/lib/python3.9/dist-packages (from gns3-gui) (0.19.5)
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from sentry-sdk>=0.14.4->gns3-gui) (2020.6.20)
Requirement already satisfied: urllib3>=1.10.0 in /usr/lib/python3/dist-packages (from sentry-sdk>=0.14.4->gns3-gui) (1.26.2)
Building wheels for collected packages: gns3-gui
Building wheel for gns3-gui (setup.py) ... done
Created wheel for gns3-gui: filename=gns3_gui-2.2.17-py3-none-any.whl size=3815821 sha256=700245f3b2668c0c3cc4e6e4e015ea2ebef4f7a2703f44a8809869a8d9c38ba1
Stored in directory: /root/.cache/pip/wheels/a0/8c/61/bcfd1f0c4324732bb6a051a80a71c0bfa6bdce5e248b064cdb
Successfully built gns3-gui
Installing collected packages: gns3-gui
Successfully installed gns3-gui-2.2.17
Вы можете запустить GNS3 из CLI
$ gns3
Или выполнив поиск приложения GNS3 с рабочего стола.
Шаг 4. Настройка поддержки Docker
Если вам нужна поддержка Docker в GNS3, вам необходимо установить Docker CE, выполнив действия, описанные в руководстве ниже.
🐳 Установите Docker и Docker Compose на Kali Linux
Затем добавьте репозиторий GNS3
sudo tee /etc/apt/sources.list.d/gns3.list<<EOF
deb http://ppa.launchpad.net/gns3/ppa/ubuntu bionic main
deb-src http://ppa.launchpad.net/gns3/ppa/ubuntu bionic main
EOF
Импортируйте ключ репозитория GPG:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F88F6D313016330404F710FC9A2FD067A2E3EF7B
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Executing: /tmp/apt-key-gpghome.WQqu0nldXm/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys F88F6D313016330404F710FC9A2FD067A2E3EF7B
gpg: key 9A2FD067A2E3EF7B: public key "Launchpad PPA for GNS3" imported
gpg: Total number processed: 1
gpg: imported: 1
Обновите индекс пакета APT:
sudo apt update
Затем установите Dynamips ubridge:
$ sudo apt install dynamips ubridge
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
gns3
The following NEW packages will be installed:
dynamips ubridge
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 391 kB of archives.
After this operation, 1,190 kB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/gns3/ppa/ubuntu bionic/main amd64 dynamips amd64 0.2.21-1~bionic1 [358 kB]
Get:2 http://ppa.launchpad.net/gns3/ppa/ubuntu bionic/main amd64 ubridge amd64 0.9.18-1~bionic1 [32.8 kB]
Fetched 391 kB in 9s (44.6 kB/s)
Preconfiguring packages ...
Selecting previously unselected package dynamips.
(Reading database ... 275469 files and directories currently installed.)
Preparing to unpack .../dynamips_0.2.21-1~bionic1_amd64.deb ...
Unpacking dynamips (0.2.21-1~bionic1) ...
Selecting previously unselected package ubridge.
Preparing to unpack .../ubridge_0.9.18-1~bionic1_amd64.deb ...
Unpacking ubridge (0.9.18-1~bionic1) ...
Setting up dynamips (0.2.21-1~bionic1) ...
Setting up ubridge (0.9.18-1~bionic1) ...
Processing triggers for man-db (2.9.3-2) ...
Processing triggers for kali-menu (2021.1.2) ...
Добавьте своего пользователя в следующие группы:
sudo usermod -aG kvm,libvirt,docker,ubridge,wireshark $USER
Чтобы предотвратить случайную установку чего-либо еще из этого репозитория (на данный момент), удалите строки в файле.
sudo tee /etc/apt/sources.list.d/gns3.list<<EOF
#deb http://ppa.launchpad.net/gns3/ppa/ubuntu bionic main
#deb-src http://ppa.launchpad.net/gns3/ppa/ubuntu bionic main
EOF
Обновим метаданные
sudo apt update
qemu не устанавливается, нет кандидата на установку.