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

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


freeradius

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
freeradius [2015/05/10 14:30]
freeradius [2023/06/15 20:01]
nightfly знищено
Рядок 1: Рядок 1:
 +====== Внимание ======
 +Данная реализация является устаревшей и неподдерживаемой с релиза 0.9.1, и эта документация может быть использована только для общего развития. Используйте в своей практической деятельности новый и очень крутой [[multigen|КучаГен]]. Даная реализация полностью выкорчевана начиная с релиза Ubilling 1.2.8.
 +{{:alertold.png? |}}
  
 +====== AAA с FreeRADIUS v2.0 ======
 +
 +{{ :freeradius_logo.png?nolink& |}}
 +
 +Итак, начиная с версии 0.6.0 кардинально пересмотрена механика взаимодействия FreeRADIUS с Ubilling. Следовательно, решение описанное [[freeradiusold|здесь]] больше не является актуальным.
 +
 +===== Установка на FreeBSD 9.3 amd64  =====
 +Первым делом установим сам FreeRADIUS с поддержкой MySQL и USER из портов (с 0.6.7 уже предустановлен и требует только включения в rc.conf):
 +<code>
 +# portsnap fetch extract
 +# 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>
 +
 +Далее заменим стандартные конфигурационные файлы нашими заготовками. Никто, кстати, не говорит, что вам нужно использовать строго наши заготовки, но никто ответственности не понесёт за вашу фантазию:
 +<code>
 +# cd /usr/local/www/apache24/data/billing
 +# cp -r ./docs/freeradius2/raddb/* /usr/local/etc/raddb/
 +</code>
 +
 +По пути заливаем дамп таблиц FreeRADIUS в базу данных. Здесь предполагаем, что база Ubilling - stg, пользователь root, а потом еще и пароль рута попросят:
 +<code>
 +# mysql -u root -p stg < ./docs/freeradius2/dump.sql
 +</code>
 +
 +Потом приступаем к конфигурированию соединения FreeRADIUS с БД Ubilling, редактируя следующие параметры в **/usr/local/etc/raddb/sql.conf**:
 +^ Параметр  ^ Описание                    ^ 
 +| server    | Хост/IP сервера базы данных |
 +| port      | Порт сервера базы данных    |
 +| login     | Пользователь                |
 +| password  | Пароль                      |
 +| radius_db | Имя базы данных             |
 +
 +Если все закончили, можно попробовать запустить FreeRADIUS, но пока в debug-режиме:
 +<code>
 +# radiusd -X
 +</code>
 +
 +И если вы увидели нечто похожее на код ниже - можно продолжать дальше...
 +<code>
 +... 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>
 +
 +===== Включение поддержки FreeRADIUS самим Ubilling'ом =====
 +Всего лишь в `config/alter.ini` заменяем значение опции //FREERADIUS_ENABLED//:
 +<code ini>
 +FREERADIUS_ENABLED = 1
 +</code>
 +После этого вы сможете:
 +  - Редактировать сети, указывая какие используют RADIUS, а какие нет (по-умолчанию - нет);
 +  - Указывать для каждой сети как //check// так и //reply// атрибуты для всей сети или для каждого пользователя (галочка "Всем")
 +  - Указывать для каждого пользователя как //check// так и //reply// атрибуты с помощью "чёрной магии" в профиле пользователя
 +
 +===== Настройка атрибутов =====
 +Для каждого случая возможны различные наборы атрибутов. Поэтому их настройка будет приводиться для отдельных решений в соответствующих разделах документации. Для добавления/редактирования атрибутов предусмотрена удобная форма на подобие этой:
 +
 +{{ :radius_add_form_2.png?nolink& |}}
 +
 +
 +===== Авторизация пользователей не по логину =====
 +Для некоторых систем, необходимо изменить стандартный способ авторизации по логину, используемый большинством программных решений ([[mpd5|MPD5]], [[accelppp|Accel-PPP]], [[ieee_802.1x|IEEE 802.1x]]) на авторизацию по IP (например, [[linux_isg|Linux ISG]]) или MAC (например, MikroTik DHCP). Для этого, с релиза **0.6.1 rev 3933** предусмотрена удобная форма, которая позволит вам в 2 клика изменить все ключи в базе данных для какой либо **сети**. Для решений, где необходимо будет изменить стандартный способ авторизации по логину, мы сообщим нужное значение для этого параметра в документации.
 +
 +{{ :radius_username_reassignment_modal.png?nolink& |}}
 +===== Макросы =====
 +^ Макрос ({*})   ^ Значение               ^ Поле MySQL                ^
 +| user[login]    | Логин пользователя     | `users`.`login`           |
 +| user[Password] | Пароль пользователя    | `users`.`Password`        |
 +| user[Tariff]   | Тариф пользователя     | `users`.`Tariff`          |
 +| user[state]    | Состояние пользователя                            ||
 +| nethost[ip]    | IP пользователя        | `nethosts`.`ip`           |
 +| nethost[mac]   | MAC пользователя       | `nethosts`.`mac`          |
 +| network[id]    | ID сети                | `networks`.`id`           |
 +| network[ip]    | IP сети                | `networks`.`desc` [*/]    |
 +| network[cidr]  | CIDR сети              | `networks`.`desc` [/*]    |
 +| network[start] | Начальный IP сети      | `networks`.`start`        |
 +| network[end]   | Конечный IP сети       | `networks`.`end`          |
 +| network[desc]  | IP/CIDR сети           | `networks`.`desc`         |
 +| switch[ip]     | IP адрес свитча        | `switches`.`ip`           |
 +| switch[port]   | Номер порта            | `switchportassign`.`port` |
 +| speed[up]      | Скорость вверх         | `speeds`.`speedup`        |
 +| speed[down]    | Скорость вниз          | `speeds`.`speeddown`      |
 +
 +**Заметка**: Замена макроса происходит в любом месте значения атрибута, но только одного:
 +<code>
 +mpd-pipe  += "1=bw {speed[down]}Kbyte/s",
 +mpd-pipe  += "5=bw {speed[up]}Kbyte/s",
 +</code>
 +MPD5 породит для пользователя со скоростью 4000/2000 нечто такое:
 +<code>
 +ipfw pipe 10000 config bw 4000Kbyte/s
 +ipfw pipe 10001 config bw 2000Kbyte/s
 +</code>
 +
 +====== Об учёте трафика ======
 +Сам сервер FreeRADIUS вести учёт трафика не будет! Трафик должен учитываться при помощи протокола NetFlow: сенсором будет выступать сам RADIUS-клиент, который будет отправлять статистику на коллектор, в нашем случае модуль cap_nf ядра системы. Как это сделать будет описано отдельно в документации для выбранного вами решения
 +
 +====== Как проверить все ли хорошо? ======
 +При запущенном в одном окне 
 +  # radiusd -X 
 +  
 +делаем в соседнем что-то вроде
 +
 +  # radtest testlogin testpassword 127.0.0.1 0 dec0071981b1
 +  
 +Где testlogin и testpassword как несложно догадаться - логин/пароль существующего пользователя которого мы проверяем на авторизуемость, а dec0071981b1 это Radius secret нашего локального сервера доступа. Откуда он берется? А вот откуда:
 +
 +{{:freeradius2wherekey.png?|}}
 +
 +Что мы должны увидеть в результате? А вот что-то такое:
 +
 +<code>
 +root@test93x64:/usr/home/ubilling # radtest testlogin testpassword 127.0.0.1 0 dec0071981b1
 +Sending Access-Request of id 154 to 127.0.0.1 port 1812
 + User-Name = "testlogin"
 + User-Password = "testpassword"
 + NAS-IP-Address = 127.0.0.1
 + NAS-Port = 0
 + Message-Authenticator = 0x00000000000000000000000000000000
 +rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=154, length=32
 + Framed-IP-Address = 172.16.0.3
 + Framed-IP-Netmask = 255.255.255.255
 +
 +</code>
 +
 +В случае если мы увидим что-то вроде 
 +<code>
 +root@test93x64:/usr/home/ubilling # radtest testlogin testpassword 127.0.0.1 0 dec0071981b1
 +radclient:: Failed to find IP address for test93x64
 +radclient: Nothing to send.
 +</code>
 +
 +стоит обратить внимание как минимум на **/etc/hosts** на тему добавления туда нашего хостнейма в виде
 +<code>
 +127.0.0.1              127.0.0.1              test93x64 test93x64.localdomain
 +</code>
 +
 +
 +====== Блокирование доступа должникам, отключенцам и отморозками ======
 +Для запрещения авторизации пользователям, которые заведомо должны быть отключены вы можете использовать кастомный дамп, следующим образом
 +
 +  # cd /usr/local/www/apache24/data/billing
 +  # mysql -u root -p stg < ./docs/freeradius2/dump-ignore-debtors.sql