tm

   Пришлось как-то раз заняться довольно абсурдным занятием - установка на Windows сервиса Tacacs+. Связано это с тем, что в конторе отродясь не было серверов на Linux, а сетевого оборудования развелось довольно много + штат сотрудников IT отдела составлял 9 человек.

Присутпим. На tacacs.net скачиваем дистраибутив и выполняем установку по-умолчанию. При установке, возможно, инсталятор предложит ввести ключ для шифрования соединения между сервером авторизации и сетевым устройством. Можно не указывать, а потом ввести вручную через файл конфигурации. Всё, можно лезть в конфигу. Все ссылки на конфижные файлы есть на меню "Пуск" в соответствующих разделах.

  • tacplus.xml - основной файл конфигурации.

 В этом файле только два параметра которые я поменял:

<Port>49</Port> #порт на котором будет работать Tacacs+.
<LocalIP>192.168.4.6</LocalIP> #IP адрес сервера который будет слушать запросы.
<AccountingLog RolloverDays="30" RolloverMB="10" DeleteDays="90" LoggingLevel="Information">  </AccountingLog> #параметры логирования. Оставил только логи входа на оборудование и вводимые команды.
  • Далее правим файл clients.xml.

Смысл в том, что бы в нужных группах указать пароль для шифрования соединения между сервером авторизации и сетевыми устройствами и разрешённые сети для авторизации.

У меня это выглядит так:

clients.xml

LOCALHOST GROUP

<ClientGroup Name="LOCALHOST">
<Secret ClearText="Nc2f22p44jo4(*#" DES=""></Secret> - пароль можно указывать в зашифрованном виде в параметре DES="", но я отнёсся к этому без фанатизма.
<Clients>
<Client>127.0.0.1</Client>
</Clients>
</ClientGroup>

INTERNAL GROUP
<ClientGroup Name="INTERNAL">
<Secret ClearText="Nc2f22p44jo4(*#" DES=""></Secret>
<Clients>
<Client>10.0.0.0/8</Client>
<Client>172.16.0.0/12</Client>
<Client>192.168.0.0/16</Client> - сети из которых принимаются запросы на авторизацию от сетевых устройств.
</Clients>
</ClientGroup>


DEFAULT GROUP
<ClientGroup Name="DEFAULT">
<Secret ClearText="Nc2f22p44jo4(*#" DES=""></Secret>
<Clients>
<Client>.*</Client>
</Clients>
</ClientGroup>
</ClientGroups>
</Clients>

 

 

  • Плывём дальше - authentication.xml

 В этом файле мы правим настройки для обмена информации с контроллером домена. Т.е. от какого пользователя (служебного) будет запрашиваться принадлежность пользователей к той или иной группе. Пользователи здесь подразумеваются те, которые будут пытаться авторизоваться на сетевое оборудование.

 

authentication.xml

    <UserGroup>
      <Name>operator</Name>
      <AuthenticationType>Windows_Domain</AuthenticationType>  
      <LDAPServer>192.168.4.6:389</LDAPServer>
      <LDAPUserDirectorySubtree>OU=IT,OU=Office,OU=PCS,DC=pcs,DC=local</LDAPUserDirectorySubtree>
      <LDAPGroupName>operator</LDAPGroupName>
      <LDAPAccessUserName>ssv</LDAPAccessUserName>
      <LDAPAccessUserPassword ClearText="" DES="GuuHJQ/11AT1En3kcYmc6mrg=="></LDAPAccessUserPassword>
     </UserGroup>


    <UserGroup>
      <Name>adm</Name>
      <AuthenticationType>Windows_Domain</AuthenticationType>  
      <LDAPServer>192.168.4.6:389</LDAPServer>
      <LDAPUserDirectorySubtree>OU=IT,OU=Office,OU=PCS,DC=pcs,DC=local</LDAPUserDirectorySubtree>
      <LDAPGroupName>adm</LDAPGroupName>
      <LDAPAccessUserName>ssv</LDAPAccessUserName>
      <LDAPAccessUserPassword ClearText="" DES="GuuHJQ/11AT1En3kcYmc6mrg=="></LDAPAccessUserPassword>
     </UserGroup>


    <UserGroup>
      <Name>monitoring</Name>
      <AuthenticationType>Windows_Domain</AuthenticationType>  
      <LDAPServer>192.168.4.6:389</LDAPServer>
      <LDAPUserDirectorySubtree>OU=IT,OU=Office,OU=PCS,DC=pcs,DC=local</LDAPUserDirectorySubtree>
      <LDAPGroupName>monitoring</LDAPGroupName>
      <LDAPAccessUserName>ssv</LDAPAccessUserName>
      <LDAPAccessUserPassword ClearText="" DES="GuuHJQ/11AT1En3kcYmc6mrg=="></LDAPAccessUserPassword>
     </UserGroup>

 

 В отдельном блоке прописываются настройки для каждой группы доступа. В примере это группы operator, adm и monitoring. К настройкам относятся IP адрес и порт на котором работает контроллер домена, путь к служебной учётке, группа доступа и, собственно, сама учётка с паролем. Пароль, кстати, тут указан в зашифрованном виде. В наборе приложений Tacacs+ есть утилитка для шифрования:

 

