Сегодняшняя моя статья, будет посвящена тому, как сделать централизованный сервер для аутентификации на устройствах Cisco Systems.
Допустим у нас есть множество cisco оборудования. Есть несколько администраторов, которые обслуживают это оборудование. Согласитесь, достаточно неудобно, на каждом коммутаторе настраивать свои учетные данные (хотя такое тоже часто требуется), да и хотелось бы чтоб все команды введенные при конфигурировании устройства где-то сохранялись.
Здесь там нам и понадобится TACACS+ сервер.
Сегодня TACACS+ мы будем поднимать на *nix системе, в нашем случае мною любимой FreeBSD. К слову сказать, у cisco существуют специальные серверы для этих и многих других целей по безопасности под название Cisco ACS. Но о нем мы поговорим как-нибудь в другой раз.
Итак, сначала как подсказывает нам логика, нам необходимо установить TACACS+ сервер (будем считать что FreeBSD у нас уже поднята).
Для установки будем пользоваться системой портов конечно же 🙂
bsd# make search name=»tac_plus» | more
Port: tac_plus-libradius-5.0.0
Path: /usr/ports/net/tac_plus-libradius
Info: The www.gazi.edu.tr tacacs+ Daemon with pam and libradius support
Maint: gremlin@portal-to-web.de
B-deps:
R-deps:
WWW: http://www.portal-to-web.de/tacacs/
Port: tac_plus-F4.0.4.19
Path: /usr/ports/net/tac_plus4
Info: The Cisco remote authentication/authorization/accounting server
Maint: marcus@FreeBSD.org
B-deps: bison-2.4.1,1 gettext-0.17_1 libiconv-1.13.1 m4-1.4.13,1 perl-5.8.9_3
R-deps:
WWW: http://www.cisco.com/warp/public/480/tacplus.shtml
bsd#
второй порт, это то, что нам нужно.
bsd# cd /usr/ports/net/tac_plus4
bsd# make install clean
После установки, перейдем собственно к конфигурированию.
Основной файл конфигурации, находится здесь:
/usr/local/etc/
там мы можем найти файл tac_plus.conf.example, где можем посмотреть синтаксис нашего конфиг файла. Но мы будем создавать все с нуля.
Итак создаем файл:
bsd# touch tac_plus.conf
Начинаем описывать.
Сначала укажем так называемый ключ, который служит для аутентификации между cisco устройством и tacacs сервером:
key = qwerty1234
Затем укажем где мы будем хранить файл accounting (где будет отмечать кто когда зашел на устройство, что вводил, и так далее) :
accounting_file = /var/log/tacacc.log
Теперь перейдем к описанию пользовательской части:
user = sasha {
login = cleartext asdfgh
}
таким образом, мы создали пользователя с именем: sasha и паролем: asdfgh
Так как мы рассматриваем самый просто вариант настройки , то и группы мы указывать не будем. Все это рассмотрим в другой статье.
Пароль здесь у нас хранится в открытом виде. Что есть не очень хорошо конечно. Можно его немного зашифровать, например алгоритмом DES.
С tac_plus поставляется специальная утилита, которая помогает нам в кодировании нашего пароля, пользоваться ей не просто, а очень просто 🙂
bsd# tac_pwd
Password to be encrypted: asdfgh
6CJRtXWH.xwGQ
bsd#
Таким образом мы получили зашифрованный пароль, чтобы его использовать, нужно переписать секцию user следующим образом:
user = sasha {
login = des 6CJRtXWH.xwGQ
}
Ну вот собственно наш самый что вобще может существовать конфигурационный файл готов.
Следующее, что необходимо сделать, это попробовать запустить наш tac_plus сервис. Для этого сначала нужно прописать в /etc/rc.conf :
tac_plus_enable=»YES»
Ну и собственно попробовать запустить:
bsd# /usr/local/etc/rc.d/tac_plus start
Starting tac_plus.
bsd#
Если конфигурационный файл составлен без ошибок, все запостится нормально.
Теперь давайте перейдем к настройке cisco устройства (например какого-нибудь коммутатора, маршрутизатора, и др.)
В простейшем виде, конфигурация cisco устройства выглядит ввиде нескольких настроек. Все настраивается в режиме глобальной конфигурации.
Активируем aaa модель. (аутентификацию, авторизацию, учет)
sw(config)#aka new-model
Указываем что для аутентификации будем использовать tacacs+ сервер, в случае если он недоступен по каким-то причинам, будем применяться локальная аутентификация:
sw(config)#aaa authentication login default group tacacs+ local
Указываем адрес нашего tacacs+ сервера:
sw(config)#tacacs-server host z.z.z.z
где z.z.z.z это ip адрес сервера, на котором запущен tacacs+.
Ну и собственно осталось нам ввести только ключ (помните мы в самой первой строен нашего tac_plus.conf указывали его), который позволит «наладить» нам связь между cisco устройством и tacacs+
sw(config)#tacacs-server key 0 qwerty1234
Теперь давайте выйдем с telnet / ssh сеанса, и попробуем снова зайти на cisco. Увидим нечто подобное:
вводим имя пользователя (в нашем примере это sasha), далее пароль (в нашем случае asdfgh), после чего мы должны попасть на наше устройство.
Что и требовалось нам.
Но вот только мы не можем зайти в enable режим. И это правильно, мы ведь его не описали в конфигурационном файле tacacs+.
Сделаем это сейчас.
Добавим еще одного user в /usr/local/etc/tac_plus.conf
user = $enable$ {
login = cleartext sasha
}
Далее необходимо перезапустить сервис,
bsd# /usr/local/etc/rc.d/tac_plus restart
Stopping tac_plus.
Waiting for PIDS: 11596.
Starting tac_plus.
bsd#
Если увидели нечто подобное, то все хорошо.
Пробуем зайти на cisco в enable режим. Если были аккуратны при настройке, то все должно получиться. Что и требовалось.
В файле /var/log/tacacc.log вы можете увидеть что кто делал на устройстве, когда, с какого ip адреса, и так далее.
Теперь давайте рассмотрим еще один момент и закончим на этот раз.
Я уже «заикался» по этому поводу выше. Что у нас произойдет, если по каким-то причинам не будет доступен tacacs+ сервер? Давайте «потушим» сервис и посмотрим что произойдет.
bsd# /usr/local/etc/rc.d/tac_plus stop
Stopping tac_plus.
Waiting for PIDS: 11682.
bsd#
Пробуем войти на cisco и видим.
Ага, теперь у нас не спрашивают имя пользователя, это говорит о том, что аутентификация будет проходить локально. Таким образом, Старший администратор будет знать локальные данные для аутентификации, а другим администраторам раздавать данные из tacacs сервера.
На этом на сегодня все. В следующий раз рассмотрим группы, права доступа, в общем перейдем к более тонкой настройке.
Good Luck 🙂