Информационные технологииStfw.Ru 🔍

Возможности Leafnode

🕛 08.07.2009, 11:09
Подобно INN, функционирование продукта Leafnode обеспечивает несколько взаимодействующих между собой программ. Наиболее важные из них перечислены ниже.
- leafnode. Программа, реализующая серверNNTP, Она запускается посредством суперсервера и обеспечивает взаимодействие с программой просмотра новостей, выполняющейся на том же или на другом компьютере.
- fetchnews. Программа, отвечающая за получение групп новостей с внешнего сервера. Для того чтобы периодически получать требуемые материалы, вы можете запускать данную программу с помощью инструмента сгоп. При необходимости fetchnews может быть вызвана вручную или из сценария, устанавливающего РРР-соединение.
- texpire. Подобно другим серверам новостей, Leafnode хранит сообщения групп в подкаталогах каталога /var/spool/news. Чтобы диск не переполнялся, приходится периодически удалять старые сообщения. Эту задачу решает программа texpire. Обычно она периодически запускается с помощью сгоп,
- newsq. Данная программа отображает сведения о сообщениях, отправленных в группы локальными пользователями, но еще не переданных на внешний сервер.
Leafnode осуществляет динамическую загрузку материалов групп. Если пользователь предпринимает попытку работы с группой, то при следующем запуске fetchnews материалы этой группы копируются с внешнего сервера. Если Leafnode обнаруживает, что в течение определенного периода времени ни один из пользователей не работал с этой группой, копирование материалов прекращается. Таким образом, у пользователей создается впечатление, что локальный сервер новостей поддерживает все группы, хотя на самом деле эту работу выполняет внешний сервер. Подобный подход к доставке данных приводит к тому, что при работе с новой группой сообщения поступают к пользователю с некоторой задержкой.
Одна из особенностей программы Leafnode состоит в том, что при ее использовании не требуется настройка для работы с источником новостей. Leafnode (если быть точным, программа fetchnews) взаимодействует с внешним сервером как обычная программа просмотра новостей. Благодаря этому можно организовать работу Leafnode с любым сервером новостей, например, сервером, расположенным на компьютере провайдера. С одной стороны, Leafnode потребляет больше ресурсов, чем обычная программа просмотра новостей, но, с другой стороны, она экономит ресурсы. Получение материалов обычной группы не занимает много времени и может осуществляться в течение одного сеанса связи с провайдером по протоколу РРР. Чтобы пользователь мог работать с группой, обычная программа просмотра новостей должна поддерживать постоянное соединение с внешним сервером. Если Internet-услуги предоставляются на условиях поминутной оплаты, Leafnode, безусловно, экономит ресурсы. В то же время Leafnode копирует все сообщения группы, даже те, которыми не заинтересуется ни один локальный пользователь. Но если с Leafnode работают несколько пользователей, которые интересуются приблизительно одинаковым набором материалов групп, общий объем переданной информации получается меньше, чем если бы каждая клиентская программа непосредственно взаимодействовала с внешним сервером.
В начале 2002 г. последней версией Leafnode была версия 1.9.19. Следующая версия (2.0) в это время находилась в стадии разработки. В версии 2.0 планируется реализовать поддержку локальных групп новостей. В версии 1.9.xтакая возможность отсутствует.
Важно помнить, что продукт Leafnode разрабатывался для небольших узлов. Масштабируемость данного пакета ограничена, поэтому при обслуживании большого количества пользователей и поддержке большого числа групп новостей производительность Leafnode резко снижается. Наилучшим образом данный пакет обслуживает 20-25 пользователей. Если большая нагрузка приводит к снижению эффективности работы Leafnode, целесообразно рассмотреть возможность перехода к использованию INN или другого полнофункционального сервера новостей.
Еще одна проблема, возникающая при работе с Leafnode, состоит в том, что данный продукт игнорирует ошибки в сообщениях. В результате в группе могут появиться статьи, которые никогда не посылали в Usenet, а существующие сообщения могут быть доставлены пользователям в искаженном виде. Специальная настройка f etchnews позволят частично решить данную проблему, но при этом, если внешний сервер работает ненадежно, некоторые сообщения будут утеряны.
Настройка Leafnode
Настройка пакета Leafnode сводится к настройке трех программ: leafnode, f etchnews и texpire. Опции, управляющие работой всех трех программ, содержатся в одном конфигурационном файле, но это не мешает настраивать каждую программу независимо от других. Если пакет Leafnode поставлялся в составе системы Linux, вам придется внести в конфигурационный файл лишь незначительные изменения.
Общие установки
Основной конфигурационный файл Leafnode называется config; обычно он хранится в файле /etc/leafnode. Строки данного файла, содержащие комментарии, начинаются с символа #. Помимо комментариев в конфигурационном файле находятся записи, представленные в следующем виде:
опция - значение
Минимальная конфигурация Leafnode предполагает наличие лишь двух опций: server и expire. Остальные опции необязательны; настраивая Leafnode, вы можете принять для них значения, заданные по умолчанию. Наиболее важные опции, присутствующие в файле con fig, описаны ниже.
- server. Данная опция задает имя внешнего сервера, предоставляющего материалы групп, например server = news.abigisp.net. Задавая несколько опций server, вы можете организовать получение материалов групп с нескольких серверов.
- expire. Эта опция указывает время (количество дней), по истечении которого сообщения будут удалены.
- username. Если внешний сервер требует указывать имя пользователя, его можно задать посредством данной опции.
- password. Если внешний сервер требует ввода пароля, эта опция позволяет задать его.
ВНИМАНИЕ Следует заметить, что пароль хранится в незашифрованном виде. По умолча-f нию файл conf ig доступен только пользователю root, поэтому опасность того, что пароль будет похищен и использован для незаконного доступа к серверу, относительно невелика. Однако по сети этот пароль также передается в незако-дированном виде, поэтому его не следует использовать для других целей.
- port. Большинство серверов новостей использует по умолчанию порт 119. Данная опция позволяет вам указать другой порт.
- nodesc. Как правило, серверы новостей предоставляют описания групп, однако некоторые серверы не обеспечивают такой возможности. Наилучшим образом Leafnode работает в том случае, если в конфигурационном файле указана опция nodesc - 1.
- timeout. При соединении с сервером новостей программа fetchnews обычно выжидает десять секунд, а затем прекращает попытки. Данная опция позволяет изменить значение тайм-аута.
- groupexpire имя_еруппы. Если вы хотите задать для разных групп различное время хранения сообщений, вы можете воспользоваться этой опцией. При указании имени группы можно использовать символ групповой операции. Например, все группы категории comp. os. linux задаются с помощью значения comp. os . linux. *.
- maxf etch. С помощью данной опции Leafnode позволяет ограничить число новых сообщений, копируемых с внешнего сервера. Не следует задавать слишком малое значение опции maxf etch, так как в этом случае Leafnode не сможет скопировать все сообщения группы. Старые сообщения будут вытесняться новыми, и в результате пользователь не получит их,
- initialfetch. Когда пользователь начинает работать с новой группой, копирование всех ее материалов может занять много времени. Опция initialfetch позволяет ограничить число сообщений новой группы, которые могут быть скопированы с внешнего сервера.

