voliuf.narod.ru

главная

друзья

помощь сайту

Администрирование почтовых серверов sendmail  

Бесплатные учебники по темам

Партнерская программа

1.Принципы организации систем электронной почты

2.Использование ОС Linux в качестве сервера электронной почты

3.Установка телекоммуникационного оборудования в ОС Linux

4.DNS и доменные имена

5.Протокол SMTP

6.Протокол POP3

7.Протокол IMAP

8.Протокол РРР

9.Протокол UUCP

10.Программа sendmail

11.Установка и конфигурирование sendmail

12.Установка и конфигурирование POP3 и IMAP

13.Подключение почтового сервера к провайдеру Internet

14.Администрирование почтового сервера

15.Конфигурирование клиентов ЛВС

16.Поддержка удаленных клиентов

17.Почтовые псевдонимы и преобразование адресов

18.Списки рассылки

19.Маршрутизация IP в ОС Linux

 

Администрирование почтовых серверов sendmail 
9.Протокол UUCP
  

В предыдущих лекциях были описаны основные способы передачи электронной почты от сервера на базе ОС Linux через сетевое соединение в сеть Internet. Иногда из соображений безопасности, из-за высокой стоимости подключения или по каким-либо другим причинам подключение почтового сервера организации к сети Internet с использованием IP-соединения не представляется возможным. К счастью, существует еще один относительно недорогой способ организации работы сервера электронной почты без установления IP-соединения.

 

Протокол копирования из одной UNIX-системы в другую (UNIX-to-UNIX CoPy (UUCP)) уже давно использовался для передачи сообщений и файлов между UNIX-хостами по телефонным линиям посредством модемов. В США был даже написан пакет протоколов и программ, которые обслуживали сеть UNIX-компьютеров по всей стране. Однако с развитием сети Internet популярность UUCP сошла на нет. Сегодня многие снова возвращаются к использованию UUCP, так как этот протокол обеспечивает высокий уровень безопасности передачи электронной почты при небольшой цене.

 

При подключении сервера электронной почты по протоколу UUCP отсутствует прямое соединение с сетью Internet. Таким образом, злоумышленник не сможет подключиться к вашему серверу через UUCP-соединение с помощью Telnet или использовать любой другой тип сетевой атаки. Дело в том, что при использовании UUCP никакие программы на локальном сервере не запускаются, если только вы не разрешите своему провайдеру Internet обратное. Кроме того, программное обеспечение UUCP позволяет жестко контролировать все попытки соединения между двумя компьютерами.

 

Многие предприятия в настоящее время в дополнение к имеющимся РРР-соединениям используют протокол UUCP для передачи электронной почты. Например, если у предприятия имеется большой IP-трафик (Web, FTP) и нежелательно перегружать РРР-соединение передачей дополнительного трафика, такого как электронная почта, то на выручку приходит протокол UUCP. Тогда вместо закупки большей полосы пропускания для РРР, можно просто оплатить недорогое коммутируемое UUCP-соединение с провайдером Internet, которое будет обслуживать систему электронной почты предприятия, при этом остальной IP-трафик полностью использует полосу РРР-соединения.

 

В этой лекции мы подробно рассмотрим протоколы, используемые в UUCP-соединении. Очевидно, что при организации UUCP-соединения желательно говорить с провайдером на одном языке. Кроме того, в этой лекции рассматривается наиболее популярный пакет для работы с UUCP в ОС Linux - Taylor UUCP. Приводятся примеры конфигурационных файлов для реализации функций клиента и сервера UUCP на почтовом сервере под управлением ОС Linux.

 

Описание протокола UUCP

Протокол UUCP был разработан в конце 70-х годов Майком Леском (Mike Lesk) в лаборатории компании AT&T Bell. Изначально он предназначался для передачи файлов и электронных сообщений между двумя UNIX-компьютерами. Соединение по протоколу UUCP включает в себя три фазы:

 
  • подтверждение открытия соединения;
  • передача данных;
  • подтверждение закрытия соединения.
 

Поскольку протокол UUCP был разработан еще до появления концепции "клиент-сервер", его терминология несколько отличается от общепринятой. То, что сегодня мы называем сервером в терминах UUCP называется UUCP-ведомым (slave), а клиент называется UUCP-ведущим или главным (master), так как он управляет соединением в сеансе UUCP (рис. 9.1). Любой компьютер может начать соединение по UUCP. Какой из двух компьютеров будет ведущим, а какой ведомым, определяется при подтверждении открытия соединения. И конечно же, специально, чтобы еще больше все запутать, компьютеры в течение сеанса UUCP могут меняться ролями ведущий-ведомый.

 

 

Фазы в сеансе UUCP

Рис. 9.1.  Фазы в сеансе UUCP

 

 

Подтверждение открытия соединения

При подтверждении открытия соединения оба компьютера опираются на основные правила, касающиеся связи по UUCP. В течение фазы подтверждения открытия соединения посылается специальный пакет, который начинается символом шестнадцатеричное 0x10 и заканчивается символом шестнадцатеричное 0x00. Когда ведущий компьютер вызывает ведомый, тот должен ответить определенным пакетом:

 
Shere=hostname,

где hostname - UUCP-имя ведомого компьютера. UUCP-имя не имеет ничего общего с именем компьютера согласно системе DNS, хотя делаются попытки согласовать эти две системы имен путем введения в сети Internet специального домена uucp. Итак, ведущий компьютер, получив имя ведомого компьютера, должен ответить ему следующим образом:

 
Shostname=options,

где hostname - это уже UUCP-имя ведущего компьютера, а options - параметры, которые определяются двумя хостами. Все эти параметры представлены в табл. 9.1.

 
Таблица 9.1. Параметры подтверждения открытия соединения в UUCP
Параметр Описание
-Qseq Определяет вызов номера последовательности seq
-xlevel Устанавливает режим отладки на ведомом компьютере равным level
-pgrade Устанавливает ведомому компьютеру режим передачи файлов только с приоритетом grade или выше
-N Сигнализирует о том, что ведущий компьютер воспринимает расширения в соответствии с Taylor UUCP
 

Ведомый компьютер, в свою очередь, должен ответить на параметр, заданный ведущим, определенным кодом. Коды ответов ведомого компьютера представлены в табл. 9.2.

 
Таблица 9.2. Коды ответов ведомого компьютера в сеансе UUCP
Код ответа Описание
ROK Параметры опознаны
ROKN То же, что и ROK, но принимаются расширения в соответствии с Taylor UUCP
RLCK На ведомом компьютере ведущий с данным именем заблокирован - невозможно продолжить сеанс
RCB Ведомый компьютер сбросит соединение и инициирует его в качестве ведущего
RBADSEQ Номер последовательности в параметре -Q не опознан - попытка несанкционированного доступа
RLOGIN Ведущий компьютер зарегистрировался на ведомом с ошибочным идентификатором входа в систему
RYou are unknown to me В файлах config ведомого компьютера отсутствуют сведения о ведущем компьютере
 

Если ведомый компьютер в ответе использовал код ROK или ROKN, то начинается следующий этап подтверждения открытия соединения. Если ведущий компьютер получил какой-либо другой код ответа, то он прекращает попытку соединения.

 

Следующий этап подтверждения открытия соединения заключается в согласовании параметров протокола UUCP двумя сторонами. На протяжении многих лет было разработано несколько методов инкапсуляции ядра протокола UUCP. Всем протоколам были присвоены буквы - от A до Z. Оригинальному протоколу UUCP была присвоена буква g. В то же время пакет Taylor UUCP, работая с таким же пакетом на другой машине, использует протокол i. В начале обмена ведомый компьютер посылает пакет:

 
Pprotocollist

