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

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


mgmpdppp

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
mgmpdppp [2018/09/15 01:15]
mgmpdppp [2023/08/30 19:00] (поточний)
nightfly [Конфигурация для тестування]
Рядок 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>