Безопасность и VPN : Протоколы аутентификации

Настройка маршрутизатора Cisco c TACACS+ Authentication

28 июля 2013 - Машинный перевод
Другие версии: PDF-версия:pdf | Перевод, выполненный профессиональным переводчиком (22 сентября 2010) | Английский (21 июля 2006) | Отзыв


Содержание


Введение

В данном документе описана настройка маршрутизатора Cisco для аутентификации с TACACS+, выполняющемся на UNIX. TACACS+ предоставляет меньше возможностей, чем доступные для приобретения Cisco Secure ACS для Windows или Cisco Secure ACS UNIX.

ПО TACACS+ ранее предлагаемое Cisco Systems больше не распространяется и не поддерживается компанией Cisco Systems.

В настоящее время можно найти много версий бесплатного ПО TACACS+, для этого достаточно ввести "TACACS+ freeware" в строке поиска любой поисковой системы в Интернете. Компания Cisco не дает специальных рекомендаций по использованию какой-либо конкретной версии бесплатного ПО TACACS+.

Cisco Secure Access Control Server (ACS) можно приобрести по обычным международным каналам распределения и продаж Cisco. Cisco Secure ACS для Windows содержит все обязательные компоненты, необходимые для независимой установки на рабочую станцию Microsoft Windows. Cisco Secure ACS Solution Engine поставляется с предустановленной лицензией на ПО Cisco Secure ACS. Разместить заказ можно на главной странице размещения заказов Cisco Ordering Home Page (только для зарегистрированных пользователей).

 Примечание.Для получения пробной 90-дневной версии Cisco Secure ACS для Windows необходима учетная запись CCO и связанный с ней контракт на обслуживание.

Конфигурация маршрутизатора в данном документе создана на маршрутизаторе работающем под управлением ПО Cisco IOS® версии 11.3.3. ПО Cisco IOS версии 12.0.5.T и более поздние использует group tacacs+ вместо tacacs+, поэтому инструкции, например aaa authentication login default tacacs+ enable будут иметь вид aaa authentication login default group tacacs+ enable.

Дополнительные сведения о командах маршрутизатора см. в документации на ПО Cisco IOS.

Предварительные условия

Требования

Для этого документа отсутствуют особые требования.

Используемые компоненты

Сведения в данном документе получены при использовании ПО Cisco IOS версии 11.3.3 и ПО Cisco IOS версии 12.0.5.T и более поздних.

Сведения, представленные в этом документе, были получены от устройств, работающих в специальной лабораторной среде. Все устройства, описанные в этом документе, были запущены с чистой (стандартной) конфигурацией. В рабочей сети необходимо изучить потенциальное воздействие всех команд до их использования.

Условные обозначения

Подробные сведения об условных обозначениях см. в документе "Условное обозначение технических терминов Cisco".

