Руководство администратора сети в ОС Linux

         

Распутывающий P's


Точно так же как SLIP, PPP - протокол для того, чтобы посылать датаграммы через последовательную связь, но он адресует пару вышеупомянутых неточностей. Он позволяет сообщающиемся сторонам обсудить опции, такие как IP адрес и максимальный датаграмный размер во время запуска, и обеспечивает разрешение клкента. Для каждой из этих возможностей, PPP имеет отдельный протокол. Ниже, мы кратко рассмотрим эти базисные стандартные блоки PPP. Это обсуждение далеко не полно; и если Вы хотите выяснить что-либо относительно PPP, то я настоятельно рекомендую Вам прочитать спецификацию в RFC 1548, также как и dozen или companion RFCs. (1)

В самой основе PPP лежит управление передачей данных высокого уровня, сокращенно HDLC(High-Level Data Link Control Protocol),(2), который определяет границы вокруг ндивидуальных структур PPP, и обеспечивает 16 разрядов контрольной суммы. В противоположность более примитивному оформлению SLIP пакета, PPP способен к захвату блоков из других протоколовтаких как IP типа IPX Novell's, или Appletalk. PPP достигает этого, добавляя область протокола к основному HDLC.

LCP(Link Control Protocol), Протокол управления связи, используется на вершине HDLC для оговора опций, имеющих отношение к каналу связи, типа Maximum Receive Unit (MRU), которая заявляет максимальный размер датаграммы одной стороны связи.

Важный шаг в стадию конфигурации связи PPP клиентского разрешения. Хотя это не обязательно, это действительно должно было бы быть для dial- up линий. Обычно, вызываемый хост просит клиента зарегестрировать себя, доказывая, что он знает некоторый секретный ключ. Если клиент набрал неправильный ключ, то связь будет прервана. С PPP, разрешение работает обеими способами; то есть вызывающий может также просить, чтобы сервер опознал себя. Эти процедуры установления подлиности не зависят друг от друга. Имеются два протокола для различных типов разрешения, которые мы обсудим позже. Они именованы "Протоколом Установления Подлинности Пароля", или PAP(Password Authentication Protocol ), или CHAP(Challenge Handshake Authentication Protocol).


Каждый сетевой протокол, который разбит поперек канала связи, пожобно IP, AppleTalk, и т.д, сконфигурирован динамически, используя соответствующую Network Control Protocol (NCP). Например, чтобы послать IP датаграммы поперек

1. Релевантные RFCs перечислены в Annoted Bibiliography в конце этой книги. 2. Фактически, HDLC- намного более общий протокол, изобретенный Международной организацией по стандартизации

связи, оба PPPs должны сначала обсудить, который из IP адресов каждый из них использует. Протокол управления, используемый для этого - IPCP, the Internet Protocol Control Protocol.

Помимо посылки стандарта IP датаграммы поперек связи, PPP также поддерживает Van Jacobson header compression IP датаграмм. Это - метод для того, чтобы сократить заголовки TCP блоков к всего трем байтам. Это также используется в CSLIP, и - больше относится к VJ header compression. Использование сжатия может быть заключено в лимите времени запуска через IPCP.


Различные сетевые приложения


После успешной установки IP и решающего устройства, Вы должны обратиться к услугам обеспечивающим хорошую работу над сетью. Глава начинается с конфигурачия пескольких простых сетевых приложений, включая Inetd сервер, и программы из rlogin совокупности. Незначительная процедура обращения связывает, с помощью интерфейса, эти услуги подобно Сетевой Файловой системе (NFS). Сетевая Информационная Система (NIS) основана на том же самом, имела дело с briefly. Конфигурация NFS и NIS, однако берущяя большое количество памяти, будет описана в отдельных главах. Это применяется к электронной почте и netnews также.

Конечно, мы не можем описать все сетевые приложения в этой книге. Если Вы хотите устанавить то, которое не обсуждается здесь, подобно переговорам, gopher, или xmosaic пожалуйста обратитесь к руководству для деталей.



Различные Таблицы Конфигурации


define(ALIASES, LIBDIR/aliases)dnl # system aliases define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainize hosts define(PATHTABLE, LIBDIR/pathtable)dnl # paths database define(GENERICFROM, LIBDIR/generics)dnl # generic from addresses define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers per host or domain define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # paths to hosts we feed define(UUCPRELAYS, LIBDIR/uucprelays)dnl # short-circuit paths С этими макркомандами, Вы можете изменять расположение, где sendmail + IDA ищет различные dbm таблицы, которые определяют поведение системы. Вообще нужно оставить их в LIBDIR.



Разнообразная конфигурация Опций




Имеется очень большое количество опций, которые Вы можете устанавливать в файле конфигурации, которые, хотя и полезны, но не существенны для выполнения smail, и которые мы не будем обсуждать здесь. Взамен, мы только упомянем несколько, что бы Вы могли находить причины использовать их: Если error copy postmaster - булева переменная установлена, любая ошибка, генерирует сообщение начальнику почтового отделения. Обычно, это выполнено для ошибок, которые появляются из-за дефектной конфигурации. Переменная может быть включена, помещая ее в файле конфигурации, с предшествующим плюсом (+). max hop count Если число переходов сообщения (то есть число главных ЭВМ, уже пересеченных) равняется или превышает это число, попытки получения приведут к сообщению об ошибках, возвращаемому отправителю. Это используется, чтобы предотвратить сообщения от выполнения бесконечного цикла. Счет перходов вообще вычислен из числа Received: поля в заголовке почты, но могут также быть установлен вручную используя -h опцию в командной строке. Значение по умолчанию 20.



Разнообразные Файлы


Имеется ряд файлов, которые управляют поведением 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 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.



Редко Используемые Таблицы


Следующие таблицы доступны, но довольно нечасто используются. Консультируйтесь с документацией, которая приходит с sendmail + IDA для подробностей.

Uucprelays Файл uucprelays используется для определения " короткого " пути UUCP к особенно хорошо известному абоненту, а не используя путь через ряд host или ненадежный путь, сгенерированный, обрабатывая карты UUCP с pathalias.

Genericfrom и xaliases Файл genericfrom скрывает локальные usernames и адреса от внешнего мира, автоматически преобразуя(конвертируя) локальные usernames в обобщенные адреса отправителя, которые не соответствуют внутреннему usernames. Связанная утилита xalparse автоматизирует порождение файла genericfrom и файла aliases так, чтобы и входящие и исходящие username трансляции произошли из главного файла xaliases.

Decnetxtable перезаписывает адреса с определенным именем области в адреса decnet-стиля, очень похоже на domaintable, может использоваться, чтобы перезаписать адреса с не определенным именем области в адреса с определенным именем области smtp-стиля.

| |



Регистрационные Файлы


При компилировании набора программ UUCP на использование регистрации taylor-стиля, Вы имеете только три глобальных регистрационных файла,которые находятся в каталоге spool. Основной регистрационный файл называется Log и содержит всю информацию относительно установленных соединений и перемещенных файлов. Типичный Log-файл выглядит примерно так uucico pablo - (1994-05-28 17:15:01.66 539) Calling system pablo (port cua3) uucico pablo - (1994-05-28 17:15:39.25 539) Login successful uucico pablo - (1994-05-28 17:15:39.90 539) Handshake successful protocol 'g' packet size 1024 window 7) uucico pablo postmaster (1994-05-28 17:15:43.65 539) Receiving D.pabloB04aj ucico pablo postmaster (1994-05-28 17:15:46.51 539) Receiving X.pabloX04ai uucico pablo postmaster (1994-05-28 17:15:48.91 539) Receiving D.pabloB04at uucico pablo postmaster (1994-05-28 17:15:51.52 539) Receiving X.pabloX04as uucico pablo postmaster (1994-05-28 17:15:54.01 539) Receiving D.pabloB04c2 uucico pablo postmaster (1994-05-28 17:15:57.17 539) Receiving X.pabloX04c1 uucico pablo - (1994-05-28 17:15:59.05 539) Protocol 'g' packets: sent 15, resent 0, received 32 uucico pablo - (1994-05-28 17:16:02.50 539) Call complete (26 seconds) uuxqt pablo postmaster (1994-05-28 17:16:11.41 546) Executing X.pabloX04ai (rmail okir) uuxqt pablo postmaster (1994-05-28 17:16:13.30 546) Executing X.pabloX04as (rmail okir) uuxqt pablo postmaster (1994-05-28 17:16:13.51 546) Executing X.pabloX04c1 (rmail okir)

Следуящий"важный регистрационный файл - Stats, который содержит статистику передачи файлов. Раздел Stats соответствующий вышеупомянутой передаче походит на это:

postmaster pablo (1994-05-28 17:15:44.78) received 1714 bytes in 1.802 seconds (951 bytes/sec) postmaster pablo (1994-05-28 17:15:46.66) received 57 bytes in 0.634 seconds (89 bytes/sec) postmaster pablo (1994-05-28 17:15:49.91) received 1898 bytes in 1.599 seconds (1186 bytes/sec) postmaster pablo (1994-05-28 17:15:51.67) received 65 bytes in 0.555 seconds (117 bytes/sec) postmaster pablo (1994-05-28 17:15:55.71) received 3217 bytes in 2.254 seconds (1427 bytes/sec) postmaster pablo (1994-05-28 17:15:57.31) received 65 bytes in 0.590 seconds (110 bytes/sec)


