На главнуюПользователиНовые сообщенияОбратная связь
DGR.Su - Компьютерный форум [Архив] Архивы Архив Города Архив 2004/2005 Компьютеры и все, что с ними связано

Как настроить VPN в Linux?

Страница 2 из 4 1  2  3  4 
FRostbite 07.06.2005, 15:50
вот мое решение ...проблемы с пптп все также делается как и в настройке на 4елкоме плюс добавляется проверка на пинг до впн сервака
/etc/ppp/ip-up


#!/bin/sh

/sbin/route -n | /bin/grep '^0\.0\.0\.0' | \
/usr/bin/awk '{print $2}' > /tmp/defaultroute
/bin/ping -w 10 -q vpn1.chelcom.ru|/bin/grep rtt|\
/bin/awk -F/ '{print $6}' |/bin/awk -F. '{print $1}'|\
/bin/cat > /tmp/averageping





if [ `/bin/cat /tmp/averageping` -ge 100 ]
then echo "lamer"

/bin/ping -w 10 -q vpn2.chelcom.ru|/bin/grep rtt|\
/bin/awk -F/ '{print $6}' |/bin/awk -F. '{print $1}'|\
/bin/cat > /tmp/averageping





if [ `/bin/cat /tmp/averageping` -ge 100 ]
then echo "lamer1"

/bin/ping -w 10 -q vpn3.chelcom.ru|/bin/grep rtt|\
/bin/awk -F/ '{print $6}' |/bin/awk -F. '{print $1}'|\
/bin/cat > /tmp/averageping


if [ `/bin/cat /tmp/averageping` -ge 100 ]
then echo "very high ping"
exit
else echo "lamo1"
/sbin/route add -host vpn3.chelcom.ru \
gw `/bin/cat /tmp/defaultroute`
/sbin/route del default
/sbin/route add default gw $5

fi


else echo "lamo2"
/sbin/route add -host vpn2.chelcom.ru \
gw `/bin/cat /tmp/defaultroute`
/sbin/route del default
/sbin/route add default gw $5

fi



else echo "lamo3"
/sbin/route add -host vpn1.chelcom.ru \
gw `/bin/cat /tmp/defaultroute`
/sbin/route del default
/sbin/route add default gw $5

