Установка настройка mpd5 на FreeBSD


Так получилось что мне и моим напарникам иногда требуется ходить удаленно на работу через интернет
Благо выделенные белые IP имеются

В связи с тем что напарники не большого ума и не в курсе что такое IPSEC / OpenVPN / SSH пришлось осваивать самые азы что только можно придумать для удаленки

Выбор остановил на mpd5 так как раньше имел дело с poptop и оно меня ну ваще не впечатлило хотя принцип работы практически тот же самый

Ну начнем с установки
cd /usr/ports/net/mpd5
make install clean


Все конфиги нашей проги находятся в каталоге
/usr/local/etc/mpd5
сразу после установки мы имеем
mpd.conf.sample
mpd.script.sample
mpd.secret.sample

нам понадобятся только два файла и по этой причине копируем таким способом
cp mpd.conf.sample mpd.conf
cp mpd.secret.sample mpd.secret

пример mpd.conf
Я не стал заморачиваться и по этой причине привожу пример как у меня есть (основную часть конфига можно вырезать)

===============================================================================================================
#
# MPD configuration file
#
# This file defines the configuration for mpd: what the
# bundles are, what the links are in those bundles, how
# the interface should be configured, various PPP parameters,
# etc. It contains commands just as you would type them
# in at the console. Lines without padding are labels. Lines
# starting with a "#" are comments.
#
# $Id: mpd.conf.sample,v 1.46 2009/04/29 11:04:17 amotin Exp $
#

startup:
log +PHYS2
# configure mpd users
set user admin blablabla admin ## Логин и пароль админа
set user pavel ark evgen ## Это типа юзеры
# configure the console
set console self 127.0.0.1 35805 ## Если честно то эта штука не нужна и ее можно каментить
set console open ## Если честно то эта штука не нужна и ее можно каментить
# configure the web server
set web self 10.10.10.200 35806 ## IP и порт вебморды где можем мониторить
set web open

#
# Default configuration is "dialup"

default:
load pptp_server

pptp_server:
#
# Mpd as a PPTP server compatible with Microsoft Dial-Up Networking clients.
#
# Suppose you have a private Office LAN numbered 192.168.1.0/24 and the
# machine running mpd is at 192.168.1.1, and also has an externally visible
# IP address of 1.2.3.4.
#
# We want to allow a client to connect to 1.2.3.4 from out on the Internet
# via PPTP. We will assign that client the address 192.168.1.50 and proxy-ARP
# for that address, so the virtual PPP link will be numbered 192.168.1.1 local
# and 192.168.1.50 remote. From the client machine's perspective, it will
# appear as if it is actually on the 192.168.1.0/24 network, even though in
# reality it is somewhere far away out on the Internet.
#
# Our DNS server is at 192.168.1.3 and our NBNS (WINS server) is at 192.168.1.4.
# If you don't have an NBNS server, leave that line out.
#

# Define dynamic IP address pool.
# set ippool add pool1 10.10.11.241 10.10.11.254 ## Это типа какие IP присваивать клиентам (вам скорее всего надо будет но я сделал себе немного иначе о чем написал ниже)

# Create clonable bundle template named B

# 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.
set ipcp ranges 10.10.11.200 ippool pool1 ## Это типа внутренний виртуальный IP шлюза так как у меня локалка 10.10.10.0/24
set ipcp dns 10.10.10.14 10.10.10.200 ## Это типа физические имеющиеся DNS в локалке
set ipcp nbns 10.10.10.14
# 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 e40 ## Нам нужно шифрование получше и по этому каментим
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 0.0.0.0
# Allow to accept calls
set link enable incoming
===============================================================================================================

Другой файл настроек который нам нужен mpd.secret это файл в котором записаны наши учетные записи кому можно подключаться

===============================================================================================================
#################################################################
#
# MPD secrets file
#
# This file contains login, password pairs, called "secrets".
# Entries are used for authentication in either or both directions,
# as well as telnet console login.
#
# For example, to use the "MyLogin" secret, use this command:
#
# set bundle authname MyLogin
#
# Each entry may have a third field containing an IP address range
# specifying the allowable address assignments for that # peer.
#
# NOTE: this file should not be readable by anyone except root!
#
# $Id: mpd.secret.sample,v 1.2 2007/01/27 13:28:44 amotin Exp $
#
#################################################################

#MyLogin MyPassword
#PeerLogin PeerPassword

#fred "fred-pw"
#joe "foobar" 192.168.1.1
#bob "x34"foo " 192.168.1.10/24
#sal "yipee" 192.168.1.254
ark "blablabla1" 10.10.10.251
pavel "blablabla2" 10.10.10.252
evgen "blablabla3" 10.10.10.253

===============================================================================================================

Как вы заметили я не стал городить отдельную виртуальную подсеть и четко прописал что виртуальным
машинам присваивать строго определенные IP из уже имеющейся подсети
Кстати не забываем выставить права доступа только руту к файлу mpd.secret что бы вражище не подсмотрел

chmod 600 /usr/local/etc/mpd5/mpd.secret

Все что нам остается это сделать запись на запуск mpd5 при старте нашей системы

mpd_enable="YES"
mpd_flags="-b"

Кстати
gateway_enable="YES"
тоже должен быть обязательно

Чтобы у нас были логи нашего MPD, в файле /etc/syslog.conf в конце добавляем следующие строки:ee /etc/syslog.conf
!mpd
*.* /var/log/mpd.log

Создадим этот файл и зададим ему права только на чтение root:/# touch /var/log/mpd.log
chmod 600 /var/log/mpd.log

Теперь перезагружаем syslog:/# /etc/rc.d/syslogd reload

Ну и можно запускать
/usr/local/etc/rc.d/mpd5 start

Проверяем

netstat -an

tcp4 0 0 10.10.10.200.35806 *.* LISTEN
tcp4 0 0 127.0.0.1.
35805 *.* LISTEN

Сама по себе веб морда выглядит довольно аскетично но нам вполне достаточно

Ну а как подключаться из винды в инете и так полно пошаговых инструкций

Обновлено: 12.03.2015