Третий файл - Debug. В нем содержится отладочная информация. Если Вы используете отладку, Вы должны удостовериться, что этот файл имеет режим защиты 600. В зависимости от режима отладки, который Вы выбрали, он может содержать имя входа в систему и пароль, который Вы используете для соединения с удаленной системой. Некоторые UUCP binaries включенные в дистрибутивы Linux-а компилировались, чтобы использовать регистрацию HDB-стиля. HDB UUCP использует целую связку регистрационных файлов, сохраненных в /var/spool/uucp/.Log. Этот каталог содержит еще три каталога, которые называются uucico, uuxqt, и uux. Они содержат вывод, сгенерированный каждой из соответствующих команд, сортируемый в различные файлы для каждой системы. Таким образом, вывод uucico при вызове системы pablo пойдет в .Log/uucico/pablo, в то время как uuxqt запишет в .Log/uuxqt/pablo. Строки, записанные в различный lofiles - такие же как и при регистрации Taylor. Когда Вы включаете отладку с HDB-стилем, вывод пойдет в .Admin в /var/spool/uucp. При соединении из вашей системы, информация об отладке будет послана в Admin/audit.locan, в то время как вывод uucico при вызове извне будет идти к .Admin/audit.


Relay-Системы и Mailer'ы


define(RELAY HOST, moria)dnl # our smart relay host define(RELAY MAILER, UUCP-A)dnl # we reach moria via UUCP RELAY HOST определяет UUCP hostname интеллектуальной соседней системы (способной послать почты в любую сеть мира). RELAY MAILER определяет mailer, используемый, чтобы передать туда сообщения. Важно обратить внимание, что устанавливающий эти параметры приводит к посылке вашей почты к этой отдаленной системе, которая будет воздействовать на загрузку их системы. Убедитесь, что вы получили явное соглашение отдаленного Постмастера прежде, чем Вы конфигурируете вашу систему, чтобы использовать другую систему как универсальный relay host.



Режимы доставки Почты


Как отмечено выше, smail способен передать сообщения немедленно, или ставить их в очередь для обработки позже. Если, который Вы выбираете очередь, smail сохранит всю почту в каталоге сообщений /var/spool/smail.

Вы можете выбирать один из трех режимов получения, устанавливая атрибут режима получения в файле конфигурации как активный, фоновый, или поставленный в очередь. Если Вы включаете формирование очереди, Вы должны удостовериться, что очередь проверяется регулярно; возможно каждые 10 или 15 минут. Если Вы выполняете smail в daemon режиме, Вы должны добавить опцию -q10m в командной строке. В качестве альтернативы, Вы можете вызывать runq из cron в этих интервалах. Runq должен быть связан с smail. Вы можете отображать текущую очередь почты, вызывая smail с -bp опцией. Так же, Вы можете делать mailq связь с smail, и вызывать mailq: $ mailq -v m0pvB1r-00023UB From: root (in /var/spool/smail/input) Date: Sun, 24 Apr 94 07:12 MET DST Args: -oem -oMP sendmail root@vstout.vbrew.com Log of transactions: Xdefer: reason: (ERR 148) transport smtp: connect: Connection refused Это показывает одиночное сообщение, в очереди сообщений. Файл регистрации (который отображается, если Вы даете mailq -v опцию) может давать дополнительную причину, почему оно все еще ждет получения. Даже, когда Вы не используете формирование очереди, smail будет иногда помещать сообщения в очередь, когда он находит непосредственные сбои получения по нерезидентной причине. Для SMTP соединений, это может быть недоступный host; но сообщения могут также быть отсрочены, когда файловая система полна.



Руководство администратора сети в ОС Linux


h2>


>>>



Send, wait и sleep


Эти команды выполняют простые chat scripts в dip. Send выводит его аргументы на последовательную линию. Он не поддерживает переменные, но понимает все C-style backslash character sequences типа \n и \b. Знак тильды (~) используется как сокращение для каретки return/newline.

wait берет слово как аргумент, и просматривает весь вход на последовательной линии, пока он не распознает это слово. Слово само по себе непосредственно не может содержать пробелы. Выборочно Вы можете дать wait timeout value как второй аргумент; если ожидаемое слово не получено внутри в течении заданного времени, команда возвратится со значением $errlvl равным 1.

Sleep оператор может быть использован для того, чтобы ждать некоторое количество времени, например, patiently ждет любую login последовательность для завершения. И снова, интервал определен в секундах.



Sendmail.cf Файл


Sendmail.cf файл для sendmail + IDA не редактируется непосредственно, а генерируется из m4 файла конфигурации, обеспеченного локальным администратором системы. В следующем, мы обратимся к нему как к sendmail.m4. Этот файл содержит несколько определений и иначе просто указывает на таблицы, где выполняется реальная работа. Вообще, необходимо определить только: + Имена путей и имена файлов, используемые в локальной системе. + Имена пункта электронной почты. + Который заданный по умолчанию mailer (и возможно smart host) желателен. Имеется большое разнообразие параметров, которые могут быть определены, чтобы установить поведение локального пункта сети. Эти опции конфигурации идентифицированы в файле ida/cf/OPTIONS в исходном каталоге. Файл sendmail.m4 для минимальной конфигурации (UUCP или SMTP со всей не-локальной почтой, передаваемой непосредственно соединенному smart-host) может быть в 10 или 15 строк, исключая комментарии.

Mailertable определяет специальное поведение для отдаленных главных ЭВМ или областей. Uucpxtable включает получение почты UUCP на главные ЭВМ, которые находятся в формате DNS. Pathtable определяет UUCP пути на отдаленные главные ЭВМ или области. Uucprelays замыкает pathalias путь на общеизвестные отдаленные главные ЭВМ. Genericfrom преобразовывает внутренние адреса в обобщенные, видимые внешнему миру. Xaliases преобразовывает обобщенные адреса на\из допустимых внутренних. Decnetxtable преобразовывает RFC-822 адреса в адреса DECnet-стиля.



Sendsys, version, и senduuname


В заключение, имеются три сообщения, которые могут использоваться, чтобы выяснить относительно топологии сети. Это - sendsys, version, и senduu- имя. Они заставляют C News возвращать отправителю файл sys, версию программного обеспечения, и вывод uuname (1), соответственно. C News - очень лаконично относительно сообщения version; оно возвращает просто неукрашенное "C". Снова, Вы никогда не должны выдавать такое сообщение, если Вы не уверенны, что это не может повредить вашей (региональной) сети. Ответы sendsys сообщениям могут быстро положить сеть UUCP.



Сетевая файловая система (NFS)


NFS, the network file system, является возможно наиболее видной сетью услуг, использующей RPC. Это позволяет обращаться к файлам на отдаленных хостах точно тем же самым способом, как пользователь обратился бы к любым" локальным файлам. Сделано возможным смешением kernel функциональных возможностей на клиентской стороне (которая использует отдаленную файловую систему) и NFS сервер на стороне сервера (который обеспечивает файл данных). Этот доступ к файлу полностью очевиден клиенту, и работает через все разнообразие серверов и архитектуры хостов.

NFS предлагает ряд преимуществ:

+ Данные, к которым обращаются все пользователи, могут быть сохранены на центральном хосте, с клиенами устанавливающими этот каталог при начальной загрузке. Например, Вы можете сохранить все accounts пользователей на одном хосте, и иметь все хосты на Вашем сетевом mount /home от того хоста. Если оно установлено бок о бок с NIS, то пользователи могут затем войти в любую систему, и все еще работать на одном множестве файлов.

+ Данные, потребляющие большие количества дискового пространства могут быть сохранены в единственном хосте. Например, все файлы и программы относящиеся к LaTeX и METAFONT могут быть сохранены и поддерживаться в одном месте.

+ Административно-управленческая информация может быть сохранена в адинственном хосте. Нет нужды использовать rcp для того, чтобы установить тот же самый глупый файл на 20 различных машин.

Linux NFS - в значительной степени работа Rick Sladkey, (1), кто написал NFS kernel код и большие части NFS сервера. Последний, выводил из unfsd пространства пользователя NFS сервер, первоначально написанный Mark Shand, и hnfs Harris NFS сервер, написанный Donald Becker.

Давайте теперь посмотрим том, как NFS работает: клиент может запросить установить каталог от отдаленного хоста на локальном каталоге тем же способом, и он может установить физическое устройство. Однако, синтаксис, используемый для того, чтобы точно определить отличен ли отдаленный каталог. Например, чтобы mount /home хост vlager к /users на vale, администратор выпустил бы следующую команду на vale: (2) " 1. Rick может быть найден в jrs@world.std.com.


# mount -t nfs vlager:/home /users

mount затем попробует соединиться с mountd, устанавленный с daemon на vlager через RPC. Сервер проверит, разрешается ли vale повысить каталог, и если так, вернет это к file handle. Этот handle файл будет использоваться во всех последовательных запросах к картотекам ниже /users.

Когда кто -то обращается к файлу над NFS, kernel места RPC вызовут nfsd (NFS daemon) на машине сервера. Это обращение берет handle файл, имя файла, к которому обращаются, и user's user и идентичность группы как параметры. Они используются в определении прав доступа к точно определенному файлу. Чтобы предотвратить от несанкционированного чтения или модифицирования файла, пользователь и идентичность группы должны быть теме же самыми на обоих хостах.

На большинстве Un*x реализаций, NFS функциональные возможности обоих клиентов и сервер выполнены как kernel уровень daemons, которые начаты из пространства пользователя при начальной загрузке системы. Они - NFS daemon (nfsd) на хосте сервера, и блок ввода - вывода Daemon (biod) выполняющийся на клиентском хосте. Чтобы улучшить производительность, biod выполняет асинхронный ввод - вывод, используя чтение - вперед и запись-назад; также, несколько nfsd daemons обычно запускается совместно.

NFS реализация Linux, немного отлична в этом самом клиентском коде, крепко объединена в файловой системе (VFS) уровень ядра и не требует дополнительного управления через biod. С другой стороны код сервера запускается полностью в пространстве пользователя, так, чтобы при запуске нескольких копий сервера в одно и то же время было бы почти невозможным из- за синхронизации. Linux NFS, в настоящее время также существует отсутствие чтения - вперед и записи-назад, но Rick Sladkey планирует исправит этот недостатолк в ближайшее время. (3)