Здесь под protocollist подразумевается список протоколов (в буквенном понимании), которые он поддерживает. Если ведущий компьютер обнаруживает в списке поддерживаемый им протокол, он отвечает пакетом:

 
Uprotocol,

где protocol - буквенное обозначение протокола, который ведущий компьютер желает использовать во время сеанса. Если не был найден приемлемый протокол для продолжения сеанса, то ведущий компьютер должен вернуть ответ типа UN и завершить соединение. Затем, после того как тип протокола выбран, компьютеры должны провести переговоры об индивидуальном протоколе (см. раздел "Типы протоколов UUCP" далее в этой лекции). После завершения переговоров фаза подтверждения открытия соединения окончена и начинается фаза передачи данных.

 

Передача данных

Как уже упоминалось ранее, ведущий компьютер управляет потоком данных, которые передаются через UUCP-соединение. После завершения фазы подтверждения открытия соединения ведущий компьютер берет управление сеансом на себя и выдает ведомому команды. Для управления работой ведомого компьютера имеется пять команд. Они показаны на рис. 9.2 с направлением действия.

 

 

Команды передачи данных в UUCP

Рис. 9.2.  Команды передачи данных в UUCP

 

 

Команда для передачи файла

Для передачи файла с ведущего компьютера на ведомый используется команда S. Ведомый компьютер может либо принять запрос на передачу файла, либо отклонить его. Формат команды S следующий:

 
S fileout filein user -options temp mode notify size

fileout - имя файла, который ведущий компьютер собирается передать. Перед файлами, которые находятся в рабочем каталоге пользователя, ставится ~USER/, а перед файлами, которые находятся в общей области UUCP, - ~/.

 

filein - имя файла, под которым ведомый компьютер должен сохранить принятый файл. Если имя файла начинается с X., то это означает выполняемый файл, который будет запущен на ведомом компьютере с помощью команды uux. Если же перед именем файла стоит D., то это значит, что файл данных будет использоваться выполняемым файлом.

 

Имя пользователя, запросившего передачу файла, указывается в параметре user.

 

Дополнительные параметры для передачи файла можно задать с помощью параметра -options. Все значения этого параметра указаны ниже в табл. 9.3.

 
Таблица 9.3. Параметры команды S
Параметр Описание
C Файл следует сохранить в каталог UUCP spool ведомого компьютера
c Файл следует сохранить, как указано в filein
d Создать на ведомом компьютере каталог согласно filein
f Не создавать на ведомом компьютере каталоги и прервать передачу
m Ведущий компьютер после передачи файла передает почту
n После передачи файла ведомый компьютер должен послать почтовое сообщение на адрес, указанный в параметре notify
 

Параметр temp - это имя временного файла в каталоге UUCP spool, если задан параметр C. В другом случае параметр temp не требуется и удаляется после успешной передачи файла.

 

Параметр mode представляет собой восьмеричное число, которое отображает режим доступа к файлу согласно системе ограничения доступа в ОС UNIX. Как правило, для файла применяется режим доступа 0666, т.е. чтение/запись для пользователя, группы и всех других пользователей системы. Однако файл в служебной области UUCP (каталог spool) может иметь режим доступа 0600, чтобы другие пользователи не могли читать файл или записывать в него.

 

Почтовый адрес, который задается в параметре notify используется для посылки уведомления. Если не указан пользователь для уведомления, но задан параметр size, то параметру notify задается пустое значение "" или dummy.

 

Параметр size используется в Taylor UUCP для указания размера передаваемого файла (в байтах).

 

После того как выдана команда S, ведомый компьютер должен ответить на нее для определения дальнейших условий передачи. Все ответы на команду S также начинаются на S. В табл. 9.4 показаны возможные коды ответов на команду S.

 
Таблица 9.4. Коды ответов на команду S
Код ответа Описание
SY Все параметры опознаны; начать передачу файла
SN2 Передача файла не будет успешно закончена
SN4 Ведомый компьютер не может создать временный файл для данного сеанса
SN6 Используется в Taylor UUCP; ведомый компьютер сообщает о том, что файл слишком большой и он не может его сохранить на данный момент
SN7 Используется в Taylor UUCP; ведомый компьютер сообщает о том, что файл слишком большой и он не сможет его передать
 

Если на команду S получен ответ SY, то ведущий компьютер начинает передачу данных по протоколу, определенному в фазе подтверждения открытия соединения. Затем, после передачи файла, ведомый компьютер должен выдать код, сообщающий о состоянии передачи. В табл. 9.5 указаны возможные коды завершения передачи данных по команде S.

 
Таблица 9.5. Коды завершения передачи файла
Код Описание
CY Передача файла завершена успешно
CN5 Временный файл не может быть удален из каталога, указанного в filein
 

После того как ведущий компьютер получил код завершения от ведомого, передача данных заканчивается и ведущий компьютер готов к передаче другого блока данных или к прекращению сеанса UUCP.

 

Команда на прием файла

Команда R используется ведущим компьютером для приема файлов от ведомого компьютера. Формат этой команды следующий:

 
R fileout filein user -option size

Здесь fileout - имя файла на ведомом компьютере. Этот файл не обязательно должен находиться в общей области UUCP - каталоге spool. Кроме того, для обозначения всех файлов из каталога разрешено использовать обобщающий символ (*).

 

Соответственно, filein - это имя файла, под которым ведущий компьютер должен сохранить принятый файл.

 

Имя пользователя, запросившего прием файла, указывается в параметре user.

 

Дополнительные параметры для приема файла можно задать с помощью параметра -options. Значения этого параметра приведены в табл. 9.6.

 
Таблица 9.6. Параметры команды R
Параметр Описание
d Ведущий компьютер должен создать каталоги согласно filein
f Ведущий компьютер не должен создавать каталоги согласно filein и прием должен быть прерван
m Ведущий компьютер должен выслать по электронной почте уведомление после окончания приема файла
 

Параметр size показывает наибольший размер файла, который ведущий компьютер сможет принять от ведомого.

 

На команду R ведомый компьютер должен ответить специальным кодом, который отображает состояние передачи файла. Коды ответов ведомого компьютера на команду R представлены в табл. 9.7.

 
Таблица 9.7. Коды ответов на команду R
Код ответа Описание
RY mode Ведомым компьютером файл передан успешно. Параметр mode указывает, что права доступа к файлу fileout должны быть перенесены на filein
RN2 Ведомый компьютер не смог передать файл. Возможные причины: файл не существует или не соответствуют права доступа к файлу
RN6 Используется в Taylor UUCP. Сигнализирует о том, что размер файла превысил отведенный ему лимит
 

Если получен код ответа RY, то ведомый компьютер начинает передачу файла ведущему по оговоренному UUCP-протоколу. По окончании передачи ведущий компьютер посылает ведомому код завершения. В табл. 9.8 приведены возможные коды завершения.

 
Таблица 9.8. Коды завершения приема файла
Код Описание
CY Файл принят успешно
CN5 Временный файл не может быть удален из каталога, указанного в filein
 

После того как ведущий компьютер выдал код завершения, передача файла считается законченной. Далее ведущий компьютер может осуществлять передачу других файлов или прекратить сеанс.

 

Команда на выполнение

В реализации Taylor UUCP команда E используется для выполнения команд на ведомом компьютере. Как уже отмечалось ранее, для выполнения команд на ведомом компьютере в UUCP используется передача выполняемого файла с помощью команды S, перед которым ставится X.. Когда ведомый компьютер принимает такой файл, он выполняет команду uux для принятого файла. В реализации Taylor UUCP делается попытка улучшить эту процедуру путем введения команды E. Формат команды E следующий:

 
E fileout filein user -options temp mode notify size command