cd /d "C:\Program Files\TACACS.net"\
C:\Program Files\TACACS.net>tacdes.exe password
Encrypted password is HCv368BmiLGqNYfQNF74mA==

 Или из соответствующего пункта меню в меню "Пуск".

 

  • Финишная прямая - authorization.xml

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

authorization.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Version 1.2 -->
<Authorizations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Authorizations>
    <Authorization>
     
        <UserGroups>
            <UserGroup>Network Engineering</UserGroup>
        </UserGroups>
    
        <ClientGroups>
            <ClientGroup>LOCALHOST</ClientGroup>
            <ClientGroup>INTERNAL</ClientGroup>
        </ClientGroups>
        <AutoExec>
        </AutoExec>
       
        <Shell>
            <Permit>.*show.*</Permit> <!--This will allow all show commands -->
            <Deny>.*</Deny>           <!--This will deny all other commands -->
        </Shell>
        <Services>
        </Services>
    </Authorization>

    <Authorization>
        <UserGroups>
            <UserGroup>adm</UserGroup>
        </UserGroups>
        <Shell>
            <Permit>write.*</Permit>
            <Permit>.*</Permit> <!--This will allow all  commands -->
            <!--<Deny>.*</Deny>           This will deny all other commands -->
        </Shell>
        <AutoExec>
            <Set>priv-lvl=15</Set>
        </AutoExec>
    </Authorization>


    <Authorization>
        <UserGroups>
            <UserGroup>operator</UserGroup>
        </UserGroups>
        <Shell>
            <Permit>show.*</Permit>
            <Permit>ping.*</Permit>
            <Permit>traceroute.*</Permit>
            <Permit>clear.*</Permit>
            <Permit>configure terminal</Permit>
            <Permit>ip route.*</Permit>
            <Deny>.*</Deny>           <!--This will deny all other commands -->
        </Shell>
        <AutoExec>
            <Set>priv-lvl=15</Set>
        </AutoExec>
    </Authorization>


    <Authorization>
        <UserGroups>
            <UserGroup>monitoring</UserGroup>
        </UserGroups>
        <Shell>
            <Permit>.*</Permit>
            <!-- <Deny>.*</Deny> -->
        </Shell>
        <AutoExec>
            <Set>priv-lvl=1</Set>
        </AutoExec>
    </Authorization>


<!-- DEFAULT PROFILE -->
    <Authorization>
        <Shell>
            <Permit>.*</Permit> <!--This will allow all show commands -->
            <!--<Deny>.*</Deny>           This will deny all other commands -->
        </Shell>
    </Authorization>
</Authorizations>
</Authorizations>

 

В xml прописаны правила с примерами, которые можно оставить без изменений. Добавил только свои группы и настройки к ним.

 Прежде чем запускать процесс имеет смысл проверить работает ли связность с контроллером домена:

 C:\Program Files\TACACS.net>tactest.exe -s 192.168.4.6 -k <ключ из clients.xml> -u ssv -p <пароль для служебного пользователя>.

 Если всё нормально, то в конце отчёта увидите Success 1. И на по следок проверяем конфигурационные файлы:

C:\Program Files\TACACS.net\tacverify.exe

Сообщит о файле и строке в которой найдены ошибки.

Ну, и:

 

C:\>net stop tacacs.net
C:\>net start tacacs.net 

Вся оригинальная документация по настройке находится на tacacs.net

В разделе сетевого оборудования смотрите настройки Tacacs+ для коммутаторов D-Link DES 30xx серии и маршрутизатора Cisco.

 
Комментарии  
0 # nasipad 01.03.2017 21:47
а чем RADIUS не устроил?
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Admin 01.03.2017 22:09
Честно говоря, ни разу не приходилось работать с этим сервисом. С "рождения" приучен к такаксу)
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Добавить комментарий


Защитный код
Обновить