Самая гольъая проблема с Linux NFS кодом - то, что Linux kernel версии 1.0 не способен распределить память в кусках больших чем 4k; как следствие, сетевой код не может обрабатывать датаграммы большие чем приблизительно 3500 байтов после вычитания размера заголовка и т.д. Это значит, что передача к и из NFS daemons выполняющейся на системах, которые используют большие UDP датаграммы по умолчанию (например 8k на SunOS) должны быть уменьшенны в размере искуственно. Этот причиняет вред характеристике под влиянием некоторых обстоятельств. (4) Этот предел входит в поздние Linux-1.1 ядра, и клиентский код был модифицирован для того, чтобы пользоваться этим преимуществом.

2. Заметьте, что Вы можете опустить -t nfs аргумент, потому что mount видит из двоеточия то, что это определяет NFS объем. 3. Задача с write-behind - то, что kernel буфер кэша индексирован парами device/inode, и следовательно не может использоваться для nfs- установленных файловых систем.


Сетевая информационная система


Когда Вы запускаете локальную вычислительную сеть, ваша цель - обеспечить среду окружения вашим пользователям, которая делает сеть очевидной. Важен stepping stone к этому концу должен хранить насущными данные типа пользователя синхронизированные между всеми множествами. Мы видели перед этим, что для решенияимени хоста, мощное и сложное обслуживание существует, являющееся DNS. Для других задачи, имеется нет такого специализированного обслуживания. Кроме того, если В малой локальной вычислительной сетью с no Internet activity, устанавливая DNS может показаться утояыим затруднение для многих администраторов.

Это - то, почему Sun разрабатывало NIS, Сетевую Информационную Систему. NIS обеспечивает обобщенные средства доступа к базе данных, которые могут использоваться для дизинформации данных типа этого, содержали в passwd и группах файлах всех множествах на вашей сети. Это заставит сеть появиться только как единственная система, с теми же самыми account на всех множествах. В подобном режиме, Вы может использовать NIS, чтобы распределить hostname информационную форму /etc/hos сети.

NIS основан на RPC, и включает сервер, client-side библиотеку, и несколько административных инструментальных средств. Первоначально, NIS назывался Желтые Страницы, или YP, который все еще широко используется, чтобы неофициально обратиться к этой услуге. С другой стороны, Желтые Страницы - марка изготовителя Британской Телесвязи, которая требует от Sun убрать то название. Поскольку вещи идут, некоторый стержень имен с людьми, и так YP живет на префиксе к именам больш команд типа ypserv, ypbind, и т.д. Сегодня, NIS доступны для виртуально всего Un*ces и там даже свободно реализуется. Каждый - из BSD разъединения Сеть -2 выпуск, и был получен из общей пожертвованной реализации сноски области Sun. Библиотечная клиентская цифра из этого разъединения была в GNU Libc в течение длительного времени, в то время как административные программы только недавно пренесенные к Linux Swen Thmmler. (1) NIS сервер - отсутствуетиз реализации сноски. Tobias Reber написал другой NIS пакет, е средства и сервер; это называется yps. (2)


В настоящее время(постоянно), полная перезапись цифры NIS, называемой NYS, сделанная Peter Eriksson, (3), который поддерживает оба, и plain NIS и Sun's much пересмотренным NIS.

1. swen@uni-paderborn.de. NIS клиентура доступнаы как yp- linux.tar.gz из sunsite.unc.edu в СИСТЕМА / СЕТЬ. 2. Текущая верчия *от этой записи) - yps-0.21 и может быть получена из ftp.lysator.liu.se в /pub/NYS каталоге. 3. pen@lysator.liu.se.

+. NYS не только обеспечивает множество NIS инструментальных средств и сервера, но и также прибавляет новое множество библиотечных функций, которые будут наиболее возможными для того, чтобы попасть в стандарт libc в конечном счете. Это включает новую конфигурационную схему порции hostname решения, которое заменяет текущую схему использованную host.conf. Особенности этих функций будут обсуждены ниже.

Эта глава сосредоточится на NYS скорее чем на двух других пакетах, к которому я буду относить как " традиционную " NIS цифру. Если Вы хотите запустить этих пакетов, то команд, описанных в этой главе может быть не достаточно. Чтобы получать дополнительн ую информацию, пожалуйста найдите стандартную книгу по NIS, типа NFS Hal Stern's и NIS (см. [GETST "строгий - nfs"]).

В настоящее время, NYS - все еще развивается, и следовательно стандартные Linux утилиты типа сетевых программ или входа в систему программ, еще не знает NYS схему конфигурации. Пока NYS соединяется в mainstream libc Вы должны перетранслировать все эти binaries, если Вы хотите заставить их использовать NYS. В любом из этих приложений формирования файла, точно определите -lnsl как последнюю опция libc к компоновщику. Это связывается на релевантных функциях из libnsl, NYS стандарной библиотекы для C.


Сетевой интерфейс


Чтобы скрыть разнообразное оборудование, которое может использоваться в сетевой среде, TCP/IP определяет абстрактный интерфейс, через который можно обращаться к аппаратным средствам ЭВМ. Этот интерфейс предлагает набор действий который является одинаковым для всех типов аппаратных средств и в основном имеет дело с посылкой и получением пакетов.

Для каждого переферийного устройства, которое Вы хотите использовать, в ядре должен быть представлен соответствующий интерфейс Например, Ethernet интерфейсы в Linux названы eth0 и eth1, а интерфейсы SLIP -- sl0, sl1, и т.д.. Эти названия интерфейса используются при конфигурировании, когда Вы хотите определить ядру специфическое физическое устройство. Они не имеют никакого назначения кроме этого.

Чтобы работать в TCP/IP сети, данному интерфейсу должен быть назначен IP адрес, который служит как идентификатор при общении с остальным миром. Этот адрес различен в зависимости от названия интерфейса упоминаемого выше; если Вы сравниваете интерфейс с дверью, тогда адрес подобен пластине с именем, прикрепленной на ней.

Конечно, имеются другие параметры устройства которые необходимо отрегулировать; один из них - максимальный размер дэйтаграм который может быть обработан данной частью аппаратуры, также называемый Maximum Transfer Unit, или MTU. Другие параметры будут представлены позже.



Системный файл


Системный файл 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 для всех групп, чьи имена начинаются с этого префикса), необязательно сопровождаемый ключевым словом 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 файлов требуются, чтобы дать возможность 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 ниже, с которого Вы могли бы скопировать то, в чем Вы нуждаетесь.

# 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


SLIP и PPP Драйвера


SLIP (Serial Line IP), и PPP ( Point-to-Point Протокол ) - широко используемые протоколы для посылки IP пакетов через последовательное соединение. Ряд учреждений предлагают телефонный SLIP и PPP доступ на машины которые находятся в Internet, таким образом обеспечивая IP частным лицам.

Чтобы запустить SLIP или PPP, не требуется модификации аппаратных средств. Вы можете использовать любой последовательный порт. Более подробно об этом написано в главе 5.



SLIP и PPP Интерфейсы


Хотя SLIP и PPP соединения -- всего лишь простые point-to-point связь подобно PLIP соединениям, о них также есть некая дополнительная информация. Обычно, при установке SLIP соединение требуется дозвонится до удаленного участка через ваш модем, и отрегулировать последовательную линию для SLIP способа. PPP используется подобным образом. Инструменты требуемые для создания SLIP или PPP связи будут описаны в главах 8. и 9.



SLIP Операция.


Телефонный вызов IP серверов часто предлагает SLIP обслуживание через специальные пользовательские account(ы). После login в такой account, Вы не входите в общую оболочку; взамен программа или script оболочки - отключат SLIP драйвер серверов последовательной линии и сконфигурируют соответствующий сетевой interface. Затем Вы должны сделать тоже самое в конце связи.

На некоторых операционных системах, SLIP драйвер -- user-space программа; под Linux, это - часть ядра, которая делает его намного быстрее. Требуется, однако, чтобы порядковая линия явно была бы преобразована в SLIP режим. Это выполнено посредством tty line discipline, SLIPDISC. Пока tty находится в обычной line discipline (DISC0), изменятся данные только с процессвми пользователя, используя normal read (2) и write(2) вызовы, SLIP драйвер - отключен для записи или чтения из tty, пока все данные, поступающие на серейный порт, будут пропущены SLIP драйвером.

SLIP драйвер непосредственно понимает число разновидностей на SLIP протоколе. Кроме обычного SLIP, он также понимает CSLIP, который выполняется так называемым Van Jacobson header compression на выходящих IP блоков.(1) Дополнительно, имеются шести-битовые версии для каждого из этих протоколов.

Простой способ преобразовать последовательную линию в SLIP режим - использовать slattach. Допустим, что у Вас есть модем на /dev/cua3, и Вы удачно подсоеденились на SLIP сервер. Вы затем бы выполнили:

#slattach /dev/cua3 &

Это включит line discipline cua3 к SLIPDISC, и подсоединит ее к одному из interface SLIP сети. Если это ваша первая активная SLIP связь, то линия будет подсоединена к sl0; вторая была бы подсоединенп к sl1, и так далее. Текущие ядра поддерживают до восьми одновременных SLIP связей.

1. Van Jacobson header compression описан в RFC 1441.

Заданное по умолчанию оформление пакета, выбранное slattach - CSLIP. Вы можете выбрать любой другой режим, используя -p переключатель. Для того, чтобы использовать normal SLIP (no compression), Вы должны использовать


# slattach -p slip /dev/cua3 &

Другие режимы - cslip, slip6, cslip6 (для шести-битовой версии Slip(а)), и adaptive для адаптивного SLIP. Последние оставляют это для ядра, чтобы выяснить, который тип оформления пакета SLIP использует remote end.

