Примеры использования на практике mpd5 под FreeBSD - Multi-link PPP daemon

Примеры использования на практике 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:


Report Page