От точки А до точки Б... или что такое РРР 2

От точки А до точки Б... или что такое РРР

Продолжение. Начало в N№ 35

Настройка DNS

В то время, как люди присваивают имена разным предметам, компьютеры предпочитают обращаться друг к другу при помощи цифровых кодов. В сети TCP/IP (а именно такой сетью является сеть Интернет) мы присваиваем каждому компьютеру свое имя, и каждый компьютер живет в конкретном домене. Для примера возьмем компьютер с названием red, который находится в домене rainbow.by. Его адрес в виде, привычном для людей, выглядит так: red.rainbow.by.

Но другие компьютеры, подключенные к сети Интернет, используют при обращении к нему его IP адрес.

Над переводом символьных имен компьютеров в их цифровые адреса и обратно работает служба доменных имен - DNS.

Как это происходит:

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

- сначала проверяется локальный файл /etc/hosts. Процедура поиска зависит от настроек файла /etc/host.conf;

- если ответ найден в этом файле, этот ответ возвращается приложению, давшему запрос;

- если DNS сервер известен, запрос направляется к нему;

- если DNS сервер содержит ответ на запрос в своей базе данных, он возвращает этот ответ, если нет, то он запрашивает следующий DNS сервер.

При установке РРР-соединения Ваш компьютер хочет знать, где он может найти информацию о сетевых адресах других компьютеров по их символьному имени. Первый способ - это занести IP адреса всех компьютеров, с которыми Вы хотите обмениваться информацией в файл /etc/hosts (этот способ может успешно работать внутри небольшой локальной сети, но он неприменим, если Ваш компьютер подключен к сети Интернет). Второй способ - использовать только цифровые адреса компьютеров, что опять применимо только внутри локальной сети. Лучший способ - настроить Linux таким образом, чтобы он сам автоматически искал нужную информацию об адресах других компьютеров. Все, что нужно сделать, - это занести адрес ближайшего DNS сервера в файл /etc/resolv.conf.

Системный администратор Вашего РРР сервера должен сообщить Вам два адреса DNS серверов (одного достаточно, но с двумя Вы будете работать эффективнее). Как упоминалось ранее, Linux не может автоматически определить адрес DNS сервера, как это делает Windows95. Потому потребуйте (только вежливо!) эту информацию у своего провайдера!

Ваш файл /etc/resolv.conf выглядит примерно так:

domain your.isp.domain.name

nameserver 10.25.0.1

nameserver 10.25.1.2

Отредактируйте этот файл (если необходимо, то создайте) и занесите туда адреса, полученные от своего провайдера. Атрибуты и свойства этого файла (ls -l /etc/resolv.conf):

-rw-r-r- 1 root root 98 Aug 23 05:04 /etc/resolv.conf

Также следует проверить, правильно ли настроен файл /etc/hosts.conf

order hosts,bind

multi on

С этими параметрами поиск сначала будет производиться в файле /etc/hosts, а после этого - на DNSсервере.

РРР и пользовательские привилегии

Так как после своего запуска программа pppd требует изменения настройки сетевых устройств и таблицы маршрутизации кернела, а все эти настройки должны выполняться администратором системы - пользователем root, то права на запуск этой программы должны принадлежать администратору системы:

-rwsr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd

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

chmod u+s /usr/sbin/pppd

Это позволит даже другим пользователям запускать эту программу со всеми необходимыми привилегиями, настраивать сетевые интерфейсы и таблицы маршрутизации кернела. Конечно же, программы, запуск которых разрешен всем пользователям, но при выполнении которых устанавливается режим доступа к системе на уровне системного администратора (root) ставят под угрозу безопасность системы. Но некоторые программы (например pppd) созданы с учетом этой опасности, так что можете быть спокойны, используя pppd в этом режиме.

В зависимости от того, как Вы хотите использовать свой компьютер, особенно если Вы разрешаете ЛЮБОМУ пользователю устанавливать РРР соединение, нужно установить соответствующие атрибуты на общий доступ по чтению и выполнению у файлов-скриптов, которые "включают" и "выключают" РРР. Если же Вы хотите ограничить число пользователей, удостоенных этой чести, можно создать отдельную группу пользователей и назвать ее ррр. Отредактируйте файл /etc/group (сделать это может только root):

