В этой лекции
В предыдущих лекциях мы рассмотрели основные сетевые протоколы, которые применяются для передачи и получения сообщений электронной почты. Все они прекрасно работают, если имеется постоянное сетевое соединение клиента с сервером электронной почты. К сожалению, большинство небольших компаний не могут себе позволить обслуживание узла Internet с выделенным каналом.
Итак, для подключения почтового сервера на базе ОС Linux к сети Internet требуется посредник. Чаще всего в роли такого посредника выступает сервис-провайдер Internet. Как правило, провайдер Internet предлагает определенный набор услуг для подключения небольших сетей к Internet. Один из методов подключения к провайдеру заключается в использовании отдельного маршрутизатора, который подключен к сети компании, и по мере необходимости устанавливает соединение по телефонной линии с провайдером Internet. Такое подключение приемлемо для небольших офисов, которые могут позволить себе отдельный маршрутизатор и поддержку соединения с провайдером Internet. Еще один метод заключается в том, что сервер на базе ОС Linux с помощью стандартного модема дозванивается в сеть провайдера Internet и устанавливает с ним соединение, пригодное для передачи IP-пакетов, по телефонной линии. Тогда сервер электронной почты под управлением ОС Linux сможет передать почту, равно как и другой IP-трафик, через такое соединение. После того как передача почты или другого IP-трафика завершена, почтовый сервер может разорвать соединение. Благодаря этому экономится время, которое затрачивается на поддержку соединения.
Протокол, с помощью которого сервер электронной почты на базе ОС Linux может вести обмен IP-пакетами через модемное соединение, называется протоколом "точка-точка" (Point-to-Point Protocol — PPP). Протокол РРР как метод передачи сетевого трафика между двумя равнозначными точками через полнодуплексное двустороннее соединение описан в документе RFC 1661. После того как пакеты из вашей сети попали к провайдеру, их дальнейшая судьба целиком зависит от сервера РРР провайдера Internet. Другими словами, в обязанности провайдера Internet входит их доставка получателю.
Как правило, в сеансе протокола РРР имеется четыре фазы.
Во время этих четырех фаз в
протоколе РРР используется еще несколько
различных протоколов. Ядром протокола РРР
является протокол передачи кадров, в
который включаются кадры РРР для их
дальнейшей передачи через обычное модемное
соединение. Имеется в виду протокол
высокого уровня управления каналом
передачи данных (High-Level Data Link Control Protocol —
Прежде чем данные будут переданы
по телефонной линии, между двумя
устройствами на концах линии должно быть
установлено соединение. При установке
соединения в РРР используется специальный
протокол — протокол управления
соединением (Link Control Protocol —
Фаза проверки подлинности
официально оговорена в RFC как
необязательная, однако в наши дни
требования к сетевой безопасности
достаточно высоки, и практически ни одно
соединение не обходится без этой фазы. В
настоящее время в РРР поддерживаются два
типа проверки подлинности пользователя —
протокол аутентификации запрос-ответ (Challenge-Handshake
Когда клиент желает завершить
сеанс РРР, то организуется еще один сеанс по
протоколу
С помощью РРР через модемное
соединение можно передавать сетевые пакеты
с одного хоста на другой, который подключен
к сети Internet. Для установления соединения
между модемом, подключенным к серверу на
базе ОС Linux, и модемом провайдера Internet
используется специальный протокол.
Стандартным методом передачи кадров через
последовательное соединение является
протокол
На протяжении многих лет
(рис 8.1) Формат кадра HDLC Формат кадра
Поле Флаг
используется для идентификации начала
кадра 01111110
или, в шестнадцатеричном выражении, 0x7e.
При этом программное обеспечение
В поле Адрес всегда
установлена двоичная величина 11111111
или 0xff в
шестнадцатеричном выражении. Это
широковещательный адрес. Все станции
должны уметь опознавать данные, которые
направлены на этот адрес. Так как в "сети"
Для РРР-пакетов в поле Управление в 00000011 (шестнадцатеричное 0x03 ). Приемной
стороной должны отвергаться кадры с
другими значениями в этом поле.
Так как поля управления и адреса
всегда содержат одни и те же значения, то с
целью экономии полосы пропускания они
часто опускаются. Таким образом, первое
значение после поля флага может
восприниматься либо как начало пакета РРР,
либо как поле Протокол (см.
описание кадра РРР). Именно поэтому в поле Протокол
кадра РРР не могут использоваться величины 0xff
и 0x03, так как это
может ввести в заблуждение принимающую
сторону, которая может "решить", что
получает поля адреса и управления сжатием кадра.
Поле проверочной
последовательности кадра FCS
(Адрес, Управление и данных из
пакета Флаг, а также старт-
и стоп-биты, которые используются в
большинстве модемов.
Поле Флаг в
конце кадра обозначает конец кадра. Если за
данным кадром следуют другие, то это поле
должно опускаться. Одно поле флага
обозначает конец одного кадра и начало
другого, пока в конце не задано поле флага,
которое сигнализирует о конце передачи.
Иногда данные РРР имеют те же
значения, что и поле флага в 01111101
или шестнадцатеричное 0x7d
перед каждым значением данных, которое
соответствует значению флага. Затем
передатчик выполняет логическую операцию
"Исключающее ИЛИ" над данными с величиной 0x20,
чтобы полученная величина не равнялась
значению в поле Флаг.
Конечно, если значение данных равно
значению контрольного октета, то перед ним
также должен быть помещен еще один
контрольный октет с последующим
выполнением операции "Исключающее ИЛИ" с
величиной 0x20.
Когда приемник принимает контрольный октет,
он уже "знает", что необходимо провести
обратное преобразование данных к их
нормальному значению.
Удаленный РРР-хост может автоматически определять запрос на установление соединения от удаленного модема путем проверки первой группы октетов, полученных от клиента. Запрос на установку РРР-соединения может быть идентифицирован одной из трех групп октетов, приведенных в листинге 8.1.
1: 7e ff 03 с0 21 2: 7e ff 7d 23 C0 21 3: 7e 7d df 7d 23 c0 21
В строке 1 листинга 8.1 показан
стандартный кадр 7e ff 03 ) со стандартным полем протокола с0 21 ). В строках 2 и 3 представлены методы
создания прозрачности кадров, после
которых передаются те же кадры. Принимая
любую из этих трех последовательностей по
модемной линии, сервер под управлением ОС
Linux делает вывод о том, что предпринимается
попытка установления РРР-соединения, и
реагирует на нее. Программа mgetty+sendfax
использует этот механизм для
автоматической инициализации сеанса РРР по
входящему звонку на стандартной телефонной
линии. Если ни одна из трех
последовательностей кадров не принята, то
сервер под управлением ОС Linux делает вывод,
что поступающие данные не являются
запросом на организацию сеанса РРР. В роли
таких данных могут выступать попытки
пользователя ввести свое имя или пароль в
обычном терминальном сеансе по модемному
или факс-соединению. Как видите, одну и ту же
модемную линию можно использовать и в
качестве обычного терминала, и для передачи
факсов, и для сеансов РРР. При этом для
работы со всеми перечисленными службами
используется один и тот же телефонный номер.
Кадры РРР помещаются в поля
данных кадра
(рис 8.2) Формат кадра РРРПоле Протокол
может иметь длину в один или два октета; оно
идентифицирует протокол, который
используется в поле Информация.
В табл. 8.1 приведены некоторые значения
поля Протокол, которые
поддерживаются протоколом РРР.
| Значение | Описание |
|---|---|
0001 |
Заполнение пропусками |
0021 |
Протокол IP (Internet Protocol) |
002b |
Протокол Novell IPX |
002d |
Протокол сжатия TCP/IP |
002f |
Протокол TCP без компрессии |
8021 |
Протокол управления IP (IP Control Protocol — |
802b |
Протокол управления Novell IPX |
c021 |
Протокол управления соединением (Link Control Protocol — |
c023 |
Протокол установления подлинности пароля (Password |
c223 |
Протокол аутентификации запрос-ответ (Challenge-Handshake |
Поле Информация содержит
следующий уровень данных протокола.
Обратите внимание на отсутствие поля,
ограничивающего длину РРР-пакета. Такого
рода информацией удаленное устройство
снабжает следующий уровень протоколов.
Для передачи данных через последовательное соединение с помощью РРР должно быть определено несколько протоколов. Каждый протокол выделяется в отдельную фазу, а все фазы вместе и составляют протокол РРР. В фазе установления соединения переговоры между передатчиком и приемником ведутся посредством протокола низкого уровня. После установления соединения клиент может идентифицировать себя для сервера в фазе проверки подлинности (аутентификации). После аутентификации каждый протокол, который будет использоваться для передачи, должен быть оговорен во время фазы согласования сетевых протоколов. В последующих разделах все эти фазы описаны более подробно.
После того как модемное
соединение по протоколу
(рис 8.3) Параметры соединения согласно протоколу LCPПротокол
(рис 8.4) Формат пакета протокола LCPПоле Код
пакета
| Код | Описание |
|---|---|
1 |
Пакет типа Configure-Request |
2 |
Пакет типа Configure-Ack |
3 |
Пакет типа Configure- |
4 |
Пакет типа Configure-Reject |
5 |
Пакет типа Terminate-Request |
6 |
Пакет типа Terminate-Ack |
7 |
Пакет типа Code-Reject |
8 |
Пакет типа Protocol-Reject |
9 |
Пакет типа Echo-Request |
10 |
Пакет типа Echo-Reply |
11 |
Пакет типа Discard-Request |
Поле Идентификатор
имеет длину в один октет и используется для
уникальной идентификации пакета
Поле Длина имеет
длину в два октета. В нем указывается общая
длина пакета Код, Идентификатор, Длина и
поле Данные ). Общая
длина пакета
В поле Данные может
быть столько октетов, сколько определено
полем Длина. В нем
содержатся данные согласно полю Код.
Назначение пакета Код.
Как видно из табл. 8.2, существуют
различные типы пакетов
Пакет Configure-Request
используется для установления РРР-соединения
между двумя устройствами. Параметры
конфигурации, которые клиент хочет
согласовать с удаленным хостом, находятся в
поле данных пакета. Все параметры, для
которых клиент запрашивает значения,
отличные от значений по умолчанию, должны
включаться в этот пакет. Все параметры,
значения которых не отличаются от значений
по умолчанию, в пакет Configure-Request
не включаются. Некоторые параметры Configure-Request
описаны в табл. 8.3.
Пакет Configure-Ack
посылается хостом РРР, если он согласен со
значениями всех параметров, заявленных в
пакете Configure-Request.
Значения всех параметров в этом пакете
должны полностью соответствовать
параметрам, заявленным в пакете Configure-Request.
Если имеется расхождение хотя бы в одном из
параметров, то сервер РРР не выдает пакет Configure-Ack.
Пакет Configure-
используется для сигнализации о том, что по
крайней мере один из параметров, заявленных
в пакете Configure-Request,
не принят сервером РРР. При этом сервер
должен указать, какой именно параметр не
принят, и предложить альтернативное
значение этого параметра в поле Опции
этого пакета.
Пакет Configure-Reject
применяется с целью уведомления клиента о
том, что параметры, указанные в пакете Configure-Request,
либо не опознаны (являются ошибочными), либо
не приняты сервером РРР. Когда клиент
получает пакет типа Configure-Reject,
то он должен сделать вывод о том, что ни один
из предложенных им параметров недоступен
для согласования с сервером РРР.
Пакет Terminate-Request
используется клиентом для завершения
текущего сеанса РРР. Поле данных в таком
пакете может состоять из нулевых байт или
заполняться данными, которые не имеют
значения. Хост РРР должен обнаруживать
пакеты такого типа и реагировать на них
соответствующим образом в течение всего
сеанса РРР.
Пакет Terminate-Ack
используется сервером РРР для уведомления
клиента о том, что его запрос на завершение
сеанса РРР получен. Поле данных этого
пакета может заполняться нулевыми байтами
или другой бессмысленной информацией.
Когда сервер РРР принимает пакет типа Terminate-Request,
он должен ответить на
него пакетом типа Terminate-Ack и инициировать завершение
соединения.
Пакет Code-Request
используется в том случае, когда сервер РРР
получает от клиента пакет РРР с искаженным
значением в поле Код.
Это говорит о том, что версия РРР у клиента
не совпадает с версией РРР на сервере или же
у клиента неправильно установлена
поддержка РРР. После того как сервер послал
пакет такого типа, он немедленно разрывает
РРР-соединение.
Пакет Protocol-Request
применяется, если сервер РРР получает пакет
РРР либо с искаженным значением в поле Протокол,
либо с протоколом, который им не
поддерживается. При этом в поле данных
пакета этого типа включается копия
отвергнутого пакета. Получение такого
пакета клиентом свидетельствует о том, что
указанный протокол не поддерживается
сервером, о чем он сообщает пользователю.
Пакет Echo-Request
применяется для реализации метода обратной
связи в РРР-соединении. Получив пакет Echo-Request,
устройство РРР должно выдать в ответ на
него пакет Echo-Reply.
Довольно часто эта процедура используется
для того, чтобы предотвратить
преждевременное завершение соединения из-за
отсутствия активности. Она может
использоваться также в диагностических
целях. Во время переговоров о параметрах
соединения может быть определен параметр Magic-Number,
который затем можно использовать в данном
пакете для идентификации соединения.
Как уже отмечалось, пакет Echo-Reply
используется в ответ на пакет Echo-Request.
Если для соединения был определен параметр Magic-Number,
то он должен включаться в этот пакет.
Пакет Discard-Request
применяется для тестирования соединения.
Приемное устройство должно немедленно
отбросить пакет Discard-Request.
Никакого ответа на этот пакет приемное
устройство посылать не должно. Пакет типа Discard-Request
также должен содержать параметр Magic-Number, который был определен на стадии
установления соединения.
При обмене пакетами Configure-Request
в течение Configure-Request,
то его значение принимается равным
значению по умолчанию. На рис. 8.5
представлен формат полей параметров в
пакете Configure-Request.
(рис 8.5) Поля параметров пакета LCP типа Configure-RequestПоле Тип
используется для идентификации параметра,
о величине которого ведутся переговоры. В
табл. 8.3 показаны возможные параметры.
| Тип параметра | Описание |
|---|---|
0 |
Зарезервирован |
1 |
Максимальный принимаемый блок (MRU) |
3 |
Протокол аутентификации ( |
4 |
Контроль качества (Quality-Control) |
5 |
Параметр "магическое число" (Magic-Nubmber) |
7 |
Параметр |
8 |
Параметр |
Поле Длина
имеет один октет в длину и определяет длину
полей Параметры.
Основной параметр 1500, что
соответствует размеру пакета в сети Ethernet.
Однако при низкоскоростном соединении
рекомендуется снижать MRU до 296,
благодаря этому снижается вероятность
появления ошибок и, как следствие,
уменьшается количество повторных передач.
Параметр контроля качества (Quality
Control) используется, когда устройства желают
определить качество установленного
соединения. При возрастании количества
ошибок желательно проверить качество
соединения, и если оно не удовлетворяет
определенным нормам, разорвать его. По
умолчанию контроль качества соединения не
производится. В RFC описан лишь один тип
протокола контроля качества — протокол
отчета о состоянии соединения с025. При этом
обе стороны, участвующие в соединении,
должны согласовать использование контроля
качества и его тип, прежде чем начать
наблюдение за состоянием соединения.
Параметр "магическое число" (Magic-Number)
используется для реализации в РРР-соединении
обратной связи. При этом образуется петля и
клиент имитирует РРР-соединение с самим
собой. Когда в пакет Configure-Request
включен параметр Magic-Number,
то получивший его хост РРР сравнивает это
число с параметром Magic-Number
из предыдущего пакета Configure-Request.
Если они совпадают, то, скорее всего, имеет
место соединение типа "петля". После того
как параметр Magic-Number
для сеанса РРР был определен, его можно
употреблять в пакетах Echo-Request
и Echo-Reply с целью
проверки целостности соединения.
Параметр Протокол
состоит из двух октетов. Если оба
устройства РРР согласны использовать
протокол сжатия, то это поле может быть
сокращено на один октет. Если учесть, что во
время сеанса РРР обычно передается
несколько тысяч кадров, то мы получим
значительную экономию полосы пропускания.
Однако следует отметить, что в пакетах Протокол. Кроме
того, проверочная последовательность кадра
FCS должна вычисляться со сжатым, а не с
действительным полем Протокол.
Параметр Адрес
и Управление. При этом
полоса пропускания экономится даже на
низкоскоростных линиях, а объем экономии
больше, чем при сжатии поля Протокол.
Подобно предыдущему параметру, значение
проверочной последовательности кадра FCS
вычисляется без этих полей.
Параметр протокола
аутентификации (с223
для протокола с023
для протокола
В качестве альтернативы проверки
пользователя с помощью текстовой процедуры userid/password были
разработаны два метода аутентификации.
Широкое распространение в реализациях РРР
получил протокол аутентификации
Протокол аутентификации запрос-ответ
Challenge-Handshake
(рис 8.6) Формат пакета протокола CHAPПоле Код
имеет в длину один октет и идентифицирует
тип пакета Код.
| Код | Описание |
1 |
Вызов |
2 |
Ответ |
3 |
Успешная аутентификация |
4 |
Отказ |
Поле Идентификатор
имеет в длину один октет. С помощью этого
поля происходит идентификация пакета
Поле Длина составляет
два октета. Это поле используется для
задания длины пакета Код, Идентификатор, Длина
и Данные.
Поле Данные может
быть нулевой длины или несколько октетов в
длину. В него включаются данные, которые
заданы в поле Код пакета
На рис. 8.7 показан протокол,
подтверждающий установление соединения,
который применяется в
"Success" (Успешная аутентификация), и
сеанс РРР продолжается. В противном
случае хост посылает клиенту пакет "Failure"(Отказ), сеанс РРР прекращается и
формируется Terminate-Request.
(рис 8.7) Фазы подтверждения установления соединения в протоколе CHAPВ протоколе
В отличие от протокола userid/password. Идентификатор пользователя userid
посылается в текстовом виде в формате ASCII.
Пароль может шифроваться, а может
передаваться и в текстовом виде. Это
зависит от возможностей клиента.
После аутентификации клиента продолжается сеанс РРР. При этом в течение сеанса повторная аутентификация не производится. Если клиент не подтвердил свои полномочия соответствующим образом, то сеанс РРР может быть прекращен хостом РРР.
Метод проверки подлинности с
помощью
После установления соединения в
Для поддержки сети IP через РРР
обеими сторонами должен поддерживаться
протокол управления IP. Протокол Протокол
кадра РРР будет установлена величина 8021
(см. табл. 8.1).
Формат кадра Код
пакета 1 и 7
(согласно табл. 8.2). Метод
согласования параметров в Configure-Request.
Если хост согласен с параметрами,
предлагаемыми клиентом, он отвечает
пакетом Configure-Ack, в
противном случает он отвечает пакетом Configure-.
С помощью протокола Configure-Request,
подобный пакету протокола
| Значение параметра | Описание |
|---|---|
1 |
IP-адреса |
2 |
Протокол сжатия IP |
3 |
Удаленный IP-адрес |
Параметр 1
был исключен из новой редакции RFC и в
настоящее время не используется. В его
функции входило назначение IP-адресов
устройствам РРР, которые принимают участие
в сеансе. Однако было экспериментально
доказано, что устройствам довольно трудно
установить взаимно приемлемые IP-адреса.
Поэтому вместо этого параметра был введен
параметр 3.
Параметр 2
используется для согласования метода
сжатия IP-пакетов с целью экономии полосы
пропускания во время сеанса РРР. В
настоящее время поддерживается метод
сжатия заголовков TCP/IP Ван Якобсона (Configure-Request
для включения функции сжатия IP, — 002d.
Параметр 3
используется для назначения IP-адреса
клиентскому устройству РРР. С помощью этого
параметра клиент может выбрать для себя
приемлемый IP-адрес. Если хост РРР по какой-либо
причине не может использовать,
предложенный ему клиентом IP-адрес, то он
может возвратить в пакете Configure-
альтернативный IP-адрес для клиента. По
умолчанию никакой IP-адрес не назначается.
После успешного завершения
переговоров Протокол: 0021 — для
обычных, несжатых IP-пакетов, 002b —
для TCP/IP-пакетов, сжатых по алгоритму Ван
Якобсона, и 002f —
для несжатых TCP-пакетов со сжатыми IP-заголовками
(называемые несжатыми по Ван Якобсону).
Когда клиенту требуется
закончить сеанс РРР, он выдает пакет Terminate-Request
(описание пакетов Terminate-Ack и
разорвать соединение. Причем это не зависит
от текущего состояния активных IP-соединений.
Клиент может завершить сеанс РРР даже при
активном IP-соединении. После того как сеанс
РРР завершен, для открытия нового сеанса
клиент должен выдать соответствующие
пакеты
Операционная система Linux поддерживает протокол РРР, разбивая его функции на две части. Первая часть поддерживается на уровне ядра Linux, а вторая часть протокола РРР реализуется в прикладной программе для ОС Linux.
Функции РРР, которые необходимы
для передачи пакетов
Определить, включена ли в ядре вашей системы поддержка РРР, можно, наблюдая за сообщениями во время загрузки системы. Если во время загрузки появляется строка о поддержке РРР в ядре (или таковая имеется в файле отчета), то в ядре сконфигурирована поддержка РРР. В противном случае обратитесь к документации на имеющуюся версию ОС Linux или к документам PPP-HOWTO, если вы хотите добавить в систему поддержку протокола РРР.
Как уже отмечалось ранее, вторая
часть айсберга РРР — это программа,
которая управляет РРР-соединениями на
сервере. Стандартом де факто для систем на
базе ОС Linux стал программный пакет ,
написанный Элом Лонгейром (Al Longyear), Полом
Макеррасом (Paul Mackerras) и Майклом Калагеном
(Michael Callahan). В большинство дистрибутивов ОС
Linux включен бинарный пакет этой программы. В
Red Hat 6.0 включена версия ppp-2.3.7,
а в Caldera OpenLinux 2.2 входит ppp-2.3.5.
Пакет можно
получить по FTP с сайта cs.anu.edu.au
в каталоге /pub/software/ppp.
Текущей версией на момент написания книги
была ppp-2.3.10. Так
как данный программный пакет сильно
зависит от конфигурации ядра, настоятельно
рекомендуем вам использовать версию РРР,
которая поставляется с версией имеющегося
ядра ОС Linux. Однако если вы любите
приключения или имеете веские причины
использовать именно последнюю версию РРР,
то можно получить ее исходный код, а затем
скомпилировать и установить ее
самостоятельно. Текущую версию можно получить в сети Internet по адресу:
ftp://cs.anu.edu.au/pub/software/ppp/ppp-2.3.10.tar.gz.
После получения файла извлеките его из
архива tar. Далее
выполните следующие шаги.
./configure
в рабочем каталоге ppp-2.3.5.
С ее помощью создается Makefile
для специфической версии ОС Linux.make
с параметром kernel ( make kernel ). Таким
образом создаются файлы include
для вашей версии Linux с необходимыми
частями ядра для поддержки pppd .pppd
(обратитесь к документации на
имеющуюся версию ОС Linux, чтобы исключить
любые неожиданности).make
для компиляции программы pppd .root
запустите программу GNU make
с параметром install
для создания выполняемых модулей и
помещения их в соответствующие каталоги.После установки
(либо с использованием бинарного пакета из
поставки ОС Linux, либо компиляцией исходного
кода) можно сконфигурировать
для работы в качестве клиента или сервера
РРР.
Программа может быть сконфигурирована для
работы в качестве клиента РРР. Таким
образом, можно реализовать подключение
локального сервера электронной почты на
базе ОС Linux с провайдером Internet, у которого
находится хост РРР, с целью организации IP-соединения
для передачи почты и другого IP-трафика. Для
поддержки функций клиента РРР для ОС Linux
имеются и другие программы. Ниже мы
рассмотрим некоторые из них.
Для использования
в клиентском режиме необходимо
настроить несколько параметров, которые
отвечают за подключение и установление
соединения с сервером РРР. Формат команды
следующий:
pppd <tty line> <speed> [options]
Здесь в роли <tty line> выступает последовательный СОМ-порт,
к которому подключается модем (см. лекцию 3 "Установка
телекоммуникационного оборудования в ОС
Linux"). Параметр <speed> обозначает
скорость соединения модема с портом
компьютера. Искусство применения программы
заключается в подборе правильных
параметров для команд, отдаваемых клиенту и
серверу. Далее в этом разделе описываются
некоторые параметры для выполнения функций клиента РРР.
С помощью параметра connect
в программе можно
использовать выполняемый сценарий
оболочки для установки последовательных
соединений перед началом работы программы .
Параметр crtscts
используется для включения аппаратного
управления потоком RTS/CTS на
последовательной линии.
Параметром defaultroute
в таблице маршрутов задается маршрут по
умолчанию, указывающий на IP-адрес
удаленного сервера РРР. Запись в таблице
маршрутов автоматически удаляется после
прекращения сеанса РРР. Таким образом, Linux-серверу
всегда будет известно, куда направлять IP-трафик,
предназначенный для других сетей.
Параметр lock
используется для создания специального
файла в стиле UUCP для сигнализации о том, что
модем занят.
Параметры mru
и mtu позволяют
регулировать максимальную величину
принимаемого блока ( mru )
и максимальную величину передаваемого
блока ( mtu ) во время
С помощью параметра modem
ОС Linux может использовать линии управления
модемом. Так, если этот параметр задан,
программа
будет ожидать появления сигнала несущей CD
(
Программа chat
является частью дистрибутива
и используется для упрощения строк при
установлении соединения программой .
Для установления соединения с сервером РРР
программой chat
используется простой файл сценария. В
сценарии chat
используются текстовые строки, которые
посылаются в ответ на текстовые строки,
принятые от сервера. Далее chat
приводит в соответствие текстовые строки в
сеансе — один ответ на одну принятую
строку. В листинге 8.2 показан пример
сценария chat,
который используется с .
1 "" 2 ATDT5551234 3 CONNECT 4 "" 5 "ogin:" 6 rich 7 "word:" 8 guitar 9 "rich]$" 10 "exec /usr/sbin/pppd silent modem crtscts proxyarp 10.0.0.100:10.0.0.2"
В строке 2 листинга 8.2 показана
команда, которую посылает на модем
для звонка провайдеру Internet. В строке 3
указывается, какую строку текста должна
ожидать для
инициализации установления соединения с
РРР-сервером. Строка 4 сигнализирует о том,
что программа chat
принимает отклик модема об установлении
соединения, на что она должна ответить
обычной пустой строкой с символом возврата
каретки. В строке 5 указывается, какую
строку следует далее ожидать от сервера.
Если на сервере разрешена регистрация
модемного терминала, то он должен выдать
соответствующую строку-приглашение login.
В строке 6 программа
посылает идентификатор пользователя на
сервер РРР, а в строке 8 — пароль. Получив
доступ к командной строке сервера (см.
строку 9),
запускает программу
для поддержки хоста РРР. Более детально
параметры обсуждаются в разделе "Реализация
сервера РРР в ОС Linux" далее в этой лекции.
Сценарий chat
может использоваться клиентом
для дозвона на сервер РРР, где запускается
программа .
Параметр
вызывает сценарий chat
с использованием следующего формата:
pppd ttyS1 38400 connect '/usr/sbin/chat -v -f /home/rich/isp.chat'\modem crtscts defaultroute
Параметр connect вызывает сценарий chat
для подключения к серверу РРР.
Приведенная выше командная строка
автоматически вызывает сервер РРР и
запускает программу
на сервере. Параметр -v
используется в программе для
детализации вывода в файле отчета /var/log/messages.
Его можно использовать при отладке и
настройке соединения и не задавать, когда
соединение работает нормально. В листинге
8.3 представлены строки, которые программы chat
и помещают
в файл отчетов в течение сеанса РРР.
Sep 22 86 56 56 shadrach pppd[663] pppd 2.3.5 started by root, uid 0 Sep 22 06 56 56 shadrach kernel: registered device ppp0 Sep 22 06 56 57 shadrach chat[664]: send (ATZS7=100^M) Sep 22 06 56 57 shadrach chat[664]: expect (OK) Sep 22 06 56 57 shadrach chat[664]: ATZS7=100^M^M Sep 22 06 56 57 shadrach chat[664]: OK Sep 22 06 56 57 shadrach chat[664]: -- got it Sep 22 06 56 57 shadrach chat[664]: sehd (ATDT5551234^M) Sep 22 06 56 58 shadrach chat[664]: expect (CONNECT) Sep 22 06 56 58 shadrach chat[664]: ^M Sep 22 06 57 18 shadrach chat[664]: ATDT5551234^M^M Sep 22 06 57 18 shadrach chat[664]: CONNECT Sep 22 06 57 18 shadrach chat[664]: -- got it Sep 22 06 57 18 shadrach chat[664]: send (^M) Sep 22 06 57 18 shadrach chat[664]: expect (ogin:) Sep 22 06 57 18 shadrach chat[664]: 28800/V42BIS^M Sep 22 06 57 19 shadrach chat[664]: ^M Sep 22 06 57 19 shadrach chat[664]: ^MRed Hat Linux release 5.2 (Apollo) Sep 22 06 57 19 shadrach chat[664]: ^MKerhel 2.0.36 on an 1486 Sep 22 06 57 19 shadrach chat[664]: ^M Sep 22 06 57 19 shadrach chat[664]: ^M^M Sep 22 06 57 19 shadrach chat[664]: mail1.isp.net login: Sep 22 06 57 19 shadrach chat[664]: --got it Sep 22 06 57 19 shadrach chat[664]: send (rich^M) Sep 22 06 57 19 shadrach chat[664]: expect (word:) Sep 22 06 57 19 shadrach chat[664]: rich^M Sep 22 06 57 19 shadrach chat[664]: Password: Sep 22 06 57 19 shadrach chat[664]: -- got it Sep 22 06 57 19 shadrach chat[664]: send (guitar^M) Sep 22 06 57 20 shadrach chat[664]: expect (rich]$) Sep 22 06 57 20 shadrach chat[664]: ^M Sep 22 06 57 20 shadrach chat[664]: Last login: Tue Sep 21 20:45:47^M Sep 22 06 57 21 shadrach chat[664]: [rich@mail1 rich]$ Sep 22 06 57 21 shadrach chat[664]: -- got it Sep 22 06 57 21 shadrach chat[664]: send (exec /usr/sbih/pppd passive silent modem crtscts^M) Sep 22 06 57 22 shadrach pppd[663]: Serial connection established. Sep 22 06 57 23 shadrach pppd[663]: Using interface ppp0 Sep 22 06 57 23 shadrach pppd[663]: Connect: ppp0 <--> /dev/ttyS1 Sep 22 06 57 27 shadrach pppd[663]: local IP address 10.0.0.100 Sep 22 06 57 27 shadrach pppd[663]: remote IP address 10.0.0.2
Как видите, с помощью сценария chat
и команд клиента
организуется сеанс РРР с сервером. Все эти
процедуры можно поместить в файл сценария,
с помощью которого по мере необходимости
можно запускать сеанс РРР. Однако при
использовании такого метода организации
РРР-соединения требуется наличие какого-либо
события, которое запускает сценарий. В
качестве такого события может
использоваться процесс cron,
с помощью которого запускается сценарий
РРР, когда требуется забрать или отправить
почту. Ниже приведена программа, с помощью
которой можно запускать клиента РРР по мере
надобности.
Теперь, имея отлаженный сценарий chat
и получив
возможность звонить на сервер РРР и
устанавливать соединение с ним, вы,
возможно, захотите автоматизировать этот
процесс. Если локальный сервер электронной
почты на базе ОС Linux непосредственно
подключается к провайдеру Internet, то
необходимо разработать график частоты его
подключений для обмена электронной почтой
с сервером провайдера Internet (см. лекцию 13, "Подключение
почтового сервера к провайдеру Internet"). Один
из методов — использование IP-маршрутизации
по запросу. Под этим подразумевается, что
соединение РРР устанавливается
автоматически, как только обнаруживаются
данные, которые направлены вне локальной
сети (в сеть провайдера Internet).
Прекрасным средством для
осуществления маршрутизации по запросу
является программа diald,
написанная Эриком Сченком (Eric Schenk). Как
правило, в большинство версий ОС Linux входит
бинарный пакет diald,
уже готовый к установке. Если в имеющейся
версии Linux эта программа отсутствует, ее
можно получить в сети Internet на Web-сайте: http://diald.unix.ch.
Формат запуска программы diald
следующий:
/usr/sbin/diald [device1....] [options...] [-- [pppd options]]
Здесь device — строка
в ОС Linux для устройства tty,
к которому подключается модем, options — параметры программы diald, а —
параметры, которые diald
передает программе ,
когда вызывает ее. Параметры diald
можно также задавать с помощью файла
конфигурации.
Файл конфигурации для программы diald применяется для установки
параметров, используемых ею при вызове
программ и chat,
а также для задания списка сценариев,
которые будут выполняться для старта и
останова . Файл
конфигурации находится в каталоге /etc
и называется diald.conf.
В листинге 8.4 приведен пример файла diald.conf,
который заменяет параметры ,
приведенные ранее в примере.
1 ### 2 # /etc/diald.conf - diald configuration 3 # 4 # see /usr/lib/diald for sample config files 5 # 6 mode ppp 7 connect '/usr/sbin/chat -f /home/rich/isp.chat -t 35000' 8 connect-timeout 180 9 device /dev/ttyS1 10 speed 115200 11 modem 12 lock 13 crtscts 14 local 10.0.0.100 15 remote 10.0.0.2 16 defaultroute 17 include /usr/lib/diald/standard.filter 18 fifo /etc/diald/diald.ctl
В строке 7 листинга 8.4 задан
параметр connect,
который вызывает программу chat
с помощью сценария chat,
использованного в примере с .
Строка 8 предусматривает, что модем хоста
РРР находится в режиме ответа на четвертый
звонок (так что это не будет мешать вашим
родным и друзьям, если они звонят по той же
телефонной линии). Таким образом, задается
интервал времени для выполнения сценария chat. В нашем случае это три минуты (180
секунд). В строке 17 программа diald
обращается к файлу standard.filter,
который используется diald
для описания условий запуска и останова
сеанса РРР. В строке 18 указывается на
специальный файл, который используется
сопутствующей программой dctrl
для мониторинга сеанса РРР. Программа dctrl —
это графический пакет для мониторинга РРР-соединения.
Он позволяет оценить пропускную
способность соединения, а также немедленно
сигнализирует о любых ошибках в течение
сеанса РРР.
После конфигурирования
параметров diald можно
произвести их тестирование. Программа diald
запускается в фоновом режиме и
запускать ее нужно с правами пользователя root.
Когда diald обнаруживает
в сети условия, которые требуют соединения
с сервером РРР, она запускает программу chat.
Та, в свою очередь, организует сеанс с
сервером РРР и запускает программу
на локальном компьютере. Когда работа diald отлажена, можно написать для нее
fetchmail ),
будет запускаться diald
и открывать сеанс РРР. Великолепно!
Если в системе Linux используется
kppp.
Эта программа представляет собой
графическую оболочку, с помощью которой
можно сконфигурировать и в дальнейшем
запускать программу .
На рис. 8.8 показано основное окно, которое
появляется при запуске kppp.
(рис 8.8) Основное окно программы kpppВ основном окне предоставляется
возможность выбора хоста РРР и запуска
после ввода пароля и щелчка на кнопке Соединение (Connect). Щелчок на кнопке Установка (Setup) в основном окне вызывает окно Конфигурация kppp (kppp Configuration). На вкладке Учетные записи (Accounts)
окна Конфигурация kppp (kppp Configuration) можно сконфигурировать
несколько пользователей. На рис. 8.9
показан внешний вид вкладки Учетные записи.
(рис 8.9) Закладка вкладке Учетные записи в программе kpppИндивидуально параметры каждой учетной записи можно задать, щелкнув на кнопке Новая (New) — рис. 8.10.
(рис 8.10) Окно для настройки параметров учетной записи пользователя в программе kpppСвойства нового пользователя можно отредактировать в окне Редактирование учетной записи (Edit Account). Здесь же можно задать телефонный номер для дозвона и метод проверки подлинности, который будет использоваться во время сеанса РРР.
Доступные методы проверки
подлинности включают аутентификацию с
помощью протокола chat
и терминального сеанса, где необходимо
вручную зарегистрироваться на сервере и
выполнить команду
на удаленном сервере. С помощью закладки IP
можно задать способ получения IP-адреса:
динамически — от хоста РРР или
статически — вручную. Точно так же можно
задать способ получения клиентом РРР IP-адресов
DNS и маршрутизатора на вкладках DNS
и Шлюз (Gateway):
динамически — от хоста РРР или
статически — вручную.
На рис. 8.11 показаны установки kppp,
которые находятся на вкладке Устройство (Device). С ее помощью можно задавать
настройки модема, который будет
использоваться для дозвона до провайдера
Internet. В их число входит аппаратное
управление потоком и метод сброса линии.
Флаг Использовать lock-файл (Use Lock File) позволяет использовать
параметр
для создания специальных файлов в стиле UUCP.
Тогда другие процессы не будут пытаться
использовать модем, когда он занят в сеансе
РРР.
(рис 8.11) Конфигурационная вкладка kppp Устройство (Device)На рис. 8.12 представлена вкладка Модем (Modem) для установки параметров модема. Воспользовавшись кнопкой Команды модема (Modem Commands), можно добавить строку инициализации модема перед установкой соединения. С помощью кнопки Опрос модема (Query Modem) осуществляется считывание текущих настроек модема. После щелчка на этой кнопке будут выводиться одновременно восемь параметров модема. А кнопка Терминал (Terminal) может пригодиться при создании сценариев дозвона. При щелчке на нее вызывается мини-терминал, с помощью которого вы можете общаться с модемом напрямую и выполнять дозвон на сервер РРР. Работа с терминалом весьма эффективна, когда требуется проследить ответы сервера, например, при отладке сценария дозвона.
(рис 8.12) Вкладка kppp МодемПосле того как настройка всех
параметров завершена, установление
соединения представляет собой процесс
дозвона до провайдера Internet и регистрацию у
него на сервере с соответствующими именем
пользователя и паролем. После этого
требуется лишь щелкнуть на кнопке Соединить (Connect). Программа kppp
будет автоматически запускать
с параметрами, которые были ранее заданы
для данного бюджета пользователя. Для
бюджетов пользователя также имеется
полезная опция, с помощью которой можно
получать подробный отчет о работе РРР за
месяц.
Программа , которая используется в качестве
клиента РРР, может работать и в режиме
сервера РРР. Обратите внимание на строку 10 в
листинге 8.2. В этой строке клиент запустил
на сервере РРР с целью открытия сеанса РРР.
Кроме возможности запуска вручную, для ОС
Linux были разработаны специальные программы
для автоматического запуска
при обнаружении на входной линии запроса на
открытие сеанса РРР. В этом разделе также
рассматриваются преимущества совместного
использования программ
и mgetty+sendfax.
С помощью определенных
параметров программа
может выполнять функции сервера РРР.
Несмотря на то что протокол РРР
рассматривает обе стороны, участвующие в
соединении, как равноправные, одна из
сторон всегда выступает в роли сервера и
ожидает запросов на установление
соединения от клиентов. Некоторые из
параметров, используемые сервером РРР,
описаны в последующих разделах.
Параметры passive
и silent
используются программой для ожидания пакета Configure-Request
с целью инициализации сеанса РРР.
Параметр proxyarp
применяется для предоставления хост-комьютеру
РРР возможности обрабатывать ARP-запросы в
локальной сети от имени клиента РРР. Таким
образом, другие компьютеры могут
подключаться к клиенту РРР.
Предупреждение
С помощью параметра proxyarp другие компьютеры могут
подключаться к РРР-клиенту. Например, когда
ваш сервер на базе ОС Linux устанавливает РРР-соединение
с провайдером Internet, он становится сетевым
устройством в сети провайдера и вполне
может быть подвержен атакам извне, как и
любое другое устройство, напрямую
подключенное к сети. Мы настоятельно
рекомендуем использовать программное
обеспечение для организации брандмауэра ( firewall )
с целью контроля доступа удаленных
клиентов на ваш сервер. Особенно следует
быть внимательным, если не применяется
никаких мер безопасности при установке РРР-соединения.
Внимательно анализируйте файлы отчетов
системы на предмет попыток
несанкционированного доступа.
С помощью параметра Local_IP:Remote_IP
программой могут назначаться IP-адреса для
удаленных устройств. При этом Local_IP — это адрес хоста РРР, а Remote_IP —
адрес удаленного клиента.
Параметры ,
которые задаются при запуске из командной
строки, также можно заносить в
конфигурационные файлы. По умолчанию
программа
проверяет файл /etc/ppp/options
и запускается с параметрами, которые в нем
заданы. Еще одно полезное свойство
состоит в том, что она может устанавливать
параметры в зависимости от используемого
устройства tty.
Благодаря этому для каждого устройства tty
(порта) можно задать специфические
параметры, например IP-адрес удаленной
стороны. Тогда, если задействованы линии ttyS0, ttyS1 и ttyS2, для
каждой из них можно задать свой набор
параметров в файлах /etc/ppp/options.ttyS0, /etc/ppp/options.ttyS1 и /etc/ppp/options.ttyS2.
При этом в каждом файле параметров будут
указаны различные пары адресов Local_IP:Remote_IP,
т.е. исключается возможность получения
несколькими клиентами РРР одинакового IP-адреса.
Если необходимо, чтобы сервер на
базе ОС Linux выступал в качестве сервера РРР
и принимал от клиентов запросы на
установление соединений, то лучше всего для
этой цели подходит программа mgetty+sendfax,
написанная Гертом Доерингом (Gert Doering).
Бинарный пакет этой программы, уже готовый
к установке, входит в большинство версий ОС
Linux. Если по какой-либо причине он
отсутствует в вашей версии Linux, можно
получить его с сервера sunsite.unc.edu
в каталоге /pub/Linux/system/serial.
Как правило, в ОС Linux для
обработки входящих соединений
используется программа getty.
Обнаружив попытку соединения на линии, она
использует для аутентификации
пользователя процедуру login,
для которой требуется идентификатор
пользователя и пароль. В состав mgetty+sendfax
входит новая программа mgetty,
которая заменяет старую программу getty
для работы с последовательными линиями. Эта
программа обладает большей гибкостью, чем getty,
так как она способна автоматически
определять тип входного звонка с помощью
lock-файлов.
Для управления работой mgetty
используются как параметры командной
строки, так и конфигурационные файлы. В ОС
Linux все указания этой программе, касающиеся
взаимодействия с другими программами и
обслуживания последовательных соединений,
задаются в файле /etc/inittab.
Каждое устройство tty
на сервере под управлением ОС Linux имеет в
этом файле свою строку конфигурации. Строка
в файле inittab, с
помощью которой mgetty
управляет последовательной линией,
выглядит примерно так:
#Set serial line for modem s1:12345:respawn:/sbin/mgetty -D -s 38400 -n 4 ttyS0
Знаки двоеточия используются
здесь для разделения параметров. Первый
параметр — уникальный идентификатор
init,
на котором терминал будет активен. Как
видите, для данной линии терминал будет
активен для всех уровней init.
Третий параметр обуславливает реакцию
процесса init на
активность в линии. Ключевое слово respawn
указывает, что программу можно запускать на
указанном уровне запуска и перезапускать
ее снова после завершения работы. Таким
образом, после отключения клиента модемная
линия снова будет готова к приему нового
соединения. Четвертым параметром является
программа, которую init
запускает для управления терминальной
линией. Формат команды на запуск mgetty
следующий:
mgetty [options] ttydevice
Под параметрами [options]
подразумеваются параметры для
управления модемной линией, а ttydevice —
устройством tty в
ОС Linux, которым будет управлять mgetty.
В табл. 8.6 представлены все параметры mgetty.
| Параметр | Описание |
|---|---|
-x LEVEL |
Устанавливает
уровень отладки в LEVEL |
-s SPEED |
Устанавливает
скорость в линии равной SPEED |
-a |
Автоматическое определение скорости модема |
-k SPACE |
Устанавливает
размер (в килобайтах) каталога входного
буфера для факса равным SPACE |
-m 'EXPECT
SEND' |
Определяет сценарий для инициализации модема |
-r |
Сигнализирует об использовании прямой линии |
-p
LOGIN_PROMPT |
Определяет оболочку для входа в систему по модемной линии |
-n RINGS |
Устанавливает
число звонков, после которых mgetty должна ответить
удаленному модему |
-D |
Переводит модем в режим работы с данными |
-F |
Переводит модем в режим факса |
-R SEC |
Разрешает процедуру обратного дозвона |
-i 'issue' |
Определяет, какой файл выдать при установлении соединения |
-S 'FAX |
Определяет, какой документ по умолчанию высылать по запросу с удаленного факса |
Как показано в примере inittab,
модем переведен в режим передачи данных (т.е.
в режим модема) с фиксированной скоростью
38400 бит/с. Кроме того, модем будет отвечать
на звонок только после четвертого звонка.
Однако есть одно свойство mgetty,
которое может привести вас в
замешательство. Дело в том, что mgetty
не поддерживает для модема режим
автоответа. Она лишь анализирует служебные
сообщения, получаемые от модема. Приняв
нужное количество строк RING
(в зависимости от параметра -n ),
она выдает на модем команду на поднятие
трубки . Таким
образом, модем не сможет ответить на
входной звонок, если программа mgetty
заблокирована. Вероятно, вам знакома
ситуация, когда модем на сервере отвечал на
входной звонок, но при этом приглашение
системы login не
выдавалось.
Для управления работой mgetty,
кроме параметров командной строки, можно
использовать и конфигурационные файлы. Для
указания программ, которым mgetty должна передать управление после
установления соединения, используется файл /etc/mgetty+sendfax/login.conf.
Как уже отмечалось ранее, обычно управление
в терминальном сеансе передается процедуре
регистрации в системе login.
Точно так же mgetty
умеет автоматически определять, что новое
соединение является соединением РРР, и
передавать дальнейшее управление им
программе .
Строка в файле /etc/mgetty+sendfax/login.conf,
с помощью которой передается управление,
выглядит так:
/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login modem \ crtscts lock proxyarp
Все данные в строке AutoPPP
чувствительны к регистру букв, так что
будьте осторожны. Далее mgetty передает управление РРР-соединением
программе с
параметрами, которые приведены выше в
строке AutoPPP. Все
они будут добавлены к параметрам, заданным
в конфигурационных файлах .
Кстати, очень важным для клиентов РРР на
базе ОС Windows, которые открывают соединение с
сервером, является параметр +.
Об этом более подробно читайте в лекции 16, "Поддержка
удаленных клиентов".
После того как информация о mgetty добавлена в файл /etc/inittab,
нужно чтобы она возымела действие. Для
этого в ОС Linux следует задать команду telinit
Q (или KILL HUP 1 ),
чтобы процесс init
перечитал файл inittab.
Следует отметить, что программа mgetty
ведет собственные файлы отчетов в каталоге /var/log.
Каждая модемная линия имеет свой файл
отчета с именем mgetty.log + номер устройства tty.
Пример сеанса работы mgetty
приведен ниже в листинге файла отчета.
1 09/19 06 43 56 yS0 mgetty: experimental test release 1.1.14-Apr02 2 09/19 06 43 56 yS0 check for lockfiles 3 09/19 06 43 56 yS0 locking the line 4 09/19 06 43 56 yS0 lowering DTR to reset Modem 5 09/19 06 43 57 yS0 send: \dATQ0V1H0[0d] 6 09/19 06 43 57 yS0 waiting for ``OK'' ** found ** 7 09/19 06 43 58 yS0 send: ATS0=0Q0D3C1[0d] 8 09/19 06 43 58 yS0 waiting for ``OK'' ** found ** 9 09/19 06 43 58 yS0 waiting... 10 09/19 06 45 23 yS0 waiting for ``RING'' ** found ** 11 09/19 06 45 23 yS0 waiting for ``RING'' ** found ** 12 09/19 06 45 29 yS0 waiting for ``RING'' ** found ** 13 09/19 36 45 35 yS0 waiting for ``RING'' ** found ** 14 09/19 06 45 59 yS0 send: ATA[0d] 15 09/19 06 45 59 yS0 waiting for ``CONNECT'' ** found ** 16 09/19 06 46 13 yS0 send: 17 09/19 06 46 13 yS0 waiting for ``_'' ** found ** 18 09/19 06 46 16 ##### data dev=ttyS0, pid=2766, caller='none', conn='38400/ARQ/28800 LAP-M', name='', cmd= '/usr/sbin/pppd' , user='/Autoppp/'
Как видно из данного листинга, в
строках 1–9 mgetty
инициализирует модем для использования с
устройством ttyS0 (порт
COM1). В строках 10–14 mgetty
принимает от модема служебное слово RING,
которое сигнализирует о получении модемом
входного звонка. Как видим, после
четвертого звонка mgetty
выдает модему команду ,
что означает "поднять трубку". Далее, в
строке 18, mgetty
определяет, что соединение является
запросом на установление РРР-соединения, и
запускает программу
с помощью команды /usr/sbin/.
Итак, протокол типа "точка-точка"
(Point-to-Point Protocol (PPP)) служит для передачи
сетевого трафика между двумя устройствами
через модемное соединение. Для сервера
электронной почты на базе ОС Linux это
означает, что для установления соединения с
провайдером сети Internet и получения IP-соединения
требуется стандартный модем для
асинхронных линий, который подключается к
последовательному СОМ-порту ПК. С помощью
такого соединения почтовый сервер может
обмениваться электронной почтой с внешним
миром (сетью Internet). Протокол РРР
поддерживается в ОС Linux посредством
программы . Она
разработана специально для работы с
протоколом РРР и может выполнять как
функции сервера РРР при обслуживании
входящих соединений, так и клиента РРР для
запроса на установление таких соединений.
Сопутствующей
программой является программа chat.
С ее помощью сервер на базе ОС Linux может
общаться с модемом для установления
соединения с провайдером Internet по
телефонной линии и организации сеанса РРР с
сервером провайдера. С целью более полной
автоматизации установления РРР-соединений
можно использовать программу diald.
При наличии в сети IP-трафика, который
адресован в Internet, она автоматически
устанавливает РРР-соединение с провайдером.
Для реализации функций сервера РРР можно
использовать программу mgetty+sendfax,
с помощью которой, при наличии входных
запросов, автоматически запускается
программа и
открываются сеансы РРР для клиентов. Она
весьма успешно работает с клиентами РРР,
которые используют операционные системы
Windows 95, 98 и NT.
В этой лекции
В предыдущих лекциях мы рассмотрели основные сетевые протоколы, которые применяются для передачи и получения сообщений электронной почты. Все они прекрасно работают, если имеется постоянное сетевое соединение клиента с сервером электронной почты. К сожалению, большинство небольших компаний не могут себе позволить обслуживание узла Internet с выделенным каналом.
Итак, для подключения почтового сервера на базе ОС Linux к сети Internet требуется посредник. Чаще всего в роли такого посредника выступает сервис-провайдер Internet. Как правило, провайдер Internet предлагает определенный набор услуг для подключения небольших сетей к Internet. Один из методов подключения к провайдеру заключается в использовании отдельного маршрутизатора, который подключен к сети компании, и по мере необходимости устанавливает соединение по телефонной линии с провайдером Internet. Такое подключение приемлемо для небольших офисов, которые могут позволить себе отдельный маршрутизатор и поддержку соединения с провайдером Internet. Еще один метод заключается в том, что сервер на базе ОС Linux с помощью стандартного модема дозванивается в сеть провайдера Internet и устанавливает с ним соединение, пригодное для передачи IP-пакетов, по телефонной линии. Тогда сервер электронной почты под управлением ОС Linux сможет передать почту, равно как и другой IP-трафик, через такое соединение. После того как передача почты или другого IP-трафика завершена, почтовый сервер может разорвать соединение. Благодаря этому экономится время, которое затрачивается на поддержку соединения.
Протокол, с помощью которого сервер электронной почты на базе ОС Linux может вести обмен IP-пакетами через модемное соединение, называется протоколом "точка-точка" (Point-to-Point Protocol — PPP). Протокол РРР как метод передачи сетевого трафика между двумя равнозначными точками через полнодуплексное двустороннее соединение описан в документе RFC 1661. После того как пакеты из вашей сети попали к провайдеру, их дальнейшая судьба целиком зависит от сервера РРР провайдера Internet. Другими словами, в обязанности провайдера Internet входит их доставка получателю.
Как правило, в сеансе протокола РРР имеется четыре фазы.
Во время этих четырех фаз в
протоколе РРР используется еще несколько
различных протоколов. Ядром протокола РРР
является протокол передачи кадров, в
который включаются кадры РРР для их
дальнейшей передачи через обычное модемное
соединение. Имеется в виду протокол
высокого уровня управления каналом
передачи данных (High-Level Data Link Control Protocol —
Прежде чем данные будут переданы
по телефонной линии, между двумя
устройствами на концах линии должно быть
установлено соединение. При установке
соединения в РРР используется специальный
протокол — протокол управления
соединением (Link Control Protocol —
Фаза проверки подлинности
официально оговорена в RFC как
необязательная, однако в наши дни
требования к сетевой безопасности
достаточно высоки, и практически ни одно
соединение не обходится без этой фазы. В
настоящее время в РРР поддерживаются два
типа проверки подлинности пользователя —
протокол аутентификации запрос-ответ (Challenge-Handshake
Когда клиент желает завершить
сеанс РРР, то организуется еще один сеанс по
протоколу
С помощью РРР через модемное
соединение можно передавать сетевые пакеты
с одного хоста на другой, который подключен
к сети Internet. Для установления соединения
между модемом, подключенным к серверу на
базе ОС Linux, и модемом провайдера Internet
используется специальный протокол.
Стандартным методом передачи кадров через
последовательное соединение является
протокол
На протяжении многих лет
(рис 8.1) Формат кадра HDLCФормат кадра
Поле Флаг
используется для идентификации начала
кадра 01111110
или, в шестнадцатеричном выражении, 0x7e.
При этом программное обеспечение
В поле Адрес всегда
установлена двоичная величина 11111111
или 0xff в
шестнадцатеричном выражении. Это
широковещательный адрес. Все станции
должны уметь опознавать данные, которые
направлены на этот адрес. Так как в "сети"
Для РРР-пакетов в поле Управление в 00000011 (шестнадцатеричное 0x03 ). Приемной
стороной должны отвергаться кадры с
другими значениями в этом поле.
Так как поля управления и адреса
всегда содержат одни и те же значения, то с
целью экономии полосы пропускания они
часто опускаются. Таким образом, первое
значение после поля флага может
восприниматься либо как начало пакета РРР,
либо как поле Протокол (см.
описание кадра РРР). Именно поэтому в поле Протокол
кадра РРР не могут использоваться величины 0xff
и 0x03, так как это
может ввести в заблуждение принимающую
сторону, которая может "решить", что
получает поля адреса и управления сжатием кадра.
Поле проверочной
последовательности кадра FCS
(Адрес, Управление и данных из
пакета Флаг, а также старт-
и стоп-биты, которые используются в
большинстве модемов.
Поле Флаг в
конце кадра обозначает конец кадра. Если за
данным кадром следуют другие, то это поле
должно опускаться. Одно поле флага
обозначает конец одного кадра и начало
другого, пока в конце не задано поле флага,
которое сигнализирует о конце передачи.
Иногда данные РРР имеют те же
значения, что и поле флага в 01111101
или шестнадцатеричное 0x7d
перед каждым значением данных, которое
соответствует значению флага. Затем
передатчик выполняет логическую операцию
"Исключающее ИЛИ" над данными с величиной 0x20,
чтобы полученная величина не равнялась
значению в поле Флаг.
Конечно, если значение данных равно
значению контрольного октета, то перед ним
также должен быть помещен еще один
контрольный октет с последующим
выполнением операции "Исключающее ИЛИ" с
величиной 0x20.
Когда приемник принимает контрольный октет,
он уже "знает", что необходимо провести
обратное преобразование данных к их
нормальному значению.
Удаленный РРР-хост может автоматически определять запрос на установление соединения от удаленного модема путем проверки первой группы октетов, полученных от клиента. Запрос на установку РРР-соединения может быть идентифицирован одной из трех групп октетов, приведенных в листинге 8.1.
1: 7e ff 03 с0 21 2: 7e ff 7d 23 C0 21 3: 7e 7d df 7d 23 c0 21
В строке 1 листинга 8.1 показан
стандартный кадр 7e ff 03 ) со стандартным полем протокола с0 21 ). В строках 2 и 3 представлены методы
создания прозрачности кадров, после
которых передаются те же кадры. Принимая
любую из этих трех последовательностей по
модемной линии, сервер под управлением ОС
Linux делает вывод о том, что предпринимается
попытка установления РРР-соединения, и
реагирует на нее. Программа mgetty+sendfax
использует этот механизм для
автоматической инициализации сеанса РРР по
входящему звонку на стандартной телефонной
линии. Если ни одна из трех
последовательностей кадров не принята, то
сервер под управлением ОС Linux делает вывод,
что поступающие данные не являются
запросом на организацию сеанса РРР. В роли
таких данных могут выступать попытки
пользователя ввести свое имя или пароль в
обычном терминальном сеансе по модемному
или факс-соединению. Как видите, одну и ту же
модемную линию можно использовать и в
качестве обычного терминала, и для передачи
факсов, и для сеансов РРР. При этом для
работы со всеми перечисленными службами
используется один и тот же телефонный номер.
Кадры РРР помещаются в поля
данных кадра
(рис 8.2) Формат кадра РРРПоле Протокол
может иметь длину в один или два октета; оно
идентифицирует протокол, который
используется в поле Информация.
В табл. 8.1 приведены некоторые значения
поля Протокол, которые
поддерживаются протоколом РРР.
| Значение | Описание |
|---|---|
0001 |
Заполнение пропусками |
0021 |
Протокол IP (Internet Protocol) |
002b |
Протокол Novell IPX |
002d |
Протокол сжатия TCP/IP |
002f |
Протокол TCP без компрессии |
8021 |
Протокол управления IP (IP Control Protocol — |
802b |
Протокол управления Novell IPX |
c021 |
Протокол управления соединением (Link Control Protocol — |
c023 |
Протокол установления подлинности пароля (Password |
c223 |
Протокол аутентификации запрос-ответ (Challenge-Handshake |
Поле Информация содержит
следующий уровень данных протокола.
Обратите внимание на отсутствие поля,
ограничивающего длину РРР-пакета. Такого
рода информацией удаленное устройство
снабжает следующий уровень протоколов.
Для передачи данных через последовательное соединение с помощью РРР должно быть определено несколько протоколов. Каждый протокол выделяется в отдельную фазу, а все фазы вместе и составляют протокол РРР. В фазе установления соединения переговоры между передатчиком и приемником ведутся посредством протокола низкого уровня. После установления соединения клиент может идентифицировать себя для сервера в фазе проверки подлинности (аутентификации). После аутентификации каждый протокол, который будет использоваться для передачи, должен быть оговорен во время фазы согласования сетевых протоколов. В последующих разделах все эти фазы описаны более подробно.
После того как модемное
соединение по протоколу
(рис 8.3) Параметры соединения согласно протоколу LCPПротокол
(рис 8.4) Формат пакета протокола LCPПоле Код
пакета
| Код | Описание |
|---|---|
1 |
Пакет типа Configure-Request |
2 |
Пакет типа Configure-Ack |
3 |
Пакет типа Configure- |
4 |
Пакет типа Configure-Reject |
5 |
Пакет типа Terminate-Request |
6 |
Пакет типа Terminate-Ack |
7 |
Пакет типа Code-Reject |
8 |
Пакет типа Protocol-Reject |
9 |
Пакет типа Echo-Request |
10 |
Пакет типа Echo-Reply |
11 |
Пакет типа Discard-Request |
Поле Идентификатор
имеет длину в один октет и используется для
уникальной идентификации пакета
Поле Длина имеет
длину в два октета. В нем указывается общая
длина пакета Код, Идентификатор, Длина и
поле Данные ). Общая
длина пакета
В поле Данные может
быть столько октетов, сколько определено
полем Длина. В нем
содержатся данные согласно полю Код.
Назначение пакета Код.
Как видно из табл. 8.2, существуют
различные типы пакетов
Пакет Configure-Request
используется для установления РРР-соединения
между двумя устройствами. Параметры
конфигурации, которые клиент хочет
согласовать с удаленным хостом, находятся в
поле данных пакета. Все параметры, для
которых клиент запрашивает значения,
отличные от значений по умолчанию, должны
включаться в этот пакет. Все параметры,
значения которых не отличаются от значений
по умолчанию, в пакет Configure-Request
не включаются. Некоторые параметры Configure-Request
описаны в табл. 8.3.
Пакет Configure-Ack
посылается хостом РРР, если он согласен со
значениями всех параметров, заявленных в
пакете Configure-Request.
Значения всех параметров в этом пакете
должны полностью соответствовать
параметрам, заявленным в пакете Configure-Request.
Если имеется расхождение хотя бы в одном из
параметров, то сервер РРР не выдает пакет Configure-Ack.
Пакет Configure-
используется для сигнализации о том, что по
крайней мере один из параметров, заявленных
в пакете Configure-Request,
не принят сервером РРР. При этом сервер
должен указать, какой именно параметр не
принят, и предложить альтернативное
значение этого параметра в поле Опции
этого пакета.
Пакет Configure-Reject
применяется с целью уведомления клиента о
том, что параметры, указанные в пакете Configure-Request,
либо не опознаны (являются ошибочными), либо
не приняты сервером РРР. Когда клиент
получает пакет типа Configure-Reject,
то он должен сделать вывод о том, что ни один
из предложенных им параметров недоступен
для согласования с сервером РРР.
Пакет Terminate-Request
используется клиентом для завершения
текущего сеанса РРР. Поле данных в таком
пакете может состоять из нулевых байт или
заполняться данными, которые не имеют
значения. Хост РРР должен обнаруживать
пакеты такого типа и реагировать на них
соответствующим образом в течение всего
сеанса РРР.
Пакет Terminate-Ack
используется сервером РРР для уведомления
клиента о том, что его запрос на завершение
сеанса РРР получен. Поле данных этого
пакета может заполняться нулевыми байтами
или другой бессмысленной информацией.
Когда сервер РРР принимает пакет типа Terminate-Request,
он должен ответить на
него пакетом типа Terminate-Ack и инициировать завершение
соединения.
Пакет Code-Request
используется в том случае, когда сервер РРР
получает от клиента пакет РРР с искаженным
значением в поле Код.
Это говорит о том, что версия РРР у клиента
не совпадает с версией РРР на сервере или же
у клиента неправильно установлена
поддержка РРР. После того как сервер послал
пакет такого типа, он немедленно разрывает
РРР-соединение.
Пакет Protocol-Request
применяется, если сервер РРР получает пакет
РРР либо с искаженным значением в поле Протокол,
либо с протоколом, который им не
поддерживается. При этом в поле данных
пакета этого типа включается копия
отвергнутого пакета. Получение такого
пакета клиентом свидетельствует о том, что
указанный протокол не поддерживается
сервером, о чем он сообщает пользователю.
Пакет Echo-Request
применяется для реализации метода обратной
связи в РРР-соединении. Получив пакет Echo-Request,
устройство РРР должно выдать в ответ на
него пакет Echo-Reply.
Довольно часто эта процедура используется
для того, чтобы предотвратить
преждевременное завершение соединения из-за
отсутствия активности. Она может
использоваться также в диагностических
целях. Во время переговоров о параметрах
соединения может быть определен параметр Magic-Number,
который затем можно использовать в данном
пакете для идентификации соединения.
Как уже отмечалось, пакет Echo-Reply
используется в ответ на пакет Echo-Request.
Если для соединения был определен параметр Magic-Number,
то он должен включаться в этот пакет.
Пакет Discard-Request
применяется для тестирования соединения.
Приемное устройство должно немедленно
отбросить пакет Discard-Request.
Никакого ответа на этот пакет приемное
устройство посылать не должно. Пакет типа Discard-Request
также должен содержать параметр Magic-Number, который был определен на стадии
установления соединения.
При обмене пакетами Configure-Request
в течение Configure-Request,
то его значение принимается равным
значению по умолчанию. На рис. 8.5
представлен формат полей параметров в
пакете Configure-Request.
(рис 8.5) Поля параметров пакета LCP типа Configure-RequestПоле Тип
используется для идентификации параметра,
о величине которого ведутся переговоры. В
табл. 8.3 показаны возможные параметры.
| Тип параметра | Описание |
|---|---|
0 |
Зарезервирован |
1 |
Максимальный принимаемый блок (MRU) |
3 |
Протокол аутентификации ( |
4 |
Контроль качества (Quality-Control) |
5 |
Параметр "магическое число" (Magic-Nubmber) |
7 |
Параметр |
8 |
Параметр |
Поле Длина
имеет один октет в длину и определяет длину
полей Параметры.
Основной параметр 1500, что
соответствует размеру пакета в сети Ethernet.
Однако при низкоскоростном соединении
рекомендуется снижать MRU до 296,
благодаря этому снижается вероятность
появления ошибок и, как следствие,
уменьшается количество повторных передач.
Параметр контроля качества (Quality
Control) используется, когда устройства желают
определить качество установленного
соединения. При возрастании количества
ошибок желательно проверить качество
соединения, и если оно не удовлетворяет
определенным нормам, разорвать его. По
умолчанию контроль качества соединения не
производится. В RFC описан лишь один тип
протокола контроля качества — протокол
отчета о состоянии соединения с025. При этом
обе стороны, участвующие в соединении,
должны согласовать использование контроля
качества и его тип, прежде чем начать
наблюдение за состоянием соединения.
Параметр "магическое число" (Magic-Number)
используется для реализации в РРР-соединении
обратной связи. При этом образуется петля и
клиент имитирует РРР-соединение с самим
собой. Когда в пакет Configure-Request
включен параметр Magic-Number,
то получивший его хост РРР сравнивает это
число с параметром Magic-Number
из предыдущего пакета Configure-Request.
Если они совпадают, то, скорее всего, имеет
место соединение типа "петля". После того
как параметр Magic-Number
для сеанса РРР был определен, его можно
употреблять в пакетах Echo-Request
и Echo-Reply с целью
проверки целостности соединения.
Параметр Протокол
состоит из двух октетов. Если оба
устройства РРР согласны использовать
протокол сжатия, то это поле может быть
сокращено на один октет. Если учесть, что во
время сеанса РРР обычно передается
несколько тысяч кадров, то мы получим
значительную экономию полосы пропускания.
Однако следует отметить, что в пакетах Протокол. Кроме
того, проверочная последовательность кадра
FCS должна вычисляться со сжатым, а не с
действительным полем Протокол.
Параметр Адрес
и Управление. При этом
полоса пропускания экономится даже на
низкоскоростных линиях, а объем экономии
больше, чем при сжатии поля Протокол.
Подобно предыдущему параметру, значение
проверочной последовательности кадра FCS
вычисляется без этих полей.
Параметр протокола
аутентификации (с223
для протокола с023
для протокола
В качестве альтернативы проверки
пользователя с помощью текстовой процедуры userid/password были
разработаны два метода аутентификации.
Широкое распространение в реализациях РРР
получил протокол аутентификации
Протокол аутентификации запрос-ответ
Challenge-Handshake
(рис 8.6) Формат пакета протокола CHAPПоле Код
имеет в длину один октет и идентифицирует
тип пакета Код.
| Код | Описание |
1 |
Вызов |
2 |
Ответ |
3 |
Успешная аутентификация |
4 |
Отказ |
Поле Идентификатор
имеет в длину один октет. С помощью этого
поля происходит идентификация пакета
Поле Длина составляет
два октета. Это поле используется для
задания длины пакета Код, Идентификатор, Длина
и Данные.
Поле Данные может
быть нулевой длины или несколько октетов в
длину. В него включаются данные, которые
заданы в поле Код пакета
На рис. 8.7 показан протокол,
подтверждающий установление соединения,
который применяется в
"Success" (Успешная аутентификация), и
сеанс РРР продолжается. В противном
случае хост посылает клиенту пакет "Failure"(Отказ), сеанс РРР прекращается и
формируется Terminate-Request.
(рис 8.7) Фазы подтверждения установления соединения в протоколе CHAPВ протоколе
В отличие от протокола userid/password. Идентификатор пользователя userid
посылается в текстовом виде в формате ASCII.
Пароль может шифроваться, а может
передаваться и в текстовом виде. Это
зависит от возможностей клиента.
После аутентификации клиента продолжается сеанс РРР. При этом в течение сеанса повторная аутентификация не производится. Если клиент не подтвердил свои полномочия соответствующим образом, то сеанс РРР может быть прекращен хостом РРР.
Метод проверки подлинности с
помощью
После установления соединения в
Для поддержки сети IP через РРР
обеими сторонами должен поддерживаться
протокол управления IP. Протокол Протокол
кадра РРР будет установлена величина 8021
(см. табл. 8.1).
Формат кадра Код
пакета 1 и 7
(согласно табл. 8.2). Метод
согласования параметров в Configure-Request.
Если хост согласен с параметрами,
предлагаемыми клиентом, он отвечает
пакетом Configure-Ack, в
противном случает он отвечает пакетом Configure-.
С помощью протокола Configure-Request,
подобный пакету протокола
| Значение параметра | Описание |
|---|---|
1 |
IP-адреса |
2 |
Протокол сжатия IP |
3 |
Удаленный IP-адрес |
Параметр 1
был исключен из новой редакции RFC и в
настоящее время не используется. В его
функции входило назначение IP-адресов
устройствам РРР, которые принимают участие
в сеансе. Однако было экспериментально
доказано, что устройствам довольно трудно
установить взаимно приемлемые IP-адреса.
Поэтому вместо этого параметра был введен
параметр 3.
Параметр 2
используется для согласования метода
сжатия IP-пакетов с целью экономии полосы
пропускания во время сеанса РРР. В
настоящее время поддерживается метод
сжатия заголовков TCP/IP Ван Якобсона (Configure-Request
для включения функции сжатия IP, — 002d.
Параметр 3
используется для назначения IP-адреса
клиентскому устройству РРР. С помощью этого
параметра клиент может выбрать для себя
приемлемый IP-адрес. Если хост РРР по какой-либо
причине не может использовать,
предложенный ему клиентом IP-адрес, то он
может возвратить в пакете Configure-
альтернативный IP-адрес для клиента. По
умолчанию никакой IP-адрес не назначается.
После успешного завершения
переговоров Протокол: 0021 — для
обычных, несжатых IP-пакетов, 002b —
для TCP/IP-пакетов, сжатых по алгоритму Ван
Якобсона, и 002f —
для несжатых TCP-пакетов со сжатыми IP-заголовками
(называемые несжатыми по Ван Якобсону).
Когда клиенту требуется
закончить сеанс РРР, он выдает пакет Terminate-Request
(описание пакетов Terminate-Ack и
разорвать соединение. Причем это не зависит
от текущего состояния активных IP-соединений.
Клиент может завершить сеанс РРР даже при
активном IP-соединении. После того как сеанс
РРР завершен, для открытия нового сеанса
клиент должен выдать соответствующие
пакеты
Операционная система Linux поддерживает протокол РРР, разбивая его функции на две части. Первая часть поддерживается на уровне ядра Linux, а вторая часть протокола РРР реализуется в прикладной программе для ОС Linux.
Функции РРР, которые необходимы
для передачи пакетов
Определить, включена ли в ядре вашей системы поддержка РРР, можно, наблюдая за сообщениями во время загрузки системы. Если во время загрузки появляется строка о поддержке РРР в ядре (или таковая имеется в файле отчета), то в ядре сконфигурирована поддержка РРР. В противном случае обратитесь к документации на имеющуюся версию ОС Linux или к документам PPP-HOWTO, если вы хотите добавить в систему поддержку протокола РРР.
Как уже отмечалось ранее, вторая
часть айсберга РРР — это программа,
которая управляет РРР-соединениями на
сервере. Стандартом де факто для систем на
базе ОС Linux стал программный пакет ,
написанный Элом Лонгейром (Al Longyear), Полом
Макеррасом (Paul Mackerras) и Майклом Калагеном
(Michael Callahan). В большинство дистрибутивов ОС
Linux включен бинарный пакет этой программы. В
Red Hat 6.0 включена версия ppp-2.3.7,
а в Caldera OpenLinux 2.2 входит ppp-2.3.5.
Пакет можно
получить по FTP с сайта cs.anu.edu.au
в каталоге /pub/software/ppp.
Текущей версией на момент написания книги
была ppp-2.3.10. Так
как данный программный пакет сильно
зависит от конфигурации ядра, настоятельно
рекомендуем вам использовать версию РРР,
которая поставляется с версией имеющегося
ядра ОС Linux. Однако если вы любите
приключения или имеете веские причины
использовать именно последнюю версию РРР,
то можно получить ее исходный код, а затем
скомпилировать и установить ее
самостоятельно. Текущую версию можно получить в сети Internet по адресу:
ftp://cs.anu.edu.au/pub/software/ppp/ppp-2.3.10.tar.gz.
После получения файла извлеките его из
архива tar. Далее
выполните следующие шаги.
./configure
в рабочем каталоге ppp-2.3.5.
С ее помощью создается Makefile
для специфической версии ОС Linux.make
с параметром kernel ( make kernel ). Таким
образом создаются файлы include
для вашей версии Linux с необходимыми
частями ядра для поддержки pppd .pppd
(обратитесь к документации на
имеющуюся версию ОС Linux, чтобы исключить
любые неожиданности).make
для компиляции программы pppd .root
запустите программу GNU make
с параметром install
для создания выполняемых модулей и
помещения их в соответствующие каталоги.После установки
(либо с использованием бинарного пакета из
поставки ОС Linux, либо компиляцией исходного
кода) можно сконфигурировать
для работы в качестве клиента или сервера
РРР.
Программа может быть сконфигурирована для
работы в качестве клиента РРР. Таким
образом, можно реализовать подключение
локального сервера электронной почты на
базе ОС Linux с провайдером Internet, у которого
находится хост РРР, с целью организации IP-соединения
для передачи почты и другого IP-трафика. Для
поддержки функций клиента РРР для ОС Linux
имеются и другие программы. Ниже мы
рассмотрим некоторые из них.
Для использования
в клиентском режиме необходимо
настроить несколько параметров, которые
отвечают за подключение и установление
соединения с сервером РРР. Формат команды
следующий:
pppd <tty line> <speed> [options]
Здесь в роли <tty line> выступает последовательный СОМ-порт,
к которому подключается модем (см. лекцию 3 "Установка
телекоммуникационного оборудования в ОС
Linux"). Параметр <speed> обозначает
скорость соединения модема с портом
компьютера. Искусство применения программы
заключается в подборе правильных
параметров для команд, отдаваемых клиенту и
серверу. Далее в этом разделе описываются
некоторые параметры для выполнения функций клиента РРР.
С помощью параметра connect
в программе можно
использовать выполняемый сценарий
оболочки для установки последовательных
соединений перед началом работы программы .
Параметр crtscts
используется для включения аппаратного
управления потоком RTS/CTS на
последовательной линии.
Параметром defaultroute
в таблице маршрутов задается маршрут по
умолчанию, указывающий на IP-адрес
удаленного сервера РРР. Запись в таблице
маршрутов автоматически удаляется после
прекращения сеанса РРР. Таким образом, Linux-серверу
всегда будет известно, куда направлять IP-трафик,
предназначенный для других сетей.
Параметр lock
используется для создания специального
файла в стиле UUCP для сигнализации о том, что
модем занят.
Параметры mru
и mtu позволяют
регулировать максимальную величину
принимаемого блока ( mru )
и максимальную величину передаваемого
блока ( mtu ) во время
С помощью параметра modem
ОС Linux может использовать линии управления
модемом. Так, если этот параметр задан,
программа
будет ожидать появления сигнала несущей CD
(
Программа chat
является частью дистрибутива
и используется для упрощения строк при
установлении соединения программой .
Для установления соединения с сервером РРР
программой chat
используется простой файл сценария. В
сценарии chat
используются текстовые строки, которые
посылаются в ответ на текстовые строки,
принятые от сервера. Далее chat
приводит в соответствие текстовые строки в
сеансе — один ответ на одну принятую
строку. В листинге 8.2 показан пример
сценария chat,
который используется с .
1 "" 2 ATDT5551234 3 CONNECT 4 "" 5 "ogin:" 6 rich 7 "word:" 8 guitar 9 "rich]$" 10 "exec /usr/sbin/pppd silent modem crtscts proxyarp 10.0.0.100:10.0.0.2"
В строке 2 листинга 8.2 показана
команда, которую посылает на модем
для звонка провайдеру Internet. В строке 3
указывается, какую строку текста должна
ожидать для
инициализации установления соединения с
РРР-сервером. Строка 4 сигнализирует о том,
что программа chat
принимает отклик модема об установлении
соединения, на что она должна ответить
обычной пустой строкой с символом возврата
каретки. В строке 5 указывается, какую
строку следует далее ожидать от сервера.
Если на сервере разрешена регистрация
модемного терминала, то он должен выдать
соответствующую строку-приглашение login.
В строке 6 программа
посылает идентификатор пользователя на
сервер РРР, а в строке 8 — пароль. Получив
доступ к командной строке сервера (см.
строку 9),
запускает программу
для поддержки хоста РРР. Более детально
параметры обсуждаются в разделе "Реализация
сервера РРР в ОС Linux" далее в этой лекции.
Сценарий chat
может использоваться клиентом
для дозвона на сервер РРР, где запускается
программа .
Параметр
вызывает сценарий chat
с использованием следующего формата:
pppd ttyS1 38400 connect '/usr/sbin/chat -v -f /home/rich/isp.chat'\modem crtscts defaultroute
Параметр connect вызывает сценарий chat
для подключения к серверу РРР.
Приведенная выше командная строка
автоматически вызывает сервер РРР и
запускает программу
на сервере. Параметр -v
используется в программе для
детализации вывода в файле отчета /var/log/messages.
Его можно использовать при отладке и
настройке соединения и не задавать, когда
соединение работает нормально. В листинге
8.3 представлены строки, которые программы chat
и помещают
в файл отчетов в течение сеанса РРР.
Sep 22 86 56 56 shadrach pppd[663] pppd 2.3.5 started by root, uid 0 Sep 22 06 56 56 shadrach kernel: registered device ppp0 Sep 22 06 56 57 shadrach chat[664]: send (ATZS7=100^M) Sep 22 06 56 57 shadrach chat[664]: expect (OK) Sep 22 06 56 57 shadrach chat[664]: ATZS7=100^M^M Sep 22 06 56 57 shadrach chat[664]: OK Sep 22 06 56 57 shadrach chat[664]: -- got it Sep 22 06 56 57 shadrach chat[664]: sehd (ATDT5551234^M) Sep 22 06 56 58 shadrach chat[664]: expect (CONNECT) Sep 22 06 56 58 shadrach chat[664]: ^M Sep 22 06 57 18 shadrach chat[664]: ATDT5551234^M^M Sep 22 06 57 18 shadrach chat[664]: CONNECT Sep 22 06 57 18 shadrach chat[664]: -- got it Sep 22 06 57 18 shadrach chat[664]: send (^M) Sep 22 06 57 18 shadrach chat[664]: expect (ogin:) Sep 22 06 57 18 shadrach chat[664]: 28800/V42BIS^M Sep 22 06 57 19 shadrach chat[664]: ^M Sep 22 06 57 19 shadrach chat[664]: ^MRed Hat Linux release 5.2 (Apollo) Sep 22 06 57 19 shadrach chat[664]: ^MKerhel 2.0.36 on an 1486 Sep 22 06 57 19 shadrach chat[664]: ^M Sep 22 06 57 19 shadrach chat[664]: ^M^M Sep 22 06 57 19 shadrach chat[664]: mail1.isp.net login: Sep 22 06 57 19 shadrach chat[664]: --got it Sep 22 06 57 19 shadrach chat[664]: send (rich^M) Sep 22 06 57 19 shadrach chat[664]: expect (word:) Sep 22 06 57 19 shadrach chat[664]: rich^M Sep 22 06 57 19 shadrach chat[664]: Password: Sep 22 06 57 19 shadrach chat[664]: -- got it Sep 22 06 57 19 shadrach chat[664]: send (guitar^M) Sep 22 06 57 20 shadrach chat[664]: expect (rich]$) Sep 22 06 57 20 shadrach chat[664]: ^M Sep 22 06 57 20 shadrach chat[664]: Last login: Tue Sep 21 20:45:47^M Sep 22 06 57 21 shadrach chat[664]: [rich@mail1 rich]$ Sep 22 06 57 21 shadrach chat[664]: -- got it Sep 22 06 57 21 shadrach chat[664]: send (exec /usr/sbih/pppd passive silent modem crtscts^M) Sep 22 06 57 22 shadrach pppd[663]: Serial connection established. Sep 22 06 57 23 shadrach pppd[663]: Using interface ppp0 Sep 22 06 57 23 shadrach pppd[663]: Connect: ppp0 <--> /dev/ttyS1 Sep 22 06 57 27 shadrach pppd[663]: local IP address 10.0.0.100 Sep 22 06 57 27 shadrach pppd[663]: remote IP address 10.0.0.2
Как видите, с помощью сценария chat
и команд клиента
организуется сеанс РРР с сервером. Все эти
процедуры можно поместить в файл сценария,
с помощью которого по мере необходимости
можно запускать сеанс РРР. Однако при
использовании такого метода организации
РРР-соединения требуется наличие какого-либо
события, которое запускает сценарий. В
качестве такого события может
использоваться процесс cron,
с помощью которого запускается сценарий
РРР, когда требуется забрать или отправить
почту. Ниже приведена программа, с помощью
которой можно запускать клиента РРР по мере
надобности.
Теперь, имея отлаженный сценарий chat
и получив
возможность звонить на сервер РРР и
устанавливать соединение с ним, вы,
возможно, захотите автоматизировать этот
процесс. Если локальный сервер электронной
почты на базе ОС Linux непосредственно
подключается к провайдеру Internet, то
необходимо разработать график частоты его
подключений для обмена электронной почтой
с сервером провайдера Internet (см. лекцию 13, "Подключение
почтового сервера к провайдеру Internet"). Один
из методов — использование IP-маршрутизации
по запросу. Под этим подразумевается, что
соединение РРР устанавливается
автоматически, как только обнаруживаются
данные, которые направлены вне локальной
сети (в сеть провайдера Internet).
Прекрасным средством для
осуществления маршрутизации по запросу
является программа diald,
написанная Эриком Сченком (Eric Schenk). Как
правило, в большинство версий ОС Linux входит
бинарный пакет diald,
уже готовый к установке. Если в имеющейся
версии Linux эта программа отсутствует, ее
можно получить в сети Internet на Web-сайте: http://diald.unix.ch.
Формат запуска программы diald
следующий:
/usr/sbin/diald [device1....] [options...] [-- [pppd options]]
Здесь device — строка
в ОС Linux для устройства tty,
к которому подключается модем, options — параметры программы diald, а —
параметры, которые diald
передает программе ,
когда вызывает ее. Параметры diald
можно также задавать с помощью файла
конфигурации.
Файл конфигурации для программы diald применяется для установки
параметров, используемых ею при вызове
программ и chat,
а также для задания списка сценариев,
которые будут выполняться для старта и
останова . Файл
конфигурации находится в каталоге /etc
и называется diald.conf.
В листинге 8.4 приведен пример файла diald.conf,
который заменяет параметры ,
приведенные ранее в примере.
1 ### 2 # /etc/diald.conf - diald configuration 3 # 4 # see /usr/lib/diald for sample config files 5 # 6 mode ppp 7 connect '/usr/sbin/chat -f /home/rich/isp.chat -t 35000' 8 connect-timeout 180 9 device /dev/ttyS1 10 speed 115200 11 modem 12 lock 13 crtscts 14 local 10.0.0.100 15 remote 10.0.0.2 16 defaultroute 17 include /usr/lib/diald/standard.filter 18 fifo /etc/diald/diald.ctl
В строке 7 листинга 8.4 задан
параметр connect,
который вызывает программу chat
с помощью сценария chat,
использованного в примере с .
Строка 8 предусматривает, что модем хоста
РРР находится в режиме ответа на четвертый
звонок (так что это не будет мешать вашим
родным и друзьям, если они звонят по той же
телефонной линии). Таким образом, задается
интервал времени для выполнения сценария chat. В нашем случае это три минуты (180
секунд). В строке 17 программа diald
обращается к файлу standard.filter,
который используется diald
для описания условий запуска и останова
сеанса РРР. В строке 18 указывается на
специальный файл, который используется
сопутствующей программой dctrl
для мониторинга сеанса РРР. Программа dctrl —
это графический пакет для мониторинга РРР-соединения.
Он позволяет оценить пропускную
способность соединения, а также немедленно
сигнализирует о любых ошибках в течение
сеанса РРР.
После конфигурирования
параметров diald можно
произвести их тестирование. Программа diald
запускается в фоновом режиме и
запускать ее нужно с правами пользователя root.
Когда diald обнаруживает
в сети условия, которые требуют соединения
с сервером РРР, она запускает программу chat.
Та, в свою очередь, организует сеанс с
сервером РРР и запускает программу
на локальном компьютере. Когда работа diald отлажена, можно написать для нее
fetchmail ),
будет запускаться diald
и открывать сеанс РРР. Великолепно!
Если в системе Linux используется
kppp.
Эта программа представляет собой
графическую оболочку, с помощью которой
можно сконфигурировать и в дальнейшем
запускать программу .
На рис. 8.8 показано основное окно, которое
появляется при запуске kppp.
(рис 8.8) Основное окно программы kpppВ основном окне предоставляется
возможность выбора хоста РРР и запуска
после ввода пароля и щелчка на кнопке Соединение (Connect). Щелчок на кнопке Установка (Setup) в основном окне вызывает окно Конфигурация kppp (kppp Configuration). На вкладке Учетные записи (Accounts)
окна Конфигурация kppp (kppp Configuration) можно сконфигурировать
несколько пользователей. На рис. 8.9
показан внешний вид вкладки Учетные записи.
(рис 8.9) Закладка вкладке Учетные записи в программе kpppИндивидуально параметры каждой учетной записи можно задать, щелкнув на кнопке Новая (New) — рис. 8.10.
(рис 8.10) Окно для настройки параметров учетной записи пользователя в программе kpppСвойства нового пользователя можно отредактировать в окне Редактирование учетной записи (Edit Account). Здесь же можно задать телефонный номер для дозвона и метод проверки подлинности, который будет использоваться во время сеанса РРР.
Доступные методы проверки
подлинности включают аутентификацию с
помощью протокола chat
и терминального сеанса, где необходимо
вручную зарегистрироваться на сервере и
выполнить команду
на удаленном сервере. С помощью закладки IP
можно задать способ получения IP-адреса:
динамически — от хоста РРР или
статически — вручную. Точно так же можно
задать способ получения клиентом РРР IP-адресов
DNS и маршрутизатора на вкладках DNS
и Шлюз (Gateway):
динамически — от хоста РРР или
статически — вручную.
На рис. 8.11 показаны установки kppp,
которые находятся на вкладке Устройство (Device). С ее помощью можно задавать
настройки модема, который будет
использоваться для дозвона до провайдера
Internet. В их число входит аппаратное
управление потоком и метод сброса линии.
Флаг Использовать lock-файл (Use Lock File) позволяет использовать
параметр
для создания специальных файлов в стиле UUCP.
Тогда другие процессы не будут пытаться
использовать модем, когда он занят в сеансе
РРР.
(рис 8.11) Конфигурационная вкладка kppp Устройство (Device)На рис. 8.12 представлена вкладка Модем (Modem) для установки параметров модема. Воспользовавшись кнопкой Команды модема (Modem Commands), можно добавить строку инициализации модема перед установкой соединения. С помощью кнопки Опрос модема (Query Modem) осуществляется считывание текущих настроек модема. После щелчка на этой кнопке будут выводиться одновременно восемь параметров модема. А кнопка Терминал (Terminal) может пригодиться при создании сценариев дозвона. При щелчке на нее вызывается мини-терминал, с помощью которого вы можете общаться с модемом напрямую и выполнять дозвон на сервер РРР. Работа с терминалом весьма эффективна, когда требуется проследить ответы сервера, например, при отладке сценария дозвона.
(рис 8.12) Вкладка kppp МодемПосле того как настройка всех
параметров завершена, установление
соединения представляет собой процесс
дозвона до провайдера Internet и регистрацию у
него на сервере с соответствующими именем
пользователя и паролем. После этого
требуется лишь щелкнуть на кнопке Соединить (Connect). Программа kppp
будет автоматически запускать
с параметрами, которые были ранее заданы
для данного бюджета пользователя. Для
бюджетов пользователя также имеется
полезная опция, с помощью которой можно
получать подробный отчет о работе РРР за
месяц.
Программа , которая используется в качестве
клиента РРР, может работать и в режиме
сервера РРР. Обратите внимание на строку 10 в
листинге 8.2. В этой строке клиент запустил
на сервере РРР с целью открытия сеанса РРР.
Кроме возможности запуска вручную, для ОС
Linux были разработаны специальные программы
для автоматического запуска
при обнаружении на входной линии запроса на
открытие сеанса РРР. В этом разделе также
рассматриваются преимущества совместного
использования программ
и mgetty+sendfax.
С помощью определенных
параметров программа
может выполнять функции сервера РРР.
Несмотря на то что протокол РРР
рассматривает обе стороны, участвующие в
соединении, как равноправные, одна из
сторон всегда выступает в роли сервера и
ожидает запросов на установление
соединения от клиентов. Некоторые из
параметров, используемые сервером РРР,
описаны в последующих разделах.
Параметры passive
и silent
используются программой для ожидания пакета Configure-Request
с целью инициализации сеанса РРР.
Параметр proxyarp
применяется для предоставления хост-комьютеру
РРР возможности обрабатывать ARP-запросы в
локальной сети от имени клиента РРР. Таким
образом, другие компьютеры могут
подключаться к клиенту РРР.
Предупреждение
С помощью параметра proxyarp другие компьютеры могут
подключаться к РРР-клиенту. Например, когда
ваш сервер на базе ОС Linux устанавливает РРР-соединение
с провайдером Internet, он становится сетевым
устройством в сети провайдера и вполне
может быть подвержен атакам извне, как и
любое другое устройство, напрямую
подключенное к сети. Мы настоятельно
рекомендуем использовать программное
обеспечение для организации брандмауэра ( firewall )
с целью контроля доступа удаленных
клиентов на ваш сервер. Особенно следует
быть внимательным, если не применяется
никаких мер безопасности при установке РРР-соединения.
Внимательно анализируйте файлы отчетов
системы на предмет попыток
несанкционированного доступа.
С помощью параметра Local_IP:Remote_IP
программой могут назначаться IP-адреса для
удаленных устройств. При этом Local_IP — это адрес хоста РРР, а Remote_IP —
адрес удаленного клиента.
Параметры ,
которые задаются при запуске из командной
строки, также можно заносить в
конфигурационные файлы. По умолчанию
программа
проверяет файл /etc/ppp/options
и запускается с параметрами, которые в нем
заданы. Еще одно полезное свойство
состоит в том, что она может устанавливать
параметры в зависимости от используемого
устройства tty.
Благодаря этому для каждого устройства tty
(порта) можно задать специфические
параметры, например IP-адрес удаленной
стороны. Тогда, если задействованы линии ttyS0, ttyS1 и ttyS2, для
каждой из них можно задать свой набор
параметров в файлах /etc/ppp/options.ttyS0, /etc/ppp/options.ttyS1 и /etc/ppp/options.ttyS2.
При этом в каждом файле параметров будут
указаны различные пары адресов Local_IP:Remote_IP,
т.е. исключается возможность получения
несколькими клиентами РРР одинакового IP-адреса.
Если необходимо, чтобы сервер на
базе ОС Linux выступал в качестве сервера РРР
и принимал от клиентов запросы на
установление соединений, то лучше всего для
этой цели подходит программа mgetty+sendfax,
написанная Гертом Доерингом (Gert Doering).
Бинарный пакет этой программы, уже готовый
к установке, входит в большинство версий ОС
Linux. Если по какой-либо причине он
отсутствует в вашей версии Linux, можно
получить его с сервера sunsite.unc.edu
в каталоге /pub/Linux/system/serial.
Как правило, в ОС Linux для
обработки входящих соединений
используется программа getty.
Обнаружив попытку соединения на линии, она
использует для аутентификации
пользователя процедуру login,
для которой требуется идентификатор
пользователя и пароль. В состав mgetty+sendfax
входит новая программа mgetty,
которая заменяет старую программу getty
для работы с последовательными линиями. Эта
программа обладает большей гибкостью, чем getty,
так как она способна автоматически
определять тип входного звонка с помощью
lock-файлов.
Для управления работой mgetty
используются как параметры командной
строки, так и конфигурационные файлы. В ОС
Linux все указания этой программе, касающиеся
взаимодействия с другими программами и
обслуживания последовательных соединений,
задаются в файле /etc/inittab.
Каждое устройство tty
на сервере под управлением ОС Linux имеет в
этом файле свою строку конфигурации. Строка
в файле inittab, с
помощью которой mgetty
управляет последовательной линией,
выглядит примерно так:
#Set serial line for modem s1:12345:respawn:/sbin/mgetty -D -s 38400 -n 4 ttyS0
Знаки двоеточия используются
здесь для разделения параметров. Первый
параметр — уникальный идентификатор
init,
на котором терминал будет активен. Как
видите, для данной линии терминал будет
активен для всех уровней init.
Третий параметр обуславливает реакцию
процесса init на
активность в линии. Ключевое слово respawn
указывает, что программу можно запускать на
указанном уровне запуска и перезапускать
ее снова после завершения работы. Таким
образом, после отключения клиента модемная
линия снова будет готова к приему нового
соединения. Четвертым параметром является
программа, которую init
запускает для управления терминальной
линией. Формат команды на запуск mgetty
следующий:
mgetty [options] ttydevice
Под параметрами [options]
подразумеваются параметры для
управления модемной линией, а ttydevice —
устройством tty в
ОС Linux, которым будет управлять mgetty.
В табл. 8.6 представлены все параметры mgetty.
| Параметр | Описание |
|---|---|
-x LEVEL |
Устанавливает
уровень отладки в LEVEL |
-s SPEED |
Устанавливает
скорость в линии равной SPEED |
-a |
Автоматическое определение скорости модема |
-k SPACE |
Устанавливает
размер (в килобайтах) каталога входного
буфера для факса равным SPACE |
-m 'EXPECT
SEND' |
Определяет сценарий для инициализации модема |
-r |
Сигнализирует об использовании прямой линии |
-p
LOGIN_PROMPT |
Определяет оболочку для входа в систему по модемной линии |
-n RINGS |
Устанавливает
число звонков, после которых mgetty должна ответить
удаленному модему |
-D |
Переводит модем в режим работы с данными |
-F |
Переводит модем в режим факса |
-R SEC |
Разрешает процедуру обратного дозвона |
-i 'issue' |
Определяет, какой файл выдать при установлении соединения |
-S 'FAX |
Определяет, какой документ по умолчанию высылать по запросу с удаленного факса |
Как показано в примере inittab,
модем переведен в режим передачи данных (т.е.
в режим модема) с фиксированной скоростью
38400 бит/с. Кроме того, модем будет отвечать
на звонок только после четвертого звонка.
Однако есть одно свойство mgetty,
которое может привести вас в
замешательство. Дело в том, что mgetty
не поддерживает для модема режим
автоответа. Она лишь анализирует служебные
сообщения, получаемые от модема. Приняв
нужное количество строк RING
(в зависимости от параметра -n ),
она выдает на модем команду на поднятие
трубки . Таким
образом, модем не сможет ответить на
входной звонок, если программа mgetty
заблокирована. Вероятно, вам знакома
ситуация, когда модем на сервере отвечал на
входной звонок, но при этом приглашение
системы login не
выдавалось.
Для управления работой mgetty,
кроме параметров командной строки, можно
использовать и конфигурационные файлы. Для
указания программ, которым mgetty должна передать управление после
установления соединения, используется файл /etc/mgetty+sendfax/login.conf.
Как уже отмечалось ранее, обычно управление
в терминальном сеансе передается процедуре
регистрации в системе login.
Точно так же mgetty
умеет автоматически определять, что новое
соединение является соединением РРР, и
передавать дальнейшее управление им
программе .
Строка в файле /etc/mgetty+sendfax/login.conf,
с помощью которой передается управление,
выглядит так:
/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login modem \ crtscts lock proxyarp
Все данные в строке AutoPPP
чувствительны к регистру букв, так что
будьте осторожны. Далее mgetty передает управление РРР-соединением
программе с
параметрами, которые приведены выше в
строке AutoPPP. Все
они будут добавлены к параметрам, заданным
в конфигурационных файлах .
Кстати, очень важным для клиентов РРР на
базе ОС Windows, которые открывают соединение с
сервером, является параметр +.
Об этом более подробно читайте в лекции 16, "Поддержка
удаленных клиентов".
После того как информация о mgetty добавлена в файл /etc/inittab,
нужно чтобы она возымела действие. Для
этого в ОС Linux следует задать команду telinit
Q (или KILL HUP 1 ),
чтобы процесс init
перечитал файл inittab.
Следует отметить, что программа mgetty
ведет собственные файлы отчетов в каталоге /var/log.
Каждая модемная линия имеет свой файл
отчета с именем mgetty.log + номер устройства tty.
Пример сеанса работы mgetty
приведен ниже в листинге файла отчета.
1 09/19 06 43 56 yS0 mgetty: experimental test release 1.1.14-Apr02 2 09/19 06 43 56 yS0 check for lockfiles 3 09/19 06 43 56 yS0 locking the line 4 09/19 06 43 56 yS0 lowering DTR to reset Modem 5 09/19 06 43 57 yS0 send: \dATQ0V1H0[0d] 6 09/19 06 43 57 yS0 waiting for ``OK'' ** found ** 7 09/19 06 43 58 yS0 send: ATS0=0Q0D3C1[0d] 8 09/19 06 43 58 yS0 waiting for ``OK'' ** found ** 9 09/19 06 43 58 yS0 waiting... 10 09/19 06 45 23 yS0 waiting for ``RING'' ** found ** 11 09/19 06 45 23 yS0 waiting for ``RING'' ** found ** 12 09/19 06 45 29 yS0 waiting for ``RING'' ** found ** 13 09/19 36 45 35 yS0 waiting for ``RING'' ** found ** 14 09/19 06 45 59 yS0 send: ATA[0d] 15 09/19 06 45 59 yS0 waiting for ``CONNECT'' ** found ** 16 09/19 06 46 13 yS0 send: 17 09/19 06 46 13 yS0 waiting for ``_'' ** found ** 18 09/19 06 46 16 ##### data dev=ttyS0, pid=2766, caller='none', conn='38400/ARQ/28800 LAP-M', name='', cmd= '/usr/sbin/pppd' , user='/Autoppp/'
Как видно из данного листинга, в
строках 1–9 mgetty
инициализирует модем для использования с
устройством ttyS0 (порт
COM1). В строках 10–14 mgetty
принимает от модема служебное слово RING,
которое сигнализирует о получении модемом
входного звонка. Как видим, после
четвертого звонка mgetty
выдает модему команду ,
что означает "поднять трубку". Далее, в
строке 18, mgetty
определяет, что соединение является
запросом на установление РРР-соединения, и
запускает программу
с помощью команды /usr/sbin/.
Итак, протокол типа "точка-точка"
(Point-to-Point Protocol (PPP)) служит для передачи
сетевого трафика между двумя устройствами
через модемное соединение. Для сервера
электронной почты на базе ОС Linux это
означает, что для установления соединения с
провайдером сети Internet и получения IP-соединения
требуется стандартный модем для
асинхронных линий, который подключается к
последовательному СОМ-порту ПК. С помощью
такого соединения почтовый сервер может
обмениваться электронной почтой с внешним
миром (сетью Internet). Протокол РРР
поддерживается в ОС Linux посредством
программы . Она
разработана специально для работы с
протоколом РРР и может выполнять как
функции сервера РРР при обслуживании
входящих соединений, так и клиента РРР для
запроса на установление таких соединений.
Сопутствующей
программой является программа chat.
С ее помощью сервер на базе ОС Linux может
общаться с модемом для установления
соединения с провайдером Internet по
телефонной линии и организации сеанса РРР с
сервером провайдера. С целью более полной
автоматизации установления РРР-соединений
можно использовать программу diald.
При наличии в сети IP-трафика, который
адресован в Internet, она автоматически
устанавливает РРР-соединение с провайдером.
Для реализации функций сервера РРР можно
использовать программу mgetty+sendfax,
с помощью которой, при наличии входных
запросов, автоматически запускается
программа и
открываются сеансы РРР для клиентов. Она
весьма успешно работает с клиентами РРР,
которые используют операционные системы
Windows 95, 98 и NT.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.