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:
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)