Заметьте, что Вы обязаны использовать такое же оформление, какое имеет Ваш peer. Например, если cowslip использует CSLIP,то Вы должны использовать его же. Симптомы рассогласования будут такие, что ping незначительному хосту не вернет блоки огратно. Если другой хост pings Вас, то Вы можете увидеть сообщение типа "Can't build ICMP header'' на вашем мониторе. Один способ избежать эту неприятность - надо использовать adaptive SLIP.

Фактически, slattach не только не позволяет Вам отключить SLIP, но и не позволяет отключает другие протоколы, которые используют последовательную линию также, как и PPP или KISS (другой протокол, используемый людьми в ham radio). Для деталей, обратитесь пожалуйста к slattach инструкции стр. 8.

После передачи линии SLIP драйверу, Вы должны сконфигурировать сетевой interface. И снова, мы используем стандарт ifconfig и route команды. Предположим, что из vlager мы соединилисьс сервером crowslip. Тогда Вы должны выполнить:

# ifconfig sl0 vlager pointopoint cowslip # route add cowslip # route add default gw cowslip

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

При демонтаже SLIP связи, Вы сначала должны удалить все маршруты cowslip, используя route c del опцией, уберите interface, и передаете slatch сигнал hangup(повесить трубку). Впоследствии Вы должны hangup модем, использующий Вашу терминал программу:

# route del default # route del cowslip # ifconfig sl0 down # kill -HUP 516

| |


Смешивание и Соответствие Двоичных Распределений


