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

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


freeradiusold

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія По сторонах наступні версії
freeradiusold [2014/11/17 15:14]
freeradiusold [2022/09/24 14:39]
127.0.0.1 зовнішнє редагування
Рядок 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>