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

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


mgmpdppp

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія По сторонах наступні версії
mgmpdppp [2018/09/15 01:15]
mgmpdppp [2022/09/24 14:39]
127.0.0.1 зовнішнє редагування
Рядок 1: Рядок 1:
 +====== MPD5 PPPoE сервер при помощи КучаГен ======
 +===== Конфиг MPD5 =====
 +Для простоты вещи которые вы должни заменить будут в фигурных скобках в примере ниже:
 +<file mpd.conf>
 +startup:
 +        #local console access
 + set user {CHANGEME_USERNAME} {CHANGEME_PASSWORD} admin
 + set console self 127.0.0.1 5005
 + set console open
 +        #send netflow to billing
 + set netflow peer {BILLING_IP} 42111
 + set netflow timeouts 15 1800
 + set netflow version 5
 +        #CoA/PoD access
 +        set radsrv peer {BILLING_IP} {NASSECRET}
 +        set radsrv self {LISTEN_IP} {NASPORT}
 +        set radsrv open
 +
 + 
 +default:
 + create bundle template B
 + set bundle enable compression
 + set bundle enable encryption
 + set iface idle 0
 + set iface disable proxy-arp
 + set iface enable tcpmssfix
 + set iface enable netflow-in
 + set iface enable netflow-out
 + set ipcp yes vjcomp
 + set ipcp ranges {DEFAULT_GATEWAY}/32 0.0.0.0/0
 + set ipcp dns {DNS1} {DNS2}
 + set ccp yes mppc
 + set mppc yes compress
 + set mppc yes e40
 + set mppc yes e56
 + set mppc yes e128
 + set mppc yes stateless
 + set ecp disable dese-bis dese-old
 + log -echo -ipv6cp -radius -rep
 + load common
 +common:
 + create link template PPPoE pppoe
 + set link enable no-orig-auth
 + set link max-children 300
 + set auth max-logins 0
 + load radius
 + load pppoe
 + 
 +radius:
 + set radius server {BILLING_IP} {NASSECRET} 1812 1813
 + set radius timeout 3
 + set radius me localhost
 + set auth acct-update 300
 + set auth enable radius-auth
 + set auth enable radius-acct
 + set radius enable message-authentic
 + 
 +pppoe:
 + set link action bundle B
 + set link enable multilink
 + set link yes acfcomp protocomp
 + set link disable chap pap eap
 + set link enable chap chap-msv1 chap-msv2 chap-md5
 + set link keep-alive 10 60
 + 
 + create link template vtnet1 PPPoE
 + set pppoe iface {LOCAL_IFACE}
 + set link enable incoming
 + set pppoe service *
 +
 +</file>
 +
 +Маленький справочник: \\
 +{LISTEN_IP} - локальный IP NAS к которому биллинг может достучаться по указанному порту {PORT} (обычно 3799). \\
 +{NAS_SECRET} - пароль для нашего NAS сгенерированый при его добавлении в биллинг ([[http://wiki.ubilling.net.ua/doku.php?id=multigen#%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0|пример]]) \\
 +
 +===== Настройка RADIUS аттрибутов =====
 +Аттрибуты делятся на три типа:
 +  - Назначаются всем пользователям
 +  - Только активным
 +  - Только не активным
 +Из этого можно составить примерно следующую логику. \\
 +Активные пользователи получают доступ в интернет на скорости тарифа. \\
 +Неактивные попадют в табличку 47. Логично с ними что-то делать потом, например доступ в ЛК, wallet garden и прочее на что хватит фантазии. \\
 +Слегка не тривиально, из-за того что разные атрибуты не могут иметь одинакового имени в рамках одного сценария. Поэтому делаем так:
 +
 +{{:mgmpdpppoe2.jpg?500|}}
 +\\
 +Стоит обратить внимание на двойные кавычки. Там нет никакой ошибки, аттрибуты должны быть заполнены именно так. \\
 +Для подробностей обратитесь к официальной документации по mpd. \\
 +
 +===== Настройка сервисов =====
 +{{:services.jpg?500|}} \\ 
 +Открываем редактирование Сервисов и в зависимости от типа NAS который мы указали (PoD/CoA) будем заполнять тот или иной. \\
 +Для MPD подходят оба типа: и PoD и CoA. \\
 +PoD хорошо сочетается с опцией "Только активным пользователям". Когда пользователь становится неактивным, шлем PoD и удаляем данные из БД пока он не станет снова активным. \\
 +Ниже примеры.
 +==== PoD ====
 +<code>
 +{PRINTF} "User-Name= {USERNAME}" | {SUDO} {RADCLIENT} {NASIP}:{NASPORT} disconnect {NASSECRET} 
 +</code>
 +
 +==== CoA ====
 +CoA Connect:
 +<code>
 +{PRINTF} "User-Name={USERNAME}\nmpd-limit+="\""in#1=all rate-limit {SPEEDDOWNB} {SPEEDDOWNBC}"\""\nmpd-limit+="\""out#1=all rate-limit {SPEEDUPB} {SPEEDUPBC}"\" | {SUDO} {RADCLIENT} {NASIP}:{NASPORT} coa {NASSECRET} 
 +</code>
 +
 +CoA Disconnect:
 +<code>
 +{PRINTF} "User-Name= {USERNAME}\n mpd-table-static+=47" | {SUDO} {RADCLIENT} {NASIP}:{NASPORT} coa {NASSECRET} 
 +</code>
 +
 +==== Подготовка FreeRADIUS ====
 +Не забываем про словарь для нашего NAS. Правим файл /usr/local/etc/raddb/dictionary. \\
 +Раскоментируем строку с последующим перезапуском freeradius.
 +<code>
 +$INCLUDE       /usr/local/etc/raddb/dictionary_preset/mpd.dictionary
 +</code>
 +
 +
 +==== Конфигурация чисто для тестирования ====
 +<code>
 +eyJvcHRpb25zIjp7ImlkIjoiMSIsIm5hc2lkIjoiMSIsInVzZXJuYW1ldHlwZSI6ImxvZ2luIiwic2VydmljZSI6InBvZCIsIm9ubHlhY3RpdmUiOiIxIiwicG9ydCI6IjM3OTkifSwiYXR0cmlidXRlcyI6eyIxIjp7ImlkIjoiMSIsIm5hc2lkIjoiMSIsInNjZW5hcmlvIjoiY2hlY2siLCJtb2RpZmllciI6ImFsbCIsImF0dHJpYnV0ZSI6IkNsZWFydGV4dC1QYXNzd29yZCIsIm9wZXJhdG9yIjoiOj0iLCJjb250ZW50Ijoie1BBU1NXT1JEfSJ9LCIyIjp7ImlkIjoiMiIsIm5hc2lkIjoiMSIsInNjZW5hcmlvIjoicmVwbHkiLCJtb2RpZmllciI6ImFsbCIsImF0dHJpYnV0ZSI6IkZyYW1lZC1JUC1BZGRyZXNzIiwib3BlcmF0b3IiOiI9IiwiY29udGVudCI6IntJUH0ifSwiMyI6eyJpZCI6IjMiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6InJlcGx5IiwibW9kaWZpZXIiOiJhbGwiLCJhdHRyaWJ1dGUiOiJGcmFtZWQtTmV0bWFzayIsIm9wZXJhdG9yIjoiPSIsImNvbnRlbnQiOiIyNTUuMjU1LjI1NS4yNTUifSwiNCI6eyJpZCI6IjQiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6InJlcGx5IiwibW9kaWZpZXIiOiJhY3RpdmUiLCJhdHRyaWJ1dGUiOiJtcGQtbGltaXQiLCJvcGVyYXRvciI6Iis9IiwiY29udGVudCI6Ilwib3V0IzE9YWxsIHJhdGUtbGltaXQge1NQRUVERE9XTkJ9IHtTUEVFRERPV05CQ31cIiJ9LCI1Ijp7ImlkIjoiNSIsIm5hc2lkIjoiMSIsInNjZW5hcmlvIjoicmVwbHkiLCJtb2RpZmllciI6ImluYWN0aXZlIiwiYXR0cmlidXRlIjoibXBkLXRhYmxlLXN0YXRpYyIsIm9wZXJhdG9yIjoiKz0iLCJjb250ZW50IjoiNDcifSwiNiI6eyJpZCI6IjYiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6Imdyb3VwcmVwbHkiLCJtb2RpZmllciI6ImFjdGl2ZSIsImF0dHJpYnV0ZSI6Im1wZC1saW1pdCIsIm9wZXJhdG9yIjoiKz0iLCJjb250ZW50IjoiXCJpbiMxPWFsbCByYXRlLWxpbWl0IHtTUEVFRFVQQn0ge1NQRUVEVVBCQ31cIiJ9fSwic2VydmljZXMiOnsiMSI6eyJpZCI6IjEiLCJuYXNpZCI6IjEiLCJwb2QiOiJ7UFJJTlRGfSBcIlVzZXItTmFtZT0ge1VTRVJOQU1FfVwiIHwge1NVRE99IHtSQURDTElFTlR9IHtOQVNJUH06e05BU1BPUlR9IGRpc2Nvbm5lY3Qge05BU1NFQ1JFVH0iLCJjb2Fjb25uZWN0IjoiIiwiY29hZGlzY29ubmVjdCI6IiJ9fX0=
 +</code>
  
mgmpdppp.txt · Востаннє змінено: 2023/08/30 19:00 повз nightfly