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 agoI 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 agoIn reply to ASA 5520 Security Appliance
Clarifications
-
September 10, 2011 at 1:36 pm
#2888647
ASA
by
drumright
·
about 11 years, 5 months agoIn 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 agoIn 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 agoIn reply to ASA 5520 Security Appliance
conf t
management inside
username AdminUserName password AdminPassword priv 15Also, 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 2048If 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 agoIn 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 agoIn 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 agoIn 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 agoIn 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 localTry 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 agoIn 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 VerificationPassword: (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 |
Доброго всем дня. Код: # test aaa-server authentication CROSS host 192.168.2.1 Теперь хотел уточнить, мне обязательно сisco по LDAP соединить?! Или же можно при помощи билета как-то обойтись? |
12 авг 2014, 09:54 |
|
real1st Зарегистрирован: 04 окт 2011, 19:33 |
МОжет что-то поменялось, но я считал, что список юзеров и групп ASA исключительно по LDAP вытаскивает |
12 авг 2014, 11:32 |
|
qbk17 Зарегистрирован: 24 июн 2014, 07:56 |
Пытаюсь по LDAP к AD. Код: cisco(config)# aaa-server CROSS protocol ldap [-2147483646] Session Start Скажите, где мои культяпки показали себя во всей красе |
12 авг 2014, 12:32 |
|
P@ve1 Зарегистрирован: 01 янв 1970, 03:00 |
Как минимум: |
12 авг 2014, 13:38 |
|
real1st Зарегистрирован: 04 окт 2011, 19:33 |
Цитата: [-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 |
Всем большое спасибо. Все заработало. Код: ldap-login-dn domainuserldap |
12 авг 2014, 14:19 |
|
qbk17 Зарегистрирован: 24 июн 2014, 07:56 |
Доброго всем позитивного. Код: access-list AUTH permit tcp 192.168.2.0 255.255.255.0 any eq 80 Теперь борюсь с тем, что не пускало кого попало из домена. А пускало именно тех, кто в конкретной группе Inet. Код: ldap attribute-map LAD map-value memberOf OU=Inet,DC=company,DC=local Скажите, что не правильно делаю. Вроде в нете все так и описывается. Благодарю. |
13 авг 2014, 14:20 |
|
P@ve1 Зарегистрирован: 01 янв 1970, 03:00 |
Лучше 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
Ну и собственно на этих роутерах будем проверять всякие мульки из теории. И еще буду использовать вывод с устройства без привязки к данной схеме, допустим для разбора общего вида команды на устройстве, тогда в выводе будет просто Router.
Включение AAA на устройстве
На устройстве CISCO по-умолчанию поддержка AAA выключена и в конфигурации можно увидеть:
! no aaa new-model !
Чтобы включить поддержку AAA нужно выполнить команду:
Router(config)# aaa new-model
- До ввода этой команды никакие другие команды AAA недоступны и при попытке их ввода IOS будет вести себя так, как будто ничего про эти команды не знает;
Это может сбить с толку, поэтому если какая-то команда ААА не вводится, то первым делом нужно проверить наличие 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:
Специально сделал акцент что будет, если не задан пароль на enable. Это важный момент номер один, поэтому:
IOS15(config)# enable secret Cisco123
Проверяем подключение ещё раз:
Успешный вход, включаем ААА:
IOS15# config t IOS15(config)# aaa new-model
И снова пробуем подсоединиться:
А у нас никакого юзернейма настроено не было.. Важный момент два. Поэтому нужно взять за правило — всегда настраивать пользователя и пароль для 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
Посмотрим опции команды:
Первым делом интересует опция 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. Опять посмотрим опции команды:
Интересует только опция 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. Снова смотрим опции команды:
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.