Шрифт:
Интервал:
Закладка:
В принципе, в PAP используется только имя и пароль пользователя, а имя удаленного сервера нужно только для того, чтобы можно было определить, какой пароль нужно использовать в случае, когда вы используете одно и то же имя у разных провайдеров, например:
username demos pas12345
username citynet pas98765
Заметим, что хотя пароль передается в открытом виде, удаленная сторона может хранить пароль в виде результата какой-либо хэш-функции, например, MD5, в качестве параметра которой выступает пароль.
CHAP-аутентификация происходит следующим образом. При установлении PPP соединения удаленный сервер предлагает пользователю аутентификацию по протоколу CHAP. Пользователь соглашается, и сервер высылает ему ключ (challenge), состоящий из случайной последовательности символов, и свое имя. Пользователь берет свой пароль и присланный ключ, и прогоняет их через алгоритм MD5. Получившийся результат высылает вместе со своим именем серверу. Сервер, зная пароль пользователя и высланный ему ключ, в свою очередь, проделывает тоже самое у себя, и, если его результат совпадает с присланным, то аутентификация считается успешной. Таким образом, пароль не передается в открытом виде, но удаленный сервер должен хранить пароли пользователей (обычно в открытом виде).
Имена и пароли для CHAP хранятся у пользователя в файле /etc/ppp/chap-secrets, права доступа у него должны быть такие же, как для PAP: "rw- --- ---", и формат строк тоже совпадает.
Протокол PPP позволяет организовать аутентификацию в одних случаях через PAP, а в других - через CHAP. Для этого клиентское ПО при запуске определяет, каким образом можно аутентифицировать себя, исходя из локального имени и имени удаленной стороны, проверяя, есть ли в файлах /etc/ppp/pap-secrets или /etc/ppp/chap-secrets строки с такими именами. И если, скажем, удаленная сторона предлагает CHAP, а в файле /etc/ppp/chap-secrets соответствующего пароля не имеется, то будет запрошен PAP, и, если это устраивает удаленную сторону, то аутентификация пройдет по PAP.
Отдельно нужно рассказать о том, как происходит аутентификация в том случае, когда у провайдера установлен Windows NT Remote Access Server (RAS). 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.
Для того, чтобы из Linux можно было аутентифицироваться по методу MS CHAP 80, нужно собрать пакет pppd с поддержкой этого метода.
14.2. Подготовка к выходу в Интернет
Для того, чтобы получить выход в Интернет, первым делом надо организовать физический канал между вашим компьютером и сервером провайдера. Существует три основных способа организации физического соединения: через локальную сеть, ISDN-адаптер или модем, через который осуществляется обмен по протоколу PPP.
Первый случай имеет место тогда, когда ваш компьютер включен в локальную сеть, в которой имеется сервер доступа к Интернету. В этом случае от вас практически не требуется никаких усилий для организации соединения - все заботы берет на себя администратор локальной сети. Вы просто набираете в браузере URL интересующего вас ресурса и получаете к нему доступ. Идеальный вариант!
Соединение через ISDN-адаптер встречается пока не часто, так что мы его не рассматриваем.
Третий способ, соединение с помощью модема по коммутируемой телефонной линии, чаще всего используется для выхода в Интернет с отдельных (в частности, домашних) компьютеров. В этом случае администратора для помощи у вас может и не оказаться, так что все надо делать самому. Поэтому этот случай мы рассмотрим подробнее.
Естественно, что первым делом нужно иметь модем и телефон.
Далее нужно выбрать провайдера услуг Интернет (ISP) и договориться с ним об открытии для вас счета доступа. При этом вам нужно получить у провайдера следующие данные:
• номер телефона, по которому ваш компьютер будет соединяться с модемным пулом провайдера;
• ваши имя пользователя и пароль для доступа в Интернет.
Дополнительная информация, которая может оказаться необходимой для организации полноценного доступа к службам провайдера, включает:
• IP-адрес сервера DNS (Domain Name Service - служба доменных имен). При заключении договора с провайдером вы можете получить от него один или несколько адресов серверов DNS;
• адрес шлюза (gateway address): некоторые провайдеры могут требовать указания адреса шлюза в настройках;
• имя домена провайдера;
• информацию о том, какой почтовый протокол используется провайдером (POP3 или IMAP);
• адрес сервера, осуществляющего обработку входящей почты (его имя может иметь вид pop.yourisp.com или mail.yourisp.com), и адрес сервера, осуществляющего обработку исходящей почты (SMTP-сервера). Зачастую обработка исходящей почты осуществляется тем же сервером, на котором обрабатывается входящая почта, и тогда их имена, естественно, совпадают;
• адрес (имя) новостного (NNTP) сервера (что-нибудь вроде news.yourisp.com или nntp.yourisp.com);
• имена proxy-серверов, которые установил ваш провайдер.
Далее необходимо убедиться, что Ваша конфигурация Linux имеет необходимые средства поддержки протокола PPP.
Для работы по протоколу PPP у вас должен быть установлен пакет ppp и Ваше ядро должно иметь встроенную поддержку протокола PPP (и TCP/IP). Для того, чтобы проверить, поддерживает ли ваше ядро протокол PPP, надо ввести команду: dmesg | more или просмотреть файл /var/log/dmesg.
Вы должны увидеть такие строки:
PPP: version 2.3.0 (demand dialling)
TCP compression code copyright 1989 Regents of the University of California
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
PPP line discipline registered
Большинство руководств, в частности, PPP-HOWTO, рекомендуют в том случае, когда вы таких строк не найдете, перекомпилировать ядро, включив при компиляции поддержку PPP (о том, как перекомпилировать ядро, рассказано в гл. 17). Если поддержка протокола PPP в ядре была организована в виде модуля, то нужно подключить модуль поддержки PPP командой
[root]# /usr/sbin/insmod ppp
Описываемая ниже программа kppp подключает этот модуль автоматически. После успешного запуска kppp вы должны обнаружить приведенное выше сообщение о подключении PPP в файле /var/log/messages.
После того, как вы будете уверены, что поддержка протокола PPP обеспечена, можно подключить модем к компьютеру, соединить его с телефонной линией и перейти к настройке соединения вашего компьютера с сервером провайдера. Поскольку соединение происходит по протоколу PPP, именно его надо настраивать.
Есть два способа заставить работать PPP: сконфигурировать вручную и использовать конфигурационную программу.
Ручная конфигурация - дело довольно сложное, требующее редактирования файлов и написания скриптов. Работы, говорят, немного (только надо предварительно прочитать PPP HOWTO или другое руководство), но легко сделать ошибку. Если вы хотите попробовать ручной способ конфигурации, то обратитесь к рекомендациям Игоря Сысоева на его страничке http://www.nitek.ru/~igor/pppd/. Он, правда, описывает настройку PPP для операционной ситемы FreeBSD, однако для Linux все делается вполне аналогично.
Но все же для новичков предпочтительнее воспользоваться одним из специальных инструментов, автоматизирующих выполнение этих задач. В составе графической среды KDE для создания и изменения учетных записей PPP имеется превосходная программа kppp. Эта утилита облегчает настройку соединения; в большинстве случаев от вас потребуется только правильно указать учетную информацию.
14.3. Программа kppp
kppp - одна из очень удобных утилит KDE позволяющая легко установить подключение к Интернету и легко его модифицировать. Она включает функции настройки PPP-интерфейса, обеспечивает "дозвон" по телефонной линии и совместно с демоном pppd (Point-to-Point Protocol daemon) устанавливает и поддерживает соединение с сервером провайдера.
Чтобы запустить kppp, можно воспользоваться командой меню Главное Меню KDE/Интернет/Kppp. Если вы хотите запускать программу kppp от имени обычного пользователя, надо установить suid-бит на исполняемый файл /usr/bin/kppp. В противном случае при запуске пользователем этой программы будет появляться сообщение, изображенное на рис 14.1.
- Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 - Наик Дайлип - Программное обеспечение
- Призрак в Сети. Мемуары величайшего хакера - Уильям Саймон - Программное обеспечение
- Photoshop CS2 и цифровая фотография (Самоучитель). Главы 10-14 - Солоницын Юрий - Программное обеспечение