Подключение
На рис. 2 мы видим параметры запуска программы pppd, которая реализует протокол физического уровня при установлении связи по телефонной линии. Ее основными параметрами являются имя драйвера для модема, скорость соединения между модемом и компьютером и некоторые другие. В Linux драйверы устройств представлены в виде файлов со специальными атрибутами, которые находятся, как правило, в каталоге /dev. Причем файл /dev/modem обычно является ссылкой на конкретный порт компьютера, к которому подключен модем (например, /dev/ttyS1, т. е. первый COM-порт). Если модем будет подключен к другому порту, можно просто изменить эту ссылку, не меняя остальные настройки.
Рис. 3. Закладка для конфигурирования соединения
Вся информация, которая содержится на закладке Hardware, записывается в файл ifcfg-"имя соединения", расположенный в каталоге /etc/sysconfig/network-scripts. Формат его очень прост - имя и значение параметра отделяются знаком =. Сценарий организации соединения анализирует этот файл и конфигурирует pppd в соответствии со значениями параметров. Опция defaultroute для программы pppd говорит о том, что маршрутизация соединения возлагается на сервер провайдера, поэтому именно такое значение и должно быть вписано в поле PPP option.
Закладка Communication содержит информацию по chat-сценарию. Программа chat - это стандартная UNIX-программа, которая позволяет автоматизировать процесс набора номера провайдера и вашу авторизацию у него. Впрочем, она универсальна, и с ее помощью можно выполнять и другие действия. Chat следит за потоком ввода и сравнивает его содержимое со своей базой правил. Правила отображают связку ключ - значение, и как только из потока ввода поступает последовательность символов, обозначающая один из ключей, программа посылает в поток вывода соответствующее ему значение. Таким образом, chat-сценарий представляет собой набор ключей с их значениями.
Общение с модемом начинается с тестовой команды atz (в верхнем поле закладки), на которую он должен ответить OK.
Программа chat, получив эти два символа, посылает в ответ команду для набора номера atpd (at - команда модема, p - импульсный режим набора номера, а d - указание набрать номер, следующий за командой). Параметры этой команды находятся во втором и третьем полях закладки. Затем модем набирает номер и устанавливает соединение с провайдером.
Как только устанавливается связь, сервер поставщика услуг Internet запрашивает имя пользователя. Обычно в приглашении "набрать имя" содержится строка login:. Именно этого значения и ждет программа chat, которая выдает в ответ имя пользователя. Аналогично передается и пароль. Сценарий можно продолжить и далее - все зависит от того, что запрашивает сервер провайдера. Параметр timeout не является ключом, а используется самой программой chat для определения времени ожидания ответов модема и сервера провайдера.
Когда сервер провайдера перейдет в режим ppp, chat прекратит свою работу и передаст контроль над соединением программе pppd, которая и обеспечит двунаправленную связь. При этом linuxconf сгенерирует chat-сценарий, необходимый для установления модемного соединения в каталог /etc/sysconfig/network-scripts/, и сам файл, который получит название chat-"имя соединения". Его можно использовать и без посредничества linuxconf и сценария /etc/sysconfig/network-scripts/ifup, который обычно задействуется конфигуратором для установления соединения организации связи. Это можно сделать, например, с помощью команды:
# /usr/sbin/pppd /dev/modem 38400 defaultroute connect "/usr/sbin/chat -f /etc/ sysconfig/network-scripts/ chat-ppp0 > /dev/null &
Нужно сказать, что в chat-сценарии содержится конфиденциальная информация - ваше имя и пароль для доступа к провайдеру. Поэтому необходимо правильно установить права доступа к этому файлу, например командой:
# chmod 600 /etc/sysconfig/ network-scripts/chat-ppp0
Это позволит избежать раскрытия пароля пользователями системы, которые, допустим, могут подключиться к компьютеру по модемному соединению.Если вы не хотите, чтобы ваше имя и пароль стали доступны хакерам, то лучше защитите их. Кроме того, рекомендую также запретить удаленный доступ для пользователя root. Эта опция устанавливается в конфигурации программы обслуживания сетевых соединений inetd.