Примеры использования на практике mpd5 под FreeBSD - Multi-link PPP daemon
t.me/freebsd2022 (https://t.me/freebsd2022) 22.04.2023Статей про установку и настройку mpd5 в Интернет достаточно. Цель мини-обзора - показать реальное использование mpd5 в работе.
В предыдущей статье про обновление FreeBSD я упоминал про более серьезные задачи для тестового сервера. Ниже мини-обзор по теме.
Краткая справка по установке:
[root@beelink /usr/ports/net/mpd5]# make install clean
Для автостарта в /etc/rc.conf прописываем:
mpd_enable="YES"
Конфиг прост, в /usr/local/etc/mpd5/ нам нужны 2 файла: mpd.conf (настройка) и mpd.secret (имя/пароль). Основное в конфиге:
# Define dynamic IP address pool. Пул адресов
set ippool add pool1 172.16.16.2 172.16.16.100
# Specify IP address pool for dynamic assigment. Адреса сервера и клиентов
set ipcp ranges 172.16.16.1/32 ippool pool1
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
set bundle enable compression
set ccp yes mppc
set mppc yes e128
set mppc yes stateless
# Multilink adds some overhead, but gives full 1500 MTU.
set link enable multilink
set link yes acfcomp protocomp
# set link no pap chap
set link enable chap
# We reducing link mtu to avoid GRE packet fragmentation.
set link mtu 1460
# Configure PPTP - интерфейс для принимаемых соединений, чаще ip адрес сервера
set pptp self 172.16.1.120
В файле паролей mpd.secret указываем имя/пароль/ip-адрес:
user2 "_ZsXdCfVG_" 172.16.16.3
user3 "!1234567QWERTY!" 172.16.16.4
Надо иметь ввиду, что в файле mpd.secret пароли в открытом виде, поэтому не забываем про нужные chmod и chown для него.
Демон mpd управляется стандартно:
# /usr/local/etc/rc.d/mpd5
Usage: /usr/local/etc/rc.d/mpd5 [fast|force|one|quiet](start|stop|restart|rcvar|enabled|status|poll)
Для подключения к серверу нужен открытый порт 1723.
Для реального использования mpd5 можно привести 3 примера:
1. Подключение удалённого сервера по ВПН к серверу Zabbix
Поясню схему. Есть несколько серверов в интернете, для ресурсов которых нужно настроить мониторинг. Предлагается подключить каждый сервер по ВПН к серверу с Zabbix. Тогда снятие данных с удаленного сервера станет простой задачей. Даже Малину можно подключить таким образом. В этом случае сервер, который подключается к Zabbix-серверу, находится с ним в одной сети:
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1456
inet 172.16.16.1 --> 172.16.16.101 netmask 0xffffffff
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1456
inet 172.16.16.1 --> 172.16.16.102 netmask 0xffffffff
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
Что касается настроек Zabbix, это делается стандартным образом и не входит в цели этого обзора.
2. Подключение по ВПН к шаре на удаленном сервере, например, для сбора log-файлов в одном месте
Реальная задача - сбор log-файлов с нескольких серверов на один. Настройки mpd как и ранее. Еще нужна, например, samba и правильные разрешения для общей директории. Пример из smb.conf:
#share for log files
[Logs]
browseable = no
writeable = yes
public = yes
path = /usr/data/server_logs
force directory mode = 770
force create mode = 770
allow hosts = 172.16.16.1 172.16.16.2 172.16.16.3 172.16.16.4
В директиве allow hosts прописываем нужные ip адреса подключаемых серверов. Таким образом, удалённые серверы видят по smb нужную нам шару. Естественно, если предполагается копировать значительные объёмы log-файлов, их лучше предварительно сжимать.
3. Банальное подключение из Windows к ВПН-серверу
Это совсем простой пример - легко настраивается штатный клиент Windows: