Настройка самаралановского VPN на SUSE с переподключением

Автор SuN, 19 января 2009, 11:29:55

0 Пользователи и 1 Гость просматривают эту тему.

SuN

Создаем файл с настройками впн соединения в /etc/ppp/peers/ например samlan пихаем туда:

defaultroute
lock
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
nobsdcomp
nodeflate
user LOGIN
noauth

где LOGIN ваш логин

в /etc/ppp/chap-secrets пихаем

LOGIN * PASSWORD *

где LOGIN ваш логин, а PASSWORD пароль соответственно.

Для статистики во сколько подключился, какой айпи выдало, можно в /etc/ppp/ip-up.d положить скриптец например upped.sh

#!/bin/sh
echo `date` " VPN is up, ip = $4" >> /vpnstatus.log

а в /etc/ppp/ip-down.d/ положить скриптец например downed.sh

#!/bin/sh
echo `date` " VPN is down" >> /vpnstatus.log

незабываем поставить исполняемый атрибут

chmod 700 /etc/ppp/ip-up.d/downed.sh /etc/ppp/ip-up.d/upped.sh

В эти скрипты можно также засунуть считалку трафика, настройку файрвола и т.д.

Бывает такое что впн соединение не разорвано но инета нет, бацаем скрипт переподключения, например restartvpn.sh

#!/bin/sh

vpnserver="192.168.31.7"

hosttoping="www.ru"

#hosttoping="192.168.33.243"

ping -c 7 $hosttoping >/dev/nul

if [ $? -ne 0 ]; then
    vpnpids=`pidofproc /usr/sbin/pptp`
    skill -9 $vpnpids
    sleep 4
    pptp $vpnserver call samlan &
fi

И в crontab его, на каждые 15 минут.

*/5       *      *       *       *       /root/bin/restartvpn.sh


После венды заметил увеличение скорости, было 105-110 кбайт, стало 115-120 кбайт.
по данным 2ip.ru
Результат  980.912 Kbps (122.614 Kb/sec)

Ramirez

Поставил OpenSuse 11 AMD64.
Поднял сеть средствами gui.
Выполнил вышенаписаные инструкции.
1) При выполнении команды pptp 192.168.31.7 call samlan получал в ответ

Using interface ppp1
Connect: ppp1 <--> /dev/pts/4
Warning - secret file /etc/ppp/chap-secrets has world access
MS-CHAP authentication failed: Login incorrect
CHAP authentication failed
Connection terminated.

До тех пор, пока не додумался взять в chap-secrets пароль в кавычки.

2) Теперь эта же команда дает

Using interface ppp0
Connect: ppp0 <--> /dev/pts/2
Warning - secret file /etc/ppp/chap-secrets has world access
CHAP authentication succeeded
not replacing default route to eth0 [192.168.40.43]
local  IP address 85.236.184.182
remote IP address 10.0.0.1
Script ?? finished (pid 4496), status = 0x0
Script /etc/ppp/ip-up finished (pid 4504), status = 0x0

И на этом все. Ни туда, ни сюда. Инет, разумеется, не поднимается. На запрос ifconfig ppp0 получаю

ppp0      Link encap:Point-to-Point Protocol 
          inet addr:85.236.184.182  P-t-P:10.0.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1460  Metric:1
          RX packets:11 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:510 (510.0 b)  TX bytes:46 (46.0 b)

Что, по идее, должно говорить о том, что все работает. Но ничего не пингуется и сайты не открывается. Что надо еще прописать и где?
Самурай без меча подобен самураю с мечом но только без меча.

paul

Цитата: Ramirez от 21 февраля 2009, 20:11:31
not replacing default route to eth0 [192.168.40.43]

Вроде как дефолтовый маршрут не сменился. Вывод ip ro покажи после установки pptp-подключения.

P.S. Добавить маршруты в сети 10/8, 85.236.160/19 и 192.168/16 не забыл?

