А в этой части статьи, разговор пойдет про то, как на базе FreeBSD и MPD сделать VPN клиента.

Итак, в первой части статьи, мы остановились на пункте “# cd /usr/local/etc/mpd5″, двигаемся дальше.


# ls
mpd.conf.sample mpd.script.sample mpd.secret.sample
# cp mpd.conf.sample mpd.conf

Редактируем mpd.conf и доводим до вида:

#cat mpd.conf
pptp_client:
#
# PPTP client: only outgoing calls, auto reconnect,
# ipcp-negotiated address, one-sided authentication,
# default route points on ISP's end
#
create bundle static B1
create link static L1 pptp
# set iface route default
# set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface up-script /usr/local/etc/mpd5/uplink.sh
set iface down-script /usr/local/etc/mpd5/downlink.sh
set link action bundle B1
set auth authname Login
set auth password Passwd
set link max-redial 0
set link mtu 1460
set link keep-alive 20 75
set pptp peer vpn_provider
set pptp disable windowing
#
set link disable multilink
open

С этим конфигурационным файлом, но без строчки «set link disable multilink» и с использованием «set iface route default» — маршрутов по умолчанию, у меня через раз ругалось примерно вот так:

[B1] IFACE: Adding IPv4 address to ng0 failed: File exists
[B1] IFACE: IfaceChangeAddr() error, closing IPCP
[B1] IPCP: parameter negotiation failed
....................
[L1] LCP: state change Closed --> Initial

А вот после её добавления и перехода на скрипты — все здорово заработало, но перестали выдаваться маршруты.

Для создания скриптов, выполняем такие манипуляции:

# touch uplink.sh
# touch downlink.sh
# chmod +x uplink.sh downlink.sh


#cat uplink.sh
#!/bin/sh
route delete удаленная сеть
route add удаленная сеть $4
echo $4 > /tmp/defroute


# cat downlink.sh
#!/bin/sh
vpngw=`cat /tmp/defroute`
route delete удаленная сеть
route delete $vpngw
#route add default локальный маршрут по умолчанию
rm -f /tmp/defroute

Далее выполняем:


# netstat -rn

Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGS 0 104 le0
192.168.1.0/24 link#1 U 2 175 le0
127.0.0.1 link#4 UH 0 2 lo0

И стартуем mpd:

#sh /usr/local/etc/rc.d/mpd5 start
# ps ax | grep mpd
11743 ?? Is 0:00.02 /usr/local/sbin/mpd5 -p /var/run/mpd5.pid -b

По идее всё, пользуемся.

PS. На FreeBSD 8.0 — возникла подобная ситуация с маршрутизацией, которую я побороть за пять минут не смог. Кроме того, появилась проблема не отработки скриптов: uplink.sh и downlink.sh, поэтому для меня проще было настругать скрипт который по крону проверял доступность vpngw и другие подсети, а в случае падения — перебивал заново маршруты.. Хоть и криво, но работает.
На одном из форумов, сейчас не вспомню где, так как это было не меньше месяца назад, то есть в том году 🙂 — что проблема связанная именно с FreeBSD версии 8.0, поэтому пока это пофиксят — будет все работать именно так.

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/?p=984


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

You must be logged in to post a comment.