MPD MSCHAP V2. При подсоединении к PPTP серверу ИНТЕРНЕТ провайдера клиентский
компьютер пытается аутентифицировать сервер провайдера.
ЗАДАЧА:
ПОДСОЕДИНИТЬСЯ К PPTP СЕРВЕРУ ИНТЕРНЕТ ПРОВАЙДЕРА.
OC FREEBSD 6.0
MPD версия MPD4-4.0B4
внешний ip адрес 192.168.23.102/255.255.255.0
шлюз 192.168.23.1
ip адрес PPTP сервера провайдера 192.168.0.9
При соединении нужно использовать MSCHAP V2.
Шифрование не использовать.
Обозначения:
{С} пакет с моего компьютера
{S} пакет с сервера провайдера
При установке соединения через MPD:
(Когда дошли до протокола MSCHAP М2)
(для удобства я сгруппировал пакеты)
1. {CS} идет запрос со стороны MPD на аутентификацию сервера провайдера.
2. {SC} на запрос моего компьютера сервер провайдера выдает свои идент. данные
3. {CS} mpd не находит в своей базе идентификатора клиента, который выдал сервер провайдера, и процесс завершается с ошибками.
4. {SC} идет запрос со стороны сервера провайдера на аутентификацию клиента
(моего компьютера).
5. {CS} На запрос провайдера выдает пакет со своими идентификационными данными.
6. {SC} выдает результат аутентификации ok.
Далее PD повторяет весь процесс снова.
То есть mpd считает себя сервером и требует аутентификации сервера провайдера, что в моем
случае не нужно.
Конфиги были окорректированы по документации и с учетом информации, которую почерпнул из
конференций.
MPD.CONF
default:
load vpn
vpn:
new -i ng0 vpn vpn
set iface disable on-demand
set iface idle 0
set iface route default
set bundle disable multilink
set bundle authname "mIF15hn0"
set bundle password "BnFGMPsp"
set link yes acfcomp protocomp
set link no pap
set link no chap
set link no chap-md5
set link no chap-msv1
set link yes chap-msv2
set link mtu 1500
# If remote machine is NT you need this..
set link enable no-orig-auth
set link keep-alive 10 75
set ipcp yes vjcomp
set ipcp ranges 0.0.0.0/0.0.0.0
#
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
#
set bundle enable compression
set ccp yes mppc
set ccp yes mpp-e40
set ccp yes mpp-e128
set bundle enable crypt-reqd
set ccp yes mpp-stateless
open
MPD.LINKS
vpn:
set link type pptp
set pptp peer 192.168.0.9
set pptp enable originate outcall
set pptp disable windowing
MPD.LOG
Jun 7 21:28:28 sun mpd: [vpn] LCP: SendConfigAck #2
Jun 7 21:28:28 sun mpd: ACCMAP 0x00000000
Jun 7 21:28:28 sun mpd: AUTHPROTO CHAP MSOFTv2
Jun 7 21:28:28 sun mpd: MAGICNUM 184044ae
Jun 7 21:28:28 sun mpd: PROTOCOMP
Jun 7 21:28:28 sun mpd: ACFCOMP
Jun 7 21:28:28 sun mpd: [vpn] LCP: state change Ack-Rcvd --> Opened
Jun 7 21:28:28 sun mpd: [vpn] LCP: phase shift ESTABLISH --> AUTHENTICATE
Jun 7 21:28:28 sun mpd: [vpn] LCP: auth: peer wants CHAP, I want CHAP
Jun 7 21:28:28 sun mpd: [vpn] CHAP: sending CHALLENGE len:25
Jun 7 21:28:28 sun mpd: [vpn] LCP: LayerUp
Jun 7 21:28:28 sun mpd: [vpn] CHAP: rec'd CHALLENGE #142
Jun 7 21:28:28 sun mpd: Name: "vpn2"
Jun 7 21:28:28 sun mpd: Using authname "mpF15hn8"
Jun 7 21:28:28 sun mpd: [vpn] CHAP: sending RESPONSE len:58
Jun 7 21:28:28 sun mpd: [vpn] CHAP: rec'd RESPONSE #1
Jun 7 21:28:28 sun mpd: Name: "vpn2"
Jun 7 21:28:28 sun mpd: [vpn] AUTH: Auth-Thread started
Jun 7 21:28:28 sun mpd: [vpn] AUTH: ran out of backends
Jun 7 21:28:28 sun mpd: [vpn] AUTH: Auth-Thread finished normally
Jun 7 21:28:28 sun mpd: [vpn] CHAP: ChapInputFinish: status failed
Jun 7 21:28:28 sun mpd: [vpn] CHAP: sending FAILURE len:29
Jun 7 21:28:28 sun mpd: [vpn] LCP: authorization failed
Jun 7 21:28:28 sun mpd: [vpn] device: CLOSE event in state UP
Jun 7 21:28:28 sun mpd: pptp0-0: clearing call
TCPDUMP
АУТЕНТИФИКАЦИЯ МОЕГО КОМПЬЮТЕРА ПЕРЕД СЕРВЕРОМ ПРОВАЙДЕРА:
21:28:16.239981 IP vpn2.znet > sun.home.net: GREv1, call 9806, seq 7, length 39: CHAP,
Challenge (0x01), id 191, Value 82cb7c4a343eb673d9ec90678163da34,
Name vpn2
21:28:16.242302 IP sun.home.net > vpn2.znet: GREv1, call 25608, seq 7, ack 8, length 82: CHAP,
Response (0x02), id 191, Value 7b1e68c23424dbb79ae48f444aead6ed0000000000000000
5b7838efe392d3261eaeac9450[|chap]
21:28:16.253312 IP vpn2.znet > sun.home.net: GREv1, call 9806, seq 9, length 60: CHAP,
Success (0x03), id 191, Msg S=47F1B47D4A3505DF8582B549E739B20BCEAF329F
АУТЕНТИФИКАЦИЯ СЕРВЕРА ПРОВАЙДЕРА ПЕРЕД МОИМ КОМПЬЮТЕРОМ:
21:28:16.240547 IP sun.home.net > vpn2.znet: GREv1, call 25608, seq 5, ack 7, length 49: CHAP,
Challenge (0x01), id 1, Value 7b1e68bd6d343888046ada0db9a21aae, Name mpF15hn8
21:28:16.241862 IP vpn2.znet > sun.home.net: GREv1, call 9806, seq 8, length 72: CHAP,
Response (0x02), id 1, Value 4126a71070f8a0b097bdcf112072c79e00000000000000004
54af3e1f4d6b75746805da9122ae5e87b794a[|chap]
21:28:16.244088 IP sun.home.net > vpn2.znet: GREv1, call 25608, seq 8, length 49: CHAP,
Fail (0x04), id 1, Msg E=691 R=0 M=Login incorrect\015\012
6 ПАКЕТОВ.
ПОДСОЕДИНЕНИЕ ТОГО ЖЕ КОМПЬЮТЕРА С WINDOWS XP К СЕРВЕРУ ПРОВАЙДЕРА:
ОБМЕН ПАКЕТАМИ ПО ПРОТОКОЛУ CHAP V2 МЕЖДУ КЛИЕНТОМ (WINDOWS XP) И PPTP СЕРВЕРОМ ПРОВАЙДЕРА.
40 8.796875 vpn.znet 192.168.23.102 CHAP CHAP: Challenge, ID = 101, Length = 30 , Name = 'vpn2'
48 8.796875 192.168.23.102 vpn.znet CHAP CHAP: Response, ID = 101, Length = 29 , Name = 'mpF15hn8'
50 8.812500 vpn.znet 192.168.23.102 CHAP CHAP: Success, ID = 101, Length = 4
ЗДЕСЬ ВСЕ НОРМАЛЬНО РАБОТАЕТ. ВСЕГО 3 ПАКЕТА.
КАК ЗАСТАВИТЬ MPD НЕ ВЫДАВАТЬ CHALLENGE СЕРВЕРУ ПРОВАЙДЕРА?
НУЖНО ЛИ ЧТО-ТО ДЕЛАТЬ С ЯДРОМ?