Чаты, эхо-конференции, 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