настройка mpd как vpn клиента во freebsd
Добавлено: 08 ноя 2007, 16:49
Есть несколько способов настройки ВПН клиентов под "Фрю"
Например использование pptp-client но у этой программы есть один значительный минус, сама программа не умеет восстанавливать соединение при разрыве связи посему ее я описывать не буду но дам на всякий случай ссылку если это кому нибудь интересно
http://www.unixdoc.ru/index.php?mode=2& ... icle_id=18
Мы будем настраивать MPD4
сразу оговорюсь что у меня все работает под 6.2-RELEASE-p8
ядро пересобрано с опциями
#netgraph(4) system
options NETGRAPH
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_CISCO
options NETGRAPH_ECHO
options NETGRAPH_ETHER
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_L2TP
options NETGRAPH_LMI
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_ONE2MANY
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
options NETGRAPH_PPPOE
исходники обновлены
ну приступим
собираем mpd4 из портов
/usr/ports/net/mpd4
make; make install
затем сразу добавляем в /etc/rc.conf строчку
mpd_enable="YES"
далее идем в /usr/local/etc/mpd4/mpd.conf
у меня конфиг следующий
startup:
# configure the console - включаем консоль
set console port 5005 - порт на котором будет работать консоль
set console ip XXX.XXX.XXX.XXX - ip на котором будет работать консоль (лучше 127,0,0,1)
set console user login_user login_pass - соответственно login_user логин на консоль и парль login_pass
set console open - открываем консоль
# configure the web server - запускаем вебсервер для мониторинга состояния подключения
set web ip XXX.XXX.XXX.XXX - ip на котором будет работать вебсервер (лучше внутренний ip freebsd) далее по аналогии с консолью
set web port 5006
set web user login_user_web login_pass_web
set web open
default: - говорим что по умолчанию у нас стартует vpn
load vpn
open
vpn:
new -i ng0 vpn vpn - поднимаем интерфейс ng0
set iface idle 0 - говорим что поднят постоянно
set bundle disable multilink - запрещаем многолинковый коннект
set auth authname "XXXXXXX" - логин который нам выдал провайдер
set auth password "YYYYYYY" - пасс который нам выдал провайдер
set iface up-script /usr/local/etc/mpd/io-up.sh - поднимаем роуты при соединении
set iface down-script /usr/local/etc/mpd/io-down.sh - возвращаем исходные роуты при дисконнекте
set link keep-alive 60 180
set link no pap - не используем pap
set link accept chap pap - принимаем chap шифрование логина и пароля
set link mtu 1500 - устанавливаем мту (корбина и nbn рекомендуют 1372 у остальных провайдеров не знаю посему узнавайте сами)
set link mru 1500 - устанавливаем мру (корбина и nbn рекомендуют 1372 у остальных провайдеров не знаю посему узнавайте сами)
set bundle disable compression - отключаем компрессию данных
set ccp yes mpp-e40 - поддержка Windows платформ при компрессии
set ccp no mpp-e128 - поддержка Windows платформ при компрессии
set bundle disable crypt-reqd - поддержка Windows платформ при компрессии
set ccp no mpp-stateless - поддержка Windows платформ при компрессии
set ipcp no vjcomp - хз но без этого не работает
open
если вы копируете мои конфиги то удалите мои коментарии
далее настраиваем mpd.links
cd /usr/local/etc/mpd4
ee mpd.links
у меня конфиг следующий
vpn: - имя линка соответствующий настройкам mpd.conf
set link type pptp - тип линка (поддерживается еще pppoe, l2tp...)
set pptp self XXX.XXX.XXX.XXX - ip в локалке провадера если DHCP и одна внешняя сетевуха то закомети если две внешних сетевухи то придется следить за DHCP и вписывать корректный адрес
set pptp peer ppp.lan - адрес pptp сервера допускается имя хоста если корректно работает DNS если нет то лучше писать конкретный ip
set pptp enable originate incoming outcall - опции линка
далее создаем скрипиты
проверяем директорию где ннаходимся
pwd
если ответ отличается от /usr/local/etc/mpd4
то cd /usr/local/etc/mpd4
далее
touch io-up.sh io-down.sh
chmod 755 io-up.sh io-down.sh
далее открываем io-up.sh и пишем
#!/bin/sh
default_route_old=`route -n get default 2>&1 | grep gateway | awk '{print $2}'`
if [ $default_route_old ]; then
echo $default_route_old > /var/tmp/default_route_old
route -nq change default $4
else
rm -f /var/tmp/default_route_old
route -nq add default $4
fi
сохраняем, открываем io-down.sh
#!/bin/sh
#iface=$4
if [ -r /var/tmp/default_route_old ]; then
default_route_old=`cat /var/tmp/default_route_old`
rm -f /var/tmp/default_route_old
route -nq change default $default_route_old
else
route -nq delete default
fi
сохраняем
и пробуем
/usr/local/sbin/mpd4 vpn
смотрим на ошибки читаем маны и исправляем
но еще раз говорю что у меня все работает
Например использование pptp-client но у этой программы есть один значительный минус, сама программа не умеет восстанавливать соединение при разрыве связи посему ее я описывать не буду но дам на всякий случай ссылку если это кому нибудь интересно
http://www.unixdoc.ru/index.php?mode=2& ... icle_id=18
Мы будем настраивать MPD4
сразу оговорюсь что у меня все работает под 6.2-RELEASE-p8
ядро пересобрано с опциями
#netgraph(4) system
options NETGRAPH
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_CISCO
options NETGRAPH_ECHO
options NETGRAPH_ETHER
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_L2TP
options NETGRAPH_LMI
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_ONE2MANY
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
options NETGRAPH_PPPOE
исходники обновлены
ну приступим
собираем mpd4 из портов
/usr/ports/net/mpd4
make; make install
затем сразу добавляем в /etc/rc.conf строчку
mpd_enable="YES"
далее идем в /usr/local/etc/mpd4/mpd.conf
у меня конфиг следующий
startup:
# configure the console - включаем консоль
set console port 5005 - порт на котором будет работать консоль
set console ip XXX.XXX.XXX.XXX - ip на котором будет работать консоль (лучше 127,0,0,1)
set console user login_user login_pass - соответственно login_user логин на консоль и парль login_pass
set console open - открываем консоль
# configure the web server - запускаем вебсервер для мониторинга состояния подключения
set web ip XXX.XXX.XXX.XXX - ip на котором будет работать вебсервер (лучше внутренний ip freebsd) далее по аналогии с консолью
set web port 5006
set web user login_user_web login_pass_web
set web open
default: - говорим что по умолчанию у нас стартует vpn
load vpn
open
vpn:
new -i ng0 vpn vpn - поднимаем интерфейс ng0
set iface idle 0 - говорим что поднят постоянно
set bundle disable multilink - запрещаем многолинковый коннект
set auth authname "XXXXXXX" - логин который нам выдал провайдер
set auth password "YYYYYYY" - пасс который нам выдал провайдер
set iface up-script /usr/local/etc/mpd/io-up.sh - поднимаем роуты при соединении
set iface down-script /usr/local/etc/mpd/io-down.sh - возвращаем исходные роуты при дисконнекте
set link keep-alive 60 180
set link no pap - не используем pap
set link accept chap pap - принимаем chap шифрование логина и пароля
set link mtu 1500 - устанавливаем мту (корбина и nbn рекомендуют 1372 у остальных провайдеров не знаю посему узнавайте сами)
set link mru 1500 - устанавливаем мру (корбина и nbn рекомендуют 1372 у остальных провайдеров не знаю посему узнавайте сами)
set bundle disable compression - отключаем компрессию данных
set ccp yes mpp-e40 - поддержка Windows платформ при компрессии
set ccp no mpp-e128 - поддержка Windows платформ при компрессии
set bundle disable crypt-reqd - поддержка Windows платформ при компрессии
set ccp no mpp-stateless - поддержка Windows платформ при компрессии
set ipcp no vjcomp - хз но без этого не работает
open
если вы копируете мои конфиги то удалите мои коментарии
далее настраиваем mpd.links
cd /usr/local/etc/mpd4
ee mpd.links
у меня конфиг следующий
vpn: - имя линка соответствующий настройкам mpd.conf
set link type pptp - тип линка (поддерживается еще pppoe, l2tp...)
set pptp self XXX.XXX.XXX.XXX - ip в локалке провадера если DHCP и одна внешняя сетевуха то закомети если две внешних сетевухи то придется следить за DHCP и вписывать корректный адрес
set pptp peer ppp.lan - адрес pptp сервера допускается имя хоста если корректно работает DNS если нет то лучше писать конкретный ip
set pptp enable originate incoming outcall - опции линка
далее создаем скрипиты
проверяем директорию где ннаходимся
pwd
если ответ отличается от /usr/local/etc/mpd4
то cd /usr/local/etc/mpd4
далее
touch io-up.sh io-down.sh
chmod 755 io-up.sh io-down.sh
далее открываем io-up.sh и пишем
#!/bin/sh
default_route_old=`route -n get default 2>&1 | grep gateway | awk '{print $2}'`
if [ $default_route_old ]; then
echo $default_route_old > /var/tmp/default_route_old
route -nq change default $4
else
rm -f /var/tmp/default_route_old
route -nq add default $4
fi
сохраняем, открываем io-down.sh
#!/bin/sh
#iface=$4
if [ -r /var/tmp/default_route_old ]; then
default_route_old=`cat /var/tmp/default_route_old`
rm -f /var/tmp/default_route_old
route -nq change default $default_route_old
else
route -nq delete default
fi
сохраняем
и пробуем
/usr/local/sbin/mpd4 vpn
смотрим на ошибки читаем маны и исправляем
но еще раз говорю что у меня все работает