Внедряем TACACS.NET на Windows для сетевого стенда

от автора

Опять «презумпция виновности» и 11 злобных зрителей с нетерпением ждут возможности накидать замечаний за отсутствие аутентификации tacacs (и не только), а сапожник снова без сапог: нужен стенд – но развернуть его в офисной «стекляшке» негде. Партнер готов прийти на помощь – но доброта имеет четкие рамки: в соседние серверы не включаемся, но можно предоставить ноут с «чистой» Виндой.

В такой ситуации на ум приходят ровно 2 варианта: 20-летней давности Cisco Access Control Server (ACS) 4.2, либо … tacacs.net. Причем когда-то с обоими был не самый удачный первый опыт работы. На самом деле, самый первый опыт может оказаться неудачным с чем угодно – даже с tacacs+ на RedOS (там вместо текста – картинки, и не сразу поймешь – это цифра «один» или маленькая «эль») или vESR, но какая-то последующая попытка обычно становится успешной. В общем, «Не нравятся кошки? Вы просто не умеете их готовить».

После моего почти рефлекторного «интим tacas.net не предлагать», коллега высказал глубокую мысль: если нарисовать взаимосвязь разрозненных экранных форм и полей, параметров в файлах конфигураций и т.п., то успех оказывается намного более вероятным – так сказать, паззл сложится. Что подтвердилось тем же вечером.

Чтобы добавить «практической ценности» и наглядности, будем решать вот такую условную задачку: обеспечить на коммутаторах MES и маршрутизаторах ESR от Eltex авторизацию для оператора и администратора через tacacs. При этом оператор должен иметь возможность просматривать running-config, но не должен ничего изменять. Администратор же, в свою очередь, должен иметь полный доступ (level 15).

А дальше – строго по порядку:

  • Установка tacacs.net

  • Сложим паззл из параметров настройки tacacs.net и условий задачи

  • Настроим tacacs.net

  • Настроим сетевое оборудование

  • Дополнительно: смягчим лицензионные ограничения

Установка tacacs.net

Установка включает 2 шага: скачивание инсталлятора tacacs.net и его собственно установка.

На официальном сайте tacacs.net в свободном доступе есть версия 2.1.2 со следующими ограничениями в отсутствие файла лицензии: 5 устройств и 3 пользователя.

Поскольку эта версия относится к 2016 году, она имеет вполне гуманные по сегодняшним меркам системные требования:

  • Windows Vista or Windows Server 2008 or later

  • 1 GHz CPU

  • 256 MB RAM

  • 500 MB HDD free

Установка заключается в запуске скачанного инсталлятора. В принципе, можно принять все параметры по умолчанию (включая установку всех утилит). При установке будет предложено ввести секретный ключ (по которому устройство и сервер tacacs верифицируют друг друга). По факту, его можно не вводить, а также скорректировать позже в файлах настройки. Я бы рекомендовал ввести что-то заведомо простое – например, 12345678. Позже, бросаясь в глаза, такая последовательность сразу укажет на поле в файле конфигурации. Естественно, что это значение можно потом изменить.

В процессе установки, файлы программ и конфигураций устанавливаются в разные каталоги. Причем файлы конфигураций жестко устанавливаются в скрытый каталог C:\ProgramData, там же приложение хранит журнальные файлы. Структура каталогов и начальный перечень файлов показаны ниже:

C:\ProgramData├───TACACS.net│   ├───config│   │       authentication.xml│   │       authorization.xml│   │       clients.xml│   │       googleotp.xml│   │       logging.xml│   │       tacplus.xml│   ││   └───Logs│           Accounting_2026-03-24_1.CSV│           Debug_2026-03-24_1.log│           System_2026-03-24_1.CSV

По завершению установки, появляется новый сервис Windows, обычно в состоянии «Выполняется». Это хорошая новость. Другая новость: до настройки ничего полезного он не делает. Впрочем, до этого тоже дойдем.

Детализируем условия и складываем паззл

Как правило, любую задачу можно решать несколькими способами. И в математике это используется для проверки правильности полученного результата.

В нашем случае проверить можно непосредственно в командной строке, поэтому в рамках статьи ограничимся следующим:

  • Определим идентификаторы пользователей – пусть это будут user9 и admin соответственно для оператора и администратора

  • Определяем базовый уровень привилегий, доступный пользователю (level 9 и15 соответственно для user9 и admin)

  • Тюнинг доступности команд на разных уровнях: на маршрутизаторах и коммутаторах нужно активировать «show running-config» для уровня 9, а для коммутаторов дополнительно перенести «configure» на уровень 10 или выше (сделав недоступной для user9)

