Что делать, если Вам не повезло, и у Вашего провайдера
стоит Windows NT RAS 16.06.1999
Если Вы звоните на 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 присвоен номер 0x05.
Microsoft разработал свой метод с использованием алгоритмов MD4 и DES
для Windows NT 3.5, 3.51, 4.0 и Windows 95,
назвал его MS CHAP и ему был присвоен номер 0x80.
Это метод описан в RFC 2433.
Но, видимо, что-то там оказалось не так и после SP3 был выпущены
хотфиксы pptp3-fix (включённый в SP4) и rras30-fix
с новым методом за номером 0x81, названный MS CHAP V2.
Если Вам безумно интересно, то Вы можете посмотреть RFC 2759.
Предыдущий MS CHAP теперь называется MS CHAP V1.
Если на Windows NT 4.0 установлен SP3, то после некоторого шаманства в реестре
можно использовать и CHAP 5.
Начиная с FreeBSD 4.0, pppd может аутентифицироваться
по методу MS CHAP 80.
В более ранних версиях его нужно собрать с поддержкой этого метода:
Прежде всего, нам нужны исходники
самого pppd.
Затем необходимо установить библиотеку, выполняющую шифрование
методом DES.
Дело в том, что, как правило, в ранних версиях FreeBSD не устанавливается всё,
что связано с DES, а для шифрования паролей используется метод MD5.
Тем не менее, в дистрибутив DES входит.
Во FreeBSD 4.x 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 и выше они раскомментированы, но будут учитываться, только
если у Вас уже был установлен 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, для проведения аутентификации
необходимо сделать запрос к контроллеру домена,
то в этом случае Вам нужно добавить к Вашему имени имя домена.
Для домена "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
Вы можете прочитать в статье MS KnowledgeBase Q136634.
(C) Игорь Сысоев http://sysoev.ru |