А в этой части статьи, разговор пойдет про то, как на базе 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/984


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

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

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

Add your comment now

Please note: JavaScript is required to post comments.