Внешние процедуры 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-сервере. У вас должен появиться доступ в конфигурационный режим, поскольку авторизация будет проходить согласно внутренним установкам роли.