UUCP - Unix to Unix Copy

UUCP - Unix to Unix Copy

 
  • UUCP - Unix to Unix Copy
  • Конфигурация нашей машины как UUCP клиента.
  • Конфигурирование UUCP с использованием sysadm.
  • Конфигурирование серверной части UUCP.
  • Что где лежит в системе UUCP.
  • Осталось настроить нашу электронную почту.
  • Проверка работоспособности и отладка конфигурации.
  • По результатам переписки.
  • Solaris: настройка uucp по direct line
  • Чтоб заставить uucico ходить на телнетовский порт
  • Secure uucp по tcp

  • Система пересылки файлов по телефону.
    Если uucp правильно сконфигурировано, то его использование выглядит примерно так:

          uucp -r moj_fajl 'pulsar!fajl_tam'
    перешлет moj_fajl на удаленную машину pulsar. Хотя, скорее всего не сделает, из-за ограничений на права доступа. А, впрочем, такая команда скорее всего сработает:

          uucp -r moj_fajl 'pulsar!~'
    через некоторое время этот файл вы сможете обнаружить на машине pulsar в каталоге

          /usr/spool/uucppublic/
    в этот каталог разрешено копирование с удаленных машин, для не- го используется специальное обозначение: "~"
    Пусть вас не удивляет, что в команде uucp использовались оди- нарные кавычки. Они нужны, чтобы заэкранировать "!" и "~" от вашего командного интерпретатора ksh или bash. Ключ -r в коман- де uucp нужен, чтобы НЕ ЗАСТАВЛЯТЬ нашу машину немедленно начи- нать звонить на pulsar. Она сама позвонит, в предусмотренное для этого время.
    uucp поддерживается на двух уровнях:
          1. Пользовательский. Это команды uucp - постановка файла в очередь на удаленную пересылку, и uux - постановка в очередь на пересылку удаленной команды.

          2. Системный. Периодически, автоматически запускается демон uucico - (UUCP Copy in Copy out). Он созванивается с удаленными машинами по телефону. На удаленной машине также запускается "встречный" демон uucico. Наш демон "проталкивает" на удаленную машину все файлы, которые к этому времени накопились в очереди на отправку туда. После этого он "принимает" файлы, которые приготовила для нас удаленная машина (их к нам проталкивает "встречный" демон uucico, а наш принимает). После этого сеанс uucico заканчивается. А пользователи обнаруживают, что у них возникли новые файлы.

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

    Конфигурация нашей машины как UUCP клиента.


    После этого наша машина сможет звонить на удаленные машины и посылать/забирать оттуда файлы. Для этого мы должны задать:
    1. Наше собственное UUCP имя. 2. Имя(имена) удаленной(ых) UUCP системы. 3. Телефонный номер(а), по которому нужно туда звонить. 4. Login и пароль, которые выделены там для нашего uucp-account'а. 5. Порт, к которому подключен наш модем. 6. Наборщик - описание "AT" команд для управления нашим модемом.
    Эти данные задаются в нескольких конфигурационных файлах, кото- рые должны лежать в каталоге /etc/uucp/ (или /usr/lib/uucp/ , или /usr/lib/uucp/taylor_config ) (или в каком нибудь другом, см. man uucp для более точной информации). Это файлы:
    Config # задает имя нашей машины (и многое другое) ; Systems # описывает удаленные uucp-системы: имя, но-
          # мер телефона, uucp-logname, uucp-passwd ; Devices # порты, к которым подключены модемы. Dialers # описывает модемы-наборщики (систему AT-ко-
          # манд). (А в Linux они называются: config, sys, port, dial)
    Итак, представим классический случай. У вас один Hayes-совмес- тимый модем V32/V42bis на 14400 baud (GVC, ZyXEL, US- Robotics...), подключенный к последовательному порту /dev/modem (если у вас порт называется /dev/contty03, вам никто не мешает сделать символический линк ln -s /dev/contty03 /dev/modem не так ли ?). Имя вашего узла fedfuru.
    ВНИМАНИЕ. На большинстве Unix-ов выделены раздельные специаль- ные файлы для одного и того-же порта: терминальная линия (для подключения терминала или модема, НА который будут звонить - используется для getty или ttymon), и линия с модемным управле- нием, на выход - например, чтоб звонить НАРУЖУ модемом. Эти специальные файлы и называются по разному, например:
    SunOS: /dev/ttyy01 IN, /dev/ttyz01 OUT Linux: /dev/ttyS1 IN, /dev/cua1 OUT ISC: /dev/ttyFD01 IN, /dev/ttyFM01 OUT SVR4/88: /dev/contty00 IN, /dev/??????? OUT
    ###следующий абзац написан "мелким шрифтом"(можно не читать)### На самом деле все не совсем так. Цитирую Linux-Serial-HOWTO: > There has been some discussion on the merits of /dev/mouse > and /dev/modem. I strongly discourage the use of these links. > In particular, if you are planning on using your modem for > dialin you will run into problems because the lock files will > not work correctly if you use /dev/modem. Also, Taylor UUCP
          does not support symlinks either. Однако uugetty позволяет
          корректно отрабатывать эту ситуацию. См. параметр ALTLOCK в
          /etc/defaults/getty файле. ################_конец_"мелкого шрифта"_#######################

          Вам надо подключиться к двум uucp-узлам: 1: Узел Релком, имя узла kiae, телефоны: 9469984, 9469994. Вы
          зарегистрированы там под именем/паролем uufedurp/ABCd8 2: Ваше московское отделение, имя узла fedfond, телефон 095-
          125-7623. Вы зарегистрированы там под именем/паролем
          uufedurp/KLmn10
    В каталоге /etc/uucp редактируем файлы Systems, Devices, Dialers
    Systems: ------- Удаленные машины ----------------------------- kiae Any modem1 19200 946-9984 "" \n\r\d\r\d\r ogin:-BREAK-ogin:
          uufedurp ssword: ABCd8 fedfond Any modem1 19200 8w095-125-7623 "" \n\r ogin:-BREAK-ogin:
          uufedurp ssword: KLmn10
    Devices: --------------- Описание портов ---------------------- modem1 contty03 - 19200 gvc1440
    Dialers: --------------- Команды модемов ---------------------- gvc1440 =,-, "" \M\dATZ\r\c OK\r \EATDP\T\r\c CONNECT \m\c
    ---------------- Это все --------------------------------------
    ###следующий абзац написан "мелким шрифтом"(можно не читать)### А дальше идет описание Taylor-uucp. Проблема в том, что в стан- дартной поставке SVR4/88 _нет_ Taylor-uucp, а есть только т.н. HoneyDanBer-uucp, он же BNU (Basic Networking Utilities). Taylor новее и гибче, к тому же поддерживает два формата конфи- гурационных файлов - традиционный (Config, Systems, Devices, Dialers, ...) и свой (config, sys, port, dial, ...). Есть кон- вертер туда-обратно. В Linuxе Taylor-uucp скомпилирован так, чтобы сначала искать Taylor-конфигурацию в /usr/lib/uucp/taylor_config/, если там ничего нет - искать HDB-конфигурацию в /usr/lib/uucp/hdb_config/. IMHO главный изъян HDB - невозможность указывать альтернативные номера теле- фонов. ################_конец_"мелкого шрифта"_#######################
    ###следующий абзац написан "мелким шрифтом"### Если вы используете не устаревший BNU-uucp, а Taylor-uucp 1.05: В каталоге /usr/lib/uucp/taylor_config создаем файлы config, sys, port, dial следующего содержания: /* Примечание: в дистрибутивах RedHat Linux конфигурационные файлы uucp должны лежать в /etc/uucp/ */
    config: ------------------------------------------------------- uuname fedfuru # Наше собственное имя
    sys: ------- Удаленные машины --------------------------------- system kiae # Узел Релком ############################ myname fedfuru time Any port modem # Имя описания порта в файле port speed 38400 chat ogin:-BREAK-ogin: uufedurp ssword: ABCd8 phone 946-9984 alternate # Второй телефонный номер. phone 946-9994
    system fedfond # Московское отделение ################## time Any myname fedfuru port modem # Имя описания порта в файле port speed 38400 chat ogin:-BREAK-ogin: uufedurp ssword: KLmn10 phone 8w095-125-7623
    port: --------------- Описание портов ------------------------ port modem # Обозначение порта из файла sys type modem device /dev/modem speed 38400 dialer gvc1440 # Имя наборщика-модема в файле dial
    dial: --------------- Команды модемов ------------------------ dialer gvc1440 # Обозначение наборщика из файла port
    # Строка инициализации модема. # Вместо \T будет подставлен телефонный номер chat "" ATZ OK ATH0E0Q0 OK ATDP\T CONNECT # ATZ - загрузить profile 0 # ATH0 - повесить трубку # ATE0 - no echo # ATQ0 - выводить код возврата
    chat-fail BUSY # Воспринимать как ошибку набора chat-fail ERROR chat-fail NO\sCARRIER chat-fail NO\sDIALTONE
    ################_конец_"мелкого шрифта"_######################
    #
    Все. Клиентская часть UUCP сконфигурирована. Теперь, чтобы "протолкнуть" посланные файлы, достаточно периодически выполнять команды:
    uucico -s kiae uucico -s fedfond
    А еще лучше, добавить эти команды в crontab, чтобы они выполнялись автоматически, по несколько раз в сутки.

    Конфигурирование UUCP с использованием sysadm.


    Все вышеперечисленные настройки можно сделать, используя утили- ту системного администратора sysadm. Надо войти в меню network_services / basic_network

    Конфигурирование серверной части UUCP.


    Итак, мы уже можем звонить на чужие машины, и пересылать на них файлы. Теперь нужно сделать, чтобы чужие машины (клиенты) могли звонить нам. Для этого нужно:
    1: Иметь описание звонящей нам uucp-системы в файле Systems -
          для клиента такое же, как и для сервера. 2: Проверить права доступа для клиента в файле Permitions 2: Завести для него специальный uucp-login 3: Убедиться, что модем стоит в "Auto-answer" режиме, и на порт
          /dev/modem запущена программа getty (или ttymon), позволяю-
          щая логиниться по телефону на порт /dev/modem
    1. Описание добавляется в файл Systems, (номер телефона и
          название порта не обязательны), если мы сами не
          собираемся туда звонить, но я бы посоветовал их вписать, для
          единообразия.
    2. В файле /etc/passwd завести строчку вида:
    uupetrov:x:1002:14:UU Petrov:/var/spool/uucp:/usr/lib/uucp/uucico

          выполнить команды: pwconv passwd uupetrov
    3. Любой терминальной программой "войти" в модемный порт и вы-
          полнить команды
    atz0 # Загрузить пользовательский profile 0 ats0=1 # Регистр0=1 - снимать трубку после 1-го звонка at&w0 # Сохранить текущий setup в profile 0 at&y0 # Чтобы при включении питания загружался профайл 0
    # at&f # загрузить заводские установки, если вы запутались
          # с профайлами, можно сделать модему "reset"
    Ввиду отсутствия коммуникационных программ в SVR4 (за исключением сумасшедшего "cu"), используйте "echo".

          echo atz0 > /dev/modem
          echo ats0=0 > /dev/modem
          echo at&w0 > /dev/modem # и так далее
    А еще лучше gold, там есть режим прямой связи с любым портом.
    4. В файле /etc/inittab иметь строчку вида:
    c3:234:respawn:/usr/lib/saf/ttymon -g -d /dev/modem -l contty

    Что где лежит в системе UUCP.


    /usr/bin/uucp - переслать файлы с/на удаленную uucp-систему /usr/bin/uux - выполнить команду на удаленной uucp-системе /usr/bin/uustat - статистика по выполненным пересылкам
    /usr/lib/uucp/uu* - системные утилиты UUCP
    /etc/uucp/ - каталог конфигурационных файлов UUCP

          /usr/lib/uucp/taylor_config - конфигурация UUCP в Linux
          /usr/lib/uucp/ - конфигурация UUCP в других
          системах
    /var/spool/uucppublic - каталог в который можно пересылать
          файлы с удаленных машин
    /usr/spool/mqueue - очереди отправляемой электронной почты
          /usr/ucblib/mqueue - или здесь эта очередь ? /var/spool/uucp/"машина" - очередь файлов на отправку на "машину" /var/spool/uucp/.Log - статистика о работе uucp

    Осталось настроить нашу электронную почту.


    Если у вас самый простейший случай: вся ваша почта проходит че- рез один "знающий" host, с которым вы соединены по uucp, то на- до в файле /etc/sendmail.cf иметь такую строку:
    . . . # "Smart" relay host (may be null) DSuucp-dom:kiae . . .
    В этом случае вся ваша внешняя почта (т.е. отправляемая за пределы вашей локальной сети) будет переправляться по uucp на uucp-узел "kiae" и дальнейшей ее доставкой будет озабочен именно kiae. Предполагается, что он успешно справится с этой задачей.
    А еще чтобы было описание uucp-dom (ниже в том же файле). Кстати, чтобы всех окончательно запутать, sendmail.cf на Motoґ role лежит вовсе не в /etc/, а в /usr/ucblib/.
    Если у вас какой-либо другой случай - то это - тяжелый случай. Дерзайте, успехов вам!
    # И надо сделать, чтоб сендмаил не отрезал 8-й бит у посылаемой почты # Если sendmail8.x.x, то в sendmail.cf: # strip message body to 7 bits on input? O7False

    # А еще бывает, что sendmail не знает, как правильно называется # наша машина. Тогда мы пишем что-то в таком стиле:
    Cwlocalhost feduru.urup.ru feduru.mss.ru

    Проверка работоспособности и отладка конфигурации.


    Для начала проверим, правильно ли подсоединен модем. Запускаем программу cu - эмулятор терминала.

          cu -l /dev/modem # Или как там у вас этот порт называется
    После этого вы переключитесь на работу со своим модемным пор- том. Все, что вы будете набирать с клавиатуры, будет перенап- равляться в порт /dev/modem , все, что "приходит" с этого пор- та, будет рисоваться на вашем терминале. Попробуйте модемом набрать телефонный номер

          atdp100
    Проверьте, правильно ли сконфигурирован "порт" модема и описа- ние системы в файле Systems.

          cu pulsar
    Проверьте права доступа к файлам /dev/modem, /dev/contty*. Дол- жно быть (???):

          crw-rw---- 1 root uucp ... /dev/contty0
          crw-rw---- 1 root uucp ... /dev/modem
    Запустите uucico с максимальным уровнем выдачи отладочной ин- формации. Запускать надо из под пользователя uucp

          /usr/lib/uucp/uucico -r1 -x9 -f -s pulsar
          /usr/lib/uucp/uucico -x all -f -s kiae
    А затем посмотрите на содержание файлов со статистикой uucp в каталоге /var/spool/uucp :

          .Admin/audit.local
          .Log/
          .Status/
          ERRLOG
          LOGFILE
          SYSLOG
    Например, такой командой

          tail -f /var/uucp/.Admin/audit.local &
          tail -f /var/uucp/.Log/uucico/kiae

    По результатам переписки.


    ###следующий абзац написан "мелким шрифтом"(можно не читать)#### Dmitry Mayorov Compulsory Health Insurance Fund Phone: +7 (812) 112-3517 St. Petersburg, Russia > Навешал фильтров на sendmail, rmail, > а вот это непонятно. Или они научились все из кои8 в исо пере- > ворачивать на лету ?
    Нет, конечно, потребовалось лечить. Дело сильно упростило то обстоятельство, что внутри сети везде ISO. Перекодировать по- этому мне надо только то, что идет через UUCP, то бишь наружу. Для этого пришлось:
    1. Поправить sendmail.cf:
    # RelCom UUCP - with ISO 8859-5 to KOI-8 translation Muucp-koi, P=/usr/local/bin/_uux, F=mDFMhu, S=52/31, R=21, M=100000,
          ^^^^^^^^^^^^^^^^^^^ мой, см. ниже
          A=_uux - -r -a$f -gC $h!rmail ($u)
    2. Сделать /usr/local/bin/_uux из трех строк: #!/bin/sh PATH=:/usr/bin:/usr/local/bin:/usr/ucb:/bin: /usr/local/bin/iso-koi | /usr/bin/uux $*
    (iso-koi - понятно какой фильтр)
    Это все, на самом деле, весьма грязный hack - вряд ли стоит его включать в учебник. Оно, конечно, работает, но вот надо по крайней мере еще и правильный код возврата как-то обеспечить - с проверкой ошибок и прочими фенечками.

          Чтобы принимаемая почта из KOI превращалась в ISO, достаточно:
    1. Переименовать rmail в /usr/local/bin/__rmail; 2. Сделать свой rmail, тоже из трех строчек:
    #!/bin/sh PATH=:/usr/bin:/usr/local/bin:/usr/ucb:/bin: /usr/local/bin/koi-iso | /usr/local/bin/__rmail $*
    Вышеуказанную экзекуцию надо производить именно над rmail, по- тому что rbmail проверяет контрольные суммы.
    А вот rbmail в SVR4/88 совсем нет. Надо искать исходники, соби- рать... А RelCom (по крайней мере мой провайдер) именно его пользует. Это третья причина (после отсутствия Taylor-uucp и удобного Mail-user агентa), по которой я не стал поднимать uucp/e-mail на Motorolе.
    -- Dmitry Mayorov Compulsory Health Insurance Fund Phone: +7 (812) 112-3517 St. Petersburg, Russia
          -- Конец цитаты -- ################_конец_"мелкого шрифта"_#######################

    Solaris: настройка uucp по direct line


    В файле Systems на Солярке удаленная машина описывается так:
    ranisi Any dirt06 9600 unused "" P_ZERO "" \n\c ogin:-\n\c-ogin: uuintra\n\c ssword: parolf9f10\n\c "" P_ZERO

          По сравнению с нормальным tailor-uucp престарелый соляркин по прямому кабелю выкинул несколько фортелей:

          Не захотел идти наружу с 38400, пришлось ставить 9600
          Посылаемый ^M в конце каждой строки chat-а принимающий Linux понимать отказался, пришлось делать в конце \n\c
          Работать стал только с насильственно взведенным P_ZERO - "no parity" - без этого на приеме вместо латиницы получалась 8-битная русица.

    В uucp-овый crontab ставим раз в 5 минут вызов uucico
    0,5,10,15,18,20,25,30,35,40,45,50,55 * * * * (\ /usr/lib/uucp/uucico -r1 -f -s ranisi ; sleep 30 ; \ /usr/lib/sendmail -q ) > /dev/null 2>&1

          У солярного uucico не оказалось ключа "force" redial (-f - совсем не тот форце, которого хотелось мне)

    Чтоб заставить uucico ходить на телнетовский порт

    > в логах наблюдается откровенный мусор: \177}\030\177} \177}#\177}

          port type pipe
          port command /bin/telnet -8E hostname

    Secure uucp по tcp


    Вариант 1. port type tcp with ssh-port forwarding
    НА СЕРВЕРЕ: конфигурите uucp-tcp-сервер с localhost
    /etc/inetd.conf : uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/sbin/uucico -l
    /etc/hosts.allow : uucico: 127.0.0.1
    # uucico желает его читать, а работает он с uid uucp - приходится дать read chmod og+r /etc/hosts.allow
    /etc/uucp/passwd : propisatx uu-логин, пароль _нешифрованный_ uuyourlogin yourpasswd
    НА КЛИЕНТЕ: коннект будете делать на localhost, а ssh делает его проброс
    /etc/inetd.conf : uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/sbin/uucico -l
    /etc/hosts.allow : uucico: 127.0.0.1
    /etc/uucp/port : описать порт tcp-connect port tcp-connect type tcp service 540
    /etc/uucp/sys : добавить тип порта . . . port tcp-connect address 127.0.0.1 chat ogin: \L ssword: \P alternate . . .
    "Перед употреблением" запускаем из под root ssh с активизированным forward ssh1 -C -L 540:127.0.0.1:540 193.232.173.6


    Home | UK Shop Center |Contact | Buy Domain | Directory | Web Hosting | Resell Domains


    Copyleft 2005 ruslib.us