13.3 Файлы Конфигурации UUCP
В отличие от более простых программ передачи файлов, UUCP был
разработан, чтобы обрабатывать все передачи автоматически.Если только все
установлено правильно, ежедневное вмешательство администратора не
необходимо.Вся необходимая информация сохраняется в паре файлов
конфигурации, которые постоянно находятся в каталоге /usr/lib/uucp.
Большинство этих файлов используется только при запросе снаружи.
13.3.1 Нежное Введение в Taylor UUCP
Сказать, что конфигурация UUCP является тяжелой,было бы замалчиванием
темы.Это - действительно запутанная тема, и иногда краткий формат файлов
конфигурации не делает вещи проще (хотя формат Talyor почти просто читается
по сравнению с более старыми форматами в HDB или Версии 2).
Что бы дать Вам понять как взаимодействуют все эти файлы, мы
представим наиболее важное, и будем иметь просмотр в типовых входах этих
файлов. Мы не будем объяснять все подробно; более точные сведения даны в
отдельных разделах ниже.Если Вы хотите установить на вашу машину UUCP,
лучше всего начать с некоторых типовых файлов, и адаптировать их
постепенно.Вы можете выбирать из предложенного ниже,или того,что есть в
вашем дистрибутиве Linux.
Все файлы,описанные в этом разделе хранятся в /usr/lib/uucp или в его
подкаталогах.Некоторые дистрибутивы Linux содержат UUCP binaries, которые
поддерживают и HDB и Taylor конфигурации,и используют различные
подкаталоги для каждого набора файлов конфигурации.Есть обычно README файл
в /usr/lib/uucp.
Чтобы UUCP работал правильно, эти файлы должны принадлежать
собственно пользователю uucp. Некоторые из них содержат пароли и номера
телефона, и следовательно должны иметь прва доступа 600. (2)
Центральный файл конфигурации UUCP - /usr/lib/uucp/config
используется, чтобы установить общие параметры.Наиболее важный из них (и
теперь, единственный), является именем UUCP вашей ЭВМ. В Виртуальном
Пивоваренном заводе, они используют vstout как их ворота UUCP:
# /usr/lib/uucp/config - основной файл конфигурации UUCP
hostname vstout
Следующий важный файл конфигурации - sys файл.Он содержит всю
системно-привязанную информацию об участках сети, с которыми Вы связаны.Она
включает имя участка(ЭВМ),и информацию относительно связи
непосредственно,типа номера телефона при использовании связи
модема.Типичный cценарий (сценарий - коммандный файл - script,далее
сценарий) для модемной связи с pablo:
# /usr/lib/uucp/sys - имена соседей UUCP
#system pablo
system pablo
time Any
phone 123-456
port serial1
speed 38400
chat ogin: vstout ssword: lorca
Port задает порт,который нужно использовать,time определяет время в
которое система может вызываться.Сhat описывает сценарии входа в систему -
последовательность строк,которыми нужно обменяться,чтобы uucico
зарегистрировал в pablo.Мы опишем сценарий входа позже.Команда порта не
называет конкретный файл устройства типа /dev/cua1,но оба имени входят в
файл port.Вы можете назначить любое походящее имя.
2.Обратите внимание, что хотя большинство команд UUCP должно
устанавливать setuid для uucp, Вы должны удостовериться, что программа
uuchk - нет. Иначе пользователи будут способны посмотреть пароли,даже если
они имеют режим 600.
Файл port содержит информацию о связи непосредственно.Для модемной
связи он описывает специальный файл устройства, который нужно использовать,
скорость,и тип оборудования, соединенного с портом.Пример ниже описывает
/dev/cua1 (a.k.a. COM 2),с которым соединен NakWell модем способный к
перздачз на скорости до 38400bps.Имя порта должно соответствовать
имени,данному в файле "sys".
# /usr/lib/uucp/port - UUCP ports
# /dev/cua1 (COM2)
port serial1
type modem
device /dev/cua1
speed 38400
dialer nakwell
Информация,имеющая отношение к программам набора номера
cохраняетсяняется в другом файле,называемом dial.Для каждого типа программы
набора номера он содержит последовательность команд,которые требуются,чтобы
вызвать удаленную машину по номеру телефона.Все это задано как chat
script(сценарий дружеской системы).Пример для вышеупомянутого NakWell мог
бы выглядеть следующим образом:
# /usr/lib/uucp/dial - per-dialer information
# NakWell modems
dialer nakwell
chat "" ATZ OK ATDT\T CONNECT
Строка, начинающаяся с chat определяет дружескую беседу
модема,которая является последовательностью команд, посланных и полученных
от модема, чтобы инициализировать это и делать это,набирают желательный
номер."\T" последовательность будет заменен на номер телефона uucico.
Чтобы в общем показать Вам, как uucico работает с этими файлами
конфигурации, предположим, что Вы дали команду:
$ Uucico -s pablo
Рисунок 18. Взаимодействие Файлов Конфигурации Taylor UUCP.
Первым делом uucico ищет pablo в "sys" файле.Из строки в файле "
sys" для pablo она видит,что должна использовать serial1 порт для установки
соединения.Файл port сообщает ей, что serial1 является портом модема,и что
есть подключенный модем NakWell .
Uucico теперь ищет набор кода,описывающий NakWell модем,и найдя
первый,открывает /dev/cua1 последовательного порта и выполняет "дружескую
беседу" программы набора номера.То есть поуылазт "ATZ", ждет "OK " в
ответ,и т.д.. При столкновении с строкой "\T", он заменяет номер телефона
(123 - 456) извлеченный из системного файла.
После того,как соединение было установлено,Uucico возвращается к
файлу "sys" и выполняет дружескую беседу входа в систему(login chat).В
нашем примере она ждет приглашения "login: " затем послает имя
пользователя (neruda), затем ждет приглашения "password:" ,и посылает
пароль "lorca".
После завершения разрешения, удаленная система активизирует
собственный uucico.Они прводят фазу рукопожатия(handshake phase),описанную
в предыдущем разделе.
13.3.1.Связи и зависимости файлов конфигурации также показаны на рисунке
13.3.2 Что Должен Знать UUCP
Прежде, чем Вы начинаете писать файлы конфигурации UUCP, Вы должны
уяснить некоторую необходимую информацию.Сначала Вы будете должны
выяснить,к какому последовательному порту присоединен ваш модем.Обычно
порты (DOS) COM1 - COM4 отображают на специальные файлы устройств /dev/cua0
- /dev/cua3.Большинство дистрибутивов, напр. Slackware,создают /dev/modem
ссылку как связь с соответствующим cua * файлом устройства,и конфигурируют
kermit,seyon и т.д. использовать этот обобщенный файл.В этом случае,Вы
должны также использовать /dev/modem в вашей конфигурации UUCP.
Причина для этого то,что все программы используют так называемые
файлы блокировки,чтобы сообщить,когда последовательный порт
используется.Имена этих файлов блокировки - конкатенация строки LCK .. и
имени файла устройства,например LCK .. cua1.Если программы используют
различные имена для одного устройства,они будут быть не в состоянии
распознавать чужие файлы блокировки.Как следствие, они прервут чужие сеансы
начатые в то же самое время.Это - не маловероятное событие,если Вы
планируете чтобы ваш UUCP использовал crontab.Подробности настройки
последовательных портов см. в главе 5 ..
Затем Вы должны выяснить с какой скоростью ваш модем и Linux могут
связыввться и установить максимальную эффективную скорость
передачи.Эффективная скорость передачи может быть намного выше чем
физическая скорость вашего модема.
Например, много модемов посылают и получают данные со скоростью
2400bps (биты в секунду).При использовании протоколов сжатия типа V.
42bis,фактическая скорость передачи может достигать 9600bps.
Конечно,если вы хотите,чтобы UUCP cделал что-нибудь,Вам для вызова
нужен номер телефона системы.Также Вам нужен идентификатор для входа в
систему и возможно пароль для удаленной машины. (3)
Вы также должны знать,как регистрироваться в системе. Например,Вы
должны нажать КЛАВИШУ BREAK прежде, чем подсказка входа в систему
появляется? Что отображается: "login:" или "user:"? Это необходимо для
создания сценария дружеской беседы(chat script),который описывает uucico,
как регистрироваться.Если у Вас возникают затруднения,пробуйте вызывать
систему программой терминала подобно kermit или minicom,и записать
точно,что Вы делаете.
13.3.3 Наименование Места
Как и при работе с TCP/IP сетями,ваша главная ЭВМ(host) должна
иметь имя для UUCP сетей. Пока Вы просто хотите использовать UUCP для
передач файлов или соединения извне непосредственно,или по локальной сети,
это имя не должно удовлетворять никакие стандартам. (4)
3. Если вы собираетесь пробовать UUCP, получите телефонный номер
ближайшего архива. Запишите имя и пароль - они общеизвестны. В
большинстве случаев они что - нибудь вроде /uucp uucp или
nuucp/uucp.
4. Единственое ограничение - то, что имя не должно быть больше чем
7 символов, чтобы не путать ЭВМ с файловыми системами, которые
накладывают узкое ограничение на имя файла.
Однако, если Вы используете UUCP для почты или новостей, Вы должны
подумать о наличиb имени, зарегистрированног в UUCP Mapping project . UUCP
Mapping psojectо описан в главе 14 .., Даже если Вы делите домен, Вы можете
получить официальное имя UUCP для вашего участка сети.
Часто, люди выбирают свое UUCP имя, чтобы соответствовать первому
компоненту имени домена. Предположим, что адрес домена вашей ЭВМ -
swim.twobirds.com, тогда имя главной ЭВМ UUCP было бы swim.Обычно именно
так и бывает.Конечно, Вы можете также использовать любое UUCP имя.
Однако не стоит использовать неквалифицированное имя в адресе
почты, пока Вы не зарегистрировали его как ваше официальное имя UUCP. (5)
В лучшем случае, почта на незарегистрированную ЭВМ UUCP отправится
в мусорную корзину(big black bit bucket). Если Вы используете имя, уже
присвоенное некоторому другому месту, эта почта не будет направлена к тому
месту, и причине начальник почтового отделения никакой конец головных
болей.
По умолчанию, набор программ UUCP использует hostname как имя UUCP .
Это имя обычно устанавливается в сценарие /etc/rc.local. Если ваше имя UUCP
отлично от того, что Вы устанавливаете главным имя , Вы должны использовать
опцию hostname в файле конфигурации, чтобы сообщить uucico о вашем имени
UUCP. Это описано ниже.
13.3.4 Taylor Файлы Конфигурации
Теперь мы вернемся к файлам конфигурации. Taylor UUCP получает
информацию из следующих файлов:
config -Это основной файл конфигурации. Вы можете определить ваше
имя UUCP здесь.
sys - описывает все участки сети, известные Вам. Для каждого
участка, он определяет имя, в какое времяе вызывать его, какой номер
набрать , какое устройство использовать, и как регистрироваться.
port - описывает все доступные порты, вместе с обеспечиваемой
скоростью и программами соединения, которые нужно использовать.
5. UUCP Mapping Project регистрирует все UUCP hostnames во всем
мире и проверяет их на уникальность. Чтобы зарегистрировать ваше имя UUCP,
спросите maintainers ЭВМ, которжя ограбатывает вашу почту; они помогут
Вам с этим.
dial - Описывает программы набора номера, используемые, чтобы
установить телефонное соединение.
Dialcode Содержит расширения для символического сода набора
(dialcodes).
call Содержит имя входа в систему и пароль, который нужно
использовать при вызове системы. Редко используется.
Passwd Содержит имена входа в систему, и системы паролей
используемые при регистрации . Этот файл используется
только, когда uucico делает собственную проверку пароля.
Taylor файлы конфигурации состоят из строк, содержащих пары ключевое
слово - значение. Знак мусора представляет комментарий ,действующий до
конца строки. Чтобы использовать знак мусора просто так , Вы можете ввести
его с наклонной чертой влево( with a backslash).
Есть очень много опций, которые Вы можете изменять в этих файлах
конфигурации. Мы не можем описать все параметры здесь, и заденем лишь
наиболее важные.С их помощью вы сможете сконфигурировать модемную связь
UUCP. Дополнительные разделы описывают изменения, необходимые, если Вы
хотите использовать UUCP поверх TCP /IP или поверх последовательного
соединения. Полная описание дается в Texinfo документах, которые
распространяются вместе с исходным текстом Taylor UUCP.
Если Вы думаете, что сконфигурировали вашу систему UUCP полностью,
можете проверить вашу конфигурацию, используя uuchk (находится в
/usr/lib/uucp). Uuchk читает ваши файлы конфигурации, и печатает
детализированный отчет о значениях , используемых для каждой системы.
13.3.5 Общие Опции Конфигурации - config файл
Скорее всего Вы вообще не будете использовать этот файл, чтобы
описать UUCP hostname. По умолчанию, UUCP использует имя, которое Вы
устанавливаете командой"hostname, но вообще это хорошая идея -
установить имя UUCP явно. Типовой config файл показывается ниже:
# /usr/lib/uucp/config - UUCP main configuration file
Hostname vstout
13.3.6 Как сказать UUCP о других системах - sys Файл
Файл sys описывает системы, о которых ваша машина знает. Anentry
представляется ключевым словом системы; последующий выстраивает в линию к
следующей директиве системы, детализируют параметры, специфические для того
места. Обычно, вход системы определит параметры типа номера телефона и
дружеской беседы входа в систему.
Параметры перед самими первыми значениями по умолчанию набора строки
системы, используемыми для всех систем. Обычно, Вы установите протокол
paramters и т.п. в разделе значений по умолчанию.
Наиболее важные элементы записи подробней описаны ниже .
13.3.6.1 Имя Системы
Каждое имя системы может появляться более только один раз. Если Вы
хотите использовать несколько наборы конфигураций для той же самой системы
(типа различных номеров телефона uucico, должен пробовать по очереди), Вы
можете определять альтернативы. Альтернативы описаны ниже.
6. Старая Версия 2 UUCP не делает широковещательной передачи имени в
начале вызова; однако более новые реализации (а также и Taylor UUCP)
делают это.
13.3.6.2 Номер телефона
Если связь с удаленной системой достигается по телефонной линии, поле
телефона определяет номер, который модем должен набрать для связи. Он может
содержать отдельные лексемы, интерпретируемые процедурой набора uucico's.
Знак '=' означает " ждать вторичный тон набора кода", '_' генерирует
паузу в одну секунду. Например, некоторые телефонные станции сбрасывают,
если Вы не делаете паузу между набором префиксного кода и номера
телефона.
[Я не знгю соответствующий Английский термин для этого , но Вы
знаете, что иногда на частной внутренней телефооной станции компании Вы
должны набрать 0 или 9, чтобы получить выход наружу.]
Любая встроенная символьная строка может использоваться, чтобы скрыть
место-зависимую информацию(например код области). Любая такая строка
транслируется с помощью файла dialcode. Предположим, что Вы имеете
следующий dialcode файл:
# /usr/lib/uucp/dialcode - dialcode translation
Bogoham 024881
Coxton 035119
С такими определениями Вы можете использовать номер телефона типа
Bogoham7732 в файле sys, это делает все немного проще.
13.3.6.3 Опции Port и Speed
Опции Port и Speed используется, чтобы выбрать устройство,
используемое для вызова удаленной системы, и установки максимального
быстродействия. (7) вход системы может использовать или опцию единственные,
или обе опции в конъюнкции. При поиске подходящего устройства в файле port,
только те порты ,могут быть выбраны, которые соответствуют имени порта
и(или) диапазону скоростей.
Вообще, использование опции speed должен удовлетворить. Если Вы
имеете только одно последовательное устройство, описанное в port, uucico
будет всегда выбирать правильно, во всяком случае, так что Вы только должны
дать этому желательное быстродействие. Если у Вас несколько модемов,
присоединенных к вашей системе, Вы все еще часто не хотите к.
7. Скорость в бодах Вашего tty (телетайпа) должна быть по крайней
мере так же высока, как максимально возможная скорость передачи.
Назовите специфический порт, потому что, если uucico находит, что
имеются отдельные пары, это пробует каждое устройство по очереди, пока это
не находит неиспользуемый.
13.3.6.4 Login chat (Дружеская беседа Входв в уистему)
Выше мы уже сталкивались с сценарием дружеской беседы входа в систему
(login chat script), который сообщает uucico, как регистрироваться в
удаленной системе. Он состоит из списка лексем(маркеров), определяя строки,
ожидаемые и посланные локальным процессом uucico. Усилие состоит в том,
чтобы заставить uucico ждать, пока удаленная машина не пошлет приглашение
входа в систему, затем послать имя входа в систему, ждать, пока удаленную
система пошлет приглашение на ввод пароля, и посылать пароль. Ожидание и
посылка строки чередуются. Uucico автоматически добавляет символ \r
возврата каретки к, любой посылаемой строке. Таким образом, простой
сценарий дружеской беседы походил бы на:
login: vstout Password: catch22
Обратите внимание, что поля записи не содержат текста приглашений.
Удостоерьтесь, что вы войдете в систему , даже если система посылает Login
вместо login.
Uucico также учитывает некоторые виды условного выполнения, например
в случае, если getty удаленной машины должен быть сброшен перед посылкой
приглашения. Для этого Вы можете присоединиться под-дружескую(sub-chat)
беседу к ожидающейся строке, смещение черточкой. Sub-chat выполняется
только если основное соединение не удалось, то есть произошла блокировка по
времени. Один из способов использовать эту возможность состоит в том, чтобы
послать BREAK, если удаленная система не отображает приглашение входа в
систему. Следующий пример дает всесторонний сценарий дружеской беседы,
который должен работать и в случае, если Вы должны нажать Enter прежде,
чем войти в систему. Пустая строка ("") говорит UUCP ничего не ждать и
продолжать посылать следующую строку немедленно.
"" \n\r\d\r\n\c login:-BREAK-login: vstout password:
catch22
Имеется пара специальных строк и ESC-символов, которые могут
включаться в сценарий дружеской беседы. Следующее - неполный список
символов, допустимых в сцзнарки: Пустая строка сообщает, чтобы uucico не
ждал ничего,а продолжил посылать следующую.
\t Cимвол табуляции.
\r символ возврата каретки.
\s Пробел. Вы нуждаетесь в нем , чтобы включить пробел в
строку дружеской беседы.
\n перевод строки.
\\ обратный слэш ( Backslash).
В посылаемой строке, следующие ESC-символы и последовательности
допустимы в дополнение к вышеупомянутым:
EOT -символ конца передачи (^D).
BREAK -Символ прерывания .
\c Подавляет посылку возврата каретки в конце строки.
\d Задержка в течение 1 секунды.
\E Дает возможность эхо - проверки.Требует, чтобы
uucico ждал ECHO всего, что это записывает, чтобы читаться в стороне от
устройства прежде, чем это может продолжать дружескую беседу. Это прежде
всего полезно когда используется в дружеских беседах модема (с которым мы
столкнемся ниже). По умолчанию эхо выключено.
\e Отключает проверку эхо.
\K То же самое, что и BREAK.
\p Пауза в долю секунды.
13.3.6.5 Альтернативы
Иногда желательно иметь несколько описаний для входа в одну систему,
например, если система может быть достигнута на различных модемных линиях.
С Taylor UUCP Вы можете делать это, определив так называемую
альтернативу.
Альтернативная строка сохраняет все установки из основной , и
определяет только те значения, которые должны быть отменены в заданной по
умолчанию , или добавиться к ней. Альтернатива - смещение из входа системы
строкой, содержащей ключевое слово altgrnave.
Чтобы использовать два номера телефона для pablo, Вы должны изменить
sys следующим образом:
system pablo
phone 123-456
alternate
phone 123-455
При вызове pablo, uucico теперь сначала наберет 123-456, и ,если
ничего не получается пробует альтернативу. Альтернативный вход сохраняет
все установки из основного входа системы, и изменяет только номер
телефона.
13.3.6.6 Ограничение времени вызова
Taylor UUCP обеспечивает ряд способов,обеспечивающих ограничение
времени обращения с удаленной системы. Вам потребуется сделать это или из-
за ограничений, которае удаленная главная ЭВМ накладывает на услуги в
течение деловых часов, или просто избегать времен с высокими ценами за
услуги. Обратите внимание, что всегда возможно отменить ограничения времени
обращения, запустив uucico с опцией -S или -f.
По умолчанию, Taylor UUCP отвергнет соединения в любое время, так что
Вы должны использовать некоторый вид спецификации времени в файле sys.
Если Вы не очень заботитесь об ограничении времени обращения, Вы можете
определить опцию времени со значением Аny (любой) в вашем файле sys.
Самый простой способ ограничить время обращения - поле времени,
которое сопровождается строкой, состоящей из дня и подполя времени. День
может быть комбинацией Mo, Tu , We, Th, Fr, Sa, Su или Any(любой),
Never(никогда), или Wk для дней недели. Время состоит из двух 24-часовых
значений часов, отделяемых черточкой. Они определяют диапазон, в течение
которого обращения допустимы. Комбинация этих лексем пишется без
интервалов. Любая лексема дня и спецификация времени может быть
сгруппирована вместе с запятыми. Например, время MoWe0300-0730, Fr1805-2000
допускает обращаться в понедельник и среду от 3 д о 7.30 утра, и в пятницу
с 18.05 до 20.00. Когда поле времени охватывает полночь, и написано Mo1830-
0600, это фактически&ознвчает понедельник, между полночью и 6.00 утра, и
между 18.30 пополудни и полночью(понедельника).
Специальные строки Any и Never означают ВСЕГДА и НИКОГДА.
Команда time задает параметр, который описывает время повтора в
минутах. Когда попытка установить соединение не удалась, uucico не
допустит другой попытки вызвать удаленную ЭВМ втечение некоторого
интервала. По умолчанию, uucico использует показательную функцию схемы
backoff , где интервал повтора увеличивается с каждым последующим отказом.
Например, когда Вы определяете, что время повторения 5 минут, uucico
откажется вызывать удаленную систему втечение 5-ти минут после последнего
отказа.
Команда timegrade разрешает Вaм придать максимальную степень
буферизации к плану. Допустим, что Вы имеете следующие команды timegrade во
входе системы:
Timegrade N Wk1900-0700, SaSu
Timegrade C Any
Это допускает задачи с приоритетом буферизации(spoolgrade) C и выше
(обычно почта имеет степень B или C), они будут приняты всякий раз, когда
обращение установлено, в то время как новости (обычно поставленный в
очередь со степенью N) будут перемещены только ночью и в входные.
Точно так же как команда time, команда timegrade берет интервал
повторения в минутах как дополнительный третий параметр.
Однако есть и недостатки высоких приоритетов буферизации:
опция timegrade применяется только к тому, что ваша система посылают;
удаленная система может все еще передать все, что угодно. Вы можете
использовать опцию calltimegrade, чтобы явно запросить послать только
работы выше некоторой данной степени буферизации ; но нет никакой гарантии,
это удовлетворит условиям этого запроса. (8)
Аналогично, timegrade поле не проверяется, когда удаленная система
вызывает вашу, и любые работы, поставленные в очередь для системы вызова
будут ей посланы. Однако, удаленная система может явно запрашивать ваш
uucico, чтобы пграпичить себя некоторым приоритетом задач.
13.3.7 Описание устройств(Devices) - файл port
Файл port сообщает uucico о доступных портах. Это могут быть порты
модема, другие типы последовательных соединений и гнезда TCP.
Подобно файлу sys, port состоит из отдельных кусков, начинающихся с
ключевого слова port, сопровождаемым именем порта. Это имя может
использоваться в описании порта в файле sys. Нет потребности в уникальности
имени файла; если существуют порты с одним и тем же именем, uucico
перепробует все по очереди, пока это не найдет тот, который в настоящее
время не используется.
Команда port должна обязательно сопровождаться именем типа, которое
задает какой порт описан. Допустимые типы - modem, direct для прямых
соединений, и tcp для гнезд TCP. Если команда port отсутствует, по
умолчанию тип порта - modem.
В этом разделе, мы опишем лишь порты модема; порты TCP и прямые
соединения будут обсуждаться далее.
8. Если удаленная система выполняет Talyor UUCP, это удовлетворит
условиям.
Для модема и прямого соединения, Вы должны определить устройство для
вызова устройства напрямую. Обычно это имя специального файла устройства
в каталоге /dev( подобно /dev/cua1). (9)
В случае устройства модема, port также определяет, какой модем
соединен с портом. Различные типы модемов должны быть конфигурированы по-
разному. Четные модемы, что рекламация, чтобы быть Hayes совместимый не
должна быть действительно совместима друг с другом. Следовательно, Вы
должны сообщить uucico, как инициализировать Ваш модем и как соединяться с
требуемым номером. Taylor UUCP хранит описания всех программ набора номера
в файле dial. Чтобы использовать любую из них, Вы должны определить имя
программы набора номера, используя команду dialer.
Иногда Вам подребуется использовать модем различными способами( в
зависимости систепы,которую Вы вызываете. Например, некоторые старые
модемы не понимают, когда быстродействующий модем пытается соединяться на
скорости 14400bps; они просто пропускают строку вместо того, чтобы вести
переговоры на скорости в 9600bps. Если Вы знаете, что некоторые места
используют такой "немой" модем, для вызова их Вы должны настраивать ваш
модем иначе. Для этого Вам нужно добавить строку port ... в файл порт,
которая определит другую программу набора номера. Теперь Вы можете задать
новому порту другое имя, типа serial1-slow, и использовать директиву port
в описании системы в файле sys.
Лучший способ отличать порты состоит в том чтобы отличать порты по
скоростям, которые они поддерживают. Например, два описания порта для
вышеупомянутого могут выглядеть следующим образом:
#NakWell modem; connect at hight speed
port serial1 # port name
type modem #modem port
device /dev/cua1 # this is COM2
speed 38400 #support speed
dialer nakwel #normal dialer
# NakWell modem; connect at low speed
port serial1 # port name
type modem # modem port
device /dev/cua1 # this is COM2
speed 9600 # supported speed
dialer nakwell-slow # don't attempt fast connect
Tеперь запрос был бы на serial1 как имя порта, но использовать
только 9600bps . Uucico сделает это автоматически
9. Некоторые люди используют ttyS * устройства , которые
предназначены только для входа (dial-in).
Используйте второй вход порта. Все остающиеся места, которые имеют
быстродействие 38400bps , будут вызываться, используя первый кусок в port/
13.3.8 Как набирать номер - файл dial
Файл dial описывает способ, которым используются различные программы
набора номера . Традиционно, переговоры UUCP программ набора номера быстрее
чем модемы, потому что раньше было обычной практикой иметь одно (дорогое)
автоматическое устройство набора, обслуживающее целый набор модемов.
Сегодня большинство модемов имеют встроенную поддержку набора, так что это
различие становится более размытым.
Однако различные программы набора номера или модемы могут требовать
различной настройки. Вы можете описать каждый из них в файле dial. Куски в
файле dial начинаются с команды dialer, которая определяет имя программы
набора номера.
Наиболее важная часть - дружеская беседа модема(modem chat),
определяется командой chat. Подобно дружеской беседе входа в систему(login
chat), она состоит из последовательности строк uucico, посылаемых
программе набора номера и ответов, которые требуется получить. Они обычно
используются, чтобы сбросить модем к известному состоянию, и набирать
номер.Вот пример для Hayes-совместимого модема:
# NakWell modem; connect at high speed
dialer nakwell # dialer name
chat "" ATZ OK\r ATH1E0Q0 OK\r ATDT\T CONNECT
chat-fail BUSY
chat-fail ERROR
chat-fail NO\sCARRIER
dtr-toggle true
Дружеская беседа модема начинается с "", пустой ожидают строку.
Cледовательно uucico пошлет команду (ATZ) сразу же. ATZ - команда Hayes для
сброса модема. Затем uucico ждет, пока модем не послал OK, и посылает
следующую команду, которая выключает локальный ECHO, и т.п.. После того,
как модем возвращает OK снова, uucico посылает команду набора (ATDT).
Escape-последовательность \T в этой строке заменяется на номер телефона,
получаемый из файла sys. Uucico затем ждет, пока модем не возвратит
COONECV, что говорит о том,что соединение с удаленным модемом было
установлено успешно.
Часто модем будет не в состоянии соединиться с удаленной системой,
например, если другая система говорит с кем -то еще и линия занята. В этом
случае, модем вернет сообщение об ошибке, указывающее на причину отказа.
Дружеская беседа модема не способна обнаружить такие сообщения; uucico
будет ждать требуемую строку пока не выйдет время ожидания. В файле
регистрации UUCP(log file) будет записано "timed out in chat script"
вместо истинной причины.
Однако, Taylor UUCP позволяет Вам сообщить uucico об этих сообщениях,
используя chat-fail команду как показано выше. Когда uucico обнаруживает
chat-file строку при выполнении дружеской беседы модема(modem chat), то
прерывает обращение, и регистрирует сообщение об ошибках в файле
регистрации UUCP(файле log).
Последняя команда в примере, показанном выше говорит UUCP переключить
DTR строку перед стартом дружеской беседы модема. Большинство модемов может
быть сконфигурировано так , чтобы продолжить -ловушку при обнаружении
изменений в DTR строке, и перейти в командный режим. (10)
13.3.9 UUCP поверх TCP
В первый момент это может показаться абсурдом,но на самом деле UUCP
поверх TCP не такая уж плохая идея, особенно при пересылке большого
количества данных типа Usenet новостей. На TCP -базированных узлах,
новостями в основном обмениваются, используя NNTP протокол, в котором
статьи запрашиваются и посылаются индивидуально, без сжатия и прочей
оптимизации. Хотя и подходящая для больших узлов с большим объемом
новостей (newsfeeds), эта методика не подходит для небольших участков сети,
которые получают новости медленным соединением типа ISDN. Им удобней
объединить качества TCP с преимуществами посылки новостей в больших
пакетах, которые могут быть сжаты и таким образом перемещаться с очень
низкими затратами. Станжартпый способ передать эти пакеты состоит в том,
чтобы использовать UUCP поверх TCP.
В файле sys, Вы определяете систему, которую нужно вызвать через TCP.
10. Вы также можете сконфигурировать модемы на сброс при обнаружении
перехода на DTR. Некоторые из них, однако, не понимают таких вещей и
зависают.
system gmu
address news.groucho.edu
time Any
port tcp-conn
chat ogin: vstout word: clouseau
Команда address дает адрес IP главной ЭВМ, или ее полное имя
области(domain name). Соответствующий участок файла port выглядел бы:
port tcp-conn
type tcp
service 540
Этот пример говорит, что соединение TCP должно использоваться, когда
файл sys ссылается на tcp-conn, и что uucico должен пытаться соединяться с
портом TCP Э 540 на удаленной ЭВМ. Это - заданный по умолчанию номер
порта обслуживания UUCP. Вместо номера порта, Вы можете также давать
символическое имя порта командой service . Номер порта, соответствующий
этому имени будет разыскскан в /etc/services. Общее имя для UUCP-сервиса
- uucpd.
13.3.10 Использование прямого соединения
Допустим, что Вы используете прямое соединение вашей системы vstout
с системой tiny.Как и в случае с модемом, Вы должны описать вход в систему
в файле sys. Команда port идентифицирует последовательный порт tiny,
подключен к.
system tiny
time Any
port direct1
speed 38400
chat ogin: cathcart word: catch22
В файле port Вы должны описать последовательный порт для прямого
соединения. Описание программы набора номера не необходимо, так как нет
никакой потребности в наборе.
port direct1
type direct
speed 38400
13.4 Что делать UUCP, а что нет - настройка доступа
13.4.1 Выполнение команд
Задача UUCP состоит в том, чтобы копировать файлы от одной системы к
другой, и запрашивать выполнение некоторых команд на удаленных главных ЭВМ.
Конечно, Вы как администратор хотите управлять тем, какие права Вы
предоставляете другим системам - разрешать им делать что угодно -
определенно не очень хорошая идея.
По умолчанию Taylor UUCP разрешает выполняьь на вашей машине лишь
rmail и rnews, которые обычно используются для email и Usent новостей над
UUCP. Заданный по умолчанию путь поиска, используемый uuxqt - опция
времени компиляции, но обычно содержит /bin,/usr/bin, и /usr/local/bin.
Чтобы изменять набор команд для определенной системы, Вы можете
использовать ключевое слово commands в файле sys. Аналогично, путь поиска
может быть изменен с утверждением пути команды. Например, Вы можете
разрешить системе pablo выполнять команду rsmtp в дополнение к rmail и
rnews: (11)
system pablo
commands rmail rnews rsmtp
13.4.2 Передача файлов
Taylor UUCP также позволяет описывать передачу файлов в
подробностях. Вы можете запретить любой обмен с определенной системой.
Только установите request в no, и удаленная система не сможет ни искать, ни
читать, ни посылать Ваешй никаких файлов.
11.rsmtp используется, чтобы поставить почте пакет SMTP. Это
описывается в главах о почте.
Аналогично, Вы можете запретить пользователям Вашей системы
пересылку файлов 'в' или 'из' системы, установив transfer в no. По
умолчанию любая пересылка им разаешается.
" Кроме того, Вы можете конфигурировать каталоги 'в' и 'из' которых
файлы могут быть скопированы. Обычно запрещают доступ с удаленных систем к
определенным каталогам, но разрешают своим пользователям посылать файлы
со своего исходного каталога. Обычно, удаленным пользователям разрешается
получить файлы только от общего каталога UUCP, /var/spool/uucppublic. Это -
традиционное место , в котором хранятся публично доступные файлы; очень
похоже на FTP сервисы в Internet. На них обычно ссылаются используя символ
тильды.
Следовательно, Taylor UUCP обеспечивает четыре различных команды
конфигурирования каталогов для посылки и получения файлов:local-send,
который определяет список каталогов из которых пользователь может
запросить файлы; local-receive, которая задает список каталогов, в которые
пользователь может просить UUCP записать файлы ;remote-recive и remote-
send, которые определяют то же самое для запросов в другую
систему.Рассмотрим следующий пример:
system pablo
local-send /home ~
local-receive /home ~/receive
remote-send ~ !~/incoming !~/receive
remote-receive ~/incoming
Команда local-send разрешает пользователям на вашей главной ЭВМ
посылать любые файлы ниже /home и из от общего каталога UUCP в систему
pablo. Команда local-receive разрешает им получать файлы или в
общедеступный каталог в uucppublic, или в любой общедоступный каталоге
ниже /home. Команда remote-send разрешает pablo запрашивать файлы из
/var/spool/uucppublic или из любого общедоступного его подкаталога . Это
сообщается к uucico восклицательным знаком,поставленным перед именем
каталога. В заключение, последняя строка разрешает pablo записать любые
файлы в каталог incoming.
Одна из самых больших проблем при передаче файлов используя UUCP -
это то, что файлы записываются в обшедоступные каталоги. Это может
соблазнить нзкоторых пользователей вмешаться в личные дела других
пользователей, и т.д.. Однако нет никакого способа решения этой проблемы,
кроме отключения передач файлов UUCP вообще.
13.4.3 Пересылка
UUCP обеспечивает механизм, благодаря которому другие системы могут
выполнять передачу файлов от Вашего имени. Например, это разрешает, чтобы
Вы делали seciretrieve файл из uchile для Вас, и послали это вашей системе.
Следующая команда достигнула бы этого:
$ Uucp -r seci! Uchile! ~/find-ls.gz ~/uchile.files.gz
Эта методика прохождения работы через несколько систем называется
пересылкой. В вышеупомянутом примере причиной для использования пересылки
могло быть то, что seci имеет UUCP- доступ к uchile, а ваша главная ЭВМ
нет. Однако, если Вы используете систему UUCP, ограничте обслуживание
пересылки для некоторых ЭВМ,которым Вы доверяете, чтобы не ужасаться
телефонному счету, если кто-нибудь решит скачать себе через вас исходные
тексты последего выпуска X11R6.
По умолчанию, Taylor UUCP запрещает пересылку вооще. Чтобы давть
возможность пересылки определенной системе, Вы можете использовать команду
forward. Эта команда определяет список систем, которые могут
воспользоваться пересылкой через вас. Например, администратор UUCP seci
должен был добавить следующие строки к файлу sys, чтобы разрешить pablo
запрос файлов из uchile:
####################
# pablo
system pablo
forward uchile
####################
# uchile
system uchile
forward-to pablo
Строка forward-to для uchile необходима , чтобы любые полученные
файлы фактически передались pablo. Иначе UUCP пропустил бы их. Этот пример
разрешает uchile только посылать файлы pabno чзрез seci; иной другой путь
не допустим.
Чтобы разрешить пересылку к любой системе, используйте специальное
ключевое слово ANY (обязательно заглавные буквы).
13.5 Настройка вашей Системы.
Если Вы хотите настроить вашу систему для вызова извне, Вы должны
разрешить вход в систему по последовательному порту, и настроить некоторые
системные файлы, чтобы обеспечить счета UUCP(accounts). Это будет
обсуждаться в следующем разделе.
13.5.1 Установка getty
Если Вы хотите использовать последовательную линию, как dialin порт,
Вы должны запустить процесс getty на этот порт. Однако, некоторые
реализации getty не очень подходят для этого, так как Вы обычно хотите
использовать последовательный порт для соединения 'в' и 'из'.Следовательно,
вы должны удостовериться, чтобы использовать getty, который может
использовать линию вместе с другими программами (типа uucico, или
minicom). Одна из таких программ - это uugetty из getty ps пакета.
Большинство дистрибутивов Linux-a имеет его; проверите наличие uugetty в
каталоге /sbin. Другая программа, которую я знаю - mgetty (нап. Gert
Doering-м), которая также поддерживает прием факсов. Вы можете найти
последние версии этих программ на sunsite.unc.edu (там же есть и исходные
тексты).
Объяснение различий в способе входа в систему между uugetty и mgetty
- вне компетенции этого небольшого раздела; для подробной информации
обращайтесь пожалуйста к Serial HOWTO (Grag Hankins),а также
кдокументации, которая сопровождает getty ps и mgetty.
13.5.2 Обеспечение UUCP Счета(account)
Затем, Вы должны установить счета пользователя, которые разрешают
удаленной системе регистрацию в вашей системе и устанавливают соединение
UUCP. Вообще, необходимо дать отдельное имя каждой системе, которая
взаимодействует с Вами. При установке имени для системы pablo, Вы
(например) можете дать ей имя Upablo, как имя пользовауеля.
Для систем, которые подключаются через последовательный порт, Вы
должны добавить эти имена в файл паролей системы, /etc/passwd. Хорошим
вкусом считается поместить все имена UUCP в специальную группу типа
uuguest.
Домашний каталог счета должен находиться в общем каталоге
/var/spool/uucppublic; оболочка входа в систему - uucico.
Если Вы имеете теневой установленный набор программ пароля, Вы можете
делать это с командой useradd:
# Useradd -d /var/spool/uucppublic -G uuguest -s /usr/lib/uucp/uucico
uablo
Если Вы не используете теневой набор программ пароля, Вам нужно
отредактировать /etc/passwd вручную и добавить строку, анологичную
показанной ниже, где 5000 и 150 - числовой uid и gid, назначенные
пользователю Upablo и группе uuguest, соответственно.
Upablo: x: 5000:150: UUCP
Account:/var/spool/uucppublic:/usr/lib/ uucp/uucico
После установки счета, Вы должны активизировать его, установив
пароль командой passwd.
Чтобы позволить UUCP соединяться с вами поверх TCP, Вы должны
установить inetd, чтобы обработать подключения на порте uucp. Это можно
сделать, добавив следующую строку в /etc/inetd.conf: (12)
uucp stream tcp nowait root /usr/sbin/tcpd
/usr/lib/uucp/uucico -l
С опцией -l uucico выполняет собственную проверку на вход в
систему.Она запросит имя и пароль также, как и стандартная программа login,
но положится на собственный файл паролей вместо /etc/passwd. Этот файл
паролей называется /usr/lib/uucp/passwd и содержит пары имен входа в
систему и паролей:
Upablo IslaNegra
Ulorca co'rdoba
12. Обратите внимание, что обычно tcpd имеет режим 700, так что Вы
вызвали это как корень пользователя, не uucp, поскольку Вы обычно делали
бы.
Конечнп, этот файл должен принадлежать uucp и иметь доступ 600.
Если эта база данных звучит подобно такой хорошей идеи, Вы хотели бы
использовать на нормальных последовательных входах в систему, также, Вы
будете разочарованы, чтобы слышать, что это не возможно в настоящее время
без главных искривлений. Сначала от, Вы нуждаетесь в Taylor UUCP 1.05 в
этом, потому что это разрешает, чтобы getty передал имя входа в систему
пользователя вызова к uucico использование опции -u. (13) Затем, Вы должны
прием getty, который Вы используете в вызов uucico вместо обычного
/bin/login. С getty ps, Вы можете делать это, устанавливая опцию LOGIN в
файле конфигурации. Однако, это отключает интерактивные входы в систему в
целом(вполне). Mgetty, с другой стороны, имеет хорошую возможность, которая
разрешает, чтобы Вы вызвали различные команды входа в систему, основанные
на имени обеспеченный пользователь. Например, Вы можете сообщать, чтобы
mgetty использовал uucico для всех пользователей, которые обеспечивают имя
входа в систему, начинающееся прописной буквой U, но допускают каждого еще
обработано стандартной командой входа в систему.
Защищайте ваших пользователей UUCP от вызывающих операторов, дающих
ложную систему и snarfing всю их почту, Вы должны добавить команды
вызываемого - входа в систему к каждому входу системы в системном файле.
Это описано в разделе 13.5.3 выше.
13.5.3 Защита против Жуликов
Одна из самых больших проблем UUCP - то, что система вызова может
назвать не свое имя; она объявляет имя вызываемой системе после
фактического входа, но сервер не может проверить этого. Таким образом,
нападающий может войти под своим именем UUCP, симулировать, что был кем -то
еще, и прочитатьчужую почту. Это особенно опасно, если Вы предлагаете вход
в систему через анонимный UUCP,чей пароль общеизвестен.
Если Вы не уверены, что Вы можете доверять всем системам, которые
вызывают вашу, Вы должны принять меры против самозванцев/Для"этого
необходимо потребовать, чтобы каждая система использовала имя входа в
систему, заданное called-login в sys.Например:
system pablo
called-login Upablo
13. Опция -u присутствует в версии 1.04 также, но ничего не делает.
В результате этого всякий раз, когда система говорит, что она -
pablo, uucico проверит, регистрировалась ли она как Upablo. Если же нет,
вызов будет отвергнут, а соединение разорвано. Вы должны делать это
привычка добавить команду вызываемого - входа в систему к каждому входу
системы, который Вы добавляете к вашему системному файлу. Важно, что Вы
делаете это для всего sytems, независимо от того, ли они будут когда-либо
вызывать ваше место или нет. Для тех мест, которые никогда не вызывают Вас,
Вы должны возможно установить вызываемый - вход в систему к некоторым
полностью поддельное имя пользователя, типа neverlogsin.
13.5.4 Будте бдителны - проверки последовательности обращения
Другой способ отражать и обнаружить самозванцев состоит в том, чтобы
использовать проверки последовательности обращения. Вызовите проверки
последовательности, помогают Вам защитить против "злоумышленников ",
которые так или иначе сумели выяснять пароль, с которым Вы регистрируете в
вашу систему UUCP.
При использовании проверок последовательности обращения, обе машины
следят за числом соединений, уже установленных . Оно увеличивается с
каждым соединением. После регистрации, вызывающий посылает порядковый
номер обращения, а вызываемый сверяет его со своим. Если они не
соответствуют, попытка соединения будет отклонена. Если начальный номер
выбирать произвольно, нападавшим будет нелегко угадать правильный
порядковый номер обращения.
Но проверки последовательности обращения делают для Вас еще больше:
даже если некоторыq очень умный человек обнарузит ваш порядковый номер
обращения также как ваш пароль, Вы pfvtnbnt это извне. Когда нападавший
вызывает вашу подачу UUCP, и захватывает вашу почту, это увеличит
порядковый номер обращения корма на один. В следующий раз Вы вызываете вашу
подачу и пробуете регистрировать в, удаленный uucico откажется от Вас,
потому что числа не соответствуют(согласовывают) anymore!
Если Вы допустили проверки последовательности обращения, Вы должны
регулярно проверять ваши регистрационные файлы на сообщения об ошибках,
которые намекают на возможные причины. Если ваша система отклоняет
порядковый номер обращения, система вызова предлагает, это, uucico
поместит сообщение в регистрационный файл, говорящий что - нибудь вроде "
Вне обращения последовательности, отклонил ''. Если ваша система не
допущуна, потому что порядковые номера находятся вне синхронизации, в
регистрационном файле будет примерно следующее " рукопожатие потерпело
неудачу (RBADSEQ) ''.
Чтобы включить проверку последовательности обращения, Вы должны
добавить следующую команду к входу системы:
# enable call sequence checks
sequence true
Еще Вы должны создать файл, содержащий порядковый номер. Taylor UUCP
хранит порядковый номер в файле, называемом ".Sequence" в каталоге spool
удаленной системы. Он должен принадлежать uucp, и иметь режим 600 (то есть
чтение и запись разрешены только uucp). Самое лучшее инициализировать этот
файл произвольным, согласованным начальным значением. Иначе нападающий
может подобрать номер, пробуя все значения меньше, скажем, 60.
# cd /var/spool/uucp/pablo
# echo 94316 > .Sequence
# chmod 600 .Sequence
# chown uucp.uucp .Sequence
Конечно, удаленная система должна дать возможность проверкам
последовательности обращения также, и использовать то же самое начальное
значение, что и Вы.
13.5.5 Анонимный UUCP
" Зсли Вы хотите обеспечивать анонимный UUCP- доступ к вашей системе,
Вы сначала должны саздать специальное имя для него(см. выше). Общей
практикой является дать ему имя входа в систему и пароль uucp. Кроме того,
Вы должны установить несколько опций защиты для неизвестных систем.
Например, Вы можете запретить им из выполнения любых команд на вашей
системе. Однако, Вы не можете задать эти параметры в файле sys, потому что
команда требует имени системы, которое Вы не знаете. Taylor UUCP решает
эту проблему через команду unknown.Команда unknown может использоваться в
файле конфигурации, чтобы определить любую команду, которая может обычно
появляться во входе системы:
unknown remote-receive ~/incoming
unknown remote-send ~/pub
unknown max-remote-debug none
unknown command-path /usr/lib/uucp/anon-bin
unknown commands rmail
Это ограничит неизвестные системы разгрузкой файлов из подкаталогов
pub и загрузкой файлов в каталоги ниже /var/spool/uucppublic. Следующая
строка говорит uucico игнорировать любые запросы из удаленной системы,
чтобы включить отладку локально. Последние две строки разрешают неизвестным
системам выполнять rmail; но путь команды разрешает uucico искать команду
rmail в частном каталоге, с именем anon-bin. Это позволяет Вам обеспечить
некоторый специальный rmail, что, например, может передавать всю почту
супер-пользователю для исследования. Это разрешает, чтобы анонимные
пользователи достигли maintainer системы, но предотвращает в то же самое
время отправление любой почты в другие места.
Чтобы дать возможность анонимному UUCP, Вы должны определить по
крайней мере одно неизвестное утверждение в конфигурации. Иначе uucico
отклонит неизвестные системы.
Назад | Содержание | Вперед