В данном статье мы рассмотрим настройку авторизации с помощью протоколов Radius и Tacacs+ .
Начнём с первоначальной настройки коммутаторов , в нашем тестовом стенде установлены : MES-3308F , MES-2308P и ESR-12VF , Сервер на операционной системе Ubuntu
Мы выделили из нашей подсети 3 ip адреса для коммутаторов и маршрутизатора в Vlan 4
192.168.89.6 – ESR-12VF Server– 192.168.89.152
192.168.89.7 -MES-3308F 192.168.89.8 – MES-2308P
vlan 4
name "Managment"
exit
bridge 1
vlan 4
security-zone untrusted
ip firewall disable
ip address 192.168.89.6/24
ip ospf instance 1
ip ospf
enable
exit
router ospf 1
router-id 192.168.89.6
redistribute connected
redistribute static
area 0.0.0.0
network 192.168.89.6/32
enable
exit
interface loopback
ip ospf instance 1
ip ospf
exit
interface gigabitethernet 1/0/1
description UpLink
security-zone untrusted
switchport mode trunk
switchport trunk allowed vlan add 4
exit
interface gigabitethernet 1/0/8
description Downlink
security-zone untrusted
ip firewall disable
switchport mode trunk
switchport trunk allowed vlan add 4
ip ospf instance 1
ip ospf
lldp transmit
lldp receive
exit
Доступ получен :
Так же настроим для коммутаторов:
MES-3308F
vlan database
vlan 4
exit
interface gigabitethernet1/0/4
switchport mode trunk
switchport trunk allowed vlan add 4
lldp notifications enable
lldp optional-tlv sys-name
exit
!
interface gigabitethernet1/0/8
switchport mode trunk
switchport trunk allowed vlan add 4
lldp notifications enable
lldp optional-tlv sys-name
exit
!
interface vlan 4
ip address 192.168.89.7 255.255.255.0
exit
router ospf 1
network 192.168.89.7 area 0.0.0.0
router-id 192.168.89.7
redistribute connected subnets
redistribute static subnets
exit
MES-2308P
vlan database
vlan 4
exit
interface gigabitethernet1/0/10
switchport mode trunk
switchport trunk allowed vlan add 4
lldp notifications enable
lldp optional-tlv sys-name
exit
!
interface vlan 4
ip address 192.168.89.8 255.255.255.0
exit
router ospf 1
network 192.168.89.8 area 0.0.0.0
router-id 192.168.89.8
redistribute connected metric-type type-2 subnets
redistribute static metric-type type-2 subnets
exit
Наши коммутаторы теперь доступны для конфигурирования по Telnet и SSH
Теперь приступим к установке Freeradius и базы данных PostgreSQL
sudo apt install freeradius freeradius-utils freeradius-postgresql#Установка Freeradius
sudo apt install postgresql postgresql-contrib #Установка PostgreSQL
sudo systemctl start postgresql.service
Далее требуется включить расширения SQL для freeradius:
sudo cd /etc/freeradius/3.0/mods-enabled
sudo ln -s ../mods-available/sql sql
Открываем файл конфигурации:
требуется раскоментировать параметр -sql или #sql b на sql
sudo nano /etc/freeradius/3.0/sites-available/default
sudo nano /etc/freeradius/3.0/sites-available/inner-tunnel
Создаем базу данных и импортируем требуемые таблицы:
sudo -u postgres psql -c "CREATE DATABASE radius;"
sudo -u postgres psql radius < /etc/freeradius/3.0/mods-
config/sql/main/postgresql/schema.sql
Открываем файл настроек:
sudo nano /etc/freeradius/3.0/mods-available/sql
Изменяем следующие строки:
driver = "rlm_sql_postgresql"
dialect = "postgresql"
server = "localhost"
port = 5432
login = "radius"
password = "radpass"
radius_db = "radius"
read_clients = yes
client_table = "nas"
Запускаем и активируем сервис Freeradius:
sudo systemctl start freeradius
sudo systemctl enable freeradius
sudo systemctl status freeradius
Проверим статус нашего сервиса:
Далее нам нужно добавить в базу данных несколько учётных записей для использования авторизации. Это можно сделать двумя способами
1. Через командную строку postgresql – sudo-u postgres psql
и внести следующие строки :
INSERT INTO radcheck VALUES (1, 'demo', 'Cleartext-Password', ':=', '12345');
INSERT INTO radcheck VALUES (2, 'test', 'Cleartext-Password', ':=', '54321');
2. Через Web интерфейс PGAdmin4
Устанавливаем web интерфейс:
sudo apt install pgadmin4-web # Установка PGadmin4
sudo /usr/pgadmin4/bin/setup-web.sh – Конфигурирование учётной записи
После установки интерфейс доступен по ссылке http://<youripaddres>/pgadmin4/browser/
Заходим в нашу базу данных “radius”, открываем инструмент запроса и вводим наш запрос
INSERT INTO radcheck VALUES (1, 'demo', 'Cleartext-Password', ':=', '12345');
INSERT INTO radcheck VALUES (2, 'test', 'Cleartext-Password', ':=', '54321');
Нажимаем кнопку выполнить запрос.
Мы уже выполнили эти запросы и имеем в таблице данных ‘radcheck’2 пользователя:
Вернёмся обратно к настройкам freeradius
nano /etc/freeradius/3.0/clients.conf
Нам требуется изменить следующие строки:
ipaddr = 192.168.89.0/24 – Диапазон прослушиваемых ip для авторизации
proto = *
secret = newnets1 – Секретный ключ, не менее 8 символов
require_message_authenticator = no
nas_typ = cisco - зависит от вендора, в нашем случае используем cisco
Сохраняем и перезагружаем Freeradius.
sudo systemctl restart freeradius
Теперь можем проверить работоспособность нашего RADIUS-сервера:
Мы получили авторизацию.
Теперь настроим авторизацию на устройствах
Важное замечание:
При настройке авторизации по протоколу radius на коммутаторах, переход в привилегированный режим «enable» будет осуществляться по стандарту с паролем от локальной учётной записи.
Пути решения:
Переходим в нашу базу данных, открываем таблицу radgroupcheck и добавляем следующую запись:
Переходим к таблице radgroupreply и добавляем следующую запись:
Переходим к таблице radusergroup и добавляем следующую запись:
Что мы сделали? Мы добавили недостающий атрибут, который запрашивается при переходе в привилегированный режим, путём добавления его к группе, в данном случае «admin».