Сервер новостей INN

Материал из RSU WiKi
Перейти к: навигация, поиск
Tower of babel.png外國 language!
В статье используется несколько языков. Необходимо использовать один. Совсем неплохо, если это будет русский.

Содержание

Задачи

В задачи входило установить и настроить usenet-сервер INN на базе дистрибутива SuSE Linux.

Установка

В SLES установка пакета INN осуществляется через YAST. Скачать исходник можно по адресу: http://www.isc.org/index.pl?/sw/inn/

Описание конфигурационных файлов

Основополагающими для настройки news-сервера являются папки:

  • /etc/news
  • /var/lib/news

В первой находятся конфигурационные файлы, во второй - файл active, который содержит списки эхоконференций.

Итак, правим файл /etc/news/inn.conf:

mta: "/usr/sbin/sendmail -oi -oem %s" - оставляем по умолчанию, если только это не заведомо неверно
organization: "SAMPLE NEWS SERVER" - пишем название своей организации
pathnews: /usr/lib/news - путь к каталогу с установкой INN 
domain: example.com - полное доменное имя машины, на которую установлен INN
server: mail.example.com - имя хоста

Также необходимо проверить совпадение действительных путей и прописанных в разделе # Paths файла inn.conf

Следующим редактирум файл /etc/news/readers.conf. Этот файл отвечает за права пользователей INN - в нем указываются хосты или маски сетей, пользователи которых могут получать эхоконференции с данного новостного сервера:

auth "localhost" {
    hosts: "localhost, 127.0.0.1, stdin"
    default: "<localhost>"
} 
 
 auth "localnet" {
    hosts: "192.0.2.1/24"
    default: "<localnet>"
}
  
access "localhost" {
    users: "<localhost>"
    newsgroups: "*"
    access: RPA - права на "read/post ALL"
}

access "localnet" {
    users: "<localnet>"
    newsgroups: "*"
}

В файле /etc/news/incoming.conf указываются материнские news-сервера, от которых мы будем забирать внешнюю рассылку:

streaming:      true   \  
                        > здесь все нормально, меняем умолчания если только что-то не заведется. 
max-connections:8      /

peer ME {
  hostname: "localhost, 127.0.0.1" - обязательно для правильной работы сервера
}

peer news.example.net {
  hostname: "news.example.net" - имя материнского сервера новостей.
}

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

Конфигурация демона innfeed, отвечающего за обмен статьями с другими новостными серверами, находится в файле /etc/news/innfeed.conf:

peer news.example.net {
        ip-name: news.example.net               
        max-connections: 10
}

Обычно здесь указывается адрес нашего "фидера",- так достигается постоянная циркуляция статей в сети.

Если для доступа к удаленным серверам новостей, с которых мы планируем забирать статьи, нужен пароль, то это указывается в файле /etc/news/passwd.nntp:

##   Format:
##   <host>:<name>:<pass>[:<style>]
##   <host>          Host this line is for.
##   <name>          Name to use to authenticate with
##   <pass>          Password to send, after sending name
##   <style>         Optional authentication style, defaults to "authinfo"

news.example.net::

В данном случае для доступа к серверу пароль не нужен - поля name и pass остаются пустыми.

/etc/news/newsfeeds - здесь указываем, какие статьи отправлять нашему фидеру, а какие не стоит (начинаются с "!")

news.example.net\
     :!junk,!control*,!local*\
     :Tf,Wnm:

Файл /var/lib/news/active. Этот файл содержит список групп новостей, которые принимает локальный сервер. Все статьи, опубликованные в группы новостей, которые не указаны в файле active отвергаются локальным сервером новостей.

С этих строк должен начинаться любой active-файл:

control 0000000000 0000000001 y
junk 0000000000 0000000001 y

Получить список рассылки вашего фидера можно, присоединившись к нему по telnet на порт 119. В ответ на приветствие сервера введите команду list.

Запуск сервера

В SLES пишем: insserv inn. После этого управление сервером осуществляется командой rcinn [start|restart|stop|status]

Создание новостных групп

Active news groups are listed in the ~news/db/active file (could be located in /var/lib/news). Editing this file by hand is not recommended, because of the rather strict syntax.

You can use ctlinnd to create news groups, but only when INN is running. INN will not run unless there are news groups in the active file.

To solve this chicken and egg problem, create an active file with two mandatory groups:

 control 0000000000 0000000001 y
 junk 0000000000 0000000001 y

Also create active.times in the same directory:

touch active.times

Make sure this file is owned by user news and group news.

If INN was installed from a DEB or RPM packet, there may already be default active and active.times files.

Now when you start INN, you can add newsgroups with the ctlinnd command:

ctlinnd newgroup <group> <flags> <creator>

where:

<group>

   The name of the newsgroup. If the newsgroup already exists, this command will act as the changegroup command, changing the flags and/or the creator. 

<flags>

   Possible plags include:
   y 	Local posting is allowed
   n 	No local posting is allowed, only remote ones
   m 	The group is moderated and all postings must be approved
   j 	Articles in this group are not kept, but only passed on
   x 	Articles cannot be posted to this newsgroup

<creator>

   The name of the person creating the newsgroup. Can be omitted and will default to the newsmaster. 

If you want to create a local group that can be used for testing purposes, you would issue the following command:

ctlinnd newgroup local.testing y ben

This will create a newsgroup called “local.testing” which accepts local posting.

Full article can be found here: http://snow.nl/dist/htmlc/ch06s04.html

Лог

INN ведет лог событий. Основные файлы:

  • /var/log/news/news.notice
  • /var/log/news/news.crit
  • /var/log/news/news.err

Наиболее разрастающийся из них - news.notice. Cюда пишет innd о соединении с ним удаленных NNTP-хостов, демон nnrpd записывает сюда информацию об активности клиентов, в этом же файле информируют о своей работе программы ctlinnd, innxmit, rnews и др. Файл news.crit содержит сообщения о критических ошибках, требующих внимания от администратора сервера новостей. (Например, сервер INN не может открыть файл из-за неверных прав доступа; или здесь появится сообщение о гашении сервера с помощью ctlinnd и т.д.). Файл news.err содержит сообщения о фатальных ошибках сервера.

Всякое

Как быстро добавить группу в SLES 9:

su news
/usr/lib/news/bin/ctlinnd newgroup fido7.su.hardw.grounding m
exit
rcinn restart

См. также

Ссылки

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты