Ключевые слова:pptp, ppp, linux, debian, vpn, (найти похожие документы)
From: Михаил Конник <http://mydebianblog.blogspot.com>
Date: Sun, 29 Feb 2008 17:02:14 +0000 (UTC)
Subject: Настройка VPN-соединения (PPTP) с ZNet в Debian Linux
Оригинал: http://mydebianblog.blogspot.com/2007/11/vpn-znet.html
Не так давно пришлось разбираться с VPN-ом в свежеустановленном
Дебиане. Так как форум ZNet извне недоступен, выкладываю это здесь. В
общем, дело не хитрое, но был один секретный бубен, в который надо
было стукнуть, тавшийся в дебрях обсуждений на ixbt и был найден мной
в процессе обдумывания сакраментального вопроса "что делать!?".
Поднимаем Интернет
Подъём VPN отдалённо напоминает настройку GPRS - копание в сторону ppp
и связанных с ним утилит. Но здесь нужно установить пакеты pptp
aptitude install pptpd pptp-linux
После этого создаём файл /etc/ppp/peers/Znet и правим его содержимое
до следующего вида:
name мой_логин
remotename PPTP
pty "pptp vpn.znet --nolaunchpppd"
lock
noauth
mtu 1372
mru 1372
lcp-echo-failure 10
Заменяем мой_логин на нормальный логин и обращаем внимание на
выделенные полужирным строки. Мне пришлось ради них ковыряться Аллах
знает где на форумах iXBT - только после этого всё заработало (по
умолчанию стоит 1378)!
Если оставить значение по умолчанию, будете получать такие матюги:
Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP ConfReq id=0x1 ]
Jun 18 04:05:02 Resolventa pptp[3456]: anon
log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
Jun 18 04:05:02 Resolventa pptp[3456]: anon
log[ctrlp_disp:pptp_ctrl.c:857]: Received Outgoing Call Reply.
Jun 18 04:05:02 Resolventa pptp[3456]: anon
log[ctrlp_disp:pptp_ctrl.c:896]: Outgoing call established ta
pppd[3450]: rcvd [LCP ConfReq id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP ConfAck id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [LCP ConfRej id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP ConfReq id=0x2 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [LCP ConfAck id=0x2 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP EchoReq id=0x0 magic=0x93be06c8]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [LCP EchoReq id=0x0 magic=0x2244c55a]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP EchoRep id=0x0 magic=0x93be06c8]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [CHAP Challenge id=0xa4 , name = "vpn1"]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [CHAP Response id=0xa4
<0a52e6cd7d20afcd0c1861afbffae990>, name = "MZR9Kexm"]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [LCP EchoRep id=0x0 magic=0x2244c55a]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [CHAP Success id=0xa4 ""]
Jun 18 04:05:02 Resolventa pppd[3450]: CHAP authentication succeeded
Jun 18 04:05:02 Resolventa pppd[3450]: CHAP authentication succeeded
Jun 18 04:05:02 Resolventa pppd[3450]: sent [IPCP ConfReq id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [IPCP ConfReq id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [IPCP ConfAck id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [IPCP ConfRej id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [IPCP ConfReq id=0x2 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [IPCP ConfNak id=0x2 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [IPCP ConfReq id=0x3 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [IPCP ConfAck id=0x3 ]
Jun 18 04:05:02 Resolventa pppd[3450]: Cannot determine ethernet address for proxy ARP
Jun 18 04:05:02 Resolventa pppd[3450]: local IP address 10.10.252.102
Jun 18 04:05:02 Resolventa pppd[3450]: remote IP address 10.10.0.20
Jun 18 04:05:02 Resolventa pppd[3450]: Script /etc/ppp/ip-up started (pid 3457)
Jun 18 04:05:02 Resolventa pppd[3450]: Script /etc/ppp/ip-up finished (pid 3457), status = 0x0
Далее редактируете файл /etc/ppp/chap-secrets, вписав в него следущие
строки:
# Secrets for authentication using CHAP
# client server secret IP addresses
"мой_логин" "мой_пароль"
Разделитель - пробел. Настройка сетевого интерфейса - присваиваем
своей сетевой карте выданный провайдером IP-адрес в файле
/etc/network/interfaces:
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.ХХХ.ХХХ
netmask 255.255.255.0
gateway 192.168.ХХХ.1
Вместо ХХХ подставляем числа из договора. Теперь прописываем адреса
DNS-серверов в /etc/resolv.conf (если его нет - создаём от рута touch
/etc/resolv.conf):
nameserver 192.168.0.8
nameserver 192.168.0.9
Это ещё не всё: нужно прописать роутинги. Вот она, тайна Золотого
Ключика:
ip r add 192.168.0.0/16 via 192.168.XX.1
ip r del default
ip r add default dev ppp0
Вместо ХХ подставить число, которое вы найдёте в договоре. После этого
таблица роутинга должна выглядеть примерно так:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.0.20 * 255.255.255.255 UH 0 0 0 ppp0
192.168.157.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 gw-1-157.znet 255.255.0.0 UG 0 0 0 eth0
default * 0.0.0.0 U 0 0 0 ppp0
default gw-1-157.znet 0.0.0.0 UG 0 0 0 eth0
Готово - соединяемся с провайдером:
pppd call Znet
После этого всё должно работать.
Ссылки:
К сожалению, внутренний форум Znet не доступен извне, но раздел Linux
там есть и местные аксакалы отвечают быстро и очень грамотно. За что
им огромное спасибо.