Error aaa server group local does not exist

I have configured by Security Apppliance ASA 5520 with the username and password . Enable password was also configured .. ASA not added in AAA . When i

Software

  • Register Now
    or LOG IN to post
  • Recent Activity
  • FAQs
  • Guidelines

Question

  • Creator

    Topic

  • ASA 5520 Security Appliance

    Locked

    by
    ckprem
    ·
    about 11 years, 5 months ago

    I have configured by Security Apppliance ASA 5520 with the username and password .

    Enable password was also configured .. ASA not added in AAA .

    When i login the ASA it asks for the password .. never ask for the username ..

    Can some one help me to list the commands that i need to add, as am new to configure ASA appliance .

  • Creator

    Topic


All Answers

  • Author

    Replies

    • September 9, 2011 at 8:36 pm

      #2888691

      Clarifications

      by
      ckprem
      ·
      about 11 years, 5 months ago

      In reply to ASA 5520 Security Appliance

      Clarifications

    • September 10, 2011 at 1:36 pm

      #2888647

      ASA

      by
      drumright
      ·
      about 11 years, 5 months ago

      In reply to ASA 5520 Security Appliance

      The answer you can find real easily:
      1. How are you connecting to the ASA (Console Cable(blue cable that came with the device), ethernet (cat 5 plugged into ports 0-7 and connected directly to your PC used to connect to the ASA?, or another method?)
      2. Ethernet connection = ssh, telnet, web gui IE,Mozilla, Chrome? (port 80 =http, port 443) =https )
      3. Without a username required when logging in usually is a telnet connection (note: insecure connection password is sent in clear text, DO NOT USE IF CONNECTING OVER THE INTERNET!. SSL ONLY ON INTERNET CONNECTION.
      TELNET NOTE: TELNET SESSIONS WILL USUALLY AUTHENTICATE FROM THE LOCAL AUTHENTICATION SERVER (ASA 5520) AND WILL REQUIRE THE DEFAULT SECURITY LEVEL TO SIGN IN (UNLESS YOU CHANGED THIS SETTING?) Use the default password you set for telnet sessions, if you did not set this then try Cisco’s default password, I think it is Cisco for password. Should this not work use the login password you set, if that does not work use the enable password; why? you say, well it is possible you set requirements for telnet logins to use security level authentication 15 (full access or enable security level 7 by accident.)
      However if you do use these passwords over telnet please make sure you are doing this on the internal lan. What app or utility are you using to connect? Putty? secureCRT? Telnet (CLI ex: DOS or cmd in xp then type telnet (Asa ip address)), web browser ?
      Try using ssh to connect if you are connecting via ethernet, now if you are using the console cable then you use the conf t/line con 0-?/password command in the cli to set this password, if you did not do this at all, then try the default password you used the first time you connected, once logged in type: en “ENTER”, you will be asked to input password, use the password you set for the enable password. Once you can enter enable mode, proceed to configure Terminal mode and set the passwords for the console, telnet (if you use it…), and the ssh passwords. Set the authentication level and the authentication server to use when allowing logins. login local = asa usernames and passwords, Radius (Microsoft internet authentication server that uses Active directory users accounts to authenticate, or ldap (server setup to handle ldap requests.)
      enable “ENTER”
      CONF T enter
      line con 0 press Tab (this will drop down a line and display how many console sessions you can set this password for. it looks like Router#line con 0 (0 – 15) meaning if you want to set the password for all 15 sessions the same you type
      line con 0 – 15 “ENTER”
      RouterLine(0-15)
      type password
      you will be asked to input the password do so then press enter
      follow the screen as it will want you to enter the password again
      Once you have set the password you can type a ? and press enter
      this will display a list of commands to use, read the descriptions and set the authentication server (do Local and create users on the asa)
      authentication level (you will set this to at or below the level your user is set at, if not you will not be allowed to login as your authentication level will be to low and your session is dropped.)
      Set the level 1 – 5
      create a user and give that user security level 7 – 15 if you plan on using the login for management purposes.
      Now you can also tell the ASA to allow specific ip addresses to connect remotely, or deny specific as well as any ip address to connect, whatever you do don’t reject any any for remote login you will never get in again unless connected with a console cable.
      Once you have set a login level for the line console or telnet, or ssh.
      Set a user with the required authentication level as the line or protocols (telnet, ssh), or set the user to 15 and given the user a password. Allowed the required login protocol for your ip address, ip range, or subnet (internal usually), try to connect.
      if you are able to hit the login screen, use the password you set to login, and do a sh run, sh start, sh arp, and you like what you see, go ahead and do a copy run start.
      this will copy the running configuration (the changes you made) to the startup config (default config before changes) Now if the device gets powered down it will restart with your changes saved and applied. However if you don’t like your changes or you are disconnected and cannot reconnect if you did not copy run start, shut ASA down, turn it back on and all the changes you made are gone. You can start over and try again, practice makes perfect….

      • September 14, 2011 at 2:45 am

        #2809068

        Reponse To Answer

        by
        ckprem
        ·
        about 11 years, 5 months ago

        In reply to ASA

        yes ..we do telnet … But line con ..; this command is not available … also as mentioned … there is no AAA Server

    • September 14, 2011 at 9:58 am

      #2809016

      ASA Configs

      by
      icebergtitanic
      ·
      about 11 years, 5 months ago

      In reply to ASA 5520 Security Appliance

      conf t
      management inside
      username AdminUserName password AdminPassword priv 15

      Also, might want these
      ssh 0.0.0.0 0.0.0.0 inside
      http 0.0.0.0 0.0.0.0 inside
      crypto key generate rsa mod 2048

      If you’re new to ASA, you probably also want to enable your ASDM instead of trying to do command line. That’s what the http line does.

      Best practices is to use SSH rather than Telnet to access your firewall. You have to have an RSA encryption key for that, which is what the crypto line does. To kill the telnet access, enter the telnet line with “no” in front. (Example “no telnet 0.0.0.0 0.0.0.0 inside”)

      (This whole thing assumes you named your inside-facing interface/VLAN to be “inside”. This would be a “nameif” command on the interface, or on the VLAN assigned to the interface)

      The line con vty 0 15 would be used on switches and routers, but is not in the ASAs. The ASAs operating system is slightly different than the IOS used by routers and switches.

      Do make sure to save your config. “wr mem” is the quickest way.

      • September 15, 2011 at 7:58 am

        #2808913

        Reponse To Answer

        by
        ckprem
        ·
        about 11 years, 4 months ago

        In reply to ASA Configs

        am logging through secure CRT through telnet … I have configured the username xxxx password xxx with previlege as 15. ..

        The enable password also set …. Not configured under AAA

        When i try to telnet it asks for password and not username ..

        What should i configure to let ask for username first and then password ???>

        Pls suggest !

    • September 15, 2011 at 8:11 am

      #2808910

      Oops! Forgot the most important part!

      by
      icebergtitanic
      ·
      about 11 years, 4 months ago

      In reply to ASA 5520 Security Appliance

      aaa authentication telnet console LOCAL

      You may also need this if it’s missing:

      aaa auth enable console LOCAL

      • September 17, 2011 at 12:42 am

        #2876857

        Reponse To Answer

        by
        ckprem
        ·
        about 11 years, 4 months ago

        In reply to Oops! Forgot the most important part!

        first tried to enter aaa auth enable console local — success

        Second tried to enter aaa authentication telnet console LOCAL
        – Got error message stating ” aaa server group local does not exist”

        Pls advise how to create aaa server group local .

    • September 19, 2011 at 11:20 am

      #2876661

      Shouldn’t need to create it

      by
      icebergtitanic
      ·
      about 11 years, 4 months ago

      In reply to ASA 5520 Security Appliance

      The server group LOCAL is the built-in user database. This is especially weird if the first command worked and the second didn’t. Sure you didn’t typo the second command?

      I think that this is a CASE-SENSITIVE command…

      So your first command should have been
      aaa auth enable console LOCAL
      and NOT
      aaa auth enable console local

      Try re-doing it with LOCAL in the commands.

      Might have to have you post a sanitized config (change your IPs and password hashes prior to uploading)

    • September 19, 2011 at 3:25 pm

      #2876620

      all you need to do

      by
      rjluvkc
      ·
      about 11 years, 4 months ago

      In reply to ASA 5520 Security Appliance

      asa#config t
      asa# password “yourpassword”
      This will take care of that first password when you first telnet in.
      You should see this when you telnet then:
      User Access Verification

      Password: (enter the one you created here)
      Type help or ‘?’ for a list of available commands.
      asa> en (this is the line that will prompt you for enable pw after)
      Password: *********
      asa#
      Hope this helps you out.

  • Author

    Replies

I have asdm-645.bin on my ASA

i entered the following:

ASA(config)# username cisco password cisco123 priv 15
ASA(config)# aaa authentication http console local
    ERROR: aaa-server group local does not exist

Why am i getting the error message?  I am trying to configure my ASA so i can access via the ASDM interface via my inside interface.

Here is my running-config

ASA Version 8.4(1)
!
hostname ASA
domain-name ASA
enable password 2KFQnbNIdI.2KYOU encrypted
passwd 2KFQnbNIdI.2KYOU encrypted
names
!
interface Ethernet0/0
 shutdown
 no nameif
 no security-level
 no ip address
!
interface Ethernet0/1
 nameif inside
 security-level 100
 ip address 10.14.9.9 255.255.255.0
!
interface Ethernet0/2
 shutdown
 no nameif
 no security-level
 no ip address
!
interface Ethernet0/3
 shutdown
 no nameif
 no security-level
 no ip address
!
interface Management0/0
 nameif mgmt
 security-level 0
 no ip address
!
boot system disk0:/asa841-k8.bin
ftp mode passive
dns server-group DefaultDNS
 domain-name HSV-ASA
pager lines 24
mtu inside 1500
mtu mgmt 1500
icmp unreachable rate-limit 1 burst-size 1
asdm image disk0:/asdm-645.bin
no asdm history enable
arp timeout 14400
timeout xlate 3:00:00
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute
timeout tcp-proxy-reassembly 0:01:00
dynamic-access-policy-record DfltAccessPolicy
http server enable
http 10.0.0.0 255.0.0.0 inside
no snmp-server location
no snmp-server contact
telnet timeout 5
ssh timeout 5
console timeout 0
threat-detection basic-threat
threat-detection statistics access-list
no threat-detection statistics tcp-intercept
webvpn
username cisco password ffIRPGpDSOJh9YLq encrypted privilege 15
!
class-map inspection_default
 match default-inspection-traffic
!
!
policy-map type inspect dns preset_dns_map
 parameters
  message-length maximum client auto
  message-length maximum 512
policy-map global_policy
 class inspection_default
  inspect dns preset_dns_map
  inspect ftp
  inspect h323 h225
  inspect h323 ras
  inspect netbios
  inspect rsh
  inspect rtsp
  inspect skinny
  inspect esmtp
  inspect sqlnet
  inspect sunrpc
  inspect tftp
  inspect sip
  inspect xdmcp
  inspect ip-options
!
service-policy global_policy global
prompt hostname context
call-home
 profile CiscoTAC-1
  no active
  destination address http https://tools.cisco.com/its/service/oddce/services/DDCEService
  destination address email callhome@cisco.com
  destination transport-method http
  subscribe-to-alert-group diagnostic
  subscribe-to-alert-group environment
  subscribe-to-alert-group inventory periodic monthly
  subscribe-to-alert-group configuration periodic monthly
  subscribe-to-alert-group telemetry periodic daily
Cryptochecksum:6fe8b69d88a1c3ebab847254ccbca7d3
: end
ASA#

Ответить на тему  Страница 1 из 1  [ Сообщений: 8 ] 
Автор Сообщение

Зарегистрирован: 24 июн 2014, 07:56
Сообщения: 46

Сообщение asa vs ad 2008 r2

Доброго всем дня.
Начал изучать cisco asa 5515-x.
В данный момент решил раздавать интернет через группы ad.win2008r2 rus.
На данный момент получил билет kerberos.

Код:

# test aaa-server authentication CROSS host 192.168.2.1
Username: novik
Password: *******
INFO: Attempting Authentication test to IP address <192.168.2.1> (timeout: 12 seconds)
INFO: Authentication Successful
linka(config)#

Теперь хотел уточнить, мне обязательно сisco по LDAP соединить?! Или же можно при помощи билета как-то обойтись?
Просто хоть и разные продукты, но squid достаточно kerberos.
Благодарю всех за потраченное на меня время.

12 авг 2014, 09:54

Профиль

real1st

Зарегистрирован: 04 окт 2011, 19:33
Сообщения: 1316

Сообщение Re: asa vs ad 2008 r2

МОжет что-то поменялось, но я считал, что список юзеров и групп ASA исключительно по LDAP вытаскивает

12 авг 2014, 11:32

Профиль

qbk17

Зарегистрирован: 24 июн 2014, 07:56
Сообщения: 46

Сообщение Re: asa vs ad 2008 r2

Пытаюсь по LDAP к AD.
В дереве mvte.local -> Users — создал пользователь userldap. Пользователь находится в группе в админ домена.

Код:

cisco(config)# aaa-server CROSS protocol ldap
cisco(config-aaa-server-group)# aaa-server CROSS (internal) host 192.168.2.1
cisco(config-aaa-server-host)# ldap-base-dn dc=mvte,dc=local
cisco(config-aaa-server-host)# ldap-scope subtree
cisco(config-aaa-server-host)# ldap-naming-attribute sAMAccountName
cisco(config-aaa-server-host)# ldap-login-password 111
cisco(config-aaa-server-host)# ldap-login-dn cn=userldap,cn=Users,dc=mvte,dc=local
cisco(config-aaa-server-host)# server-type auto-detect
cisco(config-aaa-server-host)# debug ldap 255
debug ldap  enabled at level 255
cisco(config-aaa-server-host)# test aaa-server authentication CROSS host 1$
INFO: Attempting Authentication test to IP CROSSdress <192.168.2.1> (timeout: 12 seconds)

[-2147483646] Session Start
[-2147483646] New request Session, context 0x00007fff2b2bed88, reqType = Authentication
[-2147483646] Fiber started
[-2147483646] Creating LDAP context with uri=ldap://192.168.2.1:389
[-2147483646] Connect to LDAP server: ldap://192.168.2.1:389, status = Successful
[-2147483646] supportedLDAPVersion: value = 3
[-2147483646] supportedLDAPVersion: value = 2
[-2147483646] LDAP server 192.168.2.1 is Active directory
[-2147483646] Binding as userldap
[-2147483646] Performing Simple authentication for userldap to 192.168.2.1
[-2147483646] Simple authentication for userldap returned code (49) Invalid credentials
[-2147483646] Failed to bind as administrator returned code (-1) Can’t contact LDAP server
[-2147483646] Fiber exit Tx=194 bytes Rx=603 bytes, status=-2
[-2147483646] Session End
ERROR: Authentication Server not responding: AAA Server has been removed

Скажите, где мои культяпки показали себя во всей красе :)

12 авг 2014, 12:32

Профиль

P@ve1

Зарегистрирован: 01 янв 1970, 03:00
Сообщения: 2111

Сообщение Re: asa vs ad 2008 r2

Как минимум:
server-type microsoft
Еще желательно явно указать порт и включить опцию ldap over ssl

12 авг 2014, 13:38

Профиль

real1st

Зарегистрирован: 04 окт 2011, 19:33
Сообщения: 1316

Сообщение Re: asa vs ad 2008 r2

Цитата:

[-2147483646] Simple authentication for userldap returned code (49) Invalid credentials

Дайте с винды:

Код:

dsquery user -name userldap

Уверен, что вот это:

Код:

cisco(config-aaa-server-host)# ldap-login-dn cn=userldap,cn=Users,dc=mvte,dc=local

неверно в части cn=userldap

12 авг 2014, 14:08

Профиль

qbk17

Зарегистрирован: 24 июн 2014, 07:56
Сообщения: 46

Сообщение Re: asa vs ad 2008 r2

Всем большое спасибо. Все заработало.
Решилось тем, что установил

Код:

ldap-login-dn domainuserldap

12 авг 2014, 14:19

Профиль

qbk17

Зарегистрирован: 24 июн 2014, 07:56
Сообщения: 46

Сообщение Re: asa vs ad 2008 r2

Доброго всем позитивного.
Скажите сделал аутентификацию

Код:

access-list AUTH permit tcp 192.168.2.0 255.255.255.0 any eq 80
aaa authentication match AUTH inside CROSS

Теперь борюсь с тем, что не пускало кого попало из домена. А пускало именно тех, кто в конкретной группе Inet.
Делаю

Код:

ldap attribute-map LAD
map-name memberOf IETF-Radius-Class
map-value memberOf OU=Inet,DC=company,DC=com

map-value memberOf OU=Inet,DC=company,DC=local
ERROR: % Incomplete command

Скажите, что не правильно делаю. Вроде в нете все так и описывается. Благодарю.

13 авг 2014, 14:20

Профиль

P@ve1

Зарегистрирован: 01 янв 1970, 03:00
Сообщения: 2111

Сообщение Re: asa vs ad 2008 r2

Лучше Identity Firewall изучи — с ним намного красивее и удобнее все делается.

13 авг 2014, 15:47

Профиль

Показать сообщения за:  Поле сортировки  
Ответить на тему   Страница 1 из 1  [ Сообщений: 8 ] 

CISCO AAA — настройка оборудования CISCO для работы с AAA. Общие сведения, концепция AAA, необходимые команды CLI.

Тема AAA хоть и является важной, но как-то она находится не в центре внимания. Во-первых, это вспомогательный механизм (такой же, к примеру, как SNMP, NTP, DHCP..). Во-вторых, требуется настройка сервера AAA, что обычно не входит в обязанности сетевого инженера.

Отсюда бОльшая часть статей, которые встречал в интернете на тему ААА, ну.. мне они не понравились. Просто кусок (булыжник/кирпич) команд без всякого объяснения. Да и команды.. это рабочее всё конечно, но команды не самые оптимальные. Кроме этого, ни слова про локальный AAA.


Концепция AAA

Кратко суть понятия AAA (аутентификация, авторизация и аккаунтинг):

  • Authentication — Пользователь должен подтвердить, что он тот, за кого себя выдаёт;
  • Authorization — На основании учётной записи определяется к каким ресурсам пользователю может быть предоставлен доступ и какие действия может выполнять, затем этот доступ предоставляется;
  • Accounting — Учёт и аудит, осуществляет сбор информации по использованию пользователем сетевого устройства и формирует отчеты.

Модели организации удалённого доступа

Доступ к плоскости менеджмента может быть настроен по разному:

  • Настройкой пароля командой password на линии консоли и линиях VTY. При подключении к устройству нужно ввести только пароль. Такой метод считается уязвимым к подбору пароля, не рекомендуется к использованию;
  • С помощью локальной базы, вводится логин и пароль. Термин «локальная база» не подразумевает какую-то реальную базу данных, а только то, что реквизиты доступа хранятся на самом устройстве. Основная модель при небольшом числе устройств;
  • Локальный вариант AAA (является альтернативой модели локальной базы). Использует локальную базу для своей работы. Основное достоинство — предоставление резервных способов входа на устройство по сравнению с локальной базой;
  • Серверный AAA. Основная модель при большом числе устройств. Локальная база используется при этом как резервный способ входа на устройство. Этот вариант наиболее интересен, поэтому настраивать «на железе» и траблшутить буду только его (во 2 части).

Тестовая среда

Как всегда используем EVE-NG и возьмем 2 роутера с разными версиями IOS, так как команды отличаются:

  • Version 12.4(15)T14;
  • Version 15.6(2)T
CISCO AAA

Ну и собственно на этих роутерах будем проверять всякие мульки из теории. И еще буду использовать вывод с устройства без привязки к данной схеме, допустим для разбора общего вида команды на устройстве, тогда в выводе будет просто Router.

Включение AAA на устройстве

На устройстве CISCO по-умолчанию поддержка AAA выключена и в конфигурации можно увидеть:

!
no aaa new-model
!

Чтобы включить поддержку AAA нужно выполнить команду:

Router(config)# aaa new-model
  • До ввода этой команды никакие другие команды AAA недоступны и при попытке их ввода IOS будет вести себя так, как будто ничего про эти команды не знает;
CISCO AAA

Это может сбить с толку, поэтому если какая-то команда ААА не вводится, то первым делом нужно проверить наличие aaa new-model в конфигурации.

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

Что не так с консолью? Да всё нормально, это защита от полной потери доступа к устройству, если команда была введена по незнанию.

Пример 1

Проверим на примере. Настроим на одном из роутеров (IOS15) вход только по паролю, как не рекомендуется делать 🙂

IOS15(config)# service password-encryption - чтобы пароль в явном виде не отсвечивал в конфигурации
IOS15(config)# line vty 0 15
IOS15(config-line)# password 123Cisco
IOS15(config-line)# transport input telnet - SSH не настроен
IOS15(config-line)# login - требует предварительного ввода команды password, иначе ошибка

И подсоединяемся с компьютера через Telnet:

CISCO AAA

Специально сделал акцент что будет, если не задан пароль на enable. Это важный момент номер один, поэтому:

IOS15(config)# enable secret Cisco123

Проверяем подключение ещё раз:

CISCO AAA

Успешный вход, включаем ААА:

IOS15# config t
IOS15(config)# aaa new-model

И снова пробуем подсоединиться:

CISCO AAA

А у нас никакого юзернейма настроено не было.. Важный момент два. Поэтому нужно взять за правило — всегда настраивать пользователя и пароль для enable. Возможно на момент настройки это не имеет значения, но сильно поможет в будущем, возможно уже другому инженеру.

Пример 1.1

Возвращаемся в прошлый пример и посмотрим в конфигурации на линии VTY до включения ААА:

!
line con 0
line aux 0
line vty 0 4
password 7 133416085A5E577E7E72
login
transport input telnet
line vty 5 15
password 7 142613115D56797F717E
login
transport input telnet
!

Теперь после включения ААА:

!
line con 0
line aux 0
line vty 0 4
password 7 133416085A5E577E7E72
transport input telnet
line vty 5 15
password 7 142613115D56797F717E
transport input telnet
!

Команда login, разрешающая вход по паролю на линиях VTY, волшебным образом исчезла. Попробуем её ввести:

IOS15(config)# line vty 0 15
IOS15(config-line)# login
% Incomplete command.

Просто login уже не вводится. Почему так происходит? Потому что после включения ААА работают команды только ААА:

IOS15(config-line)# login ?
authentication  Authentication parameters.
ctrlc-disable   Disable CONTROL-C during login.

Ожидается команда login authentication Отключим ААА:

IOS15(config)# no aaa new-model
Changing configuration back to no aaa new-model is not supported.
Continue?[confirm]
IOS15(config)#

Смотрим на линии VTY:

!
line con 0
line aux 0
line vty 0 4
password 7 133416085A5E577E7E72
login
transport input telnet
line vty 5 15
password 7 142613115D56797F717E
login
transport input telnet
!

Хотя IOS и обругалась, но login снова на своём месте. Обратное правило тоже действует: если были настроены команды ААА, потом ААА отключен — все настроенные команды ААА исчезнут из конфигурации, заново включаем ААА — все команды опять появятся в конфигурации.

Пример 1.2

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

Сразу закидывает на 15 уровень, так как добавили при настройке пользователя  параметр privelege 15. Проверяем линии VTY:

!
line con 0
line aux 0
line vty 0 4
login local
transport input ssh
line vty 5 15
login local
transport input ssh
!

Включаем ААА, пробуем подсоединиться, вход опять успешный:

Но подключение происходит уже на уровень 1 и требуется ввод команды enable, так как в рамках ААА нет никакой информации об уровне прав (авторизации). Пишем команду enable, вводим пароль от enable, попадаем на 15 уровень. Если пароль на enable не был настроен, то ошибка:

Опять проверяем линии VTY:

!
line con 0
line aux 0
line vty 0 4
transport input ssh
line vty 5 15
transport input ssh
!

Выключаем ААА, пробуем подсоединиться, вход успешный, сразу попадаем на 15 уровень, login local, разрешающий вход  с помощью локальной базы, на месте.

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


Аутентификация

Пользователь вводит логин, который принадлежит некоторой учётной записи, а потом пароль. Правильный ввод пароля и является подтверждением того, что логин принадлежит именно этому пользователю.

Настройка AAA аутентификации

Для проведения аутентификации с помощью AAA используется команда aaa authentication. Нужно разобраться как работает эта команда и дальше всё сразу станет ясно и понятно, потому что все дальнейшие команды ААА похожи на эту по своей структуре.

Default и List-Name

Посмотрим опции команды:

CISCO AAA

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

Router(config)# aaa authentication login { default | list-name } method1.. [method4]
  • Основная часть команды aaa authentication login;
  • Либо default, либо list-name;
  • Далее идут от 1 до 4 различных метода аутентификации

Команд aaa authentication login в конфигурации может быть несколько:

!
aaa authentication login default..
aaa authentication login list1..
aaa authentication login list2..
...

Таким образом можно использовать команду aaa authentication login default и/или команду aaa authentication login list-name. В чём разница?

  • При использовании оции default набор методов автоматически применяется ко всем линиям, включая консоль сразу после ввода команды;
  • При использовании именованного списка list-name набор методов не применяется ни к одной линии после ввода команды. Необходимо вручную указывать list-name для требуемых линий, при этом он заменяет собой default, если тот настроен:
R1(config)# line vty 0 4
R1(config-line)# login authentication list-name

Зачем нужен list-name? Чтобы для разных линий задать разные методы аутентификации.

Пример 2

Допустим, была настроена команда aaa authentication login с опцией default, команда автоматически применилась ко всем линиям, затем вводится команда aaa authentication login с именованным списком list1 и затем уже list1 вручную применяется только к линии консоли.

Получается при логине удалённо через SSH применяется набор методов от команды с default, при логине с консоли набор методов от команды с list1.

Рекомендация:

  • Если для всех линий используется одинаковый набор методов, то нужно использовать только опцию default. Это упрощает настройку устройства и читаемость конфигурации

Именно это имел в виду, когда выше говорил о неоптимальных командах: человек задаёт только именованный список и потом его упрямо вколачивает во все линии. Так делать не надо, для этого есть default.

Когда default в явном виде заменяется именованным списком на линиях, как его вернуть назад?

Пример 2.1

Соответственно получаем следующее:

IOS15(config)# line vty 0 4 
IOS15(config-line)# no authentication login

Эта команда работает только в 12 версии IOS, в 15.6 такой команды нет.

 Команда успешно отрабатывает и в 12, и в 15 IOS:

IOS15(config)# line vty 0 4 
IOS15(config-line)# login authentication default

AAA: Warning authentication list "default" is not defined for LOGIN. 

Такое предупреждающее сообщение появится, если метод default не задан в конфигурации, но list-name всё равно уберётся.

Методы

Теперь подробнее про методы:

  • Методов может быть от 1 до 4;
  • Методы используются в том порядке, в котором они указаны слева направо;
  • Если проверка первым методом даёт ошибку (например первым методом стоит аутентификация с помощью AAA-сервера, а он в текущий момент выключен), то используется следующий метод и так далее;
  • Если проверка первым методом возвращает отказ (например при неверном вводе пароля, пароль проверяется на AAA-сервере и сервер присылает отказ), то следующие методы не используются и происходит выход из режима аутентификации.

Основные методы (на самом деле методов больше):

  • enable — использует пароль для enable для аутентификации;
  • local — использует локальную базу для аутентификации;
  • local-case — использует локальную базу для аутентификации, при этом имя пользователя чувствительно к регистру;
  • none — без аутентификации, при этом методе вход разрешён для всех;
  • group radius — использует список всех серверов RADIUS для аутентификации;
  • group tacacs+ — использует список всех серверов TACACS+ для аутентификации;
  • group group-name — использует сервера RADIUS или TACACS+, которые указаны в группе group-name для аутентификации.
Выводы и замечания
  • Если в локальной базе создана запись для пользователя Admin1, то при использовании метода local его можно вводить как admin1, ADMIN1, ADmin1 и так далее, то для метода local-case только как Admin1, иначе ошибка. Другими словами метод local-case даёт дополнительную защиту;
  • Если все предыдущие методы выдали ошибку и последним методом стоит none, то аутентификация будет успешной. Поэтому данный метод применяется только для тестирования и никогда в продакшене;
  • Самый распространённый набор методов это group radius local (или group tacacs+ local у кого ACS, ISE). Сначала идёт обращение к серверу AAA, при сбое сервера используется логин/пароль из конфигурации сетевого устройства (локальной базы)
Пример 3

Методы аутентификации практически никогда не настраиваются по одному. Допустим введена команда:

Router(config)# aaa authentication login default group radius

И RADIUS-сервер не отвечает на запросы (выключен, сломан), тогда аутентификация закончится ошибкой и инженер не сможет попасть на сетевое устройство.

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

Настройка AAA аутентификации для enable
Router(config)# aaa authentication enable default methods

Всё всё таже самая команда, отличие: вместо login здесь идёт enable, нет опции list-name и  список возможных методов меньше:

Router(config)# aaa authentication enable ?
default The default authentication list.

Редко применяется при серверном ААА, так как уровень привилегий задаётся в политике на ААА-сервере и сразу применяется при входе пользователя (после авторизации), команда enable при этом просто не нужна. Может использоваться при локальном ААА.

Для того чтобы отрабатывал серверный вариант команды:

Router(config)# aaa authentication enable default group radius local

На сервере необходимо добавить пользователя $enab15$ и поместить его в группу на сервере, для которой настроена сетевая политика полного доступа (почему так — во второй части). Соответственно при воде команды enable запрашивается только пароль и нужно вводить пароль этого пользователя.

Пример 3.1

Настроим команды:

IOS15(config)# aaa authentication login default none
IOS15(config)# aaa authentication enable default none

И попробуем подсоединиться:

Залетает мухой без вопросов о паролях.


Авторизация

В общем случае авторизация производится автоматически и не требует от пользователей дополнительных действий. Выполняется сразу же после успешной аутентификации пользователя (RADIUS). Обычно применяется в случае серверной реализации AAA. 

Об особенностях авторизации для протокола TACACS+ поговорим во 2 части.

Ещё раз отметим:

  • Без ААА авторизация выполняется либо через параметр privelege в команде username, либо непосредственно через команду enable;
  • С ААА и использованием ААА аутентификации, но без ААА авторизации, процесс входа на устройство не знает уровень привилегий пользователя и помещает его на уровень 1.
Настройка ААА авторизации

Используется команда aaa authorization. Опять посмотрим опции команды:

CISCO AAA

Интересует только опция exec, которая отвечает за доступ к  режиму выполнения команд (EXEC). Остальное уже разбиралось выше.

Router(config)# aaa authorization exec { default | list-name } method1.. [method4]

Ещё важные опции:

  • network — используется для авторизации через сетевые протоколы (типа PPP);
Router(config)# aaa authentication ppp default group radius
Router(config)# aaa authorization network group radius
  • commands level (0-15) — для авторизации исполнения команд заданного уровня. Применяется вместе с протоколом TACACS+ (подробнее во 2 части).

Эта команда позволяет ассоциировать пользователя, выполняющего вход, с определённым  уровнем привилегий оболочки EXEC. К сожалению подробнее тут без примера настройки сервера показать не получится.

Выводы и замечания
  • При использовании команды aaa authorization в случае серверного варианта AAA, пользователь получает права в соответствии с политикой на сервере. И в своём сеансе действует в рамках этих прав. Возможно увидит только часть конфигурации и будет доступна только часть команд. Чтобы получить бОльшие/полные права, пользователь должен перелогиниться с другой учётной записью
Пример 4

В прошлом примере мы аутентификацию ААА настроили, а до настройки авторизации ещё не доехали, поэтому продолжая прошлый пример просто смотрим:

Любой пользователь попадает на уровень 1 и для получения прав должен использовать команду enable. Таким образом нет разделения пользователей по правам, поэтому команда aaa authorization обязательна для использования.


Аккаунтинг

Если аутентификация/авторизация неразрывно связаны и в любом случае происходят при подключении (авторизация возможна ещё и при вводе отдельных команд в случае ACS Server, ISE и TACACS+), то аккаунтинг как бы находится в стороне и может применяться опционально.

Аккаунтинг является расширенной альтернативой простой системе логирования на устройстве CISCO. Реализуется аккаунтинг только при серверном варианте AAA. И TACACS+, и RADIUS поддерживают аккаунтинг. Подробнее о различии этих двух протоколов поговорим во второй части статьи.

Когда пользователь входит на устройство, где используется AAA, сеансу этого пользователя присваивается уникальный session identifier (session ID).

Механизм аккаунтинга
  • После аутентификации пользователя процесс учёта AAA на сетевом устройстве формирует начальное сообщение start для начала учёта, который содержит следующую информацию: user’s ID, точку входа в сеть, IP адрес и session ID. И отсылает его на AAA-сервер.Такое событие называется Accounting Start;
  • В течение времени сеанса связанные с ним атрибуты собираются и сохраняются в базе данных AAA на устройстве: ресурсы, к которым получен доступ, длительность доступа к конкретному ресурсу, внесенные изменения;
  • Аналогично при выходе пользователя из системы формируется сообщения stop, завершающее процесс учёта. Такое событие называется Accounting Stop. В этом сообщении находятся все сохранённые за сеанс данные по сессии, включая общее время сессии, количество отправленной информации и количество пакетов, команды EXEC, причину отключения и так далее;
  • Далее сервер подтверждает окончание сессии сообщением Accounting Response acknowledgement

Какие же точно данные собираются? Собирается 7 типов данных (подробнее тут), из них интересны 5:

  • Сетевые операции — собирается информация о сеансах PPP, включая количество пакетов и байт;
  • Соединения — собирается информация о выполненных исходящих соединениях (SSH, Telnet);
  • EXEC — собирается информация о сеансе работы, имя пользователя, дата, время начала и завершения сеанса, IP адрес;
  • Системные операции — собираются события уровня системы, например перезагрузка устройства;
  • Команды — собирается информация о выполненных командах в привилегированном режиме и режиме глобальной конфигурации, включая имя пользователя, дату и время

В последствии можно отфильтровать эти данные и сформировать отчёты. Делается это всё на сервере. Если брать само устройство,  то там можно посмотреть session ID:

Router# show aaa sessions

Или же текущие атрибуты пользователя:

Router# show aaa user
Настройка ААА аккаунтинга

Для настройки аккаунтинга используется команда aaa accounting. Снова смотрим опции команды:

CISCO AAA
Router(config)# aaa accounting exec { default | list-name }  { star-stop | stop-only | none } [broadcast] method1.. [method4]

Ещё важные опции:

  • network — выполняет учет всех запросов сетевых услуг (PPP);
  • connection — запускает учет для всех исходящих соединений (SSH, Telnet)

Также обязательно настраиваются триггеры:

  • start-stop — отправляет уведомление start о начале процесса аккаунтинга и уведомление stop по окончании процесса;
  • stop-only — отправляет только уведомление stop, но для всех случаев, включая ошибки аутентификации;
  • none — отключает аккаунтинг на линии или интерфейсе

Опциональное ключевое слово broadcast означает будет ли использоваться отправка аккаунтинга на несколько серверов одновременно (если, разумеется, в конфигурации настроено несколько серверов для ААА). Подробнее тут.

broadcast (Optional) Enables sending accounting records to multiple AAA servers. Simultaneously sends accounting records to the first server in each group. If the first server is unavailable, failover occurs using the backup servers defined within that group.

Это может, например, использовать ISP, чтобы отправлять информацию на свой ААА сервер и ещё сразу же на сервер клиента. Или в случае подсчёта биллинга, когда такую информацию нельзя потерять, тогда данные аккаунтинга отсылаются сразу на 2 ААА сервера ISP для надёжности.

Конкретные команды для аккаунтинга RADIUS и TACACS+ рассмотрим во второй части после сравнения протоколов.


Указание AAA-серверов

Указание ААА сервера на сетевом устройстве зависит от версии IOS.

  • Для IOS 12:
IOS12(config)# radius-server host IP key key [ auth-port { 0 - 65536 } acct-port { 0 - 65536 } ] 
  • Для IOS 15:
IOS15(config)# radius server name
IOS15(config-radius-server)# address { ipv4 | ipv6 } { IP | hostname } [ auth-port { 0 - 65536 } acct-port { 0 - 65536 } ]  
IOS15(config-radius-server)# key password
  • Пароль нужен для инициализации сессии между сетевым устройством и сервером, сетевое устройство посредством пароля подтверждает серверу свою подлинность;
  • Порт для аутентификации на сервере auth-port, порт для аккаунтинга acct-port;
  • Если используется параметр hostname, то он должен быть ранее задан в конфигурации как:
Router(config)# ip host hostname IP

Или же должен быть разрешим  в IP адрес через DNS.

  • Если порты для сервера не заданы вручную, то по умолчанию используются 1645/1646.

Группа серверов задаётся командой для IOS 12:

IOS12(config)# aaa group server radius group-name
IOS12(config-sg-radius)# server { IP1 | hostname1 } 
IOS12(config-sg-radius)# server { IP1 | hostname1 }

Для IOS 15:

IOS15(config)# aaa group server radius group-name IOS15(config-sg-radius)# server { IP1 | hostname1 | name1 }
IOS15(config-sg-radius)# server { IP1 | hostname1 | name2 }
...

Везде вместо параметра radius/radius-server может использоваться параметр tacacs+/tacacs+-server.

Опять про оптимальный код. Если в конфигурации задан 1 AAA-сервер, то не надо использовать group-name. Это упрощает читаемость конфигурации и логику работы устройства.

Есть ещё 2 важных дополнительных параметра с помощью которых можно управлять процессом обращения к ААА-серверу:

  • timeout — time interval (in seconds) that the router waits for the RADIUS server to reply before retransmitting (defautl 1 sec);
  • retransmit — number of times a RADIUS request is re-sent to a server, if that server is not responding or responding slowly (default 3).

Чем эти команды могут помочь? При плохой или медленной линии связи между сетевым устройством и ААА-сервером увеличение данных параметров сделает процесс входа на сетевое устройство более устойчивым. Данные команды вводятся непосредственно при настройке ААА-сервера для IOS 12; непосредственно при настройке ААА-сервера либо глобально для IOS 15.

Пример 5

Сотрудники 1 линии жалуются что вход на сетевое устройство срабатывает через раз. Пропинговав ААА-сервер с сетевого устройства, инженер замечает 5% потерю пакетов пинга. Далее он изучает конфигурацию сетевого устройства и обнаруживает:

!
radius server RAD1
 retransmit 1
..

Инженер вносит изменения:

Router(config)# radius server RAD1
IOS15(config-radius-server)# retransmit ?
<0-100> Number of retries to this server

Router(config-radius-server)# retransmit 5

После чего процесс входа работает немного дольше чем обычно, но стабильно. А дальше разбираться откуда потери и как их устранить. Вопрос с подключением при этом уже решён.


Локальный AAA

И зачем он нужен. В случае локального AAA никакого сервера, обрабатывающего запросы, нет. Всё происходит аналогично методу локальной базы. Лучше рассмотреть сразу на примере.

Раньше тут у меня было кривенько рассказано, поэтому переписал всё подробно.

Пример 6.1

Cначала AAA выключен и введены вот такие команды:

IOS15(config)# enable algorithm-type scrypt secret сisco1
IOS15(config)# username Admin1 privilege 15 algorithm-type scrypt secret cisco

Команда enable тут не особо нужна, так как после ввода логина/пароля сразу залетаем в привилегированный режим. Теперь:

IOS15(config)# aaa new-model
IOS15(config)# aaa authentication login default local-case

Что изменилось? Первое, поскольку присутствует default, методы автоматически применятся ко всем линиям, включая консоль. Через консоль на халяву уже не зайдём, придётся вводить пароль.

Для входа пользователя всегда применяется метод local-case. То есть вводится логин Admin1 и соответствующий ему пароль: введено без ошибок доступ предоставлен, есть ошибки в логине или пароле — доступ отклонён. Так и работает, здесь ничего необычного.

Второе отличие, как уже говорил, без прописывания авторизации пользователь всегда заходит на уровень 1 и теперь нужен ввод команды enable. Это неудобно. Чтобы отработала авторизация на lvl 15 требуется команда:

IOS15(config)# aaa authorization exec default local

Но если зайти через консоль опять lvl 1, снова нужен ввод enable. Решает команда:

IOS15(config)# aaa authorization console

Всё, порядок. Полный набор настроек.

Пример 6.2

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

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

This operation will remove all username related
configurations with same name.Do you want to
continue? [confirm]

Может иметь место. Для метода локальной базы это была бы фатальная ситуация. Если не сохранил конфу, то кто-то должен дойти до устройства и ребутнуть, а если сохранил, то сброс устройства.

Но у нас фирменный local ААА. Дополняем команды:

IOS15(config)# aaa authentication login default local-case enable
IOS15(config)# aaa authorization exec default local if-authenticated

Теперь удаляем пользователя:

IOS15(config)# no username Admin1

Вводим пароль от enable и пробуем логиниться. Тут вопрос: а какой же username? Ведь пользователя уже нету. Да любой!

login as: 1111
Keyboard-interactive authentication prompts from server:
| Password: ******* - пароль от enable
End of keyboard-interactive prompts from server

IOS15>
Password: ******* - пароль от enable
IOS15#

Мы залетели на устройство со снесенным пользователем. Круто? Конечно.

Пример 6.3

Разберём что произошло:

  • Аутентификация методом local невозможна, переход ко второму методу;
  • Второй метод enable, ввели пароль от enable;
  • Сразу после аутентификации происходит авторизация;
  • Первый метод local невозможен, второй метод if-authenticated:
if-authenticated  Succeed if user has authenticated.
  • Аутентификация прошла успешно, поэтому метод срабатывает;
  • Поскольку нет инфы на какой уровень нас пихать, пихает на первый;
  • Далее логичный ввод команды enable.

Примерно так. Есть ещё вариант он не для продакшена, но хорош для наглядности:

IOS15(config)# aaa authorization exec default local none

Тоже прокатит. Если же оставить только:

IOS15(config)# aaa authorization exec default local 

Вход будет прерван на этапе авторизации и выведется ошибка. Такой вот крутой local AAA и про него надо знать.


Дополнительная безопасность

Обеспечивается для AAA и локальных учётных записей на сетевом устройстве с помощью команды глобальной конфигурации (для IOS 12 и 15):

Router(config)# aaa local authentication attempts max-fail ?
<1-65535> Specify the value for max failed attempts

Тут важное замечание: действует только на пользователей с уровнем привилегий ниже 15, то есть на всех кроме админов.

Feature Name Releases Feature Information
Login Password Retry Lockout 12.3(14)T 12.2(33)SRE The Login Password Retry Lockout feature allows system administrators to lock out a local AAA user account after a configured number of unsuccessful attempts by the user to log in.

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

Router# clear aaa local user lockout

Для просмотра заблокированных пользователей:

Router# show aaa local user lockout
Пример 7

Настроим максимальное количество попыток входа:

IOS15(config)# aaa local authentication attempts max-fail 2

Заведём пользователя:

IOS15(config)# username user secret User4567

И при удалённом соединении введем 2 раза неправильно пароль для пользователя User:

*Jun 7 03:30:34.565: %AAA-5-USER_LOCKED: User user locked out on authentication failure

IOS15# show aaa local user lockout

       Local-user         Lock time

       user               03:30:34 UTC Sun Jun 7 2020

Некоторая информация по AAA от CISCO.

Hi,

I’m trying to get one of my routers to authenticate the telnet connections with a machine with FreeRadius installed.

R2#show run | inc aaa
aaa new-model
aaa authentication login CISCO group radius local
aaa session-id common

R2#show run | inc radius
aaa authentication login CISCO group radius local
radius-server host 192.168.10.1 auth-port 1645 acct-port 1646 key cisco

R2#show run | section line vty
line vty 0 4
login authentication CISCO
transport input telnet ssh

I downloaded FreeRadius and after a little bit of search online it seems only client and user must be added from config point of view:

clients.conf:
client 172.23.0.1 {
secret = cisco
shortname = R2
}

users.conf:
andre User-Password == «teste»

Anyway, this is not working. I got «Authentication failed» when I telnet to R2

Sniffing the interface with wireshark I can actually see Access-Request packets coming to laptop, so I would say that something is missing on Radius side.
Anyone has this working that can help here?

Thanks.

Понравилась статья? Поделить с друзьями:
  • Error a320 plugin not work properly
  • Error a2206 missing operator in expression
  • Error a2138 invalid data initializer
  • Error a2119 language type must be specified
  • Error a2108 use of register assumed to error