Параметры fileout, filein, user, temp, mode, notify и size работают точно так же, как и в команде S. Отличия наблюдаются лишь в параметрах команды -options, которые представлены в табл. 9.9.

 
Таблица 9.9. Параметры команды E
Параметр Описание
C Файл с именем filein скопирован в рабочий каталог UUCP spool
c Файл c с именем filein не был скопирован в рабочий каталог UUCP spool
N Электронное сообщение с уведомлением о состоянии выполнения команды не высылать
Z Выслать электронное сообщение с уведомлением о состоянии выполнения команды
R Выслать электронное сообщение с уведомлением о состоянии выполнения команды на адрес, указанный в параметре notify
e Команда должна быть выполнена с помощью /bin/sh , а не uux
 

А параметр command задает команду Linux, которая должна выполняться на ведомом компьютере. После того как выдана команда E, ведомый компьютер должен ответить на нее, используя определенный код. Коды ответов E идентичны кодам ответов S, в них лишь первая буква заменяется на E. Таким образом, когда ведущий компьютер получает код ответа EY, то считается, что обмен данными прошел успешно. Далее ведущий компьютер переводится в режим готовности к передаче очередных данных или прекращает сеанс работы.

 

Команда на передачу данных удаленному хосту

Одним из средств заставить ведомый хост передать файл на другой хост является команда X. С помощью команды X на ведомом компьютере запускается команда uucp с параметрами (см. раздел "Команды UUCP" далее в этой лекции). Формат команды X следующий:

 
X fileout filein user

Здесь fileout определяет имя файла, который должен быть передан ведомым компьютером с помощью команды uucp.

 

Параметр filein - это имя файла и путь, по которому ведомый компьютер должен доставить файл. Здесь имеют силу соглашения о маршрутах UUCP вида hostname!filename, где hostname - имя удаленного хост-компьютера. Таким образом, ведущий компьютер может инициировать передачу файла с ведомого компьютера на другой удаленный хост-компьютер в сети UUCP.

 

Ведомый компьютер на данную команду может выдавать только два кода ответов. Код ответа XY говорит о том, что команда принята и задание поставлено в очередь на выполнение. Код ответа XN означает, что ведомый компьютер отказался выполнить эту команду.

 

Команда на останов

Для закрытия сеанса UUCP ведущим компьютером используется команда H. Она посылается ведомому компьютеру без параметров и опций. Ведомый компьютер может ответить на нее двумя кодами.

 

Код ответа HY говорит о том, что ведомый компьютер согласен прекратить сеанс и разорвать соединение. Затем ведущий компьютер должен повторить этот код ответа и разорвать соединение.

 

Код ответа HN с ведомого компьютера говорит о том, что он согласен прекратить текущий сеанс, но желает начать новый сеанс с этим же хостом, но уже в роли ведущего компьютера. При этом ведомый компьютер принимает на себя полномочия ведущего и выдает бывшему ведущему команды на передачу файлов. После завершения передачи новый ведущий компьютер может послать команду H, и тогда новый ведомый либо прекратит сеанс, либо вновь произведет смену ролей и организует новый сеанс (весьма похоже на работу системы "клиент-сервер", не так ли?).

 

Подтверждение на закрытие соединения

Закрытие соединения в UUCP - ничего более, чем простая формальность в протоколе. В этой фазе обе стороны соглашаются закрыть UUCP-соединение (согласно всем канонам связи). Как и в фазе подтверждения открытия соединения, здесь ведется обмен пакетами, начинающимися на 0x10 (шестнадцатеричное) и заканчивающимися на 0x00 (шестнадцатеричное). При этом ведущий компьютер инициирует завершение соединения, посылая пакет с шестью нулями (000000). Если ведомый компьютер согласен закрыть соединение, он также отвечает пакетом с шестью нулями (000000). С этого момента UUCP-соединение считается закрытым, и модемная линия может быть сброшена.

 

Пример сеанса UUCP

Чтобы более наглядно представить себе сложную структуру команд UUCP, рассмотрим листинг 9.1, где показан пример сеанса UUCP между ведущим и ведомым компьютерами.

 
1 SLAVE: Shere=ispmail
2 MASTER: Sshadrach
3 SLAVE: ROK
4 SLAVE: Pgi
5 MASTER: Ui
6 MASTER: S test1.txt /home/rich/test1.txt rich x 066 dummy 1000
7 SLAVE: SY
8 - data transfer begins --
9 SLAVE: CY
10 MASTER: R /home/rich/test2.txt test2.txt rich 1500
11 SLAVE: RY 0666
12 - data transfer begins --
13 SLAVE: CY
14 MASTER: H
15 SLAVE: HY
16 MASTER: 000000
17 SLAVE: 0000000

Листинг 9.1. Пример сеанса UUCP

После того как ведущий хост открыл UUCP-соединение, ведомый хост-компьютер выдает приглашение в строке 1. На него в строке 2 ведущий хост отвечает сообщением о подтверждении открытия соединения. Далее в строке 4 ведомый хост запрашивает ведущего о типе протокола UUCP, который тот собирается использовать. Для этого ведомый хост выводит список поддерживаемых им протоколов. Как видите, в строке 5 ведущий хост выбрал тип протокола, по которому они будут работать в течение сеанса.

 

В строке 6 показано, как ведущий хост с помощью команды S посылает файл на ведомый компьютер. Далее, в строке 7 ведомый компьютер соглашается принять файл, и в строке 8 происходит собственно передача файла. После ее завершения, в строке 9 ведомый хост-компьютер выдает код CY.

 

В строке 10 производится передача еще одного файла, инициированная ведущим компьютером. Ведомый хост соглашается в строке 11 обработать и этот запрос. И далее, в строке 12 происходит передача второго файла. Когда передача файла завершена, в строке 13 ведомый компьютер выдает код успешного завершения CY.

 

В строке 14 ведущий хост выдает запрос на закрытие UUCP-соединения, на что в строке 15 ведомый хост отвечает утвердительно. Далее, в строках 16 и 17 идет обмен стандартными пакетами на закрытие соединения. С этого момента UUCP-соединение закрыто, и модемное соединение сбрасывается.

 

Типы протоколов UUCP

В фазе подтверждения открытия соединения UUCP два компьютера договариваются о типе протокола UUCP, по которому они будут работать во время сеанса. В описании протокола UUCP говорилось о том, что его ядро можно инкапсулировать в другой протокол для сохранения целостности данных при передаче. Так, например, обычные телефонные линии имеют высокий уровень шумов, что требует более мощной процедуры для коррекции ошибок, чем алгоритм исправления ошибок в TCP/IP. Для реализации различных методов коррекции ошибок было разработано несколько типов протоколов UUCP. В табл. 9.10 представлены наиболее популярные из них, которые мы рассмотрим здесь более подробно.

 
Таблица 9.10. Протоколы UUCP
Протокол Описание
g Самый первый протокол UUCP. Предоставляет широкие возможности для коррекции ошибок
i Обеспечивает высокоскоростную передачу данных одновременно в обоих направлениях
t Используется для реализации UUCP через TCP/IP. Коррекция ошибок не обеспечивается
e Еще одна реализация TCP/IP с применением управляющих пакетом в формате ASCII
 

Протокол g

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

 

В протоколе g используется шестибайтный заголовок, который присоединяется к пакету UUCP. Кроме обычных пакетов данных, в протоколе g предусмотрены специальные управляющие пакеты UUCP. С их помощью на основе параметров, полученных во время подтверждения открытия соединения, протокол g может управлять UUCP-соединением. На рис. 9.3 представлен заголовок пакета протокола g.

 

 

Заголовок пакета протокола g

