VPN не работает. Почему?

Автор: MIgor Дата: 20.12.2007 11:22 Сервер АСПв10.
Структура сетки:
- Роутер (на провайдера) -
(10.0.0.1)
|
(eth1 10.0.0.2)
---Сервер АСПв10(прокси+Апач+Самба)-(192.168.1.1)(модем)-----(модем)-
(192.168.1.250)Удаленная WinXP
(eth1 192.168.1.1)
|
(192.168.1.2-255)
локальная сеть с контроллером домена на Винде 2003 (учетные записи пользователей и сервер ДНС - локальный).У пользователей WinXP

Требуется подключить удаленного пользователя WinXP к сети по модему.
Модем подключен к АСПв10.
Само модемное подключение устанавливается. С удаленной машины вижу Апач, пинги к локальным машинам проходят.

При подключении удаленной машины WinXP через удаленный доступ выдает
"Ошибка 800: VPN-соединение не создано. VPN-сервер не доступен или параметры безопасности настроены не верно."

Я новичок в этой области. Сразу скажу что статьи по этому поводу читал. Ссылки статей здесь приводить не буду. Книги по Линуксу под рукой, но не все понятно. Может быть я что-то не сделал в iptables?

Привожу конфиги
/etc/ppp/options
lock
proxyarp
mtu 576
mru 576
auth
debug
reguire-pap
refuse-chap
ms-dns 192.168.1.2

/ets/ppp/options.pptp
lock
debug
noauth
nobsdcomp
nodeflate
proxyarp
refuse-pap
reguire-mppe
reguire-mppe-40
reguire-mppe-128
reguire-mschap
reguire-mschap-v2
reguire-chap

/var/log/messages (только о ppp)
Dec 20 08:06:20 brig pptpd[18344]: MGR: Manager process started
Dec 20 08:06:20 brig pptpd[18344]: MGR: Maximum of 100 connections available
Dec 20 08:06:21 brig pptpd: запуск pptpd succeeded
Dec 20 08:39:55 brig smartd[1972]: Device: /dev/sda, Temperature changed 2 Celsius to 37 Celsius since last report
Dec 20 08:41:43 brig mgetty[18607]: data dev=ttyS0, pid=18607, caller='none', conn='115200', name='', cmd='/usr/sbin/pppd', user='/AutoPPP/'
Dec 20 08:41:43 brig pppd[18607]: pppd 2.4.2 started by dialout, uid 0
Dec 20 08:41:43 brig pppd[18607]: Using interface ppp0
Dec 20 08:41:43 brig pppd[18607]: Connect: ppp0 <--> /dev/ttyS0
Dec 20 08:41:47 brig pppd[18607]: found interface eth0 for proxy arp
Dec 20 08:41:47 brig pppd[18607]: local IP address 192.168.1.1
Dec 20 08:41:47 brig pppd[18607]: remote IP address 192.168.1.250
Dec 20 08:42:37 brig pppd[18607]: LCP terminated by peer (fM->^M-^K^@<M-Mt^@^@^@^@)
Dec 20 08:42:38 brig pppd[18607]: Hangup (SIGHUP)
Dec 20 08:42:38 brig pppd[18607]: Modem hangup
Dec 20 08:42:38 brig pppd[18607]: Connection terminated.
Dec 20 08:42:38 brig pppd[18607]: Connect time 0.9 minutes.
Dec 20 08:42:38 brig pppd[18607]: Sent 3885 bytes, received 3679 bytes.
Dec 20 08:42:38 brig pppd[18607]: Exit.

В других логах о pptpd ни чего не нашел. В WinXP параметры безопасности удаленного подключения по умолчанию.
Нужен ли скрипт из "OpenNET статья - Настройка VPN (PPTP) сервера под Linux (ppp vpn linux pptp).mht" или в АСПв10 не обязательно.
Может быть какие пакеты не установил?
Re: VPN не работает. Почему? 20.12.2007 11:57BigAndy Юreguire-mppe
reguire-mppe-40
reguire-mppe-128
reguire-mschap
reguire-mschap-v2

>LCP terminated by peer

