Хочу представить вам графический интерфейс для демона tacacs (ссылка в конце поста). К счастью или к сожалению, я разработчик этого проекта, на который было потрачено около 3-х месяцев. Этот проект ориентирован на Cisco устройства, и не тестировался на устройствах других производителей (но как утверждает man tacacs, есть поддержка и других производителей, например, Juniper).

lockscreen_img


Давайте разберемся, что же этот «интерфейс» (дальше TacacsGUI) умеет:

  • Умеет создавать конфигурацию для демона tacacs, это основная цель создания проекта. TacacsGUI не просто создает конфигурацию, он упрощает настройку tacacs — автоматическое шифрование паролей (к сожалению, tac_pwd умеет только des), настройка правил доступа для группы пользователей, предварительный просмотр и мини-debug, на случай ошибок в конфигурации. На данный момент, нет поддержки LDAP, групп и еще некоторых полезностей.

    tacacs_config_preview


  • TacacsGUI так же оснащен некоторыми полезными утилитами, все они работают с базой данных устройств, которая используется для создания файла конфигурации tacacs. Каждая утилита имеет своего пользователя, с определенными правами доступа, по умолчанию пользователи выключены. Начнем с первой утилиты — Backup Maker. Сразу из названия можно догадаться, для чего предназначена эта утилита. Следует отметить, что работает она исключительно с Cisco устройствами (как и все остальные утилиты). Backup Maker делает резервное копирование с преднастроенной периодичностью, на оборудовании выполняется команда copy startup-config tftp:, при этом есть возможность сохранить конфигурацию перед резервным копированием. К сожалению, пока что TFTP-сервером должен выступать сам сервер TacacsGUI, который собирает все бэкапы в удобную базу данных (ИМХО). Есть возможность автоматически сливать все резервные копии, но об этом в отдельном пункте (предпоследний пункт).

    backupMaker


  • Subnet Searcher — еще одна утилита, которая помогает определить настроенные подсети на устройствах, так же есть возможность угадывать номер Vlan для подсети. Немного подробнее о работе утилиты. Subnet Searcher заходит на устройство и выполняет команду show runn | in (rface|dress|encap), основываясь на информации о ip адресе и маске подсети (secondary ip так же учитываются) вычисляется номер подсети, если интерфейс называется Vlan или есть строчка encapsulation, то определяется vlan. В итоге, мы получаем базу данных известных подсетей в сети + номер Vlan (если был замечен) + для каждой подсети имеется список участников.

    SubnetSearcher


  • CDP MapMaker — утилита, которая строит топологию сети основываясь на информации полученной от CDP. Эта утилита использует туже JavaScript библиотеку (jsPlumb), что и UNetLab (очень крутой эмулятор), так что есть некоторые сходства. На самом деле эта утилита делится на два «движка»: CDP Search и MapMaker. CDP Search собирает информацию со всех устройств и создает временную базу данных, которую в дальнейшем использует MapMaker. Помимо автоматического создания топологии, существует возможность ручного добавления элементов сети и установки связей. Так же есть экспорт, но только в XML файл, которой можно открыть при помощи сервиса draw.io.

    CDPMapMaker


  • Есть возможность создания пользователей для управления TacacsGUI, пока что без разграничения прав доступа. Ведется логгирование действий пользователя, и попыток несанкционированного доступа. Так же есть возможность делать резервную копию всех настроек, файла конфигурации tacacs и всех резервных копий, сделанных при помощи Backup Maker, при этом есть выбор куда (FTP, SCP, Win Share) и когда сливать backup.

    fullBackup


  • Естественно информация, которая хранится на этом сервере, должна передаваться между пользователем и сервером по https. Настроить https очень просто, при помощи представленного на сайте скрипта. Так же, если вы хотите, что бы у вас https светился «зелененьким», надо сделать DNS запись для вашего сервера — tacacs.gui и установить корневой сертификат, подробнее на сайте.

На данный момент система тестировалась в лабораторке, созданной при помощи UNetLab, а также была развернута на одном из предприятий. Проект остается «жиденьким», есть что доделать/переделать/улучшить, но он работает. Еще в планах сделать Path Searcher — утилита, которая основываясь на информации, полученной из CDP MapMaker и Subnet Searcher, будет рисовать маршрут между двумя узлами в сети, и это будет не просто трассировка, т.к. на схеме будут присутствовать коммутаторы и прочие устройства, которые моли быть добавлены пользователем вручную. Вдобавок планируется написать «движок», который будет анализировать ACL, таким образом, на схеме в Path Searcher будет появляться информация по какому правилу был пропущен/заблокирован пакет. Но пока что это только в планах.