Рис. 9.3.  Заголовок пакета протокола g

 

 

В протоколе g в начале пакета применяется значение 0x10 (шестнадцатеричное), позаимствованное из ядра протокола UUCP. Далее следует значение К-байт. Величина К-байт показывает длину поля данных в пакете. Как уже отмечалось ранее, в поле данных протокола содержится ядро пакета UUCP. В табл. 9.11 представлены возможные значения К-байт.

 
Таблица 9.11. Значения К-байт в протоколе g.
Значения К-байта Длина поля данных (байт)
1 32
2 64
3 128
4 256
5 512
6 1024
7 2048
8 4096
9 0
 

Особый случай представляет собой значение К-байт, равное 9. В этом случае пакет протокола g не содержит данных и представляет собой управляющий пакет. Управляющие пакеты помогают компьютерам организовать канал связи и выполняют коррекцию ошибок для ядра в пакетах UUCP.

 

Байты контрольной суммы используются для обнаружения ошибок в процессе передачи пакета. Для вычисления контрольной суммы пакета используется специальный алгоритм. Затем это значение включается в пакет. Принимая пакет, удаленный компьютер снова вычисляет значение контрольной суммы и сравнивает его с тем, что содержится в пакете.

 

Байт управления связан со значением К-байт и определяет назначение управляющего пакета. Формат байта управления показан на рис. 9.4. В зависимости от значения К-байт, меняются и параметры в байте управления.

 

 

Формат байта управления в протоколе g

Рис. 9.4.  Формат байта управления в протоколе g

 

 

Если же значение К-байт равно 9, то байт управления определяет, какое управляющее действие должно быть выполнено на одном из двух компьютеров. Биты TT установлены в 0, а биты XXX представляют собой код операции управления. В битах YYY указывается значение операции управления. В табл. 9.12 приведены возможные значения битов XXX.

 
Таблица 9.12. Значения битов XXX в байте управления протокола g
Значение Мнемоника Описание
1 CLOSE Уведомление удаленного компьютера о том, что передатчик желает закрыть UUCP-соединение. Отметим, что это относится к завершению соединения по протоколу g , а не к завершению всего UUCP-соединения, хотя, как правило, это приводит к переходу в фазу подтверждения о закрытии UUCP-соединения
2 RJ Последний пакет был принят неправильно. В битах YYY отображается порядковый номер последнего принятого пакета
3 SRJ Пакет с определенным порядковым номером принят неправильно. Требуется повторить пакет. В битах YYY отображается порядковый номер неправильно принятого пакета. Этот код управления обычно в UUCP не используется
4 RR Пакет с определенным порядковым номером принят правильно. В битах YYY отображается порядковый номер последнего принятого пакета
5 INITC Идентифицирует последний управляющий пакет в фазе подтверждения установления соединения. Ведущий и ведомый компьютер посылают управляющий пакет INITC. В битах YYY отображается максимальный размер окна, которое будет использоваться в пакете. После того как компьютер принимает пакет INITC от другого компьютера, фаза подтверждения установления соединения в протоколе g считается завершенной.
6 INITB Идентифицирует второй управляющий пакет при подтверждении установления соединения. Ведущий и ведомый компьютер посылают управляющий пакет INITB. В битах YYY отображается наибольший размер пакета, который может быть принят компьютером. Значения здесь фактически идентичны значениям К-байт (со сдвигом на одно значение). Таким образом, значение INITB, равное 1, соответствует 64 байтам, 2 - 128 байтам и т.д.
7 INITA Идентифицирует начало фазы подтверждения установления соединения в протоколе g . Ведущий и ведомый компьютер посылают управляющий пакет INITA. Биты YYY отображают максимальный размер окна, которое может быть принято компьютером
 

Если значение К-байт меньше 9, то байт управления выполняет другие функции. В этом случае байт управления определяет тип пакета данных. Например, если значение битов ТТ равно 2, то это - длинный пакет данных. Если биты ТТ равны 3, то мы имеем дело с коротким пакетом данных.

 

В длинном пакете данных биты XXX и YYY байта управления используются для указания порядкового номера (XXX) пакета и номера уведомления (YYY). Каждому пакету присваивается порядковый номер и номер уведомления для того, чтобы можно было отследить потерю пакетов. Потерянные пакеты затем передаются повторно. Все байты, следующие в пакете за байтом управления (в зависимости от значения K-байт), содержат данные. В них и заключается ядро пакета UUCP.

 

Короткие пакеты данных имеют незначительные отличия. Так, в них биты XXX и YYY байта управления используются для указания порядкового номера пакета и номера уведомления, но при этом первые два байта в поле данных отображают разницу между физическим и логическим размерами пакета. Как показано в табл. 9.11, значение K-байт, равное 1, указывает на то, что будет посылаться пакет данных длиной 32 байта. Если же у передатчика менее 32 байт данных, то он должен использовать короткий пакет данных. При этом первые два байта отображают разницу между логическим размером данных (32) и действительным физическим размером данных.

 

Если это соотношение меньше 128, то используется всего один байт из поля данных. В противном случае из поля данных используются два байта. Первый бит поля данных показывает, сколько байт будет использоваться для отображения соотношения размеров. Если этот бит установлен в 0, используется один байт, а значение 1 указывает на то, что используется два байта.

 

Последний байт в заголовке пакета протокола g используется для обнаружения ошибок. В качестве проверки на наличие ошибок в заголовке используется байт XOR. По сути, здесь производится операция "Исключающее ИЛИ" над значением K-байт, контрольной суммой и байтом управления. Эта операция выполняется для последней проверки на наличие ошибок в пакете протокола g. Этот байт используется в протоколе g благодаря его способности работать на зашумленных линиях с большим коэффициентом ошибок.

 

Протокол i

Протокол i был написан Яном Тейлором (Ian Taylor) для кадра Taylor UUCP. Его работа в чем-то подобна протоколу g, но в то же время в нем предусмотрена возможность одновременной передачи данных в обоих направлениях. Согласно протоколу i, с целью увеличения пропускной способности, когда это возможно, в кадре применяются окна больших размеров. В протоколе i применяется пять различных типов пакетов. В табл. 9.13 дается описание типов пакетов протокола i.

 
Таблица 9.13. Типы пакетов в протоколе i
Тип пакета Описание
Data Пакет данных
SYNC Пакет инициализации протокола
ACK Пакет уведомления
NAK Пакет негативного уведомления
SPOS Смена позиции файла
CLOSE Закрытие сеанса UUCP
 

Протокол t

Протокол t используется для передачи пакетов UUCP через соединение TCP/IP. Соединение по протоколу TCP/IP предусматривает метод помещения пакетов в очередь и коррекцию ошибок. Таким образом, поддержка этих возможностей не входит в функции протокола t. Для передачи пакетов в протоколе t применяются длинные блоки. Пакеты управления кратны 512 байтам, в то же время пакеты данных посылаются блоками, кратными 1024 байтам.

 

Протокол e

Подобно протоколу t, протокол e также был разработан для работы в сетях TCP/IP. В нем также не выполняется коррекция ошибок или постановка пакетов в очередь. Для передачи пакетов управления в нем используется обычный ASCII-текст. До передачи файла его размеры посылаются в десятичном виде принимающей стороне.

 

Протокол Taylor UUCP

Наиболее популярной реализацией протокола UUCP является протокол Taylor UUCP, разработанный Яном Тейлором (Ian Taylor). Для определения хостов UUCP, прав доступа, модемов, сценариев для установления соединения, а также параметров соединения в протоколе Taylor UUCP используется набор файлов конфигурации. В версиях ОС Linux Red Hat, Caldera и Mandrake эти файлы находятся в каталоге /etc/uucp. На рис. 9.5 представлена схема взаимодействия файлов конфигурации. В файлах конфигурации параметры для UUCP-соединения задаются в текстовом виде в формате ASCII.

 

