.

Здравствуйте, гость ( Вход | Регистрация )


 
Reply to this topicStart new topic
Настройка VPN клиента в linux, есть предложение сделать универсальный скрипт
Wapr Old
Добавить имя в быстрый ответ
сообщение May 12 2006, 17:15
Сообщение #1


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



Читал тут разные ветки по теме, все всё делают по разному sad.gif Кроме того не нашёл настроек, автоматически поднимающих канал в случае разнообразных ошибок. Везде надо что то руками дописывать, проверять, пинговать... плохо это всё. Например недавно сутки сидел без инета только потому, что отвалилась половина ВПН серверов, а ping vpn.corbina.net давал IP как раз из этой половины mad.gif
Поэтому хочется собрать тут OS-независимые наработки в плане проверки разных корбиновских сервисов и затем написать правильный скрипт, который и канал поднимет и роутинг пропишет и если чего отвалится, сам сделает разные проверки, переопределит интерфейсы и шлюзы и заново всё поднимет.

Неужели нам слабо?! cool.gif Или никому не нужно?
Go to the top of the page
 
+Quote Post
rsc
Добавить имя в быстрый ответ
сообщение May 12 2006, 17:33
Сообщение #2


Житель форума
Иконка группы
***

Группа: Посетитель
Сообщений: 314
Регистрация: 15-April 06
Из: Москва - Дмитровский район

Пол: Мужской



Пожалуй, не нужно.


--------------------
БК (НЕ бойцовский клуб) - моё счастливое детство
Go to the top of the page
 
+Quote Post
Payne
Добавить имя в быстрый ответ
сообщение May 13 2006, 10:27
Сообщение #3


Местный
Иконка группы
**

Группа: Посетитель
Сообщений: 143
Регистрация: 12-June 05



Если можешь, напиши...
Только вот подойдёт ли он к любому дистрибутиву?
Где-то я уже видел подобный скрипт.


--------------------
Прокладка между стулом и клавиатурой компьютера - вот причина большинства ошибок системы.........
Go to the top of the page
 
+Quote Post
wanderer_mg
Добавить имя в быстрый ответ
сообщение May 13 2006, 11:01
Сообщение #4


Местный
Иконка группы
**

Группа: Посетитель
Сообщений: 109
Регистрация: 20-November 05
Пол: Мужской



Цитата(Wapr Old @ May 12 2006, 18:15) [snapback]771097[/snapback]
Читал тут разные ветки по теме, все всё делают по разному sad.gif Кроме того не нашёл настроек, автоматически поднимающих канал в случае разнообразных ошибок. Везде надо что то руками дописывать, проверять, пинговать... плохо это всё. Например недавно сутки сидел без инета только потому, что отвалилась половина ВПН серверов, а ping vpn.corbina.net давал IP как раз из этой половины mad.gif
Поэтому хочется собрать тут OS-независимые наработки в плане проверки разных корбиновских сервисов и затем написать правильный скрипт, который и канал поднимет и роутинг пропишет и если чего отвалится, сам сделает разные проверки, переопределит интерфейсы и шлюзы и заново всё поднимет.

Неужели нам слабо?! cool.gif Или никому не нужно?


Авто(пере)подключение с прописыванием маршрутов есть в Gentoo и SuSE точно (пользуюсь и тем и другим, см. ветку про "офиц." способ для Gentoo).



--------------------
[center]"Две вещи действительно бесконечны: вселенная и человеческая глупость. Впрочем, про вселенную я ещё не уверен" (Альберт Эйнштейн)[/center]
Go to the top of the page
 
+Quote Post
Wapr Old
Добавить имя в быстрый ответ
сообщение May 14 2006, 23:08
Сообщение #5


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



Цитата(wanderer_mg @ May 13 2006, 12:01) [snapback]773744[/snapback]

Авто(пере)подключение с прописыванием маршрутов есть в Gentoo и SuSE точно (пользуюсь и тем и другим, см. ветку про "офиц." способ для Gentoo).

И как этот "официальный" способ справляется с ошибкой vpn.corbina.net? Я пользую этого провайдера всего 2 месяца, а проблем наловил больше чем на стриме за 3 года. Поэтому если я отсюда не слиняю, скрип я конечно сделаю, но он получится только для меня и под мой конфиг.
На этом позвольте откланяться, я хотел как лучше. read.gif
Go to the top of the page
 
