Cette page a pour but d’expliquer les processus d’installation et de configuration d’un serveur de nouvelles INN 2.7 sur un système Linux.
N’hésitez pas à remonter toute erreur ou incompréhension sur fr.comp.usenet.serveurs ou news.software.nntp si vous ne maîtrisez pas la langue de Molière.
Si certaines parties de ces explications vous semblent peu claires ou douteuses, préférez vous référer à la page de la documentation officielle du serveur de nouvelles INN (en anglais) dont la présente page s’est largement inspirée.
Cette page suppose que vous disposez d’un accès complet (root) à un ordinateur connecté à Internet et équipé d’un système d’exploitation Linux à jour. Notez toutefois que la plupart des commandes sont à exécuter sous l’utilisateur news.
Cette page vous expliquera comment installer un serveur INN utilisant un système de stockage principal tradspool auquel sera adjoint un tampon CNFS, utilisant innfeed comme vecteur d’échange entre serveurs et ayant pour systèmes de filtrage Cleanfeed et NoCeM.
Pour des raisons de clarté, les configurations des autres méthodes de stockage, de distribution ou de filtrage ne seront pas traitées ici. En effet, INN2 est tellement souple qu’un débutant devra se limiter dans les potentialités de ce programme un peu trop riche en fonctionnalités !
Cette page est le fruit d’un travail collectif, Doug Le Tough en a écrit une très grande partie, Marc Schaefer a continué, Julien Élie a expliqué les arcances d’INN2 et j’ai (yamo’) participé à toutes les étapes.
Actuellement la version de référence est hébergée par Doug Le Tough et il existe deux miroirs, un hébergé chez DV et le dernier sur pasdenom.info.
Les commandes à exécuter sont précédées du symbole $ lui même précédé du nom de l’utilisateur concerné. Lorsque l’utilisateur root est nécessaire, le prompt se terminera par #.
Exemple :
root# cp /mon/fichier /mon/nouveau/fichier
est une commande à exécuter en tant qu’administrateur (utilisateur root).
news ~$ cp /mon/fichier /mon/nouveau/fichier
est une commande à exécuter en tant qu’utilisateur news.
Le symbole $ ou # et tout ce qui le précède ne fait pas partie de la commande et ne doit pas être saisi.
La mise à jour d’un système est toujours une opération sensible. Avant d’exécuter les deux commandes suivantes, assurez-vous de la nécessité de cette action. Il est toutefois recommandé de planifier des mises à jour régulières ou lors d’annonces de sécurité de la distribution.
root# apt-get update && apt-get -u dist-upgrade
Lisez bien les messages d’erreur si tout à coup la mise à jour n’avait pas fonctionné.
Sur Debian, le gestionnaire de paquet facilite l’installation d’INN2 et la gestion des fichiers de configuration (il reste toutefois recommandé de sauvegarder les versions fonctionnelles comme référence ou pour utiliser la commande diff – ou carrément mettre l’ensemble du répertoire de configuration sous GIT) mais d’autres systèmes ont aussi leurs gestionnaires de paquets qu’il faudra privilégier pour installer INN2.
Pour ce faire, exécuter la commande suivante :
root# apt-get install inn2
Attention à bien installer le paquet inn2 et non pas le paquet inn qui est également proposé par Debian mais dont la configuration est bien différente.
D’autres paquets comme inn2-lfs, inn2-dev ne sont pas non plus nécessaires.
Toutefois, une collection de dépendances peut accompagner l’installation d’INN. Contentez-vous d’acquiescer à l’installation de ces dernières.
Voilà, c’est fait !
INN se configure à l’aide de plusieurs fichiers de configuration jouant chacun un rôle bien précis allant de la configuration de la réception à celle du filtrage des articles en passant par celle de leur stockage sans oublier leur distribution.
Malgré l’apparente complexité et l’enchevêtrement de ces fichiers, le système reste tout à fait accessible à celui qui s’en donne la peine.
Une liste des fichiers de configuration est disponible sur la page de la documentation officielle.
Sur un système Linux les fichiers de configuration sont
stockés dans le répertoire /etc/news/
et vous retrouverez
facilement les chemins d’accès au différents type de fichiers dans le
fichier de configuration principal d’INN
pathetc/inn.conf
. Veuillez quand-même vérifier si c’est
le cas pour votre système.
Exécutez la commande suivante pour visualiser la liste de ces différents chemins d’accès :
root# grep path /etc/news/inn.conf | grep -v \#
Vraisemblablement, vous devriez obtenir une liste ressemblant à celle-ci :
Variable | Valeur |
---|---|
pathhost |
server.example.net |
pathnews |
/usr/lib/news |
patharchive |
/var/spool/news/archive |
patharticles |
/var/spool/news/articles |
pathbin |
/usr/lib/news/bin |
pathcontrol |
/usr/lib/news/bin/control |
pathdb |
/var/lib/news |
pathetc |
/etc/news |
pathfilter |
/etc/news/filter |
pathhttp |
/var/www/inn |
pathincoming |
/var/spool/news/incoming |
pathlog |
/var/log/news |
pathoutgoing |
/var/spool/news/outgoing |
pathoverview |
/var/spool/news/overview |
pathrun |
/run/news |
pathspool |
/var/spool/news |
pathtmp |
/var/spool/news/incoming/tmp |
Sans être exhaustif, il vous faut savoir que le chemin vers les
fichiers de configuration est défini par la variable
pathetc
, que celui vers le répertoires de stockage des
articles par pathspool
, celui vers les bases de données par
pathdb
, celui des filtres par pathfilter
et
que celui vers les sous-programmes du serveur par
pathbin
.
Pas de panique, toutes ces notions seront expliquées au fur et à mesure des besoins de la configuration.
Cependant, afin d’éviter toute confusion, les noms des fichiers de configuration seront précédés de celui de leur répertoire.
Exemple :
La notation pathetc/incoming.conf
signifie
/etc/news/incoming.conf
.
N’hésitez pas à vous reporter à la liste des chemins de temps à autre pour vous assurer que vous éditez le bon fichier.
Par ailleurs, chacun des fichiers de configuration d’INN possède sa page de manuel dans laquelle vous trouverez une explication et bien souvent un exemple de l’utilisation de chacun des paramètres.
Ainsi, la commande suivante affichera la page de manuel du fichier de
configuration pathetc/cycbuff.conf
:
~$ man cycbuff.conf
Remarque : dans la liste donnée par la commande grep, vous aurez
peut-être aussi tlscapath
qui sert pour configurer le
NNTPS. Ceci n’est pas encore évoqué dans cette documentation.
La plupart des fichiers de configuration d’INN utilisent des expressions permettant de retrouver facilement des motifs dans des chaînes de caractères. Ces motifs sont comparables à ceux que l’on trouve généralement dans les shells des systèmes UNIX tels que Bash.
Dans la plupart des cas, ces motifs wildmat peuvent être mis en forme de liste dont les éléments sont séparés par une virgule. De cette manière, chaque motif composant cette liste est vérifié un par un et le dernier motif correspondant est alors utilisé (last win).
Ce principe est particulièrement utile pour appliquer un traitement à certains groupes de discussion tout en excluant certains autres de ce traitement.
Les principaux symboles sont :
Symbole | Signification |
---|---|
* |
tous |
! |
aucun |
@ |
et aucun |
Exemple :
*,!comp.*,comp.os.*
permettra de toucher tous les groupes (*
) sauf ceux de
comp.*
(!comp.*
) hormis s’ils sont situés dans
la branche comp.os.*
(comp.os.*
).
Toutefois, il faut bien comprendre que seul le dernier motif
applicable sera pris en considération (ici,
comp.os.*
).
Ainsi, dans notre exemple, les groupes situés dans d’autres branches
(sci
, talk
, soc
, …) ne seront pas
non plus touchés par cette expression bien qu’ils correspondent au
premier motif (*
).
Dans le cas d’une publication croisée entre un groupe de discussion
situé dans comp.os
et un groupe situé dans
comp.bugs
, le traitement associé à ce motif sera
applicable car au moins un des groupes y correspond.
Le symbole @
(poison) est particulier et employé sur un
nom de groupe seul il aura le même effet que le symbole
!
.
Quand il est employé sur une liste de groupes (cas des publications croisées), il permettra d’éviter que le traitement soit applicable y compris si un des groupes correspond au motif.
Exemple :
misc.*,!misc.bar
Si un article est publié à la fois sur misc.foo
et sur
misc.bar
, le traitement associé à cette règle sera appliqué
à cet article car l’un des groupes de destination de cet article
correspond à ce motif.
misc.*,@misc.bar
Si un article est publié à la fois sur misc.foo
et sur
misc.bar
, le traitement associé à cette règle ne sera pas
appliqué à cet article car un des groupes de destination est exclu par
ce motif (@misc.bar
). De la même manière un article publié
sur misc.bar
seul sera également exclu du traitement.
inn.conf
Le fichier principal de configuration d’INN est
pathetc/inn.conf
. Ce fichier contient quelques dizaines de
paramètres mais la plupart d’entre eux ayant déjà une valeur par défaut
satisfaisante, nous ne parlerons ici que des paramètres nécessaires à la
configuration basique.
allownewnews
Accepte une valeur booléenne (true
, 1
ou
encore on
pour une valeur positionnée à vrai et
false
, 0
ou encore off
pour une
valeur positionnée à faux).
Sa valeur par défaut est true
et permet à INN
d’accepter les demandes de lecture de nouvelles faites par certains
logiciels de lecture de nouvelles ne récupérant les articles que par
leur identifiant unique (et non pas par leur numéro).
Cette valeur pourra également être outrepassée par le paramétrage du
paramètre access
situé dans le fichier
pathetc/readers.conf
(voir plus bas).
Si vous souhaitez que des utilisateurs puissent envoyer des articles
depuis votre serveur (le contraire serait étonnant), laissez la valeur
par défaut (true
).
complaints
Accepte une chaîne de caractères qui sera utilisée pour renseigner le
champ Injection-Info
des entêtes de chaque article publié
depuis votre serveur. Une valeur typique est une adresse de courriel du
type abuse@example.com
.
hiscachesize
Ce paramètre permet de définir la taille du cache des fichiers
d’historique (fichiers history
). Le cache des historiques
permet d’augmenter significativement les performances de votre serveur.
Une valeur telle que 256
(valeur par défaut), exprimée en
kilo-octets, est un bon choix.
logipaddr
Accepte une valeur booléenne et permet de définir si l’adresse
IP (ou le nom qualifié s’il est renseigné dans le fichier
pathetc/incoming.conf
) de l’hôte distant depuis lequel vous
recevez des articles à publier. Dans notre contexte, cette valeur doit
être laissée à true
.
organization
Accepte une chaîne de caractères qui servira à renseigner le champ
Organization
des entêtes des articles publiés depuis votre
serveur dont ce champ ne serait pas déjà renseigné par son expéditeur.
Ce champ est totalement libre.
pathhost
Accepte une chaîne de caractères qui sera utilisée dans le champ
Path
des entêtes de tous les articles transitant par ou
publiés depuis votre serveur. Il est très vivement conseillé d’y mettre
le nom de domaine complètement qualifié (FQDN) de votre
serveur.
domain
Accepte une chaîne de caractères, vous pouvez y mettre votre nom de domaine.
Vous pouvez laisser les autres paramètres tels qu’ils vous sont fournis par le fichier par défaut.
newsfeeds
pathetc/newsfeeds
est le fichier grâce auquel vous
configurerez la manière dont seront distribués aux autres serveurs les
fichiers qui vous sont envoyés.
Ce fichier est organisé comme une série de feeds (les
connexions entre serveurs). Chacun de ces feeds est composé de
4 paramètres séparés par le symbole de ponctuation deux-points
(:
). Vous pouvez écrire un feed sur plusieurs
lignes à condition de le stipuler par un symbole \
qui
indiquera que la ligne suivante est une continuation de la ligne en
cours.
Il se doit d’être unique et, afin de faciliter la maintenance de
votre configuration, il vous est conseillé de le faire correspondre au
nom d’hôte du serveur distant correspondant. Ce nom peut optionnellement
être suivi d’un symbole /
précédant une liste
d’exclusion.
De cette manière si le nom du feed ou l’un des noms contenus
dans cette liste d’exclusion se trouve dans le path d’un
article, cet article ne sera pas envoyé à l’hôte distant puisque
logiquement considéré comme étant déjà passé par ce serveur. Cette liste
d’exclusion est particulièrement pratique lorsque un serveur indique un
nom différent de son nom de domaine dans le champ Path
des
articles qu’il envoie (voir le paramètre pathhost
dans le
fichier de configuration pathetc/inn.conf
).
Ce paramètre prend la forme d’un motif utilisant la syntaxe des
motifs wildmat. Ce paramètre peut occasionnellement être
accompagné d’une liste de distribution mais ce point ne sera pas évoqué
ici et bien que ces listes de distribution soient peu utilisées, si vous
désirez en savoir plus, veuillez vous référer à la page de manuel de
newsfeeds
(man newsfeeds
).
Ces drapeaux séparés par des virgules définissant le type de
feed dont il s’agit ainsi qu’un certain nombre d’autres
drapeaux dont la valeur et le nombre dépendent du type de feed
concerné. Il serait trop long d’expliquer l’ensemble de ces drapeaux et
leurs combinaisons. Le but de ce tutoriel étant de vous aider à monter
rapidement un serveur de nouvelles, seul les drapeaux nécessaires à la
configuration de base seront détaillés. Pour plus d’information sur ces
drapeaux, veuillez vous référer à la page du manuel de
newsfeed
(man newsfeed
).
Son usage dépend du type de drapeaux défini par le troisième
paramètre. Pour un feed de type fichier (drapeau
Tf
), il s’agira du nom du fichier dans lequel écrire. Pour
un feed de type funnel (drapeau Tm
), il
s’agira du nom du funnel (cette notion est expliquée plus bas)
à emprunter. Pour un feed de type canal (drapeau
Tc
), il s’agira du nom du programme à exécuter ainsi que la
référence des articles à traiter.
Passons maintenant au fichier lui-même.
L’entrée ME
est une entrée spéciale et nécessaire dont
l’utilité est double. C’est grâce à elle que vous déciderez la liste des
groupes à distribuer et quels groupes vous acceptez de recevoir.
ME:!*/!local,!collabra-internal::
Les valeurs par défaut de l’entrée ME
sont suffisantes
pour commencer.
Il nous faut maintenant définir un feed de sortie. Nous
considérerons que le serveur loin.ailleurs.com
est disposé
à recevoir nos messages et que nous les enverrons par le biais d’un
funnel.
Ainsi son entrée devient :
loin.ailleurs.com\
:*,!junk,@control,@control.*\
:Tm:innfeed!
Dans cet exemple, le feed loin.ailleurs.com
est
de type funnel (drapeau Tm
) et se chargera de
fournir tous les groupes disponibles sur le serveur à l’exception des
hiérarchies junk
(la poubelle) et control
à un
autre feed nommé innfeed!
.
Vous pouvez définir autant de feeds de ce type que vous avez de serveurs pairs et définir pour chacun d’eux les groupes que vous avez envie ou non de leur distribuer.
Nous devons maintenant définir innfeed!
.
Pour ce faire, enlevez les symboles #
en tête des lignes
suivantes :
innfeed!\
:!*\
:Tc,Wnm*:/usr/lib/news/bin/innfeed
Ce feed est de type canal (drapeau Tc
)
et utilisera le programme /usr/lib/news/bin/innfeed
à qui
sera passé en argument l’identifiant de chaque article (drapeau
n
) ainsi que le jeton de l’API de stockage (drapeau
m
).
Théoriquement, le programme /usr/lib/news/bin/innfeed
devrait correspondre à pathbin/innfeed
et l’utiliser permet
de distribuer un article immédiatement après qu’il a été accepté par
votre serveur. innfeed accepte un certain nombre de paramètres
qui ne seront pas détaillés ici (man innfeed
pour plus
d’information).
D’autres moyens de distribution existent. Veuillez vous référer à la
page de manuel de newsfeeds
pour plus de détails
(man newsfeeds
).
Enfin, à moins que vous ne vouliez honorer aucun message de contrôle,
vous devez impérativement avoir une entrée controlchan!
qui
les traitera spécifiquement.
controlchan!\
:!*,control,control.*,!control.cancel\
:AC,Tc,Wnsm:/usr/lib/news/bin/controlchan
innfeed.conf
Le fichier pathetc/innfeed.conf
vous permettra de
configurer innfeed pour chacun des peers que vous
venez de définir dans pathetc/newsfeeds
.
Typiquement les valeurs globales situées en début de fichier ont des
valeurs par défaut largement suffisantes, vous pouvez néanmoins adapter
les valeurs de certaines d’entre elles, notamment celles concernant les
fichiers de log (log-file
), la génération d’un fichier de
log en HTML (gen-html
et status-file
)
Ensuite il vous faudra définir un par un l’ensemble des serveurs distants vers lesquels vous souhaitez distribuer les articles que vous recevez. Pour chacun d’entre eux vous pouvez redéfinir chacun des paramètres globaux.
Pour un serveur loin.ailleurs.com
dont l’accès se fait
par le port TCP/443
et qui n’autorise au maximum 2
connexions, ajoutez le bloc suivant à la fin du fichier:
peer loin.ailleurs.com {
ip-name: loin.ailleurs.com
port-number: 443
max-connections: 2
streaming: true
}
Dans cet exemple nous paramétrons innfeed pour qu’il envoie
en mode stream les articles qu’il reçoit sur le port
TCP/443
du serveur distant loin.ailleurs.com
(et uniquement lui) en ne sollicitant que 2 connexions.
Vous pouvez créer autant de peers dont vous avez besoin et,
comme toujours, man innfeed.conf
pour plus d’information
;-) À chaque modification, il est conseillé de vérifier avec inncheck si
c’est correct. Si le serveur est déjà fonctionnel, l’application des
modifications se fait avec la commande suivante :
news ~$ ctlinnd reload newsfeeds 'message pour les logs'
incoming.conf
C’est dans le fichier pathetc/incoming.conf
que vous
définirez les serveurs autorisés à alimenter votre serveur et pour
chacun d’eux la liste des groupes qu’ils sont autorisés à vous
fournir.
peer loin.ailleurs.com {
patterns: "*,@local.*"
hostname: "loin.ailleurs.com, news.ailleurs.com"
}
Dans cet exemple nous autorisons le serveur
loin.ailleurs.com
ainsi que le serveur
news.ailleurs.com
à nous envoyer leurs articles dont seuls
les articles qui n’auront pas fait l’objet d’une publication croisée
avec l’un des groupes de la hiérarchie local.*
seront
acceptés.
Notez bien que cette restriction ne diminuera en rien le débit utilisé par votre serveur qui vous enverra malgré tous les articles que vous ne voulez pas recevoir, votre serveur se contentant de refuser de les enregistrer sur le disque.
Vous pouvez créer autant de peers que vous en avez besoin ou
même créer des groupes de peers (man incoming.conf
pour plus d’information).
Laissez les autres paramètres (streaming
et
max-connections
) à leur valeur par défaut.
Afin d’éviter tous problèmes il est vivement conseillé de ne PAS mettre d’espace entre les différents motifs wildmat du champ patterns.
cycbuff.conf
Une partie des articles de votre serveur sera stockée dans un fichier
particulier dont la traduction approximative pourrait être tampon
cyclique (cycbuff
).
L’intérêt de ces tampons cycliques réside dans le fait qu’ils occupent un espace disque fixe. Ainsi les articles qui y sont stockés ne le sont que jusqu’à ce que le tampon soit plein auquel cas les premiers articles sont écrasés par les nouveaux (FIFO).
Nous utiliserons donc un tampon cyclique pour l’ensemble des articles
envoyés au groupe fr.test
et nous le placerons dans
pathspool/cycbuff
et sa taille sera de 500 méga-octets.
Commencez par créer le répertoire pathspool/cycbuff
root# mkdir /var/spool/news/cycbuff
Assurons-nous maintenant que l’utilisateur news
pourra
bien écrire dans ce répertoire.
root# chown -R news:news /var/spool/news/cycbuff
root# chmod -R 775 /var/spool/news/cycbuff
Déclarez ensuite le tampon cyclique dans le fichier
pathetc/cycbuff.conf
.
cycbuff:TEST:/var/spool/news/cycbuff/test:512000
Ici nous déclarons un tampon cyclique nommé TEST
dont le
fichier est /var/spool/news/cycbuff/test
et dont la taille
est 500 Mo (512000
).
Nous avons également besoin d’un méta-tampon (que nous appellerons
M_TEST
) vers lequel nous dirigerons les articles qui sont
destinés à aller dans le tampon cyclique TEST
.
metacycbuff:M_TEST:TEST
Bien que ce ne soit pas le cas ici, un méta-tampon peut utiliser
plusieurs tampons cycliques. Par ailleurs, la longueur du nom
d’un méta-tampon (ici, M_TEST
) ne doit pas excéder huit
caractères. Pour en savoir plus à ce sujet, consultez la page
de manuel de cycbuff.conf
(man cycbuff.conf
).
Pour finir, ajoutez un symbole # en tête des lignes suivantes :
#cycbuff:ONE:/export/cycbuffs/one:512000
#cycbuff:TWO:/export/cycbuffs/two:512000
#cycbuff:THREE:/export/cycbuffs/three:512000
#metacycbuff:BIG:ONE,TWO:SEQUENTIAL
#metacycbuff:SMALL:THREE
storage.conf
Le fichier storage.conf
permet de définir la manière
dont seront stockés les articles que recevra le serveur.
Il existe plusieurs méthodes pour ce faire mais nous n’en utiliserons que deux:
CNFS qui correspond au type tampon cyclique que
nous avons défini dans cycbuff.conf
.
tradspool qui permet de stocker chaque article dans un fichier individuel, lui même stocké dans une arborescence de dossiers telle qu’on en trouve dans un système de fichiers traditionnel.
Pour qu’un article soit accepté par le serveur, il doit
impérativement rentrer dans l’une des classes de stockage qui seront
définies dans storage.conf
. Si l’article ne correspond à
aucune classe de stockage, il sera rejeté indépendamment des autres
paramètres situés dans les autres fichiers de configuration.
Une classe de stockage est définie par sept paramètres dont certains sont optionnels.
Commençons par créer la classe de stockage de type tradspool
vers laquelle nous allons rediriger tous les articles qui ne sont pas
publiés dans le groupe de discussions fr.test
.
method tradspool {
newsgroups: *,!fr.test
class: 0
}
Comme vous le voyez, cette classe de stockage est essentiellement
définie par : - Son type (ici tradspool) - La liste des groupes
qu’elle accepte. - Le paramètre class
qui spécifie son
numéro d’identifiant qui se doit d’être unique et compris en 0 et
255.
Nous avons maintenant besoin de déclarer la classe de stockage vers
laquelle nous allons rediriger les articles publiés dans le groupe de
discussions fr.test
.
method cnfs {
newsgroups: fr.test
class: 1
options: M_TEST
}
Rappelez-vous que nous avons décidé de stocker les articles à
destination de fr.test
dans un tampon cyclique et que nous
avons déclaré ce dernier dans le fichier
pathetc/cycbuff.conf
.
La classe de stockage correspondante sera donc de type
cnfs
et, de ce fait, réclame une indication du
méta-tampon qui devra être utilisé
(options: M_TEST
).
Vous trouverez dans la page de manuel de storage.conf
des explications détaillées qui vous permettront d’affiner les
paramètres en fonction de vos souhaits
(man storage.conf
).
expire.ctl
Vous définirez dans le fichier pathetc/expire.ctl
les
différentes politiques d’expiration des articles.
Les classes de stockage de type cnfs
n’ont, a priori,
pas besoin d’une politique d’expiration puisque lorsque le tampon
cyclique qui leur est associé est plein, celui-ci continue malgré tout
de se remplir en écrasant les articles les plus anciens.
Cependant, vous pouvez malgré tout faire expirer des articles
contenus dans un tampon cyclique avant que ceux-ci ne soient écrasés par
des articles plus récents. Pour cela, référez vous à la page du manuel
du fichier expire.ctl
(man expire.ctl
).
Le paramètre spécial /remember/
est obligatoirement
défini dans le fichier pathetc/expire.ctl
.
Il indique au serveur combien de temps doivent être gardés les identifiants d’articles après qu’il ont expirés.
En effet, il peut arriver que des articles expirés et effacés de votre serveur puissent vous être renvoyés par un autre serveur.
Afin de ne pas les stocker à nouveau, le serveur conserve les
identifiants des articles (message-id) un certain nombre de
jours défini par le paramètre /remember/
.
La valeur de ce paramètre doit toujours être supérieure à la valeur
du paramètre artcutoff
situé dans le fichier
pathetc/inn.conf
.
La valeur par défaut du paramètre artcutoff
est
10
(vous pouvez la laisser telle quelle) et signifie que
tout article daté d’au moins 10 jours sera rejeté par le serveur.
En toute logique, votre paramètre /remember/
devrait
ressembler à ceci :
/remember/:11
Il existe deux types de politiques d’expiration, l’une est basée sur les groupes, l’autre sur les classes de stockage.
Afin de gérer l’expiration par classe de stockage, il vous faudra
vérifier que le paramètre groupbaseexpiry
que vous
trouverez dans pathetc/inn.conf
a pour valeur
false
.
Dans le cas contraire, il vous faudra définir une politique
d’expiration par groupes de discussion exprimée avec wildmat.
Ce cas ne sera pas traité ici et vous êtes invité à lire la
documentation (man expire.ctl
).
Définissons maintenant la politique d’expiration des articles pour la
classe de stockage 0
vers laquelle seront redirigés
l’ensemble des articles qui ne sont pas destinés au groupe de discussion
fr.test
.
0:A:1:14:65
Ici la classe de stockage ayant pour identifiant 0
,
appliquera une politique de rétention des articles d’au moins un jour
(1
) et de quatorze jours au maximum (14
) sauf
pour les articles ayant un entête Expires
définissant un
délai supérieur auquel cas ces articles seront gardés au maximum
soixante cinq jours (65
), y compris si le délai stipulé par
l’entête Expires
est supérieur.
Il existe d’autres manières de définir des politiques d’expiration.
Pour plus d’information à ce sujet, voyez la page du manuel du fichier
expire.ctl
(man expire ctl
).
readers.conf
À partir du moment où le paramètre noreader
situé dans
le fichier pathetc/inn.conf
a pour valeur
false
(valeur par défaut), toutes les connexions initiées
par des hôtes distants n’étant pas indiqués dans le fichier
pathetc/incoming.conf
ainsi que les connexions initiées par
des hôtes distants y étant stipulés mais envoyant la commande
MODE READER
sont gérées par le démon d’authentification
nnrpd.
Le fichier pathetc/readers.conf
sert à nnrpd
pour déterminer si une demande de lecture ou d’écriture sur le serveur
est autorisée ou non.
L’authentification se fera à partir d’un fichier contenant l’ensemble
des informations nécessaires (nom d’utilisateur et mot de passe). Pour
créer ce fichier nous utiliserons le programme
/usr/bin/htpasswd
.
Ce programme n’est pas fourni par le paquet inn2 et est installé sur votre système si vous y avez installé un serveur HTTP tel qu’Apache httpd ou lighthttpd.
Si vous ne souhaitez pas installer de serveur HTTP sur votre serveur, cet outil utilisable en ligne devrait vous être utile.
Qui qu’il en soit, ce fichier contiendra une ligne pour chacun des utilisateurs dont vous souhaitez autoriser l’accès.
news ~$ htpasswd -nbd toto sesame >> /var/lib/news/users
news ~$ chmod 640 /var/lib/news/users
La commande précédente ajoutera au fichier pathdb/users
l’utilisateur toto
qui aura pour mot de passe
sesame
.
Vous pouvez également éditer le fichier pathdb/users
avec un simple éditeur de texte et y ajouter les informations
d’authentification fournies par un générateur utilisable en ligne.
L’important étant qu’à chaque ligne du fichier corresponde un seul et unique couple utilisateur:mot_de_passe.
Malheureusement l’option ‘-d’ de htpasswd
tronquera vos
mots de passe à 8 caractères.
Attention donc à ne pas dépasser cette limite faute de quoi vos utilisateurs ne pourront pas être correctement authentifiés.
Une fois vos utilisateurs créés, changez les permissions d’accès à ce fichier afin de permettre à nnrpd d’en extraire les informations dont il aura besoin.
Maintenant que le fichier pathdb/users
est créé et
dûment rempli, nous pouvons nous attaquer à la configuration des
autorisations en elles-mêmes.
Il est possible de gérer très finement et par différents moyens ces authentifications et autorisations, cependant nous allons nous contenter d’autoriser l’accès en lecture à tous les groupes disponibles sur votre serveur à qui que ce soit en faisant la demande et n’autoriser l’accès en écriture qu’aux utilisateurs authentifiés.
Pour ce faire nous allons créer une classe d’authentification et deux classes d’accès de la manière suivante :
auth all {
auth: "ckpasswd -f /var/lib/news/users"
default: "anonymous"
}
Ci-dessus nous indiquons à nnrpd que les authentifications
se feront à l’aide du programme ckpasswd
(auth: "ckpasswd -f /var/lib/news/users"
) qui vérifiera les
informations d’authentification dans le fichier
/var/lib/users
que nous venons de créer. Toutefois, nous
lui indiquons également qu’un utilisateur non authentifié aura pour nom
anonymous
(default: "anonymous"
).
access full {
users: "*,!anonymous"
newsgroups: "*,!control,!control.*,!junk"
}
Ensuite nous décrivons les autorisations d’accès dont disposeront
tous les utilisateurs sauf anonymous
(users: "*,!anonymous"
).
Ici nous autorisons l’accès à tous les groupes sauf
control
(ainsi que l’ensemble de ces sous-groupes) et
junk
(newsgroups: "*,!control,!control.*,!junk"
).
access read_only {
users: anonymous
newsgroups: "*,!control,!control.*,!junk"
access: R
}
Enfin, nous définissons les autorisations d’accès pour l’utilisateur
non authentifié anonymous
.
Ici nous lui donnons accès aux mêmes groupes que s’il était
authentifié mais en lecture seule (access: R
).
Notez que si vous définissez plusieurs classes d’accès, seule la dernière classe correspondante sera prise en compte par nnrpd (last win).
Vous pouvez commenter toutes les autres lignes de ce fichier.
Vous trouverez toutes sortes d’informations utiles dans la page de
manuel de readers.conf
(man readers.conf
).
Nous avons déclaré dans le fichier pathetc/cycbuff.conf
un tampon cyclique qu’il nous faut maintenant créer.
Pour ce faire nous utiliserons la commande dd
logiquement fournie avec votre système Linux.
news ~$ dd if=/dev/zero of=/var/spool/news/cycbuff/test bs=1k count=512000
Assurez-vous de bien lancer cette commande en tant qu’utilisateur news.
Si l’utilisateur news n’est pas autorisé à créer ce tampon cyclique,
vérifiez qu’il dispose des autorisations suffisantes sur le répertoire
pathdb/cycbuff
(voir Le fichier
pathetc/cycbuff.conf
).
Enfin, modifiez les autorisations d’accès à ce fichier en exécutant la commande suivante
news ~$ chmod 664 /var/spool/news/cycbuff/test
Bien évidemment, le chemin du fichier
/var/spool/news/cycbuff/test
ainsi que sa taille doivent
correspondre à ce qui a été précédemment déclaré dans le fichier
pathetc/cycbuff.conf
.
inncheck
INN fournit un outil appelé inncheck
qui vous
permettra de vérifier que vos fichiers de configuration sont
valides :
news ~$ /usr/lib/news/bin/inncheck -av --pedantic
On peut obtenir plus d’information avec les arguments
-av --perm --pedantic
.
Pour les permissions, inncheck
est parfois trop
pointilleux et il peut ne pas être d’accord avec les droits standards de
votre distribution, il faut bien réfléchir avant de changer les droits
UNIX.
À ce stade de la configuration de votre serveur, vous devriez être en mesure de le démarrer.
Toutefois en cas d’erreur soulignée par inncheck
, il est
fortement conseillé de les corriger avant le premier démarrage
d’INN.
Sur un système Linux (ici testé sur Debian), le plus simple sera
d’utiliser la commande systemctl
ou service
si
votre système n’utilise pas systemd.
root# systemctl start inn2
ou
root# service inn2 start
Cette commande se chargera de démarrer l’ensemble des programmes et sous-programmes nécessaires au bon fonctionnement de votre serveur sans que vous ayez à vous poser trop de questions.
Si tout s’est bien passé, vous devriez être en mesure de voir que
votre port TCP/119
est ouvert en exécutant la commande
suivante :
root# netstat -anpt | grep innd
tcp 0 0 0.0.0:119 0.0.0.0:* LISTEN 19167/innd
Cependant, vous pouvez vérifier que votre serveur a correctement
démarré en lisant les fichiers de log situés dans
pathlog
.
Si le fichier pathlog/news.notice
reste désespérément
vide alors que vous constatez avec netstat -anpt
que votre
serveur est bien actif, n’hésitez pas à relancer
rsyslog
.
root# service rsyslog restart
Les articles de contrôle sont des articles formatés de telle manière qu’ils permettent d’ordonner au serveur de nouvelles d’agir de différentes façons comme, par exemple, créer ou effacer des groupes.
Gérés par un controlchan, ils diffèrent des articles d’annulation (cancels) qui sont manipulés directement par INN.
Si vous voulez que votre serveur gère les articles de contrôle (ce
qui est souhaitable), vous devez d’abord vérifier que la valeur du
paramètre pgpverify
que vous trouverez dans le fichier de
configuration pathetc/inn.conf
est true
.
Le fichier pathetc/control.ctl
contient l’ensemble des
actions autorisées classées par hiérarchies. A priori, il est suffisant
mais vous pouvez tout de même vérifier que les hiérarchies dont vous
voulez assurer la distribution y sont notées.
Comme nous l’avons vu, les articles de contrôle peuvent donner des ordres qui ne sont pas sans conséquence. Pour cette raison et afin de s’assurer que les messages de contrôle que vous recevez sont authentiques, ils sont généralement numériquement signés.
Pour permettre à controlchan de vérifier les signatures des articles de contrôle, nous avons besoin de lui donner le porte-clef contenant l’ensemble des clefs publiques des expéditeurs autorisés à envoyer un tel article.
Nous stockerons ce porte-clef dans le répertoire
pathetc/pgp
que nous avons besoin de créer :
root# mkdir /etc/news/pgp
root# chown news:news /etc/news/pgp
root# chmod 700 /etc/news/pgp
Entrez ensuite dans le répertoire pathetc/pgp
et
téléchargez la dernière liste à jour des clefs publiques des expéditeurs
autorisés à envoyer un article de contrôle :
news ~$ cd /etc/news/pgp
news ~$ wget ftp://ftp.isc.org/pub/pgpcontrol/PGPKEYS
Il faut ensuite créer le porte-clef numérique en lui donnant la liste des clefs.
Certaines de ces clefs utilisent un ancien format, qui n’est plus accepté par GnuPG 2, vous devrez donc utiliser explicitement GnuPG 1 avec une option particulière, en l’installant au besoin :
news ~$ gpg1 --allow-non-selfsigned-uid --import --homedir=/etc/news/pgp PGPKEYS
(il peut être nécessaire d’installer ce package, sous root:
apt-get install gnupg1
)
Vous pouvez vérifier que les clefs ont été correctement importées en tapant la commande suivante :
news ~$ gpg1 --homedir=/etc/news/pgp --list-keys
La liste d’active est la liste des groupes disponibles sur
votre serveur. Par défaut, celle-ci ne comprend que la branche
local.*
qui contient deux groupes : local.test
et local.general
.
Si vous désirez pouvoir distribuer d’autres hiérarchies, il vous faudra synchroniser votre liste d’active soit avec un autre serveur les distribuant, soit à partir d’un fichier. Il y a deux méthodes l’une avec curl et l’autre avec actsync. La première est très rapide pour récupérer quelques hiérarchies, la deuxième beaucoup plus lente mais permettra de récupérer toutes les hiérarchies. Notons que vous pouvez dans un premier temps ne créer que quelques groupes et attendre que les autres soient créés magiquement par les messages de contrôle reçus via vos serveurs appairés.
Dans les deux cas, les manipulations doivent être exécutées par
l’utilisateur news
.
Pour le Big8 :
news ~$ curl "http://usenet.trigofacile.com/hierarchies/index.py?see=COMP,HUMANITIES,MISC,NEWS,REC,SCI,SOC,TALK&only=checkgroups" \
| /usr/lib/news/bin/docheckgroups -u | /usr/lib/news/bin/mod-active
Pour fr.* :
news ~$ curl "http://usenet.trigofacile.com/hierarchies/index.py?see=FR&only=checkgroups" \
| /usr/lib/news/bin/docheckgroups -u | /usr/lib/news/bin/mod-active
Notons qu’il suffit simplement d’éditer le paramètre dans la requête en GET pour avoir une autre hiérarchie. Attention : En cas de mauvaise URL, vous serez peut-être obligé de vous servir de kill…
Vous n’avez probablement pas envie de distribuer toutes les
hiérarchies existantes, et afin de notifier le programme
actsync de la liste des groupes à synchroniser, il vous faut
paramétrer le fichier pathetc/actsyn.ign
.
Ce fichier n’est qu’une liste de groupes dont chaque entrée est précédée d’un caractère permettant de définir le type de synchronisation.
Le caractère i
indiquera à actsync d’ignorer la
liste des groupes qui le suivent quand un caractère c
lui
indiquera de vérifier la présence de ces groupes dans votre liste
d’active.
Exemple :
i talk.*
vous permettra de ne pas synchroniser les groupes se situant sous la
branche talk
.
c comp.*
vous permettra de vérifier que la branche comp
et
l’ensemble de ses groupes sont bien présents sur votre serveur.
Les actions à prendre en cas de détection d’un groupe marqué
c
qui ne serait pas disponible sur votre serveur dépendent
des paramètres passés à actsync qui ne seront pas détaillés
ici. Pour de plus amples informations, veuillez vous référer à la page
de manuel d’actsync (man actsync
).
Si vous ne voulez transporter que la hiérarchie fr.*
,
votre fichier pathetc/actsync.ign
devrait au moins contenir
la ligne suivante :
c fr.*
La mise à jour de l’active de votre serveur avec actsync est un processus qui prend un certain temps. La longueur de ce temps étant fonction du nombre de groupes à mettre à jour et peut même se compter en jours !
Il y a deux sous-méthodes : soit avec un autre serveur les distribuant, soit à partir d’un fichier.
Pour synchroniser votre liste d’active avec celle du serveur loin.ailleurs.com, exécutez la commande suivante :
news ~$ actsync -o x -v 2 -p 0 -i /etc/news/actsync.ign loin.ailleurs.com
Si vous préférez synchroniser votre serveur à partir d’un fichier, vous pouvez télécharger sur le serveur FTP de l’ISC la liste complète des groupes distribués et l’utiliser de la manière suivante :
news ~$ wget https://ftp.isc.org/pub/usenet/CONFIG/active -O /chemin/vers/active_de_l_ISC
news ~$ actsync -o x -v 2 -p 0 -i /etc/news/actsync.ign /chemin/vers/active_de_l_ISC
Cleanfeed est un programme de filtrage qui n’est pas fourni par INN et doit être téléchargé, installé et configuré de manière indépendante.
En cas de doute, veuillez vous référer à la documentation officielle : page sur mixmin.net
Il vous permettra d’éviter de distribuer inutilement les éventuels spams qui pourraient être envoyés par votre serveur.
Commencez par télécharger et décompresser Cleanfeed:
root# cd /root
root# wget https://www.mixmin.net/cleanfeed/cleanfeed.tar.gz
root# tar -xvzf cleanfeed.tar.gz
Copiez ensuite le fichier cleanfeed
dans le répertoire
des filtres d’INN (pathfilter
dans
inn.conf
):
root# cp ./cleanfeed/cleanfeed /etc/news/filter
Avant de remplacer le fichier pathfilter/filter_innd.pl
par cleanfeed
et afin de conserver une copie de l’original,
renommez-le:
root# mv /etc/news/filter/filter_innd.pl /etc/news/filter_innd.pl.old
root# mv /etc/news/filter/cleanfeed /etc/news/filter/filter_innd.pl
Déplacez ensuite le répertoire que vous venez de décompresser et qui
contient les fichiers de configuration de cleanfeed dans le
répertoire des filtres d’INN (pathfilter
):
root# mv ./cleanfeed/ /etc/news/filter
Enfin accordez la variable $config_dir
dans le fichier
pathetc/filter/filter_innd.pl
de manière à la faire pointer
vers les fichiers de configuration de cleanfeed.
La ligne concernée devrait correspondre à celle-ci:
$config_dir = '/etc/news/filter/cleanfeed/etc';
Évidemment vérifiez que les autres paramètres correspondent bien à
vos souhaits (oui c’est long mais c’est bien documenté). Vérifiez
également que le fichier
pathetc/filter/cleanfeed/etc/cleanfeed.local
, qui contient
quelques paramètres dont certains sont redondants avec ceux trouvés dans
pathetc/filter/filter_innd.pl
, soit renseigné conformément
à vos désirs.
Vous pouvez maintenant vérifier votre configuration avec les deux commandes suivantes :
root# perl -wc /etc/news/filter/filter_innd.pl
/etc/news/filter/filter_innd.pl syntax OK
root# perl -wc /etc/news/filter/cleanfeed/etc/cleanfeed.local
/etc/news/filter/cleanfeed/etc/cleanfeed.local syntax OK
Pour la deuxième commande de vérification, vous pouvez ignorer les
messages du type:
Name "main::Moderated" used only once: possible typo at /etc/news/filter/cleanfeed/etc/cleanfeed.local line 205.
.
Redémarrez INN:
root# systemctl restart inn2
ou
root# service inn2 restart
Si votre installation de cleanfeed s’est bien déroulée vous
devriez pouvoir redémarrer votre serveur sans avoir de notification
d’erreur concernant cleanfeed dans votre fichier de log
pathlog/news.notice
.
Si vous ne voulez pas redémarrer votre serveur INN pour si peu, vous pouvez également vous contenter de recharger les filtres perl liés à Cleanfeed avec la commande suivante :
news ~$ ctlinnd reload filter.perl 'installation _Cleanfeed_'
Vous trouverez tous les détails nécessaires à la configuration sur la page de cleanfeed.
INN fournit un script de filtrage complémentaire appelé NoCeM dont le but est d’accepter de certains utilisateurs authentifiés des articles spécifiques annonçant que tel ou tel article peut être considéré comme indésirable.
Les raisons pour lesquelles un article peut être considéré indésirable sont multiples et peuvent être simplement techniques (cas d’une publication croisée vers un nombre trop important de groupes) ou liées au contenu de l’article incriminé (cas du spam).
Pour que les utilisateurs dont vous voulez honorer les articles NoCeM soient authentifiés par leurs signatures électroniques, vous devez en importer les clefs publiques. Une liste des principales clefs publiques est disponible sur cette page.
Ainsi pour importer la clef publique de Xavier Roche (créez le répertoire avec les bons droits si nécessaire avant, voir section Gérer les messages de contrôle):
news ~$ cd /etc/news/pgp
news ~$ touch ncmring.gpg
news ~$ wget http://home.httrack.net/~nocem/bleachbot.asc
news ~$ gpg --import --keyring /etc/news/pgp/ncmring.gpg --no-default-keyring bleachbot.asc
Une fois les clefs importées et afin que que les articles
NoCeM soient traités par le script perl-nocem
fourni avec INN, modifiez le fichier
pathetc/newsfeeds
:
nocem!:!*,alt.nocem.misc,news.lists.filters,fr.usenet.abus.nocem\
:Tc,Wf,Ap:/usr/lib/news/bin/perl-nocem
Vous trouverez de plus amples informations à propos de NoCeM sur le lien ci-dessus et en ce qui concerne USENET-fr dans la FAQ NoCeM.
Redémarrez votre serveur (ou faites un simple
ctlinnd reload newsfeeds nocem
) et vérifiez que le filtre
NoCeM est activé en retrouvant les lignes suivantes dans le
fichier pathlog/news.notice
:
innd: nocem! spawned nocem!:21:proc:1757
innd: SERVER perl filtering enabled
nocem: starting up
Voir aussi https://www.eyrie.org/~eagle/software/inn/docs-2.7/perl-nocem.html
Il y a deux techniques: les articles postés sont envoyés par e-mail
au modérateur, qui ajoute le champ Approved
, ou les
utilisateurs le configurent eux-mêmes (par exemple pour
l’auto-modération).
moderators
et configuration INN moderatormailer
Ici, les articles postés sont envoyés par e-mail au modérateur, qui ajoute le champ `Approved’.
Pour chaque hiérarchie ou forum spécifique, l’adresse e-mail du
modérateur est indiquée, éventuellement de manière dynamique, dans
fichier pathetc/moderators
. Il est possible d’ajouter un
modérateur par défaut en configurant moderatormailer
dans
pathetc/inn.conf
et de s’assurer que les mails sont bien
envoyés en dehors du serveur.
Pour les groupes qui ne sont pas modérés par mail, il n’y a pas
besoin d’une configuration spécifique pour INN2. Dans certains cas, une
configuration spécifique peut être faite dans le fichier assez compliqué
pathetc/readers.conf
.
En supposant que soit installé et configuré un SpamAssassin sur votre machine, vous pouvez envisager qu’il filtre le spam entrant sur votre serveur.
Pour ce faire nous utiliserons un feed de type programme
nommé spamchk
configuré dans le fichier
pathetc/newsfeeds
:
spamchk!\
:*\
:Tp,Ac\
:/usr/local/bin/spamchk %s
Ensuite, il nous faut raccorder SpamAssassin à ce
feed. Ce sera fait avec le script suivant que vous
enregistrerez dans /usr/local/bin/spamchk
.
#!/bin/sh
# -----------------------------------------------------------------
# File: spamchk
# Purpose: SPAMASSASSIN shell-based filter used with _INN_
# Location: /usr/local/bin
# Author: Doug Le Tough
# -----------------------------------------------------------------
# Variables
SM="/usr/lib/news/bin/sm"
BC="/usr/bin/bc -l"
AWK="/usr/bin/awk"
SPAMC_USER="news"
SPAMC="/usr/bin/spamc -d localhost -p 7137 -c"
LOG="/var/log/news/news.notice"
SPAMLOG_PATH="/var/tmp/spamchk"
# Spam max score
SPAM_LIMIT=5
# Pipe message to spamc
SPAM_VALUE=$($SM -S $1 |$SPAMC | $AWK -F '/' '{print $1}' )
if [ $(echo "$SPAM_VALUE>$SPAM_LIMIT" | $BC) -eq 1 ]
then
HOST=$(hostname -s)
MID=$($SM -S $1 | grep Message-ID)
CLEAN_MID=$(echo $MID | $AWK -F "<" '{print $2}' | $AWK -F ">" '{print $1}')
DATE=$(LANG=C date '+%b %d %H:%m:%S')
echo "$DATE $HOST $0: Spam spotted: [$SPAM_VALUE > $SPAM_LIMIT] ** $MID" >> $LOG
# Move spam article to SPAMLOG_PATH
$SM -S $1 >> $SPAMLOG_PATH/$SPAM_VALUE.$CLEAN_MID
fi
Le script spamchk
se contente de faire analyser par
spamc les articles que lui envoie INN et si le score
dépasse le niveau de tolérance déclaré, copie l’article dans
SPAMLOG_PATH
.
Le nom du fichier copié est du format
<score>.<message-id>
(exemple:
15.1.99d6027f-f18a-43a9-b417-930838d7b092@googlegroups.com
)
ce qui vous permettra de vérifier facilement la présence de faux
positifs et d’éventuellement les réinjecter comme ham dans la
base de données de SpamAssassin.
Évidemment vous pouvez remplacer ce traitement par n’importe quelle autre commande, comme celle qui supprimerait cet article de votre serveur.
Ajustez les variables à votre configuration, notamment les chemins
vers les logs et programmes mais aussi le seuil de tolérance au spam
(SPAM_LIMIT
) qui est ici arbitrairement fixé à
8
. Les options spécifiques à spamc (l’hôte et le
port sur lequel contacter spamd) sont également à adapter à
votre configuration.
Ajustez la valeur de SPAM_LIMIT
en fonction de vos
désirs tout en gardant à l’esprit que plus cette valeur est haute moins
vous aurez de faux positifs mais plus vous prenez le risque de laisser
passer un spam.
Tout est affaire de tests, de compromis et de nourrissage soigné de la base de données qui servira aux filtres bayesiens de SpamAssassin.
N’oubliez pas de donner au script les permissions en exécution nécessaires:
root# chmod +x /usr/local/bin/spamchk
Activez ce nouveau feed dans INN avec
ctlinnd reload newsfeeds spamchk
.
Il est inutile de redémarrer INN après avoir modifié les
variables contenues dans /usr/local/bin/spamchk
. Les
nouvelles valeurs seront prises en compte au prochain appel du script
(ce qui peut ne pas être tout à fait immédiat).
Si vous avez modifié le script de démarrage
/etc/init.d/inn2
, vous serez probablement amené à adopter
celui proposé lors de la mise à jour avant de modifier ensuite ce script
à votre convenance. Plus d’informations avec ces deux posts: explication
et modification
de /etc/init.d/inn2
pour avoir un deuxième démon
nnrpd sur le port 563
.
Pour des raisons de sécurité, on ne peut plus faire :
su news
Mais il faut faire :
su - news -s /bin/bash
Ou avec sudo :
sudo -u news bash
Afin de pouvoir correctement lancer les commandes en tant que news, le mieux est de taper ceci :
sudo -u news bash
. /etc/profile
PATH=$PATH:/usr/lib/news/bin
Personnellement, j’utilise screen
pour ne pas avoir à
taper ces commandes trop souvent…
Dans inn.conf, complaints
accepte une chaîne de
caractères qui sera utilisée pour renseigner le champ
X-Complaints-To
des entêtes de chaque article publié depuis
votre serveur. Une valeur typique est une adresse de courriel du type
abuse@example.com
. Ce champ est déprécié et incorporé à
Injection-Info
dans les versions suivantes.
Les entêtes NNTP-Posting-Date
et
NNTP-Posting-Host
peuvent avantageusement être remplacés
par les entêtes plus modernes Injection-Date
et
Injection-Info
.
Voici ci-dessous des valeurs conseillées mais non obligatoires dans
pathetc/inn.conf
(après le commentaire
#Posting
) :
addinjectiondate: true
addinjectionpostingaccount: true
addinjectionpostinghost: true
Les valeurs suivantes peuvent être commentées si vous passez de INN 2.5 à INN 2.6 :
#nnrpdauthsender
#nnrpdposthost
Pour plus d’informations, veuillez vous référer à la documentation officielle INN 2.6.
innreport
pathetc/innreport.conf
a été modifié depuis la version
2.6 afin de faciliter la modification concernant l’affichage sans créer
de bug dans ce module, il faut donc récupérer les éventuelles
modifications de l’ancien fichier et les écrire dans
/usr/lib/news/innreport-display.conf
.
inn-secrets.conf
est une autre nouveauté qui permet
d’enfin gérer les Cancel-Lock sans module supplémentaire. Les
modifications apportées dans cleanfeed.local ou un autre filtre peuvent
être conservés mais le plus simple est de créer
pathetc/inn-secrets.conf
.
Ce fichier possède sa propre documentation officielle.
Vous pouvez récupérer votre ancien secret et le noter dans la
variable canlockuser
, vous bénéficiez d’un nouvel
canlockadmin
à créer pour bénéficier d’une suppression
simplifiée pour le newsmaster.
Il est de la forme :
cancels {
canlockadmin: [ "9kc3ZtAACpNZRGtmYiPlbfkDacqNwPbcEfzFodc5X48g" ]
canlockuser: [ "TSrg41qEbp6AyZuQoIIHo6sUzFkBLOocJYN3KsUVdgft" ]
}
Les valeurs suivantes de docancels
dans
inn.conf
permettent respectivement :
none
de n’accepter aucun cancel,require-auth
de n’accepter les cancels qu’avec un
Cancel-Key valide,auth
d’accepter les cancels classiques et avec
Cancel-Key valide si l’article est protégé par Cancel-Lock,all
d’accepter tous les cancels.En cas d’absence de configuration de inn-secrets.conf
,
les valeurs require-auth
et none
ont le même
effet ! require-auth
est la valeur par défaut de
docancels
.
Le drapeau -C
pour innd
n’est plus
fonctionnel, il a été remplacé par docancels
.
Les valeurs refusecybercancels
et
verifycancels
dans inn.conf
doivent être
commentées.
Les valeurs de nolist
et noresendid
dans
incoming.conf
ont été remplacées par leurs exacts
contraires : list
et resendid
, ne pas apporter
les modifications correspondantes provoque des erreurs.
Les valeurs refusecybercancels et verifycancels dans inn.conf ne sont plus effectives (il semble qu’elles sont ignorées).
require_ssl
si présent dans readers.conf
est à modifier.
Pour plus d’informations, veuillez vous référer à la documentation officielle INN 2.7.
INN fournit un outil appelé inncheck
qui vous
permettra de vérifier que vos fichiers de configuration sont
valides:
root# /usr/lib/news/bin/inncheck
On peut obtenir plus d’information avec les arguments
-a --perm --pedantic
.
Maintenant que nous avons largement dégrossi la configuration de votre serveur et que celui-ci est fonctionnel, vous pouvez relire l’intégralité de la page de la documentation officielle du serveur de nouvelles INN 2.7 afin de parfaire votre connaissance et de peaufiner la configuration de votre nouveau serveur.