Если вы стали счастливым пользователем и нашли баг или «очепятку» (английский у меня не идеален), то можете воспользоваться контактной информацией на сайте, учтите, я понимаю английский и русский языки, но русский чуть лучше.

Сайт проекта можно найти тут -> www.tacacsgui.com. Всем добра!

23.05.2016 — исправлены грамматические ошибки.
Поделиться с друзьями
-->

Комментарии (12)


  1. dmitryrf
    23.05.2016 17:40

    del


    1. gurkin33
      23.05.2016 17:41

      Спасибо и прошу прощения, грамматика страдает. Буду исправляться.


  1. evg_krsk
    23.05.2016 18:55

    Похоже, что вы переизобретаете NOC Project :-)

    А так хотелось self-hosted фронт-энд для управленя tac_plus. Эх.


    1. gurkin33
      23.05.2016 21:30

      Ничего не знал про NOC до этого дня. Действительно мощная штука. Но мой проект это и есть «self-hosted фронт-энд для управленя tac_plus», пусть не с полным функционалом (нет поддержки LDAP, PPP авторизации и т.п.), но с функцией авторизации пользователей и аккаунтингом эта штука справляется.
      Вероятно, найдутся еще похожие проекты, я не против. Очень часто друзья и знакомые разворачивают мои идеи фразой: «ты делаешь велосипед». Так вот, теперь мое мнение такое — пусть даже это «велосипед», но в первую очередь это опыт для меня, и, может быть, я очень на это надеюсь, что «вот это» кому-нибудь пригодится.
      Но мне очень интересно, что имеенно вы хотели бы видеть в «self-hosted фронт-энд для управленя tac_plus»?


  1. GritsanY
    24.05.2016 08:42

    Почему пароли и ключи принимает только цифробуквенные? На устройствах Cisco поддерживается ввод специальных символов в ключе tacacs+ и паролях пользователей


    1. gurkin33
      24.05.2016 08:48

      Очень хороший вопрос. В следующей версии планируется добавить специальные символы. Это я уже взял на заметку. Спасибо.


  1. HunterXXI
    24.05.2016 10:30

    Уж очень узкоспециализированное направление. Я не проводил исследований и возможно ошибаюсь, но на мой взгляд, подавляющее большинство сетевых устройств не нуждается в гибком администрировании локальной базы пользователей, так как ими управляют 2-3 человека от силы.

    Мы ушли от реализации tacacs или radius для работа с локальными устройствами. Сейчас пушим через Conf Manager локальные учетки на устройства с необходимыми привелегиями. Если учетка скомпроментировала себя — так же удаляем через Conf Manager.

    P.S. Да я понимаю, что есть оборудование операторов связи, к которому могут иметь доступ десятки людей, но это еденичные случаи. А для тех.поддержки первого уровня есть общая учетка с правами «посмотреть состояние интерфейсов», но и этот подход мы стараемся не практиковать.


    1. gurkin33
      24.05.2016 10:47
      +1

      Согласен с вами, это действительно узкоспециализированное направление. К счастью, этот проект не должен меня прокармливать. Была задача реализовать графическую настройку демона tacacs и добавить запланированные плюшки. Задачу я выполнил, но еще есть над чем поработать и решил поделиться своим проектом. Мы уже посмеялись с друзьями, что этот проект «убийца ACS». Я не делаю большие ставки на этот проект, мне просто хотелось сделать что-то красивое и удобное.


      1. HunterXXI
        24.05.2016 11:25

        Ну если желаемое и действительное сошлось в единой точке, могу Вас только поздравить!
        WEB GUI для всяких демонов и сервисов это хорошо — так можно и что-то весьма полезное изобрести :)


        1. gurkin33
          24.05.2016 11:46

          Спасибо. Я действительно оцениваю этот проект, как хороший опыт.


          1. djvnsk
            26.05.2016 11:36
            +1

            Вы молодец, интересно будет потестить.


            1. gurkin33
              26.05.2016 11:58

              Спасибо. Тестирование — это неоценимая помощь проекту.