MPD 5 настройка
Homepage: MPD - Multi-link PPP daemon for FreeBSD
MPD - это основанная на netgraph реализация ppp-протокола мультисвязи для FreeBSD. MPD спроектирован быть быстрым и гибким, обрабатывая конфигурацию и обращения в режиме пользователя, направляя пакеты данных напрямую в ядро.
Поддержка типов связи
MPD имеет унифицированную поддержку следующих типов связи:
- modem — для использования различных асинхронных последовательных соединений, включая модемы, терминальные адаптеры ISDN а также нуль-модемное соединение. MPD включает событийно-управляемый скриптовый язык для идентификации модема, установки, ручного логина и т. д.
- pptp — для подключения через интернет, используя Point-to-Point Tunnelling Protocol (PPTP). Этот протокол поддерживается большинством Операционных систем и производителей оборудования.
- Установка и настройка L2TP / IPsec VPN-сервера — для подключения через интернет, используя Layer Two Tunnelling Protocol (L2TP). L2TP — это преемник PPTP, поддерживаемый современными клиентами и серверами.
- Как работает PPPoE — для подключения через порт Ethernet, используя протокол PPP-over-Ethernet (PPPoE). Этот протокол часто используется DSL-провайдерами.
- Порты TCP. Что такое TCP / IP порт — для туннеллирования 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 также включает множество дополнительных особенностей (фич):
- управление через интерфейсы Примеры использования telnet и HTTP
- различные методы аутентификации и учета (radius, PAM, script, file, …)
- учет трафика посредством Netflow
- NAT
- дозвон по запросу с тайм-аутом простоя
- динамическое управление подключением, основанное на требованиях (также известное как «rubber bandwidth» — «резиновый канал», «резиновая пропускная способность»)
- мощный скриптовый язык чата для асинхронных последовательных портов
- оттестированные скрипты для некоторых общих модемов и ISDN TA
- чистый аппаратно-независимый дизайн
- всестороннее протоколирование
Установка MPD 5.5
FreeBSD 7.2-RELEASE-p4 mpd-5.5
- Установка
> 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
- Настройка mpd.secret. В этом файле хранятся логины и пароли пользователей VPN. Выдаваемый пользователю IP может быть динамическим.
> ee mpd.secret #Пользователь Пароль Выдаваемый пользователю IP test1 "test1" 192.168.1.201
- Настройка и ротация log файлов mpd. В конце файла syslog.conf добавляем строки:
> 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
* Настройка 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
- Проверяем работу mpd
> 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) []
- Настройка PF нужно открыть порт 1723
# pptp pass in quick on $ext_if_a proto { tcp, udp } from any to self port 1723
Включение компрессии MPPC в mpd
Основной источник: Установка VPN сервера mpd5 + сжатие и шифрование
По умолчанию загружаемый модуль ng_mppc.ko в FreeBSD собран без поддержки компрессии. Для того чтобы строка set mppc yes compress в файле mpd.conf заработала ядро нужно пересобрать с параметрами:
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.
Качаем недостающие файлы Alternative MPPC compression/decompression library или здесь mppc-1.0.tgz
> fetch http://mavhome.dp.ua/MPPC/mppc-1.0.tgz > tar -xvf mppc-1.0.tgz -C /usr/src/sys/net/
Правим Makefile для того что бы активировать сжатие
> ee /usr/src/sys/modules/netgraph/mppc/Makefile # поменять NETGRAPH_MPPC_COMPRESSION?= 0 # на NETGRAPH_MPPC_COMPRESSION?= 1
Переходим в директорию и устанавливаем
> cd /usr/src/sys/modules/netgraph/mppc > make && make install && make clean
Проверяем есть ли строки. Если нет добавляем. Начиная с версии FreeBSD 6.3 они должны быть. В FreeBSD 7.2 есть точно.
# grep net/mppc /usr/src/sys/conf/files net/mppcc.c optional netgraph_mppc_compression net/mppcd.c optional netgraph_mppc_compression
Собираем ядро с поддержкой сжатия
> cd /usr/src/ > make buildkernel KERNCONF=PFVLANVPNNG > make installkernel KERNCONF=PFVLANVPNNG && shutdown -r now
После сборки ядра сервер перезагрузится.После перезагрузки сжатие работает, остается настроить клиента и подключаться.
Подключение клиентов к VPN серверу MPD
- Встроенный клиент Windows
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
- FreeBSD mpd в роли клиента VPN
tcpdump GRE и 1723
tcpdump -i tun0 -p proto 47 or port 1723
Читайте также
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга
