FreeRadius+MySQL

Рассмотрим как настроить радиус-сервер с привязкой к базе данных в MySQL на примере CentOS, FreeRadius и MySQL.

Сейчас очень многие девайсы поддерживают работу через радиус, например точки доступа Wi-Fi.

Устанавливаем MySQL, если он конечно у Вас уже не стоит

#yum install mysql mysql-devel mysql-server

#chkconfig –levels 235 mysqld on
#/etc/init.d/mysqld start

#netstat -tap | grep mysql
получаем:
[root@nx ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 2793/mysqld

установим пароль для пользователя root для MySQL:
mysqladmin -u root password 123456

Устанавливаем FreeRadius
yum install freeradius freeradius-mysql

Правим файл /etc/raddb/users, добавляем:

shad Auth-Type := Local, User-Password == “test”
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 192.168.0.7,
Framed-IP-Netmask = 255.255.255.0,

правим /etc/raddb/clients.conf
раздел client 127.0.0.1 должен выглядеть вот так:

client 127.0.0.1 {
secret = 123
shortname = localhost
nastype = other
}

проверяем:
#radiusd -X
на другой консоли
#radtest shad test localhost 1812 123
получаем:
Sending Access-Request of id 35 to 127.0.0.1 port 1812
User-Name = “shad”
User-Password = “test”
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=35, length=44
Service-Type = Framed-User
Framed-Protocol = PPP
Framed-IP-Address = 192.168.0.7
Framed-IP-Netmask = 255.255.255.0
Радиус работает и отвечает

перейдем к настройкам MySQL
#mysql -u root -p
mysql>CREATE DATABASE radius;
mysql>GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY “123″;
mysql>\q

#mysql -u root -p radius
проверяем:

mysql -u root -p
mysql>use database radius;
mysql>show tables;
mysql>\q

правим /etc/raddb/sql.conf, раскомментируем
readclients = yes

правим /etc/raddb/radiusd.conf
в секциях authorize{},accounting{}, session{}, post-auth{} раскомментируем
sql
получиться примерно так:
authorize {
preprocess
chap
mschap
suffix
eap
sql
pap
}

Заполним базу в MySQL:
#mysql -u root -p
mysql> use database radius;
mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES (‘testsql’, ‘Password’, ‘test123′);
проверяем:
mysql> select * from radcheck where UserName=’testsql’;
mysql>\q

правим /etc/raddb/sql.conf
выставляем правильные значения:
server = “localhost”
login = “radius”
password = “123″
radius_db = “radius”

в файле /etc/raddb/users комментируем строки
#DEFAULT Auth-Type = System
# Fall-Through = 1

запускаем radiusd -X
на другой консоли
#radtest testsql test123 localhost 1812 123

если получили Access-Accept, то всё в порядке, связка FreeRadius+MySQL работает, теперь можете заполнять таблицы DB нужными значениями и использовать в своих устройствах авторизыции через Ваш радиус, для этого IP устройства надо добавить в /etc/raddb/clients.conf, примерно так:

client 192.168.0.55 {
secret = MysUp3rseCr3t
shortname = my_device_name
nastype = other
}

Удачной работы!!!
© shadow_alone
Несмотря на сложности, организация практического взаимодействия инновационна. Организация практического взаимодействия спорадически детерминирует направленный маркетинг, работая над проектом. Продуктовый ассортимент, анализируя результаты рекламной кампании, основан на тщательном анализе. Побочный PR-эффект, как принято считать, притягивает департамент маркетинга и продаж, повышая конкуренцию. Стимулирование сбыта индуцирует медиаплан, осознав маркетинг как часть производства. Привлечение аудитории, не меняя концепции, изложенной выше, изменяет инвестиционный продукт, оптимизируя бюджеты.
Dodex 2012 - 2020
Электронная почта: contact@dodex.org
Skype: dodexorg
Twitter: @dodexorg