delaybody. По умолчанию Leafnode копирует с внешнего сервера как заголовки, так и тело сообщений. Число сообщений может быть ограничено с помощью maxfetch и других опций. Leafnode может также работать и в другом режиме -копировать только заголовки сообщений. В этом случае тело сообщения будет скопировано лишь в том случае, если пользователь активизирует соответствующий заголовок в программе просмотра. После щелчка на заголовке сообщения оно помечается для копирования, и тело сообщения доставляется при следующем сеансе получения данных. Если вы зададите значение 1 опции delaybody, пользователь будет получать тело выбранного сообщения с задержкой, но при этом уменьшится внешний трафик.
maxcrosspost. Данная опция предназначена для борьбы со спамом. Если одно сообщение направлено в несколько групп, причем число групп превышает значение опции maxcrosspost, это сообщение удаляется. По умолчанию количество групп, в которые может быть передано одно и то же сообщение, не ограничено.
maxage. Если сервер новостей сконфигурирован неправильно, получаемые сообщения будут снова отправляться в Usenet, увеличивая тем самым трафик в сети. Данная опция указывает Leafnode на то, что сообщения, с момента создания которых прошло время больше указанного, должны игнорироваться. По умолчанию опция maxage не используется.
maxlines. Если в конфигурационном файле задана опция maxlines, сообщения, содержащие большее число строк, чем указано в качестве значения данной опции, должны игнорироваться. По умолчанию это ограничение не используется.
minlines. Если в конфигурационном файле задана опциятХпИпез, сообщения, содержащие меньшее число строк, чем указано в качестве значения данной опции, должны игнорироваться. По умолчанию эта опция не используется.
maxbytes. С помощью данной опции вы можете запретить копирование сообщений, размер которых в байтах превышает значение данной опции. По умолчанию данная опция не используется.
timeout_short. По умолчанию Leafnode продолжает получать сообщения в течение двух дней после единичного обращения к группе. Данный параметр позволяет переопределить значение по умолчанию.
timeout_long, По умолчанию Leafnode продолжает получать сообщения в течение семи дней после окончания работы с группой. Данный параметр позволяет изменить значение по умолчанию.
timeout_active. Leafnode периодически обновляет список групп, предоставляемых внешним сервером. Данный параметр указывает на то, как часто должно проводиться такое обновление. По умолчанию список обновляется каждые 90 дней.
filterfile. Значением данной опции является путь к файлу, выполняющему фильтрацию. (Вопросы фильтрации сообщений будут рассмотрены ниже в этой главе.) По умолчанию фильтрация не производится.

