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 </usr/share/doc/freeradius-1.1.3/examples/mysql.sql
проверяем:
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