Для сервера под управлением ОС Linux функции ведущего или ведомого компьютера в UUCP-соединении также задаются в файлах конфигурации. Кроме того, в них задаются настройки для "неизвестного" хоста, что позволяет любому хосту подключаться к серверу UUCP и осуществлять с ним прием и передачу файлов в общедоступном каталоге. В последующих разделах мы подробнее остановимся на файлах конфигурации для Taylor UUCP.

 

 

Схема взаимодействия файлов конфигурации для Taylor UUCP

Рис. 9.5.  Схема взаимодействия файлов конфигурации для Taylor UUCP

 

 

Файл конфигурации config

В файле config задаются настройки локального хоста UUCP. Все параметры изначально имеют значения по умолчанию, которые можно изменять в соответствии со своими потребностями. В табл. 9.14 представлены параметры, которые имеются в файле config.

 
Таблица 9.14. Параметры файла config для Taylor UUCP
Параметр Описание
hostname Задает имя узла UUCP
nodename То же, что и hostname
uuname То же, что и hostname
spool Местонахождение каталога UUCP spool
pubdir Местонахождение каталога UUCP public
lockdir Местонахождение каталога UUCP lock
unknown Команды из файла sys, разрешенные анонимным хостам UUCP
max-uuqxts Максимальное количество запущенных параллельно процессов uuqxt
run-uuxqt Запуск программы uuqxt по запросу uucico
timetable Текстовое описание режима работы
v2-files Работа с файлами конфигурации UUCP версии 2
hdb-files Работа с файлами конфигурации UUCP типа Honeydanber
sysfile Местонахождение файла (или файлов) sys
portfile Местонахождение файла (или файлов) port
dialfile Местонахождение файла (или файлов) dial
dialcodefile Местонахождение файла (или файлов) dialcode
callfile Местонахождение файла (или файлов) call
passwdfile Местонахождение файла (или файлов) passwd
logfile Местонахождение файла (или файлов) UUCP log
statfile Местонахождение файла (или файлов) UUCP stat
debugfile Местонахождение файла (или файлов) UUCP debug
debug Определение уровня отладки
 

Параметры hostname, nodename и uuname являются синонимами и обычно используется только один из них. Они предназначены для задания имени узла UUCP серверу под управлением ОС Linux.

 

Параметры spool, pubdir и lockdir используются для изменения местоположения каталога spool, каталога public и каталога lock от заданных по умолчанию. В каталоге spool временно хранятся файлы, предназначенные для передачи или приема по UUCP перед их отправкой в пункт назначения. В каталог public удаленные хосты могут помещать (или брать из него) файлы без специальных прав доступа. В этом каталоге они имеют все необходимые права для передачи и приема по UUCP. В каталоге lock находятся файлы lock. Они предназначены для того, чтобы другие процессы не смогли вызвать хост, занятый в сеансе UUCP. С этой целью они и создаются при вызове хоста UUCP.

 

Параметр unknown определяет поведение анонимных хостов UUCP. Если не задан список команд unknown, то анонимные UUCP-соединения не разрешены. Обычно за параметром unknown следуют параметры файла sys, в которых определяется поведение анонимного хоста UUCP, подобно тому, как это делается для обычного хоста UUCP. В файл config параметры unknown можно включать несколько раз. При работе с электронной почтой через UUCP-соединение этот параметр, как правило, не нужен. Параметр unknown может использоваться лишь для организации доступа анонимным хостам UUCP к общедоступному каталогу public.

 

Параметр timetable позволяет определять режим запуска других файлов конфигурации. Обычно время запуска в нем определяется в виде дня недели и часов, когда разрешен доступ. Например, Tu0800-2000 означает, что доступ разрешен по вторникам с 8 утра до 8 вечера. В команде можно также задавать имя определенному интервалу времени, например, таким образом:

 
timetable WorkHours Wk0800-1730

С помощью этой команды интервалу времени с 8 утра до 17:30 вечера с понедельника по пятницу присваивается имя WorkHours. Затем это имя можно использовать в других файлах конфигурации для задания временных интервалов. В листинге 9.2 представлен пример файла config.

 
nodename shadrach
logfile /var/log/uucp

Листинг 9.2. Пример файла config для Taylor UUCP

В строке 1 задается имя хоста UUCP для локального компьютера, а в строке 2 задается местоположение файлов отчета UUCP. Как правило, это все, что нужно для работы файла config. Как видите, не так уж сложно.

 

Файл конфигурации sys

В файле sys задаются хосты UUCP для сервера с ОС Linux. Каждый удаленный хост имеет в файле sys отдельный раздел, где описываются специфические параметры при подключении к нему. В табл. 9.15 представлены параметры, определяемые в файле sys.

 
Таблица 9.15. Параметры файла sys для Taylor UUCP
Параметр Описание
system Задает имя узла UUCP удаленной стороны
alternate Определяет дополнительные параметры
default-alternates Если установлен в false, то не использовать дополнительные параметры
alias Определяет псевдоним для удаленной стороны
mynarne Задает другое имя локальному хосту UUCP при соединении с определенным удаленным хостом
time Определяет момент вызова системы
timegrade Определяет интервалы времени запуска специфических заданий
max-retries Определяет максимальное число попыток повторить соединение после обрыва
success-wait Определяет интервал ожидания после успешного соединения
call-timegrade Определяет класс специфических заданий, запускаемых в определенное время
speed Устанавливает скорость соединения
port Определяет тип используемого порта из файла port
phone Определяет номер для дозвона к удаленной системе
chat Определяет сценарий для соединения с удаленной системой
chat-timeout Устанавливает интервал ожидания при выполнении сценария дозвона
chat-fail Определяет строки текста, выводимые при аварийном завершении сценария дозвона
call-login Устанавливает идентификатор пользователя при выполнении процедуры входа в сценарии chat
call-password Устанавливает пароль при выполнении процедуры входа в сценарии chat
callback Определяет необходимость вызова локальной системы удаленной системой (обратный вызов)
protocol Определяет протоколы UUCP, которые поддерживаются в системе
send-request Разрешает удаленной системе запрашивать файлы с локальной системы
receive-request Разрешает удаленной системе посылать файлы на локальную систему
local-send Разрешает локальному пользователю посылать файлы из указанных каталогов удаленной системе
remote-send Разрешает удаленному пользователю посылать файлы из указанных каталогов удаленной системе
local-receive Разрешает локальному пользователю принимать файлы в указанные каталоги
remote-receive Разрешает по запросу удаленного пользователя принимать файлы в указанные каталоги
forward-to Определяет системы, которым могут пересылаться файлы
forward-from Определяет системы, от которых могут приниматься файлы
forward Определяет системы, которым и от которых могут пересылаться файлы
commands Определяет список команд, обязательных для выполнения удаленной системой
 

Параметр system открывает раздел свойств для удаленного узла. Далее каждое свойство удаленного узла задается по порядку. Параметр port определяет в файле port раздел, который отвечает за вызов удаленной системы. В файле sys для передачи электронной почты не требуются параметры, описывающие права доступа. Если параметром protocol не задан список протоколов, то хосты UUCP пытаются автоматически договориться о типе протокола UUCP, который они будут использовать в течение сеанса. Если оба хоста поддерживают протокол Taylor UUCP, то скорее всего они остановятся на протоколе i. Протоколы, выбранные для сеанса, также могут быть настроены с помощью набора соответствующих параметров.

 