- hostname. Некоторые программы просмотра новостей не устанавливают идентификатор создаваемых сообщений. В этом случае идентификатор устанавливает Leafnode, задавая имя компьютера, на котором выполняется данный пакет. Если вы хотите, чтобы в состав сообщений включалось другое имя, вы должны указать его с помощью данной опции.
Перечисленные выше опции имеют отношение ко всем трем основным программам Leafnode: leafnode, fetchnews и texpife. Несмотря на то что все три программы используют один и тот же конфигурационный файл, они запускаются по-разному.
Запуск программы leafnode
Как было сказано ранее, сервер leafnode запускается с помощью суперсервера inetd или xinetd. Ниже приведена соответствующая запись в конфигурационном файле inetd. conf.
nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/leafnode
В дистрибутивных пакетах, в которых используется суперсервер xinetd, обычно уже содержится файл, необходимый для запуска leafnode; он помещается в каталог /etc/xinetd. d. Независимо от того, используете ли вы inetd или xinetd, для того, чтобы сервер Leafnode смог начать обслуживание клиентов, вам надо перезапустить суперсервер. После того как вы сделаете это, программа leafnode будет отвечать на запросы клиентов так же, как INN или другой полнофункциональный сервер новостей.
ВНИМАНИЕ В конфигурационном файле Leafnode не предусмотрены опции контроля досту-! па. Для того чтобы управлять взаимодействием с компьютерами локальной сети и внешними узлами, вы можете установить соответствующую конфигурацию TCP Wrappers.
Получение материалов групп
При каждом запуске программы f etchnews материалы групп копируются с внешнего сервера; эта же программа отвечает за передачу на сервер сообщений, составленных вашими пользователями. (Для получения информации о сообщениях, ожидающих обработки, надо запустить программу newsq.) Чтобы это происходило, необходимо указать имя внешнего сервера в файле /etc/leafnode/config. Вероятнее всего, что при первом запуске f etchnews ее выполнение займет достаточно длительное время, так как программа должна скопировать с внешнего сервера список предоставляемых групп новостей.
При вызове программы f etchnews можно задавать описанные ниже опции.
- -v. Данная опция позволяет управлять выводом информации в процессе выполнения программы. Чем больше символов v вы укажете при вызове программы, тем подробнее она будет комментировать выполняемые ею действия. Максимальный объем информации выводится в том случае, когда указаны четыре символа v (-vvvv). Эта опция может использоваться в качестве инструмента диагностики в тех случаях, когда программа fetchnews выполняется не так, как вы того ожидаете.
Глава 12. Поддержка сервера новостей.
297
- -х число. Если вы встретились с проблемами при копировании материалов групп, вызов программы с указанием данной опции позволит скопировать сообщения с предшествующими номерами.
- -1. Как было сказано ранее,Leafnode позволяет получать материалы групп с различных серверов. Данная опция указывает на то, что данные должны быть скопированы только с первого сервера.
- -п. Данная опция сообщает о том, что сообщения групп, с которыми пользователи перестали работать, должны по-прежнему копироваться с сервера.
- -f. Если вы считаете, что список групп, предоставляемых внешним сервером, устарел, вы можете задать с помощью данной опции обновление списка. (По умолчанию программа автоматически копирует с сервера новый список групп один раз в 90 дней.) Для выполнения этой операции может потребоваться достаточно длительное время.
- -Р. Данная опция указывает программе f etchnews нато, что сообщения, составленные локальными пользователями, должны быть переданы на внешний сервер, но копировать с сервера материалы групп не следует.
СОВЕТ В обычных условиях, для того, чтобы пользователь увидел в составе группы пе-^ реданное им сообщение, необходимо дважды вызвать программу f etchnews. Чтобы новые сообщения стали доступны после очередного выполнения f etchnews, надо предварительно вызвать fetchnews с опцией -Р. В Leafh-ode 2.0 задержка при получении собственных сообщений не возникает, поэтому предварительный вызов fetchnewsне требуется.
Принимая меры для организации работы Leafnode, необходимо решить, каким способом следует вызывать программу f e t chn ews. Вы можете задать периодическое выполнение данной программы посредством инструмента сгоп либо включить вызов fetchnews в состав сценария, посредством которого устанавливается РРР-соединение (примером такого сценария является ppp-on-dialer, рассмотренный в главе 2). Вызов fetchnews посредством сгоп имеет смысл, если у вас есть постоянное соединение с Internet либо если вы хотите автоматически устанавливать соединение с Internet и получать данные с внешнего сервера новостей в то время, когда этот сервер наименее загружен, например рано утром. Ответить на вопрос о том, насколько часто следует вызывать программу fetchnews, можно лишь, зная потребности ваших пользователей и возможности внешнего сервера по предоставлению данных. Вызывая fetchnews посредством сценария установки РРР-соединения, вы предоставите вашим пользователям наиболее новые сообщения (насколько это позволяет график установления соединений с Internet).
Удаление старых сообщений
Программа texpire анализирует сообщения, хранящиеся на компьютере, и удаляет те из них, которые в соответствии с установками в файле /etc/leafnode/conf ig считаются устаревшими. Удаление старых сообщений должно проводиться регулярно, иначе жесткий диск компьютера переполнится. Как правило, программа texpire вызывается с помощью инструмента сгоп. В некоторых пакетах Leafnode предусмотрен специальный сценарий, который помещается в /etc/cron. daily или другой подобный каталог.

