FreeBSD. MPD5.conf

Весьма рабочий конфик mpd5 для FreeBSD. Настроен для связки mpd5 + FreeRadius + Abills. Отдаёт интернет по pptp и pppoe.

Работает данная конфигурация mpd5 уже более 3-х лет на одном из провайдеров Минска. Особых жалоб за период эксплуатации не наблюдалось.
Файл конфигурации mpd5 /usr/local/etc/mpd5/mpd.conf

startup: #(при старте)
set global enable tcp-wrapper
#С этой опцией mpd использует /etc/hosts.allow каждый раз при подключении клиента.
#Это полезно когда вы хотите ограничить доступ к mpd. Эта опция затрагивает все TCP
#соединения, включая PPTP и TCP уровень устройства. По умолчанию запрещено.
set console self IPWAN 5005
#Устанавливает специфические для консоли параметры конфигурации.
set user admin NAS_PASSWD admin
#Устанавлнивает пароль пользователя
set console open
#Делает консоль доступной
#set web self 0.0.0.0 5006
#конфигурация по веб серверу
#set web open
#оставлять запущенным веб сервер
#Netflow options
set netflow peer 127.0.0.1 9995
#Откуда брать информация по нетфлоу (в данном случае он сам являет источником информации)
##Устанавливает адрес назначения и порт, куда будут отосланы NetFlow datagrams. Необходима для работы NetFlow.
set netflow self 127.0.0.1 9990
#Устанавливает локальный адрес и порт, с которого слать netflow пакеты.
set netflow timeouts 5 15
#Изменяет значения активного и неактивного таймаутов.
set netflow hook 9000
#Использовать ng_netflow(4) node’s hooks начиная с определенного номера.
#Более детально о именах hooks, см ман ng_netflow(4)
set ippool add pool1 ‘${IP_POOL}’
#Mpd поддерживает динамическое управление адресным пулом.
#Когда юзер аутентифицируется и у него нет статического адреса, он будет назначен из пула.
#Для того что бы это работало вам нужно создать пулы с помощью ‘set ippool add …’
#и определить какой пул должен использоваться с ‘set ipcp ranges … ippool …’ ,
#radius-auth Framed-Pool attribute или ext-auth FRAMED_POOL attribute.

default:#(загружает последующие конфиги соединений)
load pptp_server
load pppoe_server
load pppoe_server2
load pppoe_server3

pptp_server:
create bundle template B
# Создание новой связки с указанным именем, которое по выбору может базироватся на шаблоне.
# Если указана опция ‘template’ связка не будет работать,
# но она будет использована для создания новой связки по требованию.
# Если указана опция ‘static’, это будет неизменяемая связка которая не исчезает после завершения операций.
# Максимальная длина имени для шаблонов 10 символов, для других связок 15.

# Разрешает и запрещает различные опции связки (bundle) уровня интерфейса:

set iface enable tcpmssfix
# Эта опция заставляет mpd приводить в порядок TCP данные для того
# чтобы размер отправленного фрагмента не превышал установленный MTU для интерфейса.
set iface disable proxy-arp
# Когда включена эта опция после установки связи,
# IP клиента принадлежит локальной подсети,
# тогда для локальных машин mpd разместит в proxy ARP адрес точку доступа удаленной машины.
# Например, локальная машина имеет адрес 192.168.1.10,
# другая машина соединяется через mpd используя адрес 192.168.1.20.
# Тогда эта команда установит proxy ARP для удаленной машины:
set iface idle 3600
# Устанавливает время простоя связки.
# Если за время seconds не будет передано «учетных» пакетов, то соединение разрывается.
# 0 значение отключает эту опцию. Когда проходит время простоя, если вызов по требованию включен, mpd перезванивает.
# В противном случае связь разрывается и маршруты удаляются.
# По умолчанию 0
set iface enable netflow-in netflow-out
# если enabled, связка будет участвовать в генерировании потока NetFlow.
# Подробнее смотри раздел о the NetFlow.
# Опция netflow-out подобна netflow-in, но генерирует поток NetFlow для исходящего трафика вместо входящего.
# Если включен netflow-once, пакеты будут учитаны только когда находятся в ядре.

# По умолчанию disable.
set iface up-script «/usr/abills/libexec/linkupdown mpd up»
set iface down-script «/usr/abills/libexec/linkupdown mpd down»
# Mpd может запускать программы пользователей, когда протоколы (IPCP/IPv6CP) установлены или разорваны.
# Пример вызова up-script:
# script interface proto local-ip remote-ip authname [ dns1 server-ip ] [ dns2 server-ip ]
# Если статус при выходе скрипта не 0, то mpd убивает данный протокол.
# Пример вызова down-script:
# script interface proto local-ip remote-ip authname
set ipcp yes vjcomp
# Устанавливает параметры конфигурации протокола управления IP для текущей активной
# связки.
# Настраивает разные опции IPCP. vjcomp двунаправленная и может быть включена в одном и/или другом направлении.
# enable и disable определяют хотим ли мы включить ту или иную опцию на локальном компьютере.
# accept и deny разрешим ли мы соответствующую опцию на удаленном компьютере. yes =enable и accept. no = disable и deny.