Authentication:

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

  1. Обязательно скомпилируйте код TACACS+ (TAC+) на сервере UNIX.

    Приведенные здесь конфигурации сервера подразумевают использование серверной программы Cisco TAC+. Конфигурации маршрутизатора должны функционировать независимо от разработчика серверной программы (Cisco или др.). TAC+ должен функционировать в качестве корневого.

  2. Скопируйте тестовый_файл, приведенный в конце настоящего документа, разместите его на сервере TAC+ и присвойте имя test_file.

    Убедитесь, что демон tac_plus_executable запущен с test_file. В этой команде параметр -P задает проверку наличия ошибок компиляции, но не запускает демон:

    tac_plus_executable -P -C test_file

    Чтобы увидеть содержимое файла test_file воспользуйтесь прокруткой, не должно быть сообщений подобных cannot find file, cleartext expected--found cleartext или unexpected} (не удалось найти, ожидается незашифрованный текст—найден незашифрованный текст или непредвиденный). В случае ошибок проверьте путь к файлу test_file, перепроверьте ввод и повторно проведите тестирование прежде чем продолжать.

  3. Начало настройки TAC+ на маршрутизаторе.

    Войдите в режим enable и введите configure terminal перед набором команд. Этот синтаксис команды предотвращает блокировку доступа к маршрутизатору на начальном этапе, если не выполняется tac_plus_executable:

    
    !--- Turn on TAC+.
    
       aaa new-model
       enable password whatever
       
    !--- These are lists of authentication methods.
       !--- "linmethod", "vtymethod", "conmethod", and 
       !--- so on are names of lists, and the methods 
       !--- listed on the same lines are the methods 
       !--- in the order to be tried. As used here, if 
       !--- authentication fails due to the 
       !--- tac_plus_executable not being started, the 
       !--- enable password is accepted because
       !--- it is in each list. 
         
       !     
       aaa authentication login linmethod tacacs+ enable
       aaa authentication login vtymethod tacacs+ enable
       aaa authentication login conmethod tacacs+ enable
       !
       
    !--- Point the router to the server, where #.#.#.# 
       !--- is the server IP address.
    
       !             
       tacacs-server host #.#.#.#
       line con 0
            password whatever              
            
    !--- No time-out to prevent being locked out 
            !--- during debugging. 
                
            exec-timeout 0 0
            login authentication conmethod
       line 1 8
            login authentication linmethod
            modem InOut
            transport input all
            rxspeed 38400
            txspeed 38400
            flowcontrol hardware
       line vty 0 4
            password whatever
            
    !--- No time-out to prevent being locked out 
            !--- during debugging. 
      
            exec-timeout 0 0
            login authentication vtymethod
  4. Прежде чем продолжать убедитесь в наличии доступа к маршрутизатору через порт консоли и по протоколу Telnet. Поскольку tac_plus_executable не выполняется пароль enable password должен приниматься.

     Примечание.Не разрывайте соединение с маршрутизатором через порт консоли и оставайтесь в режиме enable. Этот сеанс связи не должен прерываться по тайм-ауту. На этом этапе доступ к маршрутизатору ограничен, необходимо иметь возможность внести изменения в конфигурацию без блокировки самого пользователя.

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

    terminal monitor
      debug aaa authentication
  5. В качестве корневого запустите TAC+ на сервере:

    tac_plus_executable -C test_file -d 16
  6. Убедитесь, что TAC+ запущен:

    ps -aux | grep tac_plus_executable

    !--- или

    ps -ef | grep tac_plus_executable

    Если TAC+ не запускается, вероятно ошибка в синтаксисе файла test_file. Вернитесь к шагу 1, чтобы исправить это.

  7. Введите tail -f /var/tmp/tac_plus.log, чтобы на сервере увидеть взаимодействие между маршрутизатором и сервером.

     Примечание.Параметр -d 16 на шаге 5 разрешает отправку вывода всех транзакций в журнал /var/tmp/tac_plus.log.

  8. Теперь для пользователей Telnet (VTY) должна действовать аутентификация через TAC+.

    При выполнении отладки на маршрутизаторе и сервере (шаги 4 и 7) подключитесь по протоколу Telnet к маршрутизатору из другой части сети.

    На маршрутизаторе появляется приглашение ввести имя пользователя и пароль, на которое необходимо ответить:

    'authenuser'   (username from test_file)
    'admin'   (password from test_file)

    Пользователь authenuser входит в группу admin с паролем admin.

    Наблюдайте за сервером и маршрутизатором, где можно видеть взаимодействие TAC+ — какие данные куда отправляются, ответы, запросы и т.д. Прежде чем продолжать устраните все неполадки.

  9. Если необходимо, чтобы пользователи проходили аутентификацию через TAC+ для входа в режим enable, убедитесь в активности сеанса связи через порт консоли и добавьте следующую команду в маршрутизатор:

    
    !--- For enable mode, list 'default' looks to TAC+ 
      !--- then enable password if TAC+ does not run.
    
      aaa authentication enable default tacacs+ enable

    Теперь пользователи должны входить в режим enable через TAC+.

  10. При выполнении отладки на маршрутизаторе и сервере (шаги 4 и 7) подключитесь по протоколу Telnet к маршрутизатору из другой части сети. На маршрутизаторе появляется приглашение ввести имя пользователя и пароль, на которое необходимо ответить:

    'authenuser'   (username from test_file)
    'admin'   (password from test_file)

    При входе в режим enable, маршрутизатор запрашивает пароль, на что нужно ответить:

    'cisco'  ($enable$ password from test_file)

    Наблюдайте за сервером и маршрутизатором, где можно видеть взаимодействие TAC+ — какие данные куда отправляются, ответы, запросы и т.д. Прежде чем продолжать устраните все неполадки.

  11. Остановите процесс TAC+ на сервере, оставаясь подключенным через порт консоли, с целью убедиться, что пользователям по-прежнему доступен маршрутизатор даже при отказе TAC+:

    ps -aux | grep tac_plus_executable

    !--- или

    ps -ef | grep tac_plus_executable)
      kill -9 pid_of_tac_plus_executable

    Повторите действия предыдущего шага для установления сеанса Telnet и режима enable. Затем маршрутизатор определяет, что процесс TAC+ не отвечает, и разрешает пользователям выполнить вход и войти в режим enable, используя пароли по умолчанию.

  12. Проверьте аутентификацию пользователей, подключающихся через порт консоли, через TAC+. Для этого возобновите работу сервера TAC+ (шаги 5 и 6) и установите сеанс Telnet с маршрутизатором (который должен пройти аутентификацию через TAC+).

    Оставайтесь подключенным к маршрутизатору по протоколу Telnet в режиме enable пока не убедитесь, что вы можете войти в маршрутизатор через порт консоли.

    Разорвите исходное соединение с маршрутизатором через порт консоли, затем вновь подключитесь к порту консоли. Теперь, при подключении через порт консоли, аутентификация пользователей при входе в систему и режим enable, используя пароли и идентификаторы (см. шаг 10), должна осуществляться через TAC+.

  13. При выполнении отладки на маршрутизаторе и сервере (шаги 4 и 7), оставаясь подключенным по протоколу Telnet или через порт консоли, подключитесь через модем к каналу 1.

    Теперь пользователи канала должны входить в систему и режим enable через TAC+.

    На маршрутизаторе появляется приглашение ввести имя пользователя и пароль, на которое необходимо ответить:

    'authenuser'   (username from test_file)
    'admin'   (password from test_file)

    При входе в режим enable, маршрутизатор запрашивает пароль.

    Ответ:

    'cisco'   ($enable$ password from test_file)

    Наблюдайте за сервером и маршрутизатором, где можно видеть взаимодействие TAC+ — какие данные куда отправляются, ответы, запросы и т.д. Прежде чем продолжать устраните все неполадки.

    Теперь пользователи должны входить в режим enable через TAC+.

