AAA / TACACS + пароль на коммутаторе Cisco всегда терпит неудачу при втором запросе пароля

9

Всякий раз, когда вы входите в сетевое устройство с использованием AAA / TACACS +, если я нажимаю на подсказку пароля после запроса имени пользователя, вторая подсказка пароля всегда дает сбой, даже если пароль правильный. Мне нужно снова дождаться приглашения имени пользователя и правильно ввести пароль в первом запросе пароля сразу после этого. Другими словами, всякий раз, когда я вижу второе приглашение пароля, оно не будет работать.

Смотрите очищенное взаимодействие и конфигурацию ниже.

Проверка доступа пользователя
Имя пользователя: имя пользователя
Пароль:

Пароль: (здесь всегда отказывает)
% Доступ закрыт

Проверка доступа пользователя
Имя пользователя: имя пользователя
Пароль:

Подключено к s-site-rack-agg2.example.net в строке 1 (имя сайта).
втор-сайт стойки-agg2 #

Что может отличаться от этого второго запроса пароля для объяснения такого поведения?

Типичный AAA и связанный с ним конфиг:

ааа новая модель
ааа аутентификация логин по умолчанию группа tacacs + локальная линия
ааа аутентификация логин КОНСОЛЬ
ааа аутентификация включить группу по умолчанию tacacs + включить
ааа авторизация exec группа по умолчанию tacacs + локальная if-authenticated
Команды авторизации aaa 1 группа tacacs по умолчанию + локальная проверка подлинности if
Команды авторизации aaa 7 групповых учетных записей по умолчанию + локальная проверка подлинности if
Команды авторизации aaa 15 групповых tacacs по умолчанию + локальная if-authenticated
ааа бухгалтерия exec по умолчанию старт-стоп группа tacacs +
ааа учетные команды 0 по умолчанию старт-стоп группа tacacs +
ааа бухгалтерия 1 стандартная группа старт-стоп tacacs +
ааа бухгалтерия команды 7 по умолчанию старт-стоп группа tacacs +
ааа бухгалтерия 15 стандартные группы старт-стоп tacacs +
ааа система учета по умолчанию старт-стоп группа tacacs +
!
ip tacacs source-interface Loopback0
хост сервера tacacs -prmiaryipremoved- одиночное соединение
хост сервера tacacs -secondaryipremoved- одиночное соединение
время ожидания tacacs-сервера 10
направленный запрос tacacs-сервера
ключ tacacs-server 7 -removed-
!
линия кон 0
 логин аутентификации КОНСОЛЬ
линия vty 0 4
 расположение
 exec-timeout 60 0
 пароль 7
 транспортный ввод telnet ssh
generalnetworkerror
источник
Никогда не доходил до сути, так как сбои паролей заняли> таймаут для TACACS, чтобы вернуть ответ, поэтому второе приглашение было от lineпароля. Правильные пароли сразу же получили ответ от TACACS. Перемещение на новые серверы ACS решило проблему, такую ​​же конфигурацию, поэтому похоже, что это была проблема ACS.
generalnetworkerror

Ответы:

4

Я бы сделал отладку на вашем сервере TACACS +, пока вы пытаетесь это сделать.

Я предполагаю, что вы хотите использовать только аутентификацию TACACS и использовать только локальный вход, если он не может получить доступ к серверу?

Попробуйте использовать это:
aaa authentication login default group tacacs+ line
aaa authentication enable default group tacacs+ enable

Также смотрите этот сайт: он имеет несколько хороших примеров и объяснений

http://my.safaribooksonline.com/book/networking/cisco-ios/0596527225/tacacsplus/i13896_ heada _4_2 # X2ludGVybmFsX0h0bWxWaWV3P3htbGlkPTA1OTY1MjcyMjUlmkXXTXVXXRX

Я предполагаю, что, поскольку у вас есть ключевое слово "local" в:
aaa authentication login default group tacacs+ local line

Аутентификация TACACS + возвращает ошибку, поэтому маршрутизатор пытается выполнить локальную аутентификацию. Я думаю, вы должны предоставить нам line vtyпродезинфицированную конфигурацию. Если у тебя есть
line vty 0 15
login local

Затем он будет делать аутентификацию по имени пользователя / паролю, в противном случае он делает пароль

knotseh
источник
Добавлены очищенные lineконфиги в Q.
generalnetworkerror
Из очень краткого обзора отладки видно, что ACS не возвращается достаточно быстро при неверном пароле, поскольку это единственное время, когда я вижу тайм-ауты с сообщением о сервере TACACS. Все остальные времена - нулевые таймауты.
generalnetworkerror
4

Я думаю, что ваша конфигурация довольно опасна, и вы выглядите нерешительным, если вы используете «enable / line» или «local» в качестве запасного варианта, правильный ответ локальный, никогда не используйте «enable» и особенно никогда «line» для чего-либо (line - это два способ «зашифрован», а не односторонний хеширование).

Я бы порекомендовал эту конфигурацию вместо:

