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

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


freeradius

Розбіжності

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

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

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