Аутентификация в Cisco IOS
AAA (Authentication Authorization and Accounting) — система аутентификации авторизации и учета событий, встроенная в операционную систему Cisco IOS, служит для предоставления пользователям безопасного удаленного доступа к сетевому оборудованию Cisco. Она предлагает различные методы идентификации пользователя, авторизации, а также сбора и отправки информации на сервер.
Однако мало того, что ааа по умолчанию выключена; конфигурация этой системы — дело довольно запутанное. Недочеты в конфигурации могут привести либо к нестабильному, небезопасному подключению, либо к отсутствию какого-либо соединения в принципе. В данной статье мы подробно разберем схему настройки аутентификации при помощи aaa.
В общем виде схема аутентификации выглядит так:
Рис. 1. Схема аутентификации (по клику открывается в полном размере)

Рис. 2. Схема аутентификации (продолжение, по клику открывается в полном размере)
Схема разделена на две части не случайно: в первой описывается основной путь прохождения от управляющих линий (vty или con) до методов аутентификации, во второй — сами способы аутентификации.
Но обо всем по порядку.
Отсутствие aaa new-model
В данном случае речь идет о правой части схемы (см. рис. 1).

Рис. 3. Схема аутентификации без aaa new-model
Как уже было сказано, по умолчанию сервис aaa new-model выключен. Подключение к устройству может быть выполнено либо физически, путем подключения через консольный порт (line console 0) без ввода каких-либо учетных данных, либо через протокол TELNET (line vty). Причем в последнем случае, даже если задать IP-адрес на Cisco, получить доступ к устройству не получится ввиду отсутствия пароля (способ аутентификации “line”, см. рис. 3). Если пароль на линии vty задан, то устройство потребует от вас только ввести пароль, что существенно снижает безопасность подключения, так как для входа не требуется вводить логин; впрочем, тут все, конечно, зависит также от сложности пароля, который вы настроили.
При выполнении команды “login local” устройство, установив соединение, будет требовать ввести логин и пароль для входа.
Итак: в случае отсутствия aaa new-model максимум, которого вы можете требовать от Cisco IOS, — это использование пароля (способ аутентификации “line”) и использование логина и пароля из локальной базы данных (способ аутентификации “local”).