fi
alx 07.06.2005, 16:46
Поясни, что делает этот скрипт. Сразу только могу сказать, что это не решение проблемы. Проблема состоит в правильном установлении маршрута к vpn-серверу, а после установления vpn-соединения, когда вызывается /etc/ppp/ip-up уже "поздно пить боржоми" ;)
FRostbite 07.06.2005, 16:53
пингеуем впны vpn1 2 3 дальше средний пинг берем и сохраняем в /tmp/averageping еси он меньше ста то подключаем к впн1 еси нет идем дальше второй сервак проверят ии т.д. в конце еси пинг в трех случаях больше 100 соединять не будет.Всего 3 впн сервака то есть усе нормально...вроде..:)
alx 07.06.2005, 17:16
Этим ты только констатируешь результат, не более. Попробую объяснить, что же нужно на самом деле.
Для нормальной работы pptp-клиента нужно установить маршрут до vpn-сервера явным образом, чтобы после установки соединения можно было безболезненно переназначить default route на ppp0. Если этого не сделать или сделать неправильно, то после установки соединения gre-пакеты, в которые инкапсулируется трафик, проходящий по vpn-соединению, зациклятся на ppp0 и никуда не пойдут. Поэтому для ip-адреса vpn-сервера (а их по крайней мере 3) должен быть установлен маршрут через шлюз, выданный по dhcp в качестве default route. Далее возможны варианты:
- прописать маршруты на все возможные адреса vpn-сервера (это делает мой скрипт dhcpcd.exe),
- перед настройкой маршрутизации фиксировать ip-адрес vpn.chelcom.ru во временном файле, чтобы гарантировать последующее обращение к vpn-серверу именно по тому адресу, на который настроена маршрутизация.
FRostbite 07.06.2005, 17:31
а понял то есть это переход должен проходить как бы сказать "безболезнено" и понял почему меня кикает из хчата када устанавливаешь впн соединение ... буду мучить.. может доделаю...
alx 07.06.2005, 17:47
ok, потом напиши, что получится
solo_jah 16.06.2005, 11:31
Почтенные, а нельзя ли написать небольшой мануал вроде "подключение vpn в linux для чайников":) понимаю, что глупо, но ничего с собой поделать не могу, на виндовз ой как не хочется снова перелезать...
У меня ASP linux 9.2, подключение одно работает - eth0, dhcp - в итоге вижу локальные ресурсы, фэтэпэ ИС, челком.ру, ирку и этот форум, ясно дело. Но в инет - не лезет, причем интересно, что на адресах рунета бравзер( во всяком случае опера ) просто виснет, в смысле пытается достучаться, а на *.com - сразу говорит "невозможно найти удаленный сервер". Установил и dhcpcd и pptp, но не знаю ЧТО с ними делать! Один раз получилось установить соединение (по туннелю), но инет все равно не виден был...
Надеюсь на поддержку и понимание!
alx 16.06.2005, 17:31
Это очень лениво делать, тем более что в различных дистрибутивах линукса есть свои особенности. Работоспособный пример приведен здесь ....
Единственное замечание - в ASP Linux кроме установки dhcpcd надо обязательно удалить dhclient, который устанавливается по умолчанию. Еще надо добавить установку маршрута к 81.20.168.3, который появился не так давно. Потом нужно убедиться, что dhcpcd работает как надо - по командам
ip route
iptables -L -vn
должны выводиться маршруты к vpn-серверам и правила файрвола, задаваемые в /etc/dhcpc/dhcpcd.exe
После этого можно пытаться соединяться с помощью pptp-command или другой формы вызова pptp. Ну и не забыть назначить default route через ppp0.
FRostbite 23.06.2005, 13:27
воть, там кстати внизу написано где скачать прогу для впн соединения
Konung 23.06.2005, 13:41
Товарищи, пожалуйста, выручите ламера! напишите пожалуйста подробную, детальную инструкцию, как подключаться по впн... очень прошу
FRostbite 25.06.2005, 19:43
пользовался ppp-2.4.3 и pptp-1.6.0

сначала изменяем файл
/etc/ppp/chap-secrets:
login * password


далее создаем файл ifcfg-pptp0 /*создать файл можно коммандой #cat > ifcfg-pptp0 */
и пишем там это

PEERDNS="no"
DEVICE="pptp0"
ONBOOT="no"
USERCTL="yes"
PERSIST="no"
DEBUG="yes"
DEFROUTE="no"
PPPOPTIONS=""
MRU=""
MTU=""
IDLETIMEOUT=""

VPN_HOST="vpn.chelcom.ru"
VPN_USER="login"

ROUTES="10.0.0.0/255.0.0.0 192.168.0.0/255.255.0.0"



и кидаем его в эту папку..../etc/sysconfig/network-scripts

далее

