Опубликован: 01.07.2008 | Доступ: свободный | Студентов: 2184 / 322 | Оценка: 3.78 / 3.77 | Длительность: 11:57:00
Лекция 8:

Сетевая файловая система NFS - Network File System

Что где лежит в системе 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 на Motorole лежит вовсе не в /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
 -- Конец цитаты --
8.2.

################_конец_"мелкого шрифта"_#######################

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