Не имеется никакой истинной стандартной конфигурации транспорта электронной почты и средств получения и не имеется никакой " истинной структуры каталога. " Соответственно, необходимо гарантировать, что все различные части системы (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.



Самое лучшее исправление против проблем


Самое лучшее исправление против проблем маршрутизации почты в UUCP сетях - принятие системы имени области в UUCP сетях. Конечно, Вы не можете сделать запрос блока преобразования имен над UUCP. Однако, многие UUCP абоненты сформировали малые области, которые координируют их маршрутизацию внутренне. В Картах, эти области объявляют одну или две главных ЭВМ как их ворота почты, так, чтобы не был входа карты для каждой главной ЭВМ в области. Ворота обрабатывают всю почту, которая течет в и вне области. Схема маршрутизации внутри области полностью невидима для внешнего мира.

Это работает очень хорошо с интеллектуально - главной схемой маршрутизации, описанной выше. Глобальная переменная, направляющая информацию поддерживается воротами; малый Главные ЭВМ внутри области получат только малый файл путей, который перечисляет маршруты внутри их области, и маршрута к хабу почты. Даже ворота почты не должны иметь информации маршрутизации для каждой одиночной UUCP главной ЭВМ в мире. Им нужно иметь маршруты к всем областям в их базах данных. Например, pathalias вход, показанный ниже направляет всю почту для абонента в sub.org области к smurf: .sub.org swim!smurf!%s Любая почта, адресованная claire@jones.sub.org будет послана swim с адресом конверта smurf! Jones! Claire. Иерархическая организация области называет место, позволяет серверам почты смешивать более специфические маршруты с менее специфическими. Например, система во Франции может иметь специфические маршруты для подобластей fr, но направлять любую почту для главных ЭВМ в США область к некоторой системе в США. Таким образом,, область-основанная маршрутизация (как эта методика называется) значительно уменьшает размер баз данных маршрутизации также как административных необходимых непроизводительных затрат. Основная польза использования имен области в UUCP среде то что согласие с RFC 822, разрешает простой переход между UUCP сетями и Internet. Многие UUCP области в настоящее время имеют связь с воротами Internet, которые действуют как их интеллектуально - главные. Посылка сообщений через Internet быстрее, и информация маршрутизации намного более надежна, потому что главные ЭВМ Internet могут использовать DNS вместо Карт Usenet. Чтобы быть доступным из Internet, uucp-основанные области обычно имеют ворота в Internet, и объявляют запись MX для них (MX записи были описаны выше). Например, примите, что moria принадлежит orcnet.org области. Gcc2.groucho.edu действует как ворота в Internet. Moria следовательно использовал бы gcc2 как интеллектуально - главного (smart-host), так, чтобы вся почта для иностранных областей была передан через Internet. С другой стороны, gcc2 объявил бы запись MX для orcnet.org, и передавал всю входящую почту для orcnet абонента к moria. Единственая остающаяся проблема состоит в том, что UUCP транспортные программы не могут иметь дело с квалифицированными именами области. Большинство UUCP программ было разработано, чтобы справиться с именами пункта до восьми символов, и использование не-алфавитно-цифровых символов типа точек - полностью вне правил.

Следовательно, некоторое отображение между RFC 822 именами и UUCP hostname'ами необходимо. Один общий способ отображения FQDN на имена UUCP состоит в том, чтобы использовать pathalias файл для этого: moria.orcnet.org ernie!bert!moria!%s Это произведет чистый путь uucp-стиля из адреса, который определяет полностью квалифицированное имя области. Некоторые mailer'ы обеспечивают специальные файлы для этого; sendmail, например, использует uucpxtable. Обратное преобразование иногда требуется при посылке почты из UUCP сети в Internet. Как только отправитель почты использует полностью квалифицированное имя области в адресе адресата, этой проблемы можно избежать не удаляя имя области из адреса конверта при пересылке сообщения на smart-host. Однако, имеется все еще некоторый UUCP абонент, который - не есть часть любой области. Они - обычно определяются, конкатенируя псевдо область uucp.


SMTP-Транспорт


Smail в настоящее время поддерживает SMTP драйвер, чтобы передавать почту по TCP соединениям. Это дает возможность посылки сообщения любому числу адресов на одиночном host, с hostname, определяемым или как полностью квалифицированное имя области которое может быть использовано программным обеспечением работы с сетями, или в точечной записи четверки, включенной в квадратные скобки. Вообще, адреса, решенные любым BIND, gethostbyname или gethostbyaddr драйверов программы маршрутизации будут переданы на SMTP транспорт. SMTP драйвер будет пытаться соединяться с отдаленным host немедленно через smtp порт как перечислено в /etc/services. Если это не может быть достигнуто, или соединение прерывается, оно будет повторно предпринято в более позднее время. Получение на Internet требует, чтобы маршруты до host адресата были определены в формате адрес-маршрут, описанном в главе 14, а не как путь удара. smail будет следовательно трансформировать user%host@gateway, где gateway достигнут через host1!host2!host3, по адресу исходного маршрута < @host2,@host3:user%host@gateway >, который будет послан как конверт, адресованный host1. Чтобы давать возможность этому преобразованию (наряду с встроенным драйвером BIND), Вы должны редактировать вход для smtp драйвера в файле transports. Типовой файл transports дан в Приложении 20.3.



Сообщение Отмена


Наиболее широко известное сообщение - отмена, которой пользователь может отменять статью, посланную ранее. Оно действительно удаляет статью из каталогов spool, если она существует. Сообщение отмены будет послано к всем абонентам, которые получают новости из таких групп, независимо от того, была ли статья замечена уже или нет. Нужно принять во внимание возможность того, что первоначальная статья была отсрочена несмотря на сообщение сокращения. Некоторые системы новостей позволяют пользователям отменять сообщения другого человека; это - конечно определенный минус.



Сообщения Управления


Usenet протокол новостей знает специальный класс статей, которые вызывают некоторые ответы или действия системы новостей. Они называются сообщениями управления. Они распознаются присутствием поля Control в заголовке статьи, которое содержит имя операции управления, которую нужно выполнить. Имеются отдельные типы этих операций, которые обрабатываются командами оболочки, расположенными в /usr/lib/news/ctl. Большинство из них выполнит их действие автоматически во время обработки статьи C News, без того, чтобы уведомить newsmaster. По умолчанию, только checkgroups сообщения будут вручены newsmaster, но Вы можете изменять это, редактируя команды.



Специальные Файлы


Smail способен обработать специальные файлы, совместимые с теми что известны sendmail Berkeley. Входы в специальном файле могут иметь форму alias: recipients recipients - отделенный запятой список адресов, которые будут заменяться специально. Список получателей может быть продолжен через символы перевода строки, если следующая строка начинается с МЕТКИ ТАБУЛЯЦИИ. Имеется специальная возможность, которая позволяет smail обрабатывать списки отправки по почте из специального файла: если Вы определяете ":include:filename" как получателя, smail будет читать заданный файл, и применять содержимое как список получателей.

Основной файл побочных результатов исследования - /usr/lib/aliases. Если Вы сделаете этот файл всемирно - перезаписываемым, smail не будет передавать сообщения командам оболочки, данным в этом файле. Типовой файл показывается ниже: # vbrew.com /usr/lib/aliases file hostmaster: janet postmaster: janet usenet: phil # The development mailing list. development: joe, sue, mark, biff /var/mail/log/development owner-development: joe # Announcements of general interest are mailed to all # of the staff announce: :include: /usr/lib/smail/staff, /var/mail/log/announce owner-announce: root # gate the foobar mailing list to a local newsgroup ppp-list: "|/usr/local/lib/gateit local.lists.ppp" Если ошибка происходит при ипользовании адреса, сгенерированного из специального файла, smail будет пытаться посылать копию сообщения об ошибках к "специальному владельцу''. Если адрес владельца не существует, никакое дополнительное сообщение об ошибках не будет сгенерировано.



Списки Отправки по почте


Вместо того, чтобы использовать специальный файл, чтобы отправить по почте по списку можно также управляться посредством файлов в каталоге /usr/lib/smail/lists. Список отправки по почте, именованный nag-bugs описан как lists/nag-bugs, должен содержать адреса элементов, отделяемые запятыми. Список может быть дан на нескольких строках, с комментариями.

Для каждого списка отправки по почте, пользователь именованный владельцем - listname должен существовать; любое появление ошибок при применени адреса будет сообщено этому пользователю. Этот адрес также используется как адрес отправителя на всех исходящих сообщений в Sender: поле заголовка.



Стандартная организация файлов системы


В прошлом, одна из проблем которые сокрушили Linux а также отдельные пакеты было то, что в нем не был принят единый стандарт расположения системных файлов. Это приводило к несовместимости между различными пакетами и ставило перед пользователями и администраторами задачу расположения различных файлов и программ в нужном порядке.

Чтобы улучшить эту ситуацию, в августе 1993 несколько людей сформировали Группу Стандартов Системы Файлов в Linux, или коротко FSSTND После шести месяцев обсуждения, группа представила проект, который представляет структуру системных файлов и определяет местоположение наиболее необходимых программ и файлов конфигурации.

Этот стандарт, как предполагается, будет поддержан в основных Linux дистрибуциях и пакетах. По этому в этой книге, мы будем предполагать что любые обсуждаемые файлы находятся в местах указанных стандартом; только там где есть традиционное расположение находится в противоречии с этой спецификацией будет упомянуты альтернативные местоположения.

Стандарт системы файлов в Linux может быть получен на всех основных Linux FTP серверах и их зеркалах; например, Вы можете найти его на sunsite.unc.edu в /pub/linux/docs. Daniel Quinlan, координатор группы FSSTND, может быть найден по адресу quinlan@bucknell.edu.lex



Статистика Почты


Многие администраторы пунктов (и персонал) заинтересованы объемом почты, передающейся к, из, и через локальный пункт. Имеется ряд способов определить количество траффика почты. + 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

Если Вы используете mail.debug и отправляете по почте большие объемв, вывод syslog может стать большим. Выходные файлы из syslogd вообще должны сдвигаться или очищаться на стандартном базисе из crond (8). Имеется ряд обычно доступных утилит, которые могут подводить итог вывода регистрации почты из syslogd. Одна из наиболее известных утилит - syslog-stat.pl, команда perl, которая распределена с sendmail + IDA.



Таблица маршрутизации


Теперь сосредоточим наше внимание на том, как IP выбирает gateway при доставке дэйтаграм к определенной сети.

Как мы видели раньше erdos, когда передавал дэйтаграмы для quark, проверил место назначения и нашел, что его нет в местной сети. Поэтому он посылает ее gateway, sophus, который теперь сталкивается с той же самой задачей. Sophus определяет, что quark не находится в сетях, с которыми он непосредственно связан, так что он передает эту дэйтаграм другому gateway, чтобы он перенаправил ее дальше. Правильный выбор был бы niels (gateway Отдела Физики). Но sophus нуждается в некоторой информации чтобы определить подходящий gateway.

Для этого используется таблица IP маршрутизации, которая определяет какие сети присоединены с помощью каких gateways. Обязательно должен быть указан маршрут по умолчанию (the default route), по которому будут направляться все пакеты с адресами в неизвестных сетях. Этот gateway связан с сетью 0.0.0.0.. На sophus, эта таблица могла бы напоминать эту:

----------------------------------------- +------------+-------------+------------+ | Сеть | Gateway | Интерфейс | +------------+-------------+------------+ +------------+-------------+------------+ | 149.76.1.0 | - | Fddi0 | | 149.76.2.0 | 149.76.1.2 | fddi0 | | 149.76.3.0 | 149.76.1.3 | fddi0 | | 149.76.4.0 | - | Eth0 | | 149.76.5.0 | 149.76.1.5 | fddi0 | |... | ... | ... | | 0.0.0.0 | 149.76.1.2 | fddi0 | +------------+-------------+------------+ +------------+-------------+------------+

Маршруты к сетям, с которыми sophus связан непосредственно обозначаются "-" в столбце gateway.

Таблицы маршрутизации могут быть построены различными средствами. Для маленькой сети, наиболее эффективно строить их вручную и передавать их IP, используя маршрутизирующую команду во время загрузки системы. (см. главу 6.). Для больших сетей, они строятся и регулируются во время работы маршрутизирующих демонов; они запускаются на центральном хосте и обмениваются информацией с другими компьютерами для вычисления "оптимального" маршрута между членами сетей.

В зависимости от размера сети используются различные протоколы маршрутизации. Для маршрутизации в автономной системе (типа университетского городка), лучше подходит RIP, Routing Information Protocol (протокол маршрутной информации), который предложен в BSD демоне. Для маршрутизации между автономными системами используются внешние протоколы маршрутизации типа EGP (Внешний Gateway Протокол), или BGP ( Пограничный Gateway Протокол); они ( а также RIP) были предложены в gated демоне( University of Cornell's).



Так которые Входы Действительно требуются?


Если не используются dbm таблицы, sendmail + IDA передает почту через DEFAULT MAILER (и возможно RELAY HOST и RELAY MAILER) определенный в файле sendmail.m4, используемом, чтобы генерировать sendmail.cf. Легко можно отменить это поведение через входы в domaintable или uucpxtable. Виртуально все системы должны установить DEFAULT HOST, макркоманды PSEUDONYMS, которые определяют каноническиое имя пункта, и DEFAULT MAILER. Если все что Вы имеете - это relay host и relay mailer, Вы не должны устанавлвать эти значения по умолчанию, так как это работает автоматически.

UUCP главные ЭВМ будут возможно также должны установить UUCPNAME как их официальное имя UUCP. Они также возможно установят RELAY MAILER, и RELAY HOST, которые дают возможность маршрутизации smart-host через relay почту. Транспорт почты, который нужно использовать определен в RELAY MAILER и должен обычно быть UUCP-A для UUCP абонента. Если ваш пункт только SMTP и использует "Domain Name Service ", Вам следует заменить DEFAULT MAILER на TCP-A и возможно удалить СТРОКИ RELAY HOST и RELAY MAILER.



Taylor Файлы Конфигурации


Теперь мы вернемся к файлам конфигурации. Taylor UUCP получает информацию из следующих файлов:

config -Это основной файл конфигурации. Вы можете определить ваше имя UUCP здесь.

sys - описывает все участки сети, известные Вам. Для каждого участка, он определяет имя, в какое времяе вызывать его, какой номер набрать , какое устройство использовать, и как регистрироваться.

port - описывает все доступные порты, вместе с обеспечиваемой скоростью и программами соединения, которые нужно использовать.

5. UUCP Mapping Project регистрирует все UUCP hostnames во всем мире и проверяет их на уникальность. Чтобы зарегистрировать ваше имя UUCP, спросите maintainers ЭВМ, которжя ограбатывает вашу почту; они помогут Вам с этим.

dial - Описывает программы набора номера, используемые, чтобы установить телефонное соединение.

Dialcode Содержит расширения для символического сода набора (dialcodes).

call Содержит имя входа в систему и пароль, который нужно использовать при вызове системы. Редко используется.

Passwd Содержит имена входа в систему, и системы паролей используемые при регистрации . Этот файл используется только, когда uucico делает собственную проверку пароля.

Taylor файлы конфигурации состоят из строк, содержащих пары ключевое слово - значение. Знак мусора представляет комментарий ,действующий до конца строки. Чтобы использовать знак мусора просто так , Вы можете ввести его с наклонной чертой влево( with a backslash). Есть очень много опций, которые Вы можете изменять в этих файлах конфигурации. Мы не можем описать все параметры здесь, и заденем лишь наиболее важные.С их помощью вы сможете сконфигурировать модемную связь UUCP. Дополнительные разделы описывают изменения, необходимые, если Вы хотите использовать UUCP поверх TCP /IP или поверх последовательного соединения. Полная описание дается в Texinfo документах, которые распространяются вместе с исходным текстом Taylor UUCP. Если Вы думаете, что сконфигурировали вашу систему UUCP полностью, можете проверить вашу конфигурацию, используя uuchk (находится в /usr/lib/uucp). Uuchk читает ваши файлы конфигурации, и печатает детализированный отчет о значениях , используемых для каждой системы.



TCP/IP Сети


Хотя UUCP может быть и разумный выбор для дешевых сетей связи по телефону, но существует большое количество ситуаций в которых техника сохранил-передал оказывается слишком негибкой, например в локальных сетях (LANs). Они обычно состоят из маленького числа машин расположенных в одном здании или даже на одном этаже, которые связаны для создания однородной рабочей среды. И Вы хотели бы разбросать файлы между этими хостами, или запускать одно приложение на различных машинах.

Эти задачи требуют совершенно другого подхода к организации сети. Вместо отправления полных файлов наряду с описанием работы, все данные разбиваются на маленькие пакеты, которые немедленно отправляются нужному хосту, где они повторно собираются. Этот тип сети называется packet-switched(пакетной) сетью. Среди прочего, это позволяет запускать по сети диалоговые приложения. Стоимость этого, конечно, резкое увеличение сложности программного обеспечения.

Решение, которое Unix системы и большинство не-Unix участков приняли известно как TCP/IP. В этой секции, мы будем рассматривать его основные концепции.



Tcpd средства управления доступом


" Начиная с открытия компьютера к сети средство вовлекает много защиты, приложения разработанные так, чтобы принять меры против типов решения. Некоторые из этих, однако, могут быть flawed (наиболее решительно демонстрированными RTM Internet worm), или могут не различаться между безопасными хостами, из которых просьбы о частном обслуживании будут приняты, и опасными хостами, чьи запросы должны быть отклонены. Мы уже кратко обсуждали finger и tftp услуги выше.

# # inetd services ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd -l telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd - b/etc/issue #finger stream tcp nowait bin /usr/sbin/fingerd in.fingerd #tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd #tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd /boot/diskless login stream tcp nowait root /usr/sbin/rlogind in.rlogind shell stream tcp nowait root /usr/sbin/rshd in.rshd exec stream tcp nowait root /usr/sbin/rexecd in.rexecd # # inetd internal services # daytime stream tcp nowait root internal daytime dgram udp nowait root internal time stream tcp nowait root internal time dgram udp nowait root internal echo stream tcp nowait root internal echo dgram udp nowait root internal discard stream tcp nowait root internal discard dgram udp nowait root internal chargen stream tcp nowait root internal chargen dgram udp nowait root internal

Рис. 15. /etc/inetd.conf file.

ограничить доступ к этим услугам " доверенные множества " только, которые невозможны с обычной установкой, где inetd обеспечивает эту защиту всей клиентуре.

&Полззное средство для этого - tcpd, (1), так называемый daemon wrapper. Для ТСP услуги Вы хотите проконтролировать или защищать его, вызывая вместо его программу сервера. Tcpd регестрирует запрос к syslog daemon, проверяя позволяют ли remote хосту использовать обслуживание, и только если это будет выполнено в реальной программе сервера. Заметьте, что это не работа с udp-основанными услугами.

Например, чтобы перенести finger daemon, Вы должны изменить corresponding линию в inetd.conf


1. Написано Wietse Venema, wietse@wzv.win.tue.nl.

# wrap finger daemon finger stream tcp nowait root /usr/sbin/tcpd in.fingerd

Без добавления какого-либо access контроля, это появится у клиенту точно также как и обычная установка finger, за исключением того, что любые запросы будут регистрироваться к syslog's auth facility.

Управление доступом выполнено посредством двух файлов, называемых /etc/hosts.allow и /etc/hosts.deny. Они содержат разрешение входов и отрицание доступа, соответственно, к некоторым услугам и хостам. Когда tcpd обрабатывает просьбу о обслуживании finger от клиентского хоста, именованного Biff.foobar.com, он просматривает hosts.allow и hosts.deny (в этом порядке) для соответствующей записи и сервисного и клиентского хоста. Если запись соответствия была найдена в тся, независимо от любой записи в hosts.deny. Если соответствие найдено в hosts.deny, то запрос будет отклонен закрывая связь.схему. Если никакое соответствие не найдено вообще, запрос будет принят.

Входы в файл доступа выглядят следующим образом:

Servicelist: hostlist [: shellcmd]

Servicelist - список сервисных имен из /etc/services, или ключевое слово ALL. Чтобы соответствовать всем услугам за исключением finger и tftp, используйте "ALL"EXCGPT finger, tftp''.

Hostlist - список имен хостов или адресов IP, или ключевых слов ALL, LOCAL, или UNKNOWN. ALL соответствует любой хост, в то время как LOCAL соответствует имя хоста, не содержащие точку.(2) UNKNOWN соответствует любым множествам чьи названия или адреса ошибочны. Name string, начинающееся с точки соответствует всем хостам, чьи области является равными этому названию. Например,.foobar.com пара - Biff.foobar.com. Имеются также условия для IP сетевых адресов и подсет к странице справочника (5) для деталей.

Для того, чтобы отказать в доступе к finger и tftp услугам, кроме локальных хостов, поместите следующее в /etc/hosts.deny, и сделайте пустым /etc/hosts.allow:

2. Обычно только локальные имена хостов, полученные из поисков в /etc/hosts не содержать никакой точки.



in.tftpd, in.fingerd: ALL EXCEPT LOCAL, .your.domain

Произвольная shellcmd область может содержать командную оболочку, чтобыбыть вызванной, когда запись согласована. Это полезно установить ловушку, которая может разоблачить потенциальных нападавших:

in.ftpd: ALL EXCEPT LOCAL, .vbrew.com : \ echo "request from %d@%h" >> /var/log/finger.log; \ if [ %h != "vlager.vbrew.com" ]; then \ finger -l @%h >> /var/log/finger.lы отличны. Область псевдонимов позволяет точно определить альтернативные имена для того же самого обслуживания.

Обычно, Вы не должны менять файл услуг, который приходит

Наряду с сетевым программным обеспечением на вашей Linux системе. Однако, мы даем малую выборку из того файла ниже.

# The services file: # # well-known services echo 7/tcp # Echo echo 7/udp # discard 9/tcp sink null # Discard discard 9/udp sink null # daytime 13/tcp # Daytime daytime 13/udp # chargen 19/tcp ttytst source # Character Generator chargen 19/udp ttytst source # ftp-data 20/tcp # File Transfer Protocol (Data) ftp 21/tcp # File Transfer Protocol (Control) telnet 23/tcp # Virtual Terminal Protocol smtp 25/tcp # Simple Mail Transfer Protocol nntp 119/tcp readnews # Network News Transfer Protocol # # UNIX services exec 512/tcp # BSD rexecd biff 512/udp comsat # mail notification login 513/tcp # remote login who 513/udp whod " # remote who and uptime shell 514/tcp cmd # remote command, no passwd used syslog 514/udp # remote system logging printer 515/tcp spooler # remote print spooling route 520/udp router routed # routing information protocol

Заметьте, что, например, обслуживание ECHO предлагается на порте 7 для обоих и TCP и UDP, и этот порт 512 используется для двух различных услуг, а именно для СИСТЕМЫ СПУТНИКОВОЙ СВЯЗИ КОМСАТ daemon (которые сообщают пользователям относительно новой почты, смотри xbiff(1x)), над UDP, и для remote execution (rexec(1)), используя TCP.

# # Internet (IP) protocols # ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol igmp 2 IGMP # internet group multicast protocol tcp 6 TCP # transmission control protocol udp 17 UDP # user datagram protocol raw 255 RAW # RAW IP interface


Тестирование файла sendmail.cf


Чтобы включить " проверочный " режим, Вы вызываете sendmail с -bt флагом. Заданный по умолчанию файл конфигурации - файл sendmail.cf, который установлен на системе. Вы можете проверять альтернативный файл, используя -Cfilename опцию. В следующих примерах, мы проверяем vstout.cf файл конфигурации, сгенерированный из файла vstout.m4.

# /usr/lib/sendmail -bt -Cvstout.cf ADDRESS TEST MODE Enter [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 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 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 >


The Internet Control Message Protocol


(Межсетевой протокол контрольных сообщений)

IP имеет протокол-компаньон, что ж мы до сих пор не поговорили о нем. Это межсетевой протокол контрольных сообщений (ICMP) и используется он сетевым кодом ядра, чтобы передавать сообщения об ошибках и т. п. другим хостам. Например, предположите что Вы находитесь на erdos и хотите использовать telnet через 12345 порт на quark, но на этом порте отсутствует слушающий процесс. Когда приходит первый TCP пакет на этот порт, ядро определит это и отошлет ICMP сообщение.

Имеются множество ICMP сообщений, большинство из них сообщают о каких-либо ошибках. Однако, имеется очень интересное сообщение названное Перенаправляющим сообщением (Redirect message). Оно генирируется модулем маршрутизации, когда он обнаруживает что другой хост использует его как gateway, хотя имеется более короткий маршрут. Например, после загрузки таблицы маршрутизации на sophus может быть неполной: она содержит маршруты к сети математиков, к FDDI магистрали, а по умолчанию указан gateway Groucho Вычислительного центра (gcc1).

Поэтому, любые пакеты для quark посылаются через gcc1, хотя быстрее было бы через niels (gateway в отделе физики). При получении таких дэйтаграм, gcc1 будет извещать что это -- плохой маршрут, и будет отправлять пакет к niels, в то же самое время возвращая ICMP сообщение к sophus, показывая ему лучший маршрут.

Это кажется очень разумным, потому что пропадает необходимость дописывать новые маршруты вручную. Однако будте осторожны, полагаясь на динамические схемы маршрутизации, будь то RIP или ICMP перенаправляющие сообщения, это не всегда хорошая идея. ICMP перенаправления и RIP предлагают Вам маленький или никакой выбор при проверке, подлинности маршрутной информации Это позволяет злоумышлинику полностью разрушить движение по сети, или сделать что-то еще.



Типовой Script(сценарий).


Типовой script аоказан на рисунке 8.3.1. Он может использоваться для связи с cowslip, вызывая dip со script именем как аргумент:

2. Dip подразумевается Dialup IP. Он был написан Fred van Kempen. 3. Diplogin может (или должен) быть запущен setuid(ом). См. раздел в конце этой главы.

# Sample dip script for dialing up cowslip

# Set local and remote name and address get $local vlager get $remote cowslip

" port cua3 # choose a serial port speed 38400 # set speed to max modem HAYES # set modem type reset # reset modem and tty flush # flush out modem response

# Prepare for dialing. send ATQ0V1E1X1\r wait OK 2 if $errlvl != 0 goto error dial 41988 if $errlvl != 0 goto error wait CONNECT 60 if $errlvl != 0 goto error

# Okay, we're connected now sleep 3 send \r\n\r\n wait ogin: 10 if $errlvl != 0 goto error send Svlager\n wait ssword: 5 if $errlvl != 0 goto error send hey-jude\n wait running 30 if $errlvl != 0 goto error

# We have logged in, and the remote side is firing up SLIP. print Connected to $remote with address $rmtip default # Make this link our default route mode SLIP # We go to SLIP mode, too # fall through in case of error

error: print SLIP to $remote failed.

Рисунок 14. Типовой dip script.

# dip cowslip.dip DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93) Written by Fred N. van Kempen, MicroWalt Corporation.

connected to cowslip.moo.com with addr 193.174.7.129 #

После соединения с cowslip и включением SLIP, dip отделится от терминала и отойдет к предоставлению возможности SLIP связи. Вы сможзте " затем начать использовать обычные сетевые услуги на SLIP связи. Чтобы завершить связь, просто вызовите dip c опцией -k. Это пошлет hangup сигнал dip процессу, используя id dip запись в /etc/dip.pid: (4)

# kill -k

На dip script языке, ключевые слова имеющие префикс с символом $ обозначают различные имена. Dip имеет предопределенное множество переменных, которые будут будут перечислены ниже. $remote и $local, например, содержат hostnames локального и незначительного хоста, вовлеченных в SLIP связь.


Первых два оператора в типовом script - получают команды, которые являются dip способом установки переменных. Здесь, локальный и незначительный hostname установленн к vlager и cowslip, соответственно.

Следующие пять операторов устанавливают линию терминала и модема. Reset посылает reset строку к модему; для Hayes-совместимых модемов, это команда ATZ. Следующий оператор игнорирует реакцию модема, так что login chat в линиях работал правильно. Сhat - довольно прост: он просто набирает номер 41988, номер телефона cowslip, и подсоединятся в account Svlager через пароль hey-jude. Wait команда заставит dip ждать строку, данную как его первый аргумент; номер, данный как второй аргумент делает wait time, если никакая строка не была получена. If команды разбросаны в процедуре входа в систему, и проверяют то, что никакая ошибка не появилась при выполнении этой команды.

Итоговые(final) команды, выполненные после logging, заданы по умолчанию, которые заставят SLIP связать заданный по умолчанию маршрут со всеми хостами, и режимом, который отключает SLIP на линии и конфигурирует interface и таблицу маршрутов(routing tables) для Вас.

4. См. newsgroup alt.tla для более палиндромической забавы с акронимами с тремя символами.


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 один раз утром, но Вы можете также, делать так более часто если необходимо. Абоненты, которые имеют очень тяжелый траффик, могут хотеть выполнять 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 опция заставит такое расширенное истечение выполнять один раз в день, в полночь.



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. Это не просто передная часть, но система новостей с собственными правилами.



Условные Обозначения


Условные обозначения были введены чтобы отметить команды оболочки, переменные аргументы, и т.д.. Ниже приводится их описания.

Жирный шрифт используется чтобы отметить имя хоста и адреса почты, а также новые концепции и предупреждения.

Italics шрифт используется чтобы отметить имена файла, UNIX команды и ключевые слова в файлах конфигурации. Также используется для расстановки акцентов в тексте.

Шрифт пишущей машинки используется чтобы представить выводимую на экран информацию во время работы описываемых программ. Также используется для примеров кода, будь то файл конфигурации, набор команд оболочки или что-нибудь еще.

Typewriter Slanted шрифт используется чтобы отметить meta-переменные в тексте, особенно в представление командной строки. Например:

$ Ls -l foo

Где foo -- имя файла, типа /tmp.

'клавиша' Представляет клавишу, которую надо нажать. Вы будете часто видеть это в этой форме:

Press 'return' to continue.

<> - алмаз с краю, подобно черному алмазу на a лыжном склоне, отмечает "опасность" или "предостережение." Читайте параграфы отмеченные этим значком более тщательно.

$ И # предшествует команде оболочки которую нужно выполнит. "$" символ используется когда команда может быть выполнена простым пользователем; "#" означает что команда требует пользователя с привилегией root.



Установка


Чтобы установить C News необходимо раз'tar'ить файлы в их соответствующие места, если Вы еше не сделали этго, и отредактировать файлы конфигурации, перечисленные ниже. Они все расположены в /usr/lib/news. Их форматы будут описаны в следующих разделах. Если Вы являетесь передающим пунктом (пунктом листа), Вы нуждаетесь в строке, которая посылает все локально сгенерированные статьи к ожидающему. Пусть ожидающий - moria, тогда ваш системный файл должен выглядеть следующим образом:

ME:all/all:: moria/moria.orcnet.org:all/all,!local:f:

organization Имя Вашей организации. Например, "Виртуальный Пивоваренный завод". На вашей местной машине, введите " частный пункт '', или что - нибудь, еще, что Вы находите приятным. Большинство людей не будет называть ваш пункт правильно отконфигурированным, если Вы не настроили этот файл.

newsgroups ...

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. Теперь, Вы готовы получать новости. Обратите внимание, что Вы не должны создавать любые каталоги отличные от показанных выше, потому что каждый раз когда C News получает статью от группы, для которой не имеется никакого каталога, он создаст его. C News нуждается в пользователе, которому можно послать сообщения об ошибках и отчеты состояния. По умолчанию, это - usenet. Если Вы используете значение по умолчанию, Вы должен установить специальные права для него. Вы можете также отменять это поведение, устанавливая переменную среды NEWSMASTER как соответствующее имя.


Установка бинарников


Если Вы используете одну из пред-пакетных Linux дистрибуций, она вероятно содержит основные сетевые приложения и утилиты наряду с набором примеров. Единственный случай, когда Вам пришлось бы и устанавливать новые утилиты, тогда, когда Вы устанавливаете новый выпуск ядра. Поскольку в них иногда вносятся изменения в сетевом уровне, Вы должны будите модернизировать основные инструменты конфигурации. Это по крайней мере приводит к повторной компиляции, но иногда Вам может потребоваться последний набор бинарников. Они обычно распространяются вместе с ядром и находятся в архиве названном netXXX.tar.gz, где XXX - номер версии. Выпуск соответствующий Linux 1.0 -- 0.32b, самое последнее ядро ( 1.1.12 или позже ) требуют 0.32d.

Если Вы хотите собрать и установить стандартные TCP/IP сетевые приложения самостоятельно, Вы можете получить исходники на большинстве Linux FTP серверов. Там лежат более или менее тяжело исправленные версий программ от Net-BSD и другие исходники. Другие приложения, типа Xmosaic, xarchie, или Gopher и IRC клиенты нужно получать отдельно. Большинство из них легко собирают, если Вы следуете всем инструкциям.

Официальный FTP участок для Net-3 -- sunacm.swan.ac.uk, отраженный sunsite.unc.edu в system/Network/sunacm. Самый последний Net-2e комплект и бинарники к нему доступны на ftp.aris.com. Matthias Urlichs bsd сетевой код может быть взят на ftp.ira.uka.de в /pub/system/linux/netbsd.



Установка Ethernet


Сейчас Linux поддерживает различные марки Ethernet карт. Больше всего драйверов были написаны Donald Becker (becker@super.org). Он автор семейства драйверов для карт основанных на National Semiconductor 8390 чипе; они стали известными как серия Becker драйверов. Имеются также драйвера для пары изделий для D-Link, среди них D-Link адаптер, который предлагает доступ к Ethernet через паралельный порт. Драйвер для этот был написан Bjrn Ekwall (bj0rn@blox.se). DEPCA драйвер был написан David C. Davies (davies@wanton.lkg.dec.com).



Установка файловой системы proc


Некоторые из инструментов конфигурации в Net-2 для связи с ядром используют файловую систему proc. proc -- интерфейс, разрешающий доступ к информации ядра времени выполнения через механизм похожий на файловую систему. Когда он установлен, Вы можете просматривать список его файлов и их содержание также как в любой другой файловой системе. Типичными представителями являются файл loadavg, который содержит среднее число загруженности системы и meminfo, который показывает текущее состояния памяти ядра и использование свопа. К этому, сетевой код добавляет сeтевую директорию. Она содержит ряд файлов, которые отображают состояние вещей типа ARP таблицы, TCP соединений, и таблиц маршрутизации. Большинство инструментов администрирования сети получают информацию из этих файлов.

Proc файловая система (или procfs) обычно устанавливается во время загрузки в /proc. Самый лучший метод состoит в том, чтобы добавить следующую строку в /etc/fstab:

# procfs mont point: none /proc proc defaults

И выполнить "mount /proc" в вашем /etc/rc скрипте.

Procfs в настоящее время отконфигурирован в большинстве ядер установленным по умолчанию. Если procfs нет в вашем ядре, Вы можете получить сообщение типа "mount: fs type procfs not supported by kernel". Тогда Вы должны будите повторно собрать ядро и ответить "да" когда вас спросят о поддержки procfs.



Установка getty


Если Вы хотите использовать последовательную линию, как dialin порт, Вы должны запустить процесс getty на этот порт. Однако, некоторые реализации getty не очень подходят для этого, так как Вы обычно хотите использовать последовательный порт для соединения 'в' и 'из'.Следовательно, вы должны удостовериться, чтобы использовать getty, который может использовать линию вместе с другими программами (типа uucico, или minicom). Одна из таких программ - это uugetty из getty ps пакета. Большинство дистрибутивов Linux-a имеет его; проверите наличие uugetty в каталоге /sbin. Другая программа, которую я знаю - mgetty (нап. Gert Doering-м), которая также поддерживает прием факсов. Вы можете найти последние версии этих программ на sunsite.unc.edu (там же есть и исходные тексты). Объяснение различий в способе входа в систему между uugetty и mgetty - вне компетенции этого небольшого раздела; для подробной информации обращайтесь пожалуйста к Serial HOWTO (Grag Hankins),а также кдокументации, которая сопровождает getty ps и mgetty.



Установка имени хоста


Большинство, если не все, сетевые приложения используют имя локального хоста, которое устанавливается к некоторому разумному значению. Чтобы установить имя хоста наберите

# hostname name

Существует общая практика использовать неквалифицированное имя хоста, то есть без указания названия области для него. Например, хосты в Виртуальной Пивоварне могли бы быть названы vale.vbrew.com, vlager.vbrew.com, и т.д.. Это их официальные, полностью квалифицированные имена области. Их локальные имена -- только первый компонент этого имени, типа vale. Однако, поскольку локальное имя часто используется для поиска IP адреса хоста, Вы должны удостоверится что resolver библиотека способна найти IP адрес данного хоста. Это обычно означает что Вы должны ввести имя в /etc/hosts ( см. ниже ).

Некоторые Люди предлагают использовать команду domainname, чтобы развить идею ядра относительно имени области к остающейся части FQDN. Таким образом, Вы могли бы комбинировать вывод от hostname и domainname чтобы получить снова FQDN. Однако, это в лучшем случае правильно на половину . domainname вообще используется чтобы устанавливать NIS область хоста, которая может полностью отличатся от DNS области, к которой ваш хост принадлежит. NIS описан в главе 11 ..



Установка NFS значения


4. Как мне объяснил Alan Cox: NFS спецификация требует сервер к потоку при каждой записи на диск прежде, чем он успевает вернуть подтверждение. Так как BSD ядра только способны к, установленным по размеру страницей, записям (4K), записанным по 4 куска по 1k каждый в bsd-based NFS, серверу получает в результате 4 операции записи по 4k каждый.

NFS значения (5) установлены таким же способом, как и обычные файловые системы установленны. Вы вызываете mount, используя следующий синтаксис:

# mount -t nfs nfs volume local dir options

Nfs значение дано как отдаленный хост: отдаленная директория. С тех пор как эта совокупность условных знаков является уникальной в NFS файловых системах, то Вы можете не учитывать nfs опцию -t.

Имеется ряд дополнительных опций, которые Вы можете точно определить установив над mounting NFS значение. Они могут также быть даны -o переключателем в командной строке, или в области опций /etc/fstab записей для значения. В обоих случаях, составные опции отделены друг от друга запятыми. Опции, точно определенные на командной строке всегда отменяют те, что были даны в файле fstab.

Типовая запись в /etc/fstab могла бы быть такой:

# volume mount point type options news:/usr/spool/news /usr/spool/news nfs timeo=14,intr

Этот значение может затем быть установлено при использовании

# mount news:/usr/spool/news

В отсутствии fstab записи, NFS устанавливает просмотр вызовов большинства uglier. Например, предположим, что Вы устанавливаете home каталоги Ваших пользователей из машины, называемой moonshot, которая использует заданный по умолчанию размер блока равный 4k для операции чтения - записи. Вы могли бы уменьшить размер блока до 2k, чтобы подойти под размер Linux(овских) датаграмм введя следующую команду:

# mount moonshot:/home /home -o rsize=2048,wsize=2048

5. Никто не говорит "файловая система", потому что здесь не существует подходящей файловой системы.

Список всех допустимых опций полностью описан в руководстве по Nfs(5), которая идет вместе с Rick Sladkey's NFS-aware mount tool, который может быть найден в Util-linux пакете Rik Faith). Следующее - незавершенный список тех, которые Вы возможно захотели бы использовать:


rsize=n и wsize=n - они точно определяют датаграмный размер, используемый NFS клиентурой при чтении и записи запросов, соответственно. В настоящее время они определенны по умолчанию - 1024 байтам, из-за предела на UDP размере датаграммы, описанном выше.

timeo=n - это устанавливает время (в десятках секунд), сколько NFS клиент будет ждать запрос, чтобы завершить работу. Значения по умолчанию - 0.7 секунды.

hard - точно маркирует этот объем как hard-mounted. Это включено по умолчанию.

soft - soft-mount драйвер ( противоположный hard-mounted).

intr - позволяет сигнализировать о том, что надо прервать NFS вызов. Полезно для прерывания выполнения, когда сервер не отвечает.

Кроме rsize и wsize, все эти опции обращаются к клиенту, если сервер стал временно недостижим. Они работают вместе следующим способом: всякий раз, когда клиент ппсылвет запрос к NFS серверу, он ожидает, что операция закончится после данного интервала (точно установленным в опции блокировки по времени). Если никакого подтверждения не получено внутри этого промежутка времени, то появится так называемая minor timeout (незначительная остановка по времени), и операция повторится, но уже с интервалом блокировки по времени вдвое большим. После достижения максимальной блокировки по времени - 60 секунд, происходит глобальная блокировка по времени.

По умолчанию, глобальная блокировка по времени заставит клиента напечатать сообщение на консоль и начинать все снова. В принципе это может продолжаться вечно. Значения, которые упрямо повторяют операцию до тех пор пока сервер не становится доступным, называются hard-mounted. В противоположность им, soft-mounted значения генерируют ошибку ввода - вывода для вызова процесс всякий раз, когда происходит глобальная блокировка по времени. Из-за того, что write-behind вводится буферным кэшем, то это условие ошибки не распространяется непосредственно на процесс прежде, чем это вызовет функцию записи 2 в следующий раз, так как программа никогда не сможет убедиться в том что операция записи к soft-mounted значению имела место вообще.



Поставили ли Вы hard- или soft-mount значение - это не только вопрос вкуса, но также и то, что Вы должны сделать с тем сортом информации, которую Вы хотите получить от этого значения. Например, если Вы устанавливаете ваши Х программы NFS, Вы конечно не хотели бы, чтобы ваш X сеанс шел бы "бешено" только потому, что кто -то привел сеть к останову, запустив семь копий xv в одно и тоже время, или скажем, вытащив Ethernet разъем на некоторый момент. Используя hard-mounting, Вы удостоверяетесь в том, что ваш компьютер будет ждать, пока не появится возможность заново восстановить контакт с вашим nfs-сервером. С другой стороны, non-critical данные, типа nfs-mounted news partititons или FTP врхив может быть также soft-mounted, так что это не повесит ваш сеанс в случае, если отдаленная машина должна стать временно "недостигаемой", или просто быть выключенной. Если ваша сетевая связь с сервером - flakey или проходит через программу маршрутизации, то Вы может также увеличивать начальную блокировку по времени, используя опцию timeo, или hard-mount значение, но позволяйте сигнализировать прерывание вызова NFS, так чтобы Вы могли прервать любой hanging file access.

Обычно, mountd daemon будет иным способом следить, которые каталоги были установлены, и какими хостами. Эта информация может быть отображена при использовании программы showmount, которая также включена в NFS пакет сервера. Linux mountd не делает этого.


Установка NIS Клиента с NYS


Через остаток от этой главы, мы опишем конфигурацию NIS клиента.

Ваш первый шаг должен быть - сообщить NYS который сервер использован для NIS обслуживания, устанавливая это в файле конфигурации /etc/yp.conf. Очень прост типовой файл для множества сети Winery's может выглядеть следующим образом:

# yp.conf - YP configuration for NYS library. # domainname winery server vbardolino

Первая формулировка сообщает всей NIS клиентуре, что они принадлежат к Winery NIS области. Если Вы упускаете эту линию, NYS использует название области, которой Вы приписывали вашу систему через команду domainname. Сервер формулировки называется NIS сервером. Конечно, IP адреса адресуются к vbardolino, и должны быть хостом в файле хоста; в качестве альтернативы, Вы можете использовать адрес IP непосредственно с формулировкой сервера.

В форме, показанной выше, команда сервера сообщает, чтобы NYS использовал именованный сервер любой NIS области которой может быть. Если, однако, Вы перемещаете вашу машину между различными NIS областями часто, то Вы возможно захотите сохранить информацию для отдельных областей в картотеке yp.conf. Вы можете иметь информацию относительно серверов для различных NIS областей в Yp.conf, прибавляя NIS название области к формулировке сервера. Для образца, Вы могли бы измен"типовой файл для портативной ЭВМ, чтобы это выглядило подобно этому:

# yp.conf - YP configuration for NYS library. # server vbardolino winery server vstout brewery

Это позволяет Вам выдать портативную ЭВМ в любой из двух областей,

просто при установке желательной NIS области при начальной загрузке введите команду названия.

После создания этого базисного файла конфигурации, и уверенности в том это - всемирно - читаемый, Вы запустить ваш первый критерий, чтобы проверить, можете ли Вы подсоединиться к вашему серверу. Удостоверитесь, что выбрано отображение вашего сервеа, подобно hosts.byname, и испытанию, чтобы восстановить, используя ypcat утилиту. Ypcat, подобно всем другим административным NIS инструментальным средствам, должен жить в /usr/sbin.


# ypcat hosts.byname 191.72.2.2 vbeaujolais vbeaujolais.linus.lxnet.org 191.72.2.3 vbardolino vbardolino.linus.lxnet.org 191.72.1.1 vlager vlager.linus.lxnet.org 191.72.2.1 vlager vlager.linus.lxnet.org 191.72.1.2 vstout vstout.linus.lxnet.org 191.72.1.3 vale vale.linus.lxnet.org 191.72.2.4 vchianti vchianti.linus.lxnet.org

Вывод, который Вы получаете, должен быть на подобие вышепоказанного. Если Вы получаете сообщение об ошибках взамен, которое говорит "Can't bind to server which serves domain" или что-нибудь на подобие, затем или NIS название области, которое не имеет сервер соответствия, определенный в yp.conf, или сервер - unreachable по некоторым причинам. В последнем случае, удостоверитесь в том, что ping множеству производится положительный результат, и что это действительно запу Вы можете проверить последний, используя rpcinfo, который должен произвести следующий вывод:

# rpcinfo -u serverhost ypserv program 100004 version 2 ready and waiting


Установка 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



Установка последовательных аппаратных средств


Ходят слухи, что где-то там существуют люди, которые имеют только один PC и не имеют денег на T1 Internet соединение. Чтобы получить свою ежедневную дозу новостей и почты, они полагаются на SLIP связь, UUCP сети, и системы информационных табло (BBS), которые используют телефонные сети.

Эта глава написана для всех тех людей, кто полагается на модемы. Однако, существует большое количество деталей, в которые мы не будем вдаваться, например как конфигурировать ваш модем. Все эти темы будут охвачены в создающемся Serial HOWTO Greg Hankins, который регулярно отправляется по почте к comp.os.linux.announce.