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

On this page... (hide)

  1.   1.  Interfaces web (non testées)
  2.   2.  En résumé
    1.   2.1  Documentation
    2.   2.2  Installation
    3.   2.3  Configuration
    4.   2.4  Créer un groupe
    5.   2.5  Passerelle vers les mails
    6.   2.6  Nettoyage - cronjobs
    7.   2.7  Lancer inn et le rendre permanent
  3.   3.  Mise au point
    1.   3.1  Controlchan
  4.   4.  Modération

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

1.  Interfaces web (non testées)

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

2.  En résumé

2.1  Documentation

2.2  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

2.3  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...

2.4  Créer un groupe

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

par exemple (comme utilisateur "news").

2.5  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

2.6  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

2.7  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.

3.  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

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

4.  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...