Выполним установку MPD5 из системы портов:
cd /usr/ports/net/mpd5 && make install clean && rehash
По завершению установки приступаем к редактированию файла конфигурации mpd.conf. В результате нехитрых манипуляций, получаем следующий листинг /usr/local/etc/mpd5/mpd.conf (часть опций прокомментирована):
startup:
# Определяем пользователей
set user username username_pass admin
set user username1 userpass1
# Конфигурация консоли
set console self 127.0.0.1 5005
set console open
# Конфигурация веб-сервера
set web self 0.0.0.0 5006
set web open
# Указываем, что будем работать в режиме PPTP-клиента default:
load pptp_client
# Секция конфигурации PPTP-клиента pptp_client:
create bundle static B1
# Этот скрипт отрабатывается при "поднятии" интерфейса
set iface up-script /usr/local/etc/mpd5/up-script.sh
# Автоматическое добавление маршрута при "поднятии" интерфейса
set iface route 172.16.180.0/24
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
create link static L1 pptp
set link action bundle B1
# Параметры аутентификация на VPN-сервере
set auth authname "VPN_LOGIN"
set auth password "VPN_PASSWD"
# Уменьшаем размер MTU для корректного прохождения трафика
set link mtu 1460
# Настройка автоподключения в случае обрыва сесии
set bundle no noretry
set link max-redial 0
# Настройка keep-alive (поддерживание сесии)
set link keep-alive 20 75
# Указываем IP-адрес удаленного сервера
set pptp peer IP_VPN_SERVER_HERE
# Отключаем оконный механизм, назначаемый протоколом PPTP,
# повышая этим производительность.
set pptp disable windowing
open
где
username - имя пользователя с правами администратора username_pass - пароль пользователя с правами администратора username1 - имя пользователя с привилегиями обычного пользователя userpass1 - пароль пользователя с привилегиями обычного пользователя VPN_LOGIN - имя пользователя для авторизации на VPN-сервере VPN_PASSWD - пароль для авторизации пользователя на VPN-сервере IP_VPN_SERVER_HERE - IP-адрес VPN-сервера /usr/local/etc/mpd5/up-script.sh - скрипт, который будет отрабатываться при старте MPD
В моем частном случае при старте MPD необходимо будет добавить только один маршрут, который я прописал прямо в mpd.conf. Если же необходимо через подключение получать маршрут по умолчанию, то необходимо модифицировать строку «set iface route 178.162.180.0/29» и заменить ее на «set iface route default».
Что интересно, при старте MPD после создания интерфейса, роут на IP-адрес VPN-сервера направляется в созданный туннель, соответственно маршрутизация работает некорректно. А после удаления маршрута все работает на ура, пинги ходят, маршруты доступны. Поэтому при запуске MPD будем удалять этот маршрут.
Соответственно, листинг скрипта /usr/local/etc/mpd5/up-script.sh будет следующий:
#!/bin/sh
/sbin/route delete IP_VPN_SERVER_HERE
Также необходимо для скрипта дать права на выполнение, чтобы он корректно отрабатывался: # chmod +x /usr/local/etc/mpd5/up-script.sh
Добавляем загрузку MPD при старте системы: # echo '# VPN PPTP Client' » /etc/rc.conf # echo 'mpd_enable=«YES»' » /etc/rc.conf
Перед первым запуском настроим логирование, чтобы можно было обнаружить ошибки конфигурации. Ну и не забываем о настройке ротации логов.
Настройка логгирования: # echo '\!mpd' » /etc/syslog.conf # echo '*.* /var/log/mpd.log' » /etc/syslog.conf # touch /var/log/mpd.log # killall -HUP syslogd
Настройка ротации логов: # echo '/var/log/mpd.log 600 8 * $W6D0 JC' » /etc/newsyslog.conf
После всех этих манипуляций запускаем MPD: # sh /usr/local/etc/rc.d/mpd5 start
Проверяем, поднялся ли интерфейс:
# ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
inet 10.22.84.27 --> 10.221.84.1 netmask 0xffffffff
Собственно говоря - на этом все.
Ссылки:
http://homenet.beeline.ru/index.php?showtopic=254605
http://sysadmins.ru/topic394755.html
http://muff.kiev.ua/content/mpd-ispolzovanie-v-kachestve-pptp-klienta
http://forum.lissyara.su/viewtopic.php?t=23736
https://habrahabr.ru/sandbox/30203
http://www.lissyara.su/articles/freebsd/programms/mpd5_l2tp_client
http://freebsd.d77.in/network/freebsd_vpn_beeline
http://itadept.ru/freebsd-mpd5-server/#config