Как подключить Linux к Internet
Валерий Коржов Журнал
"Мир ПК", #06/2000
Если вы установили на свой компьютер операционную систему
Linux, то рано или поздно у вас возникнет желание использовать ее для
подключения к Internet. Давайте попробуем вместе проделать это.
Все довольно просто, поскольку в последних дистрибутивах Linux
предусмотрена возможность централизованной настройки различных компонент
операционной системы, которые отвечают за подключение к Сети. Вам не нужно будет
изучать форматы различных файлов и конфигурировать каждый компонент системы в
отдельности. Централизованная настройка появилась в дистрибутиве Linux Red Hat
6.0, о котором и пойдет речь в дальнейшем.
Разработчики Red Hat 6.0 включили в новую версию дистрибутива
единый конфигуратор linuxconf. Он работает как в текстовом, так и в графическом
режимах, что позволит вам применять его практически в любой конфигурации
системы. Создатели linuxconf стремились сделать настройку компонент Linux более
понятной и удобной, и в большинстве случаев это им удалось.
Ядро Linux
За подключение к Internet в любой разновидности операционной
системы UNIX отвечает несколько компонент: ядро ОС, которое должно поддерживать
стек протоколов TCP/IP; программа реализации протокола физического уровня (для
телефонного соединения это протоколы PPP или SLIP); подсистема настройки модема
- chat-сценарий либо AT-команды (прямое общение с модемом). Кроме того, нужно
настроить DNS для разрешения использования имен удаленных серверов и программу
обслуживания стека протоколов TCP/IP inetd. Впрочем, вопросы настройки DNS и
inetd выходят за рамки настоящей статьи.
Раньше, чтобы ядро ОС Linux поддерживало протокол TCP/IP, его
требовалось перекомпилировать, но в последней версии дистрибутива Red Hat эта
проблема была решена с помощью модулей, которые загружаются в ядро. Поддержка
загружаемых модулей существовала и прежде, однако в новом дистрибутиве она
используется наиболее активно, что позволяет изменять конфигурацию ядра без
перезагрузки компьютера и остановки вычислений. В дистрибутиве Red Hat 6.0
поставляется ядро, откомпилированное с поддержкой всех возможных модулей, в том
числе и TCP/IP, поэтому вполне достаточно загрузить соответствующий модуль
командой insmod. Причем саму команду вызывать не стоит - для загрузки в ядро
модуля поддержки TCP/IP лучше задействовать файл конфигурации сети network в
каталоге /etc/sysconfig/. Для поддержки сетевых протоколов в нем должна быть
следующая строка: NETWORKING=yes.
Если такой строки нет, то нужно ее добавить или изменить.
Следует отметить, что файлы из каталога /etc/sysconfig
просматривают сценарии начальной загрузки системы, которые располагаются в
каталоге /etc/rc.d. Они написаны на языке оболочки UNIX, и поэтому можно понять,
как именно и в каком порядке происходит загрузка Linux. Чтобы ОС соответствовала
указанной в файле конфигурации, необходимо либо ее перезагрузить, либо
перезапустить соответствующий сценарий (это можно сделать с помощью сценариев из
каталогов /etc/rc.d/init.d/, вызвав их с ключом restart). Сценарий для работы с
сетью обычно называется *network (вместо * может стоять код, указывающий
загрузчику, когда этот сценарий нужно запускать). После того как будет
установлена поддержка TCP/IP в ядре, можно переходить к настройке самого
телефонного соединения.
Работа с linuxconf
Программная оболочка linuxconf сделана специально для того,
чтобы пользователи могли легко настроить ОС соответственно своим потребностям.
Фактически это централизованный редактор различных конфигурационных файлов с
разъяснениями значений для каждого поля. В случае телефонного соединения важно
правильно настроить программу pppd, которая организует передачу данных по
телефонной линии, и написать сценарий для программы chat, инициирующей
телефонный звонок и вашу авторизацию у провайдера. При настройке телефонного
соединения linuxconf создает для него chat-сценарий и конфигурирует программу
реализации протокола PPP, причем linuxconf работает как с графической оболочкой,
так и в текстовом режиме.
Рис. 1. Первоначальный вид окна конфигуратора
Чтобы приступить к созданию конфигурационных файлов для
соединения с Internet, нужно запустить конфигуратор командой linuxconf или
выбрать соответствующий пункт меню в графической оболочке. Внешний вид окна
linuxconf после запуска показан на рис. 1. Для конфигурирования модемного
подключения необходимо выбрать раздел Config.Networking.Client
Tasks.PPP/SLIP/PLIP. После этого в правой части окна приложения открывается
список существующих конфигураций для протоколов PPP, SLIP или PLIP. Поскольку
протокол PPP наиболее популярен среди провайдеров, то именно его настройку мы и
будем рассматривать в дальнейшем, хотя другие протоколы телефонного соединения
настраиваются аналогично.
При первом запуске конфигуратора список соединений пуст. Чтобы
создать новую конфигурацию соединения, следует нажать кнопку Add, после чего
откроется закладка с перечнем типов протокола. Выбираем протокол PPP и нажимаем
на кнопку Accept. Возникает следующая закладка, в которой нужно указать телефон
провайдера, свое регистрационное имя и пароль. Затем нажимаем Accept и опять
возвращаемся к первоначальному списку конфигураций, но в нем уже появился новый
пункт, соответствующий только что созданному соединению.
Рис. 2. Закладка для конфигурирования модема
Теперь, при правильной настройке и работе оборудования, уже
можно попробовать подключиться к Internet. Для этого достаточно дважды щелкнуть
мышкой на соответствующем пункте в списке соединений. Откроется закладка,
содержащая всю информацию о соединении: настройки оборудования (закладка
Hardware, рис. 2), конфигурацию chat-сценария (закладка Communication, рис. 3) и
различные дополнительные сетевые опции (закладки Networking и PAP). В этой
"общей" закладке можно попытаться установить соединение с помощью кнопки
Connect. Работу сгенерированных сценариев можно проверить и из командной строки,
перейдя в каталог /etc/ sysconfig/network-scripts и набрав команду ./ifup
ifcfg-"имя соединения".
Подключение
На рис. 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.
Другие способы установления соединения
В ранних версиях дистрибутивов Linux chat-сценарии приходилось
писать самостоятельно. В принципе это не очень сложно - нужно только
познакомиться с форматом соответствующего файла (команда man chat). Впрочем,
можно было обойтись и вообще без утилиты chat, набирая команды вручную с помощью
программы общения с модемом minicom или аналогичной.
Этот способ доступен и сейчас, поскольку в состав Red Hat
включен minicom. Им можно воспользоваться в том случае, когда что-то не
получается, а проверка работы системы вручную, как правило, позволяет найти
ошибки в настройке. Следует добавить, что кроме linuxconf можно применять и
другие программы для организации телефонного соединения, например оболочку
Seyon, которая также поставляется в стандартном дистрибутиве Red Hat 6.0.
Можно задействовать и специализированную утилиту для
автоматического установления телефонного соединения diald, которая подключается
к провайдеру, когда пользователь генерирует запрос к внешней сети. Эта программа
подходит для организации доступа к Internet из небольшой сети, в которой Linux
работает как маршрутизатор.
Таким образом, в Linux предусмотрено множество вариантов установления
телефонного соединения. Выбирайте наиболее подходящий для вас, и - за дело!
ОБ АВТОРЕ
Валерий Коржов - обозреватель еженедельника ComputerWorld
Russia. Контактный телефон: (095) 253-92-06, e-mail: oskar@osp.ru.
|