Страница 1 из 1

И снова MPD5

Добавлено: 2012-11-13 14:13:38
nops
Всем здрасте.
Хотя может тему и не так надо было назвать, но как назвал так уж назвал, ибо проблема все таки есть и именно с MPD5.
Итак.
Есть у меня сервер со своей локальной сетью 192.168.0.0/24, в которой серв является шлюзом с IP: 192.168.0.1
На сервере поднят mpd5 для подключения удаленных клиентов, точнее для объединения офисов. Рассмотрим на примере одного удаленного офиса, а их 3 штуки.
в конфиге mpd5:

Код: Выделить всё

# cat /usr/local/etc/mpd5/mpd.conf
startup:
        set web self 0.0.0.0 5008
        set user admin admin admin
        set web open

default:
        load pptp_server

pptp_server:
	set ippool add pool1 192.168.10.2 192.168.10.20
	create bundle template B
	set iface enable proxy-arp
	set iface idle 1800
	set iface enable tcpmssfix
	set ipcp yes vjcomp
		set ipcp ranges 192.168.10.1/32 ippool pool1
		set ipcp dns 192.168.10.1
		set ipcp nbns 192.168.10.1
	set bundle enable compression
	set ccp yes mppc
	set mppc yes e40
	set mppc yes e128
	set mppc yes stateless
	create link template L pptp
	set link action bundle B
	set link enable multilink
	set link yes acfcomp protocomp
	set link keep-alive 10 60
	set link mtu 1400
	set link no pap chap
	set link enable chap
	set pptp self 111.111.111.111
	set link enable incoming
Выдаю клиентам статические IP прописанные в mpd.secrect
Получается у меня своя родная сеть 192.168.0.0/24 с IP:192.168.0.1
Удаленный офис имеет подсеть: 192.168.1.0/24 со шлюзом 192.168.1.1
При соединении этому клиенту(т.е. шлюзу ибо он конектится) назначается IP: 192.168.10.3
Внутри той подсети прописан маршрут до нас такой

Код: Выделить всё

route add 192.168.0.0/24 192.168.10.1
На своей стороне мне нужно прописать маршрут

Код: Выделить всё

route add 192.168.1.0/24 192.168.10.3
чтобы обе подсети друг друга видели.
Удаленно там кто-то когда-то прописал маршрут и там в принцыпе на клиенте я бы тоже прописал, а вот на сервере как быть?
Получается, что при переподключении клиента, маршрут удаляется и естественно не восстанавливается и его заного нужно руками прописывать.

Сейчас стоит вопрос, как сделать так, чтобы при подключении клиента прописывался маршрут до его подсети автоматически?

Заранее благодарен за помощь.
P.S. Запихать всех в одну подсеть действительно не реально, т.к. в офисах дофига народу, да и это не есть правильно.

Re: И снова MPD5

Добавлено: 2012-11-13 22:09:38
snorlov
У mpd есть возможность запуска скриптов после соединения и после отключения, причем есть у него и переменные, которые можно юзать в этих скриптах...

Re: И снова MPD5

