Установка и настройка GNU-Radius в связке с stargazer


Внимание

Данная реализация является устаревшей с релиза 0.4.6, и эта документация может быть использована только для общего развития. Используйте в своей практической деятельности новую FreeRADIUS

Базовая конфигурация

1. Итак приступим к установке

# fetch ftp://ftp.gnu.org/gnu/radius/radius-1.6.1.tar.gz
# tar zxvf radius-1.6.1.tar.gz
# cd radius-1.6.1
# ./configure --enable-client --with-mysql
# make
# make install
# cp -R  raddb/* /usr/local/etc/raddb/

2. Настройка

# vim /usr/local/etc/raddb/sqlserver

вставляем настройки нашей базы

interface mysql
server localhost
port 3306
login root
password newpassword
keepopen yes
idle_timeout 14400
doauth yes
auth_db stg
auth_query  SELECT encrypt(`password`) \
          FROM users \
          WHERE login='%u'
check_attr_query  SELECT attr,value \
                    FROM radattr \
                    WHERE login='%u'
reply_attr_query  SELECT attr,value \
                    FROM radattr \
                    WHERE login='%u'
doacct no

# vim /usr/local/etc/raddb/clients

Описываем место откуда будут приходить запросы на авторизацию

192.168.56.0/24        cisco

#vim /usr/local/etc/raddb/users

Описываем схему авторизации

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

Прописываемся в rc.conf

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

Создаем правильный view для нашей структуры (Допустим при помощи SQL-консоли Ubilling):

CREATE VIEW radattr (login,attr,value) AS SELECT users.login,'Framed-IP-Address',users.IP from `users`

Запускаемся

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

Проверяем все ли хорошо

# radauth -v  user_login user_password
...
radtest: debug: client.c:326:grad_client_send0: sending request (timeout=3, retries=1)
radtest: debug: client.c:140:grad_client_recv: received Access-Accept
radtest: debug: radpdu.c:400:grad_decode_pdu: allocated radreq: 0x28423180
radtest: debug: radpdu.c:415:grad_decode_pdu: Access-Accept from 127.0.0.1, id=17, length=32
radtest: debug: recv: Service-Type = (INTEGER) Framed-User
radtest: debug: recv: Framed-Protocol = (INTEGER) PPP
Authentication passed. 

Если требуется чтобы пользователи с отрицательным балансом вобще не могли пройти авторизацию auth_query должен иметь вид

auth_query  SELECT encrypt(`password`) \
          FROM users \
          WHERE login='%u' AND `Cash`>=`Credit`
gnuradius.txt · Последние изменения: 2015/03/09 04:26 — nightfly
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki