Инструменты пользователя

Инструменты сайта


Боковая панель

Разделы

Общее описание
История изменений
Рекомендации к обновлению
Планы на будущее
Известные проблемы
Онлайн демо
Случайная статья
Видео
Помощь проекту
Люди

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
mgmpdppp.txt · Последние изменения: 2019/08/14 16:24 — l1ght