Doc /

Configure the INN nntp server

< Installing Apache2 (2021) | Configuring a small home server in 2021 with openSUSE Leap 15.3

INN is the GNU nntp server it's a standalone application, that is it do not need an http server like Apache.

C'est fait. Ca m'a quand même pris la journée :-)

Summary

Documentation

Installation

openSUSE allows simple installation. Go to Yast, software, search for "InternetNews" and tick inn then OK... You get the basic setup.

INN is installed as user "news"

news:[...]:News system:/etc/news:/sbin/nologin

So it's an user, but nobody can log in this account, and the account is in /etc. At some time in the INN use, you may have to work as "news" user. It's not as easy as one could think, but there is a runaroud: if you are root on your server, you can type "sudo -u news -s /bin/bash" and like this get a bash session as user news.

It's sometime difficult to find where the files are stored, every distribution have it's own places.

For openSUSE, files are in:

/etc/news (aka ~news, home of user "news" "news"); you get in with "cd ~news".
/usr/lib/news (specially bin, where are tools and doc);
/usr/share/doc/packages/inn;
/var/log/news;
/var/spool/news;

It may be useful to add in the ~news folder these links:

ln -s /var/spool/news spool
ln -s /var/log/news logs
ln -s /usr/lib/news/bin bin

To find them more easily and make command prefixes simpler.

Configuration

First thing to do is open the firewall 119 port and add a route from the gateway if any.

Then you have to make your groups available from the universe. So, go as user news, then add the following lines to the file readers.conf. It may be a good idea to paste this before the "abusers" line if ever you need to protect you from such bad guy.

auth "remote" {
    hosts: "*"
    default: "<remote>"
}

access "remote" {
    users: "<remote>"
    newsgroups: "*"
    access: RP
}

Change also inn.conf to add your name.

To check the install, do "/usr/lib/news/bin/ctlinnd mode", "/usr/lib/news/bin/ctlinnd checkfile" and others. If you are asked to give "reason", type some words to identify the change.

You have to start INN for these commands to work.

You may add your domain name in the inn.conf file, but I'm not sure if it's mandatory

Create your first group

For example, as user news, type:

 /usr/lib/news/bin/ctlinnd newgroup test

En of writing october 10, 2021

Passerelle vers les mails

On peut avoir les articles publiés sur les news envoyés vers une liste de discussion, et réciproquement.

Pour aller de la liste vers les news (mailman)

Avec mailman, c'est très simple, ça se fait dans l'interface web:

My own Mailman doc

Sympa

https://www.sympa.org/faq/tips_and_howto

Mailing lists and newsgroups.

These methods work with INN. They can work with others NNTP servers as well but I have only used INN.

The mailing list manager can be SYMPA, or any other system.

For all examples, we use a mailing list mylist@mylistserver.org and a NNTP server news.mydomain.org news.mydomain MUST accept email. How can I have a mailing list archive on a news group ?

Create a newsgroup, eg local.ml.mylist. Add a new subscriber to the mailing list. Its mail address must be handled by news.mydomain.org. You can use mylist.ml@news.mydomain.org. Use the mailpost program (shipped with inn) to established the gateway. Create an alias in the MTA of news.mydomain :

mylist.ml: "| /path/to/mailpost local.ml.mylist"

When a mail is sent to the list, mylist.ml@news.mydomain.org will receive it. And with mailpost, it will be posted on the newsgroup. How can I have have a bilateral association with list and newsgroup

It's quite simple : mark the group as moderated and set the moderation address to the mailing list address (mylist@mylistserver.org). Change the mailpost alias using the -a flag of mailpost (the -a flag marks the message as accepted by a moderator):

mylist.ml: "| /path/to/mailpost -a mylist@mylistserver.org local.ml.mylist"

Then, when a message is sent to the list, it is approved by the moderator and then posted. When a message is directly posted, it's sent to the moderator (which is the whole mailing list). As other messages on the list, it's approved and posted.

This last method can be usefull to create a complete message system : mail, news and web interfaces can be used to read and send messages.

Pour aller des groups de news vers la liste

La doc est en grande partie là: https://www.eyrie.org/~eagle/software/inn/docs-2.6/news2mail.html, il faut éditer le fichier newsfeeds

 news2mail!:!*:Ac,Tc,Wn*:<pathbin>/news2mail

est à prendre tel que, juste "<pathbin>" est pour nous /usr/lib/news/bin/, le chemin des exécutables de INN.

 list-big-red-ants/lists.ucsd.edu:!*,rec.pets.red-ants:Ap,Tm:news2mail!

est un peu plus difficile à comprendre. "list-big-red-ants/lists.ucsd.edu" est le nom de la liste dans mailman, "rec.pets.red-ants" est le nom du forum qui doit être chaîné à la liste. Pour le CULTe les deux sont "linux-31".

Il faut aussi ajouter dans "~news/news2mail.cf"

 # Newsfeeds-name      List-to-address
   nom_de_la_liste     Nom_du_groupe

pour nous:

 linux-31 linux-31

Nettoyage - cronjobs

Il faut mettre en place des taches cron pour nettoyer les archives et différentes taches. Avec le compte "news",

 crontab -e
0 3 * * * /usr/lib/news/bin/news.daily expireover lowmark
0,10,20,30,40,50 * * * * /usr/lib/news/bin//nntpsend

Lancer inn et le rendre permanent

Pour lancer inn:

 systemctl start inn.service

Pour le rendre permanent, le mieux est d'aller dans YaST, niveaux d'exécution, et rendre actif inn.

Mise au point

Les logs de inn sont dans /var/log/news/.

Côté inn, sans doute à cause de l'arrêt prolongé, la plongée dans les logs m'a permis de voir que certains répertoires manquaient ainsi que certaines dépendances. Inutile de dire lesquelles, ca aura changé le temps que vous lisiez ça. J'ai dû aussi effacer /var/spool/news/tests, les mails en panne dans ce répertoire bloquaient tout. un "rm" a relancé la machine.

En fait il faut réinstaller INN avec YaST, puis le relancer avec

 systemctl restart inn.service

Controlchan

J'avais une erreur avec controlchan. J'ai trouvé ca dans la page de man ici:

Controlchan tries to report all log messages through syslog(3), unless connected to an interactive terminal. To enable syslog(3)'ing for versions of Perl prior to 5.6.0, you will need to have run h2ph on your system include files at some point (this is required to make Sys::Syslog work). If you have not done so, do this:

 cd /usr/include h2ph * sys/*

J'ai effacé /var/log/news/news.notice*

redémarré inn, et le news ont l'air de remarcher (symptôme: le groupe test marchait, mais pas le groupe linux-31)

Modération

Il n'y a pas grand chose de prévu dans le genre, on doit pouvoir effacer un post avec

 ctlinn cancel <id du message>

on trouve l'id dans le message et c'est en mode console sur le serveur...

< Installing Apache2 (2021) | Configuring a small home server in 2021 with openSUSE Leap 15.3