Это все одновременно?
Вынь настроено шифровать по какому протоколу? Если в вини стоит галочка "не использовать шифрование" ?
Подробно об LCP можно прочесть здесь: [doc.ural.ru]
"chap-secrets", вроде, настроен правильно.
Re: VPN не работает. Почему? 20.12.2007 13:46MIgor Пожалуйста покажите что нужно удалить или добавить в моих конфигах
и что добавить в iptables?
Re: VPN не работает. Почему? 24.12.2007 17:07bsm У меня стоит ASPLinux 11, ppp-radius-2.4.2-7asp, pptp-1.7.1-1.110asp, pptpd-1.2.3-1.110asp
ppp-2.4.2-7asp.

В /etc/ppp/options.pptpd указано

# Authentication
#
auth
name pptpd

# Encryption
#
-pap
+chap
refuse-chap
require-mschap-v2

# Network and Routing
#
proxyarp
# <local ip VPN Server>:<ip proxy>
192.168.0.3:192.168.0.1
nodefaultroute

# Logging
#
# лог-файл
logfile /var/log/ppp/pptpd.log
# если не закомментировано, то в лог-файл ложится перечень выполненых
# команд, с указанием их источника
#dump
# если не закомментировано, то режим отладки включен
#debug

# Miscellaneous
#
lock
mtu 1490
mru 1490
ipcp-accept-local
ipcp-accept-remote
lcp-echo-failure 3
lcp-echo-interval 5
ipparam PoPToP
nobsdcomp
nodeflate
deflate 0
require-mschap

Для манипулирования VPN имею скрипт-

#!/bin/sh
#
# Организация VPN
#
# Открывать на файрволе надо протокол с номером 47 и tcp-порт 1723
#

PPTPD=/etc/init.d/pptpd
IPT=/sbin/iptables
ROUTE="/sbin/route"

LOCAL_NET_DEV=eth0 # устройство локальной сети КБ
MAC_LOCAL_NET_DEV="00:C0:26:A8:EE:01" # MAC Address NetWork Card

ISP_LOCAL_NET_DEV=eth1 # устройство - локальная сеть провайдера
#
HOME_HOST=10.10.3.4 # мой домашний компьютер
MAC_HOME_HOST="00:30:84:0F:B4:08" # MAC Address NetWork Card
#
ANN_HOST=10.10.4.126 # Ann_Ann в домашней сети
MAC_ANN_HOST="00:0B:6A:71:6D:5B" # MAC Address NetWork Card

VPN_DEV=ppp0 # VPN-устройство на сервере КБ
list_vpn_ip="4 5 6 7" # перечень ip VPN-клиентов

squid_root=/etc/squid/squidblock/users/root.users

access_home_host() { # организация доступа для конкретного IP
if [ "$1" == "-A" ]; then
route_switch=add

else
route_switch=del
fi

$ROUTE $route_switch -host $2 gw 10.10.1.1 $ISP_LOCAL_NET_DEV

$IPT $1 INPUT --in-interface $ISP_LOCAL_NET_DEV --protocol tcp --source $2 -j ACCEPT
$IPT $1 OUTPUT --out-interface $ISP_LOCAL_NET_DEV --protocol tcp --destination $2 -j ACCEPT
} # access_home_host()

cikl_squid() { # корректируем /etc/squid/squidblock/users/root.users для предоставления доступа к Интернет
temp_file=$squid_root.tmp$1

[ -f $temp_file ] && rm $temp_file

if [ -f $squid_root ]; then
(cat $squid_root; echo) | # make sure there is a LF at the end
while read SIMBOL_IP GROUP TEXT WORD_1 WORD_2 WORD_3; do
if [ "$1" == "-D" ]; then
#
# удаляеи VPN-клиентов
#
if [ "#$SIMBOL_IP" == '##' ]; then
short_word=${WORD_1:0:3}

if [ "$short_word" != "VPN" ]; then
echo "$SIMBOL_IP $GROUP $TEXT $WORD_1 $WORD_2 $WORD_3" >> $temp_file
fi

else
short_ip=${SIMBOL_IP:10:2} # 3/, .., N/

case "$short_ip" in
3/|4/|5/|6/|7/)
echo > /dev/null
;;

*)
echo "$SIMBOL_IP $GROUP $TEXT $WORD_1 $WORD_2 $WORD_3" >> $temp_file
;;
esac
fi

