Как подключить 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.
|