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

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


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації щодо оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Допомога проєкту
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

mgmpdppp

MPD5 PPPoE сервер за допомогою КупаГен

Конфіг MPD5

Для простоти, речі які Ви повинні замінити будуть у фігурних дужках в прикладі нижче:

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 *

Малий довідник:
{LISTEN_IP} - локальний IP NAS до якого білінг може звернутись через зазначений порту {PORT} (за звичай 3799).
{NAS_SECRET} - пароль для нашого NAS, сгенерирований при його додаванні в біллінг (приклад)

Налаштування RADIUS аттрибутів

Аттрибути ділятся на три типа:

  1. Призначаються всім користувачам
  2. Тільки активним
  3. Тілько не активним

З цього можна скласти наступну логіку.
Активні користувачі отримують доступ в інетрнет на швидкості тарифа.
Неактивні потрапляють до таблички 47. Логічно, що щ ними щось будуть робити згодом, наприклад доступ до ЛК, wallet garden та інше на що вистачить фантазії.
Трохи не тривіально, через те,що різні атрибути не можуть мати однакового імені в рамках одного сценарію. Тому робимо наступним чином:


Варто звернути увагу на подвійні лапки. Там немає помилки, аттрибути повинні бути заповнені саме так.
Для отримання більш докладної інформації, зверніться до офіційної документації mpd.

Налаштування сервісів


Відкриваємо редагування Сервісів та в залежності від типа NAS, який ми зазначили (PoD/CoA) будемо заповнлювати той чи інший.
Для MPD підходять оба типа: і PoD і CoA.
PoD добре поєднуєтся з опцієй “Тільки автиним користувачам”. Коли користувач становится неактивним, надсилаєм PoD та видаляємо данні з БД до того часу, поки він знову не стане активним.
Нижче приклади.

PoD

{PRINTF} "User-Name= {USERNAME}" | {SUDO} {RADCLIENT} {NASIP}:{NASPORT} disconnect {NASSECRET} 

CoA

CoA Connect:

{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} 

CoA Disconnect:

{PRINTF} "User-Name= {USERNAME}\n mpd-table-static+=47" | {SUDO} {RADCLIENT} {NASIP}:{NASPORT} coa {NASSECRET} 

Підготовка FreeRADIUS

Не забуваємо про словник для нашого NAS. Правим файл /usr/local/etc/raddb/dictionary.
Раскоментуємо рядок та перезапустимо freeradius.

$INCLUDE       /usr/local/etc/raddb/dictionary_preset/mpd.dictionary

Конфігурація для тестування

eyJvcHRpb25zIjp7ImlkIjoiMSIsIm5hc2lkIjoiMSIsInVzZXJuYW1ldHlwZSI6ImxvZ2luIiwic2VydmljZSI6InBvZCIsIm9ubHlhY3RpdmUiOiIxIiwicG9ydCI6IjM3OTkifSwiYXR0cmlidXRlcyI6eyIxIjp7ImlkIjoiMSIsIm5hc2lkIjoiMSIsInNjZW5hcmlvIjoiY2hlY2siLCJtb2RpZmllciI6ImFsbCIsImF0dHJpYnV0ZSI6IkNsZWFydGV4dC1QYXNzd29yZCIsIm9wZXJhdG9yIjoiOj0iLCJjb250ZW50Ijoie1BBU1NXT1JEfSJ9LCIyIjp7ImlkIjoiMiIsIm5hc2lkIjoiMSIsInNjZW5hcmlvIjoicmVwbHkiLCJtb2RpZmllciI6ImFsbCIsImF0dHJpYnV0ZSI6IkZyYW1lZC1JUC1BZGRyZXNzIiwib3BlcmF0b3IiOiI9IiwiY29udGVudCI6IntJUH0ifSwiMyI6eyJpZCI6IjMiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6InJlcGx5IiwibW9kaWZpZXIiOiJhbGwiLCJhdHRyaWJ1dGUiOiJGcmFtZWQtTmV0bWFzayIsIm9wZXJhdG9yIjoiPSIsImNvbnRlbnQiOiIyNTUuMjU1LjI1NS4yNTUifSwiNCI6eyJpZCI6IjQiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6InJlcGx5IiwibW9kaWZpZXIiOiJhY3RpdmUiLCJhdHRyaWJ1dGUiOiJtcGQtbGltaXQiLCJvcGVyYXRvciI6Iis9IiwiY29udGVudCI6Ilwib3V0IzE9YWxsIHJhdGUtbGltaXQge1NQRUVERE9XTkJ9IHtTUEVFRERPV05CQ31cIiJ9LCI1Ijp7ImlkIjoiNSIsIm5hc2lkIjoiMSIsInNjZW5hcmlvIjoicmVwbHkiLCJtb2RpZmllciI6ImluYWN0aXZlIiwiYXR0cmlidXRlIjoibXBkLXRhYmxlLXN0YXRpYyIsIm9wZXJhdG9yIjoiKz0iLCJjb250ZW50IjoiNDcifSwiNiI6eyJpZCI6IjYiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6Imdyb3VwcmVwbHkiLCJtb2RpZmllciI6ImFjdGl2ZSIsImF0dHJpYnV0ZSI6Im1wZC1saW1pdCIsIm9wZXJhdG9yIjoiKz0iLCJjb250ZW50IjoiXCJpbiMxPWFsbCByYXRlLWxpbWl0IHtTUEVFRFVQQn0ge1NQRUVEVVBCQ31cIiJ9fSwic2VydmljZXMiOnsiMSI6eyJpZCI6IjEiLCJuYXNpZCI6IjEiLCJwb2QiOiJ7UFJJTlRGfSBcIlVzZXItTmFtZT0ge1VTRVJOQU1FfVwiIHwge1NVRE99IHtSQURDTElFTlR9IHtOQVNJUH06e05BU1BPUlR9IGRpc2Nvbm5lY3Qge05BU1NFQ1JFVH0iLCJjb2Fjb25uZWN0IjoiIiwiY29hZGlzY29ubmVjdCI6IiJ9fX0=
mgmpdppp.txt · Востаннє змінено: 2023/08/30 19:00 повз nightfly