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

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


mpd

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

mpd [2018/12/21 04:35] (текущий)
Строка 1: Строка 1:
 +====== MPD 5 настройка ======
 +{{htmlmetatags>​
 +metatag-description=(MPD — это основанная на netgraph реализация ppp -протокола мультисвязи.)
 +}}
 +{{ ::​mpd-vpn-01.jpg?​400 |}}
  
 +Homepage: [[http://​mpd.sourceforge.net|MPD - Multi-link PPP daemon for FreeBSD]]
 +
 +**MPD** - это основанная на netgraph реализация ppp-протокола мультисвязи для FreeBSD. MPD спроектирован быть быстрым и гибким,​ обрабатывая конфигурацию и обращения в режиме пользователя,​ направляя пакеты данных напрямую в ядро.
 +
 +===== Поддержка типов связи =====
 +MPD имеет унифицированную поддержку следующих типов связи:
 +  * modem — для использования различных асинхронных последовательных соединений,​ включая модемы,​ терминальные адаптеры ISDN а также нуль-модемное соединение. MPD включает событийно-управляемый скриптовый язык для идентификации модема,​ установки,​ ручного логина и т. д.
 +  * [[pptp]] — для подключения через интернет,​ используя Point-to-Point Tunnelling Protocol (PPTP). Этот протокол поддерживается большинством Операционных систем и производителей оборудования.
 +  * [[l2tp]] — для подключения через интернет,​ используя Layer Two Tunnelling Protocol (L2TP). L2TP — это преемник PPTP, поддерживаемый современными клиентами и серверами.
 +  * [[pppoe]] — для подключения через порт Ethernet, используя протокол PPP-over-Ethernet (PPPoE). Этот протокол часто используется DSL-провайдерами.
 +  * [[tcp]] — для туннеллирования PPP сессии по TCP соединению. Кадры закодированы так же, как при асинхронном последовательном соединении
 +  * [[udp]] — для туннеллирования PPP сессии по UDP соединению. Каждый кадр инкапсулирован в пакет UDP-датаграммы
 +  * ng — для подключения,​ используя различные устройства,​ поддерживаемые netgraph-ом. [[Netgraph]] — это модульная сетевая подсистема ядра, поддерживающая синхронные последовательные соединения,​ Cisco HDLC, Frame Relay и другие протоколы
 +===== Поддержка PPP =====
 +MPD поддерживает некоторые типы подпротоколов PPP и его расширения,​ такие как:
 +  * PPP с множественными подключениями
 +  * PAP, CHAP, MS-CHAP and EAP аутентификацию
 +  * сжатие трафика (MPPC, Deflate, Predictor-1)
 +  * шифрование трафика (MPPE, DESE, DESE-bis)
 +  * обмен параметрами IPCP и IPV6CP
 +В зависимости от конфигурационных правил и параметров подключения MPD может работать как обычный PPP клиент/​сервер или перенаправлять подключение без модификации на другой хост, используя любой поддерживаемый тип подключения,​ предоставляя функциональность LAC/PAC/TSA для построения сетей с распределенным управлением доступом.
 +===== Дополнительные возможности =====
 +MPD также включает множество дополнительных особенностей (фич):
 +  * поддержка [[IPv4]] и [[IPv6]]
 +  * управление через интерфейсы [[Telnet]] и HTTP
 +  * различные методы аутентификации и учета ([[RADIUS]],​ PAM, script, file, …)
 +  * учет трафика посредством [[NetFlow]]
 +  * NAT
 +  * дозвон по запросу с тайм-аутом простоя
 +  * динамическое управление подключением,​ основанное на требованиях (также известное как «rubber bandwidth» — «резиновый канал»,​ «резиновая пропускная способность»)
 +  * мощный скриптовый язык чата для асинхронных последовательных портов
 +  * оттестированные скрипты для некоторых общих модемов и ISDN TA
 +  * чистый аппаратно-независимый дизайн
 +  * всестороннее протоколирование
 +
 +====== Установка MPD 5.5 ======
 +FreeBSD 7.2-RELEASE-p4 mpd-5.5
 +  * Установка<​code>​
 +> cd /​usr/​ports/​net/​mpd5
 +> make install clean
 +> echo '​mpd_enable="​YES"'​ >> /​etc/​rc.conf
 +> cd /​usr/​local/​etc/​mpd5/​
 +> cp mpd.conf.sample mpd.conf
 +> cp mpd.secret.sample mpd.secret
 +> chmod 440 mpd.conf
 +> chmod 440 mpd.secret
 +</​code>​
 +  * Настройка mpd.secret. В этом файле хранятся логины и пароли пользователей VPN. Выдаваемый пользователю IP может быть динамическим.<​code>​
 +> ee mpd.secret
 +#​Пользователь ​             Пароль ​            ​Выдаваемый пользователю IP
 +test1                    "​test1" ​             192.168.1.201
 +</​code>​
 +  * Настройка и ротация log файлов mpd. В конце файла syslog.conf добавляем строки:<​code>​
 +> ee /​etc/​syslog.conf
 +!mpd
 +*.*     /​var/​log/​mpd.log
 +> touch /​var/​log/​mpd.log
 +> ee /​etc/​newsyslog.conf
 +...
 +/​var/​log/​mpd.log ​                       600  5     ​100 ​ *     JC
 +...
 +> /​etc/​rc.d/​syslogd reload
 +</​code>​
 +
 +<note warning>​mpd.conf переделать</​note><​code>​
 +
 +  * Настройка mpd.conf - конфигурационного файла VPN сервера
 +> ee /​usr/​local/​etc/​mpd5/​mpd.conf
 +#################################################################​
 +#
 +#       MPD configuration file
 +#
 +#################################################################​
 +
 +startup:
 +        # configure mpd users
 +        # Пользователь с правами админа Логин: foo, Пароль:​ bar
 +        set user foo bar admin
 +        # configure the console
 +        # Нужно чтобы подключится по телнету через 5005 порт
 +        set console self 127.0.0.1 5005
 +        set console open                                                     
 +        # configure the web server
 +        # Web интрефейс MPD. Для подключения в браузере набрать:​ http://​91.x.x.x:​5006/​
 +        set web self 91.x.x.x 5006
 +        set web open
 +
 +default:
 +        load pptp_server
 +
 +pptp_server:​
 +# Define dynamic IP address pool.
 +# который присвоется VPN девайсу.
 +        set ippool add pool1 192.168.86.100 192.168.86.150
 +
 +# Create clonable bundle template named B
 +        create bundle template B
 +        set iface enable proxy-arp
 +        set iface idle 1800
 +        set iface enable tcpmssfix
 +        set ipcp yes vjcomp
 +# Specify IP address pool for dynamic assigment.
 +        # IP адрес сервера,​ который мы будем показывать клиентам (можно не реальный IP)
 +        set ipcp ranges 192.168.1.101/​32 ippool pool1
 +        set ipcp dns 192.168.1.254 - DNS сервер
 +        set ipcp nbns 192.168.1.254 - WINS сервер
 +# The five lines below enable Microsoft Point-to-Point encryption
 +# (MPPE) using the ng_mppc(8) netgraph node type.
 +        set ipcp ranges 192.168.1.101/​32 ippool pool1
 +        set ipcp dns 192.168.1.254
 +        set bundle enable compression
 +        set ccp yes mppc
 +        set mppc yes compress
 +        set mppc yes e128
 +        set mppc yes stateless
 +# Create clonable link template named L
 +        create link template L pptp
 +# Set bundle template to use
 +        set link action bundle B
 +# Multilink adds some overhead, but gives full 1500 MTU.
 +        set link enable multilink
 +        set link yes acfcomp protocomp
 +        set link no pap chap eap
 +        set link enable chap
 +# We can use use RADIUS authentication/​accounting by including
 +# another config section with label '​radius'​.
 +#       load radius
 +        set link keep-alive 10 60
 +# We reducing link mtu to avoid GRE packet fragmentation.
 +        set link mtu 1460
 +# Configure PPTP
 +        set pptp self 91.x.x.x - указываем здесь ip сетевого интерфейса для подключения vpn, если стоят нули то подключается со всех интерфейсов
 +# Allow to accept calls
 +        set link enable incoming
 +
 +> /​usr/​local/​etc/​rc.d/​mpd5 start
 +</​code>​
 +  * Проверяем работу mpd<​code>​
 +> telnet localhost 5005
 +Trying 127.0.0.1...
 +Connected to localhost.
 +Escape character is '​^]'​.
 +Multi-link PPP daemon for FreeBSD
 +
 +Username: foo
 +Password: ​
 +
 +Welcome!
 +Mpd pid 66643, version 5.5 (root@ 17:37 30-Mar-2010)
 +[] 
 +</​code>​
 +  * Настройка PF нужно открыть порт 1723<​code>​
 +# pptp
 +pass in quick on $ext_if_a proto { tcp, udp } from any to self port 1723
 +</​code>​
 +
 +====== Включение компрессии MPPC в mpd ======
 +Основной источник:​ [[http://​www.lissyara.su/​articles/​freebsd/​security/​vpn_mpd5/​|Установка VPN сервера mpd5 + сжатие и шифрование]]
 +
 +По умолчанию загружаемый модуль ng_mppc.ko в FreeBSD собран без поддержки компрессии. Для того чтобы строка set mppc yes compress в файле mpd.conf заработала ядро нужно пересобрать с параметрами:​ <​code>​
 +options ​        ​NETGRAPH
 +# MPPC compression requires proprietary files (not included)
 +options ​       NETGRAPH_MPPC_COMPRESSION
 +options ​        ​NETGRAPH_MPPC_ENCRYPTION
 +> make buildkernel KERNCONF=PFVLANVPNNG
 +cc: /​usr/​src/​sys/​net/​mppcc.c:​ No such file or directory
 +cc: /​usr/​src/​sys/​net/​mppcd.c:​ No such file or directory
 +/​usr/​src/​sys/​netgraph/​ng_mppc.c:​83:​22:​ error: net/mppc.h: No such file or directory
 +mkdep: compile failed
 +*** Error code 1
 +
 +Stop in /​usr/​obj/​usr/​src/​sys/​PFVLANVPNNG.
 +*** Error code 1
 +
 +Stop in /usr/src.
 +*** Error code 1
 +
 +Stop in /usr/src.
 +
 +</​code>​
 +Качаем недостающие файлы с сайта [[http://​mavhome.dp.ua/​MPPC/​|Alternative MPPC compression/​decompression library]] или здесь {{:​mppc-1.0.tgz|}}
 +<​code>​
 +> fetch http://​mavhome.dp.ua/​MPPC/​mppc-1.0.tgz
 +> tar -xvf mppc-1.0.tgz -C /​usr/​src/​sys/​net/​
 +</​code>​
 +Правим Makefile для того что бы активировать сжатие
 +<​code>​
 +> ee /​usr/​src/​sys/​modules/​netgraph/​mppc/​Makefile
 +# поменять
 +NETGRAPH_MPPC_COMPRESSION?​= ​    0
 +# на
 +NETGRAPH_MPPC_COMPRESSION?​= ​    1
 +</​code>​
 +Переходим в директорию и устанавливаем
 +<​code>​
 +> cd /​usr/​src/​sys/​modules/​netgraph/​mppc
 +> make && make install && make clean
 +</​code>​
 +Проверяем есть ли строки. Если нет добавляем. Начиная с версии FreeBSD 6.3 они должны быть. В FreeBSD 7.2 есть точно.
 +<​code>​
 +# grep net/mppc /​usr/​src/​sys/​conf/​files
 +net/​mppcc.c optional netgraph_mppc_compression
 +net/​mppcd.c optional netgraph_mppc_compression
 +</​code>​
 +Собираем ядро с поддержкой сжатия
 +<​code>​
 +> cd /usr/src/
 +> make buildkernel KERNCONF=PFVLANVPNNG
 +> make installkernel KERNCONF=PFVLANVPNNG && shutdown -r now
 +</​code>​
 +После сборки ядра сервер перезагрузится.После перезагрузки сжатие работает,​ остается настроить клиента и подключаться.
 +
 +====== Подключение клиентов к VPN серверу MPD ======
 +  * Встроенный клиент Windows<​code>​Control Panel -> Network Connections -> Create a New Connection -> 
 +Next -> Connect to the network at my workplace -> 
 +Next -> Virtual Private Network connection -> 
 +Next -> "​Имя Соединения (Любое) " -> 
 +Next -> "​Имя хоста или IP ADSL роутера" ​
 +-> Finish
 +
 +
 +</​code>​
 +  * FreeBSD mpd в роли клиента VPN<​code></​code>​
 +
 +====== tcpdump GRE и 1723 ======
 +<​file>​
 +tcpdump -i tun0 -p proto 47 or port 1723
 +</​file>​
 +====== Ссылки ======
 +  * [[wpru>​MPD]]
 +  * [[http://​wiki.lissyara.su/​wiki/​%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE_mpd5|Перевод документации по mpd5]]
 +  * [[http://​www.lissyara.su/​articles/​freebsd/​security/​mpd5+ipfw-nat/​|Как впустить удалённых сотрудников в локальную сеть офиса по зашифрованному каналу с помощью VP]]
 +  * [[http://​eugene210682.livejournal.com/​5324.html|Заголовки протокола L2TP. L2TP сервер на MPD5 во FreeBSD7.1]]
 +  * [[http://​mpd.sourceforge.net/​doc5/​mpd.html|Mpd 5.5 User Manual]]
 +  * [[http://​www.lissyara.su/​articles/​freebsd/​tuning/​mpd5_l2tp/​|Настройка mpd5 L2TP]]
 +  * [[http://​www.lissyara.su/​articles/​freebsd/​tuning/​mpd5_vpn/​|Настройка VPN сервера по средствам mpd5 если FreeBSD машина не шлюз а просто комп в локалке]]
 +  * [[http://​www.lissyara.su/​articles/​freebsd/​security/​vpn_mpd5/​|Установка VPN сервера mpd5 + сжатие и шифрование]]
 +  * [[http://​abills.net.ua/​wiki/​doku.php/​abills:​docs:​mpd:​ru|abills Multi-link PPP Daemon, использующий технологию netgraph]]
загрузка...
mpd.txt · Последние изменения: 2018/12/21 04:35 (внешнее изменение)