aaa new-model
! uses tacacs, fallsback to local user if tacacs not working
aaa authentication login default group tacacs+ local
! user gets enabled by tacacs or by enable password
aaa authentication enable default group tacacs+ enable
! console user is authorized as well (gets enabled, if such permission)
aaa authorization console
! configuration commands are authorized as well as exec commands (Good to prevent dangerous commands)
aaa authorization config-commands
! user privilege level is recovered from tacacs or from local account
aaa authorization exec default group tacacs+ local
! level 15 commands are authorized (you really only need this) 
aaa authorization commands 15 default group tacacs+ if-authenticated 
! level 1, 15 commands are logged (you really only need these two)
aaa accounting commands 1 default start-stop group tacacs+
aaa accounting commands 15 default start-stop group tacacs+
!
! fallback user consulted only when tacacs is broken
username sikrit privilege 15 secret <password>

'sikrit' пользователь должен использоваться, когда tacacs не работает (его нельзя использовать, если TACACS отвечает), нет необходимости в 'line' пароле в VTY, поскольку с ним никогда не консультируются. Пароль «enable» не требуется, так как с ним никогда не консультируются. Если вы хотите, чтобы резервный пользователь не был включен, просто создайте другого с привилегией 1.
Однако я добавил поддержку 'enable', если вы все-таки захотите его использовать.

Если вы используете OOB, и доступ OOB уже защищен / аутентифицирован, вы можете разрешить пользователю OOB всегда использовать локальную аутентификацию, на случай, если TACACS сломан, но IOS ошибочно считает, что это не так, тогда вы добавите что-то подобное :

aaa authentication login CONSOLE local
!
line con 0
 login authentication CONSOLE
ytti
источник
Идея aaa authentication login default group tacacs+ local lineзаключалась в том, чтобы использовать пароль линии в качестве ловушки, если шаблон AAA был развернут на устройстве, где TACACS был сломан и локальные пользователи не были определены. И на самом деле aaa authentication login CONSOLE noneв моем конфиге было то, что я изначально не показывал. (Да, я склонен доверять физическому консольному доступу к устройствам больше, чем я, вероятно, должен.)
generalnetworkerror
Я на самом деле не мог воспроизвести в лаборатории проблему, которую вы видите. Если у вас не настроен «локальный» пароль, и IOS считает, что TACACS недоступен, то имеет смысл попросить пароль «line», но для меня, для достижимого TACACS, он не отступил до «line». Может быть, ошибка в IOS или в TACACS, из-за которой сбой аутентификации выглядит как сбой соединения TACACS (возможно, стоит попробовать без 'single-connection')
ytti
Второй запрос пароля без второго соответствующего запроса имени пользователя говорит нам окончательно, что он не смог lineввести пароль в системе без каких-либо локальных пользователей, созданных для localаутентификации? [ aaa authentication login default group tacacs+ local line.] tacacs + терпит неудачу, локальный пропускается, так как нет локальных пользователей, так что тогда пароль линии?
generalnetworkerror
Я не думаю, что это должно сделать откат на tacacs + auth_failure, он должен делать это только для пропущенных tacacs + reply. Так что я бы изучил варианты, почему IOS считает, что tacacs + не отвечает (полагаю, что он отвечает). Возможно, стоит попробовать другую конфигурацию tacacs (например, удалить одиночное соединение), если это ошибка IOS, она может удалить триггер ошибки.
2006 года
Вы, вероятно, не видели мой комментарий к другому ответу об отладке, показывающий, что tacacs + берет> 30 секунд, чтобы ответить, только если пароль неправильный; к тому времени системы считают, что ответ сервера tacacs отсутствует, и переходят к следующему в аутентификации. Если пароль правильный, ответ tacacs будет немедленным.
generalnetworkerror
4

Я не уверен, что в этом виновата конфигурация вашего локального устройства, а скорее сам ваш сервер TACACS. TACACS передает запрос имени пользователя / пароля с сервера TACACS (и, возможно, внешнего хранилища идентификаторов) на устройство, поэтому, если вы используете ACS (например) и настроили его для связи с AD для аутентификации пользователя, вам нужно воспринимать приглашение имени пользователя / пароля как поступающее от контроллера домена, а не от самого устройства.

Недавно я столкнулся с проблемой, подобной этой, которая была исправлена ​​патчем для ACS - опять же, я предполагаю, что вы используете ACS и получаете его из AD для аутентификации пользователя / проверки группы и т. Д. Идентификатор ошибки Cisco был CSCtz03211 и в основном ACS 5.3 отправлял множеству попыток аутентификации в AD за одну единственную попытку «имя пользователя / пароль» на устройство. Это может привести к тому, что если пользователь с первого раза введет пароль в тупик, в AD будут отправлены несколько экземпляров ошибочного сочетания имени пользователя и пароля, а учетная запись пользователя будет фактически заблокирована, что приведет к последующим неудачным попыткам входа в систему. устройство, даже если пользователь правильно ввел свое имя пользователя / пароль со второй попытки (это поведение, конечно, зависит от пороговых значений блокировки, установленных вами для учетных записей пользователей в AD).

Просто кое-что рассмотреть (без знания вашей реализации сервера TACACS).

Джон Дженсен
источник