+Quote Post
TWINc
Добавить имя в быстрый ответ
сообщение May 19 2006, 20:17
Сообщение #6


Профи
Иконка группы
****

Группа: Посетитель
Сообщений: 2,383
Регистрация: 31-October 05
Пол: Мужской



Aike написал уже такой bash скрипт под debian
Go to the top of the page
 
+Quote Post
Wapr Old
Добавить имя в быстрый ответ
сообщение May 20 2006, 15:17
Сообщение #7


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



Цитата(TWINc @ May 19 2006, 21:17) [snapback]1056418861[/snapback]

Aike написал уже такой bash скрипт под debian

Это тот, который тут? Ну так он ничего такого не делает и автоматизирует только создание файлов, которые никогда и так не меняются.
Go to the top of the page
 
+Quote Post
TWINc
Добавить имя в быстрый ответ
сообщение May 22 2006, 00:47
Сообщение #8


Профи
Иконка группы
****

Группа: Посетитель
Сообщений: 2,383
Регистрация: 31-October 05
Пол: Мужской



Wapr Old, ну да... а что еще надо?
Go to the top of the page
 
+Quote Post
Wapr Old
Добавить имя в быстрый ответ
сообщение May 22 2006, 14:14
Сообщение #9


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



Многое. Ведь чем фиксированные файлы генерить скриптом, проще их выложить готовыми, разницы никакой. Тем более, что второй-же пост сообщает, что всё равно не получается smile.gif. А вот автоматически обрабатывать ситуации с падением VPN, падением DNS, сменой различных IP адресов, разрывом LAN - гораздо интереснее. Чем я собственно и занимаюсь. Но поскольку у меня слакварь, всё опять будет только под неё rolleyes.gif
Go to the top of the page
 
+Quote Post
desenix
Добавить имя в быстрый ответ
сообщение Jun 5 2006, 10:27
Сообщение #10


пользователь Корбины
Иконка группы
*****

Группа: Посетитель
Сообщений: 5,074
Регистрация: 14-April 06
Из: Москва, ЦАО, Мещанский

Пол: Мужской



Wapr Old,
не знал что по доменному имени можно тупо стучаться до неработающего сервера, когда рядом есть работающий.
я тут начал было автоматизировать ASPLinux11 & VPN
но пока забросил, т.к. нет времени.
Правда меня заботили другие проблемы, те которых в форточках у меня не возникает.
Хотя в последнее время возникла еще проблема с тем что из-за глюков свича корбиновского у меня не восстанавливается нормально работа и самой сетевухи, поэтому скриптик думаю и для нее написать с проверкой линии.


--------------------
[center] жизнь - это экзамен, сдай его на отлично :) [/center]
Go to the top of the page
 
+Quote Post
skyfi
Добавить имя в быстрый ответ
сообщение Jun 5 2006, 13:56
Сообщение #11


Житель форума
Иконка группы
***

Группа: Посетитель
Сообщений: 612
Регистрация: 30-March 06
Пол: Мужской



под каждую ос свой скрипт. к примеру под АСПом существует pptp (pptp-command иже с ним), а под слакой мне удалось поднять VPN только через pppd


--------------------
[center]http://skyfi.org.ru
скорость интернета - http://skyfi.org.ru/skorost.html[/center]
Go to the top of the page
 
+Quote Post
Wapr Old
Добавить имя в быстрый ответ
сообщение Jun 5 2006, 17:45
Сообщение #12


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



Цитата(skyfi @ Jun 5 2006, 14:56) [snapback]1056473953[/snapback]

под каждую ос свой скрипт. к примеру под АСПом существует pptp (pptp-command иже с ним), а под слакой мне удалось поднять VPN только через pppd

А его так и надо поднимать. Разве нет?

Повторюсь ещё раз. Ни один стандартный ОСовый скрипт не решает проблем, описанных в первом посте. Тем более, что pptp это не скрипт а демон. А все скрипты автоматизации из альтов, дебиана и прочих джент так или иначе в результате запускают абсолютно стандартные линукс программы типа iptables, route, iproute2 и т.п. Потому я и надеялся, что можно сделать ОС-независимый скрипт.