# Доступные опции:
# vjcomp Эта опция включает Van Jacobson сжатие заголовка TCP,
# которая сохранит несколько байт в TCP пакете. Почти всегда включается.
# Неэффективен для ТСР соединений с современными добавлениями такими как штамп времени или SACK,
# которые изменяют ТСР опции от пакета к пакету. По умолчанию enable и accept.
set iface enable netflow-once
# если enabled, связка будет участвовать в генерировании потока NetFlow.
# Подробнее смотри раздел о the NetFlow.
# Опция netflow-out подобна netflow-in, но генерирует поток NetFlow для исходящего трафика вместо входящего.
# Если включен netflow-once, пакеты будут учтены только когда находятся в ядре.

set ipcp ranges IPWAN/32 ippool pool1
# Команда определяет IP каждой конечной точки.
# Для каждой конечной точки у нас будет адрес и маска.
# width 32 конкретный адрес; width 0 любой адрес.
# Например 192.168.1.17/25 означает что выбран IP 192.168.1.17,
# но любой адрес из диапазона 192.168.1.0 -192.168.1.128 разрешены.
set ipcp dns MPD_DNS
# Некоторые PPP клиенты запрашивают информацию о DNS сервере.
# Эта команда разрешает mpd отвечать на эти запросы.
# Эта команда особенно полезна для информирования PPTP клиентов.
# Могут быть определены 1 или 2 DNS сервера. 0.0.0.0 отключает эту опцию.

create link template L pptp
# Создает новое подключение с указанным именем и типом,
# по выбору може базироватся на шаблоне. Если указана опция ‘template’ связка не будет работать,
# но она будет использована для создания новой связки по требованию.
# Если указана опция ‘static’, это будет неизменяемая связка которая не исчезает после завершения операций.
# Максимальная длина имени для шаблонов 10 символов, для других связок 15.
#
set link action bundle B
# Список команд описывает, как должны быть обработаны входящие звонки.
# «bundle» означает, что подключение должно быть обработано с указанной связкой.
# «forward» означает, что подключение должно быть отправлено,
# используя повторитель для указанной связи.
# Дополнительный параметр «regexp» определяет регулярное выражение,
# которое будет проверено по отношению к auth name пира.
# Действия из списка будут проверены в порядке определения, пока regexp соответствие не будет найдено.
# Действия будут обработаны трижды. В первый раз они проверяются только после разрешения ,
# во второй раз только после получения авторизации пира во время переговоров LCP, и в третий раз, когда связь установлена.
# Во время первой проверки еще нет никакого auth name , проверка будет пропущена,
# если будет определено более одного действие для связи или если у действия есть определенный regexp.
set link enable report-mac
# mpd может отправлять MAC адреса и интерфейсы в Calling-Station-Id. По умолчанию disable.

set link enable peer-as-calling
# mpd может отсылать адреса удаленных туннелей в Calling-Station-Id
# вместо адреса поданного от удаленного компьютера через тунель (PPTP и L2TP).
# Может быть использовано для непроверенных хостов. По умолчанию disable.

set link enable multilink
# Эта команда допускает работу по многоканальному протоколу PPP на связи.
# Эта опция требуется в обоих направлениях, если есть больше чем одна связь в связке.
# Однако, многоканальный протокол PPP иногда полезен для одиночных связей,
# когда максимальный блок передачи данных связи низок;
# многоканальный протокол PPP позволяет произвольно длинным пакетам проходить через связь.
# Значение по умолчанию, disable (то есть, нормальный немногоканальный протокол PPP).

set link yes acfcomp protocomp
# acfcomp
# Сжатие адреса и контрольных полей. Только для асинхронных каналов.
# Сохраняет 2 байта в кадре. по умолчанию enable и accept.
# protocomp
# сжатие поля протокола. Сохраняет 1 байт в фрейме для большинства кадров. по умолчанию enable и accept.
set link no pap chap
# pap — пароль передается в незашифрованном виде. По умолчанию disable и accept.
# chap — безопаснее pap, потому что передается только хэш пароля.
# Mpd поддерживает MD5 CHAP и Microsoft CHAP версии 1 и 2.
# Mpd предпочитает MD5 CHAP перед Microsoft CHAP, кроме pptp. Эти параметры имеют псевдонимы md5-chap ms-chapv1 ms-chapv2
set link enable chap

set link keep-alive 10 60

# включает отправку LCP echo пакетов. Первый пакет отправляется через seconds секунд простоя
# (т.e., нет принятых пакетов от удаленной машины по связе).
# После более чем seconds,отправляется другой эхо пакет.
# Если после max секунд ответ не будет получен связь будет разорвана.
# Если seconds =0, эхо пакеты отключены. По умолчанию seconds =5, max=40.
# Полезно для модемов у которых поиск несущей нестабилен?.
# Однако , линии шумные и модем тратит много времени на перенастройку, max значение нужно увеличить.
set link mtu 1492
# Устанавливает максимальное mtu (MTU) для связи.

