копии старых регистрационных файлов сохраняются в 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