Построение топологии сети python

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

lmsecure/LMS.NetMap

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Projects page Topology page Topology fullscreen page Info page

LMS.NetMap — сетевой анализатор трафика с возможностью автоматического построения топологии сети.

  1. Разделение на проекты. Чтобы «не держать все яйца в одной корзинке» реализовано разделение на проекты. Определение принадлежности пользователя к проекту осуществляется через cookie. Пока у пользователя нет cookie, он не может начать работу с проектом.
  2. Активное сканирование с использованием nmap. Произведена интеграция с нативно установленным nmap . На данный момент из результатов сканирования вытягиваются:
    • информация о хосте (IP, MAC, hostname);
    • сведения о трассировке;
    • сведения об порта (номер порта, состояние, сведения о ПО на порту).
  3. Парсинг xml-логов сканирования nmap. Провели сканирование на удаленной машине и хотите загрузить логи в проект? Не проблема, NetMap поддерживает парсинг xml-логов nmap
  4. Пассивное сканирование с использованием scapy. Scapy — мощный инструмент для работы с сетью. Приложение создает асинхронный сниффер и налету «потрошит пакеты». Сейчас можно получить информацию из следующих типо пакетов:
    • ARP;
    • LLNMR;
    • NBNS;
    • TCP.
  5. Парсинг pcap-файлов. Сделали сниффиинг пакетов и хотите загрузить данные в проект? Не проблема, NetMap поддерживает парсинг pcap-файлов.
  6. Получение информации организовано в виде задач. Все сканирования парсиг логов организовано в виде задач и выполняется на стороне сервера в отдельных планировщиках. Есть возможность настроить каждый планировщик индивидуально с целью контороля исходящего траффика.
  7. Построение топологии сети. На основе данных о сканированиях автоматический строится топология сети со следующими функциями:
    • автоматическое перестроение карты сети при получении новых данных;
    • интерактивная карта сети с возможностью работы в полноэкранном режиме;
    • получение данных об открытых портах по выделенному узлу сети;
    • возможность установить роль узла сети и установить иконку;
    • объединение узлов сети в кластер по 24 маске. Очень удобно, когда на карте 100500 узлов;
    • экспорт топологии сети в SVG , PNG и JSON (структура данных vis.js);
    • импорт топологии сети из JSON (структура данных vis.js);
  8. Уведомления. При изменении статуса задачи всплывает уведомление, информирующее пользователя
  9. Работа с базой через веб-интерфейс. В веб-интерфейсе есть элемент для работы с базой, поддерживающий следующий функционал:
    • отображение записи;
    • создание записи;
    • редактирование записи;
    • удаление записи.
  10. Использование REST API. Для работы с серверной частью используется REST API, поэтому есть возможность написать свой интерфейс (tui, gui native, mobile) или интегрировать в свой проект.
aiohttp==3.8.1 aiohttp_jinja2==1.5 aiohttp_session==2.11.0 aiojobs==1.1.0 alembic==1.9.2 cryptography==3.4.8 iptools==0.7.0 Jinja2==3.1.2 mac_vendor_lookup==0.1.12 nest-asyncio==1.5.6 pandas==1.4.1 scapy==2.4.5 setuptools==59.6.0 SQLAlchemy==1.4.32 sqlalchemy_schemadisplay==1.3 xmltodict==0.12.0 xlsxwriter==3.0.8 
git clone https://github.com/lmsecure/LMS.NetMap.git cd LMS.NetMap
sudo apt install nmap python3.8

2.1. Рекомендуется использовать venv

sudo apt install -y python3-venv python3 -m venv venv source venv/bin/activate
pip3 install -r requirements.txt
sudo setcap cap_net_raw=eip /usr/bin/python3.8 sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip `which nmap`

From github pyz-file from last release

Читайте также:  Меры по обеспечению безопасности информации в компьютерных системах и сетях

wget https://github.com/lmsecure/LMS.NetMap/releases/download/v0.4a/app-v0.4a.pyz cd LMS.NetMap
sudo apt install nmap python3.8
sudo setcap cap_net_raw=eip /usr/bin/python3.8 sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip `which nmap`

P.S.: файл app.pyz сгенерирован с помощью shiv и содержит в себе все зависимые python -пакеты

