Inn + UUCP - Le tutoriel
(c) Jose Mans 1 Mai 1996 Upgrade: 24 Janvier 1998 v1.9.3 Tout droits de modification reserves Ce doccument peut etre diffuse autant qu'il vous plaira SANS MODIFIER GPL (96) Correction: Stephane Calabrese (scalabrese@pacwan.mm-soft.fr)
AVANT-PROPOS
Salut
Voici un petit resume qui explique la manier dont j'ai procede pour intaller un serveur News local avec innd.
Je precise aussi que certaines personnes pourront voir des manipulations qui ne sont peut-etre pas necessaires pour configurer un server de News avec innd. Pour ma part, j'ai respecte, au plus fidele possible, ce qui m'a permis - apres 1 semaine de tentative - de demarrrer enfin mon serveur de News !!! Toutes fois ces personnes ont inviter a faire toutes remarques ! ...
Dans tous les cas il faut imperativement avoir une machine qui fonctionne correctement en reseau, meme seule.
Installation des programmes necessaire.
Faire le menage.
Si vous voulez ne pas rencotrer de probleme avec innd. Il est conseille d'effacer tous ce qui se rapporte aux anciens serveur. Il existe rnews de CNEWS qui reste apres l'intallation d'innd. Ce qui a pour effet de tout chambouler le serveur innd; la solution est donnee en section 2.1. Sans rentrer dans les detailles, EFFACEZ tout ce qui appartient a cnews et autre serveur!
Installation avec la slackware > 3.0
Choisir le packtage N, avec les modules :
<!> Procedez a une install "normal". Ceci est demande lors de l'installion.
- Deliver.
- Netconfig (netcfg)
- Rdist.
- smailcfg.
- tin (un reader quand meme :)
- inn 1.4 (enfin !!)
- nn-spool
- BSD 8.6.12 sendmail
- uucp Taylor.
Autres distributions.
Si vous n'avez pas de distribution autre que la slackware ceci m'interesse afin de completer cette aide le mieux possible. Ceci etant j'imagine bien qu'il y est quelque part dans votre distribution un coin, un repertoire, ou sont les fichier binaire de "innd.".
Par exemple sur les mirrors "sunsite.uiuc.edu" vous trouverez les programme pre-compile et source de innd.
<!> Noubliez pas que la verion de inn1.4 peut changer; donc ne m'en voulez pas si vous trouvez inn1.5 :)
Configuration.
Copie de fichier.
- Copier le fichier /usr/lib/news/etc/rc.news /etc/rc.d/
- Mettre en remarque 'nntp' dans /etc/inetd.conf:
#nntp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.nntpd
Puis relancez inetd de la maniere suivante :
ps aux |grep inetd
kill -HUP pid - Ou pid est le numero se trouvant dans la deuxieme colones de la ligne qu'affiche la commande 'ps'.
- Creer un lien rnews de bin a news :
cd /usr/bin ln -s ~news/rnews
<!> ATTENTION: Ne pas garder le fichier rnews du serveur CNEWS ! D'ailleur pour plus de security effacez tout ce qui appartien a CNEWS !
2.2 Edition de fichiers.
ATTENTION: Dans tous les fichiers ou cela ne sera pas specifie, mettre en remarque toutes les lignes n'etant pas stipulees dans ce fichier d'aide.
DE PLUS les exemple seront donnes pour la machine ASTERIX possedent le domain PROVENCE.FR. Par consequent si vous avez un autre nom, domain, il faudra IMPERATIVEMENT les chnager :))
Pour ce faire utiliser # dans chacun des fichiers.
- Editer control.ctl
- Rajouter all:*:*:mail
- Editer inn.conf
- Ramplacer/Ajouter :
organization: Votre ogranisation server: L'adresse de votre serveur domain: Votre domain.
fromhost: ... pathhost: ...
- Exemple (ex:) : Pour la machine asterix qui possede le domain
provence.fr :
organization: Hall des Stars server: asterix.provence.fr domain: provence.fr
fromhost: provence.fr pathhost: provence
- Editer newsfeeds
- Le newsfeeds sert a l'envois des messages aux machines connu de votre systeme de news.
Toutes ces machines sont repertoriees dans ce fichier. Le newsfeed contient aussi les groupes de news, ou conferences, que vous lui envoyez.
Biensur si vous etes un particulier et branche a un provider et qu'aucunes autres machine viennent prendre des conferences, par uucp, chez vous. Newsfeeds ne doit contenir que les parametre de votre provider.
Par contre si vous possedez des machines qui viennent poller regulierement vous devez, en plus de votre provider, faire connaitre a votre serveur 'innd' le nom de ces machines et, biensur, les conferences qu'elles prennent!
Voici un exemple, le premier, qui configure votre feed (newsfeed) pour un provider. Puis le deuxieme example celui d'une machine a qui vous procurez les news.
- Ajouter/remplacer votre domain et nom ce machine ainsi que ceux des visiteurs:
ME\
\
Tf,Wfb:
SI vous avez un provider uucp ... rajoutez ce champ :
ex: Si votre provider a cette adresse : provider.son_domain.fr
provider/provider.uucp,provider.son_domain.fr,unknowna\ :*,!junk*,!local*,!control*,!general*\ :Tf,Wfb:
Si vous avez des utilisateur uucp :
nom_machine_user/nom_machine_user.uucp\ :!*,fr.*,comp.os.linux.*,local.*,junk\ :Tf,Wfb:
Ou !junk, !local.... sont les groups que votre provider ne recevra pas ! En d'autres termes tous les noms de conferences possedent le '!' devant leurs noms et ne seront pas envoyees a la machine concernee.
- Editer hosts.nntp
- Ajouter :
#/usr/lib/news/hosts.nntp localhost: asterix.provence.fr: 193.50.131.200:
- Editer nnrp.acces
- Ajouter :
localhost:RP:::* *.domain.fr:RP:::* 193.50.131.*:RP:::*
- Editer /etc/NNTP_INEWS_DOMAIN
Rempalcer l'adresse par la votre. ex: #/etc/NNTP_INEWS_DOMAIN asterix.provence.fr
- Creer history
Avec l'utilisateur news creer les fichiers suivant :
:> history :> history.pag :> history.dir
<!> les symboles ":>" peuvent etre remplaces par le programme "touch" qui a pour effet de creer un fichier vide.
2.3 Divers
Creer un l'alias usenet vers vous :
- exemple pour l'utilsateur 'mans' :
- Editez le fichier /etc/aliases
- usenet: mans
- Puis recompilez la base de donnees alias.db :
- newaliases
Lancement de innd!.
3.1 Lancement au demarrage.
- Ajoutez dans rc.local :
- <!> Ne mettez pas tout en remarque !!! :)
- /etc/rc.d/rc.local
... #Demarrage des News /etc/rc.d/rc.news& ...
Lancement au shell.
- Tout simplement :
cd ~news/etc rc.news
Creation des packets (indispensable !)
Creation pour une machine
Pour que vos destinataires puissent recevoir ce que vous ecrivez dans les conferences il est imperatif de creer les packets ! Sinon, attendez toujours que ca parte !!!
Methode a la main.
Tout simplement en tapent :
~news/bin/sendbatch -g mahcine
- Ou -g pour la compression des packets avec gunbath (gzip) Certains systems comme WAffle utilise la compression avec compress. Il faudra donc utiliser l'option -c a la place de -c.
machine est le nom de la machine qui va recevoir les packets. En generale soit votre provider, soit vos utilisateur.
4.1.2 Avec crontab.
Avec l'utilisateur root ajouter cette chaine :
bash#: crontab -e
chaine -> 15 6,17,22 * * * /usr/lib/news/bin/sendbatch -g gyptis > /dev/null
Comme ca tous les packets destineis pour la machine appellee "Gyptis" seront cree touts les jours et 6h15, 17h15 t 22h15 de la journnee.
Pour plus d'information sur les possibilite de lancement du programme
sendbatch me contacter ou lire le : man crontab :)
4.2 Creation pour tous les machines.
4.2.1 Methode a la main.
Tout simplement en tapent :
~news/bin/sendbatch -g `uuname|sort|uniq`
4.2.2 Avec crontab.
Avec l'utilisateur root ajouter cette chaine :
bash#: crontab -e
chaine -> 15 6,17,22 * * * /usr/lib/news/bin/sendbatch -g `uuname|uniq|sort` > /dev/null
Tous les packets destines a toutes les machines seront crees a 6h15, 17h15 et 22h15 de la journnee.
A. Annexe 1 FAQs!
MESSAGE d'erreur:
1. Q Quand je lance rc.news le serveur me reponds ce message :
May 1 11:29:25 asterix innd: /usr/lib/news/history cant dbminit
ME No such file or directory
1. A En fait ce probleme est du au fichier ~news/bin/makehistory qui, quand on le lance, creait les fichier :
history.n.dir & history.n.pag
Je vous dis ca car il m'a fallu 1 semaine pour comprendre qu'innd et makehistory n'etati pas compatible :(
Ceci dit, n'attendez plus 1 semaine !. Normalement en creant les fichier :
touch history touch history.dir touch history.pag
Cela devrait marcher correctement :)
2. Q je viends d'ecrire dans les confs local mais rien n'est envoye chez lui :(.
2. A Ceci me fait penser a votre newsfeeds. Car j'ai deja eu un probleme
similaire et je l'ais resolu comme suit :
Mon enciens newsfeeds qui n'emovyait pas les news a mes amis UUCPchiens ... provider/provider.uucp,provider.son_domain.fr,unknowna\ :!*,fr.comp.os.linux,fr.ta.mere,!local*,!junk*,!local*,!control*,!general*\ :Tf,Wfb:
a pour effet de n'en voyer que fr.comp.os.linux et fr.ta.mere
Depuis en modifiant mon newsfeeds pour le meme resultat j'ai pu recevoir et envoyer a mes utilisateur de mon BBS les confs local.*
provider/provider.uucp,provider.son_domain.fr,unknowna\
:!*,fr.comp.os.linux,fr.ta.mere\ :Tf,Wfb:
Il semblerait que la rodendense des interdictions soit a l'origine de ce probleme ... Donc evitez-les :)
ATTENTION: ou provider peut-etre aussi un de vos utilisateur.
3. Q Note: si j'ai tout compris a inn le fichier newsfeeds permet de dire
a sa machine ou plutot son serveur a qui et quelle config _transmettre_
3. R En fait newsfeed permet de savoir les groups qui doivent etre creer
pour chaque machines. Si ton champs comporte :
zilog/zilog.uucp\ :fr.*,comp.os.*,!* :Tf,Wfb:
Le serveur, contenent cela dans son newsfeed, preparera les packets pour zilog, fr.*, comp.os.* et rien d'autre. Et donc quand les deux machine seront connectees seul c'est conferences seront transferees.
4. Q Quand 'innd' refuse de poster les articles que dois-je faire ?
4. R Tu dois ajouter l'adresse l'adresse de ton serveur, celui d'ou tu
postes, dans le fichier : ~news/hosts.nntp
Ex: localhost: zilog: zilog.uucp: # Toutes y les adressses possible que ce serveur peut # prendre...
5. Q Si il vous affiche :
inndstart: inndstart cant bind Address already in use
C'est que vous ne savez pas lire :) Car c'est ecrit dans cette doc,
qu'il faut enlever la ligne 'nntp' dans le fichier /etc/inetd.conf!
6. Q Si il vous affiche :
innd: /usr/lib/news/history cant dbminit ME No such file or directory
La aussi vous ne savez pas lire; Alors SVP! Allez creer ce fichier
history dans ~news (/usr/lib/news) comme suit :
bash#: :> history :> history.dir :> history.pag
7. Q Il trouve pas /ucb/sendmail!
8. A Editez le fichier ~news/innshellvar et remplacer /ucb/sendmail par /bin/mail dans la variable MAILCMD!!!!