Выполним установку 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