Через Tacacs будет выполняться идентификация пользователей и задаваться уровни привилегий

Сборка же паззла заключается в визуализации нахождения и взаимосвязи параметров, разбросанных по разным файлам сервиса Tacacs.net (в отличии от того же tacacs+ для Linux, где все в одном файле), как показано на рисунке ниже.

Видно, что (представьте Боромира) «Нельзя просто взять и настроить в tacacs.net уровень привилегий для пользователя». Впрочем, рассмотрим все по порядку.

Для снижения объема информации в рисунке, неиспользуемые строки не показаны – но приведена полная XML-иерархия (для ориентирования в XML-файлах, поскольку строк там немало).

А для наглядности, изменяемые параметры выделены цветом: черным с подчеркиванием – локальные параметры (не используются для ссылок в других файлах), а синий и красный – два параметра, которые согласованно используются в двух файлах.

И так, в файле tacplus.xml в простейшем случае задается адрес, на котором tacacs.net будет принимать запросы. На рисунке приведено исходное значение, которое необходимо скорректировать.

В файле clients.xml описываются параметры tacacs-клиентов (сетевых устройств), включая:

  • Диапазон(ы) допустимых адресов

  • Секретный ключ для взаимодействия с tacacs сервером («те самые» 12345678, упомянутые выше)

Эти параметры объединяются в клиентскую группу, которой присваивается идентификатор (в нашем случае — INTERNAL).

В файле authentication.xml описываются параметры идентификации и аутентификации. При этом пользователи с одинаковыми методом аутентификации, привилегиями и настройками (priv-lvl, default-acl, autocmd и т.п.) объединяются в пользовательские группы (на рисунке — OPERATOR). Иначе пользователей нужно разносить по разным группам. Для каждой группы задается тип аутентификации (для простоты выбираем file), для пользователя – его логин и пароль.

В файле authorization.xml происходит магия: по совпадению комбинации клиентской и пользовательской групп применяются настройки, указанные в AutoExec. В нашем случае – задается необходимый уровень привилегий.

Настраиваем tacacs.net

Настройка выполняется путем редактирования файлов конфигурации в редакторе Notepad. Перед началом редактирования следует очистить флажок атрибута «только чтение». Для редактирования:

  • редактор необходимо запускать от имени администратора (иначе не получится сохранить изменения – ибо на диске С)

  • файл конфигурации открывать уже в запущенном редакторе

Начать можно с файла tacplus.xml, где нужно поправить ровно 1 поле. Задается адрес, который:

  • Доступен для сетевых устройств (клиентов tacacs)

  • Локальный (настроен на сетевом интерфейсе) для виртуалки или компьютера

Пусть в нашем случае это будет адрес 172.16.1.111.

В файле clients.xml можно ничего не менять и использовать группу INTERNAL или даже DEFAULT.

В файле authentication.xml настраиваются 2 группы с методом идентификации file:

  • OPERATOR – пользователь user9 с каким-либо паролем

  • ADMINISTRATOR – пользователь admin с каким-либо надежным паролем, причем с помощью утилиты tacdes его можно зашифровать и не хранить в файле в открытом виде. И тогда строчка с паролем может выглядеть следующим образом:

<LoginPassword ClearText="" DES="GwJQb6xe9+C8Ysosigs5OQ=="> </LoginPassword>

При правке файла authentication.xml за основу удобно взять группу «Network Engineering», которая в начале файла и уже использует метод аутентификации file. Однако, исходно в этой группе все пользователи «закомментарены» – обращаем внимание на комбинации <!— и —>.

В файле authorization.xml нужно настроить 2 группы Authorization: для пользовательских групп OPERATOR и ADMINISTRATOR (можно ссылаться на одну и ту же клиентскую группу INTERNAL или DEFAULT), указав правильный уровень привилегий (15 для ADMINISTRATOR, 9 для OPERATOR).

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

Ожидаемый результат:

All files have the correct syntax. Validating configuration...No errors were found in the configuration.

В случае обнаружения ошибки будет указан файл и строка, плюс минимальные пояснения.

После исправления ошибок (если будут) нужно рестартовать сервис TACACS.NET. И в качестве финальной проверки, можно сымитировать подключение устройства с помощью команды tactest (убрал под кат):

Имитация подключения устройства

C:\Users\User>tactest -s 172.16.1.111 -k 12345678 -u user9 -author -p user9

Trying to open connection to 172.16.1.111:49

 

Sending:

 MajorVersion=12

MinorVersion=0

Type=Authorization

SeqNum=1

IsEncrypted=True

IsSingleConnect=True

SessionID=2038531187

DataLength=41

 Authorization Method=Debug

Priv lvl=1

Auth Type=Ascii

