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

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


freeradius

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
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