запускать впн соединение можно коммандой #ifup pptp0
и завершать работу его #ifdown pptp0
всё.
Konung 25.06.2005, 20:18
скрипт выполняется успешно, а инету нету (тобишь с сайтами не соединяется)
FRostbite 25.06.2005, 20:21
скрипт выполняется успешно, а инету нету (тобишь с сайтами не соединяется)ifconfig и route и пропингуй их... мб фаер...
[root@localhost root]# ifup pptp0
using channel 29
Using interface ppp0
Connect: ppp0 <--> /dev/pts/2
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x2a4c7b80> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MD5> <magic 0x32264d2> <pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MD5> <magic 0x32264d2> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x2a4c7b80> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0x2a4c7b80]
rcvd [LCP EchoReq id=0x0 magic=0x32264d2]
sent [LCP EchoRep id=0x0 magic=0x2a4c7b80]
rcvd [CHAP Challenge id=0x92 <4a05a2682a5******3c9c9e3d52b8b 1e349a5f>, name = "vpn1"]
sent [CHAP Response id=0x92 <ecd4b4243c2******7f068c9f321 91>, name = "frostbite"]
rcvd [LCP EchoRep id=0x0 magic=0x32264d2]
rcvd [CHAP Success id=0x92 ""]
CHAP authentication succeeded
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 81.20.169.252>]
sent [IPCP ConfAck id=0x1 <addr 81.20.169.252>]
rcvd [CCP ConfReq id=0x1]
sent [CCP ConfAck id=0x1]
rcvd [CCP ConfRej id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
sent [CCP ConfReq id=0x2]
rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
sent [IPCP ConfReq id=0x2 <addr 0.0.0.0>]
rcvd [CCP ConfAck id=0x2]
rcvd [IPCP ConfNak id=0x2 <addr 83.142.164.15>]
sent [IPCP ConfReq id=0x3 <addr 83.142.164.15>]
rcvd [IPCP ConfAck id=0x3 <addr 83.142.164.15>]
local IP address 83.142.164.15
remote IP address 81.20.169.252
SIOCADDRT: File exists




[root@localhost root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:04:61:60:23:B4
inet addr:192.168.217.196 Bcast:192.168.223.255 Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1******1 errors:0 dropped:0 overruns:0 frame:0
TX packets:8686 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8******8 (83.9 Mb) TX bytes:1******2 (1.0 Mb)
Interrupt:11 Base address:0xec00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2692 errors:0 dropped:0 overruns:0 frame:0
TX packets:2692 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2******7 (2.3 Mb) TX bytes:2******7 (2.3 Mb)

ppp0 Link encap:Point-to-Point Protocol
inet addr:83.142.164.15 P-t-P:81.20.169.252 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:63 (63.0 b) TX bytes:609 (609.0 b)




вот роутс

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
VPN1.chelcom.ru 192.168.216.1 255.255.255.255 UGH 0 0 0 eth0
VPN2.chelcom.ru 192.168.216.1 255.255.255.255 UGH 0 0 0 eth0
vpn3.chelcom.ru 192.168.216.1 255.255.255.255 UGH 0 0 0 eth0
vpn1.chelcom.ru * 255.255.255.255 UH 0 0 0 ppp0
192.168.216.0 * 255.255.248.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
192.168.0.0 * 255.255.0.0 U 0 0 0 ppp0
10.0.0.0 * 255.0.0.0 U 0 0 0 ppp0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default vpn1.chelcom.ru 0.0.0.0 UG 0 0 0 ppp0


примерно так должно быть
alx 26.06.2005, 14:33
Щаз критику наведу :)

пользовался ppp-2.4.3 и pptp-1.6.0
далее создаем файл ifcfg-pptp0 /*создать файл можно коммандой #cat > ifcfg-pptp0 */
и пишем там это

PEERDNS="no"
DEVICE="pptp0"
ONBOOT="no"
USERCTL="yes"
PERSIST="no"
DEBUG="yes"
DEFROUTE="no"
PPPOPTIONS=""
MRU=""
MTU=""
IDLETIMEOUT=""

VPN_HOST="vpn.chelcom.ru"
VPN_USER="login"

ROUTES="10.0.0.0/255.0.0.0 192.168.0.0/255.255.0.0"



Вот нафига эта строчка?
ROUTES="10.0.0.0/255.0.0.0 192.168.0.0/255.255.0.0"
Дальше, объясни, как у тебя в маршрутах получилось вот это:
vpn1.chelcom.ru * 255.255.255.255 UH 0 0 0 ppp0
192.168.0.0 * 255.255.0.0 U 0 0 0 ppp0
10.0.0.0 * 255.0.0.0 U 0 0 0 ppp0
default vpn1.chelcom.ru 0.0.0.0 UG 0 0 0 ppp0
Могу предположить, что в ifcfg-pptp0 вместо
DEFROUTE="no" стоит
DEFROUTE="yes"

При этом слава Богу, что маршруты прописались в таком порядке:
VPN1.chelcom.ru 192.168.216.1 255.255.255.255 UGH 0 0 0 eth0
VPN2.chelcom.ru 192.168.216.1 255.255.255.255 UGH 0 0 0 eth0
vpn3.chelcom.ru 192.168.216.1 255.255.255.255 UGH 0 0 0 eth0
vpn1.chelcom.ru * 255.255.255.255 UH 0 0 0 ppp0
иначе бы произошло зацикливание gre-пакетов через ppp0

В общем, по моему разумению:
ROUTES="10.0.0.0/255.0.0.0 192.168.0.0/255.255.0.0" - фтопку, тем более, что если маршрут к последней сети прописан через ppp0, то и весь трафик из нее будет считаться внешним :D
а вместо
DEFROUTE="no" прописать
DEFROUTE="yes"
но нужно иметь ввиду, что при этом будет удален default route, полученный по dhcp, и после разрыва vpn-соединения нужно будет вручную восстанавливать default route.
Дальше, как оказалось в настоящее время по dhcp отдаются маршруты к 81.20.168.13 и 81.20.168.15. Поэтому без специальной настройки маршрутов к vpn-серверам соединение будет нормально работать с вероятностью 66%, поскольку к 81.20.168.3 маршрут по dhcp не передается.
FRostbite 26.06.2005, 15:05
Щаз критику наведу :)