Ramirez

Все оказалось просто))
Теперь процесс запуска инета у меня выглядит так:
sh /etc/ppp/restartvpn.sh
route add -host 192.168.31.7 gw 192.168.40.43
route add default ppp0
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.40.43 metric 20
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.40.43 metric 20
route add -net 85.236.162.0 netmask 255.255.254.0 gw 192.168.40.43 metric 20
route add -net 85.236.164.0 netmask 255.255.252.0 gw 192.168.40.43 metric 20
route add -net 85.236.168.0 netmask 255.255.248.0 gw 192.168.40.43 metric 20
route add -net 85.236.176.0 netmask 255.255.240.0 gw 192.168.40.43 metric 20
route add -net 172.30.0.0 netmask 255.255.0.0 gw 192.168.40.43 metric 20

где 192.168.40.43 - соответственно мой шлюз.

Все эти строки я забил в файлик, дал ему расширение .sh и права на выполнение. Теперь бьюсь над задачкой заставить его выполняться автоматически при запуске системы
Самурай без меча подобен самураю с мечом но только без меча.

paul

Цитата: Ramirez от 22 февраля 2009, 00:22:41
route add -host 192.168.31.7 gw 192.168.40.43

нафиг не нужен, т.к. ниже есть:

Цитата: Ramirez от 22 февраля 2009, 00:22:41
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.40.43 metric 20


Цитата: Ramirez от 22 февраля 2009, 00:22:41
route add -net 85.236.162.0 netmask 255.255.254.0 gw 192.168.40.43 metric 20
route add -net 85.236.164.0 netmask 255.255.252.0 gw 192.168.40.43 metric 20
route add -net 85.236.168.0 netmask 255.255.248.0 gw 192.168.40.43 metric 20
route add -net 85.236.176.0 netmask 255.255.240.0 gw 192.168.40.43 metric 20

лаконичнее и правильнее будет:
route add -net 85.236.160.0/19 gw 192.168.40.43 metric 20


Цитата: Ramirez от 22 февраля 2009, 00:22:41
Теперь бьюсь над задачкой заставить его выполняться автоматически при запуске системы

Наиболее правильный вариант - изучить принцип подъема интерфейсов в используемом дистрибутиве. Если исп-ся etcnet (хотя я сомневаюсь, что он исп-ся по умолчанию в SuSE, вот в ALTLinux - да), то достаточно указать параметр ONBOOT=yes в конфиге интерфейса.

SuN

Цитата: Ramirez от 22 февраля 2009, 00:22:41
Теперь бьюсь над задачкой заставить его выполняться автоматически при запуске системы

#!/bin/sh

vpnserver="192.168.31.7"

hosttoping="http://www.ru"

#hosttoping="192.168.33.243"

ping -c 7 $hosttoping >/dev/nul

if [ $? -ne 0 ]; then
    vpnpids=`pidofproc /usr/sbin/pptp`
    skill -9 $vpnpids
    sleep 4
    pptp $vpnserver call samlan &
    route add default ppp0
fi

И в crontab его, на каждые 15 минут.

*/5       *      *       *       *       /root/bin/restartvpn.sh


рекомендую ставить metric 1 а не 20

есть файл в /etc/sysconfig/network/routes туда можно писать маршруты с масками и шлюзами которые будет автоматом прописываться при загрузке

digger



digger


SuN

Вообще то я писал без http://, это форум такой "умный" дописал.


hosttoping="www.ru"



Vader

Цитировать
это форум такой "умный" дописал.
Потому что в теги кода надо выделять свои скрипты, чтобы движок не пропарсил URL.
Если тебе дано предугадывать ход мыслей человека, случайностей не будет. © Пила

SuN

Цитата: Vader от 07 марта 2009, 00:44:02
Потому что в теги кода надо выделять свои скрипты, чтобы движок не пропарсил URL.

не видал теги для bash :-) да и трабла с адресом, а не кодом