PS: мой скрипт уже сумел успешно пережить сегодняшнюю недоступность впн серверов wink.gif

Сообщение отредактировал Wapr Old - Jun 5 2006, 17:54
Go to the top of the page
 
+Quote Post
desenix
Добавить имя в быстрый ответ
сообщение Jun 5 2006, 18:20
Сообщение #13


пользователь Корбины
Иконка группы
*****

Группа: Посетитель
Сообщений: 5,074
Регистрация: 14-April 06
Из: Москва, ЦАО, Мещанский

Пол: Мужской



Wapr Old,
так делись скриптом, не жадничай smile.gif


--------------------
[center] жизнь - это экзамен, сдай его на отлично :) [/center]
Go to the top of the page
 
+Quote Post
Wapr Old
Добавить имя в быстрый ответ
сообщение Jun 5 2006, 19:17
Сообщение #14


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



Цитата(desenix @ Jun 5 2006, 19:20) [snapback]1056474615[/snapback]

Wapr Old,
так делись скриптом, не жадничай smile.gif

Поделюсь когда/если отлажу по человечески, а не так как сейчас. Но повторю ещё раз - этот скрипт заточен под мою систему. И так и будет пока все будут делать только под себя.
Go to the top of the page
 
+Quote Post
desenix
Добавить имя в быстрый ответ
сообщение Jun 5 2006, 19:28
Сообщение #15


пользователь Корбины
Иконка группы
*****

Группа: Посетитель
Сообщений: 5,074
Регистрация: 14-April 06
Из: Москва, ЦАО, Мещанский

Пол: Мужской



Wapr Old, я не против, но может я его под себя переделаю.


--------------------
[center] жизнь - это экзамен, сдай его на отлично :) [/center]
Go to the top of the page
 
+Quote Post
Wapr Old
Добавить имя в быстрый ответ
сообщение Jun 25 2006, 14:58
Сообщение #16


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



ну ладно, буду постепенно выкладывать мои мысли, а там как получится...

Переменные:
Код
bc="/usr/bin/bc"        # интерпретатор математических выражений
pptp="/usr/sbin/pptp"
rcroute="/etc/rc.d/rc.route"
route="/sbin/route"

gw="10.172.0.17"
vpnlist="195.14.40.6 195.14.40.7 195.14.40.8 195.14.40.9 195.14.40.13 195.14.40.14 195.14.
vpn=""
gw_reserv="10.0.0.2"    # резервный GW на случай отказа VPN
count_novpn=0           # счётчик отсутствия VPN
limit_novpn=5           # граница отсутствия основного канала
tmin=100000     # ms
found=1
pppstatus="/www/pppstatus"
count=1
log="/var/log/pptp_corbina.log"
BR="<br>\n"

Главный цикл:
Код
while true; do
    pptp_num=`ps axw | grep "pptp:" | wc -l`    # сколько процессов?
    if [ $pptp_num -lt 2 ]; then                # pptp упал полностью или частично
        killall pptp 2>/dev/null                # убиваем остатки
        sleep 5
        ping_vpn                                # найдём и пропингуем VPN
        if [ "$found" -eq "0" ]; then           # если удачно
            count_novpn=0
            $rcroute restart >/dev/null 2>>$log # обновим роутинг
            $pptp $vpn remotename PPTP name waprold noauth
        else    # подключим резервный GW
            ((count_novpn+=1))
            $route add default gw $gw_reserv dev eth2 >>$log
            echo "count_novpn=$count_novpn" >> $log     #debug
            if [ $count_novpn -gt $limit_novpn ]; then
                # туду: послать письмо
                send_msg waprold                # сообщение админу, т.е. мне :)
                count_novpn=0                   # сбросим счётчик
            fi
        fi
    fi
    sleep 60
done


комментарии и указывание ляпов приветствуется rolleyes.gif
(29.06 изменил главный цикл)

Сообщение отредактировал Wapr Old - Jun 29 2006, 11:26
Go to the top of the page
 
+Quote Post
desenix
Добавить имя в быстрый ответ
сообщение Jun 25 2006, 15:20
Сообщение #17