docker pull lmsecure/lms.netmap
mkdir ~/lms.netmap cd ~/lms.netmap
docker run -p 8008:8008 -v ~/lms.netmap/projects:/lms.netmap/projects -v ~/lms.netmap/logs:/lms.netmap/logs -d lmsecure/lms.netmap:latest

После запуска перейти http://localhost:8008

schema

  1. Возможность скармливать логи других инструментов:
    • whatweb
    • crackmapexec
    • nikto
    • gobuster
    • и другие
  2. Расширенный анализ nmap сканирования
  3. Увеличить количество типов анализуруемых пакетов и качество парсинга пакетов
  4. Работа с доменными именами
  5. Поиск сервисов по dns записям и субдоменам
  6. Создание скриншотов веб-приложений
  7. Проксирование запросов

Источник

Визуализация топологии сети с помощью скрипта Python и NeXt UI

В данный момент в сети существует немало утилит и программ с открытым кодом для визуализации сетевых топологий. Исходными данными, как правило, для них выступают данные таких протоколов, как Cisco Discovery Protocol (CDP), Link Layer Discovery Protocol (LLDP), Open Shortest Path First (OSPF), Intermediate System to Intermediate System (ISIS).

Реализации CDP и LLDP могут использоваться в качестве решения для небольших доменов, с ограниченным количеством сетевых устройств. В отношении CDP, следует заметить, что данный протокол является исключительно проприетарным и может применяться в сетях только с оборудованием Cisco.

OSPF и ISIS относятся к категории Interior Gateway Protocol (IGP), являются по сути Link State протоколами, и их базы Link State Database (LSDB) содержат информацию о всех хостах домена, состоянии и типе линков, метриках для расчета дерева кратчайшего пути (shortest-path tree, используется алгоритм Dijkstra), т. е. всю необходимую информацию о топологии сети. Любой из этих протоколов в большинстве случаев является неотъемлемым атрибутом дизайна любой сети, будь-то Internet Service Provider, Data Center или Enterprise.

Читайте также:  Топология локальной сети в которой все рабочие станции непосредственно соединяются с сервером

В этой статье речь пойдет о небольшом скрипте Python и наборе шаблонов TextFSM, с помощью которых, в связке с open source решением NeXt UI (применяется в SDN контроллере ODL), используя LSDB протоколов ISIS, OSPF, легко и просто визуализировать топологию сети, содержащую от несколько десятков до несколько сотен устройств. Следует отметить, что решение может применяться в мультивендорных сетях (в текущей версии поддерживаются протоколы следующих вендоров: Nokia — OSPF и ISIS;Juniper — OSPF и ISIS; Cisco — OSPF и ISIS; Huawei — ISIS).

Для запуска скрипта необходимо:

1. Загрузить все содержимое из git clone:

Визуализация топологии сети с помощью скрипта Python и NeXt UI

2. Зайти в каталог igp_topo_multi и проверить его содержимое:

Визуализация топологии сети с помощью скрипта Python и NeXt UI

3. Отредактировать файл config.yaml, используя текстовый редактор:

Визуализация топологии сети с помощью скрипта Python и NeXt UI

В нем необходимо указать тип хоста (nokia, juniper, cisco, huawei), протокол (ospf или isis), путь и название текстового файла с выводом LSDB (используется каталог test_files, в котором уже содержится несколько файлов с тестовыми топологиями). Сохранить данные и закрыть редактор:

Визуализация топологии сети с помощью скрипта Python и NeXt UI

5. В открывшемся окне браузера по умолчанию, отобразится топология сети:

Визуализация топологии сети с помощью скрипта Python и NeXt UI

  1. Загрузку файлов из github.com желательно выполнять в пользовательский каталог без sudo. В противном случае скрипт не сможет запустить браузер. Если браузер не запустится по каким-либо причинам, страницу index.html, которая находится в каталоге nextUI, можно открыть самостоятельно.
  2. Пиктограммы маленьких коммутаторов в топологии обозначают broadcast линки (не р2р). Повод задуматься, оправдан ли этот тип для каждого конкретного случая.
  3. Цветовые темы NeXt UI можно применять разные из доступных.
  4. Положение хостов в браузере можно изменять их перетаскиванием.

Источник

Оцените статью
Adblock
detector