А в этой части статьи, разговор пойдет про то, как на базе 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, поэтому пока это пофиксят — будет все работать именно так.
Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:
Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)
Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455
На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел