Настройка Leafnode
Настройка Leafnode
Настройка пакета Leafnode сводится к настройке трех программ: leafnode, fetchnews и texpire. Опции, управляющие работой всех трех программ, содержатся в одном конфигурационном файле, но это не мешает настраивать каждую программу независимо от других. Если пакет Leafnode поставлялся в составе системы Linux, вам придется внести в конфигурационный файл лишь незначительные изменения.
Общие установки
Основной конфигурационный файл Leafnode называется config; обычно он хранится в файле /etc/leafnode. Строки данного файла, содержащие комментарии, начинаются с символа #. Помимо комментариев в конфигурационном файле находятся записи, представленные в следующем виде:
опция = значение
Минимальная конфигурация Leafnode предполагает наличие лишь двух опций: server и expire. Остальные опции необязательны; настраивая Leafnode, вы можете принять для них значения, заданные по умолчанию. Наиболее важные опции, присутствующие в файле config, описаны ниже.
• server. Данная опция задает имя внешнего сервера, предоставляющего материалы групп, например server = news.abigisp.net. Задавая несколько опций server, вы можете организовать получение материалов групп с нескольких серверов.
• expire. Эта опция указывает время (количество дней), по истечении которого сообщения будут удалены.
• username. Если внешний сервер требует указывать имя пользователя, его можно задать посредством данной опции.
• password. Если внешний сервер требует ввода пароля, эта опция позволяет задать его.
Внимание
Следует заметить, что пароль хранится в незашифрованном виде. По умолчанию файл config доступен только пользователю root, поэтому опасность того, что пароль будет похищен и использован для незаконного доступа к серверу, относительно невелика. Однако по сети этот пароль также передается в незакодированном виде, поэтому его не следует использовать для других целей.
• port. Большинство серверов новостей использует по умолчанию порт 119. Данная опция позволяет вам указать другой порт.
• nodesc. Как правило, серверы новостей предоставляют описания групп, однако некоторые серверы не обеспечивают такой возможности. Наилучшим образом Leafnode работает в том случае, если в конфигурационном файле указана опция nodesc = 1.
• timeout. При соединении с сервером новостей программа fetchnews обычно выжидает десять секунд, а затем прекращает попытки. Данная опция позволяет изменить значение тайм-аута.
• groupexpire имя_группы. Если вы хотите задать для разных групп различное время хранения сообщений, вы можете воспользоваться этой опцией. При указании имени группы можно использовать символ групповой операции. Например, все группы категории comp.os.linux задаются с помощью значения comp.os.linux.*.
• maxfetch. С помощью данной опции Leafnode позволяет ограничить число новых сообщений, копируемых с внешнего сервера. Не следует задавать слишком малое значение опции maxfetch, так как в этом случае Leafnode не сможет скопировать все сообщения группы. Старые сообщения будут вытесняться новыми, и в результате пользователь не получит их.
• initialfetch. Когда пользователь начинает работать с новой группой, копирование всех ее материалов может занять много времени. Опция initialfetch позволяет ограничить число сообщений новой группы, которые могут быть скопированы с внешнего сервера.
• delaybody. По умолчанию Leafnode копирует с внешнего сервера как заголовки, так и тело сообщений. Число сообщений может быть ограничено с помощью maxfetch и других опций. Leafnode может также работать и в другом режиме — копировать только заголовки сообщений. В этом случае тело сообщения будет скопировано лишь в том случае, если пользователь активизирует соответствующий заголовок в программе просмотра. После щелчка на заголовке сообщения оно помечается для копирования, и тело сообщения доставляется при следующем сеансе получения данных. Если вы зададите значение 1 опции delaybody, пользователь будет получать тело выбранного сообщения с задержкой, но при этом уменьшится внешний трафик.
• maxcrosspost. Данная опция предназначена для борьбы со спамом. Если одно сообщение направлено в несколько групп, причем число групп превышает значение опции maxcrosspost, это сообщение удаляется. По умолчанию количество групп, в которые может быть передано одно и то же сообщение, не ограничено.
• maxage. Если сервер новостей сконфигурирован неправильно, получаемые сообщения будут снова отправляться в Usenet, увеличивая тем самым трафик в сети. Данная опция указывает Leafnode на то, что сообщения, с момента создания которых прошло время больше указанного, должны игнорироваться. По умолчанию опция maxage не используется.
• maxlines. Если в конфигурационном файле задана опция maxlines, сообщения, содержащие большее число строк, чем указано в качестве значения данной опции, должны игнорироваться. По умолчанию это ограничение не используется.
• minlines. Если в конфигурационном файле задана опция minlines, сообщения, содержащие меньшее число строк, чем указано в качестве значения данной опции, должны игнорироваться. По умолчанию эта опция не используется.
• maxbytes. С помощью данной опции вы можете запретить копирование сообщений, размер которых в байтах превышает значение данной опции. По умолчанию данная опция не используется.
• timeout_short. По умолчанию Leafnode продолжает получать сообщения в течение двух дней после единичного обращения к группе. Данный параметр позволяет переопределить значение по умолчанию.
• timeout_long. По умолчанию Leafnode продолжает получать сообщения в течение семи дней после окончания работы с группой. Данный параметр позволяет изменить значение по умолчанию.
• timeout_active. Leafnode периодически обновляет список групп, предоставляемых внешним сервером. Данный параметр указывает на то, как часто должно проводиться такое обновление. По умолчанию список обновляется каждые 90 дней.
• filterfile. Значением данной опции является путь к файлу, выполняющему фильтрацию. (Вопросы фильтрации сообщений будут рассмотрены ниже в этой главе.) По умолчанию фильтрация не производится.
• hostname. Некоторые программы просмотра новостей не устанавливают идентификатор создаваемых сообщений. В этом случае идентификатор устанавливает Leafnode, задавая имя компьютера, на котором выполняется данный пакет. Если вы хотите, чтобы в состав сообщений включалось другое имя, вы должны указать его с помощью данной опции.
Перечисленные выше опции имеют отношение ко всем трем основным программам Leafnode: leafnode, fetchnews и texpire. Несмотря на то что все три программы используют один и тот же конфигурационный файл, они запускаются по-разному.
Запуск программы 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.
Получение материалов групп
При каждом запуске программы 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.