Как установить FreeRadius с Web-интерфейсом

Posted by

Повторение чужих шагов чтобы понять принцип работы и после уже на основе приобретенного опыта иметь свой собственный. Только так я могу учиться чему-то новому. Зачем с головой уходить в то что уже другими помногу раз используется, проще взять что-то за основу и использовать согласно своим задачам. Вот и сейчас выдалось свободное время и я решил, а почему бы не попробовать посмотреть что такое Radiusсервис, на сколько я понял это сервис на который можно завязать авторизацию на различных устройствах посредством предопределенных учетных записей и прав. Вот и попробую. Только сперва разберу как установить в системе вокруг которой я строю все сервисы: Ubuntu Trusty 14.04.5 Server amd64

Характеристики данной виртуальной машины: CPU = 1, RAM = 1Gb, HDD = 20Gb

ekzorchik@srv-server:~$ uname -a && lsb_release -a

Linux srv-server 4.4.0-57-generic #78~14.04.1-Ubuntu SMP Sat Dec 10 00:14:47 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: .5 LTS

Release: 14.04

Codename: trusty

Не забываю указать настройки Локали:

ekzorchik@srv-server:~$ sudo nano /etc/profile

export LC_ALL="en_US.UTF-8"

ekzorchik@srv-server:~$ source /etc/profile

Для работы сервиса FreeRadius необходимы следующие пакеты, это Apache2 & MySQL & PHP.

ekzorchik@srv-server:~$ sudo apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql php5-gd php-pear php-db -y

New password for the MySQL "root" user: 712mbddr@

Repeat password for the MySQL "root" user: 712mbddr@

ekzorchik@srv-server:~$ sudo nano /etc/apache2/apache2.conf

ServerName srv-server

Сам пакет (FreeRadius) вокруг которого строится заметка я буду устанавливать из дефолтных репозитариев:

ekzorchik@srv-server:~$ apt-cache show freeradius | grep Version

Version: 2.1.12+dfsg-1.2ubuntu8.1

Version: 2.1.12+dfsg-1.2ubuntu8

ekzorchik@srv-server:~$ sudo apt-get install freeradius -y

После того, как пакет установлен, в автоматическом режиме запускается демон слушающий дефолтный порт (udp/1812):

ekzorchik@srv-server:~$ sudo netstat -tulpn | grep :1812

udp 0 0 127.0.0.1:18120 0.0.0.0:* 15348/freeradius

udp 0 0 0.0.0.0:1812 0.0.0.0:* 15348/freeradius

Т.к. все настройки FreeRadius удобнее хранить в базе, то вот под это дело и создаю базу данных и специализированного пользователя:

ekzorchik@srv-server:~$ mysql -u root -p712mbddr@

mysql> create database dbradius character set utf8 collate utf8_general_ci;

mysql> grant all on dbradius.* to radius@localhost identified by "612mbddr@";

mysql> flush privileges;

mysql> exit;

Для связки FreeRadius и MySQL нужен пакет ориентированный на сопряжение, ставлю его (freeradius-mysql) также из дефолтных репозитариев релиза Ubuntu Trusty:

ekzorchik@srv-server:~$ sudo apt-get install freeradius-mysql -y

ekzorchik@srv-server:~$ sudo bash -c "mysql -u root -p712mbddr@ dbradius < /etc/freeradius/sql/mysql/schema.sql"

ekzorchik@srv-server:~$ sudo bash -c "mysql -u root -p712mbddr@ dbradius < /etc/freeradius/sql/mysql/nas.sql"

Чтобы оценить, что FreeRadius работает, делаю как делаю в примерах интернета, а именно добавляю в таблицу radcheck такие атрибуты, как: UserName,Attribute,Value

ekzorchik@srv-server:~$ mysql -u root -p712mbddr@

mysql> use dbradius;

mysql> insert into radcheck (UserName,Attribute,Value) VALUES ('sqltest','Password','testpwd');

mysql> exit

где

  • insert → для добавления данных в таблицу
  • values → добавление значений

Теперь нужно объяснить сервису FreeRadius все настройки брать из базы данных:
ekzorchik@srv-server:~$ sudo nano /etc/freeradius/sql.conf

sql {

database = "mysql"

driver = "rlm_sql_${database}"

server = "localhost"

port = 3306

login = "radius"

password = "612mbddr@"

radius_db = "dbradius"

readclients = yes

}

Теперь приводим настройки файла сайта FreeRadius к виду:

ekzorchik@srv-server:~$ sudo nano /etc/freeradius/sites-enabled/default

# See "Authorization Queries" in sql.conf

sql

# See "Accounting queries" in sql.conf

sql

# See "Simultaneous Use Checking Queries" in sql.conf