Вот нафига эта строчка?
ROUTES="10.0.0.0/255.0.0.0 192.168.0.0/255.255.0.0"
Дальше, объясни, как у тебя в маршрутах получилось вот это:
vpn1.chelcom.ru * 255.255.255.255 UH 0 0 0 ppp0
192.168.0.0 * 255.255.0.0 U 0 0 0 ppp0
10.0.0.0 * 255.0.0.0 U 0 0 0 ppp0
default vpn1.chelcom.ru 0.0.0.0 UG 0 0 0 ppp0
Могу предположить, что в ifcfg-pptp0 вместо
DEFROUTE="no" стоит
DEFROUTE="yes"

При этом слава Богу, что маршруты прописались в таком порядке:
VPN1.chelcom.ru 192.168.216.1 255.255.255.255 UGH 0 0 0 eth0
VPN2.chelcom.ru 192.168.216.1 255.255.255.255 UGH 0 0 0 eth0
vpn3.chelcom.ru 192.168.216.1 255.255.255.255 UGH 0 0 0 eth0
vpn1.chelcom.ru * 255.255.255.255 UH 0 0 0 ppp0
иначе бы произошло зацикливание gre-пакетов через ppp0

В общем, по моему разумению:
ROUTES="10.0.0.0/255.0.0.0 192.168.0.0/255.255.0.0" - фтопку, тем более, что если маршрут к последней сети прописан через ppp0, то и весь трафик из нее будет считаться внешним :D
а вместо
DEFROUTE="no" прописать
DEFROUTE="yes"
но нужно иметь ввиду, что при этом будет удален default route, полученный по dhcp, и после разрыва vpn-соединения нужно будет вручную восстанавливать default route.
Дальше, как оказалось в настоящее время по dhcp отдаются маршруты к 81.20.168.13 и 81.20.168.15. Поэтому без специальной настройки маршрутов к vpn-серверам соединение будет нормально работать с вероятностью 66%, поскольку к 81.20.168.3 маршрут по dhcp не передается.

ну тогда я думаю это будет выглядет так ROUTES=" "
для как раз восстановление маршрута и спец настройки маршрутов нужно буит скрипт написать....
Страница 2 из 4 1  2  3  4 
Похожие темы
Кто может настроить Linux серевер и сделать к нему удаленный доступ?
Realsoft 3D V6 для Linux (олнофункциональной программы для моделирования, визуализации и анимации. Realsoft 3D SP1 для Linux) скачать
Linux и только Linux!!!
Интернет(PPTP) для Linux(pptp-linux)
настроить