set pptp self 0.0.0.0
# Тут указываем IP сетевой карты которая смотрит в локалку

set pptp disable windowing
# Включает оконный механизм, указанный протоколом.
# Его выключение влечет за собой нарушение mpd PPTP-протокола и может ввести в заблуждение некоторые PPTP-клиенты,
# но обычно означает лучшую производительность.
# Оконный механизм — ошибка проектирования в PPTP-протоколе; L2TP, преемник PPTP, избавлен от него.

set link enable incoming
# Эта опция допускает принятие входящих подключений.
# Если эта опция будет заблокирована, то mpd не будет принимать входящие подключения, используя эту связь.
# Чтобы избежать «гонок»,следует указывать после того, как все другие опции связи конфигурированы.
# Значение по умолчанию, disable
load radius
# Загрузить настройки радиус-сервер

pppoe_server:
create bundle template E
set iface idle 3600
set iface enable tcpmssfix
set iface disable proxy-arp
set ipcp no vjcomp
set iface up-script «/usr/abills/libexec/linkupdown mpd up»
set iface down-script «/usr/abills/libexec/linkupdown mpd down»
set iface enable netflow-in
set iface enable netflow-out
set iface enable netflow-once
set ipcp ranges IPWAN/32 ippool pool1
set ipcp dns MPD_DNS
create link template G pppoe
set link action bundle E
set pppoe acname «provider.locale»
# Устанавливает имя сервиса доступа PPPoE которое будет отослано клиенту.
# Если не задано, будет использоваться локальное имя компьютера.
set pppoe iface «‘${IFLAN}’»
# Устанавливает имя используемого Ethernet-интерфейса. PPPoE не влияет на обычную работу интерфейса.
set pppoe service «provider.locale»
# Устанавливает имя сервиса PPPoE. Имя со значением «*» на подключении с разрешенными входящими соединениями,
# будет принимать запросы с любым установленным именем.
load server_common

pppoe_server2:
create bundle template R
set iface idle 3600
set iface enable tcpmssfix
set iface disable proxy-arp
set ipcp no vjcomp
set iface up-script «/usr/abills/libexec/linkupdown mpd up»
set iface down-script «/usr/abills/libexec/linkupdown mpd down»
set iface enable netflow-in
set iface enable netflow-out
set iface enable netflow-once
set ipcp ranges IPWAN/32 ippool pool1
set ipcp dns MPD_DNS
create link template H pppoe
set link action bundle R
set pppoe acname «provider.locale»
set pppoe iface «IFLAN»
set pppoe service «provider.locale»
load server_common

pppoe_server3:
create bundle template W
set iface idle 3600
set iface enable tcpmssfix
set iface disable proxy-arp
set ipcp no vjcomp
set iface up-script «/usr/abills/libexec/linkupdown mpd up»
set iface down-script «/usr/abills/libexec/linkupdown mpd down»
set iface enable netflow-in
set iface enable netflow-out
set iface enable netflow-once
set ipcp ranges ‘${IPWAN}’/32 ippool pool1
set ipcp dns MPD_DNS
create link template J pppoe
set link action bundle W
set pppoe acname «provider.locale»
set pppoe iface «IFLAN»
set pppoe service «*»
load server_common

server_common:
set link no pap eap
# отключает соответствующие протоколы
set link yes chap-md5
# подключить протокол
set link keep-alive 30 120
# включает отправку LCP echo пакетов. Первый пакет отправляется через seconds секунд простоя
# (т.e., нет принятых пакетов от удаленной машины по связе).
# После более чем seconds,отправляется другой эхо пакет.
# Если после max секунд ответ не будет получен связь будет разорвана.
# Если seconds =0, эхо пакеты отключены. По умолчанию seconds =5, max=40.
# Полезно для модемов у которых поиск несущей нестабилен?.
# Однако , линии шумные и модем тратит много времени на перенастройку, max значение нужно увеличить.
set link enable incoming
set link no acfcomp protocomp
load radius

radius:
set radius server RADIUS_IP RADIUS_PASSWD 1812 1813
set radius retries 3
# Установить к-во попыток RADIUS запросов.
set radius timeout 10
# Устанавливает время отклика RADIUS запроса.
set auth acct-update 300
# enable RADIUS, and fallback to mpd.secret, if RADIUS auth failed
# активирует РАДИУС и следущет mpd.secret, если аутентификация на сервере РАДИУС провалилась

set auth enable radius-auth
# подключает радиус аутентификацию
set auth enable radius-acct
# защищает обмен сообщениями

set auth disable internal

Источник vadim.zvoznikov.by

Запись опубликована в рубрике *PPPoE, *Unix,*Linux, *Сети, FreeBSD. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91