свернуть

Настройка NNTP на примере inn2

Чаты, эхо-конференции, fido, nntp.. казалось бы это слова из забытого уже почти прошлого.

Но например nntpшки нашли новое применение.

В качестве внутренних корпоративных рассылок.

Разберем установку и конфигурирование одного из распространенных серверов nntp INN2.

Установка в debian/ubuntu/mint предельно проста

apt-get install inn

Также можно собрать из исходников (брать где то тут https://www.isc.org/software/inn‎), что также не составляет труда.

Из зависимостей необходим установленный Perl

Начальное конфигурирование всего сервера состоит в конфигурировании 2-х файлов

inn.conf, readers.conf

Конфиги лежат в /etc/news

Правим inn.conf:

organization: "My organization"

ovmethod: tradindexed

server: myserver.mydomain.com

artcutoff: XXX

(статьи, возраст которых больше XXX будут удаляться автоматически сервером)

bindaddress: all

(привязка на интерфейс, в случае с all на все)

sourceaddress: any

(адрес источника)

fromhost: myserver.mydomain.com

moderatormailer: admin@myserver.mydomain.com

(модерируемые группы)

status: 600

(запись статуса с указанным временным интервалом)

Теперь мучаем readers.conf, в нем мы можем задать права на чтение, постинг ньюсов для разных групп и адресов.

Все предельно просто, сначала описываем группу, потом ее права

auth "localhost" {

hosts: "localhost, 127.0.0.1, stdin"

default: ""

}

access "localhost" {

users: ""

newsgroups: "*"

access: RPA

}

Собственно доступ бывает R (чтение), A(доступ), P(post)

auth office {

auth: "ckpasswd -f /usr/local/news/etc/userpasswd"

(тут можно настроить авторизацию с помощью userpasswd, файл

userpasswd создаётся при помощи программы htpasswd /из пакета apache/

htpasswd -c userpasswd -u для первого пользователя, и

htpasswd userspasswd -u для всех последующих)

hosts: "192.168.0.0/24,10.51.1.0/24

(разрешаем только указанным диапазонам ip)

default: ""

}

или например так:

auth default {

auth: "ckpasswd -f /usr/local/news/etc/userpasswd"

hosts: "192.168.0.0/24,10.51.1.0/24,127.0.0.1"

default:

default-domain: mydomain.com

}

access "info" {

read: "blah.*"

post: "blahblah.*,new.blah.*"

}

(задаем разрешения на конференций blah.*(только чтение для пользователей прошедших авторизацию) и blahblah.* и new.blah.*

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

знак ! перед группой будет означать кроме этой конференции. * задает подгруппы и маску.

access "admin" {

users: "belka@*"

newsgroups: *

}

(юзер с компа belka может читать/постить во все группы конференции)

следующим этапом делаем:

service inn2 start|restart

для управления сервером пользуемся командой ctlinnd