sql

# See "Authentication Logging Queries" in sql.conf

sql

Далее правим конфигурационный файл freeradius и включаем поддержку mysql:

ekzorchik@srv-server:~$ sudo nano +700 /etc/freeradius/radiusd.conf

$INCLUDE sql.conf

Теперь протестируем настройки сервера, для этого понадобится два консольных соединения с сервером или два окна окна терминала: В первом следует остановить демон FreeRadius и после запустить в режим отладки, а уже во втором будем посылать данные на обработку сервису дабы в первом консоли пронаблюдать как изменяется поведение сервиса.

Окно №1:

ekzorchik@srv-server:~$ sudo service freeradius stop

ekzorchik@srv-server:~$ sudo freeradius -X mode

Окно №2:

Вывод должен быть таким, как ниже.

ekzorchik@srv-server:~$ radtest sqltest testpwd localhost 18128 testing123

Sending Access-Request of id 22 to 127.0.0.1 port 1812

User-Name = "sqltest"

User-Password = "testpwd"

NAS-IP-Address = 127.0.1.1

NAS-Port = 18128

Message-Authenticator = 0x00000000000000000000000000000000

rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=22, length=20

Вывод без ошибок и статус Access-Accept.

Чтобы подключать клиентов/устройства следует изменять файл: /etc/freeradius/clients.conf

ekzorchik@srv-server:~$ sudo service freeradius start

ekzorchik@srv-server:~$ sudo nano /etc/freeradius/clients.conf

client 192.168.1.0/24 {

secret<TAB><TAB>= secretpass

shortname<TAB><TAB>= testclient

nastype<TAB><TAB> = testdevice

}

Теперь обернем FreeRadius Webинтерфейсом DaloRadius, не обязательно для тех кто любит управлять через консоль:

ekzorchik@srv-server:~$ wget https://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz

ekzorchik@srv-server:~$ tar xfz daloradius-0.9-9.tar.gz

ekzorchik@srv-server:~$ sudo mv daloradius-0.9-9 /var/www/html/daloraius

ekzorchik@srv-server:~$ mysql -u root -p712mbddr@ dbradius < /var/www/html/daloraius/contrib/db/mysql-daloradius.sql

Создаю свой файл конфигурации описывающий доступ к панели Администрирования:

ekzorchik@srv-server:~$ sudo unlink /etc/apache2/sites-available/000-default.conf

ekzorchik@srv-server:~$ sudo unlink /etc/apache2/sites-available/default-ssl.conf

ekzorchik@srv-server:~$ sudo unlink /etc/apache2/sites-enabled/000-default.conf

ekzorchik@srv-server:~$ sudo nano /etc/apache2/sites-available/daloradius.conf

<VirtualHost *:80>

DocumentRoot /var/www/html

Alias /daloradius /var/www/html/daloradius/

<Directory /var/www/html/daloradius/>

Options None

Order allow,deny

allow from all

</Directory>

</VirtualHost>

ekzorchik@srv-server:~$ sudo a2ensite daloradius.conf

Enabling site daloradius.

To activate the new configuration, you need to run:

service apache2 reload

ekzorchik@srv-server:~$ sudo service apache2 reload

Затем правлю конфигурационный файл веб-интерфейса:/var/www/html/daloradius/library/daloradius.conf.php

ekzorchik@srv-server:~$ sudo nano /var/www/html/daloraius/library/daloradius.conf.php

$configValues['CONFIG_DB_PASS'] = '712mbddr@';

$configValues['CONFIG_DB_NAME'] = 'dbradius';

В заключение не забываю поправить права доступа к каталогу Daloraius чтобы он имел такие же права с какими работает сервис apache2:

ekzorchik@srv-server:~$ sudo chown -R www-data:www-data /var/www/html/daloraius/

Стандартные логин и пароль к Web-интерфейсу Daloradius → http://IP&DNS/daloradius:

  • Логин — administrator
  • Пароль — radius

Окно авторизации на Web-панели FreeRadiusИ нажимаю на Login и вот я внутри Web-панели администрирования собственным FreeRadius сервером:

Так представляется из себя панель Администрирования FreeRadius

Задача выполнена, я просто повторил инструкцию из интернета, но для повторения то же нужны определенные знания.

Но если хотим изменить на привычный интерфейс, правда советую лучше разбираться с англоязычным интерфейсом чем с кривым русским, то

Изменяем язык:
Config — Global Settings — Language Settings

Primary Language — изменяем English на Russian и нажимаем Apply

В дальнейших заметках я расскажу, как настроить аутентификацию через данный Radius сервис на различных устройствах, а пока на этом все, с уважением автор блога Олло Александр aka ekzorchik.