next up previous contents
Next: Диалоговый скрипт для связи Up: Сети на основе телефонных Previous: Работа с PPP-серверомиспользующим

Использование MSCHAP

Программа RAS в операционной системе Microsoft Windows NT может быть установлена так, что в ней будет использоваться модификация протокола CHAP. Среди исходных текстов программ PPP можно найти файл README.MSCHAP80, в котором обсуждается этот вопрос. Узнать о том, использует ли сервер для опознавания этот протокол, можно, установив опцию поиска ошибок (debugging) программы pppd. Если сервер использует протокол MS CHAP, то на экране будет примерно такая строка:



rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]


Индикатором здесь является строка auth chap 80.

Для того, чтобы использовать MS CHAP, надо будет заново откомпилировать программу pppd, чтобы включить туда поддержку этого протокола. Инструкции для компилирования и использования такой версии программы pppd можно также найти в файле README.MSCHAP80.

Если используется опознавание протоколом PAP или CHAP, то нужно создать файлы с секретными ключами (secrets file). Их имена будут соответственно /etc/ppp/pap-secrets и /etc/ppp/chap-secrets, принадлежность пользователю root, группе root с правами доступа 740.

Первое, что нужно знать о протоколах PAP и CHAP, это что они созданы для опознавания хостов, а не пользователей. Другими словами, после того, как компьютер совершил PPP-соединение с сервером, любой пользователь на этом компьютере сможет использовать это соединение.

Протокол PAP может, а протокол CHAP должен потребовать двустороннего опознавания, т.е. имя и ключ потребуются с каждой стороны. Однако большинство PPP-серверов, использующих PAP, этого не требуют.

Предоставляя услуги, провайдер обычно дает клиенту имя и пароль для входа в систему, и не интересуется тем, какое имя компьютера установлено в операционной системе на клиентском компьютере. Поэтому при соединении с сервером надо использовать имя пользователя, данное провайдером. Для этого используется опция name программы pppd. В файл /etc/ppp/options надо добавить строку

name \cparam{your}\_\cparam{user name}\_\cparam{at}\_\cparam{your}\_\cparam{ISP}
(первый аргумент -- "локальное" имя пользователя, второй -- имя на сервере). С технической точки зрения, на самом деле надо использовать команду user your_user name_at_your_ISP для PAP, однако программа pppd может использовать это имя в качестве имени пользователя, если оно требуется для PAP. Преимущество использования опции name в том, что она применима и к протоколу CHAP.

Поскольку протокол PAP предназначен для опознавания компьютеров, с технической точки зрения требуется также указать имя удаленного компьютера. Однако, поскольку в большинстве случаев используется один сервер, в файле с секретным ключом можно использовать для имени удаленного компьютера шаблон "*".

Файл /etc/ppp/pap-secrets устроен следующим образом:



# Секретные ключи для опознавания протоколом PAP
# клиент     сервер    ключ   приемлемые_IP-адреса_клиента


Четыре поля в файле разделены пробелами; последнее поле может быть пустым (для динамического и, возможно, статического назначения IP-адреса сервером).

Пусть провайдер предоставил имя пользователя fred и пароль flintstone. Значение fred для опции name будет занесено в файл /etc/ppp/options, а файл /etc/ppp/pap-secrets будет выглядеть так:



# Секретные ключи для опознавания протоколом PAP
# клиент     сервер    ключ     приемлемые_IP-адреса_клиента
fred         *         flintstone


В данном файле указывается, что клиентский компьютер по имени fred (это имя будет использоваться программой pppd, хотя настоящее имя компьютера может быть иным) с каждым сервером будет использовать пароль (секретный ключ) flintstone.

Заметим, что указывать IP-адрес клиента не требуется, если только сервер не требует, чтобы статический IP-адрес клиента обязательно указывался. Иначе, даже если адрес будет указан, для большинства PPP-серверов это не будет работать, так как они (по соображениям безопасности) не позволяют клиентам указывает те IP-адреса, которые им будут даны.

Процедура требует, чтобы опознавание было двусторонним, т.е.\ чтобы не только сервер опознавал клиента, но и клиент опознавал сервер. Допустим, что имя клиентского компьютера -- fred, а имя сервера -- barney. Тогда клиент в файле /etc/ppp/options.ttySx должен указать значение опций name и remotename соответственно fred и barney, а сервер -- наоборот, barney и fred.

На компьютере fred файл /etc/chap-secrets будет выглядеть так:



# Секретные ключи для опознавания протоколом PAP
# клиент     сервер    ключ     приемлемые_IP-адреса_клиента
fred         barney    flintstone
barney       fred      wilma


а на компьютере barney:



# Секретные ключи для опознавания протоколом PAP
# клиент        сервер    ключ         приемлемые_IP-адреса_клиента
barney          fred      flintstone
fred            barney    wilma


Заметим в частности, что для двустороннего опознавания эти файлы для обоих компьютеров должны иметь строки, соответствующие опознаванию клиентом сервера и сервером клиента.


next up previous contents
Next: Диалоговый скрипт для связи Up: Сети на основе телефонных Previous: Работа с PPP-серверомиспользующим

root
Sun Aug 29 12:01:30 MSD 1999