И снова MPD5

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
nops
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-01-30 21:58:51
Контактная информация:

И снова MPD5

Непрочитанное сообщение nops » 2012-11-13 14:13:38

Всем здрасте.
Хотя может тему и не так надо было назвать, но как назвал так уж назвал, ибо проблема все таки есть и именно с 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. Запихать всех в одну подсеть действительно не реально, т.к. в офисах дофига народу, да и это не есть правильно.
Последний раз редактировалось f_andrey 2012-11-13 18:15:28, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

snorlov
подполковник
Сообщения: 3924
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: И снова MPD5

Непрочитанное сообщение snorlov » 2012-11-13 22:09:38

У mpd есть возможность запуска скриптов после соединения и после отключения, причем есть у него и переменные, которые можно юзать в этих скриптах...

Аватара пользователя
nops
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-01-30 21:58:51
Контактная информация:

Re: И снова MPD5

Непрочитанное сообщение nops » 2012-11-14 6:13:16

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
вот у меня в чем беда:( мне нужно запускать скрпт с разными маршрутами.

snorlov
подполковник
Сообщения: 3924
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: И снова MPD5

Непрочитанное сообщение snorlov » 2012-11-14 9:07:41

Там нет разницы клиент или сервер... Подымаются/опускаются интерфейсы ngXX и на сервере и на клиенте, вот на это событие и вешаются скрипты и сервера и клиента, читайте доки...

Аватара пользователя
nops
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-01-30 21:58:51
Контактная информация:

Re: И снова MPD5

Непрочитанное сообщение nops » 2012-11-14 10:31:17

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


Аватара пользователя
nops
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-01-30 21:58:51
Контактная информация:

Re: И снова MPD5

Непрочитанное сообщение nops » 2012-11-29 14:21:11

Это не то.
Как вариант решения, при установлении подключения, запускать сторонный скрипт. В скрипте делать проверку авторизованного юзера, ну скажем примерно так:
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# 
но он не работает
у меня даже юзеры авторизорваться не могут, точнее авторизовываются и отключаются

Dark_ASU
сержант
Сообщения: 258
Зарегистрирован: 2009-10-31 22:13:04
Контактная информация:

Re: И снова MPD5

Непрочитанное сообщение Dark_ASU » 2012-11-29 16:05:05

#!/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

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: И снова MPD5

Непрочитанное сообщение skeletor » 2012-11-29 16:42:13

nops писал(а): Но проблема в том, что я не знаю какой переменной назначается логин подключаемого пользователя.
Во второй ссылке есть ответ. В других ссылках есть примеры использования.

Аватара пользователя
nops
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-01-30 21:58:51
Контактная информация:

Re: И снова MPD5

Непрочитанное сообщение nops » 2012-11-29 18:42:10

Спасибо огромное друзья. Я неправильно записал условие, вот у меня и отваливалось все.
Завтра буду пробовать;-)
По итогам отпишусь;)

Аватара пользователя
nops
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-01-30 21:58:51
Контактная информация:

Re: И снова MPD5

Непрочитанное сообщение nops » 2012-11-30 9:16:34

Огромнейшее спасибо, По итогам сделал именно так:

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

# 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
Оказалось важным размещение строчек, каждой в отдельной строке и тогда работает.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: И снова MPD5

Непрочитанное сообщение skeletor » 2012-11-30 17:02:16

Не обязательно столько столько if'ов, можно и case использовать.

Аватара пользователя
nops
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-01-30 21:58:51
Контактная информация:

Re: И снова MPD5

Непрочитанное сообщение nops » 2012-11-30 17:34:38

можете подробнее? Я баш не знаю вообще, жаль. Но нужно начинать изучать, много скриптов писать.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: И снова MPD5

Непрочитанное сообщение skeletor » 2012-11-30 19:17:00

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

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

Аватара пользователя
nops
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-01-30 21:58:51
Контактная информация:

Re: И снова MPD5

Непрочитанное сообщение nops » 2012-11-30 19:29:01

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
Спасибо пригромаднейшее.
Подскажите полезную, действительно полезную литературу на русском, чтобы воды было как можно меньше и доходчиво, желательно с примерами по скриптингу;)
Спасибо.