LINUX.ORG.RU

И снова настройка VPN


0

0

День добрый!Итак была у меня проблема с настройкой VPN. К счастью я использую Debian 4.0 ( что кстати всем советую ) и для меня доступен пакет pptpconfig и все его зависимости. В общем я VPN настроил. Но есть начинающий неофит, и он использует Mandriva 2008 Free :) И пытается настроить VPN. Пробовали настроить при помощи Kvpnc - ничего не получилось. Пробовали собрать pptpconfig из исходников в Mandriva - вылазят неразрешимые ошибки. В данный момент пытаемся настроить вручную VPN.

Теперь ближе к проблеме... Удалось поднять VPN, но мы видим только биллинг провайдера а дальше ничего. В Debian я сталкивался с похожей проблемой. Решение было простое: поставить галочку All to tunnel в pptpconfig. Так как в Mandriva не удалось собрать pptpconfig, пришлось лезть в код. Собственно вот кусок кода отвечающий за это:

# perform all to tunnel routing
# http://pptpclient.sourceforge.net/routing.phtml#all-to-tunnel
if ($tunnel['routing'] == 'routing_all_to_tunnel') {
# obtain current default route
$default = trim(`ip route list | grep default`);

# restore it later
$undo[] = 'ip route replace '.$default;

# replace with default route through the tunnel
$command = 'ip route replace default dev '.$interface;
$array = command($context, $command);

scribe($context, $me.": default route changed to use tunnel\n");

Как я понимаю все проблемы из - за роутинга. Помогите решить ее. Начинающий неофит будет счастлив если вы ему поможете. Заранее спасибо :)

anonymous

После поднятия VPN пусть сделает от рута:

ip route add default via IP_шлюза_провайдера dev название_интерфейса_тоннеля

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

В первый раз с поднятым VPN, второй вывод без него. Lumi спасибо за ответ! Завтра схожу к нему попробуем :) Linux:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.1 10.50.8.1 255.255.255.255 UGH 0 0 0 eth1 192.168.1.10 10.50.8.1 255.255.255.255 UGH 0 0 0 eth1 12.12.12.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 10.50.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0 Linux:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.1 10.50.8.1 255.255.255.255 UGH 0 0 0 eth1 10.50.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 0.0.0.0 10.50.8.1 0.0.0.0 UG 0 0 0 eth1

anonymous
()
Ответ на: комментарий от Lumi

В первый раз с поднятым VPN, второй вывод без него. Lumi спасибо за ответ! Завтра схожу к нему попробуем :)
Linux:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.1 10.50.8.1 255.255.255.255 UGH 0 0 0 eth1
192.168.1.10 10.50.8.1 255.255.255.255 UGH 0 0 0 eth1
12.12.12.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.50.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
Linux:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.1 10.50.8.1 255.255.255.255 UGH 0 0 0 eth1
10.50.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 10.50.8.1 0.0.0.0 UG 0 0 0 eth1
Прошу прощения за пост номер 2.

anonymous
()
Ответ на: комментарий от anonymous

Подожди, рано пока благодарить, не заслужил. Лучше сделать так:

ip route replace default dev ppp0

Где ppp0 и есть VPN-интерфейс. Если не заработает тогда уж с via ip_шлюза_провайдера.

А ещё лучше посмотреть файлы /etc/ppp/options.* и добавить в нужный файл параметр defaultroute, так как то, что я предложил выше является малонужным костылём.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

СПАСИБО ОГРОМНОЕ Lumi! Вы осчастливли моего друга - неофита! В общем читал я маны по данной тематике и узнал про замечательную опцию debug. После чего я включил ее в конфиг и увидел среди грязи:
Using interface ppp0
pptpconfig: monitoring interface ppp0
Connect: ppp0 <--> /dev/pts/2
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
CHAP authentication succeeded
MPPE 128-bit stateless compression enabled
not replacing existing default route via 10.50.8.1
local IP address 12.12.14.190
remote IP address 12.12.12.1
primary DNS address 212.110.226.2
secondary DNS address 212.110.249.130
pptpconfig: pppd process exit status 0 (started)
ip route replace 192.168.1.10 via 10.50.8.1 dev eth1 src 10.50.8.192
pptpconfig: routes added to remote networks
ip route replace default dev 'ppp0'
pptpconfig: default route changed to use tunnel
pptpconfig: DNS changes made to /etc/resolv.conf
pptpconfig: connected

Две интересные строчки:
ip route replace 192.168.1.10 via 10.50.8.1 dev eth1 src 10.50.8.192
ip route replace default dev ppp0
После соединения я ввел их в консоли у друга - неофита и о чудо! Инет ожил! В общем мой конфиг /etc/ppp/ispname.pptp:
user Linus
debug
mtu 1452
mru 1452
defaultroute
lock
noauth
nobsdcomp
nodeflate
persist
refuse-mschap
remotename Linus
ipparam Linus
name Linus
usepeerdns
require-mppe
refuse-eap
refuse-chap

Я все делал согласно мануалу:


Нащел рабочий мануал для других дистрибутивов, естественно конфиги придется подправить.
Итак народ, что бы настроить доступ к vpn-server'у нам понадобиться установить в нашу ОСь пакеты pppd у меня версия 2.4.4 и пакет pptp у меня версия 1.7.0 все эти пакеты можно поискать на дисках. после установки:
1.Создаем директорию mkdir /etc/ppp/peers
2.В ней создаем файл ispname с содержанием:
pty "pptp vpn.lan --nolaunchpppd"
file /etc/ppp/ispname.pptp
3. В директории /etc/ppp создаем файл ispname.pptp с опциями :
lock
noauth
#refuse-eap
#refuse-chap
#refuse-mschap
nobsdcomp
nodeflate
#require-mppe-128
nodetach
user your_user_name_
debug
mtu 1452
mru 1452
defaultroute

4. в файл /etc/chap-secret добавляем:
# Secrets for authentication using CHAP
# client server secret IP addresses
username * password *

5. Для поднятия vpn-соединения и ведения лога создаем еще скрипт к примеру в вашей домашней директории:
/home/user/vpn_start.sh с содержанием:

#!/bin/bash
LOG="/home/your_home_directory/pptp_ispname.log"
while true; do
echo -e "\n=========================\n`date`" >> $LOG
pppd call ispname >> $LOG
sleep 10
done

Вот и все, поднимаем vpn коммандой sh /home/user/vpn_start.sh
Да и не забудьте в пунктах 3 и 4 указать свои данные!

если после этого инет все равно не доступен возможная причина в маршрутизации :
даем комманду route add -host vpn.lan gw 172.22.x.254 eth0
где x - ваша зона, узнать x можно из своего ip для этого даем ifconfig eth0.
что бы этот маршрут не добавлять каждый раз можно записать его в автозагрузку /etc/rc.d/rc.local коммандой
echo route add -host vpn.lan gw 172.22.x.254 eth0 >> /etc/rc.d/rc.local
Вам еще раз спасибо Lumi! :)

anonymous
()
Ответ на: комментарий от anonymous

Мне не за что. Ты молодец, решил проблему сам и написал как решил.

Lumi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.