Сен 01 2009

GNU Radius. База пользователей в MySQL.

Одно из излюбленных мест хранения базы пользователей — MySQL. Можно много дискутировать на тему хорошо это или плохо, но хранят, и чаще всего хранят потому, что во-первых привычней, во-вторых, чаще всего имеются готовые системы бекапа MySQL, в третьих — большая часть софта умеет работать с MySQL. В общем рассмотрим работу GNU Radius с MySQL.

Для этого надо собрать FreeRadius с поддержкой MySQL:

┌────────────────────────────────────────────────────────────────────┐
│                  Options for gnu-radius 1.6.1_2                    │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │         [X] CLIENT      Enable build client                    │ │
│ │         [ ] DBM         Enable DBM support                     │ │
│ │         [X] MYSQL       Enable MySQL support                   │ │
│ │         [ ] POSTGRESQL  Enable PostgreSQL support              │ │
│ │         [ ] SNMP        Enable SNMP support                    │ │
│ │         [ ] EMACS       Enable emacs dotfiles install          │ │
│ │         [ ] PAM         Enable PAM support                     │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

Следующим этапом создадим базу MySQL, таблицу пользователей и внесем пользователей.

mysql -uroot -p
create database raddb;
use raddb;
СREATE TABLE `passwd` (
  `user_name` varchar(32),
  `service` char(64) NOT NULL default 'Framed-PPP',
  `password` char(64) default NULL);
grant select on raddb.* to 'raddb'@localhost' identified by 'raddb-777';

А теперь добавим пользователя:

insert into passwd set user_name='hilik', service='Framed-PPP', password=encrypt('hilik-123');

Теперь настраиваем сам GNU-RADIUS. Для этого сначала пропишем настройки базы. База настраивается в /usr/local/etc/raddb/sqlserver. Настройки должны быть такие:

interface mysql
 
server localhost
port 3306
login raddb
password raddb-777
keepopen yes
idle_timeout 14400
doauth yes
auth_db raddb
auth_query  SELECT password \
            FROM passwd \
            WHERE user_name='%u'
doacct no

Теперь пропишем адрес откуда будут приходить за авторизацией у меня это целая сеть 192.168.250.0/24. Авторизация прописывается в файле /usr/local/etc/raddb/clients:

192.168.250.0/24        cisco-123

И в файле /usr/local/etc/raddb/users опишем схему авторизации:

DEFAULT Auth-Type = SQL,
                Simultaneous-Use = 1
        Service-Type = Framed-User,
                Framed-Protocol = PPP

Настройка на этом закончена. Можно запускать. Предварительно разрешим запуск:

echo 'radiusd_enable="YES"' >> /etc/rc.conf

и запустим его:

/usr/local/etc/rc.d/radiusd start

На этом настройка окончена.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть