[Note: No initial ruleset 3 call]
>
Следующие тесты гарантируют, что sendmail способен получать всю почту
пользователей вашей системы. Во всех случаях результат теста должен быть
тот же самый и указывать на локальное имя системы с ЛОКАЛЬНЫМ
mailer'ом.
Сначала проверите, как почта была бы передана локальному пользователю.
# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter
[Note: No initial ruleset 3 call]
> 3,0 me
rewrite: ruleset 3 input: me
rewrite: ruleset 7 input: me
rewrite: ruleset 9 input: me
rewrite: ruleset 9 returns: < me >
rewrite: ruleset 7 returns: < > , me
rewrite: ruleset 3 returns: < > , me
rewrite: ruleset 0 input: < > , me
rewrite: ruleset 8 input: < > , me
rewrite: ruleset 20 input: < > , me
rewrite: ruleset 20 returns: < > , @ vstout . vbrew . com , me
rewrite: ruleset 8 returns: < > , @ vstout . vbrew . com , me
rewrite: ruleset 26 input: < > , @ vstout . vbrew . com , me
rewrite: ruleset 26 returns: $# LOCAL $@ vstout . vbrew . com $: me
- 302 -
rewrite: ruleset 0 returns: $# LOCAL $@ vstout . vbrew . com $: me
Вывод показывает как sendmail обрабатывает адрес внутренне. Он
вручается различным ruleset, которые анализируют его, вызывают другой
ruleset по очереди, и разбивают его в компоненты.
В нашем примере, мы передали мой адрес к ruleset 3 и 0 (это - значение из
3,0 введенное перед адресом). Последняя строка показывает анализируемый
адрес возвращаемый ruleset 0.
Затем, проверите почту пользователя вашей системы с синтаксисом UUCP.
# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter
[Note: No initial ruleset 3 call]
> 3,0 vstout!me
rewrite: ruleset 3 input: vstout ! me
[...]
rewrite: ruleset 0 returns: $# LOCAL $@ vstout . vbrew . com $: me >
Затем, проверите почту, адресованную пользователю вашей системы с
синтаксисом Internet к вашему полностью квалифицированному hostname.
# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter
[Note: No initial ruleset 3 call]
> 3,0 me@vstout.vbrew.com
rewrite: ruleset 3 input: me @ vstout . vbrew . com
[...]
rewrite: ruleset 0 returns: $# LOCAL $@ vstout . vbrew . com $: me >
Вы должны повторить вышеупомянутые два теста с каждым из имен,
которые Вы определили в PSEUDONYMS и параметрах DEFAULT NAME в
вашем файле sendmail.m4.
Наконец, проверите что Вы можете отправлять почту вашему relay host.
# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
- 303 -
Enter
[Note: No initial ruleset 3 call]
> 3,0 fred@moria.com
rewrite: ruleset 3 input: fred @ moria . com
rewrite: ruleset 7 input: fred @ moria . com
rewrite: ruleset 9 input: fred @ moria . com
rewrite: ruleset 9 returns: < fred > @ moria . com
rewrite: ruleset 7 returns: < @ moria . com > , fred
rewrite: ruleset 3 returns: < @ moria . com > , fred
rewrite: ruleset 0 input: < @ moria . com > , fred
rewrite: ruleset 8 input: < @ moria . com > , fred
rewrite: ruleset 8 returns: < @ moria . com > , fred
rewrite: ruleset 29 input: < @ moria . com > , fred
rewrite: ruleset 29 returns: < @ moria . com > , fred
rewrite: ruleset 26 input: < @ moria . com > , fred
rewrite: ruleset 25 input: < @ moria . com > , fred
rewrite: ruleset 25 returns: < @ moria . com > , fred
rewrite: ruleset 4 input: < @ moria . com > , fred
rewrite: ruleset 4 returns: fred @ moria . com
rewrite: ruleset 26 retu rns < @ moria . com > , fred
rewrite: ruleset 0 returns: $# UUCP-A $@ moria $: < @ moria
. com > , fred >
16.5.4 Помещение всего вместе -
Интеграционная проверка sendmail.cf и таблиц
Вы проверили что почта будет иметь желательное заданное по умолчанию
поведение и что вы будете способны и послать и получить законно
адресованную почту. Чтобы завершить установку, может быть необходимо
создать соответствующие dbm таблицы, чтобы получить желательные
конечные результаты.
После создания таблиц, которые требуются для вашего пункта, Вы должны,
обработать их через dbm созданием make в каталоге, содержащем таблицы.
Если Вы являетесь только UUCP узлом, Вы не должны создвать таблицы,
упомянутые в README.linux файле. Вы будете должны только подправить
файлы так, чтобы Make-файл работал.
Если вы в UUCP и Вы разговариваете с абонентами в дополнение к
вашему smart-host, вы будете должны добавить входы uucpxtable для каждого
- 304 -
(или почта к ним также пройдет через smart host) и выполнить dbm для
пересмотренного uucpxtable.
Сначала, Вы должны удостовериться что почта через ваш RELAY HOST,
посылается им через RELAY MAILER.
# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter
[Note: No initial ruleset 3 call]
> 3,0 fred@sesame.com
rewrite: ruleset 3 input: fred @ sesame . com
rewrite: ruleset 7 input: fred @ sesame . com
rewrite: ruleset 9 input: fred @ sesame . com
rewrite: ruleset 9 returns: < fred > @ sesame . com
rewrite: ruleset 7 returns: < @ sesame . com > , fred
rewrite: ruleset 3 returns: < @ sesame . com > , fred
rewrite: ruleset 0 input: < @ sesame . com > , fred
rewrite: ruleset 8 input: < @ sesame . com > , fred
rewrite: ruleset 8 returns: < @ sesame . com > , fred
rewrite: ruleset 29 input: < @ sesame . com > , fred
rewrite: ruleset 29 returns: < @ sesame . com > , fred
rewrite: ruleset 26 input: < @ sesame . com > , fred
rewrite: ruleset 25 input: < @ sesame . com > , fred
rewrite: ruleset 25 returns: < @ sesame . com > , fred
rewrite: ruleset 4 input: < @ sesame . com > , fred
rewrite: ruleset 4 returns: fred @ sesame . com
rewrite: ruleset 26 returns: < @ sesame . com > , fred
rewrite: ruleset 0 returns: $# UUCP-A $@ moria $: < @ sesame
. com > , fred >
Если Вы имеете UUCP соседей кроме вашего RELAY HOST, Вы должны
гарантировать, что почта к ним имеет соответствующее поведение. Почта,
адресованная с синтаксисом стиля UUCP для host, с которым Вы говорите по
UUCP, должна идти непосредственно к ним (если Вы явно не предотвращаете
это входом domaintable). Примите, что swim host - прямой сосед UUCP ваших
соседей. И при подаче swim!Fred sendmail должен произвести следующий
результат:
- 305 -
# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter
[Note: No initial ruleset 3 call]
> 3,0 swim!fred
rewrite: ruleset 3 input: swim ! fred
[...lines omitted...]
rewrite: ruleset 0 returns: $# UUCP $@ swim $: < > , fred
>
Если Вы имеете входы uucpxtable, чтобы вынудить получение по UUCP для
некоторых UUCP соседей, которые посылают почту стиля Internet с
определенным именем области, это также должно быть проверено.
# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter
[Note: No initial ruleset 3 call]
> 3,0 dude@swim.2birds.com
rewrite: ruleset 3 input: dude @ swim . 2birds . com
[...lines omitted...]
rewrite: ruleset 0 returns: $# UUCP $@ swim . 2birds $: < > , dude >
16.6 Администрирование и Глупые Приемы Почты
Теперь, когда мы обсудили теорию конфигурирования, установки, и
тестирования sendmail + IDA, давайте рассмотрим несколько моментов, чтобы
изучить вещи, которые случаются обычно в жизни администратора почты.
Отдаленные системы иногда ломаются. Ошибка модема или сбой
телефонных линий, определения DNS установлены неправильно из-за
человеческой ошибки. Сети падают неожиданно. В таких случаях,
администраторы почты должны знать, как реагировать быстро, действенно, и
безопасно схранить почту, текущую через альтернативные маршруты, пока
отдаленные системы или поставщики услуг не могут восстановить
нормальные услуги.
Остальная часть этой главы предназначена, чтобы обеспечить Вас
решениями для наиболее частыми " критическми состояниями электронной
почты ".
- 306 -
16.6.1 Пересылка Почты В Отдаленную Систему
Чтобы отправлять почту для специфического host или области в
обозначенную отдаленную систему, Вы вообще используете mailertable.
Например, чтобы отправить почту для backwood.org к их закулисной
системе GATEWAY UUCP, вы поместили следующий вход в mailertable:
UUCP-A,backdoor backwood.org
16.6.2 Почта Для Неконфигурированного Отдаленного Абонена
Часто, главные ЭВМ Internet будут иметь проблему при получении почты в
не-конфигурированном отдаленном абоненте. Имеются отдельные варианты
этой проблемы, но общий признак - почта передается отдаленной системой
или никогда добирается туда вообще.
Эти проблемы могут помещать локального администратора системы в
плохую позицию, потому что ваши пользователи вообще не заботятся о том
что Вы лично не управляете каждой системой во всем мире (или не знаете, как
получить отдаленного администратора, чтобы установить проблему). Они
только знают, что их почта не проходила желательному получателю на другом
конце и что вы являетесь вероятным виновным человеком.
Конфигурация отдаленного пункта - их проблема, не ваша. Во всех случаях,
убедитесь, что ваш пункт способен связаться с не-конфигурированным
отдаленным пунктом. Если Вы не можете войти в контакт с Постмастером в
отдаленном пункте, чтобы установить их конфигурацию своевременным
способом, Вы имеет две опции.
+ Вообще возможно вынудить послать почту в отдаленную систему успешно,
хотя, так как отдаленная система не-конфигурирована, ответы на отдаленном
конце могут не работать ..., но то это - проблема отдаленного администратора.
Вы можете устранить плохие заголовки в конверте на ваших исходящих
сообщениях только используя вход domaintable для их области или host, что
приводит к правке недопустимой информации, при выходе почты из вашего
пункта:
braindead.correct.domain.com braindead.wrong.domain.com
- 307 -
Знак ! в mailertable передает почту их отдаленному пункту, как будто она
инициировалось локально на их системе. Обратите внимание, что это
изменяет только адрес конверта, так что соответствующий адрес возврата
будет все еще обнаруживаться в сообщении.
TCP!braindead.correct.domain.com braindead.wrong.domain.com
16.6.3 Почта, которая будет перемещена через UUCP
В идеальном мире (из перспективы Internet), все главные ЭВМ будут иметь
записи в Domain Name Service (DNS) и посылать почту с полностью
квалифицированными именами области.
Если Вы, случается, передаете через UUCP такому пункту, Вы можете
вынуждать почту пройти двухточечное соединение UUCP, а не через ваш
заданный по умолчанию mailer по существу " опуская область " их hostname
через uucpxtable.
Чтобы вынуждать получение через UUCP для sesame.com, Вы поместили
бы следующее в ваш uucpxtable:
# un-domainize sesame.com to force UUCP delivery
sesame sesame.com
Результат - тот sendmail, то определит (через UUCPNODES в файле
sendmail.m4) что Вы непосредственно соединены с отдаленной системой, и
будет ставить в очередь почту для получения через UUCP.
16.6.4 Предотвращение Передачи Почты через UUCP
Противоположное условие также происходит. Часто системы могут иметь
ряд прямых соединений UUCP, которые редко используются или они не так
надежны и всегда доступны как заданный по умолчанию mailer или relay host.
Например, в Seattle области имеется ряд систем, которые обменивают
различные распределения Linux через анонимный UUCP, когда эти
распределения выпускаются. Эти системы говорят по UUCP только когда
необходимо, так что вообще быстрее и более надежно послать почту через
общие (и всегда доступные) главные ЭВМ.
Легко можно предотвратить получение UUCP почты от host, с которым Вы
непосредственно соединены. Если отдаленная система имеет полностью
- 308 -
квалифицированное имя области, Вы может добавить вход в domaintable:
# prevent mail delivery via UUCP to a neighbor
snorkel.com snorkel
Это заменит любое вхождение имени UUCP на FQDN, и таким образом
предотвратит соответствие строкой UUCPNODES в файле sendmail.m4.
Результат - почта будет идти через RELAY MAILER и RELAY HOST (или
DEFAULT MAILER).
16.6.5 Выполнение Очереди Sendmail по требованию
Для обработки поставленных в очередь сообщений немедленно, просто
набейте "/usr/lib/runq ". Это заставляет sendmail выполнить очередь заданий,
немедленно а не ждать следующего планируемого.
16.6.6 Статистика Почты
Многие администраторы пунктов (и персонал) заинтересованы объемом
почты, передающейся к, из, и через локальный пункт. Имеется ряд способов
определить количество траффика почты.
+ Sendmail приходит с утилитой, называемой mailstats, которая читает файл
называемый /usr/local/lib/mail/sendmail.st и сообщает число сообщений и число
байтов, перемещенных каждым из mailer'ов используемых в файле sendmail.cf.
Этот файл должен быть создан локальным администратором вручную для
регистрации sendmail. Текущие показатели будут очищены, удаляя и вновь
создавая sendmail.st файл. Один способ состоит в том, чтобы делать следующее:
# cp /dev/null /usr/lib/local/mail/sendmail.st
+ Возможно самый лучший способ делать качественный отчет относительно
того, кто использует почту и сколько объема проходит к, из, и через локальную
систему, состоит в том, чтобы включить отладку почты как syslogd (8). Вообще,
это означает выполнение /etc/syslogd daemon из вашего файла запуска системы
(который Вы должны создать во всяком случае), и добавление строки к
/etc/syslog.conf (5) который который выглядит примерно:
mail.debug /var/log/syslog.mail
- 309 -
Если Вы используете mail.debug и отправляете по почте большие объемв,
вывод syslog может стать большим. Выходные файлы из syslogd вообще
должны сдвигаться или очищаться на стандартном базисе из crond (8).
Имеется ряд обычно доступных утилит, которые могут подводить итог
вывода регистрации почты из syslogd. Одна из наиболее известных утилит -
syslog-stat.pl, команда perl, которая распределена с sendmail + IDA.
16.7 Смешивание и Соответствие Двоичных Распределений
Не имеется никакой истинной стандартной конфигурации транспорта
электронной почты и средств получения и не имеется никакой " истинной
структуры каталога. "
Соответственно, необходимо гарантировать, что все различные части
системы (USENET новости, почта, TCP/IP) договариваются о расположении
локальной программы получения почты (lmail, deliver, и т.д.), отдаленной
программы получения почты (rmail), и программы транспорта почты (sendmail
или smail). Такие предположения вообще не зарегистрированы, хотя
использование команды может помогать определять то, какие файлы и
каталоги ожидаются. Следующее - некоторые проблемы, которые мы видели в
прошлом с некоторыми доступными двоичными распределениями и
исходниками.
+ Некоторые версии распределения NET-2 TCP/IP имеют услуги,
определенные для программы, называемой umail а не sendmail.
+ Имеются различные порты elm и mailx, которые ищут средство получения
/usr/bin/smail а не sendmail.
+ Sendmail + IDA имеет встроенный локальный mailer для deliver, но ожидает,
что он расположен в /bin, а не в более типичном расположении Linux /usr/bin.
16.8 Где Получить Подробную информацию
Имеется много мест, где Вы можете искать подробную информацию
относительно sendmail. См. Linux MAIL Howto зарегистрированный регулярно
как comp.answers. Это также доступно для анонимного FTP на rtfm.mit.edu.
Однако, окончательное место находится в sendmail + IDA. Смотрите в каталоге
- 310 -
ida/cf ниже исходного каталога файлы DBM-GUIDE, OPTIONS, и Sendmail.mc.
17. Netnews
17.1 Usenet Хронология
Идея относительно сетевых новостей была рождена в 1979 когда два
студента Tom Truscott и Jim Ellis подумали об использовании UUCP чтобы
соединять машины с целью информационного обмена среди пользователей
Unix. Они установили малую сеть из трех машин на Севере Каролины.
Первоначально, траффик был обработан рядом команд оболочки (позже
перезаписан в C), но они никогда не были выпущены к общему. Они были
быстро заменены на "А" новости, первый общий выпуск программного
обеспечения новостей.
"А" новости не был разработаны, чтобы обработать больше чем несколько
статей на группу в день. Когда объем продолжил расти, это было
перезаписано Мark Horton и Matt Glickman, и названо "B" выпуск (a.k.a. Bnews).
Первый общий выпуск Bnews был - версия 2.1 в 1982. Он расширялся
непрерывно, с отдельными новыми добавляемыми возможностями. Текущая
версия - Bnews 2.11. Она медленно устаревает.
Другая перезапись была выполнена и выпускалась в 1987 Geoff Collyer и
Henry Spencer; это - выпуск " "C", или Новости C.
Выпуск Эффективности - Новости C, версия в настоящее время
включенная в большинство реализаций Linux.
Все выпуски новостей до " " C " " является прежде всего целенаправленным
для сетей UUCP, хотя они могут использоваться в других средах также.
Эффективная передача новостей над сетями подобно TCP/IP, DECNet требует
новой схемы. Это было причиной почему, в 1986 появился " Сетевой
Протокол передачи Новостей '', NNTP. Он основан на сетевых соединениях, и
определяет ряд команд, чтобы в интерактивном режиме передать и отыскать
статьи.
Имеется ряд nntp-основанных приложений, доступных из Сети. Один из
них - nntpd пакет Brian Barber и Phil Lapsley,
Другие NNTP пакеты - INN, или Новости Internet. Это не просто передная
часть, но система новостей с собственными правилами.
17.2 Что является Usenet, Во всяком случае?
- 311 -
Одно из наиболее поразительных предложений относительно Usenet - то,
что это не часть любой организации, и не имеет централизованной сетевой
власти для управления. Фактически, это - все Usenet сведения, кроме
технического описания. Вы не можете определять, что это, Вы можете только
сказать чем это не является.
С риском звучать глупо, можно было определить Usenet как
сотрудничество отдельных абонентов, которые обмениваются Usenet
новостями.
Базисный модуль Usenet новостей - статья. У статьи есть так называемый
заголовок. Это очень похоже на формат заголовка почты, установленный в
Internet, стандарт RFC 822, в котором это состоит из отдельных строк текста,
каждое начинается с имени поля, завершенного двоеточием, которое
сопровождается значением поля. (1)
Статьи представлены на рассмотрение в одну или большое количество
newsgroups. Можно рассматривать newsgroup форумом для статей в отношении
общего предмета. Все newsgroups организованы в иерархии, с именем каждой
группы, указывающим место в иерархии. Например, любой может видеть из
имени newsgroup, что comp.os.linux.announce используется для объявлений
относительно операционной системы Linux.
17.3 Как в Usenet Обрабатывают Новости?
Сегодня, Usenet вырос до огромных размеров. Узлы, которые несут все
netnews обычно передают что - нибудь вроде несерьезных шестидесяти
мегабайтов в день. (2) Конечно это требует намного больше чем обмен
файлами. Так что давайте рассмотрим способ, которым большинство системах
Unix обрабатывает Usenet новости.
Новости распределены через сеть различными transports. Как историческая
среда используется UUCP, но сегодня основной траффик несет абонент Internet.
Используемый алгоритм маршрутизации называется лавинной
маршрутизацией: Каждый пункт поддерживает ряд связей к другому абоненту.
Любая статья, сгенерированная или полученная локальной системой новостей
будет послана к ним.
Чтобы отличать статьи и распознавать дубликаты, Usenet статьи должны
нести ID сообщения (заданный в поле заголовка Message-ID:), которое
объединяет имя пункта регистрации и серийный номер в " ''. Для
каждой обработанной статьи, система новостей регистрирует ее ID в файл
хронологии, в котором проверяются все прибывающие статьи.
- 312 -
Явное число статей обычно требует, чтобы к вышеупомянутой схеме были
сделаны уточнения. На сетях UUCP, обычто статьи за период времени
объединяются в одиночный файл, который сжимается и посылается к
отдаленному пункту. Это вызывается, пакетирование.
Абонент, которые находятся в Internet вообще полагается на TCP/IP
программное обеспечение, которое использует Сетевой Протокол передачи
Новостей, NNTP. Он передает новости между узлами и обеспечивает Usenet
доступ к отдельным пользователям.
18. "C" Новости
Один из наиболее популярных пакетов программ для Netnews - Новости C.
Это было разработано для абонентов, которые несут новости по связям UUCP.
Эта глава обсудит центральные понятия Новостей C, и базисной установки и
задач сопровождения.
Новости C (C News) сохраняют файлы конфигурации в /usr/lib/news, а
большинство binaries в каталоге /usr/lib/news/bin. Статьи сохраняются ниже
/var/spool/news. Вы должны удостовериться виртуально что все файлы в этих
каталогах принадлежат новостям пользователя, групповым новостям.
Большинство проблем является результатом файлов, являющихся недоступным
для Новостей C. Сделайте это правилом для Вас, определить новостями
пользователя, используя su прежде, чем Вы что - нибудь там измените.
Единственые исключения - setnewsids, которые используются, чтобы
установить реальный id пользователя некоторых программ новостей. Это
должно принадлежать root и должно иметь setuid набор битов.
Далее мы описываем все файлы конфигурации C News подробно, и
показываем Вам, что Вы должны делать, чтобы сохранить ваш пункт в
рабочем состоянии.
18.1 Поставка Новостей
Статьи могут быть поданы C News отдельными способами. Когда
локальный пользователь отправляет по почте статью, newsreader обычно
вручает ее команде inews, которая завершает информацию заголовка. Новости
из отдаленного абонента, будь это одиночная статья или целый пакет, даны
команде rnews, которая сохраняет их в каталоге /var/spool/newsin.coming, откуда
они будут подняты в более позднее время newsrun. С любым из этих двух
методов, однако, статья будет в конечном счете вручена команде relaynews.
- 313 -
Для каждой статьи, команда relaynews проверяет, если статья уже была
замечена в локальном пункте, ища id сообщения в файле хронологии. Двойные
статьи будут пропущены. Затем, relaynews рассматривает Newsgroups: строку
заголовка, чтобы выяснить, запрашивает ли локальный пункт статьи из любой
из этих групп. Если он это делает, и группа новостей перечислена в открытом
файле, relaynews пробует сохранять статью в соответствующем каталоге в
области хранения новостей. Если этот каталог не существует, он будет создан.
Id сообщения статьи будет регистрироваться в файле хронологии. Иначе,
relaynews пропускает статью.
Если relaynews будет не в состоянии сохранять входящую статью, потому
что группа, в которой она была зарегистрирована, не перечислена в вашем
открытом файле, статья будет перемещаться в группу junk. relaynews также
проверит несвежие или статьи без дат и отклонит их. Входящие пакеты,
которые терпят неудачу по любой другой причине, перемещаются в
/var/spool/news/in.coming/bad, и сообщение об ошибках регистрируется.
18.2 Установка
Чтобы установить C News необходимо раз'tar'ить файлы в их
соответствующие места, если Вы еше не сделали этго, и отредактировать
файлы конфигурации, перечисленные ниже. Они все расположены в
/usr/lib/news. Их форматы будут описаны в следующих разделах.
Если Вы являетесь передающим пунктом (пунктом листа), Вы нуждаетесь в
строке, которая посылает все локально сгенерированные статьи к
ожидающему. Пусть ожидающий - moria, тогда ваш системный файл должен
выглядеть следующим образом:
ME:all/all::
moria/moria.orcnet.org:all/all,!local:f:
organization Имя Вашей организации. Например, "Виртуальный Пивоваренный
завод". На вашей местной машине, введите " частный пункт '', или что -
нибудь, еще, что Вы находите приятным. Большинство людей не будет
называть ваш пункт правильно отконфигурированным, если Вы не настроили
этот файл.
newsgroups ...
- 314 -
mailname Имя почты Вашего пункта, например vbrew.com.
whoami Имя Вашего пункта для целей новостей. Часто используется имя пункта
UUCP, например vbrew.
explist Вы должны возможно редактировать этот файл, чтобы отразить ваше
привилегированное время для некоторых специальных newsgroups. Дисковое
пространство может играть важную роль в этом.
Чтобы создавать начальную иерархию newsgroups, получите active и
newsgroups файл из пункта, который передает Вам, и установите их в
/usr/lib/news. Удалите все to.* группы из active файла, и добавте to.mysite и
to.feedsite, также как junk и control. To.* группы обычно используются для
обмена ihave/sendme сообщениями, но Вы должны создать их независимо от
того, планируете ли Вы использовать ihave/sendme или нет. Затем, замените все
числа статьи во втором и третьем поле active, используя следующую команду:
# cp active active.old
# sed 's/ [0-9]* [0-9]* / 0000000000 00001 /' active.old > active
# rm active.old
Вторая команда - вызов sed (1), одна из моих любимых команд Unix. Этот
вызов заменяет две строки цифр на строку нулей и строку 000001,
соответственно.
В заключение, создайте каталог для хранения новостей и подкаталоги,
используемые для входящих и исходящих новостей:
# cd /var/spool
# mkdir news news/in.coming news/out.going
# chown -R news.news news
# chmod -R 755 news
Если вы используете более поздний выпуск C News, Вы можете быть
должны создать каталог out.master в каталоге хранения новостей.
Если вы используете newsreaders из другого распределения чем C News, Вы
можете находить, что некоторые ожидают хранилище новостей в
/usr/spool/news а не в /var/spool/news. Если ваш newsreader кажется, не находит
статьи, создайте сноску из /usr/spool/news в /var/spool/news.
Теперь, Вы готовы получать новости. Обратите внимание, что Вы не
- 315 -
должны создавать любые каталоги отличные от показанных выше, потому что
каждый раз когда C News получает статью от группы, для которой не имеется
никакого каталога, он создаст его.
C News нуждается в пользователе, которому можно послать сообщения об
ошибках и отчеты состояния. По умолчанию, это - usenet. Если Вы используете
значение по умолчанию, Вы должен установить специальные права для него.
Вы можете также отменять это поведение, устанавливая переменную среды
NEWSMASTER как соответствующее имя.
18.3 Системный файл
Системный файл sys расположенный в /usr/lib/news, управляет иерархией
получения и передачи к другому абоненту. Хотя имеются инструментальные
средства сопровождения, именованные addfeed и delfeed, я думаю, что лучше
поддерживать этот файл вручную.
Файл sys содержит входы для каждого пункта на который Вы передаете
новоси, также как описание групп, которые Вы примете. Вход выглядит
подобно
site[/exclusions]:grouplist[/distlist][:flags[:cmds]]
Входы могут быть продолжены поперек символов перевода строки,
используя наклонную черту влево (\). Знак мусора (*) обозначает комментарий.
site является именем пункта к которому вход применяется. Каждый обычно
выбирает имя UUCP пункта для этого. Должен иметься вход для вашего пункта
в файле sys, или Вы не будете получать никакие статьи самостоятельно.
Специальное имя пункта ME обозначает ваш пункт.
Так как C News проверяет пункт против имен пункта в Path: поле заголовка,
Вы должны удостовериться, что они действительно соответствуют. Некоторые
абонентв используют их полностью квалифицированное имя области в этом
поле, или специальное подобно news.site.domain. Чтобы предотвращать возврат
любых статей к этому абоненту Вы должны добавить их к списку исключения,
отделяя их запятыми.
Для входа, обращающегося к пункту moria, например, поле пункта
содержало бы moria/moria.orcnet.org.
Grouplist - отделенный запятой список групп и иерархий для этого
специфического пункта. Иерархия может быть определена, давая префикс
иерархии (типа comp.os для всех групп, чьи имена начинаются с этого
- 316 -
префикса), необязательно сопровождаемый ключевым словом all (например
comp.os.all).
Иерархия или группа исключается из пересылки, приписыванием метки
восклицания. Если newsgroup проверен против списка, самое длинное
соответствие, применяется. Например, если grouplist содержит
!comp,comp.os.linux,comp.folklore.computers
Никакие группы из comp иерархии за исключением comp.folklore.computers
и всех групп ниже comp.os.linux не будут поданы к тому пункту.
Если пункт запрашивает послать все новости, что Вы получаете для себя,
введите все как grouplist.
Distlist - смещение из grouplist наклонной чертой вправо, и содержит список
распределений, которые будут посланы. Снова, Вы можете исключать
некоторые распределения, предшествуя им с меткой восклицания. Все
распределения обозначены all. Опущение distlist подразумевает список всех.
Например, Вы можете использовать дистрибутивный список all,!Local,
чтобы предотвратить посылку новостей для локального использования
отдаленному абоненту.
Имеются обычно по крайней мере два распределения: world, который
является часто заданным по умолчанию используемым распределением когда
ни одно не определено пользователем, и local. Могут иметься другие
распределения, которые обращаются к некоторой области, штату, стране, и т.д.
В заключение, имеются два распределения, используемые только C News; это -
sendme и ihave, и используются для sendme/ihave протокола.
Флаги
Здесь описывются некоторые параметры для feed. Это может быть пусто,
или комбинация следующего:
F Этот флаг дает возможность пакетированию.
f Это почти идентично F флагу, но позволяет C News вычислять размер
исходящих пакетов более точно.
I Этот флаг заставит C News произвести список статей, подходящих для
использования ihave/sendme. Дополнительные изменения sys и batchparms
- 317 -
файлов требуются, чтобы дать возможность ihave/sendme.
n Это создает командные файлы для active NNTP клиентов передачи подобно
nntpxmit (см. главу 19.). Командные файлы содержат имя файла статьи наряду с
id сообщения.
L Это сообщает, чтобы C News передал только статьи, зарегистрированные в
вашем пункте. Этот флаг может сопровождаться десятичным числом n,
которое заставит C News передать статьи, зарегистрированные только внутри
n переходов из вашего пункта. C News определяет число переходов в поле
Path:.
u Это сообщает C News принимать только статьи из групп unmoderated.
m Это сообщает C News принимать только статьи из уменьшенных групп.
Вы можете использовать не больше одного из F, f, I, или n.
cmds Это поле содержит команду, которая будет выполнена для каждой статьи,
если пакетирование не допускается. Статья будет подана команде на
стандартном вводе. Это должно использоваться для очень малых потоков;
иначе загрузка на обеих системах будет слишком высока.
Заданная по умолчанию команда
uux - -r -z system!rnews
Вызывает rnews на отдаленную систему, подавая эту статью на стандартном
вводе.
Заданный по умолчанию путь поиска для команд, данных в этом поле -
/bin:/usr/bin:/usr/lib/news/bin/batch. Последний каталог содержит ряд команд
оболочки, чьи имя начинается с via; они кратко описаны позже в этой главе.
Если пакетирование допускается, использованием или F или f, или I или n
флагов, C News ожидает находить имя файла в этом поле, а не команду. Если
имя файла не начинается с наклонной черты вправо (/), оно принимается
относительно /var/spool/news/out.going. Если поле пусто, то значения по
умолчанию system/togo.
При установке C News, Вы будете возможно должны написать ваш
собственный файл sys. Чтобы помочь Вам с этим, мы даем типовой файл для
vbrew.com ниже, с которого Вы могли бы скопировать то, в чем Вы
нуждаетесь.
- 318 -
# We take whatever they give us.
ME:all/all::
# We send everything we receive to moria, except for local and
# brewery-related articles. We use batching.
moria/moria.orcnet.org:all,!to,to.moria/all,!local,!brewery:f:
# We mail comp.risks to jack@ponderosa.uucp
ponderosa:comp.risks/all::rmail jack@ponderosa.uucp
# swim gets a minor feed
swim/swim.twobirds.com:comp.os.linux,rec.humor.oracle/all,!local:f:
# Log mail map articles for later processing usenet-
maps:comp.mail.maps/all:F:/var/spool/uumaps/work/batch
18.4 Файл active
Файл active расположенный в /usr/lib/news перечисляет все группы,
известные в вашем пункте, и статьи в настоящее время интерактивные. Вы
редко будете должны изменять его, но мы объясним это ради законченности.
Входы имеют следующую форму:
newsgroup high low perm
Newsgroup, конечно, имя группы. Low и high - самые низкие и самые
высокие числа статей, в настоящее время доступных. Если ни одна не является
доступной в настоящее время, low = high + 1.
Perm - параметр, детализирующий доступ пользователей в зависимости от
группы. Он принимает одно из следующих значений:
y Пользователям разрешают отправить по почте к этой группе.
n Пользователям не разрешают отправить по почте к этой группе. Однако,
группа может все еще читаться.
x Эта группа была заблокирована локально. Это случается иногда, когда
- 319 -
администраторы новостей (или их старшие) закрывают статьи,
зарегистрированные в некоторых группах.
Статьи, полученные для этой группы не сохранены локально, хотя они
посланы к абонентам, которые запрашивают их.
m Это обозначает уменьшенную группу. Когда пользователь пробует
отправлять по почте к этой группе, интеллектуальный newsreader сообщит
какая она, и пошлет статью регулятору взамен. Адрес регулятора принимается
из файла регуляторов в /usr/lib/news.
=real-group Это отмечает newsgroup как локальную специализацию для другой
группы, а именно real-группы. Все статьи, зарегистрированные в newsgroup
будут переназначены в нее.
В C News, Вы вообще не будете должны обращаться к этому файлу
непосредственно. Группы могут быть добавлены или удаляться, локально
используя addgroup и delgroup (см. ниже в разделе 18.10). Когда группы
добавляются или удаляются для всего Usenet, это обычно делается, посылая
newgroup или rmgroup сообщение управления, соответственно. Никогда не
посылайте такое сообщение самостоятельно! Для команд о том, как создавать
newsgroup, читайте ежемесячник в news.announce.newusers.
Файл, близко связанный с active - active.times. Всякий раз, когда группа
создана, C News регистрирует сообщение в этот файл, содержащее имя
созданной группы, дату создания, было ли это выполнено в соответствии c
сообщением управления новой группы или локально, и кто сделал это. Это -
для удобства newsreaders, которые могут сообщать пользователю относительно
любой недавно созданной группы. Это также используется командой
NEWGROUPS NNTP.
18.5 Пакетирование Статьи
Newsbatches следуют за специфическим форматом, который является тем
же самым для Bnews, C News, и INN. Каждой статье предшествует строка:
#! rnews count
Где count - число байтов в статье. Когда используется пакетное сжатие,
возникающий в результате файл сжат в целом, и содержит другую строку в
соответствии c сообщением, которое нужно использовать для распаковки.
Стандартное средство сжатия - упаковщик, который отмечен
- 320 -
#! cunbatch
Иногда, при необходимости посылать пакеты через программное
обеспечение почты, которое удаляет, восьмой бит из всех данных, сжатый
пакет может быть защищен, используя, что называется c7-encoding; эти пакеты
будут отмечены c7unbatch.
Когда пакет подан к rnews на отдаленном пункте, он проверяет эти
маркеры и обрабатывает пакет соответственно. Некоторые абоненты также
используют другие инструментальные средства сжатия, подобно gzip, и
предшествует таким файлам с zunbatch взамен. C News не распознает
ненормативные заголовки подобно этим; Вы должны изменить исходник,
чтобы поддерживать их.
В C News, пакетирование статьи выполняется
/usr/lib/news/bin/batch/sendbatches, который берет список статей из site/togo файла,
и помещает их в отдельный newsbatches. Это должно быть выполнено раз в час
или даже более часто, в зависимости от объема траффика.
Операция управляется batchparms файлом в /usr/lib/news. Этот файл
описывает максимальный пакетный размер, позволенный для каждого пункта,
программу пакетирования и необязательную программу сжатия, которую
нужно использовать, и транспорт для поставки к этому отдаленному пункту.
Вы можете определять параметры пакетирования, также как набор заданных
по умолчанию параметров для абонента, не явно упомянутого.
Чтобы выполнять пакетирование для специфического пункта, Вы
вызываете это как
# su news -c "/usr/lib/news/bin/batch/sendbatches site"
Когда вызывается без аргументов, sendbatches обрабатывает все пакетные
очереди. Интерпретация " все " зависит от присутствия заданного по
умолчанию входа в batchparms. Если он найден, все каталоги в
/var/spool/news/out.going проверяются, иначе, он циклически проходит все
входы в batchparms. Обратите внимание, что sendbatches, при просмотре
каталога out.going, берет только те каталоги, которые не содержат никакую
точку или знак (@) как имена пункта.
При установке C News, Вы наиболее вероятно найдете batchparms файл в
вашем распределении, который содержит приемлемый заданный по
умолчанию вход, так что имеется хорошая возможность не изменять файл. На
- 321 -
всякий случай, мы описываем формат. Каждая строка состоит из шести полей,
отделяемых пробелами или метками табуляции:
site size max batcher muncher transport
Значение этих полей следующие:
site - имя пункта, к которому применяется вход. Togo файл для этого пункта
должен постоянно находиться в out.going/togo. Имя пункта /default/ обозначает
заданный по умолчанию вход.
size - максимальный размер созданных пакетов статей (перед сжатием). Для
одиночных статей больших чем этот размер, C News делает исключение и
помещает их в одиночный пакет.
max - максимальное число пакетов, созданных и планируемых для
передачи перед пакетированием для этого специфического пункта.
C News определяет число поставленных в очередь пакетов, используя
queulen команду в /usr/lib/news/bin. Выпуск newspak Vince Skahan'а должен
содержать команду для bnu-совместимого UUCP. Если Вы используете
различные виды spool каталогов, например, Taylor UUCP, Вам может быть
необходимо написать ваш собственный.
Поле batcher содержит команду, используемую для создания пакета из
списка статей в togo файле. Это - обычно batcher. Для других целей можно
обеспечивать альтернативные команды. Например, ihave/sendme протокол
требует, чтобы список статей был превращен в сообщения управления ihave
или sendme, которые зарегистрированы в newsgroup to.site. Это выполняется
batchih и batchsm.
muncher поле определяет команду, используемую для сжатия. Обычно, это -
compcun, команда, которая производит сжатый пакет. В качестве
альтернативы, Вы могли бы обеспечивать muncher, который использует gzip,
скажем gzipcun (чтобы быть чистым: Вы должны запись это непосредственно).
Вы должны удостовериться, что распаковщик на отдаленном пункте
исправлен, чтобы распознать файлы, сжатые с gzip.
Если отдаленный пункт не имеет команды распаковки, Вы можете
определить nocomp, который не делает никакое сжатие.
Последнее поле, transport, описывает транспорт, который нужно
использовать. Доступно несколько стандартных команд для различных
transports, чьи имена начинаются с via. Sendbatches передает им имя пункта
адресата в командной строке. Если batchparms вход не был /default/, он получает
имя пункта из поля site, удаляя все последующее, включая первую точку или
- 322 -
наклонную черту вправо. Если вход был /default/, используются имена каталога
в out.going.
Имеются две команды, которые используют uux, чтобы выполнить rnews на
отдаленной системе; viauux и viauuxz. Последняя устанавливает -z флаг для
(более старые версии) uux, чтобы отменить сообщения успеха для каждой
переданной статьи. Другая команда, viamail, посылает пакеты статей
пользователю rnews на отдаленной системе через почту.
Все команды из последних трех полей нужно расположть или в
out.going/site или в /usr/lib/news/bin/batch. Большинство их - команды, так, чтобы
Вы могли легко приспосабливать новые инструментальные средства для
ваших персональных потребностей. Они вызываются как трубопровод.
Список статей подается дозатору на стандартном вводе, который производит
пакет на стандартном выводе. Это канально передается в muncher, и так далее.
Типовой файл дан ниже.
# batchparms file for the brewery
# site | size |max |batcher |muncher |transport
#-------------+--------+-------+---------+-----------+-----------
/default/ 100000 22 batcher compcun viauux
swim 10000 10 batcher nocomp viauux
18.6 Устаревшие Новости
В Bnews, устаревание выполняться программой называемой expire, которая
принимает список newsgroups как аргументы, наряду с спецификацией времени
после которого статьи должны устареть.
Иногда, Вы можете хотеть сохранять статьи из некоторых групп даже после
того, как они устарели; например, Вы могли бы хотеть сохранить программы,
зарегистрированные в comp.sources.unix. Это называется архивирование. Explist
разрешает Вам отмечать группы для архивирования.
Вход в explist похож на это:
grouplist perm times archive
Grouplist - отделенный запятой список newsgroups, к которым вход
применяется. Иерархии могут быть определены префиксом имени группы,
необязательно конкатенированным ко всем. Например, для входа,
обращающегося к всем группам ниже comp.os, Вы могли бы вводить comp.os
- 323 -
или comp.os.all в grouplist.
При устаревании новости из группы, имя будет проверено против всех
входов в explist в данном порядке. Первый соответствующий вход
применяется. Например, чтобы отбросить большую часть comp после четырех
дней, кроме comp.os.linux.announce, который Вы хотите хранить в течение
недели, Вы просто должны иметь вход для последнего, который определяет
семи-дневный период окончания, сопровождаемый входом для comp, который
определяет четыре дня.
Поле perm детализирует, если вход применяется к уменьшенной, или
любой группе. Оно может принимать значения m, u, или x, которые
обозначают уменьшенный, неуменьшенный, или любой тип.
Третье поле, times, обычно содержит только одиночное число. Это - число
дней после которых статьи будут устаревать, если они не были назначены,
искусственная дата окончания в поле Expires в заголовке статьи. Обратите
внимание, что это - число дней подсчитывается с поступления в ваш пункт, а
не с даты регистрации.
Поле times может, однако, быть более сложно. Это может быть комбинация
до трех чисел, отделяемых от друг друга черточкой. Первое обозначает число
дней, которые должны пройти прежде, чем статья рассматривается
кандидатом на окончание. Редко полезно использовать значение отличное от
нуля. Второе поле - вышеупомянутое заданное по умолчанию число дней
после, которых оно будет устаревать. Третья часть - число дней после которых
статья будет устаревать безоговорочно, независимо от того, имеет ли она поле
Expires или нет. Если только среднее число дано, другие два берут значения по
умолчанию. Они могут быть определены, используя специальный /bounds/
входа, который описан ниже.
Четвертое поле, archive, обозначает, должен ли newsgroup быть
заархивирован, и где. Если никакого архивирования не предназначено,
должна использоваться черточка. Иначе, Вы либо используете полное имя
пути (указывающее на каталог), или знак (@). Знак обозначает заданный по
умолчанию каталог архивов, который должен то быть дан doexpire, используя
-a флаг в командной строке. Каталог архивов должен принадлежать news.
Когда doexpire архивирует статью из, скажем comp.sources.unix, он сохраняет ее
в каталоге comp/sources/unix ниже каталога архивов, создавая его если он не
существует. Каталог архивов непосредственно, однако, не будет создан.
Имеются два специальных входа в вашем explist файле, на который doexpire
полагается. Вместо списка newsgroups, они имеют ключевые слова /bounds/ и
/expired/. Вход /bounds/ содержит значения по умолчанию для трех значений
- 324 -
поля времен, описанного выше.
Поле /expired/ определяет, как долго C News будет содержать строки в
файле хронологии. Это необходимо, потому что C News не будет удалять
строку из файла хронологии, если соответствующая статья устарела, но будет
содержать ее в случае, если дубликат должен прибыть после этой даты.
Простой explist файл с довольно плотными интервалами истечения
воспроизведен ниже:
# keep history lines for two weeks. Nobody gets more than three months
/expired/ x 14 -
/bounds/ x 0-1-90 -
# groups we want to keep longer than the rest
comp.os.linux.announce m 10 -
comp.os.linux x 5 -
alt.folklore.computers u 10 -
rec.humor.oracle m 10 -
soc.feminism m 10 -
# Archive *.sources groups
comp.sources,alt.sources x 5 @
# defaults for tech groups
comp,sci x 7 -
# enough for a long weekend
misc,talk x 4 -
# throw away junk quickly
junk x 1 -
# control messages are of scant interest, too
control x 1 -
# catch-all entry for the rest of it
all x 2 -
С устареванием в C News, имеется ряд потенциальных проблем при
чистке. Например, ваш newsreader мог бы полагаться на третье поле файла
active, который содержит число самой низкой интерактивной статьи. При
истечении статьи, C News не модифицирует это поле. Если Вы хотите чтобы
это поле, представляло реальную ситуацию, Вы должны выполнить
программу, называемую updatemiin после каждого выполнения doexpire.
18.7 Разнообразные Файлы
- 325 -
Имеется ряд файлов, которые управляют поведением C News, но не
существенны для функционирования. Все они постоянно находятся в
/usr/lib/news. Мы опишем их кратко.
newsgroups Это - файл дополняющий active, который содержит список имен
newsgroup, наряду с кратким описанием основного предмета. Этот файл
автоматически модифицируется, когда C News получает сообщение
управления checknews (см. раздел 18.8).
localgroups если Вы имеете ряд локальных групп, таких что Вы не хотите,
чтобы C News жаловался относительно них, каждый раз когда Вы получаете
checknews сообщение, поместите их имена и описания в этом файле, точно так
же как они появились бы в newsgroups.
mailpaths Этот файл содержит адрес регулятора для каждой уменьшенной
группы. Каждая строка содержит имя группы, сопровождаемое адресом email
регулятора (отделеные меткой табуляции).
Два специальных входа обеспечиваются как значение по умолчанию. Они
базовые и межсетевые. Оба обеспечиваются --- в записи bang-path --- путем к
самому близкому базовому пункту, и пункту, который понимает RFC 822
адреса (user@host).
Вы не будете должны изменять межсетевой вход, если Вы имеете smail или
sendmail, потому что они понимают RFC 822 - адресацию.
Базовый вход используется всякий раз, когда пользователь отправляет по
почте к уменьшенной группе, чей регулятор не перечислен явно. Если имя
newsgroup -- alt.sewer, и базовый вход содержит path!%s, C News отправит по
почте статью к path!alt-sewer, надеясь, что базовая машина способна передать
статью. Чтобы выяснить который путь использовать, спросите
администрацию новостей в пункте, который передает Вам. Вы можете также
использовать uunet.uu.net!%s.
distributions Этот файл не файл C News, но он используются некоторыми
newsreaders, и nntpd. Он содержит список распределений, распознанных вашим
пунктом, и описанием (встроенных) возможностей. Например, Виртуальный
Пивоваренный завод имеет следующий файл:
world everywhere in the world
- 326 -
local Only local to this site
nl Netherlands only
mugnet MUGNET only
fr France only
de Germany only
brewery Virtual Brewery only
log Этот файл, содержит файл регистрации всех действий C News. Он
вызывается регулярно, выполняя newsdaily; копии старых регистрационных
файлов сохраняются в log.o, log.oo, и т.д.
errlog Это - файл регистрации всех сообщений об ошибках, созданных C News.
Он не включают плохие статьи, и т.д. Этот файл будет отправлен по почте к
newsmaster (usenet по умолчанию) автоматически newsdaily, если он не-пуст.
Errlog очищается newsdaily. Старые копии сохраняются в errlog.o и т. д.
batchlog Он регистрирует все выполнения sendbatches. Он обычно мало
интересен. Он также зависит от newsdaily.
watchtime Это - пустой файл, создаваемый каждый раз при выполнении
newswatch.
18.8 Сообщения Управления
Usenet протокол новостей знает специальный класс статей, которые
вызывают некоторые ответы или действия системы новостей. Они
называются сообщениями управления. Они распознаются присутствием поля
Control в заголовке статьи, которое содержит имя операции управления,
которую нужно выполнить. Имеются отдельные типы этих операций, которые
обрабатываются командами оболочки, расположенными в /usr/lib/news/ctl.
Большинство из них выполнит их действие автоматически во время
обработки статьи C News, без того, чтобы уведомить newsmaster. По
умолчанию, только checkgroups сообщения будут вручены newsmaster, но Вы
можете изменять это, редактируя команды.
18.8.1 Сообщение Отмена
Наиболее широко известное сообщение - отмена, которой пользователь
- 327 -
может отменять статью, посланную ранее. Оно действительно удаляет статью
из каталогов spool, если она существует. Сообщение отмены будет послано к
всем абонентам, которые получают новости из таких групп, независимо от
того, была ли статья замечена уже или нет. Нужно принять во внимание
возможность того, что первоначальная статья была отсрочена несмотря на
сообщение сокращения. Некоторые системы новостей позволяют
пользователям отменять сообщения другого человека; это - конечно
определенный минус.
18.8.2 Newgroup и rmgroup
Два сообщения имеют дело с созданием или удалением newsgroups - это
newgroup и rmgroup. Newsgroups ниже " обычной " иерархии могут быть
созданы только после того, как обсуждение и утверждение было проведено
среди Usenet читателей. Правила, обращающиеся к alt иерархии учитывают что
кое-что близко к анархии. Для подробной информации см. регулярные
регистрации в news.announce.newusers и news.announce.newgroups. Никогда не
посылайте newgroup или rmgroup сообщение самостоятельно, если Вы
определенно не знаете, что Вам позволено.
18.8.3 Checkgroups Сообщение
Checkgroups сообщения посылаются администраторами новостей, чтобы
для всех абонентов внутри сети синхронизировать их файлы active с фактами
Usenet. Например, коммерческие поставщики услуг Internet могли бы выпускать
такое сообщение к абоненту их заказчиков. Один раз в месяц "оффициальное"
checkgroups сообщение для главных иерархий зарегистрировано в
comp.announce.newgroups их регулятором. Однако, оно зарегистрировано, как
обычная статья, а не как управляющее сообщение. Чтобы выполнить
операцию checkgroups, сохраните эту статью в файл, скажем /tmp/check, удалите
все до начала сообщения управления непосредственно, и передайте это к
checkgroups команде, используя следующую команду:
# su news -c "/usr/lib/news/bin/ctl/checkgroups" < /tmp/check
Это модифицирует ваш newsgroups файл, добавляя группы, перечисленные
в localgroups. Старый newsgroups файл будет перемещаться в newsgroups.bac.
Обратите внимание, что регистрация сообщения локально редко будет
- 328 -
работать, потому что inews отказывается принимать это как статью.
Если C News находит несоответствия между списком checkgroups и файлом
active, это произведет список команд, которые модернизируют ваш пункт, и
сообщат это администратору новостей. Вывод обычно походит на это:
From news Sun Jan 30 16:18:11 1994
Date: Sun, 30 Jan 94 16:18 MET
From: news (News Subsystem)
To: usenet
Subject: Problems with your active file
Следующие newsgroups не допустимы и должны быть удалены.
alt.ascii-art
bionet.molbio.gene-org
comp.windows.x.intrisics
de.answers
Вы можете делать это, выполняя команды:
/usr/lib/news/bin/maint/delgroup alt.ascii-art
/usr/lib/news/bin/maint/delgroup bionet.molbio.gene-org
/usr/lib/news/bin/maint/delgroup comp.windows.x.intrisics
/usr/lib/news/bin/maint/delgroup de.answers
Следующие newsgroups отсутствовали.
comp.binaries.cbm
comp.databases.rdb
comp.os.geos
comp.os.qnx
comp.unix.user-friendly
misc.legal.moderated
news.newsites
soc.culture.scientists
talk.politics.crypto
talk.politics.tibet
- 329 -
Когда Вы получаете такое сообщение от вашей системы новостей, не
отбрасывайте его вслепую. В зависимости от того, кто послал checkgroups
сообщение, оно может испытывать недостаток нескольких групп или даже
всех иерархий; так что Вы должны быть осторожны относительно удаления
любых групп. Если Вы находите группы, перечисленные как отсутствующие и
Вы хотите иметь их в вашем пункте, Вы должны добавить их, используя
addgroup команду. Сохраните список отсутствующих групп в файле и
передайте его следующей небольшой команде:
#!/bin/sh
cd /usr/lib/news
while read group; do
if grep -si "^$group[[:space:]].*moderated" newsgroup; then
mod=m
else
mod=y
fi
/usr/lib/news/bin/maint/addgroup $group $mod
done
18.8.4 sendsys, version, и senduuname
В заключение, имеются три сообщения, которые могут использоваться,
чтобы выяснить относительно топологии сети. Это - sendsys, version, и senduu-
имя. Они заставляют C News возвращать отправителю файл sys, версию
программного обеспечения, и вывод uuname (1), соответственно. C News -
очень лаконично относительно сообщения version; оно возвращает просто
неукрашенное "C".
Снова, Вы никогда не должны выдавать такое сообщение, если Вы не
уверенны, что это не может повредить вашей (региональной) сети. Ответы
sendsys сообщениям могут быстро положить сеть UUCP.
18.9 C News в NFS Среде
Простой способ распределять новости внутри локальной сети состоит в
том, чтобы хранить все новости на центральном host, и экспортировать
релевантные каталоги через NFS, так, чтобы newsreader мог просматривать
- 330 -
статьи непосредственно. Преимущество этого метода над NNTP - то, что
непроизводительные затраты, заключаемые в поиске и продевании нитки
статей являются значительно ниже. NNTP, с другой стороны, побеждает в
разнородной сети, где оборудование изменяется широко среди главных ЭВМ,
или где пользователи не имеют эквивалентных прав на машине сервера.
При использовании NFS, статьи, зарегистрированные на локальном host
должны быть посланы к центральной машине. Также, Вы могли бы хотеть
защищать вашу область spool новостей, экспортируя их только для чтения, что
требует пересылки к центральной машине, также.
C News обрабатывает это очевидно. Когда Вы отправляете по почте
статью, ваш newsreader обычно вызывает inews, чтобы ввести статью в систему
новостей. Эта команда выполняет ряд проверок на статье, завершает
заголовок, и проверяет файловый сервер в /usr/lib/news. Если этот файл
существует и содержит hostname отличный от имени локального host, inews
вызывается на тот host сервер через rsh. Так как inews команда использует ряд
двоичных команд и файлов поддержки от C News, Вы должны также иметь C
News, установленный локально, или устанавливать программное обеспечение
новостей из сервера.
Чтобы rsh вызов работал правильно, каждый пользователь должен иметь
эквивалентный вход на систему сервера, то есть вход котороый она может
регистрировать без запроса о пароле.
Удостоверитесь, что hostname, данный в сервере буквально соответствует
выводу команды hostname (1) на машине сервера, иначе C News будет
зацикливаться навсегда при попытке получить статью.
18.10 Инструментальные средства Сопровождения и Задачи
Несмотря на сложность C News, жизнь администратора новостей может
быть довольно проста, потому что C News обеспечивает Вас расширенным
разнообразием инструментальных средств сопровождения. Некоторые из них
предназначены, чтобы быть выполненными регулярно из cron, подобно
newsdaily. Использование этих команд значительно уменьшает ежедневную
заботу и подачу требований вашей установки C News.
Если не установлено иначе, эти команды расположены в
/usr/lib/news/bin/maint. Обратите внимание, что Вы должны стать пользователем
перед вызовом этих команд. При выполнении их как супер-пользователь эти
файлы могут стать недоступными C News.
- 331 -
newsdaily Имя уже говорит: это выполняется один раз в день. Это - важная
команда, которая помогает Вам хранить регистрационные файлы малыми,
сохраняя копии каждого из последних трех выполнявшихся. Она также
пробует считывать любые аномалии, подобно несвежим пакетам во входящих
и исходящих каталогах, регистрации в неизветных группах, и т.д.
Возникающие в результате сообщения об ошибках будут отправлены по почте
к newsmaster.
newswatch Это - команда, которая должна быть выполнена регулярно, чтобы
искать аномалии в системе новостей, один раз в час или около этого. Она
предназначена обнаруживать проблемы, которые будут иметь
непосредственный эффект на оперативности вашей системы новостей и
отправлять по почте отчет проблемы к newsmaster. Отмечаемые вещи
включают несвежие файлы блокировки, которые не удалены, автоматические
входные пакеты, и недостаток дискового пространства.
addgroup Добавляет группу к вашему пункту локально. Соответствующий
вызов
addgroup groupname y|n|m|=realgroup
Второй аргумент имеет то же самое значение как флаг в файле active, что
любой может отправить по почте к группе (y), что никто не может отправить
по почте (n), что она уменьшена (m), или что она является специальной для
другой группы (=realgroup).
Вы могли бы также использовать addgroup, когда первые статьи в недавно
созданной группе прибывают раньше чем сообщение управления newgroup,
которое предназначено, чтобы создать ее.
delgroup nозволяет Вам удалять группу локально. Вызовите это как
delgroup groupname
Вы все еще должны удалить статьи, которые остаются в каталоге spool. В
качестве альтернативы, Вы могли бы оставлять это натуральному ходу
событий (a.k.a. Expire) чтобы удалять их.
addmissing Добавляет отсутствующие статьи к файлу хронологии. Выполните
- 332 -
эту команду, когда имеются статьи, которые, кажется, зависают навсегда.
newsboot Эта команда должна быть выполнена при начальной загрузке
системы. Она удаляет любые файлы блокировки, оставленные, когда
обработчики новостей уничтожались при закрытии системы, и закрывает и
выполняет любые пакеты, оставленные из NNTP соединений, которые были
завершены при закрытии системы.
newsrunning Это постоянно находится в /usr/lib/news/bin/input, и может
использоваться, чтобы отключить непакетирование входящих новостей,
например в течение работы. Вы можете выключить непакетирование вызовом
/usr/lib/news/bin/input/newsrunning off
Оно включается, используя on вместо off.
19. Описание NNTP
19.1 Введение
Из-за различного сетевого используемого транспорта, NNTP
обеспечивает(предусматривает) значительно отличные подходы к обмену
новостей C News. NNTP замещает " Сетевой Протокол передачи Новостей '', и
неспецифический пакет программ.
Различные команды позволяют клиентуре отыскивать, посылать и
отправлять по почте статьи. Различие между посылкой и регистрацией - то,
что последний может включать статьи с незавершенной информацией
заголовка. Поиск статьи может использоваться клиентурой передачи новостей
также как newsreaders. Это делает NNTP превосходным средством для
обеспечения доступа к новостям для клиентуры в локальной сети.
NNTP также обеспечивает активый и пассивный способы передачи
новостей, которые называются " pushing " и " pulling ". Выталкивание (pushing) - в
основном тоже что C News ihave/sendme протокол. Клиент предлагает статью
серверу через " IHAVE ", и сервер возвращает код ответа, который
указывает, имеет ли он уже статью, или если она требуется. Если так, клиент
посылает статью, завершенную одиночной точкой в отдельной строке.
Выталкивание новостей имеет один недостаток - это вызывает тяжелую
загрузку в системе сервера, так как она должна искать в базе данных
- 333 -
хронологий каждую одиночную статью.
Противоположная методика - перемещать(pulling) новости. Клиент
запрашивает список всех доступных статей из группы, которые прибыли после
заданной даты. Этот запрос выполняется командой NEWNEWS. Из
возвращенного списка идентичности сообщения, клиент выбирает те статьи,
которые он еще не имеет, используя команду ARTICLE для каждой из них по
очереди.
Проблема с перемещением новостей состоит в том, что требуется плотное
управление сервером, которое позволяет клиенту запрашивать группы и
распределения. Например, оно должно удостовериться, что никакой
конфиденциальный материал из локальных newsgroups не послан
несанкционированной клиентуре.
Имеется также ряд команд удобства для newsreaders, которые разрешают им
отыскивать заголовок статьи и тело отдельно, или даже одиночные строки
заголовка из промежутка статей. Это допускает Вам, хранить все новости
относительно центрального host, со всеми пользователями сетьи, используя
nntp-основанные клиентские программы для чтения и регистрации. Это -
альтернатива к экспорту каталогов новостей через NFS, который описан в
главе 18 ..
Полная проблема NNTP состоит в том, что она позволяет хорошо
осведомленному специалисту вставлять статьи в поток новостей с ложной
спецификацией отправителя. Это называется новостями faking. Расширение к
NNTP позволяет требовать установления подлинности пользователя для
некоторых команд.
Имеется ряд доступных NNTP пакетов. Один из наиболее широко
известных - NNTP daemon, также известный как реализация ссылки.
Первоначально, он написан Stan Barber и Phil Lapsley, чтобы иллюстрировать
подробности RFC 977. Самая современная версия - nntpd-1.5.11, описана
ниже. Вы можете также получить исходники и компилировать ее
непосредственно.
Nntpd пакет состоит из сервера и двух клиентов для перемещения и
выталкивания новостей, соответственно, также как inews замены. Они живут в
Bnews среде, но с небольшими дополнениями, они будут счастливы с C news,
также. Однако, если Вы планируете использовать NNTP для больше чем
предложения newsreaders доступа к вашему серверу новостей, реализация
ссылки не есть действительно опция. Мы следовательно обсудим только
NNTP daemon содержащийся в nntpd пакете, и не учтем клиентские программы.
- 334 -
19.2 Установка NNTP сервера
NNTP сервер называется nntpd, и может компилироваться двумя
способами, в зависимости от ожидаемой загрузки на системе новостей. Не
имеется никаких откомпилированных версий, из-за некоторых пункт-
специфических значений по умолчанию, которые являются жестко
закодированными в выполнимую программу. Вся конфигурация выполнена
через макркоманду definines в common/conf.h.
Nntpd может быть конфигурирован или как автономный сервер, который
запускается при начальной загрузке системы из rc.inet2, или как daemon
управляемый inetd. В последнем случае Вы должны иметь следующий вход в
/etc/inetd.conf:
nntp stream tcp nowait news /usr/etc/in.nntpd nntpd
Если Вы конфигурируете nntpd как автономный, удостовертеь, что любая
такая строка в inetd.conf прокомментирована. В любом случае, Вы должны
удостовериться, что имеется следующая строка в /etc/services:
nntp 119/tcp readnews untp # Network News Transfer Protocol
Чтобы временно сохранять любые входящие статьи, и т.д, nntpd также
нуждается в a каталоге .tmp в вашем spool новостей. Вы должны создать его
используя
# mkdir /var/spool/news/.tmp
# chown news.news /var/spool/news/.tmp
19.3 Ограничение NNTP Доступа
Доступ к NNTP ресурсам управляется файлом nntp access в /usr/lib/news.
Строки в файле описывают права доступа, предоставленные иностранным
главным ЭВМ. Каждая строка имеет следующий формат:
site read|xfer|both|no post|no [!exceptgroups]
Если клиент соединяется с NNTP портом, nntpd, пытается получать
полностью квалифицированное имя области из адреса IP обратным поиском.
- 335 -
Hostname клиента и адрес IP проверены против поля site каждого входа
в порядке, в котором они появляются в файле. Соответствия могут быть или
частичные или точные. Если вход соответствует точно, он применяется; если
соответствие частично, он применяется, только если не имеется никакого
другого соответствия. Пункт может быть определен одним из следующих
способов:
hostname Это - полностью квалифицированное имя области host. Если оно
соответствует каноническиому hostname клиента буквально, вход применяется,
и все последующие входы игнорируются.
IP address Это - адрес IP в точечной записи четверки. Если адрес IP клиента
соответствует этому, вход применяется, а все последующие входы
игнорируются.
domain name Это - имя области, заданное как *.domain. Если hostname клиента
соответствует имени области, вход соответствует.
network name Это - имя сети как определено в /etc/networks. Если сетевое число
адреса IP клиента соответствует сетевому числу, связанному с сетевым
именем, вход соответствует.
default Значение по умолчанию соответствует любому клиенту.
Входы с более общей спецификацией пункта должны быть определены
ранее.
Второе и третье поле описывают права доступа, предоставленные клиенту.
Второе детализирует права, чтобы отыскать новости, перемещая (read), и
передавать новости, выталкивая (xfer). Третье поле предоставляет клиенту
право отправить по почте статьи, то есть статьи с незавершенной
информацией заголовка, которая завершена программным обеспечением
новостей. Если второе поле содержит No, третье поле, игнорируется.
Четвертое поле необязательно, и содержит отделенный запятой список
групп, с отклоненным доступом для клиента.
Пример nntp файла доступа показывается ниже:
#
# by default, anyone may transfer news, but not read or post
- 336 -
default xfer no
#
# public.vbrew.com offers public access via modem, we allow
# them to read and post to any but the local.* groups
public.vbrew.com read post !local
#
# all other hosts at the brewery may read and post
*.vbrew.com read post
19.4 NNTP Разрешение
При печати прописными буквами лексем(маркеров) доступа подобно xfer
или read в nntp access файл, nntpd требует разрешения от клиента для
соответственных операций. Например, при определении права Xfer или
XFER, nntpd не будет допускать клиентские статьи к вашему пункту, если он не
передает разрешение.
Процедура разрешения выполнена посредством новой команды NNTP,
именованной AUTHINFO. При использовании этой команды, клиент передает
имя пользователя и пароль к NNTP серверу. Nntpd проверит правильность их,
проверяя их против базы данных /etc/passwd, и проверит, что пользователь
принадлежит группе nntp.
Текущая реализация NNTP разрешения только экспериментальна, и не
была выполнена очень переносимой. Результат - то, что это работает только с
базами данных паролей с простым стилем; теневые пароли не будут
распознаны.
19.5 Nntpd Взаимодействие с C News
При получении статьи, nntpd должен приписать ее к подсистеме новостей.
В зависимости от того, было ли это получено в результате команды IHAVE
или POST, статья вручена rnews или inews, соответственно. Вместо того, чтобы
вызывать rnews, Вы можете также конфигурировать rnews (во времени
компиляции) пакетировать входящие статьи и перемещать возникающие в
результате пакеты в /var/spool/news/in.coming, где они остаются для relaynews,
чтобы подбирать их в следующей выполненной очереди.
Чтобы быть способным правильно выполнить ihave/sendme протокол, nntpd
должен быть способен обратиться к файлу хронологии. Во времени
компиляции, Вы следовательно должны удостовериться, что путь установлен
- 337 -
правильно. Вы должны также удостовериться, что C news и nntpd
договариваются о формате вашего файла хронологии. C news использует dbm
хеш-функции, чтобы обратиться к нему; однако, имеется некоторое число
отличных и немного несовместимых реализаций dbm библиотеки. Если C news
был связан с различной dbm библиотекой чем Вы, имеете в вашем стандарте
libc, Вы должны линковать nntpd с этой библиотекой, также.
Типичный признак того что nntpd и C news не соглашаются относительно
формата базы данных - сообщения об ошибках в файле регистрации системы,
что nntpd не может открыть его правильно, или двойные статьи, полученные
через NNTP. Хороший тест должен выбрать статью из вашей области spool,
сделать telnet к nntp порту, и предлагать, это к nntpd как показано в примере
ниже. Конечно, Вы должны заменить на ID-сообщение статьи,
которую Вы хотите передать к nntpd снова.
$ telnet localhost nntp
Trying 127.0.0.1...
Connected to loalhost
Escape characters is '^]'.
201 vstout NNTP[auth] server version 1.5.11t (16 November
1991) ready at Sun Feb 6 16:02:32 1194 (no posting)
IHAVE
435 Got it.
QUIT
Этот диалог показывает соответствующую реакцию nntpd; сообщение "Got
it" сообщает Вам, что уже имеется эта статья. Если Вы получаете сообщение
"335 Ok" взамен, поиск в файле хронологии, потерпел неудачу по некоторым
причинам. Завершите диалог печатая Ctrl-D. Вы можете проверять, что шло
неправильно, проверяя файл регистрации системы; nntpd регистрирует все
виды сообщений в syslog. Несовместимая dbm библиотека обычно проявляется
в сообщении, жалующемся что dbminit потерпел неудачу.
20. Конфигурация Newsreader
Newsreaders предназначены, чтобы предложить функциональные
возможности, которые позволяют пользователю обращаться к функциям
системы новостей легко, подобно регистрации статей, или просматривать
содержимое newsgroup удобным способом. Качество этого интерфейса предмет
- 338 -
бесконечных споров.
Имеется пара newsreaders, которые были пренесены на Linux. Ниже я буду
описывать базисную установку для трех наиболее популярных, а именно tin,
trn, и nn.
Один из наиболее эффективных newsreaders это
$ find /var/spool/news -name '[0-9]*' -exec cat {} \; | more
Это - способ, которым Unix читает новости.
Большая часть newsreaders, однако, является намного более сложной. Они
обычно предлагают полноэкранный интерфейс с отдельными уровнями для
отображения всех групп, на которые пользователь подписался, для
отображения краткого обзора всех статей в одной группе. И для
индивидуальных статей.
В уровне newsgroup, большинство newsreaders отображает список статей,
показывая их подчиненную строку, и автора. В больших группах, это
невозможно для пользователя, чтобы следить за статьями в отношении друг
друга, хотя возможно идентифицировать ответы на более ранние статьи.
Ответ обычно повторяет первоначальную тему статьи, начинаясь с " " Re: ''.
Здесь, мы не будем детализировать то, как интерфейсы пользователя
сформированы. Все newsreaders, в настоящее время доступные для Linux имеют
хорошую функцию справки, так что Вы должны исследовать дальше сами.
В следующем, мы будем иметь дело только с административными
задачами. Большинство их касается создания баз данных и учет.
20.1 Конфигурация tin
Наиболее универсальный newsreader - tin. Он написан Iain Lea и - свободно
построен на более старом newsreader, именованном ТАСС.
На 486DX50, он берет приблизительно 30 секунд, чтобы найти 1000 статей
при чтении непосредственно с диска. Над NNTP к загруженному серверу
новостей, это было бы что-нибудь более 5 минут. Вы можете уточнить это,
регулярно модифицируя ваш индексный файл с -u опцией, или вызывая tin с -
U опцией.
Обычно, tin формирует дамп баз данных в исходном каталоге пользователя
ниже .tin/index. Это может однако быть дорогостояще в терминах ресурсов, так
чтобы Вы хотели хранить одиночную копию их в центральном расположении.
Это может быть достигнуто, делая tin setuid к новостям, например. Тогда tin
- 339 -
будет хранить, все подходящие базы данных ниже /var/spool/news/.index. Для
любого файла access или Escape оболочки, это переустановит эффективный
универсальный идентификатор к реальному универсальному идентификатору
пользователя, который вызвал это.
Версия tin, включенного в некоторые распределения Linux не имеет
никакой компилируемой поддержки NNTP. Когда вызывается как rtin или с -r
опцией, tin пробует соединяться с NNTP сервером, заданным в /etc/nntpserver
файле или в NNTPSERVER переменной среды. Nntpserver файл просто
содержит имя сервера в одиночной строке.
20.2 Trn Конфигурация
Trn - преемник более старого newsreader, а именно rn (который означает
чтение новостей). " T " в имени замещает "связный". Он написан Wayne
Davidson.
В отличие от tin, trn не имеет никакого средства для производства базы
данных поиска во время выполнения. Взамен, он использует базу
подготовленную программой, называемой mthreads, которая должна вызваться
регулярно из cron, чтобы модифицировать индексные файлы.
Не выполнение mthreads, однако, не означает, что Вы не можете
обращаться к новым статьям, это только означает что Вы будете иметь все эти
" Novell выкупают Linix!! " статьи, рассеянные в вашем меню выбора статей,
вместо одиночного экземпляра (который Вы можете легко пропустить).
Чтобы включить отсеивание для определенных newsgroups, mthreads
вызывается со списком newsgroups в командной строке. Список сделан как в
файле sys:
mthreads comp,rec,!rec.games.go
Даст возможность отсеиванию для все comp и rec, кроме rec.games.go (люди,
кто играют, идут, не нуждаются в причудливых выборках). После этого, Вы
просто вызываете это без любой опции вообще, чтобы заставить это
обработать любые недавно прибывшие статьи. Отсеивание всех групп,
найденных в вашем файле active может быть включено, вызывая mthreads со
списком группы.
Если вы получаете новости в течение ночи, Вы будет обычно выполнять
mthreads один раз утром, но Вы можете также, делать так более часто если
необходимо. Абоненты, которые имеют очень тяжелый траффик, могут хотеть
- 340 -
выполнять mthreads в daemon режиме. Когда она начинается при начальной
загрузке, используя -d опцию, она помещает себя в фон, и пробуждается
каждые 10 минут, чтобы проверить, имеются ли любые недавно прибытые
статьи, и просеивает их. Чтобы выполнять mthreads в daemon режиме,
поместите следующую строку в вашу rc.news команду:
/usr/local/bin/rn/mthreads -deav
-a опция заставит mthread автоматически включить отсеивание для новых
групп, поскольку они созданы; -v дает возможность подробным
регистрационным сообщениям к файлу регистрации mthreads, mt.log в каталоге,
где Вы имеете установленный trn.
Старые статьи, которые больше не доступны, должны быть удалены из
индексных файлов регулярно. По умолчанию, только статьи, чье число
является ниже метки ожидания, будут удалены. Статьи выше этого числа,
которые устарели (потому что самая старая статья была назначена на длинную
дату истечения полем заголовка Expires) могут быть удалены, давая mthreads -e
опцию, чтобы вынудить " расширенную " чистку. Когда mthreads выполняется
в daemon режиме, -e опция заставит такое расширенное истечение выполнять
один раз в день, в полночь.
20.3 Конфигурация nn
Nn написал Kim F. Storm, он утверждает, что цель newsreader не состоит в
том, чтобы читать новости. Имя расшифровывается как " Нет Новостей '', и
девиз - "Отсутствие новостей - хорошая новость. А nn лучше."
Чтобы достигать этой честолюбивой цели, nn поставляется с большим
выбором инструментальных средств сопровождения, которые не только
позволяют проводить отсеивание, но также протяженные проверки на
непротиворечивости этих баз данных, учет, сбор статистики использования, и
ограничений доступа. Имеется также программа администрации, называемая
nnadmin, который позволяет Вам выполнять эти задачи в интерактивном
режиме.
Nn диспетчер базы данных, называется nnmaster. Он обычно выполняется
как daemon, начинается из команды rc.inet2 или rc.news. Он вызывается как
/usr/local/lib/nn/nnmaster -l -r -C
- 341 -
Это дает возможность отсеиванию для всех newsgroups, представленных в
вашем файле active.
Также, Вы можете вызывать nnmaster периодически из cron, давая ему
список групп. Этот список очень похож на список в файле sys, за исключением
того, что он использует пробелы вместо запятых. Вместо группы fake для всех,
пустой аргумент "" должен использоваться, чтобы обозначить все группы.
Типовой вызов
# /usr/local/lib/nn/nnmaster !rec.games.go rec comp
Обратите внимание, что порядок значителен: крайная левая спецификация
группы, которая соответствует, всегда выигрывает. Таким образом, если мы
поместили !rec.games.go после rec, все статьи из этой группы отсеились.
Nn предлагает отдельные методы удалить устаревшие статьи из баз
данных. Первое, чтобы модифицировать базу данных, развертывая каталоги
групп новостей и отбрасывая входы, чья соответствующая статья является
больше не доступной. Это - заданная по умолчанию операция, полученная
вызовом nnmaster с -E опцией. Приемлемо быстро, если вы не делаете это
через NNTP.
Метод 2 ведет себя точно подобно заданному по умолчанию устареванию,
выполненному mthreads, в котором она только удаляет те входы, которые
относятся к статьям, чье число ниже метки ожидания в файле active. Это
можно допускать, используя -e опцию.
В заключение, третья стратегия должна отбросить всю базу данных и
переоформить все статьи. Это может быть выполнено, давая -E3 к nnmaster.
Список групп, которые устарели дется -F опцией в том же самом режиме
как выше. Однако, если Вы имеете nnmaster, выполняющийся как daemon, Вы
должны уничтожить его (используя -k) прежде, чем может произойти
устаревание, и перезапускать его с первоначальными опциями. Таким образом
соответствующая команда, чтобы выполнить expire на всех группах,
использующих метод 1:
# nnmaster -kF ""
# nnmaster -lrC
Имеются много больше флагов, которые могут использоваться, чтобы
подстроить поведение nn. Если Вы волнуетесь относительно удаления плохих
статей или сборников статей, читайте nnmaster страницу руководства.
- 342 -
Nnmaster полагается на файл, именованный GROUPS, который расположен
в /usr/local/lib/nn. Если он не существует первоначально, он будет создан. Для
каждой newsgroup, он содержит строку, которая начинается с имени группы,
необязательно сопровождаемого временной меткой, и флагами. Вы можете
редактировать эти флаги, чтобы дать возможность некоторому поведению для
рассматриваемой группы, но Вы не можете изменять порядок, в котором
группы появляются. Флаги и их эффекты детализированы в nnmaster странице
руководства, также.
APPENDIX A
Null Кабель Принтера для PLIP
Чтобы сделать Кабель Принтера для использования с PLIP соединением,
Вы нуждаетесь в двух соединителях с 25 штырьками (называемых DB-25) и
некотором кабеле с 11 проводниками. Кабель должен быть длиной 15 метров.
Если Вы рассматриваете коннектор, Вы должны видеть крошечные числа в
основе каждого штырька. Для кабеля Принтера, Вы должны соединить
следующие штырьки обоих разьемов друг с другом:
+-------------------------------+
|D0 2 15 ERROR |
|D1 3 13 SLCT |
|D2 4 12 PAPOUT |
|D3 5 10 ACK |
|D4 6 11 BUSY |
|GROUND 25 25 GROUND |
|ERROR 15 2 D0 |
|SLCT 13 3 D1 |
|PAPOUT 12 4 D2 |
|ACK 10 5 D3 |
|BUSY 11 6 D4 |
+-------------------------------+
Все остающиеся штырьки остаются не связанными. Если кабель
экранирован, экран должен быть соединен с DB-25 металлической оболочкой
на одном конце.
- 343 -
APPENDIX B
Примеры smail Файлов Конфигурации
Этот раздел показывает типовые файлы конфигурации для пункта UUCP в
локальной вычислительной сети. Они основаны на типовых файлах,
включенных в исходное распределение smail-3.1.28. Хотя я делаю слабую
попытку объяснить, как эти файлы работают.
Первый показанный файл - файл программ маршрутизации, который
описывает набор программ маршрутизации для smail. Когда smail должен
послать сообщение к данному адресу, он вручает адрес всем программам
маршрутизации по очереди, пока одна из них не найдет соответствие.
Соответствие здесь означает что программа маршрутизации находит host
адресата в базе данных, буть это файл paths, /etc/hosts, или любой механизм
маршрутизации.
Входы в smail файлах конфигурации всегда начинаются с уникального
имени, идентифицирующего программу маршрутизации, транспорт, или
руководитель. Они сопровождаются списком атрибутов, которые определяют
поведение. Этот список состоит из набора глобальных атрибутов, типа
драйвера, и частных атрибутов, которые понятны только этому
специфическому драйверу.
Атрибуты отделяются запятыми, в то время как наборы глобальных и
частных атрибутов отделяются от друг друга, используя точку с запятой.
В smail, Вы можете определять две программы маршрутизации в файле
программ маршрутизации, обе из которых используют pathalias драйвер. Этот
драйвер ищет hostnames в pathalias базе данных. Он ожидает имя файла в
частном атрибуте:
#
# pathalias database for intra-domain routing
domain paths:
driver=pathalias, # look up host in a paths file
transport=uux; # if matched, deliver over UUCP
file=paths/domain, # file is /usr/lib/smail/paths/domain
proto=lsearch, # file is unsorted (linear search)
optional, # ignore if the file does not exist
required=vbrew.com, # look up only *.vbrew.com hosts
#
- 344 -
# pathalias database for routing to hosts outside our domain
world paths:
driver=pathalias, # look up host in a paths file
transport=uux; # if matched, deliver over UUCP
file=paths/world, # file is /usr/lib/smail/paths/world
proto=bsearch, # file is sorted with sort(1)
optional, # ignore if the file does not exist
-required, # no required domains
domain=uucp, # strip ending ".uucp" before searching
Второй атрибут глобальной переменной, данный в каждом из двух входов
программ маршрутизации выше определяет транспорт, который должен
использоваться, когда программа маршрутизации обрабатывает адрес. В нашем
случае, сообщение будет передано используя uux транспорт. Транспорты
определены в файле transports, который объяснсется ниже.
Вы можете подстраивать, которым транспортом сообщение будет
передаваться, если Вы определяете mathod файл вместо атрибута transports.
Файлы методов обеспечивают отображение целевого hostnames на transports.
Мы не будем иметь дело с ними здесь.
Следующий файл программ маршрутизации определяет программы
маршрутизации для локальной вычислительной сети, которые сделают запрос
библиотеки решающих устройств. На host Internet, однако, Вы хотели бы
использовать программу маршрутизации, которая обрабатывает записи MX.
Вы должны следовательно разкомментировать альтернативную inet программу
маршрутизации, которая использует встроенный драйвер BIND smail.
В среде, которая смешивает UUCP и TCP/IP, Вы можете сталкиваться с
проблемой, что Вы имеете главные ЭВМ в вашем файле /etc/hosts, с которыми
Вы имеете только случайный SLIP или PPP контакт. Обычно, Вы все еще
хотели бы посылать любую почту для них по UUCP. Чтобы предотвращать inet
драйвер главных ЭВМ от соответствия этих главных ЭВМ, Вы должны
поместить их в файл paths/force.
Это - другая база данных pathalias-стилей, она проверяется прежде чем smail
делает запрос решающего устройства.
# A sample /usr/lib/smail/routers file
#
# force - force UUCP delivery to certain hosts, even when
# they are in our /etc/hosts
- 345 -
force:
driver=pathalias, # look up host in a paths file
transport=uux; # if matched, deliver over UUCP
file=paths/force, # file is /usr/lib/smail/paths/force
optional, # ignore if the file does not exist
proto=lsearch, # file is unsorted (linear search)
-required, # no required domains
domain=uucp, # strip ending ".uucp" before searching
# inet addrs - match domain literals containing literal
# IP addresses, such as in janet@[191.72.2.1]
inet addrs:
driver=gethostbyaddr, # driver to match IP domain literals
transport=smtp; # deliver using SMTP over TCP/IP
fail if error, # fail if address is malformed
check for local, # deliver directly if host is ourself
# inet hosts - match hostnames with gethostbyname(3N)
# Comment this out if you wish to use the BIND version instead.
inet hosts:
driver=gethostbyname, # match hosts with the library function
transport=smtp; # use default SMTP
-required, # no required domains
-domain, # no defined domain suffixes
-only local domain, # don't restrict to defined domains
# inet hosts - alternate version using BIND to access the DNS
#inet hosts:
# driver=bind, # use built-in BIND driver
# transport=smtp; # use TCP/IP SMTP for delivery
#
# defnames, # use standard domain searching
# defer no connect, # try again if the nameserver is down
# -local mx okay, # fail (don't pass through) an MX
# # to the local host
#
# pathalias database for intra-domain routing
domain paths:
driver=pathalias, # look up host in a paths file
transport=uux; # if matched, deliver over UUCP
file=paths/domain, # file is /usr/lib/smail/paths/domain
- 346 -
proto=lsearch, # file is unsorted (linear search)
optional, # ignore if the file does not exist
required=vbrew.com, # look up only *.vbrew.com hosts
#
# pathalias database for routing to hosts outside our domain
world paths:
driver=pathalias, # look up host in a paths file
transport=uux; # if matched, deliver over UUCP
file=paths/world, # file is /usr/lib/smail/paths/world
proto=bsearch, # file is sorted with sort(1)
optional, # ignore if the file does not exist
-required, # no required domains
domain=uucp, # strip ending ".uucp" before searching
# smart host - a partically specified smarthost director
# If the smart path attribute is not defined in
# /usr/lib/smail/config, this router is ignored.
# The transport attribute is overridden by the global
# smart transport variable
smart host:
driver=smarthost, # special-case driver
transport=uux; # by default deliver over UUCP
-path, # use smart path config file variable
Обработка почты для локальных адресов конфигурирована в файле
directors. Это сделано точно так же как файл программ маршрутизации, со
списком входов, которые определяют руководителя каждой. Руководители не
посылают сообщение, они просто выполняют всю переадресацию, которая
является возможной, например через aliases, пересылку почты, и т.п..
При поставке почты к локальному адресу, типа janet, smail передает имя usr
всем directors по очереди. Если director соответствует, это или определяет
транспорт, которым сообщение должно быть передано (например, к mailbox
файлу пользователя), или генерирует новый адрес (например, после
специальной оценки).
Из-за включаемых проблем защиты, directors обычно делает множество
проверок того, могут ли файлы которые они используют быть
скомпрометированы или нет. Адреса, полученные несколько сомнительным
способом (например от world -перезаписываемый файл aliases) помечены как
небезопасные. Некоторые транспортные драйверы отвергнут такие адреса,
- 347 -
например транспорт, который передает сообщение файлу.
Кроме этого, smail также связывает пользователя с каждым адресом. Любая
запись или операции чтения выполняется как пользователь. Для получения в,
скажем mailbox janet, адрес конечно связан с janet.
Другие адреса, типа тех что получены из файла aliases, имеют других
пользователей, связанных с ними, например, пользователь nobody.
Для подробностей этих возможностей, пожалуйста обратитесь к smail
manpage.
# A sample /usr/lib/smail/directors file
# aliasinclude - expand ":include:filename" addresses produced
# by alias files
aliasinclude:
driver=aliasinclude, # use this special-case driver
nobody; # access file as nobody user if unsecure
copysecure, # get permissions from alias director
copyowners, # get owners from alias director
# forwardinclude - expand ":include:filename" addrs produced
# by forward files
forwardinclude:
driver=forwardinclude, # use this special-case driver
nobody; # access file as nobody user if unsecure
checkpath, # check path accessibility
copysecure, # get perms from forwarding director
copyowners, # get owners from forwarding director
# aliases - search for alias expansions stored in a database
aliases:
driver=aliasfile, # general-purpose aliasing director
-nobody, # all addresses are associated
# with nobody by default anyway sender okay,
# don't remove sender from expansions
owner=owner-$user; # problems go to an owner address
file=/usr/lib/aliases, # default: sendmail compatible
modemask=002, # should not be globally writable
optional, # ignore if file does not exist
proto=lsearch, # unsorted ASCII file
# dotforward - expand .forward files in user home directories
dotforward:
- 348 -
driver=forwardfile, # general-purpose forwarding director
owner=real-$user, # problems go to the user's mailbox
nobody, # use nobody user, if unsecure
sender okay; # sender never removed from expansion
file=~/.forward, # .forward file in home directories
checkowner, # the user can own this file
owners=root, # or root can own the file
modemask=002, # it should not be globally writable
caution=0-10:uucp:daemon,
# don't run things as root or daemons
# be extra careful of remotely accessible home directories
unsecure="~ftp:~uucp:~nuucp:/tmp:/usr/tmp",
# forwardto - expand a "Forward to " line at the top of
# the user's mailbox file
forwardto:
driver=forwardfile,
owner=Postmaster, # errors go to Postmaster
nobody, # use nobody user, if unsecure
sender okay; # don't remove sender from expansion
file=/var/spool/mail/${lc:user},
# location of user's mailbox forwardto,
# enable "Forward to " check
checkowner, # the user can own this file
owners=root, # or root can own the file
modemask=0002, # under System V, group mail can write
caution=0-10:uucp:daemon, # don't run things as root or daemons
# user - match users on the
# local host with delivery to their mailboxes user:
driver=user; # driver to match usernames
transport=local, # local transport goes to mailboxes
# real user - match usernames when prefixed with the string "real-"
real user:
driver=user; # driver to match usernames
transport=local, # local transport goes to mailboxes
prefix="real-", # for example, match real-root
# lists - expand mailing lists stored below /usr/lib/smail/lists
lists: driver=forwardfile,
caution, # flag all addresses with caution
- 349 -
nobody, # and then associate the nobody user
sender okay, # do NOT remove the sender
owner=owner-$user; # the list owner
# map the name of the mailing list to lower case
file=lists/${lc:user},
После успешно маршрутизации или направления сообщения, smail вручает
сообщение транспорту, заданному программой маршрутизации или director,
который соответствовал(согласовал) адресу. Эти transports определен в файле
transports. Снова, транспорт определен набором глобальных и частных опций.
Наиболее важная опция, определенная каждым входом - драйвер, который
обрабатывает транспорт, например драйвер трубопровода, который вызывает
команду, заданную в cmd атрибуте. Кроме этого, имеется число глобальных
атрибутов, которые транспорт может использовать, которые выполняют
различные преобразования заголовка сообщения, и возможно тела сообщения.
# A sample /usr/lib/smail/transports file
# local - deliver mail to local users
local: driver=appendfile, # append message to a file
return path, # include a Return-Path: field
from, # supply a From envelope line
unix from hack, # insert > before From in body
local; # use local forms for delivery
file=/var/spool/mail/${lc:user},
# location of mailbox files group=mail,
# group to own file for System V
mode=0660, # group mail can access
suffix="\n", # append an extra newline
# pipe - deliver mail to shell commands
pipe: driver=pipe, # pipe message to another program
return path, # include a Return-Path: field
from, # supply a From envelope line
unix from hack, # insert > before From in body
local; # use local forms for delivery
cmd="/bin/sh -c $user", # send address to the Bourne Shell
parent env, # environment info from parent addr
pipe as user, # use user-id associated with address
ignore status, # ignore a non-zero exit status
- 350 -
ignore write errors, # ignore write errors, i.e., broken pipe
umask=0022, # umask for child process
-log output, # do not log stdout/stderr
# file - deliver mail to files
file: driver=appendfile,
return path, # include a Return-Path: field
from, # supply a From envelope line
unix from hack, # insert > before From in body
local; # use local forms for delivery
file=$user, # file is taken from address
append as user, # use user-id associated with address
expand user, # expand ~ and $ within address
suffix="\n", # append an extra newline
mode=0600, # set permissions to 600
# uux - deliver to the rmail program on a remote UUCP site
uux: driver=pipe,
uucp, # use UUCP-style addressing forms
from, # supply a From envelope line
max addrs=5, # at most 5 addresses per invocation
max chars=200; # at most 200 chars of addresses
cmd="/usr/bin/uux - -r -a$sender -g$grade $host!rmail $(($user)$)",
pipe as sender,
# have uucp logs contain caller
log output, # save error output for bounce messages
# defer child errors, # retry if uux returns an error
# demand - deliver to a remote rmail program,
# polling immediately demand: driver=pipe,
uucp, # use UUCP-style addressing forms
from, # supply a From envelope line
max addrs=5, # at most 5 addresses per invocation
max chars=200; # at most 200 chars of addresses
cmd="/usr/bin/uux - -a$sender -g$grade $host!rmail $(($user)$)",
pipe as sender,
# have uucp logs contain caller
log output, # save error output for bounce messages
# defer child errors, # retry if uux returns an error
# hbsmtp - half-baked BSMTP. The output files must
- 351 -
# be processed regularly and sent out via UUCP.
hbsmtp: driver=appendfile,
inet, # use RFC 822-addressing
hbsmtp, # batched SMTP w/o HELO and QUIT
-max addrs, -max chars; # no limit on number of addresses
file="/var/spool/smail/hbsmtp/$host",
user=root, # file is owned by root
mode=0600, # only read-/writeable by root.
# smtp - deliver using SMTP over TCP/IP
smtp: driver=tcpsmtp,
inet,
-max addrs, -max chars; # no limit on number of addresses
short timeout=5m, # timeout for short operations
long timeout=2h, # timeout for longer SMTP operations
service=smtp, # connect to this service port
# For internet use: uncomment the below 4 lines
# use bind, # resolve MX and multiple A records
# defnames, # use standard domain searching
# defer no connect, # try again if the nameserver is down
# -local mx okay, # fail an MX to the local host
APPENDIX C
Общая Публичная Лицензия GNU
Имеется Общая Лицензия GNU (GPL или copy-left), под которой Linux
запатентован. Она не воспроизведена здесь. Большая часть ядра Linux -
copyright (C) 1993 Linus Torvalds, и другое программное обеспечение
обеспечены авторским правом их авторами. Таким образом, Linux обеспечен
авторским правом, однако, Вы можете перераспределять его (копировать) в
соответствии с GPL (GNU GENERAL PUBLIC LICENSE).
Глоссарий
Огромная трудность в работе с сетями - помнить все сокращения и
термины. Имеется список тех что мы часто использовали в этом руководстве,
наряду с коротким объяснением.
- 352 -
ACU Автоматический Модуль Обращения. Модем.
ARP Протокол Разрешающей способности Адреса. Используется чтобы
отобразить IP адреса на адреса локальной сети на основе протокола CSMA-CD
(Ethernet).
ARPA Агентство Проектов Перспективного исследования, позднее управление
перспективных исследований Министерства обороны США. Основатель
Internet.
ARPANET Предок сегодняшнего Internet; экспериментальная сеть,
финансируемая Агентством Защиты Проектов Перспективного исследования
США (управление перспективных исследований Министерства обороны
США).
BBS Система BBS. Телефонный вызов по номеру mailbox.
BGP Протокол Ворот Границы. Протокол для обмена информации
маршрутизации между автономными системами.
BIND Berkeley Internet Name Domain сервер. Реализация сервера DNS.
BNU Базисные Утилиты Работы с сетями. Это - наиболее общее разнообразие
UUCP в настоящее время. Они также известны как HoneyDanBer UUCP. Это
имя происходит от имен авторов: P. Honeyman, D.A. Novitz, и B.E. Redman.
broadcast network Сеть, которая позволяет одной станции адресовать
датаграмму всем другим станциям в сети одновременно.
BSD Berkeley Распределение Программного обеспечения. Разновидность Unix.
CCITT (рус. МККТТ) Международная организация телефонных услуг, и т.д.
CSLIP Сжатая Последовательная IP Линия. Протокол для обмена IP пакетами
по последовательной линии, используя сжатие заголовка большинства
датаграмм TCP/IP.
DNS Domain name system.Это - распределенная база данных, используемая в
Internet для отображения имен host к адресам IP.
EGP Внешний Протокол Ворот. Протокол для обмена информации
- 353 -
маршрутизации между автономными системами.
Ethernet Технически, Ethernet - часть набора стандартов, изложенных ИИЭРом.
Аппаратные средства Ethernet используют одиночный фрагмент кабеля, часто
кабель соединяет ряд главных ЭВМ, и позволяет скорость передачи до
10Mbps. Протокол Ethernet определяет способ, которым главные ЭВМ могут
связываться по этим кабелям.
FQDN Полностью Квалифицированное Имя Области. Hostname с именем
области, так, чтобы это был допустимый индекс в базу данных Имен Области.
FTP Протокол Передачи Файлов. Этот протокол одно из самых известных
обслуживаний передачи файла.
FYI "Для Вашей Информации." Ряд документов с неофициальной
информацией относительно предметов Internet.
GMU Groucho Marx University. Фиктивный Университет, используемый
например через эту книгу.
GNU GNU не Unix - этот рекурсивный акроним - имя проекта Свободной
Ассоциации Программного обеспечения, чтобы обеспечить когерентный
набор инструментальных средств Unix, которые могут использоваться и
копироваться бесплатно. Все программное обеспечение GNU покрыто
специальным Объявлением об авторском праве, также называемым Общей
Публичной Лицензией GNU (GPL), или Copyleft.
HoneyDanBer Имя разнообразия UUCP. См. также BNU.
host Вообще, сетевой узел: кое-что, что является способным получать и
передавать сетевые сообщения. Это будет обычно Компьютер, но Вы можете
также думать о x-терминалах, или интеллектуальных принтерах.
ICMP Internet Протокол Управляющих Сообщений. Протокол работы с
сетями, используемый IP, чтобы возвратить информацию ошибки host
посылки, и т.д.
IEEE Institute of Electrical and Eletronics Engineers.Другая организация
стандартов. С точки зрения пользователя UNIX, их наиболее важное
- 354 -
достижение - POSIX стандарты, которые определяют аспекты систем UNIX, в
пределах от интерфейсов системного вызова и семантики к
инструментальным средствам администрации.
IETF Internet Силы Проектироваия Задач.
internet Компьютерная сеть, сформированная из коллекции индивидуальных
меньших сетей.
Internet Специфический "мировой" internet.
IP Internet Protocol. Протокол работы с сетями.
ISO Организация Международных эталонов.
ISDN Интегрированные Услуги Цифровой Сети. Новая технология передачи
данных, использующая цифровую вместо аналоговой схемы.
LAN Локальная вычислительная сеть. Малая компьютерная сеть.
MX Экспреобразователь Почты. Тип записи ресурса DNS, используемый для
маркировки host как gateway почты для области.
NFS Сетевая Файловая система. Стандартный протокол работы с сетями и
набор программного обеспечения для доступа к данным относительно
отдаленных дисков очевидно.
NIS Сетевая Информационная Система. Rpc-основанное приложение, которое
позволяет совместно использовать файлы конфигурации типа файла паролей
между отдельными главными ЭВМ. См. также вход YP.
NNTP Сетевой Протокол передачи Новостей. Используется чтобы передать
новости по TCP сетевым соединениям.
octet На Internet, технический термин, касается количества восьми битов.
Используется этот термин а не байт, потому что имелись машины на Internet,
которые имеют байт, по величине отличный от восьми битов.
OSI Соединение Открытых систем. Стандарт ISO на сетевом программном
- 355 -
обеспечении.
path Часто используется в сетях UUCP как синоним для маршрута.
PLIP Параллельная IP Линия. Протокол для обмена IP пакетами по
параллельной линии типа порта принтера.
PPP Двухточечный протокол (из точки в точку). PPP - гибкий и быстрый
протокол связи, чтобы посылать различные сетевые протоколы типа IP или
IPX по двухточечному соединению. Кроме использования на
последовательных связях (модем), PPP может также быть использован как
протокол связи на ISDN.
RARP Обратный Протокол Разрешающей способности Адреса. Он разрешает
главным ЭВМ выяснять их адрес IP при начальной загрузке.
RFC Просьба о Комментариях. Ряд документов, описывающих стандарты
Internet.
RIP Направляющий Информационный Протокол. Это - протокол
маршрутизации, используемый для динамической коррекции маршрутов
внутри (малой) сети.
RPC Дистанционное управление вызовом. Протокол для выполнения
процедур внутри процесса на отдаленном host.
RR Сокращение для "запись ресурса".
RS-232 Это - очень общий стандарт для последовательных интерфейсов.
RTS/CTS Разговорное название для аппаратного контакта, выполняемого
двумя устройствами, сообщающимися (поддерживающими связь) по RS-232.
Имя происходит от двух сокращений RTS (" Готов Послать ''), и CTS (" Чист,
чтобы Послать '').
RTM Internet Worm Вирусо-подобная программа, которая использовала
отдельные дефекты в VMS и BSD 4.3 Unix, чтобы распространиться через
Internet. Несколько "ошибок" в программе заставили ее размножаться
безпредельно, и вызвали падение больших частей Internet. RTM - инициалы
- 356 -
автора (Robert T. Morris), которые он оставил в программе.
SLIP Последовательная IP Линия. Это - протокол для обмена IP пакетами по
последовательной линии, см. также CSLIP.
SMTP Простой Протокол передачи Почты. Используется для транспорта
почты по TCP соединениям, и также для транспортировки пакетов по связям
UUCP (batched SMTP).
SOA Начало Полномочий. Тип записи ресурса DNS.
System V Разновидность Unix.
TCP Протокол Управления Передачей. Протокол работы с сетями.
TCP/IP Общее описание набора программ протокола Internet в целом.
UDP Протокол Датаграмм Пользователя. Протокол работы с сетями.
UUCP Копирование из Unix в Unix. Набор программ сетевых транспортных
команд для сетей телефонных вызовов по номеру.
virtual beer Виртуальное пиво любимый спиртной напиток Каждого Linux'ера.
Первое упоминание о виртуальном пиве, которое я помню, было в
примечании выпуска Linux 0.98.X kernel, где Linus упоминал "Oxford Beer Trolls"
в его разделе кредитов для посылки некоторого виртуального пива.
YP Желтые Страницы. Более старое имя для NIS, которое больше не
используется, потому что Желтые Страницы - марка изготовителя Британской
Телесвязи. Однако, большинство NIS утилит сохранило имена с префиксом yp.
Кто сказал что герои сетей останутся невоспетыми ?!
1. Предисловие 2
1.1. Документация о Linux 3
1.2. Об этой книге 4
- 357 -
1.3. Официально Напечатанная Версия 5
1.4. Дополнительная Информация 6
1.5. Об Авторах 7
1.6. Благодарности 8
1.7. Условные Обозначения 9
1.8. Проект linux документации 10
1.9. Стандартная организация файлов системы 11
2. Общие сведения о сетях. 12
2.1. Введение. 12
2.2. UUCP сети. 13
2.2.1. Как Использовать UUCP 14
2.3. TCP/IP Сети 16
2.3.1. Введение в TCP/IP-сети. 16
2.3.2. Ethernet 18
2.3.3. Другие типы аппаратных средств 20
2.3.4. Internet Протокол(IP) 21
2.3.5. IP на последовательных линий 22
2.3.6. Протокол Контроля Передачи (TCP) 23
2.3.7. Пользовательский протокол дэйтаграм(UDP) 24
2.3.8. Дополнительно о портах 24
2.3.9. Библиотека гнезд(socket) 25
2.4. Linux сети 26
2.4.1. Другие пути развития 27
2.4.2. Где получить код 28
2.5. Поддержка Вашей системы 28
2.5.1. Безопасность системы 29
2.6. Обзор следующих глав 31
3. Проблемы TCP/IP сети 33
3.1. Сетевой интерфейс 33
3.2. IP адреса 34
3.3. Address Resolution(поиск по адресу). 35
3.4. IP маршрутизация 37
3.4.1. IP Сети 37
3.4.2. Подсети 37
3.4.3. Gateways 39
3.4.4. Таблица маршрутизации 40
- 358 -
3.4.5. Метрические значения 42
3.5. The Internet Control Message Protocol 42
3.6. Система имен областей (Domain Name System) 43
3.6.1 Поиск по имени (Hostname Resolution) 43
3.6.2. О DNS 45
3.6.3 Поиск имени с помощью DNS 47
3.6.4 Областные сервера имен (Domain Name Servers) 48
3.6.5 База данных DNS 49
3.6.6. Обратный поиск. 51
4. Конфигурирование сетевых аппаратных средств. 55
4.1. Устройства, драйвера, и все это 55
4.2. Конфигурирование ядра 57
4.2.1. Опции ядра в Linux 1.0 и выше 58
4.2.2. Опции ядра в Linux 1.1.14 и выше 60
4.3. Путешествие по сетевым устройствам Linux 62
4.4. Установка Ethernet 63
4.4.1. Прокладка Ethernet кабеля. 64
4.4.2. Поддержка платы 64
4.4.3. Автоматическое определение Ethernet 65
4.5. PLIP Драйвер 68
4.6. SLIP и PPP Драйвера 69
5. Установка последовательных аппаратных средств 70
5.1. Коммуникационное программного обеспечения для модемной связи 70
5.2. Представления последовательных устройств 71
5.3. Доступ к последовательным устройствам 72
5.4. Аппаратные Средства для последовательных линий. 74
6. Конфигурирование TCP/IP сети 77
6.1. Установка файловой системы proc 77
6.2. Установка бинарников 78
6.3. Другой пример 79
6.4. Установка имени хоста 79
6.5. Назначение IP Адресов 80
6.6. Написание hosts и networks файлов 82
6.7. Конфигурация интерфейса для IP 84
6.7.1. Интерфейс loopback 85
- 359 -
6.7.2. Ethernet интерфейсы 87
6.7.3. Маршрутизация через Gateway 90
6.7.4. Конфигурирование Gateway 91
6.7.5. PLIP интерфейс 92
6.7.6. SLIP и PPP Интерфейсы 93
6.7.7. Dummy(фиктивный) интерфейс 94
6.8. Все о ifconfig 94
6.9. Проверка с помощью netstat 98
6.9.1. Отображение таблицы маршрутизации 98
6.9.2. Отображение статистики интерфейса 99
6.9.3. Отображение соединений 100
6.10. Проверка ARP Таблицы 101
6.11. Будущее 103
7. Названия сервиса и конфигурация решающего устройства. 105
7.1 Библиотека решающих устройств. 105
7.1.1 Файл конфигурации хоста. 106
7.1.2 Параметры среды окружения решающего устройства. 107
7.1.3 Конфигурирование сервера поиска --- resolv.conf 108
7.1.4 Ошибкоустойчивость решающего устройства. 109
7.2 Запуск named. 110
7.2.1 Файл named.boot. 111
7.2.2 DNS файл базы данных. 114
7.2.3 Запись главных файлов. 118
7.2.4 Проверка установки сервера(Name Server Setup). 119
7.2.5 Другие полезные инструментальные средства 125
8. Последовательная линия IP 126
8.1 Общие требования. 126
8.2 SLIP Операция. 127
8.3 Использование dip 130
8.3.1 Типовой Script(сценарий). 130
8.3.2 Dip ссылка. 133
8.3.2.1 Команды Модема. 134
8.3.2.2 echo и term. 135
8.3.2.3 Get Команда. 135
8.3.2.4 Print команда 136
8.3.2.5 Переменные имена(Variable Names) 136
- 360 -
8.3.2.6 If и Goto Команды 137
8.3.2.7 send, wait и sleep 137
8.3.2.8 mode и default 138
8.4 Запуск в server режиме 138
9. Двухточечный Протокол(point-to-point protocol) 140
9.1 Распутывающий P's 140
9.2 PPP на Linux 141
9.3 Запуск pppd 143
9.4 Использование файлов опций 144
9.5 Набор номера с chat 146
9.6 Отладка вашей PPP установки 149
9.7 IP опции конфигурации 149
9.7.1 Выбор IP адресов 150
9.7.2 Направление через связь PPP 151
9.8 Опции управления связью 153
9.9 Общие рассмотрения защиты 155
9.10 Установление подлинности с PPP 156
9.11 Конфигурирование PPP сервера 161
10. Различные сетевые приложения 163
10.1 Inetd супер-сервер 163
10.2 Tcpd средства управления доступом 166
10.4 Дистанционное управление 170
10.5 Конфигурирование r команд 172
11. Сетевая информационная система 175
11.1 Знакомство с NIS 177
11.2 NIS против NIS + 181
11.3 Клиентская Сторона NIS 182
11.4 Запуск NIS Сервера 182
11.5 Установка NIS Клиента с NYS 184
11.6 Выбор правых отображений 186
11.7 Использование passwd и группы Maps 188
11.8 Использование NIS с Shadow Support 191
11.9 Использование традиционного NIS кода. 192
12. Сетевая файловая система (NFS) 193
- 361 -
12.1 Подготовка NFS 196
12.2 Установка NFS значения 197
12.3 NFS daemon(область) 200
12.4 файл экспорта 201
12.5 Linux Automounter 204
13. Управление Taylor UUCP 205
13.1 Хронология 205
13.1.1 Подробная информация о UUCP 207
13.2 Введение 207
13.2.1 Обзор Передач UUCP и удаленного запуска 207
13.2.2 Внутренние работы uucico 208
13.2.3 Опции командной строки uucico 210
13.3 Файлы Конфигурации UUCP 211
13.3.1 Нежное Введение в Taylor UUCP 211
13.3.2 Что Должен Знать UUCP 214
13.3.3 Наименование Места 215
13.3.4 Taylor Файлы Конфигурации 216
13.3.5 Общие Опции Конфигурации - config файл 217
13.3.6 Как сказать UUCP о других системах - sys Файл 218
13.3.6.1 Имя Системы 218
13.3.6.2 Номер телефона 218
13.3.6.3 Опции Port и Speed 219
13.3.6.4 Login chat (Дружеская беседа Входв в уистему) 220
13.3.6.5 Альтернативы 222
13.3.6.6 Ограничение времени вызова 223
13.3.7 Описание устройств(Devices) - файл port 224
13.3.8 Как набирать номер - файл dial 226
13.3.9 UUCP поверх TCP 228
13.3.10 Использование прямого соединения 229
13.4 Что делать UUCP, а что нет - настройка доступа 230
13.4.1 Выполнение команд 230
13.4.2 Передача файлов 230
13.4.3 Пересылка 232
13.5 Настройка вашей Системы. 233
13.5.1 Установка getty 233
13.5.2 Обеспечение UUCP Счета(account) 233
13.5.3 Защита против Жуликов 235
- 362 -
13.5.4 Будте бдителны - проверки последовательности обращения 236
13.5.5 Анонимный UUCP 238
13.6 UUCP Протоколы низкого уровня 239
13.6.1 Краткий обзор протоколов 239
13.6.2 Настройка Протокола Передачи 241
14. Электронная почта 247
14.1 Что такое - Сообщения Почты? 248
14.2 Как Передается Почта? 251
14.3 Email Адреса 252
14.4 Как Работает Маршрутизация? 253
14.4.1 Маршрутизация Почты в Internet 253
14.4.2 Маршрутизация Почты в Мире UUCP 254
14.4.3 Смешивание UUCP и RFC 822 256
14.5 Pathalias и Формат файла Карты 258
14.6 Конфигурирование elm 261
14.6.1 Глобальные Опции elm 261
14.6.2 Национальный Набор Символов 262
15. Получение smail и Выполнение 263
15.1 UUCP Установки 265
15.2 Установки для локальной сети 267
15.2.1 Написание Файлов Конфигурации 267
15.2.2 Выполнение smail 269
15.3 Если Не Проходит ... 270
15.3.1 Компиляция smail 272
15.4 Режимы доставки Почты 272
15.5 Разнообразная конфигурация Опций 273
15.6 Маршрутизация и Получение Сообщений 274
15.7 Маршрутизация Сообщений 274
15.7.1 База данных путей 277
15.8 Поставка Сообщений Локальным Адресам 277
15.8.1 Локальные Пользователи 278
15.8.2 Пересылки 279
15.8.3 Специальные Файлы 279
15.8.4 Списки Отправки по почте 280
15.9 UUCP-Транспорт 281
15.10 SMTP-Транспорт 282
- 363 -
15.11 Квалификация Hostname 282
16. Sendmail + IDA 283
16.1 Введение в Sendmail + IDA 283
16.2 Файлы Конфигурации --- Краткий обзор 284
16.3 Sendmail.cf Файл 285
16.3.1 Пример Файла Sendmail.m4 286
16.3.2 Обычно Используемые sendmail.m4 Параметры 286
16.3.2.1 Предметы, которые Определяют Пути 287
16.3.2.2 Определение Локального Mailer'а 288
16.3.2.3 Обработка Bounced-почты 289
16.3.2.4 Возможности Имени Области 289
16.3.2.5 Определение Локальной Системы 289
16.3.2.6 Uucp-зависимые Аспекты 290
16.3.2.7 Relay-Системы и Mailer'ы 290
16.3.2.8 Различные Таблицы Конфигурации 291
16.3.2.9 Главный Файл Sendmail.mc 291
16.3.2.10 Так которые Входы Действительно требуются? 291
16.4 Просмотр Sendmail + IDA Таблиц 292
16.4.1 Mailertable 292
16.4.2 Uucpxtable 294
16.4.3 pathtable 295
16.4.4 domaintable 296
16.4.5 aliases 296
16.4.6 Редко Используемые Таблицы 298
16.5 Установка sendmail 298
16.5.1 Извлечение двоичного распределения 299
16.5.2 Формирование sendmail.cf 299
16.5.3 Тестирование файла sendmail.cf 300
16.5.4 Помещение всего вместе - 303
16.6 Администрирование и Глупые Приемы Почты 305
16.6.1 Пересылка Почты В Отдаленную Систему 306
16.6.2 Почта Для Неконфигурированного Отдаленного Абонена 306
16.6.3 Почта, которая будет перемещена через UUCP 307
16.6.4 Предотвращение Передачи Почты через UUCP 307
16.6.5 Выполнение Очереди Sendmail по требованию 308
16.6.6 Статистика Почты 308
16.7 Смешивание и Соответствие Двоичных Распределений 309
- 364 -
16.8 Где Получить Подробную информацию 309
17. Netnews 310
17.1 Usenet Хронология 310
17.2 Что является Usenet, Во всяком случае? 310
17.3 Как в Usenet Обрабатывают Новости? 311
18. "C" Новости 312
18.1 Поставка Новостей 312
18.2 Установка 313
18.3 Системный файл 315
18.4 Файл active 318
18.5 Пакетирование Статьи 319
18.6 Устаревшие Новости 322
18.7 Разнообразные Файлы 324
18.8 Сообщения Управления 326
18.8.1 Сообщение Отмена 326
18.8.2 Newgroup и rmgroup 327
18.8.3 Checkgroups Сообщение 327
18.8.4 sendsys, version, и senduuname 329
18.9 C News в NFS Среде 329
18.10 Инструментальные средства Сопровождения и Задачи 330
19. Описание NNTP 332
19.1 Введение 332
19.2 Установка NNTP сервера 334
19.3 Ограничение NNTP Доступа 334
19.4 NNTP Разрешение 336
19.5 Nntpd Взаимодействие с C News 336
20. Конфигурация Newsreader 337
20.1 Конфигурация tin 338
20.2 Trn Конфигурация 339
20.3 Конфигурация nn 340
APPENDIX A 342
APPENDIX B 343
APPENDIX C 351
Популярность: 51, Last-modified: Sat, 18 May 2002 16:48:29 GMT