Параметр commands полезен для проверки безопасности. Когда, например, удаленный узел передает электронную почту по UUCP, он отдает команду rmail другому удаленному узлу. Чтобы ограничить доступ в UUCP только обработкой почты, можно команде rmail разрешить запуск только от удаленной системы. В листинге 9.3 представлен пример файла sys.

 
system ispmail
time Wk0800-1730
phone 555-1234
port modem1
speed 38400
chat ogin: shadrach word: guitar

system isp2mail
time Wk0800-1730
phone 555-4321
port modem2
speed 38400
chat ogin: backup word: bass

Листинг 9.3. Пример файла sys в протоколе Taylor UUCP

В листинге 9.3 представлены два хоста UUCP, с которыми локальный хост должен поддерживать соединение. Для каждого из них в файле sys отведен свой раздел. В каждом разделе, как видите, задаются параметры подключения к удаленному хосту UUCP.

 

Файл конфигурации port

Файл port используется для задания способов подключения в сеансе UUCP. В одном файле port можно задавать сразу несколько портов. Каждый раздел в файле, описывающий новый порт, начинается с параметра port. Параметры, имеющие силу для всех портов, должны задаваться перед первым параметром port, который встречается в файле. В табл. 9.16 представлены параметры, которые задаются в файле port.

 
Таблица 9.16. Параметры, задаваемые в файле port
Параметр Описание
port Определяет имя нового соединения
type Определяет тип соединения
protocol Определяет протокол, разрешенный для применения
reliable Логическое значение для ведения переговоров о протоколе через ненадежное соединение
half-duplex Логическое значение, которое позволяет протоколам определить полудуплексное соединение
device Определяет устройство в ОС Linux, которое работает с данным портом
speed Определяет скорость порта
carrier Логическое значение, которое определяет поддержку портом обнаружения несущей
hardflow Логическое значение, которое определяет поддержку портом аппаратного управления потоком
dialer Определяет, какую программу дозвона использовать из файла dialer
service Определяет, какой номер TCP-порта использовать при TCP-соединении
command Определяет, какую команду использовать, если идет работа по порту конвейерного типа
 

Задание параметров для каждого порта начинается с параметра port. В этом параметре задается имя порта удаленного хоста, согласно файлу sys. Параметр type определяет тип порта. Возможные типы портов представлены в табл. 9.17.

 
Таблица 9.17. Типы портов Taylor UUCP
Тип Описание
modem Модемное соединение
stdin Порт со стандартным вводом-выводом
direct Прямое соединение с удаленной системой (нуль-модем)
tcp Соединение TCP/IP
tli Соединение TLI
pipe Соединение с использованием конвейера для другой программы
 

Тип порта modem применяется для идентификации модемного соединения с удаленным хостом. Для поддержки соединения, где в качестве процедуры входа используется uucico (см. раздел "Реализации протокола UUCP в ОС Linux"), применяется тип порта stdin. Для осуществления UUCP-соединения через существующее TCP/IP-соединение используется тип порта tcp. Такое подключение может осуществляться несколькими методами. Например, сервер электронной почты на базе ОС Linux может предоставить уже установленное РРР-соединение для почтового сеанса по протоколу UUCP. Конвейерный порт с типом pipe может передавать управление UUCP-соединением другой программе, указанной в параметре command. В листинге 9.4. представлен пример файла port.

 
port modem1
type modem
device /dev/ttyS0
speed 38400
dialer normal

port modem2
type modem
device /dev/ttyS1
speed 38400
dialer normal

Листинг 9.4. Пример файла port в протоколе Taylor UUCP

Все порты, которые могут использоваться в UUCP, указываются в файле port. В листинге 9.4 показано, как сконфигурировать два модема для работы с UUCP. Обратите внимание на то, что каждый из них имеет свое имя.

 

Файл конфигурации dial

В файле dial задаются параметры вызова удаленного хоста модемом. Параметр dialer определяет начало раздела в файле конфигурации. Как и в файле port, в каждом разделе задаются параметры вызова удаленного хоста. В файл dial может включаться несколько разделов. Все они будут начинаться с параметра dialer. Общие для всех хостов параметры должны указываться перед первой записью с параметром dialer. В табл. 9.18 представлены параметры, которые могут включаться в файл dial.

 
Таблица 9.18. Параметры, задаваемые в файле dial
Параметр Описание
dialer Определяет, какую программу дозвона использовать
chat Определяет сценарий дозвона на удаленный хост
chat-timeout Определяет интервал ожидания при выполнении сценария дозвона
chat-fail Определяет строку, которая выдается в случае аварийного завершения сценария дозвона
dialtone Строка, посылаемая на модем, для ожидания второго сигнала станции
carrier Логическое значение, которое определяет поддержку модемом обнаружения несущей
carrier-wait Определяет интервал ожидания несущей
dtr-toggle Логическое значение, которое определяет, будет ли хост сбрасывать сигнал DTR перед использованием модема
complete-chat Определяет последовательность символов в сценарии, посылаемых при завершении сеанса UUCP
 

В сценарии дозвона имеются переменные, которые могут принимать значения из других файлов конфигурации без повторения их в файле dial. В табл. 9.19 приведен список переменных, которые могут использоваться в сценариях chat.

 
Таблица 9.19. Переменные, задаваемые в сценариях chat
Переменная Описание
\T Телефонный номер с трансляцией кода дозвона
\D Телефонный номер без трансляции кода дозвона
\M Несущая не требуется
\m Несущая требуется
 

В листинге 9.5 показан пример файла dial, который может использоваться для конфигурирования Taylor UUCP.

 
dialer normal
сhat "" ATZ OK ATDT\T CONNECT

Листинг 9.5. Пример файла dial в протоколе Taylor UUCP

В строке 1 определяется имя программы дозвона, которое будет использоваться далее в файле port. Вторая строка определяет необходимый сценарий для дозвона к удаленному хосту UUCP через модем. Переменная \T используется здесь для вставки номера телефона, заданного в строке dial в файле port.

 

Команды UUCP

После того как конфигурационные файлы созданы, ОС Linux практически готова для работы по UUCP с удаленными хостами. Однако для установления соединения и обмена данными в ОС Linux необходим определенный набор команд. Как мы знаем, стандартом для ОС Linux является пакет Taylor UUCP. В него входит набор команд, которые позволяют управлять протоколом UUCP. Некоторые команды зарезервированы для системного использования, но имеется набор команд, с помощью которых администратор может управлять UUCP-соединениями. Кроме того, если пользователям разрешено обмениваться файлами на сервере под управлением ОС Linux, то пакет для поддержки Taylor UUCP предоставляет и такую возможность.

 

Команда uucico

Для обработки UUCP-запросов применяется команда uucico. Как правило, запросы формируются пользователями, но некоторые запросы генерируются самой системой. Функцией команды uucico является вызов удаленных хостов и установление с ними UUCP-соединения для передачи данных. Формат команды uucico следующий:

 
uucico [options]

Когда команда uucico задана без параметров, то процесс запускается в режиме ведомого и ожидает появления запроса с удаленного устройства. В ОС Linux для программы uucico принято создавать отдельный идентификатор пользователя, который она далее использует в качестве оболочки по умолчанию. Это позволяет удаленному хосту регистрироваться на сервере и автоматически устанавливать UUCP-соединение. Параметры, используемые в команде uucico, представлены в табл. 9.20.

 
Таблица 9.20. Параметры команды uucico
Параметр Описание
-r1 Запуск в режиме ведущего
-r0 Запуск в режиме ведомого
-s nodename Вызов системы с именем nodename
-S nodename Срочный вызов системы с именем nodename, период ожидания игнорируется
-f Игнорируются все интервалы ожидания
-l Регистрация с помощью идентификатора пользователя и пароля
-p port Для вызова использовать порт port
-e Бесконечная петля приглашений для входа в систему в режиме ведомого
-w После дозвона ввести петлю с помощью -e
-q Не запускать uuxqt после завершения
-c Если по расписанию вызовы не предусмотрены, не вызывать и не писать в файл отчета
-C Вызывать только системы, указанные параметрами -s и -S
-D После завершения не отключаться от терминала
-u name Установить имя при регистрации в системе в name
-z Если вызов не прошел, попытаться вызвать альтернативные системы в соответствии с файлом sys
-i type Установить тип порта в type
-x type Включить режим отладки типа type
-I file Установить в качестве файла config файл с именем file
-v Показать номер версии команды
--help Вывод справки
 

