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

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

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

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

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

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

Если вы хотите, чтобы сообщения, переданные вашими пользователями, достигали других узлов, тем более, если вы собираетесь предоставлять другим серверам материалы групп в полном объеме, вам надо соответствующим образом сконфигурировать ваш сервер новостей. Для этого необходимо отредактировать содержимое файла /etc/news/newsfeeds. В файле /etc/news/newsfeeds находятся записи, представленные в следующем формате:

идентификатор_узла:шаблон[,шаблон...]:флаг[, флаг...]:параметр

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

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

• шаблон. Шаблон определяет одну или несколько групп новостей. Если количество групп, поддерживаемых сервером, невелико, вы можете указывать имя каждой группы, в противном случае следует применять символ групповой операции (*). Например, comp.os.* определяет все группы в категории comp.os. Если перед шаблоном указан символ !, это означает, что материалы данных групп не должны передаваться на другой сервер; исключение составляют лишь сообщения, переданные одновременно в несколько групп. Аналогичный результат получается при использовании символа @, но при этом сообщения, переданные в несколько групп, также блокируются. Предположим, например, что вы задали в данном поле значение !comp.os.linux. Если сообщение направлено в группы comp.os.linux и comp.os.linux.hardware, оно появится лишь в составе группы comp.os.linux.hardware. Значение @comp.os.linux полностью запретит передачу данного сообщения. Сервер INN интерпретирует записи в файле newsfeeds последовательно одну за другой, поэтому если вы укажете comp.os.*, !comp.os.linux, INN разрешит передачу всех сообщений категории comp.os, за исключением группы !comp.os.linux. Изменив порядок следования записей на обратный, вы разрешите передачу всех групп, так как более общее выражение comp.os.* переопределит более конкретное выражение !comp.os.linux.

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

• параметр. Значение этого поля зависит от типа передаваемых данных. Обычно это имя файла, который содержит информацию, предназначенную для передачи на удаленный узел. В ряде случаев параметр не указывается. В файле newsfeeds, поставляемом в составе пакета, находится много закомментированных записей, которые могут быть использованы в качестве примеров.

Файл newsfeeds управляет созданием файла, который должен быть передан другому серверу. Информация, заданная в файле /etc/news/nntpsend.ctl, определяет порядок взаимодействия INN с этим сервером. Подобно newsfeeds, файл nntpsend.ctl содержит записи, состоящие из нескольких полей, разделенных двоеточиями. Формат записи приведен ниже.

идентификатор_узла: имя_узла: максимальный_размер: [параметры]

Значение в поле идентификатор_узла должно совпадать со значением, заданным в одноименном поле файла newsfeeds, а имя_узла — это реальное имя узла. Поле максимальный_размер позволяет ограничить объем данных, передаваемых в течение одного сеанса обмена; например, значение 2m ограничивает объем данных двумя мегабайтами. Последнее поле содержит необязательные параметры, которые могут передаваться программе innxmit, выполняющей реальную передачу данных. Сведения об этих параметрах можно найти в справочной системе.

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