====== 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, сгенерирований при його додаванні в біллінг ([[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 ==== {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=