- в атрибутах файла pppd задайте его принадлежность пользователю root и группе ppp. Эти атрибуты должны выглядеть так:

-rwsr-x-- 1 root ррр 95225 Jul 11 00:27 /usr/sbin/pppd

- в атрибутах файлов ppp-on и ppp-off задайте их принадлежность пользователю root и группе ppp

- сделайте их доступными для чтения и выполнения группой ррр:

-rwsr-x-- 1 root ррр 587 Mar 14 1995 /usr/sbin/ppp-on

-rwsr-x-- 1 root ррр 631 Mar 14 1995 /usr/sbin/ppp-off

- отключите все остальные права доступа к этим файлам

- добавляйте пользователей, которые будут запускать ррр в соответствующую группу.

Даже когда Вы сделаете это, обычные пользователи из группы ррр не смогут отключить ррр канал (запустить программу ppp-off может только пользователь root). Но любой человек может выключить модем или порвать телефонный провод:(

Альтернативой (и самой лучшей) описанному способу является использование программы sudo. Она позволяет неавторизованным пользователям выполнять операции по запуску и отключению ррр, причем делать это с максимальной надежностью и безопасностью.

Настройка файлов для РРР

Теперь пришло время войти в систему как root для того, чтобы создать необходимые каталоги и отредактировать некоторые файлы для настройки РРР. РРР использует несколько файлов для установки сетевого соединения. В зависимости от версии РРР (2.1.2 или 2.2) набор этих файлов различен. Для РРР 2.1.2:

/usr/sbin/pppd # программа РРР

/usr/sbin/ppp-on # скрипт установки соединения

/usr/sbin/ppp-off # скрипт обрыва соединения

/etc/ppp/options # файл настроек РРР

/etc/ppp/options.ttyXX # файл настроек каждого порта

Для версии РРР 2.2:

/usr/sbin/pppd # программа РРР

/etc/ppp/scripts/ppp-on # скрипт установки соединения

/etc/ppp/scripts/ppp-on-dialer # первая часть этого скрипта

/etc/ppp/scripts /ppp-off # скрипт обрыва соединения

/etc/ppp/options # файл настроек РРР

/etc/ppp/options.ttyXX # файл настроек каждого порта

Пользователи Red Hat Linux должны помнить, что Red Hat Linux размещает файлы скриптов в каталоге /usr/doc/ppp-2.2.0f-2/scripts.

В вашем каталоге /etc должен находиться каталог ррр:

drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp

Если его не существует, создайте его с соответствующими атрибутами и правами доступа. В этом каталоге находится файл шаблонов настроек ррр - options.tpl. Он содержит пояснения ко всем настройкам всех необходимых параметров ррр. Знакомство с содержимым этого файла, как и с сопутствующей документацией (man pppd) по РРР будет очень полезным. Вы можете использовать этот файл как хранилище всех параметров РРР, или создать свой собственный файл /etc/ppp/options, не содержащий подробных комментариев, короткий и удобный в обращении.

Если у Вас несколько последовательных портов с модемами (как обычно для РРР серверов), создайте файл /etc/ppp/options с настройками, общими для всех последовательных портов и набор отдельных файлов для каждого порта с его индивидуальными настройками. Этим файлам настроек последовательных портов присваиваются имена: /etc/ppp/options.ttyx1, /etc/ppp/options.ttyx2 и так далее... (символ "х" заменяет букву в названии последовательного порта). При использовании одного канала для связи вполне достаточно файла /etc/ppp/options. Или все нужные параметры программе pppd можно передавать в виде аргументов в строке ее запуска.

Если Вы планируете устанавливать соединение с несколькими РРР серверами, можно сохранить настройки для каждого сервера в файле /etc/ppp/options.site, а затем указать в командной строке нужный файл при запуске программы pppd.

Какие же параметры нужно установить для работы РРР? Это зависит от многих причин. Приведем здесь основные, которые будут работать с большинством серверов:

# /etc/ppp/options

#

# не порождать фоновые процессы

-detach

#

# использование сигналов модема

modem

# резервирование последовательного порта

lock

# использовать аппаратный контроль за потоком данных

crtscts

# добавить новый маршрут в таблицы маршрутизации

defaultroute

# отключение обработки <Esc> - последовательностей

asyncmap 0

# максимальный размер передаваемого пакета данных

mtu 552

# минимальный размер принимаемого пакета данных

mru 552

#

# ---- конец примера

Если сервер, к которому Вы подключаетесь, требует идентификации пользователей по протоколу РАР или СНАР, следует добавить еще несколько строк в файл /etc/ppp/options:

#

# использовать Ваше пользовательское имя, под которым Вы

# зарегистрированы у своего провайдера в качестве имени

# Вашего компьютера на время соединения

name <Ваше имя> # ЗАПОЛНИТЬ!

#

# Если Вы установили РРР сервер и хотите активировать

# соответствующий протокол идентификации пользователей,

# удалите знак "#" перед соответствующей строкой.

# В случае, если Вы используете РРР как клиент, оставьте

# эти строки в виде комментария.

# +pap

# +chap

#

# Если Вы используете шифрованные пароли из файла

# /etc/ppp/pap-secrets, удалите знак "#" перед следующей

# строкой. Помните, что эта система шифрования отличается

# от аналогичной системы MS RAS в MS Windows NT

# +papcrypt

Если Вы используете РАР (Password Authentication Protocol) или СНАР (Challenge/Handshake Authentication Protocol) на своем РРР сервере, нужно создать еще несколько файлов:

/etc/ppp/pap-secrets

/etc/ppp/chap-secrets

Они должны принадлежать пользователю root и группе root, параметры их задайте командой:

chmod *-secrets 740

Прежде всего хочу заметить, что эти протоколы служат для идентификации компьютерных систем, а не пользователей. Я слышу, как Вы спрашиваете: "Что??? Какая разница???". Я отвечу. Как только Ваш компьютер установит РРР-соединение с сервером, все пользователи этого компьютера (а не только Вы!) смогут использовать этот канал связи. Благодаря этому, Вы можете создать большую сеть, объединив друг с другом две малых через РРР канал связи.

Файл /etc/ppp/pap-secrets выглядит примерно так:

# Secrets for authentication using PAP

# client server secret acceptable_local_IP_address

Он содержит четыре поля, разделенных пробелами или символом табуляции, причем последнее поле может оставаться пустым (это зависит от того, как Ваш провайдер выделяет IP адреса - статически или динамически). Предположим, что провайдер снабдил Вас именем fred и паролем flinstone. Вставьте следующую строку в файл /etc/ppp/options{.ttySX}:

name fred

и отредактируйте файл /etc/ppp/pap-secrets:

# Secrets for authentication using PAP

# client server secret acceptable_local_IP_address

fred * flinstone

Теперь Вы присвоили своему компьютеру имя fred (для использования программой pppd - у Вашего компьютера может быть другое локальное имя) и при соединении с ЛЮБЫМ сервером Вы будете использовать пароль flinstone. Если Вы соединяетесь не с одним, а с несколькими РРР серверами, использующими PAP для идентификации, в этот файл можно добавлять новые строки, содержащие имена и пароли для соединения, а также названия серверов (вместо звездочки в приведенном примере)

Протокол CHAP требует обоюдной идентификации - Ваш компьютер проверяет имя и пароль сервера, с которым он соединяется, а сервер, в свою очередь, идентифицирует Вашу машину. Если Ваш компьютер носит имя fred, а удаленный сервер - имя barney, в файле /etc/ppp/options Вашего компьютера нужно добавить строки:

name fred

remotename barney

На компьютере barney - зеркальная картина этого же файла:

name barney

remotename fred

Ваш файл /etc/ppp/chap-secrets:

# Secrets for authentication using CHAP

# client server secret acceptable_local_IP_address

fred barney flinstone

barney fred wilma

И для компьютера barney:

# Secrets for authentication using CHAP

# client server secret acceptable_local_IP_address

barney fred flinstone

fred barney wilma

Это позволит обоим компьютерам благополучно распознать друг друга при установке сетевого соединения.

Игорь Грень, gren@isir.minsk.by
Продолжение следует
- титульная страница


Компьютерная газета. Статья была опубликована в номере 36 за 1998 год в рубрике soft :: unix

©1997-2024 Компьютерная газета