Користувальницькькі налаштування

Налаштування сайту


freeradiusold

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
freeradiusold [2015/02/21 01:06]
freeradiusold [2023/06/15 20:02]
nightfly знищено
Рядок 1: Рядок 1:
 +====== Внимание ======
 +Данная реализация является устаревшей, и эта документация может быть использована только для общего развития. Используйте в практической деятельности новую [[freeradius|AAA с FreeRADIUS v2.0]]
 +{{:alertold.png? |}}
  
 +====== Авторизация PPP-пользователей через FreeRADIUS ======
 +В версии Ubilling 0.4.6 добавлен модуль добавления RADIUS-атрибутов (AV-пар) для пользователей сети. Так же имеется возможность указать AV-пары отдельным пользователям. В качестве RADIUS-сервера используется FreeRADIUS. И речь пойдет только об установке связи между последним и Ubilling.
 +
 +===== Установка FreeRADIUS =====
 +Первым делом установим FreeRADIUS из портов с поддержкой //MYSQL// и //USER// //(указывается в первом окне)//. Для этого в консоли выполняем:
 +<code>
 +# cd /usr/ports/net/freeradius2
 +# make WITH_MYSQL=yes WITH_USER=yes BATCH=yes install clean
 +</code>
 +
 +После завершения установки добавляем в `///etc/rc.conf//` следующую строку:
 +<code>
 +radiusd_enable="YES"
 +</code>
 +
 +Далее копируем заготовки конфигурации сервера FreeRADIUS, хранящиеся в директории `//docs/freeradius//`:
 +<code>
 +# cd /usr/local/www/apache22/data/billing
 +# cp -r docs/freeradius/raddb/* /usr/local/etc/raddb/
 +</code>
 +
 +Редактируем параметры подключения к MySQL, указывая свои логин и пароль в соответствующие поля в файле `///usr/local/etc/raddb/sql.conf//`:
 +<file none sql.conf>
 +# Connection info:
 +server = "localhost"
 +port = 3306
 +login = "root"
 +password = "password"
 +
 +# Database table configuration for everything except Oracle
 +radius_db = "stg"
 +</file>
 +
 +===== Включаем поддержку FreeRADIUS ====
 +Первым делом включаем поддержку FreeRADIUS биллингом, для чего в `config/alter.ini` заменяем значение опции //FREERADIUS_ENABLED//:
 +<code ini>
 +FREERADIUS_ENABLED = 1
 +</code>
 +
 +===== Заливаем дамп FreeRADIUS в базу данных =====
 +Дамп таблиц FreeRADIUS находится в `docs/freeradius/dump.sql`, следовательно делаем следующее:
 +<code>
 +# cd /usr/local/www/apache22/data/billing
 +# mysql -u root -p stg < docs/freeradius/dump.sql
 +</code>
 +
 +===== Включение генерации атрибутов для сети =====
 +После того, как вы включили поддержку FreeRADIUS Ubilling'ом модуль "Сети и услуги" немного видоизменяется, а именно:
 +  * В списке существующих сетей появляется "лампочка" показывающая включена ли генерация AV-пар для сети или нет
 +  * В формах добавления/редактирования появляется возможность включения/отключения генерирования атрибутов для сети
 +
 +Опираясь на вышесказанное не сложно догадаться как включить генерирование атрибутов для сети...
 +
 +===== Указываем атрибуты для сети =====
 +Итак, чтобы указать атрибуты для сети жмем на соответствующую иконку в модуле "Сети и услуги" напротив интересующей нас сети и попадаем, вот в такой модуль:
 +
 +{{ :freeradius_module_general_view_1.png?&400}}
 +
 +Что же здесь? В модуле есть 2 элемента:
 +  - Список уже указанных атрибутов для сети
 +  - Форма добавления нового атрибута
 +
 +__//**Внимание!**//__ Атрибуты, добавленные для сети будут автоматически применены для каждого пользователя в этой сети. Это - так называемые "глобальные" атрибуты. 
 +
 +Предположим, что нам нужно серверу NAS отправить атрибуты //"Framed-IP-Address"//, значение которого, должно соответствовать IP-адресу пользователя и //"Framed-IP-Netmask"//, который равен //"255.255.255.255"//.
 +С последним, думаю вопросов нет - в форме "Добавление нового атрибута" вводим в соответствующие поля:
 +  * **//Атрибут//** : Framed-IP-Netmask
 +  * **//Оператор//**: =
 +  * **//Значение//**: 255.255.255.255
 +
 +Как же поступить с //"Framed-IP-Address"//, отличающегося у каждого пользователя сети? Для такого случая предлагаются [[http://wiki.ubilling.net.ua/doku.php?id=templating#freeradius|следующие макросы]], которые могут быть указаны в поле **//"Значение"//** и будут заменены на соответствующее значение ему значение:
 +^ Макрос         ^ Значение ^
 +|{IP}            | IP-адрес пользователя           |
 +|{MAC}           | MAC-адрес пользователя          |
 +|{LOGIN}         | Логин пользователя              |
 +|{PASSWORD}      | Пароль пользователя             |
 +|{TARIFF}        | Название тарифа пользователя    |
 +|{RATE}          | Скорость пользователя * 1000    |
 +
 +===== Добавление NAS =====
 +Файл //clients.conf// содержит параметры аутентификации сервера NAS на сервере RADIUS. Для того, чтобы добавить RADIUS-клиента (NAS-сервер) с IP-адресом //172.32.1.1// в конец файла добавим следующие строки:
 +<file - clients.conf>
 +client 172.32.1.1 {
 +    secret  = be132be7b070
 +    nastype = other
 +}
 +</file>
 +В дальнейшем, параметр //secret// необходимо будет указать на сервере доступа NAS. Подробнее читайте в инструкциях, прилагаемых к устройству или ПО.
 +
 +===== Тестирование =====
 +
 +Запускаем радиус в дебаг режиме при помощи
 +  # radiusd -X
 +
 +Если мы увидели в конце вывода что-то типа 
 +<code bash>
 +... adding new socket proxy address * port 10049
 +Listening on authentication address * port 1812
 +Listening on accounting address * port 1813
 +Listening on command file /var/run/radiusd/radiusd.sock
 +Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel
 +Listening on proxy address * port 1814
 +Ready to process requests.
 +</code>
 +
 +значит скорее всего все хорошо и можно продолжать.
 +  
 +После чего в соседней консольке пробуем авторизацию пользователя при помощи radtest:
 +
 +  # radtest userlogin userpassword 127.0.0.1 0 testing123
 +
 +Где userlogin и userpassword соответственно валидные логин с паролем существующего пользователя Ubilling из сети "Использующей Radius" настроенной как описано выше. testing123 - собственно shared secret из clients.conf.
 +В случае, если результатом будет что-то типа 
 +
 +<code>
 +root@test93:~ # radtest userlogin userpassword 172.16.0.1 0 testing123
 +radclient:: Failed to find IP address for test93
 +radclient: Nothing to send.
 +root@test93:~ # 
 +</code>
 +
 +Следует добавить запись для вашего хостнейма в **/etc/hosts**
 +  # echo "127.0.0.1 test93" >> /etc/hosts
 +  
 +Результатом в идеале должно быть что-то типа 
 +
 +<code bash>  
 +root@test93:~ # radtest 29ap18_730p 1234 172.16.0.1 0 testing123
 +Sending Access-Request of id 77 to 172.16.0.1 port 1812
 + User-Name = "29ap18_730p"
 + User-Password = "1234"
 + NAS-IP-Address = 127.0.0.1
 + NAS-Port = 0
 + Message-Authenticator = 0x00000000000000000000000000000000
 +rad_recv: Access-Accept packet from host 172.16.0.1 port 1812, id=77, length=32
 + Framed-IP-Address = 172.17.0.2
 + Framed-IP-Netmask = 255.255.255.255
 +root@test93:~ # 
 +</code>