else
#
# VPN-клиентов нет, следовательно- копируем информ.
#
short_ip=${SIMBOL_IP:0:1}

# [ vyrazhenie1 or vyrazhenie2 ]
if [ "$short_ip" == "#" -o "$short_ip" == "1" ]; then
echo "$SIMBOL_IP $GROUP $TEXT $WORD_1 $WORD_2 $WORD_3" >> $temp_file
fi
fi
done
fi

if [ "$1" == "-A" ]; then
#
# добавляеи VPN-клиентов
#
for ip in $list_vpn_ip; do
echo "# ADMIN -- VPN Client" >> $temp_file
echo 192.168.0.$ip/255.255.255.255 >> $temp_file
done
fi

if [ -f $temp_file ]; then
# переименовываем файл пользователей
mv --reply=yes $temp_file $squid_root && echo "Файл $squid_root изменён. ($1)"
chown squid.squid $squid_root
chmod 644 $squid_root

# перечитываем конфиг. squid
/etc/init.d/squid reload && echo "Конфигурация Squid перечитана."
fi
} # cikl_squid()

deny_access() { # Управление доступом с VPN-адресов
#
# Ужесточим ограничения- если MAC_ARRDESS NetCart не совпадёт, то в доступе
# будет отказано.
#
for ip in $list_vpn_ip; do
if [ "$ip" == "4" ]; then
MAC=$MAC_ANN_HOST
else

MAC=$MAC_HOME_HOST
fi

user_ip=192.168.0.$ip
cmd_string="--in-interface $VPN_DEV --source $user_ip -m mac --mac-source ! $MAC -j DROP"

$IPT $1 INPUT $cmd_string
$IPT $1 FORWARD $cmd_string
done

#
# организация доступа из вне для домашних станций
#
for ip in $HOME_HOST $ANN_HOST; do
access_home_host $1 $ip
done
} # deny_access()

cikl_ipt() {
deny_access $1 # Управление доступом с VPN-адресов
cikl_squid $1 # Корректируем /etc/squid/squidblock/users/root.users

[ "$1" == "-A" ] && /sbin/modprobe ip_conntrack_pptp

#
# Для всех из $list_vpn_ip
#
for ip in 1 $list_vpn_ip; do
user_ip=192.168.0.$ip

# 47 протокол
$IPT $1 INPUT --destination $user_ip --protocol gre -j ACCEPT
#
$IPT $1 INPUT --destination $user_ip --protocol tcp --match tcp --dport 1723 -j ACCEPT
done

echo 1 > /proc/sys/net/ipv4/ip_forward

[ "$1" == "-D" ] && /sbin/modprobe -r ip_conntrack_pptp
} # cikl_ipt()

start() {
user_titr "Организация VPN-доступа."
access_home_host -D $HOME_HOST
cikl_ipt -A
$PPTPD start
} # start()

view_inform() {
if [ -f $1 ]; then
echo
echo "*** $1 ***"

if [ "$2" == "" ]; then
tail -n 20 $1

else
tail -n 20 $1 | grep $2
fi
fi
} # view_inform()

status() {
view_inform /etc/ppp/pppd.log
echo
echo "*** iptables --list | grep {gre,1723} ***"
$IPT --list | grep gre
$IPT --list | grep 1723
echo
/sbin/lsmod | grep ip_conntrack_pptp
$PPTPD status
echo
echo "*** $squid_root ***"
cat $squid_root
} # status()

stop() {
user_titr "Блокирование VPN-доступа."
$PPTPD stop
cikl_ipt -D
access_home_host -A $HOME_HOST
} # stop()

restart() {
stop
start
} # restart()

case "$1" in
start|status|stop|restart)
$1
;;

delete_iptables)
deny_access -A # Управление доступом с VPN-адресов
;;

*)
echo "Используйте $0 {start|status|stop|restart|delete_iptables}"
echo "start- запуск VPN"
echo "status- просмотр лога соединения с VPN"
echo "stop- выключение VPN"
echo "restart- перезапуск VPN"
echo "delete_iptables- удаление правил iptables"
;;
esac

exit 0

Всё работает.
Удачи.
RSS-материал