Настройка сервера доступа mpd5 (PPPoE+PPTP+CoA+PoD)

Приветствую!

Целью этой заметки является, обобщение сведений по настройке довольно популярного у провайдеров сервера доступа mpd. В качестве опытного образца возьмем версию 5.5, которая является самой последней на момент этой публикации. Задачи которые мы решим — это поднятие сервера с возможностью терминировать пользователей по протоколам PPPoE и PPTP, при этом запросы будут приниматься с нескольких интерфейсов. Кроме того, предусмотрим управление пользователями при помощи RADIUS-сервера, который реализует технологии CoA (Change of Authorization) и PoD ( Packet of Disconnect ).

Следует отметить, что к конфигурационным файлам mpd очень трепетно относится, поэтому следует придерживаться нескольких правил:

1. Метки начинаются с начала строки, т.е. без отступов и заканчиваются двоеточием
2. Все команды должны начинаться c символа табуляции или пробела
3. Очень важно понимать, что каждая строчка это команда, которая конфигурирует сервер в контексте той или иной cущности сервера (link, bundle, interface и т.п.)

Для начала настраиваем общие свойства нашего сервера:

#устанавливаем админа с именем mpd и паролем mpd
<b>startup:
 set user mpd mpd admin</b>

#настраиваем внутренний RADIUS-сервер для реализации CoA и PoD
<b> set radsrv peer адрес_управляющего_radius_сервера секрет
 set radsrv self адрес_сервера_доступа порт_внутреннего_RADIUS_сервера
 set radsrv open</b>

#настраиваем сброс статистики по Netflow
<b> set netflow peer адрес_коллектора_netflow порт</b>
#установка таймаутов сброса статистика для неактивного и активного потока
<b> set netflow timeouts 60 120</b>

#настройка консоли управления, которая висит на 127.0.0.1:510
<b> set console self 127.0.0.1 510
 set console disable logging
 set console open</b>

#отключаем логирование некоторых событий и загружаем конфигурации pppoe и pptp
<b>default:
 log -echo -ipv6cp -radius -rep
 load pppoe_server
 load pptp_server
</b>


Настраиваем терминирование по протоколу pppoe:

<b>pppoe_server:
 create bundle template B1
 set bundle enable compression
 set bundle enable encryption
 set iface idle 0
 set iface disable proxy-arp
 set iface enable tcpmssfix
 set ipcp yes vjcomp
 set ipcp dns адрес_первичного_сервера_днс адрес_вторичного_сервера_днс
 set ipcp ranges 10.0.0.1/32 10.0.0.254/32</b>
#параметры шифрования и компресии
<b> set ccp yes mppc
 set mppc yes e40
 set mppc yes e56
 set mppc yes e128
 set mppc yes stateless
 set ecp disable dese-bis dese-old</b>
#создаем шаблон для линков
<b> create link template PPPoE pppoe</b>
#количество создаваемых линков по данному шаблону
<b> set link max-children количество_линков</b>
#загружаем настройки авторизации по протоколу RADIUS
<b> load radius</b>
#настраиваем шаблон линка
<b> set link action bundle B1
 set link enable multilink
 set link yes acfcomp protocomp
</b>#настраиваем параметры аутентификации 
<b> set link disable pap eap
 set link enable chap chap-msv1 chap-msv2 chap-md5</b>
#настраиваем пинг keep_alive
<b> set link keep-alive 60 180</b>
#принимать с любым именем службы
<b> set pppoe service "*"</b>

#какие интерфейсы будут принимать запросы на установление сессии
<b> create link template ppp_1 PPPoE
 set pppoe iface интерфейс_1
 set link enable incoming
</b> . . . 
<b> create link template ppp_N PPPoE
 set pppoe iface интерфейс_N
 set link enable incoming
</b>


Настраиваем терминирование по протоколу pptp:

<b>pptp_server:
 create bundle template B2
 set iface idle 1800
 set iface enable tcpmssfix
 set ipcp yes vjcomp
 set ipcp dns адрес_первичного_сервера_днс
 set ipcp nbns адрес_вторичного_сервера_днс
 set bundle enable compression
 set ccp yes mppc
 set mppc yes e40
 set mppc yes e128
 set mppc yes stateless
 set mppc no compress
 create link template PPTP pptp
 set link action bundle B2
 set link disable multilink
 set link yes acfcomp protocomp
 set link no pap chap
 set link enable chap chap-msv1 chap-msv2 chap-md5
 set link keep-alive 10 60
 set link mtu 1460
 set link enable peer-as-calling
 create link template pptp_1 PPTP
 set link enable incoming
 load radius</b>

Настраиваем параметры аутентификации по RADIUS:
<b>radius:
 set radius server адрес_управляющего_radius_сервера секрет порт_авторизации порт_аккаутинга 
 set radius retries 3
 set radius timeout 10
 set auth enable radius-auth
 set auth enable radius-acct</b>


Вывод: мы получили сервер доступа, с возможностью терминировать пользователей по PPPoE и PPTP, управлять пользовательскими сессиями через RADIUS, и сбросом статистики по трафику на коллектор Netflow.


0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.