Если такого сценария нет, вам надо создать его самостоятельно или спланировать вызовы texpire с помощью утилиты crontab.
Принимая решение об удалении сообщений, программа texpire учитывает данные о потоках. (Потоком называется исходное сообщение и все ответы на него.) Сообщение удаляется только в том случае, если в течение времени, превышающего срок действия сообщения, не было обращений к потоку. Если кто-либо из пользователей недавно просматривал содержимое потока, к которому принадлежит сообщение, оно может храниться на компьютере дольше, чем это предусмотрено в конфигурационном файле.
Подобно fetchnews, при вызове texpire может быть указано от одной до четырех опций -v. Среди других опций следует особо отметить опцию -f. В обычных условиях, чтобы убедиться в том, что данные потока не просматривались, texpire анализирует время последнего обращения к файлам. Опция -f сообщает texpire о том, что эту информацию следует игнорировать. Дело в том, что многие программы-архиваторы, в частности tar, изменяют дату последнего доступа к архивируемым файлам. Если вы часто архивируете материалы групп новостей, создается неверное впечатление о том, что сообщения недавно просматривались. Избежать этого позволяет опция -f.
Фильтрация сообщений
Leafnode позволяет удалять сообщения, соответствующие определенным критериям. Решение об удалении принимается исходя из информации, содержащейся в заголовке сообщения. Предположим, например, что в статьях, получаемых от пользователя obnoxious@annoying.edu, постоянно встречаются высказывания, оскорбляющие ваших пользователей. Указанное имя присутствует в заголовке в качестве значения поля From. На основе этой информации Leafnode может "отфильтровать" сообщения данного пользователя. Для этого вам надо включить соответствующее выражение в файл /etc/leafnode/filters,содержащий правила фильтрации. Правила в файле /etc/leafnode/f iltersимеют вид регулярных выражений. Например, если вы хотите удалять сообщения, поступающие от пользователя obnoxious @annoying. edu, необходимое для этого выражение будет иметь следующий вид: From:.*obnoxious@annoying\.edu
Данное выражение начинается с символа А, за которым следует имя заголовка (в данном случае From:). Символы .*, используемые совместно, означают любое число произвольных символов. Строка obnoxious @ annoying. edu указывается непосредственно, но так как точка имеет в языке регулярных выражений специальное значение, перед ней указывается обратная косая черта (\).

ЗАМЕТКУ
Для фильтрации сообщений вам надо указать Leafnode расположение файлов фильтров. Для этого можно использовать опцию filterfile в файле /etc/ leafnode/ conf ig, о которой шла речь ранее в данной главе. Несмотря на то что фильтры обычно располагаются в каталоге /etc/leafnode/f ilters, вы можете указать любое имя файла и любой путь к нему.

Резюме
Серверы новостей потребляют значительные ресурсы. Для поддержки групп новостей Usenet необходимо ежедневно передавать большой объем данных, кроме того, эти данные приходится хранить в течение нескольких дней. Чтобы инсталлировать полнофункциональный сервер новостей, необходим отдельный компьютер с дисковым пространством в десятки и даже сотни гигабайт. Если ваши потребности более скромны, вы можете установить сервер новостей, не реализуя взаимодействие его с Usenet. С помощью такого сервера можно обеспечить работу нескольких локальных групп новостей и даже групп, доступных для всего мира. Как для поддержки Usenet в полном объеме, так и для организации локальных групп используется сервер INN, который может выполняться в среде Linux. Функционирование этого сервера обеспечивает несколько взаимодействующих друг с другом программ; для их настройки используется несколько конфигурационных файлов. С помощью этих файлов вы можете описывать группы новостей, которые должны поддерживаться на сервере, задавать политику взаимодействия с другими серверами и клиентами, а также определять прочие характеристики сервера.
Если число пользователей, которым необходим доступ к материалам групп новостей, невелико и если в круг их интересов попадает лишь небольшое число групп, с задачей обслуживания этих пользователей может справиться сервер с ограниченными функциональными возможностями. В качестве такого сервера можно использовать пакет Leafnode. Он копирует с внешнего сервера лишь материалы тех групп, которые интересуют локальных пользователей, и применяет для передачи сообщений подмножество протокола NNTP. Такой сервер хорошо подходит для небольших офисов и даже для домашнего использования. Leafnode и другие подобные продукты обладают важным преимуществом: они могут работать при отсутствии постоянного соединения с Internet. Во время сеанса связи с провайдером они копируют с внешнего сервера требуемые материалы и предоставляют пользователям возможность работать с группами новостей в автономном режиме.

Сетевые средства Linux   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