Добавлено: 2012-11-14 6:13:16
nops
snorlov писал(а):У mpd есть возможность запуска скриптов после соединения и после отключения, причем есть у него и переменные, которые можно юзать в этих скриптах...
Ну я понимаю и запускаю на другом сервере скрипты, но это происходит при использовании mpd5 как vpn-клиента, а не сервера.
Сейчас у меня стоит вопрос именно в случае использования mpd5 как vpn-сервер и чтобы он у себя, послу установления конкретного соединения прописывал разные маршруты.
т.е. если я подключается первая сеть, то маршрут должен быть: route add 192.168.1.0/24 192.168.10.3 а для второй сети маршрут:192.168.2.0/24 192.168.10.2, для третьей 192.168.4.0/24 192.168.10.4
вот у меня в чем беда:( мне нужно запускать скрпт с разными маршрутами.

Re: И снова MPD5

Добавлено: 2012-11-14 9:07:41
snorlov
Там нет разницы клиент или сервер... Подымаются/опускаются интерфейсы ngXX и на сервере и на клиенте, вот на это событие и вешаются скрипты и сервера и клиента, читайте доки...

Re: И снова MPD5

Добавлено: 2012-11-14 10:31:17
nops
snorlov писал(а):Там нет разницы клиент или сервер... Подымаются/опускаются интерфейсы ngXX и на сервере и на клиенте, вот на это событие и вешаются скрипты и сервера и клиента, читайте доки...
т.е. я прописываю интерфейсы, прописываю им ip, назначаю каждому нужному клиенту IP каждого интерфейса и запускаю как надо?
Или объясните подробнее, а то у меня проблемы с английским.:(

Re: И снова MPD5

Добавлено: 2012-11-14 13:09:41
skeletor

Re: И снова MPD5

Добавлено: 2012-11-29 14:21:11
nops
Это не то.
Как вариант решения, при установлении подключения, запускать сторонный скрипт. В скрипте делать проверку авторизованного юзера, ну скажем примерно так:
if user="user1" then route add 192.168.1.0/24 192.168.10.11
Ну или как-то так. Но проблема в том, что я не знаю какой переменной назначается логин подключаемого пользователя.

Вот такой пример находил:

Код: Выделить всё

#!/bin/sh

if $5!="dpr1ntpptp" goto end
/sbin/route add 192.168.2.0/24 192.168.10.12
end:
echo $5 > /usr/local/etc/mpd5/auth.loggate# 
но он не работает
у меня даже юзеры авторизорваться не могут, точнее авторизовываются и отключаются

Re: И снова MPD5

Добавлено: 2012-11-29 16:05:05
Dark_ASU
#!/bin/sh
# $0 - script name
# $1 - if name (ng0...)
# $2 - proto
# $3 - local-ip
# $4 - remote-ip
# $5 - authname
# $6 - [ dns1 server-ip ]
# $7 - [ dns2 server-ip ]
# $8 - peer-address

if [ "$5" = "user_name" ]
then
route add ip $4
route add ip $4
route add ip $4

fi

exit 0

Re: И снова MPD5

Добавлено: 2012-11-29 16:42:13
skeletor
nops писал(а): Но проблема в том, что я не знаю какой переменной назначается логин подключаемого пользователя.
Во второй ссылке есть ответ. В других ссылках есть примеры использования.

Re: И снова MPD5

Добавлено: 2012-11-29 18:42:10
nops
Спасибо огромное друзья. Я неправильно записал условие, вот у меня и отваливалось все.
Завтра буду пробовать;-)
По итогам отпишусь;)

Re: И снова MPD5

Добавлено: 2012-11-30 9:16:34
nops
Огромнейшее спасибо, По итогам сделал именно так:

Код: Выделить всё

# cat up.sh
#!/bin/sh

if [ "$5" = "dpr1ntpptp" ]
then
/sbin/route add 192.168.2.0/24 $4
fi

if [ "$5" = "3n3sk4pptp" ]
then
/sbin/route add 192.168.1.0/24 $4
fi

if [ "$5" = "gtrk" ]
then
/sbin/route add 192.168.4.0/24 $4
fi

exit 0
Оказалось важным размещение строчек, каждой в отдельной строке и тогда работает.

Re: И снова MPD5

Добавлено: 2012-11-30 17:02:16
skeletor
Не обязательно столько столько if'ов, можно и case использовать.

Re: И снова MPD5

Добавлено: 2012-11-30 17:34:38
nops
можете подробнее? Я баш не знаю вообще, жаль. Но нужно начинать изучать, много скриптов писать.

Re: И снова MPD5

Добавлено: 2012-11-30 19:17:00
skeletor

Код: Выделить всё

case "$5" in
    "dpr1ntpptp")
                /sbin/route add -net 10.9.0.0/24 "$4"
                ;;
    "3n3sk4pptp")
                /sbin/route add -net 10.21.0.0/24 "$4"
                ;;
esac

Re: И снова MPD5

Добавлено: 2012-11-30 19:29:01
nops
skeletor писал(а):

Код: Выделить всё

case "$5" in
    "dpr1ntpptp")
                /sbin/route add -net 10.9.0.0/24 "$4"
                ;;
    "3n3sk4pptp")
                /sbin/route add -net 10.21.0.0/24 "$4"
                ;;
esac
Спасибо пригромаднейшее.
Подскажите полезную, действительно полезную литературу на русском, чтобы воды было как можно меньше и доходчиво, желательно с примерами по скриптингу;)
Спасибо.