Добавление авторизации

Добавление авторизации необязательно.

По умолчанию на маршрутизаторе имеются три уровня команд:

  • уровень привилегий 0 содержит: disable, enable, exit, help и logout

  • уровень привилегий 1 — обычный уровень сеанса Telnet — приглашение: router>

  • уровень привилегий 15 — уровень enable — приглашение: router#

Поскольку набор доступных команд зависит от набора функций IOS, версии Cisco IOS, модели маршрутизатора и др., отсутствует полный список всех команд для уровней 1 и 15. Например, show ipx route отсутствует в наборе функций только IP, show ip nat trans отсутствует в ПО Cisco IOS версии 10.2.x, поскольку NAT не было внедрено на тот момент и show environment отсутствует в моделях маршрутизаторов без блока питания и контроля температуры. Чтобы определить команды, доступные в конкретном маршрутизаторе на определенном уровне, введите ? в командной строке маршрутизатора на этом уровне привилегий.

Авторизация для порта консоли не была добавлена как функция до исправления ошибки с идентификатором Cisco CSCdi82030 (только длязарегистрированных пользователей). Авторизация для порта консоли отключена по умолчанию, чтобы уменьшить вероятность случайной блокировки доступа к маршрутизатору. Если пользователь имеет физический доступ к маршрутизатору через консоль, то авторизация для порта консоли не очень эффективна. Однако, авторизацию для порта консоли можно включить на канале con 0 в образе, в котором исправлена ошибка с идентификатором Cisco CSCdi82030 (только длязарегистрированных пользователей), командой:

authorization exec default|WORD
  1. Маршрутизатор можно настроить для авторизации команд через TAC+ на всех или только некоторых уровнях.

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

    aaa authorization commands 1 default tacacs+ none
      aaa authorization commands 15 default tacacs+ none
  2. Во время работы сервера TAC+, установите сеанс Telnet с маршрутизатором, используя authenuser в качестве имени пользователя.

    Поскольку пользователю authenuser установлен атрибут default service = permit в test_file, этот пользователь может выполнять все функции.

    Выполнив вход в маршрутизатор, войдите в режим enable и включите отладку авторизации:

    terminal monitor
      debug aaa authorization
  3. Установите сеанс Telnet с маршрутизатором, используя имя пользователя authoruser и пароль operator.

    Этот пользователь не может выполнять две команды show: traceroute и logout (см. тестовый_файл).

    Наблюдайте за сервером и маршрутизатором, где можно видеть взаимодействие TAC+ (какие данные куда отправляются, ответы, запросы и т.д.). Прежде чем продолжать устраните все неполадки.

  4. Если нужно настроить пользователя для автоматического перенаправления (autocommand), удалите знаки комментария в строках для пользователя transient в тестовом_файле и укажите действительный IP-адрес назначения вместо #.#.#.#.

    Остановите и запустите вновь сервер TAC+.

    На маршрутизаторе:

    aaa authorization exec default tacacs+

    Установите сеанс Telnet с маршрутизатором, используя имя пользователя transient и пароль transient. Выполняется команда telnet #.#.#.# и пользователь transient перенаправляется в другой пункт назначения.

Добавление учета

Добавление учета необязательно.

Ссылка на файл учета в тестовом файле: accounting file = /var/log/tac.log. Но учет не выполняется, если не настроен в маршрутизаторе (при условии, что на маршрутизаторе выполняется ПО Cisco IOS версии старше 11.0).

  1. Включите учет в маршрутизаторе:

    aaa accounting exec default start-stop tacacs+
      aaa accounting connection default start-stop tacacs+
      aaa accounting network default start-stop tacacs+
      aaa accounting system default start-stop tacacs+

     Примечание.Учет AAA не осуществляет учет каждой команды в некоторых версиях. Выходом из этой ситуации является использование авторизации каждой команды и протоколирование событий в журнале учета. (Обратитесь к идентификатору ошибки Cisco CSCdi44140.), Если вы используете образ, в котором это установило, используется [Cisco IOS Software Release 11.2 (1.3) F, 11.2 (1.2), 11.1 (6.3), 11.1 (6.3) AA01, 11.1 (6.3) CA с 24 сентября 1997] можно также включить учет команды.

  2. Во время выполнения TAC+ на сервере введите эту команду на сервере, чтобы увидеть записи, вносимые в файл учета:

    tail -f /var/log/tac.log

    Затем выполните вход в маршрутизатор и выход, завершите сеанс Telnet с маршрутизатором и т.д. Если требуется, введите на маршрутизаторе:

    terminal monitor
      debug aaa accounting

Тестовый файл

- - - - - - - (cut here) - - - - - - -

# Set up accounting file if enabling accounting on NAS
accounting file = /var/log/tac.log

# Enable password setup for everyone:
user = $enable$ {
        login = cleartext "cisco"
        }

# Group listings must be first:
group = admin {
# Users in group 'admin' have cleartext password
        login = cleartext "admin"
        expires = "Dec 31 1999"
}

group = operators {
# Users in group 'operators' have cleartext password
        login = cleartext "operator"
        expires = "Dec 31 1999"
}

group = transients {
# Users in group 'transient' have cleartext password
        login = cleartext "transient"
        expires = "Dec 31 1999"
}

# This user is a member of group 'admin' & uses that group's password to log in.
#  The $enable$ password is used to enter enable mode.  The user can perform all commands.
 user = authenuser {
        default service = permit
        member = admin
        }

# This user is limitted in allowed commands when aaa authorization is enabled:
 user = telnet {
        login = cleartext "telnet"
        cmd = telnet {
        permit .*
        }
        cmd = logout {
        permit .*
        }
        }

# user = transient {
#       member = transients
#       service = exec {
        # When transient logs on to the NAS, he's immediately
        # zipped to another site
#       autocmd = "telnet #.#.#.#"
#       }
#       }

# This user is a member of group 'operators' 
# & uses that group's password to log in 
 user = authenuser {
        member = operators
# Since this user does not have 'default service = permit' when command 
# authorization through TACACS+ is on at the router, this user's commands
# are limited to:
        cmd = show { 
        permit ver
        permit ip
        }
        cmd = traceroute {
        permit .*
        }
        cmd = logout {
        permit .*
        }
}
- - - - (end cut here) - - - -

 Примечание.Это сообщение об ошибке формируется, если сервер TACACS недоступен: %AAAA-3-DROPACCTSNDFAIL: accounting record dropped,send to server failed: system-start. Убедитесь в работоспособном состоянии сервера TACACS+.

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 13865