Метки: linux, mikrotik, radius, debian, tinkerboard, логирование, daloRADIUS, routerboard
Решил тут сделать авторизацию через радиус на MikroTik, а дома как раз завалялся Asus Tinker Board на нем установлен Debian 9.12(посмотреть можно lsb_release -a).
/radius add address=192.168.X.X secret=xxxx service=login src-address=192.168.X.X disabled=no
/user aaa set use-radius=yes
address = 192.168.X.X — это ip, где установлен наш радиус сервер
src-address=192.168.X.X — это ip откуда будет идти обращение на сервер
Устанавливаем FreeRadius на Debian:
apt -y install freeradius freeradius-mysql freeradius-utils
У меня подсеть на МикроТике 192.168.0.0/16,
Добавляем в /etc/freeradius/3.0/clients.conf
client 192.168.0.0/16 {
secret = xxx
shortname = Network_Devices
}
Затем, добавляем в /etc/freeradius/3.0/dictionary
Теперь создаем пользователя в etc/freeradius/3.0/users:
"test" Cleartext-Password := "test123"
MikroTik-Group := "read"
Перезагружаем сервис Freeradius
/etc/init.d/freeradius restart
Посмотреть статус Freeradius
/etc/init.d/freeradius status
Но так как нигде нельзя посмотреть кто и куда заходил, мне посоветовали попробовать Daloradius -это веб-инструмент управления RADIUS, написанный на PHP.
Установим с начала сервер базы данных(MariaDB)
apt -y install mariadb-server mariadb-client
Вводим:
mysql_secure_installation
Везде прожмакиваем «YES»
После установки создаем базу данных и пользователя для FreeRADIUS / daloRADIUS.
Убедиться , что пользователь базы данных радиуса может получить доступ к базе данных.
apt -y install apache2
apt -y install php libapache2-mod-php php-{gd,common,mail,mail-mime,mysql,pear,mbstring,xml,curl}
Проверить версию установленного PHP, чтобы убедиться, что установка прошла успешно.
php -v
PHP 7.0.33-0+deb9u7 (cli) (built: Feb 16 2020 15:11:40) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.33-0+deb9u7, Copyright (c) 1999-2017, by Zend Technologies
Чтобы настроить FreeRADIUS на использование MariaDB, выполним следующие действия.
1 – Импорт схемы базы данных Radius для заполнения базы данных радиусов:
mysql -u root -p radius </etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
2 – настройка радиус:
Сначала создаем символическую ссылку для модуля SQL.
ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/
Сконфигурируем модуль SQL, изменив параметры подключения к базе данных в соответствии со средой:
nano /etc/freeradius/3.0/mods-enabled/sql
Раздел sql должен выглядеть примерно так:
Перезапускаем сервис радиус:
systemctl restart freeradius
Установка и настройка Daloradius
Используем Daloradius для управления сервером радиуса через веб-интерфейс. Это необязательная конфигурация, которую мы можем выбрать в зависимости от вариантов использования.
Загружаем архив релиза daloradius с Github.
apt -y install wget unzip
cd /usr/src/
wget https://github.com/lirantal/daloradius/archive/master.zip
unzip master.zip
mv daloradius-master/ daloradius
cd daloradius
Импорт таблиц Daloradius MySQL
mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
mysql -u root -p radius < contrib/db/mysql-daloradius.sql
Переместить папку daloradius в путь в /var/www/html
cd ..
mv daloradius /var/www/html/
Затем измените разрешения для папки http и установите правильные разрешения для файла конфигурации daloradius.
chown -R www-data:www-data /var/www/html/daloradius/
chmod 664 /var/www/html/daloradius/library/daloradius.conf.php
Теперь должны изменить файл daloradius.conf.php, чтобы настроить информацию базы данных MySQL.
nano /var/www/html/daloradius/library/daloradius.conf.php
Установите имя базы данных, пользователя и пароль для подключения.
Чтобы убедиться, что все работает, перезапустим сервисы radius и apache2.
systemctl restart freeradius.service apache2
Доступ к Radius-server через веб-интерфейс Daloradius
Веб-интерфейс управления daloRADIUS доступен по адресу http://server_ip_или_hostname/daloradius.
Данные для входа по умолчанию:
Username: administrator
Password: radius
Была ошибка при входе "ошибка 500 Internal Server Error" при попытке отобразить http://192.168.1.20/daloradius/dologin.php
PHP Fatal error: Uncaught Error: Class ‘DB’ not found
Выполнил команду
pear install DB
И это решило проблему.
Добавляем MikroTik-Group в таблицу SQL
Войдите на ваш сервер freeRADIUS с пользователем root.
Теперь войдите на ваш сервер MariaDB и выберите базу данных radius.
mysql -uroot -pXXXXXX radius
Чтобы отобразить доступные столбцы в таблице radgroupreply, введите следующую команду
Чтобы создать группу full,write,read введите команду ниже.
MariaDB [radius]> insert into radgroupreply (groupname,attribute,op,value) values ("fullaccess","Mikrotik-Group",":=","full");
MariaDB [radius]> insert into radgroupreply (groupname,attribute,op,value) values ("writeaccess","Mikrotik-Group",":=","write");
MariaDB [radius]> insert into radgroupreply (groupname,attribute,op,value) values ("readaccess","Mikrotik-Group",":=","read");
Чтобы отобразить все записи в таблице radgroupreply, введите команду.
Три группы с атрибутом ответа были успешно созданы
Вставьте пользователя freeRADIUS в таблицу Radcheck
Чтобы вставить пользователя bob, введите следующую команду.
MariaDB [radius]> insert into radcheck (username,attribute,op,value) values ("bob","Cleartext-Password",":=","passme");
Чтобы отобразить все записи в таблице radcheck, введите следующую команду.
Чтобы отобразить пользователя bob в группу fullaccess, введите следующую команду
MariaDB [radius]> insert into radusergroup (username,groupname,priority) values ("bob","fullaccess",10);
Чтобы просмотреть все записи, введите следующую команду.
Добавление пользователя в группу завершено.
PS. Полезная информация и ссылочки
Настройка радиуса, ссылка хабр, доп ссылка, ссылка 2, ссылка 3
Настройка FreeRADIUS и Daloradius, ссылка 2
Добавление пользователя в Daloradius, ссылка 2
Проблема с SQL, ссылка 2
Полезная презентация
PhpMyadmin
Переустановк
В данной статье хотелось бы затронуть мобильную тематику в популярной RouterOS, а именно подключение 3G/4G(LTE) модемов к роутерам компании MikroTik
Продолжить Чтение...Развернутая инструкция по настройке nginx, Gunicorn и SSL для вашего Django проекта в продакшене.
Продолжить Чтение...Кратчайшая минималистичная инструкция по сборке кластера на ESXI и немного про резервирование
Продолжить Чтение...