пользователь Корбины
Иконка группы
*****

Группа: Посетитель
Сообщений: 5,074
Регистрация: 14-April 06
Из: Москва, ЦАО, Мещанский

Пол: Мужской



Wapr Old, если в ПН мне пончинят свич, то займусь твоим скриптом ))
кстати ВПН лист можно формировать через nslookup а шлюз брать из настроек или логов, как это реализовано у меня в скрипте, можешь пользовать smile.gif
А скриптик как фоновый процесс запускаешь ?


--------------------
[center] жизнь - это экзамен, сдай его на отлично :) [/center]
Go to the top of the page
 
+Quote Post
Wapr Old
Добавить имя в быстрый ответ
сообщение Jun 25 2006, 18:52
Сообщение #18


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



desenix Про nslookup, а также host и dig я знаю, но это список серверов по умолчанию, на случай падения корбиновского DNS wink.gif
Код
root@main:/etc/ppp# host vpn.corbina.ru
vpn.corbina.ru has address 195.14.40.15
vpn.corbina.ru has address 195.14.40.6
vpn.corbina.ru has address 195.14.40.7
vpn.corbina.ru has address 195.14.40.8
vpn.corbina.ru has address 195.14.40.9
vpn.corbina.ru has address 195.14.40.13
vpn.corbina.ru has address 195.14.40.14

Да, запускается в фоне из стартового скрипта /etc/rc.d/rc.pptp
Код
#!/bin/sh

# Start pppd over pptp

wr_path="/etc/ppp"
wr_name="corbina.sh"
wrapper=$wr_path/$wr_name

start() {
        echo -n "Starting pppd... "
        if [ -x $wrapper ]; then
            $wrapper &
            echo ' OK'
        fi
}

stop() {
        echo -n "Shutting down pppd... "
        killall "$wr_name"
        sleep 2
        killall pppd
        echo ' OK'
}

Попробую воспользоваться твоим способом получения данных DHCP. Правда у меня отсутствет каталог "/var/lib/dhcp/", а заодно и файл "dhclient-$ifgw.leases", но зато есть файл "/etc/dhcpc/dhcpcd-eth0.info" простейшего формата name=value

Сообщение отредактировал Wapr Old - Jun 25 2006, 19:21
Go to the top of the page
 
+Quote Post
desenix
Добавить имя в быстрый ответ
сообщение Jun 25 2006, 19:17
Сообщение #19


пользователь Корбины
Иконка группы
*****

Группа: Посетитель
Сообщений: 5,074
Регистрация: 14-April 06
Из: Москва, ЦАО, Мещанский

Пол: Мужской



Wapr Old, а как без DNS в нете лазить ?))
или используется еще альтернативный внешний DNS ?


--------------------
[center] жизнь - это экзамен, сдай его на отлично :) [/center]
Go to the top of the page
 
+Quote Post
Wapr Old
Добавить имя в быстрый ответ
сообщение Jun 25 2006, 19:22
Сообщение #20


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



разумеется. на корбиновских днс свет клином не сошёлся wink.gif
Go to the top of the page
 
+Quote Post
desenix
Добавить имя в быстрый ответ
сообщение Jun 25 2006, 19:55
Сообщение #21


пользователь Корбины
Иконка группы
*****

Группа: Посетитель
Сообщений: 5,074
Регистрация: 14-April 06
Из: Москва, ЦАО, Мещанский

Пол: Мужской



Wapr Old, прям везде себе соломинку подстелил ))


--------------------
[center] жизнь - это экзамен, сдай его на отлично :) [/center]
Go to the top of the page
 
+Quote Post
Wapr Old
Добавить имя в быстрый ответ
сообщение Jun 25 2006, 21:53
Сообщение #22


Новичок
Иконка группы
*

Группа: Посетитель
Сообщений: 73
Регистрация: 24-March 06
Из: Орехово-Борисово Южное

Пол: Мужской



Отнюдь нет. Пока я её заготавливаю только smile.gif Обычно когда я её стелю, можно спать от полугода до двух wink.gif

Сообщение отредактировал Wapr Old - Jun 25 2006, 21:55
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 3rd September 2010 - 05:06