Внешние процедуры AAA по протоколу RADIUS
RADIUS (Remote Authentication in Dial-In User Service) — сетевой протокол , предназначенный для обеспечения централизованной аутентификации , авторизации и учёта (Authentication, Authorization, and Accounting, AAA) пользователей , подключающихся к различным сетевым службам . Описан в стандартах RFC 2058, RFC 2059, RFC 2865 и RFC 2866.
RADIUS часто используется провайдерами для управления доступом пользователей. В данном подразделе мы рассмотрим RADIUS, как средство для процедур AAA в части доступа к маршрутизатору по протоколу SSH.
Для настройки подключения к RADIUS-серверу используется команда aaa radius-server <IP> [port <NUM>] secret <PASS> [vrf <NAME>] [source <IP2>] {account | auth} [timeout <0-300>]
, где:
server <IP>
— IP-адрес RADIUS-сервера.port <NUM>
— номер порта на сервере.secret <PASS>
— пароль для соединения с RADIUS-сервером (должен совпадать с установленным на RADIUS).vrf <NAME>
— наименование VRF, в котором задан IP-адрес сервера (значение по умолчанию — VRF текущего виртуального маршрутизатора)source <IP2>
— исходящий адрес.account | auth
— выбор режима взаимодействия с сервером: account — только отправка учёта действий пользователя, auth — только аутентификация и авторизация. Для обеспечения всех функций AAA будет необходимо задать две командыaaa radius-server
.timeout <0-300>
— время в секундах в диапазоне от 0 до 300. Время ожидания до повторного запроса в случае отсутствия ответа от TACACS.
Пример:
aaa radius-server 10.1.1.1 port 1812 secret pass1234 vrf management source 10.1.1.2 auth
Конфигурирование RADIUS
Для простоты, мы предполагаем, что маршрутизатор сервер RADIUS и устройство с которого производится SSH-подключение находятся в одной подсети.
Для подключения к RADIUS-серверу, в среде ОС Linux сервера следует задать IP-адрес: ip a a 10.1.1.100/24 dev eth0
.
Для минимальной конфигурации RADIUS-сервера достаточно отредактировать два файла.
В файле /etc/raddb/clients.conf после строки ”# IPv6 Client” следует ввести следующие строки:
client router {
ipaddr = 10.10.10.1
secret = pass1234
}
Здесь мы задаём IP-адрес и пароль клиентского устройства — нашего маршрутизатора и пароль для входа на сервер. Такой же пароль будет установлен на маршрутизаторе.
В самом начале файла /etc/raddb/mods-config/files/authorize следует ввести следующие строки соблюдая табуляции:
ecotest Cleartext-Password := "ecotestpass"
Cisco-AVPair = "shell:roles=noc"
Здесь мы задаём пользователя, его пароль, а также устанавливаем роль.
Проверьте конфигурацию RADIUS-сервера командой radiusd -X
. Если нет выдачи об ошибках, RADIUS-сервер начнёт свою работу.
На маршрутизаторе мы настроим IP-адрес для управляющего порта, установим приоритет аутентификации и авторизации и настроим подключение к RADIUS-серверу.
hw mgmt ip 10.10.10.1/24
aaa precedence tacacs radius local
aaa radius-server 10.10.10.17 port 1812 secret pass1234 vrf management source 10.10.10.1 auth
После чего создадим локального пользователя с ролью администратора:
username ecotest
password ecotestpass
role admin
Проверьте доступность RADIUS-сервера командой ping 10.10.10.17 source 10.10.10.1 vrf management
.
Отключите другие AAA-серверы или задайте на маршрутизаторе приоритет для RADIUS-сервера командой: aaa precedence radius tacacs local
Для проверки работы авторизации с помощью RADIUS-сервера зайдите со стороннего устройства на маршрутизатор с помощью утилиты SSH: ssh ecotest@10.10.10.1
и введите пароль ecotestpass.
Командой enable
перейдите в административный режим командной строки маршрутизатора. Введите команду configure
. Если вам отказано в доступе с формулировкой “% User 'ecotest' has no permission to execute 'enable-exec>configure ' %
”, значит работает роль noc заданная на RADIUS-сервере для пользователя ecotest.
Повторите действия при отключенном RADIUS-сервере. У вас должен появиться доступ в конфигурационный режим, поскольку авторизация будет проходить согласно внутренним установкам роли.