Автор Тема: Снова VPN  (Прочитано 3865 раз)

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

Collision

  • *
  • Сообщений: 12
  • Karma: +0/-0
Снова VPN
« : 04 Марта 2007, 01:30 »
Прошу оказать помощь в настройке VPN соединения.
VPN в локальной сети.
Система ASP Linux 11.2.

Скрипт

#!/usr/bin/perl
my $par=$ARGV[0];
print "$parn";
my $pid_f='/var/run/ppp-pptpd_pilot.pid';
if ($par eq 'stop')
    {
    open (PIDF,"$pid_f") || die 'No find pid filen';
    while(<PIDF>)
{
        qx{kill -1 $_};
        close PIDF;
        qx{rm -f $pid_f};
        qx{route del default gw 172.22.1.183};
        qx{route add default gw 10.2.0.1};
        qx{route delete -host 10.1.0.3 gw 172.22.1.183};
        qx{route delete -host 10.1.0.4 gw 172.22.1.183};
        exit 0;
}
    }

if ($par eq 'start')
    {
    qx{pppd noauth mppe required name collision remotename pptpd_pilot linkname pptpd_pilot ipparam pptpd_pilot usepeerdns pty "pptp 10.1.0.1 --nolaunchpppd"};
    sleep 10;
    print "nroute add 10.1.0.1 gw 10.2.0.1 :";
    qx{route add 10.1.0.1 gw 10.2.0.1};
    print"nroute add 172.22.1.183 dev ppp0 :";
    qx{route add 172.22.1.183 dev ppp0};
    print "nroute add default gw 172.22.1.183 dev ppp0 :";
    qx{route add default gw 172.22.1.183 dev ppp0};
    print "nroute delete default gw 10.2.0.1 :";
    qx{route delete default gw 10.2.0.1};
    print "nroute add -host 10.1.0.3 gw 172.22.1.183 :";
    qx{route add -host 10.1.0.3 gw 172.22.1.183};
    print "nroute add -host 10.1.0.4 gw 172.22.1.183 :";
    qx{route add -host 10.1.0.4 gw 172.22.1.183};
    print "nroute add -host 10.1.0.5 gw 10.2.5.87 :";
    qx{route add -host 10.1.0.5 gw 10.2.5.87};
    print "run tuneln";
    }
exit 0;

/etc/ppp/options

asyncmap 0
-chap
-mschap
require-mschap-v2
mppe required
lcp-echo-failure 90
lcp-echo-interval 30
mtu 1500
mru 1500

/etc/ppp/peers/pptpd_pilot

remotename pptpd_pilot
linkname pptpd_pilot
ipparam pptpd_pilot
pty "pptp 10.1.0.1 --nolaunchpppd "
name collision
usepeerdns
noauth

Фрагмент log файла
Mar  3 22:32:37 localhost pppd[2788]: pppd 2.4.3 started by root, uid 0
Mar  3 22:32:37 localhost pptp[2789]: anon log[main:pptp.c:276]: The synchronous pptp option is NOT activated
Mar  3 22:32:37 localhost pppd[2788]: Using interface ppp0
Mar  3 22:32:37 localhost pppd[2788]: Connect: ppp0 <--> /dev/pts/3
Mar  3 22:32:37 localhost pptp[2803]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
Mar  3 22:32:37 localhost pptp[2803]: anon log[ctrlp_disp:pptp_ctrl.c:738]: Received Start Control Connection Reply
Mar  3 22:32:37 localhost pptp[2803]: anon log[ctrlp_disp:pptp_ctrl.c:772]: Client connection established.
Mar  3 22:32:38 localhost pptp[2803]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
Mar  3 22:32:38 localhost pptp[2803]: anon log[ctrlp_disp:pptp_ctrl.c:857]: Received Outgoing Call Reply.
Mar  3 22:32:38 localhost pptp[2803]: anon log[ctrlp_disp:pptp_ctrl.c:896]: Outgoing call established (call ID 0, peer's call ID 24960).
Mar  3 22:32:39 localhost kernel: MPPE/MPPC encryption/compression module registered
Mar  3 22:32:39 localhost pppd[2788]: LCP terminated by peer (MPPE required but peer negotiation failed)
Mar  3 22:32:39 localhost pptp[2803]: anon log[pptp_read_some:pptp_ctrl.c:543]: read returned zero, peer has closed
Mar  3 22:32:39 localhost pptp[2803]: anon log[callmgr_main:pptp_callmgr.c:255]: Closing connection (shutdown)
Mar  3 22:32:39 localhost pptp[2803]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 'Call-Clear-Request'
Mar  3 22:32:39 localhost pppd[2788]: Modem hangup
Mar  3 22:32:39 localhost pppd[2788]: Connection terminated.
Mar  3 22:32:39 localhost pptp[2803]: anon log[pptp_read_some:pptp_ctrl.c:543]: read returned zero, peer has closed
Mar  3 22:32:39 localhost pptp[2803]: anon log[call_callback:pptp_callmgr.c:78]: Closing connection (call state)
Mar  3 22:32:39 localhost pppd[2788]: Exit.

При использовании утилиты VPN входящей в поставку - примерно тоже самое.
Заранее благодарю за помощь.

Sentinel

  • Administrator
  • *****
  • Сообщений: 198
  • Karma: +3/-0
(Нет темы)
« Ответ #1 : 08 Марта 2007, 11:10 »
Collision, раз уж никто не отвечает, рискну поделиться своими мыслями. Я в сетевых вопросах полный профан, но так уж получилось, что оба моих провайдера требуют VPN-соединения. Собсно пришлось отыскать и слегка изменить скрипт, похожий на ваш (но попроще), а заодно почитать про VPN. И насколько я понял, основной источник проблем тут - протоколы шифрования. У каждого провайдера своя схема - кто-то требует один, кто-то другой, кто-то вообще их не использует. Судя по вашему логу, сервер провайдера вас отшивает именно из-за несоответствия криптопротокола. Попробуйте поизменять соответствующие настройки команды pppd?
Вот мой скрипт, если любопытно (в /etc/ppp/chap-secrets должна быть забита пара логин/пароль):

#!/bin/sh

#
# fix broken path
#
# PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:.
# export PATH

#
# network settings
#
USER=n009
NETWORK=10.19.0.0
NETMASK=255.255.255.252
VPNSERVER=10.19.0.1
GATEWAY=10.20.14.242
DEVICE=eth0

IP_STATIC=213.242.216.188
DEVICE2=ppp0

#
# vpn stuff
#
PPPD=/usr/sbin/pppd
PPTP=/usr/sbin/pptp

if [ ! -x $PPPD ]; then
echo "$0: $PPPD not found"
exit 1
fi

if [ ! -x $PPTP ]; then
echo "$0: $PPTP not found"
exit 1
fi

#
# here we go
#
case "$1" in
start)
if [ ! -d /var/run/pptp ]; then
mkdir /var/run/pptp
fi
if [ -f /var/run/pptp/remote ]; then
if ping -vc1 'cat /var/run/pptp/remote'; then
exit 1
fi
killall -HUP pptp
killall -TERM pppd
sleep 2
fi
rm -rf /var/run/pptp/* >/dev/null
echo -n "===> Starting vpn:"
route del default
route add -net $NETWORK netmask $NETMASK gw $GATEWAY dev $DEVICE
($PPTP $VPNSERVER defaultroute noauth usepeerdns user $USER &&
echo -n "done") || echo -n "failed"
echo
sleep 5
route del -host $VPNSERVER
route add -host $IP_STATIC dev $DEVICE2
;;
stop)
echo -n "===> Stopping vpn: "
killall -HUP pptp
killall -TERM pppd
sleep 2
rm /var/run/pptp/* >/dev/null
route del -net $NETWORK netmask $NETMASK gw $GATEWAY dev $DEVICE
route add default gw $GATEWAY dev $DEVICE
echo "done"
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "*** Usage: vpn {start|stop|restart"
exit 1
;;
esac

exit 0
Linux.su - Linux в пять минут!
Knoppix.ru/sentinel - Личный архив

Collision

  • *
  • Сообщений: 12
  • Karma: +0/-0
(Нет темы)
« Ответ #2 : 09 Марта 2007, 03:49 »
Всем спасибо, проблема решена.
Необходимо было включить опцию mppe stateless.