Для того чтобы начать сеанс UUCP с удаленным хостом, введите:

 
uucico -s nodename

Здесь nodename идентифицирует имя удаленной системы. Когда программа uucico запускается в режиме хоста, система, в которой используется пакет Taylor UUCP, обращается к файлам конфигурации и начинает процесс установки UUCP-соединения. Когда соединение установлено, все задания на обмен данными по UUCP будут обработаны соответствующим образом.

 

Команда uuxqt

Как правило, команда uuxqt вызывается uucico после успешного установления UUCP-соединения для обработки всех команд uux. Внесем ясность. Программа uux помещает задания в очередь заданий UUCP, где они и обрабатываются. Если для подключения к удаленному хосту применялась команда uucico, то это, как правило, происходит автоматически.

 

Если в очереди много заданий, то иногда может понадобиться индивидуальная обработка наиболее важных заданий. Наиболее важные задания можно выполнить вручную, если в uucico задан параметр -q. Формат команды uuxqt следующий:

 
uuxqt [options]

Если в команде uuxqt не заданы параметры, то задания в буфере UUCP обрабатываются в том порядке, как они были помещены туда локальными или удаленными пользователями. В табл. 9.21 представлены параметры, которые могут быть заданы с командой uuxqt.

 
Таблица 9.21. Параметры команды uuxqt
Параметр Описание
-c command Запросы выполняются только для команды command
-s system Запросы выполняются только для системы system
-x type Включает режим отладки типа type
 

Для почтовых серверов особенно полезен параметр . Так, если задать команду rmail с параметром -c, то UUCP будет обрабатывать только почтовые запросы. Таким образом, ни один файл не покинет почтовый сервер и не будет принят по UUCP. Программе rmail запрещено передавать сообщения локальному агенту для передачи почты, коим обычно является программа sendmail (см. лекцию 11, "Установка и конфигурирование sendmail").

 

Команда uustat

Команда uustat является довольно мощным средством в протоколе UUCP. Она может применяться привилегированным пользователем root для проверки файла spool и получения отчета о заданиях как находящихся в очереди, так и выполняющихся. С ее помощью также можно удалять задания из очереди или запускать новые задания. В зависимости от выполняемых функций, меняется и формат команды uustat.

 

Для просмотра всех файлов, ожидающих в очереди на передачу, используется параметр -a. Параметр -K используется для удаления заданий в UUCP. Удаляемые задания можно идентифицировать по идентификатору задания, по имени системы, по имени пользователя или по другим признакам. В листинге 9.6 представлен пример работы команды uustat.

 
1 [rich@shadrach rich]$ uustat -a
2 ispmail.CLMcwusAADmB ispmail rich 10-02 06:57 Executing rmail Rich.Blum@isp.net
  (sending 387 bytes)
3 ispmail.CLNXU37AADmN ispmail rich 10-02 06:58 Executing rmail rich@smallorg.org
  (sending 390 bytes)
4 ispmail.CLOJEcNAADmT ispmail rich 10-02 06:59 Executing rmail prez@microsoft.com
  (sending 456 bytes)
5 ispmail.GLOpGOZAADmZ ispmail rich 10-02 06:59 Executing rmail postmaster@linux.org
  (sending 449 bytes)
6 [rich@shadrach rich]$

Листинг 9.6. Пример работы команды uustat

В строках 2–5 листинга 9.6 показан процесс постановки в очередь заданий на пересылку почты по UUCP. В первом поле указывается идентификатор задания. Во втором — удаленное имя хоста UUCP, а в третьем — имя пользователя, поместившего задание в очередь.

 

Команда uucp

Команда uucp используется пользователями для передачи файлов пользователям удаленных компьютеров. Формат команды uucp следующий:

 
uucp [options]
source destination

В роли source может выступать имя локального или удаленного файла. Имя файла на удаленной системе должно быть указано в формате:

 
remotehost!filepath

Здесь в качестве remotehost выступает имя хоста UUCP, на котором находится файл. Если файл находится на локальном компьютере, то указывать имя remotehost не нужно. В качестве параметра destination может выступать имя файла или каталога на локальном или удаленном компьютере.

 

Успешное выполнение команды uucp зависит от прав доступа, заданных в файлах конфигурации UUCP, для пользователя, который передает файл.

 

Команда uux

Команда uux применяется для выполнения команд на удаленном компьютере. Все заданные команды помещаются в очередь UUCP в каталог spool и выполняются, когда удаленный компьютер вызывается на сеанс UUCP командой uucico. Как правило, команда uux воспринимается как обычный файл, если ей не задан флаг выполняемого файла. На удаленном компьютере эта команда выполняется командой uuxqt.

 

Реализации протокола UUCP в ОС Linux

Как уже упоминалось ранее, пакет Taylor UUCP, написанный Яном Тейлором (Ian Taylor) является, по сути, стандартом для систем на базе ОС Linux. В большинство версий ОС Linux он включен в виде бинарного пакета. Так, в системе Mandrake Linux, CD с которой включен в эту книгу, имеется файл uucp-1/05.i586.rpm. Для установки его на своем компьютере запустите программу инсталляции RPM с правами пользователя root.

 

Если в имеющуюся у вас версию ОС Linux не входит поддержка UUCP, то можно получить исходный код программ с такой поддержкой и скомпилировать его для работы в вашей системе. Один из таких пакетов находится на сервере sunsite.unc.edu в каталоге /pub/Linux/systems/network/uucp. Это файл uucp-1.05.tar.gz. Если вы читаете эту книгу с начала, то уже должны знать стандартную процедуру установки и компиляции исходного кода в ОС Linux. Все же напомним ее еще раз.

 
  • Распакуйте файлы исходного кода в рабочий каталог с помощью команды
    tar -zxvf uucp-1.05.tar.gz
  • Измените рабочий каталог на вновь созданный подкаталог uucp-1.05.
  • Запустите программу configure, которая создает Makefile в соответствии с параметрами локальной системы. Если нужно изменить местоположение файлов конфигурации или отчета UUCP, то это также можно сделать, задав configure с определенными параметрами. Наберите configure -help, чтобы получить справку о параметрах.
  • Затем запустите утилиту GNU make, чтобы скомпилировать исходный код.
  • И, наконец, запустите с правами пользователя root утилиту make с параметром install, с помощью которой бинарные файлы помещаются в соответствующие каталоги.
 

После установки бинарных файлов можно начать конфигурирование UUCP. Для настройки работы сервера электронной почты под управлением ОС Linux с UUCP требуется определить набор исходных данных. К ним относятся метод и время дозвона до ведомого UUCP-компьютера. Ниже мы приведем несколько примеров конфигурирования сервера на базе ОС Linux для работы как ведущим, так и ведомым компьютером в сеансе UUCP. Как правило, ведущий UUCP компьютер вызывает хост UUCP (узел провайдера Internet) для отправки или доставки новой почты. Ведомый компьютер настраивается таким образом, чтобы он мог принимать UUCP-соединения от удаленного ведущего компьютера. Этот алгоритм может применяться в том случае, когда требуется передать почту с удаленного почтового сервера на главный почтовый сервер. На рис. 9.6 показана схема взаимодействия между ведущим и ведомым хостами в сеансе UUCP.

 

 

Схема взаимодействия ведущего и ведомого хостов в сеансе UUCP

Рис. 9.6.  Схема взаимодействия ведущего и ведомого хостов в сеансе UUCP

 

 

Ведущий компьютер в сеансе UUCP

Прежде всего необходимо выполнить настройки в файле config. Эта задача довольно проста, так как обычно изменять какие-либо параметры в этом файле не требуется. В листинге 9.7 представлен пример файла config для клиента.

 
nodename shadrach

Листинг 9.7. Пример конфигурации ведущего UUCP-компьютера в файле config (для Taylor UUCP)

Далее следует сконфигурировать файл sys, где задаются параметры вызова удаленного хоста. В листинге 9.8 представлен пример файла sys с параметрами для вызова хоста UUCP провайдера Internet в рабочие часы с целью проверки наличия почты.

 
system ispmail
time Wk0800-1730
phone 555-1234
port modem
speed 38480
chat ogin: shadrach word: guitar

Листинг 9.8. Пример конфигурации ведущего UUCP-компьютера в файле sys (для Taylor UUCP)

Сценарий дозвона chat определяет, какие строки должны быть приняты в процессе установления соединения и каким должен быть ответ. Таким образом, происходит регистрация uucico на удаленном сервере. Приведенный нами сценарий подразумевает, что удаленный хост UUCP в качестве оболочки по умолчанию будет запускать uucico. Если же это не так, то в сценарии указывают, что необходимо дождаться приглашения оболочки пользователя и лишь после этого посылать команду uucico.

 

Затем нужно задать параметры в файле port. В листинге 9.9 представлен пример файла port, где описываются параметры модема.

 
port modem
type modem
device /dev/ttyS0
speed 38400
dialer normal

Листинг 9.9. Пример конфигурации ведущего UUCP компьютера в файле port (для Taylor UUCP)

И последний файл конфигурации, который нам понадобится, это файл dial. В нем задаются параметры для связи с определенным портом. В листинге 9.10 представлен пример файла dial.

 
dialer normal
chat "" ATZ OK ATDT\T CONNECT

Листинг 9.10. Пример конфигурации ведущего UUCP-компьютера в файле dial (для Taylor UUCP)

Чтобы проверить правильность заданной конфигурации, пользователь, обладающий правами root, может набрать следующую команду:

 
uucico -f -x chat -s
ispmail

С помощью этой команды вы заставляете uucico звонить на UUCP-систему с именем ispmail, игнорируя все ограничения по времени, и вести файл отчета для процесса chat. По прошествии нескольких секунд вы должны услышать, как модем набирает номер удаленного сервера. Чтобы убедиться в успешности соединения, можно также проанализировать содержимое файла отчета UUCP (/var/log/uucp/Log). Соответствующие строки будут присутствовать и в файле /var/log/uucp/Debug.

 

Теперь, когда вы убедились в том, что UUCP-соединение работает нормально, следующим шагом будет автоматизация этого процесса. Лучше всего для этой цели использовать стандартный для ОС Linux процесс cron. Программа cron выполняется в фоновом режиме и считывает свой файл конфигурации, где задается время запуска каждой программы. Чтобы отредактировать файл конфигурации cron, пользователь с правами root должен задать команду:

 
cron -e

Затем добавьте в файл cron строки, показанные в листинге 9.11.

 
4,9,14,19,24,29,34,39,44,49,54,59 *
* * */usr/sbin/touch
Ä /var/spool/uucp/ispmail/C./C.ispmailA0000
5,10,15,20,25,30,35,40,45,50,55 * * * */usr/sbin/uucico -s ispmail

Листинг 9.11. Строки в файле cron для автоматического запуска UUCP

В первой строке каждые 5 минут создается файл, в котором uucico указывается опросить удаленный узел. Во второй строке запускается программа для обработки заданий из очереди.

 

Вопросы перенаправления почты через UUCP-соединение на почтовый узел провайдера Internet более подробно рассмотрены в лекции 13, "Подключение почтового сервера к провайдеру Internet".

 

Ведомый компьютер в сеансе UUCP

Ведомый компьютер в сеансе UUCP ожидает появления запросов на установление соединения от ведущих UUCP-компьютеров. И снова нам понадобится файл конфигурации config. Он представлен в листинге 9.12.

 
nodename ispmail

Листинг 9.12. Пример конфигурации ведомого UUCP компьютера в файле config (для Taylor UUCP)

За ним следует файл конфигурации sys. Поскольку ведомый компьютер не вызывает удаленные системы и доступ к файловым областям не предоставляется, то этот файл имеет тривиальный вид. Пример файла sys показан в листинге 9.13.

 
system shadrach
port dialin
time Never
commands rmail

Листинг 9.13. Пример конфигурации ведомого UUCP-компьютера в файле sys (для Taylor UUCP)

В файле конфигурации port для поддержки входящих соединений также нет сложных настроек. Все клиенты при подключении самостоятельно запускают программу uucico, так что в этом файле лишь нужно указать тип соединения. Пример файла port представлен в листинге 9.14.

 
port dialin
type stdin

Листинг 9.14. Пример конфигурации ведомого UUCP-компьютера в файле port (для Taylor UUCP).

Так как ведомый компьютер не осуществляет вызов удаленных компьютеров, то файл dial ему не требуется. Далее нужно лишь создать идентификатор пользователя для удаленной системы, которая будет регистрироваться на данном компьютере. Все идентификаторы пользователей хранятся в файле /etc/passwd. При этом, чтобы система автоматически запускала UUCP по входному звонку, нужно задать в качестве оболочки по умолчанию uucico. Тогда строка в файле /etc/passwd будет выглядеть примерно так:

 
shadrach:x:510:510:Remote UUCP host:/home/shadrach:
/usr/sbin/uucico

Этой строкой мы разрешаем удаленной системе shadrach зарегистрироваться с именем shadrach и автоматически запустить для нее программу uucico. Пользователь root должен назначить идентификатору пользователя shadrach пароль. Этот пароль не может быть изменен удаленным хостом.

 

Резюме

Один из относительно недорогих и безопасных способов подключения почтового сервера к провайдеру Internet — использование протокола UNIX to UNIX CoPy (UUCP). Хотя этот протокол — один из старейших, он остается высокоэффективным при передаче почты по модемным линиям без установления сетевого соединения. Многими провайдерами Internet поддерживается работа по протоколу UUCP для обмена электронной почтой. В ОС Linux UUCP реализован в пакете Taylor UUCP. Этот пакет состоит из конфигурационных файлов и выполняемых модулей и позволяет создавать полнофункциональный ведущий или ведомый UUCP-хост на базе почтового сервера под управлением ОС Linux. После установления соединения программное обеспечение для работы с почтой может быть настроено для маршрутизации почты по UUCP-соединению.

 
Автор: Р. Блам  источник: http://www.INTUIT.ru 


 

13 центов(0,13$) за клик, выплаты через WebMoney каждый вторник +10% с рефералов

Мы выкупаем 100% трафа! $12 за 1000 хостов (РФ), и до $4 за 1000 хостов (зарубежный траф) + 10% с дохода Ваших рефералов!
 Выплаты через
WebMoney

~80-100$ за1000 хостов 2.5$ за 1 смс.
реф. процент - 10 %Выплаты происходят раз в неделю, в четверг на
WebMoney
 
 

 

____________________________

Посмотреть порно видео в онлайне »

_______________________________

 

   
   
Сайт управляется системой uCoz