Установка и настройка Radius сервера на Ubuntu с веб интерфейсом.

Дата: 14.04.2015 Автор Admin

В данной статье будет рассмотрено как установить Radius сервер FreeRadius с веб интерфейсом Daloradius

Перед установкой обновите все пакеты в системе

apt-get update
apt-get upgrade

Установим Apache2 и PHP

apt-get install apache2
apt-get install php5 libapache2-mod-php5 php5-mysql php5-gd php-pear php-db

Модули php5-gd php-pear php-db необходимы для работы веб интерфейса Daloradius

Устанавливаем Mysql сервер

apt-get install mysql-server

Устанавливаем FreeRadius

apt-get install freeradius

Подключаемся к серверу Mysql

#mysql -u root -p

Далее создаем базу данных radius

#mysql> create database radius;

Назначим полные права пользователю radius

#mysql> grant all on radius.* to radius@localhost identified by "P@$$w0rd";

Отключаемся от Mysql

#mysql> exit

Устанавливаем пакет freeradius-mysql

apt-get install freeradius-mysql

Импортируем таблицы в базу данных radius

#mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql
#mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql

Для проверки добавим тестовые значения в таблицу radcheck

#mysql -u root -p
#mysql> use radius;
#mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('sqltest', 'Password', 'testpwd');
#mysql> exit


(adsbygoogle = window.adsbygoogle || []).push({});

Открываем файл настроек Freeradius для MySQL

Расположение файла — /etc/freeradius/sql.conf

Редактируем строки до такого вида:

database = mysql
login = radius
password = thepassword
readclients = yes

Далее открываем файл сайта Freeradius

Расположение файла — /etc/freeradius/sites-enabled/default

Приводим следующие строки к виду:

Uncomment sql on authorize{}
# See “Authorization Queries” in sql.conf
sql
...
Uncomment sql on accounting{}
# See “Accounting queries” in sql.conf
sql
...
Uncomment sql on session{}
# See “Simultaneous Use Checking Queries” in sql.conf
sql
...
Uncomment sql on post-auth{}
# See “Authentication Logging Queries” in sql.conf
sql
...


(adsbygoogle = window.adsbygoogle || []).push({});

Далее правим основной конфигурационный файл Freeradius и включаем поддержку Mysql

Расположение файла — /etc/freeradius/radiusd.conf

#Uncomment #$INCLUDE sql.conf
$INCLUDE sql.conf

Теперь протестируем настройки сервера.

Откройте 2 ssh окна терминала.

В первом окне остановим сервис Freeradius

service freeradius stop

И запустим сервис в режиме debug

freeradius -X - debug mode

Теперь открываем второе окно терминала и вводим запрос

radtest sqltest testpwd localhost 18128 testing123

Если вывод команды такой:

Sending Access-Request of id 68 to 127.0.0.1 port 1812
User-Name = "sqltest"
User-Password = "testpwd"
NAS-IP-Address = 127.0.1.1
NAS-Port = 18128
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=68, length=20

То все впорядке.

Теперь нужно добавить Radius клиентов в файл /etc/freeradius/clients.conf

Пример добавления:

client 192.168.1.0/16 {

secret = secretpass
shortname = testclient
nastype= testdevice
}

Установим веб интерфейс DaloRadius

Скачиваем последнюю версию ПО

wget http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz

Распаковываем в текущий каталог

tar xvfz daloradius-0.9-9.tar.gz

Переносим в папку /var/www/

mv daloradius-0.9-9 /var/www/daloradius

Импортируем таблицы в базу данных radius

cd /var/www/daloradius/contrib/db
mysql -u root -p radius < mysql-daloradius.sql

Далее правим конфиг веб интерфейса

Расположение файла — /var/www/daloradius/library/daloradius.conf.php

Редактируем строку $configValues[‘CONFIG_DB_PASS’] = »;

В нее вводим наш пароль к БД

Должно получится так :

$configValues['CONFIG_DB_PASS'] = 'Пароль от root к Mysql';

Если хотите использователь пользователя отличного от root измените строку

$configValues['CONFIG_DB_USER'] = 'root';

Теперь веб интерфейс доступен по адресу http://serveraddress/daloradius

Если вместо  веб интерфейса вы видите ошибку 404, откройте файл /etc/apache2/sites-available/000-default.conf

измените строку DocumentRoot /var/www/html на DocumentRoot /var/www

Стандартные логин и пароль к daloradius:

Логин — Administrator

Пароль — radius

Данные о пользователе можно изменить через меню интерфейса, как это сделать показано на скриншоте:


Комментарии

Алексей

Приветствую автора статьи! У меня появился один вопрос! сделал все как написано, все вроде получилось но веб интерфейс не открывается даже в localhost пишет Not Found

The requested URL /daloradius was not found on this server.

Apache/2.4.7 (Ubuntu) Server at 10.1.0.90 Port 80