Рис. 4. Способы аутентификации без aaa new-model
Конфигурация aaa new-model
Преимущество конфигурации aaa в том, что она содержит множество методов аутентификации (в отличие от предыдущего случая). Включение aaa происходит путем добавления команды aaa new-model в режиме глобальной конфигурации. Далее предстоит выбор методов аутентификации. Все методы организуются в списки, которым присваивается либо значение default, либо конкретное имя списка (list-name). Таким образом, на разные типы линий (aux, vty, con. ) можно «повесить» разные методы аутентификации, разграничив доступ между пользователями.
Пример настройки aaa new-model и списков аутентификации:
Router(config)#aaa new-model
Router(config)#aaa authentication login
Router(config)#line
Router(config-line)#login authentication
Методы
Как было сказано ранее, методов аутентификации в aaa довольно много. Попробуем перечислить наиболее распространенные:
• Local — база данных логинов и паролей храниться на самом сетевом устройстве. Требует username
• Local-case — тот же самый метод, что и local, но чувствительный к регистру при ввде логина.
• Enable — для аутентификации требуется enable .
• Line — для аутентификации требуется пароль line (см. рис. 4 способ аутентификации “line”).
• None — аутентификация не требуется, доступ к устройству предоставляется без ввода логина и пароля.
• Group — подключение серверов с установленным Tacacs+ (http://www.cisco.com/en/US/docs/ios/12_2/security/configuration/guide/scftplus.html#wp1000899) или Radius (http://www.cisco.com/en/US/docs/ios/12_2/security/configuration/guide/scfrad.html#wp1000902)для расширения возможностей конфигурации aaa.
• Group — позволяет настроить группу серверов с установленным Tacacs+ или Radius или настроить частный сервер группы.
Наиболее интересным методом аутентификации является group: он довольно часто встречается в средних и крупных компаниях.
Ниже представлен пример настройки метода group, который обязательно должен реализовываться в совокупности со списками аутентификации.
Пример добавления группы серверов и частного сервера Radius:
Router(config)#aaa authentication login default group servradius1
Router(config)#aaa group server radius servradius1
Router(config-sg-radius)#server 192.168.1.1
Router(config-sg-radius)#server 192.168.1.2
Router(config-sg-radius)#server 192.168.1.3
Router(config-sg-radius)#server-private 192.168.1.10
На этом примере видно, что настроены три Radius-сервера. Но возникает вопрос: как они будут работать? Первое, что приходит в голову: скорее всего, они будут работать по очереди: при недоступности 192.168.1.1 идет обращение к 192.168.1.2 и т. д. Но это не так. В данном примере допущена ошибка: 192.168.1.1, 192.168.1.2, 192.168.1.3 настроены некорректно, а поэтому в аутентификации использоваться не будут. В данной конфигурации не хватает команды Router(config)#radius-server host для каждого из серверов. Более подробное описание настроек можно найти на ресурсах вендора (например: http://www.cisco.com/en/US/docs/ios/12_2/security/configuration/guide/scfrad.html). Схематично это можно представить следующим образом:

Рис. 5. Настройка аутентификации для метода group
Вот, собственно, и вся информация, которая поможет вам успешно настроить аутентификацию на вашем сетевом устройстве. Следуйте схеме, и если ваши настройки привели к “true”, значит будет счастье, а если к “false” — посмотрите на конфигурацию внимательно: возможно, где-то допущена ошибка или доступ к устройству возможен без ввода логина и пароля (способ аутентификации “none”). Надеюсь, статья оказалась полезной и помогла вам разобраться в нюансах конфигурации aaa.
Мы же, в свою очередь, всегда стараемся автоматизировать такие сложные проверки. Как пример — результат проверки MaxPatrol относительно службы ААА:
Configuring AAA Using the Local User Database
Unauthorized access to a network creates the potential for network intruders to gain access to sensitive network equipment and services. The Cisco AAA architecture provides a means to address this threat through systematic, scalable access security. Of course, network users and would-be intruders are not the only ones to try to access the network. Network administrators also need access to network equipment, and AAA offers a secure means to provide this.
Providing network and administrative access in a Cisco environment—regardless of whether it involves campus, dialup, or Internet access—is based on a modular architecture that is composed of three functional components—authentication, authorization, and accounting:
■ Authentication: Authentication is the process by which users and administrators prove
/ Key that they are who they claim to be. The network environment has a variety of mechanisms for providing authentication, including the use of a username and password, token cards, and challenge and response.
■ Authorization: After the user or administrator has been authenticated, authorization services are used to decide which resources he is allowed to access, as well as which operations he may perform.
■ Accounting and auditing: After being authenticated and authorized, the user or administrator begins to access the network. It is the role of accounting and auditing to record what the user or administrator actually did with this access, what he accessed, and how long he accessed it.
AAA for Cisco Routers
Cisco provides three ways to implement AAA services for Cisco routers:
■ Cisco Secure ACS Solution Engine: In this implementation, AAA services on either i Key the router or network access server (NAS), which acts as a gateway to guard access to protected resources, contact an external Cisco Secure ACS Solution Engine for both user and administrator authentication. The Cisco Secure ACS SE is an appliance that contains CSA. This can be an easier approach for some organizations, rather than purchasing hardware, an OS license, CSA license, and ACS license. In this more complex configuration, the administrator would also have to take steps to lock down the server, whereas the ACS SE is already secure.
■ Cisco Secure Access Control Server (ACS) for Windows Server: This software package may be used for user and administrator authentication. AAA services on the router or NAS contact an external Cisco Secure ACS for Microsoft Windows systems. You need a separate license for CSA if this is what you want.
■ Self-contained AAA: AAA services are self-contained in either a router or NAS. Implemented in this fashion, this form of authentication is also known as local authentication.
One common implementation of AAA is its use in authenticating users accessing the corporate LAN through a remote connection such as dialup or over the Internet via an IPsec VPN. Another is authenticating an administrator’s access to a router console port, auxiliary port, or vty ports.
AAA access control is supported on Cisco networking products using either a local username-password database or through a remote security server database. To provide access to a small group of network users, a local security database can be configured in the router using the username xyz password strongpassword command. The username secret command may also be used to configure a username and an associated MD5-encrypted secret.
A remote security server may also be used. This implementation uses a remote security database on a separate server running an AAA security protocol. This can provide AAA services for multiple network devices and a large number of network users.
Router Access Authentication
Three general steps are required to configure a Cisco router to perform AAA using a local user database for authentication. It is critical that you secure the interfaces of all your routers—most importantly, network access servers and perimeter routers connecting to the Internet. AAA commands are used to configure the router to secure administrative access and remote LAN network access. Table 4-2 compares the router access modes, port types, and AAA command elements.
Настройка AAA на CISCO
Authentication, Authorization, and Accounting (AAA) — Аутентификация, авторизация и акаутинг.
Аутентификация (Authentication) — предоставляет методы идентификации пользователей, включающие диалог «логин-пароль», вызовы и ответы, различные сообщения, зависящие от метода выбранного шифрования.
Авторизация (Authorization) — предоставляет методы для удалённого доступа, включающие одновременную авторизацию или авторизацию для каждого сервиса, пользовательские аккаунты и профили, пользовательские группы, поддержку IP, IPX, ARA и Telnet.
Аккаунтинг (Accounting) — служит для сбора и отправки информации на сервер. Используется для биллинга, аудита и отчётности. Может включать следующую информацию: идентификация пользователей, время остановки и запуска, запуск выполняемых команд (таких как PPP), число пакетов и количество байт.
Обзор конфигурации AAA
1. Включение AAA:
R1(config)#aaa new-model
R1(config) # no aaa new-model
2. Если Вы решите использовать расширенные возможности security сервера, то сможете настроить использование параметров security протоколов, таких как RADIUS, TACACS+, или Kerberos.
3. Определите методы списков для аутентификации используя команду
aaa authentication .
4. Примените методы списков к отдельным интерфейсам или line, если это потребуется.
5. (Опционально) Настройте авторизацию, используя команду
aaa authorization .
6. (Опционально) Настройте аккаутинг, используя команду
aaa accounting .
Конфигурация Аутентификации.
Рассмотрим методы аутентификации:
1) Настройка Login аутентификации используя AAA
Выполняйте следующие команды в режиме глобального конфигурирования:
Router(config)# aaa new-model (Включение ААА)
Router(config)# aaa authentication login
Router(config)# line [aux | console | tty | vty] line-number [ending-line-number] (Вносит виды конфигурации line для списков аутентификации)
Router(config-line)# login authentication
Список поддерживаемых методов аутентификации при настройке login
enable Используется пароль enable для аутентификации.
krb5 Используется Kerberos 5 для аутентификации.
krb5-telnet Используется Kerberos 5 Telnet протокол аутентификации, когда используется Telnet для подключения к роутеру. Если выбрана эта аутентификация, то данный метод должен быть первым в списке методов аутентификации.
line Используется пароль line для аутентификации.
local Используется локальная база данных пользователей для аутентификации.
local-case Используется чувствительная к регистру локальная база данных пользователей для аутентификации.
none Не использовать аутентификацию.
group radius Использовать список всех RADIUS серверов для аутентификации.
group tacacs+ Использовать список всех TACACS+ серверов для аутентификации.
group group-name Использовать подмножество RADIUS или TACACS+ серверов для аутентификации, которая определена группой ааа radius сервера или группой сервера tacacs+
Примеры настройки видов аутентификации при методе login
Login аутентификация с использованием пароля Enable
aaa authentication login default enable
Login аутентификация с использованием пароля Kerberos
aaa authentication login default krb5
Login аутентификация с использованием пароля Line
aaa authentication login default line
Login аутентификация с использованием пароля Default
aaa authentication login default local
Login аутентификация с использованием группы RADIUS
aaa authentication login default group radius
Login аутентификация с использованием группы TACACS+
aaa authentication login default group tacacs+
Login аутентификация с использованием группы group-name
aaa group server radius loginrad
server 172.16.2.3
server 172.16.2 17
server 172.16.2.32
Настройка PPP аутентификации Используя AAA
Router(config)# aaa new-model (Объявление ААА в глобальной конфигурации)
Router(config)# aaa authentication ppp
(Создание локального списка аутентификации)
Router(config)# interface interface-type interface-number (Выбор интерфейса для сопоставления списка аутентификации)
Router(config-if)# ppp authentication
Список методов аутентификации для метода PPP
if-needed Не аутентифицировать, если пользователь уже аутентифицировался на TTY line.
krb5 Использовать Kerberos 5 для аутентификации (может быть использовано только с PAP аутентификацией)
local Использовать локальную базу данных пользователей для аутентификации.
local-case Использовать чувствительную к регистру локальную базу данных пользователей для аутентификации.
none Не использовать аутентификацию
group radius Использовать список всех RADIUS серверов для аутентификации.
group tacacs+ Использовать список всех TACACS+ серверов для аутентификации.
group group-name Использовать подмножество RADIUS или TACACS+ серверов для аутентификации, которая определена группой ааа radius сервера или группой сервера tacacs+
Более подробно методы аутентификации описаны на сайте производителя.
Авторизация: краткий обзор
Список названий методов для авторизации:
Auth-proxy — применяется на специфичных политиках безопасности относящихся к пользователям.
Commands — применяется для EXEC режима пользовательского диалога, включает команды глобального конфигурирования ассоциированная с различными типами уровней привилегий.
EXEC — применяется к командам ассоциированными с EXEC пользовательскими терминальными сессиями.
Network — применяется к сетевым подключениям. Может включать PPP, SLIP, или ARAP соединения.
Reverse Access — применяется к reverse Telnet сессиям.
- TACACS+ — Сервер сетевого доступа, обменивающийся информацией об авторизации с TACACS+ security демоном. TACACS+ авторизовывает определёнными специфическими правами для пользователей с помощью ассоциированных атрибутов, пар атрибут-значение, которые хранятся в базе TACACS+ security сервера, с соответствующими пользователями.
- If-Authenticated — Пользователю открывается доступ к определённым функциям, если аутентификация прошла успешно.
- None — Сетевой сервер доступа не запрашивает запроса об авторизации; авторизация не применяется к line интерфейсу.
- Local — Роутер или сервер доступа обращается к локальной базе, как к определённой пользовательской команде, например, специфической авторизации прав пользователей. Только определённые функции могут быть ограничены с помощью локальной базы данных.
- RADIUS — Сервер сетевого доступа запрашивает информацию об авторизации от RADIUS security сервера. RADIUS авторизует определённые специфические права для пользователей с помощью ассоциированных атрибутов, которые хранятся в базе данных RADIUS сервера, с соответствующим пользователем.
Типы AAA авторизации:
Auth-proxy — применяется при специфичных политиках безопасности относящихся к пользователям.
Commands — применяется для EXEC режима пользовательского диалога, включает команды глобального конфигурирования, ассоциированными с различными типами уровней привелегий.
EXEC — применяется к командам, асоциированными с EXEC пользовательскими терминальными сессиями.
Network — применяется к сетевым подключениям. Может включать PPP, SLIP или ARAP соеденения.
Reverse Access — применяется к reverse Telnet сессиям.
Configuration — разрешается загрузка конфигураций с AAA сервера.
IP Mobile — разрешается авторизация для мобильных IP-сервисов.
What does aaa new-model do to your Cisco logins?
1 1 
It has been a long time since I have thought about aaa new-model as a Cisco configuration, mainly because it is not in the CCNA Routing and Switching official curriculum. However, once you attain your certification and become gainfully employed as a network admin, you will likely be exposed to enterprise networks which employ this method of controlling remote access to the Cisco gear. In this blog I will provide an introductory to look at how this command impacts login activities on a couple of Cisco routers.
I labbed it up in GNS3, and here is a view of my topology:

