Если Вы звоните на Windows NT Remote Access Server,
то после строки "CONNECT"
Вы не увидите никакого приглашения.
Поэтому из нашего скрипта нужно убрать
ожидание строки "login:" и завершать работу
скрипта сразу после получения строки "CONNECT":
ABORT "ERROR" \
ABORT "NO DIALTONE" \
TIMEOUT 5 \
"" "AT" \
"OK" "ATZ" \
"OK" "ATS7=120" \
ABORT "BUSY" \
ABORT "NO ANSWER" \
ABORT "NO CARRIER" \
"OK" "ATDP$1" \
TIMEOUT 125 \
"CONNECT" "\\с"
if [ "$?" = "0" ]; then
exit 0
fi
Теперь можно приступить к аутентификации. Из того, что понимает
pppd, Windows NT RAS поддерживает PAP и
так называемый MS CHAP 80.
Аутентификация через PAP пройдет в том случае, если в
Windows NT RAS установлен параметр
"Allow any authentication including clear text".
Если же тамошние администраторы страдают паранойей и установили
параметры "Require encrypted authentication" или даже
"Require Microsoft encrypted authentication", то единственный способ
аутентификации - это MS CHAP 80.
Что же такое MS CHAP 80 ? В CHAP могут использоватся
различные методы шифрования и передачи пароля.
Описанному выше методу с
использованием алгоритма MD5 присвоен номер 05.
Microsoft разработал свой метод с использованием алгоритмов MD4 и DES
для Windows NT 3.5, 3.51, 4.0 и Windows 95,
назвал его MS CHAP и ему был присвоен номер 80.
Это метод описан в RFC 2433.
Но видимо, что-то там оказалось не так и после SP3 был выпущены
хотфиксы pptp3-fix (включенный в SP4) и rras30-fix
с новым методом за номером 81, названный MS CHAP V2.
Если Вам безумно интересно, то Вы можете посмотреть
черновой вариант описания этого метода.
Предыдущий MS CHAP теперь называется MS CHAP V1.
Если на Windows NT 4.0 установлен SP3, то после некоторого шаманства в реестре
можно использовать и CHAP 5.
Для того, что бы pppd мог аутентифицироваться по методу
MS CHAP 80, его нужно собрать с поддержкой этого метода:
Прежде всего, нам нужны исходники
самого pppd.
Затем необходимо установить библиотеку, выполняющую шифрование
методом DES.
Дело в том, что, как правило, в FreeBSD не устанавливают всё,
что связано с DES, а для шифрования паролей используется метод MD5.
Тем не менее, в дистрибутив DES входит.
Нам нужно взять из дистрибутива два файла des/des.aa
и des/des.ab и вытащить из них всего два файла -
/usr/include/des.h и
/usr/lib/libdes.so.X.X:
cat des.?? | ( cd / ; \
tar zxfv - usr/include/des.h 'usr/lib/libdes.so.*' )
Для FreeBSD 2.2.7 и 2.2.8 необходимо подпатчить chap_ms.c.
Для FreeBSD 3.1 и выше этого делать не надо.
Берём патч и накладываем его:
patch < patch-chap_ms.txt
Добавляем в Makefile такие строки:
#LDADD+=-lpcap
#DPADD+=${LIBPCAP}
# MS-CHAP support. Requires the DES library.
CFLAGS+=-DCHAPMS
SRCS+= chap_ms.c
LDADD+= -ldes
DPADD+= ${LIBDES}
.include <bsd.prog.mk>
В FreeBSD 3.0 и 3.1 эти строки уже есть,
но они закомментированы.
А в 3.2 и 3.3 они раскомментированы, но будут учитываться, только
если у Вас уже установлен DES, поэтому Вам нужно закомментировать
находящиеся там .if и .endif.
Теперь всё это можно собрать и установить:
make
make install BINDIR=/usr/sbin
После этого нужно записать наше имя "igor" и
пароль "1234567" в файл /etc/ppp/chap-secrets:
igor lame 1234567
Кроме того, мы указали имя удалённой стороны "lame".
В отличие от CHAP 5, в CHAP 80 удалённая
сторона не передаёт нам своё имя, поэтому оно может быть любым и
его необходимо указать в параметре remotename:
pppd cuaa0 57600 lock connect '/etc/ppp/dial' \
user igor remotename lame \
defaultroute noipdefault debug
Если Windows NT, на которой устновлен RAS, не является контроллером
домена и не является stand-alone сервером, то для проведения аутентификации
ему необходимо сделать запрос к контроллеру домена.
В этом случае Вам нужно добавить к Вашему имени имя домена.
Для домена "dummies" Ваше имя в
/etc/ppp/chap-secrets будет выглядеть так:
dummies\\igor lame 1234567
Соответственно, необходимо изменить и параметры pppd:
pppd cuaa0 57600 lock connect '/etc/ppp/dial' \
user dummies\\igor remotename lame \
defaultroute noipdefault debug
Необходимо заметить, что поддержка MS CHAP 80
в pppd ограничена аутентификацией себя и pppd
не сможет аутентифицировать других по этому методу, поэтому Вам нужно
отключить этот тип аутентификации на звонящих к Вам
Windows NT 4.0.
Более подробно о настройках PPP-аутентификации в
Windows NT RAS
Вы можете прочитать в статье Microsoft KnowledgeBase Q136634.
|