В линуксе не очень силен если честно! в чем может быть проблема?

    Admin

    Добрый день!

    На какой версии ubuntu установлен daloradius?

    Веб интерфейс расположен в папке /var/www/daloradius/ ?

    Если да, то все должно работать, попробуйте добавить следующие строки в файл /etc/apache2/apache2.conf


    Options FollowSymLinks
    AllowOverride all
    Require all granted

    Если в браузере ввести ip сервера, у вас открывается страница приветствия apache?

Даниил

Здравствуйте воспроизводил данную инструкцию на Ubuntu Server 14.04, приветственную страницу Apache2 вижу, веб интерфейс расположен в папке /var/www/daloradius, но при запуске веб интерфейса daloradius то бишь ссылки http:/serveraddress.com/daloradius
выдаёт ошибку
( Not Found
The requested URL /daloradius was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.)
может есть какой нюанс?

Вадим

Добрый день.
Делаю все как у Вас написано, но ситуация как у Алексея:
«The requested URL /daloradius was not found on this server.

Apache/2.4.7 (Ubuntu) Server at *.*.*.* Port 80»
Делал как Вы сказали добавил строчки

«Options FollowSymLinks
AllowOverride all
Require all granted»

Просто перестала появляться страница, что страница не найдена!

Страница «АПАЧА» появляется!

    Admin

    Добрый день! Извиняюсь за долгий ответ.

    Если вместо веб интерфейса вы видите ошибку 404, откройте файл /etc/apache2/sites-available/000-default.conf

    измените строку DocumentRoot /var/www/html на DocumentRoot /var/www

    Добавил в статью.

Даниил

Хочу сказать вам спасибо за статью, очень помогла, вот только правда запутался в этой строке (http://serveraddress/daloradius), ведь место слова serveraddress — надо указать свой IP адрес сервера! Еще раз спасибо!

Роман

У меня Радиус не хочет видеть/принимать пользователей, которые прописаны в mysql базе.
Если прописываю пользователя в файл users, то без проблем проходит, а из базы нет.
Радиус базу видит, данные считывает, но любому пользователю, который прописан в базе, отвечает:
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=241, length=20

root@ATMOSPHERE-NET:~# radtest sqltest testpwd 127.0.0.1 1812 testing123
Sending Access-Request of id 236 to 127.0.0.1 port 1812
User-Name = «sqltest»
User-Password = «testpwd»
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=236, length=20

В базе логин и пароль прописаны:
mysql> select * from radcheck where UserName=’sqltest’;
+—-+———-+————+—-+———+
| id | username | attribute | op | value |
+—-+———-+————+—-+———+
| 1 | sqltest | Password | == | testpwd |
+—-+———-+————+—-+———+
4 rows in set (0.07 sec)

Пробовал так:
mysql> select * from radcheck where UserName=’wifiuser’;
+—-+———-+————+—-+———+
| id | username | attribute | op | value |
+—-+———-+————+—-+———+
| 1 | wifiuser | User-Password | == | wifipass |
+—-+———-+————+—-+———+
4 rows in set (0.07 sec)

root@ATMOSPHERE-NET:~# radtest wifiuser wifipass 127.0.0.1 18128 testing123
Sending Access-Request of id 144 to 127.0.0.1 port 1812
User-Name = «wifiuser»
User-Password = «wifipass»
NAS-IP-Address = 127.0.0.1
NAS-Port = 18128
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=144, length=20

Причем, если прописать пользователей в файл, неважно с == либо как у меня с :=, то все работает без проблем. Именно из базы не хочет принимать пользователей, хотя при запуске, считывает данные из базы.

Роман

Что не так я настроил?

Serge

Огромное спасибо автору! Все доступно, понятно. Удачи в написании статей.

red

Огромная благодарность за пошаговую инструкцию, очень помогла! Спасибо!

vitalik

Добрый день!
Sending Access-Request of id 164 to 127.0.0.1 port 1812
User-Name = «sqltest»
User-Password = «testpwd»
NAS-IP-Address = 127.0.1.1
NAS-Port = 18128
radclient: no response from server for ID 164 socket 3
Что не так я настроил?

    Admin

    Проверьте не включен ли firewall, возможно у вас из-за этого сервер не доступен. Еще можете просканировать сервер через nmap, сразу станет понятно есть ли между ними связь и какие порты доступны.

melrog

Добрый день, при вводе команды mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql говорит, что отказано в доступе, пробовал с sudo, пробовал в ключ -p прописывать пароль (-pПАРОЛЬ), однако все равно говорит, что отказано в доступе, в чем может быть проблема? Заранее благдарю за ответ

    Admin

    Похоже вы где-то не правильно вводите пароль пользователя root для mysql . Вы точно все правильно вводите?

hel

Бывают ошибки при обращении к БД.
Вот, надо выполнить в мускуле.
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,’ONLY_FULL_GROUP_BY’,»));

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *