Выбрать главу

nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/leafnode

В дистрибутивных пакетах, в которых используется суперсервер xinetd, обычно уже содержится файл, необходимый для запуска leafnode; он помещается в каталог /etc/xinetd.d. Независимо от того, используете ли вы inetd или xinetd, для того, чтобы сервер Leafnode смог начать обслуживание клиентов, вам надо перезапустить суперсервер. После того как вы сделаете это, программа leafnode будет отвечать на запросы клиентов так же, как INN или другой полнофункциональный сервер новостей.

Внимание

В конфигурационном файле Leafnode не предусмотрены опции контроля доступа. Для того чтобы управлять взаимодействием с компьютерами локальной сети и внешними узлами, вы можете установить соответствующую конфигурацию TCP Wrappers.

Получение материалов групп

При каждом запуске программы fetchnews материалы групп копируются с внешнего сервера; эта же программа отвечает за передачу на сервер сообщений, составленных вашими пользователями. (Для получения информации о сообщениях, ожидающих обработки, надо запустить программу newsq). Чтобы это происходило, необходимо указать имя внешнего сервера в файле /etc/leafnode/config. Вероятнее всего, что при первом запуске fetchnews ее выполнение займет достаточно длительное время, так как программа должна скопировать с внешнего сервера список предоставляемых групп новостей.

При вызове программы fetchnews можно задавать описанные ниже опции.

• -v. Данная опция позволяет управлять выводом информации в процессе выполнения программы. Чем больше символов v вы укажете при вызове программы, тем подробнее она будет комментировать выполняемые ею действия. Максимальный объем информации выводится в том случае, когда указаны четыре символа v (-vvvv). Эта опция может использоваться в качестве инструмента диагностики в тех случаях, когда программа fetchnews выполняется не так, как вы того ожидаете.

• число. Если вы встретились с проблемами при копировании материалов групп, вызов программы с указанием данной опции позволит скопировать сообщения с предшествующими номерами.

• -1. Как было сказано ранее, Leafnode позволяет получать материалы групп с различных серверов. Данная опция указывает на то, что данные должны быть скопированы только с первого сервера.

• -n. Данная опция сообщает о том, что сообщения групп, с которыми пользователи перестали работать, должны по-прежнему копироваться с сервера.

• -f. Если вы считаете, что список групп, предоставляемых внешним сервером, устарел, вы можете задать с помощью данной опции обновление списка. (По умолчанию программа автоматически копирует с сервера новый список групп один раз в 90 дней.) Для выполнения этой операции может потребоваться достаточно длительное время.

• -P. Данная опция указывает программе fetchnews на то, что сообщения, составленные локальными пользователями, должны быть переданы на внешний сервер, но копировать с сервера материалы групп не следует.

Совет

В обычных условиях, для того, чтобы пользователь увидел в составе группы переданное им сообщение, необходимо дважды вызвать программу fetchnews. Чтобы новые сообщения стали доступны после очередного выполнения fetchnews, надо предварительно вызвать fetchnews с опцией -P. В Leafnode 2.0 задержка при получении собственных сообщений не возникает, поэтому предварительный вызов fеtchnews не требуется.

Принимая меры для организации работы Leafnode, необходимо решить, каким способом следует вызывать программу fetchnews. Вы можете задать периодическое выполнение данной программы посредством инструмента либо включить вызов в состав сценария, посредством которого устанавливается PPP-соединение (примером такого сценария является ppp-on-dialer, рассмотренный в главе 2). Вызов fetchnews посредством cron имеет смысл, если у вас есть постоянное соединение с Internet либо если вы хотите автоматически устанавливать соединение с Internet и получать данные с внешнего сервера новостей в то время, когда этот сервер наименее загружен, например рано утром. Ответить на вопрос о том, насколько часто следует вызывать программу fetchnews, можно лишь, зная потребности ваших пользователей и возможности внешнего сервера по предоставлению данных. Вызывая fetchnews посредством сценария установки PPP-соединения вы предоставите вашим пользователям наиболее новые сообщения (насколько это позволяет график установления соединений с Internet).

Удаление старых сообщений

Программа texpire анализирует сообщения, хранящиеся на компьютере, и удаляет те из них, которые в соответствии с установками в файле /etc/leafnode/config считаются устаревшими. Удаление старых сообщений должно проводиться регулярно, иначе жесткий диск компьютера переполнится. Как правило, программа texpire вызывается с помощью инструмента cron. В некоторых пакетах Leafnode предусмотрен специальный сценарий, который помещается в /etc/cron.daily или другой подобный каталог. Если такого сценария нет, вам надо создать его самостоятельно или спланировать вызовы texpire с помощью утилиты crontab.

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

Подобно fetchnews, при вызове texpire может быть указано от одной до четырех опций -v. Среди других опций следует особо отметить опцию -f. В обычных условиях, чтобы убедиться в том, что данные потока не просматривались, texpire анализирует время последнего обращения к файлам. Опция -f сообщает texpire о том, что эту информацию следует игнорировать. Дело в том, что многие программы-архиваторы, в частности tar, изменяют дату последнего доступа к архивируемым файлам. Если вы часто архивируете материалы групп новостей, создается неверное впечатление о том, что сообщения недавно просматривались. Избежать этого позволяет опция -f.

Фильтрация сообщений

Leafnode позволяет удалять сообщения, соответствующие определенным критериям. Решение об удалении принимается исходя из информации, содержащейся в заголовке сообщения. Предположим, например, что в статьях, получаемых от пользователя obnoxious@annoying.com постоянно встречаются высказывания, оскорбляющие ваших пользователей. Указанное имя присутствует в заголовке в качестве значения поля From. На основе этой информации Leafnode может "отфильтровать" сообщения данного пользователя. Для этого вам надо включить соответствующее выражение в файл /etc/leafnode/filters, содержащий правила фильтрации. Правила в файле /etc/leafnode/filters имеют вид регулярных выражений. Например, если вы хотите удалять сообщения, поступающие от пользователя obnoxious@annoying.edu, необходимое для этого выражение будет иметь следующий вид:

^From:.*obnoxious@annoying\.edu

Данное выражение начинается с символа ^, за которым следует имя заголовка (в данном случае From:). Символы .*, используемые совместно, означают любое число произвольных символов. Строка obnoxious@annoying.edu указывается непосредственно, но так как точка имеет в языке регулярных выражений специальное значение, перед ней указывается обратная косая черта (\).