Service=None

User=user9

Port=

Rem Addr=127.0.0.1

Args: service=shell     cmd=    priv-lvl=9

 

 

Received Header:

 MajorVersion=12

MinorVersion=0

Type=Authorization

SeqNum=2

IsEncrypted=True

IsSingleConnect=False

SessionID=2038531187

DataLength=17

 

Received Body:

 Authorization Status=PassAdd

User=

Port=

Args: priv-lvl=9

 

Command Pass status = True, Message=,

 

——————

 

SUMMARY STATISTICS

 

——————

 

Total Commands  …………………  1

Successes  ……………………..  1

Failures  ………………………  0

No Results  …………………….  0

Time Taken for commands  …………  0,039 secs

Avg Possible Transactions/Second  …  25

Network Time per command  ………..  0,013 secs

Total Network time  ……………..  0,013 secs

Sent Transactions/Second  ………..  15,9

 

C:\Users\User>

Обращаем внимание, что:

  • Аутентификация прошла успешно,

  • Пользователю сопоставлен корректный уровень привилегий

Примечание: иногда после дальнейших изменений и попытки рестарта, сервис TACACS.NET рестартовать отказывается и выдает следующую картинку:

Обычно это значит, что:

  • Либо IP-адрес в файле tacplus.xml не является локальным для TACACS.NET

  • Либо какая-то ошибка в настройках (например, забыли убрать комментарии вокруг секции с пользователями в файле authentication.xml)

Настраиваем сетевое оборудование Eltex

Настройка сетевого оборудования сводится к следующим командам:

  • Настройкам tacacs

  • Тюнингу доступа к отдельным командам на 9 уровне

Настройки маршрутизаторов ESR:

privilege root level 9 "show running-config"#aaa authentication mode breakaaa authentication login default tacacs local#tacacs-server host 172.16.1.111  key ascii-text 12345678  source-interface [укажите свой, если нужно]

Настройки коммутаторов MES:

privilege exec 9 show running-configprivilege exec 10 configure!tacacs-server host 172.16.1.111 key 12345678tacacs-server host source-interface [укажите свой, если нужно]!aaa authentication mode breakaaa authentication login authorization default tacacs local

После этого можно зайти на сетевые устройства и убедиться, что:

  • Пользователь заходит под доступной учеткой и получает требуемый уровень привилегий (15 для admin, 9 для user9)

  • Для user9 недоступна команда configure, но доступна show running-config

Смягчаем лицензионные ограничения

На самом деле, здесь не будут даваться ссылки на кейгены или кряки. Но, столкнувшись с этими ограничениями (после авторизации появляется Access Denied), придумал свой способ.

И так, ограничения в 5 устройств и 3 пользователя. На первый взгляд, пользователей всего 2 (admin и user9), значит причина в количестве устройств. И после перезапуска сервиса авторизация восстанавливается (типа, приложение не злопамятное).

Таким образом, напрашивается регулярная перезагрузка – и при разумных сценариях работы с 2-4 устройствами одновременно неудобств возникать не должно. А это вполне можно сделать через «Планировщик задач».

Выполняем следующие действия:

  • Создаем файл tacacs.bat следующего содержания:

net stop TACACS.netnet start TACACS.net
  • В «Планировщике задач» создаем новую задачу, которую назовем tacacs и последовательно заполним формы на вкладках.

Здесь ключевыми моментами являются:

  • Выполнение с высшим приоритетом

  • Достаточно частое повторение (в нашем случае – каждые 5 минут)

  • В качестве действия – запуск ранее созданного файла tacacs.bat

В качестве проверки рекомендуется выполнить следующие 3 действия:

  • Остановить сервис TACACS.net

  • Убедиться, что в журнале с требуемой периодичностью появляются сведения о старте и успешном завершении задания (может понадобиться обновить содержимое)

  • Убедиться, что сервис TACACS.net перешел в состояние «выполняется» (хотя иногда состояние «выполняется» не отображается, слева появляются варианты действия «остановить» и «перезапустить» — что также указывает на требуемое состояние сервиса).

Заключение

В этой статье я показал как настроить экзотичный «tacas на Windows», а также показал способ смягчения лицензионных ограничений, заложенных разработчиком в версии 2.1.2.

Справедливости ради, когда одновременных операторов много и подключаются они ко всем железкам, ограничения таки срабатывают (чудес не бывает). Так что, продемонстрировав  «отлуп» как свидетельство работоспособности, TACACS.net был отключен (и здесь главное – не забыть отключить задачу из «Планировщика», которая будет его каждые 5 минут запускать).

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

ссылка на оригинал статьи https://habr.com/ru/articles/1024726/