Doc /

Configurer INN (2017)

Attention, version périmée. En 2022, voir Configure the INN nntp server (2021/2022) pour la version 2021/2022 (en anglais).

Après mailman, il me faut configurer INN, le serveur de news GNU.

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

Interfaces web (non testées)

http://www.newsreaders.com/web/software.html

En résumé

Documentation

Installation

openSUSE permet des installations simples. Aller dans YaST, choisir inn, accepter... installe inn et toutes ses dépendances et configure le système de façon basique.

Il manque dans les dépendances perl-MIME-tools qu'il faut donc penser à rajouter.

Il faut ensuite ouvrir le pare feu sur le port 119.

Par contre il est parfois difficile de trouver où sont parqués les fichiers. La doc de INN demande bien que les fichiers soient regroupés, la plupart des distributions les éparpillent... openSUSE n'est pas en reste.

On trouve donc les fichiers dans:

/etc/news (aka ~news, le home de l'usager "news");
/usr/lib/news (spécialement bin, où se trouvent les outils, mais aussi de la doc);
/usr/share/doc/packages/inn;
/var/log/news;
/var/spool/news;

Il me parait très utile de rajouter dans le compte news des liens vers ces répertoires:

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

Pour ne pas avoir à chercher

Configuration

Il faut d'abord rendre accessible le port réservé aux news: le port 119. Donc l'ouvrir dans le pare feu du serveur et le transmettre (masquerade) avec le pare feu de la passerelle s'il y a lieu.

Il faut ensuite rendre les groupes accessibles depuis l'univers. Pour ca il faut aller dans ~news ("su news" depuis root, par exemple, puis "cd"), et ajouter ces lignes au fichier readers.conf (si je comprends bien ça veut dire que tous les utilisateurs venu de l'extérieur pourront lire tous les groupes:

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

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

Modifier aussi inn.conf pour mettre le nom de votre organisation.

Les commandes utiles pour vérifier sont "/usr/lib/news/bin/ctlinnd mode", "/usr/lib/news/bin/ctlinnd checkfile" et autres. Dans le manuel de ctlinnd, quand il est demandé "reason", ca veut dire qu'il faut taper un texte expliquant la raison de la modification sur la liste de commande, entre "". C'est sûrement loggé.

Pour que ça marche il faut que INN soit démarré (voir plus bas).

Il peut être utile de rajouter les noms de domaine dans le fichier inn.conf - en fait la deuxième fois je ne l'ai pas fait et ça semble marcher...

Créer un groupe

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

par exemple (comme utilisateur "news").

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

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

My own Mailman doc

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)