файл Скорее всего Вы вообще не будете использовать этот файл, чтобы - 218 - описать 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. - 219 - Знак '=' означает " ждать вторичный тон набора кода", '_' генерирует паузу в одну секунду. Например, некоторые телефонные станции сбрасывают, если Вы не делаете паузу между набором префиксного кода и номера телефона. [Я не знгю соответствующий Английский термин для этого , но Вы знаете, что иногда на частной внутренней телефооной станции компании Вы должны набрать 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 (телетайпа) должна быть по крайней мере так же высока, как максимально возможная скорость передачи. - 220 - Назовите специфический порт, потому что, если 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 ничего не ждать и продолжать посылать следующую строку немедленно. - 221 - "" \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 Подавляет посылку возврата каретки в конце строки. - 222 - \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 - 223 - При вызове 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-ти минут после последнего отказа. - 224 - Команда 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 должна обязательно сопровождаться именем типа, которое - 225 - задает какой порт описан. Допустимые типы - 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. Лучший способ отличать порты состоит в том чтобы отличать порты по скоростям, которые они поддерживают. Например, два описания порта для вышеупомянутого могут выглядеть следующим образом: - 226 - #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, которая определяет имя программы - 227 - набора номера. Наиболее важная часть - дружеская беседа модема(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 об этих сообщениях, - 228 - используя 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 главной ЭВМ, или ее полное имя - 229 - области(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 - 230 - 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. По умолчанию любая пересылка им разаешается.  - 231 - " Кроме того, Вы можете конфигурировать каталоги 'в' и 'из' которых файлы могут быть скопированы. Обычно запрещают доступ с удаленных систем к определенным каталогам, но разрешают своим пользователям посылать файлы со своего исходного каталога. Обычно, удаленным пользователям разрешается получить файлы только от общего каталога 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 вообще. - 232 - 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 - 233 - Строка 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. Вообще, необходимо дать отдельное имя каждой системе, которая - 234 - взаимодействует с Вами. При установке имени для системы 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. Этот файл - 235 - паролей называется /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 - то, что система вызова может назвать не свое имя; она объявляет имя вызываемой системе после фактического входа, но сервер не может проверить этого. Таким образом, - 236 - нападающий может войти под своим именем UUCP, симулировать, что был кем -то еще, и прочитатьчужую почту. Это особенно опасно, если Вы предлагаете вход в систему через анонимный UUCP,чей пароль общеизвестен. Если Вы не уверены, что Вы можете доверять всем системам, которые вызывают вашу, Вы должны принять меры против самозванцев/Для"этого необходимо потребовать, чтобы каждая система использовала имя входа в систему, заданное called-login в sys.Например: system pablo called-login Upablo 13. Опция -u присутствует в версии 1.04 также, но ничего не делает. В результате этого всякий раз, когда система говорит, что она - pablo, uucico проверит, регистрировалась ли она как Upablo. Если же нет, вызов будет отвергнут, а соединение разорвано. Вы должны делать это привычка добавить команду вызываемого - входа в систему к каждому входу системы, который Вы добавляете к вашему системному файлу. Важно, что Вы делаете это для всего sytems, независимо от того, ли они будут когда-либо вызывать ваше место или нет. Для тех мест, которые никогда не вызывают Вас, Вы должны возможно установить вызываемый - вход в систему к некоторым полностью поддельное имя пользователя, типа neverlogsin. 13.5.4 Будте бдителны - проверки последовательности обращения Другой способ отражать и обнаружить самозванцев состоит в том, чтобы использовать проверки последовательности обращения. Вызовите проверки последовательности, помогают Вам защитить против "злоумышленников ", которые так или иначе сумели выяснять пароль, с которым Вы регистрируете в вашу систему UUCP. При использовании проверок последовательности обращения, обе машины следят за числом соединений, уже установленных . Оно увеличивается с каждым соединением. После регистрации, вызывающий посылает порядковый - 237 - номер обращения, а вызываемый сверяет его со своим. Если они не соответствуют, попытка соединения будет отклонена. Если начальный номер выбирать произвольно, нападавшим будет нелегко угадать правильный порядковый номер обращения. Но проверки последовательности обращения делают для Вас еще больше: даже если некоторы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 - 238 - Конечно, удаленная система должна дать возможность проверкам последовательности обращения также, и использовать то же самое начальное значение, что и Вы. 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 отклонит неизвестные системы. - 239 - 13.6 UUCP Протоколы низкого уровня Чтобы осуществлять контроль за приемом и передачей файлов, uucico кспользует набор стандартизированных сообщений. Этот набор иначе называется протоколом верхнего уровня. В течение фазы инициализации и фазы зависания они просто посланы поперек как строки. Однако, в течение реальной фазы передачи, дополнительный протокол низкого уровня использован, который является обычно ясным для более высоких(высших) уровней. Это должно делать проверки ошибки, возможные при использовании ненадежных линий, например. 13.6.1 Краткий обзор протоколов Поскольку UUCP используется поверх различных типов соединений, типа последовательных строк, TCP, или даже X. 25, специфические протоколы низкого уровня необходимы. Кроме того, отдельные реализации UUCP представили различные протоколы, которые делают приблизительно ту же самую вещь(дело). Протоколы могут быть разделены на две категории: потоковые и пакетные протоколы. Первые передают файл в целиком, возможно вычисляя при этом контрольную сумму . Нет непроизводственных затрат, но требуется надежное соединение,так как любая ошибка потребует повторной передачи файла. Эти протоколы обычно используются над соединениями TCP, но не подходят для использования над телефонными линиями. Хотя современные модемы хорошо исправляют ошибки, нельзя обнаружить ошибку между вашим компьютером и модемом. С другой стороны, пакетные протоколы разбивают файл на отдельные куски равного размера. Каждый пакет посылается и получается отдельно, контрольная сумма вычисляется, и квитирование возвращено датчику. Чтобы делать это более эффективный, протоколы подвижного окна было изобретено, которые учитывают ограниченный номер (окно) ожидающого обработки acknoledgements в любое время. Это значительно уменьшает время ожидания uucico в течение пе