As you can see, I am fond of annotating my topologies, both to follow proper documentation procedures, and also to remind myself what I was doing the next time I launch this topology! I have the Windows 7 box running in Oracle Virtual Box (check out my GNS3 VirtualBox video blog on how to do this if you wish, as the process is similar for Windows 7) just to be able to initiate remote connections to my two routers, so let’s log in to R2. I have a username/password configured and I have issued the command login local on my vty lines. Let’s see what credentials I must supply to gain access:

As is typical, there is no output to the console when typing the password, nevertheless, I must have typed it correctly to gain access. Once again, this is with a username/password and login local configured. On R3, all I have on my vty lines is a password and the login command. Let’s see the difference in the login procedure:

As you can see, I was only required to provide a password – there was no request for a valid user name. The password that I typed was the word ‘login’. Now I will access R3 and from global configuration mode I will issue the command aaa new-model. Then I will examine the config on my vty lines:

Note that the configuration on my vty lines only mentions the password, which I stated previously was the word ‘login.’
Let’s log in again and see what ONLY THAT CHANGE does to the login process:

Now I am once again required to provide both a user name and a password to gain access. Incidentally, the password of “login” no longer works. I must use the password (secret) associated with the user name netadmin in order to pass authentication.
There is much much more that can be done once you have enabled aaa new-model, but as I said, I just wanted to scratch the surface and show that just typing the command with no additional configuration will have an impact on the device. That being said, don’t forget to create the username/password combination so that once you have issued the command, you are still able to remotely access the device.