Version 1.0 (2 Août 1996) INTRODUCTON: ============ Cette documentation a pour but d'aider les utilisateurs de linux qui désirent utiliser le package 'ifmail' d'Eugene Crosser pour gérer une base de message fidonet (entre autre). Elle a été rédigée suivant ma configuration qui est loin d'être simple. J'ai essayé d'être aussi clair que possible; vous ne devriez donc pas avoir de problème pour mettre en place le système... Néammoins avant de commencer; vous devez avoir un système 'stable' comprenant: - le kernel bien sûr - un lecteur de news (peu importe lequel) - un demon de gestion de news (ici inn) - un demon de transport d'email (ici sendmail) - une config réseau contenant au moins le 'localhost' COMPILATION DE IFMAIL: ====================== Cette documentation est basée sur la version 2.8e de ifmail sur laquelle a été appliquée le patch 'tx-7.0' de Pablo Saratxga. La première chose à faire est donc de se procurer les deux archives necessaires par exemple sur ftp.ipb.fr: dir /pub/linux/sunsite/system/Fidonet 270391 ifmail-2.8e.tar.gz 83738 ifmail-2.8e_to_2.8e-tx7.0.tgz Sous root vous devez donc faire: root:~$ cd /usr/src/ root:/usr/src$ tar xvfz ifmail-2.8e.tar.gz root:/usr/src$ tar xvfz ifmail-2.8e_to_2.8e-tx7.0.tgz root:/usr/src$ cd ifmail root:/usr/src/ifmail$ cat ../ifmail-2.8e_to_2.8e-tx7.0.diff | patch -E -p1 Ce qui a pour effet de décompacter le package ifmail et de lui appliquer le patch tx-7.0 A partir de ce moment là vous avez donc les sources de ifmail 2.8e-tx7.0 prêts à être compilés. A noter que des patchs sortent régulièrement et qu'il faut donc appliquer les patchs les uns à la suite des autres mais bien sûr dans l'ordre croissant des numéros de versions. Avant la compilation; il faut vérifier les données du fichier CONFIG pour voir si elles correspondent bien à votre système; en particulier les chemins des répertoires au début du fichier. Ensuite pour lancer la compilation: root:/usr/src/ifmail$ make ERREUR DE COMPILATION. ====================== sur certains systems il se peut que vous rencontriez ce genre d'erreur : expect 6 shift/reduce conflicts yacc parsedate.y make: /usr/bin/make: cannot execute binary file make[1]: *** [parsedate.c] Error 126 make[1]: Leaving directory `/usr/local/src/ifmail/iflib' Dans ce cas, pas de panique. Il faut juste aller dans ifmail/iflib et mettre en remarque la ligne qui contiend : ifmail/iflib/Makfile : parsedate.c: parsedate.y @echo expect 6 shift/reduce conflicts # ${YACC} parsedate.y mv y.tab.c parsedate.c @echo expect 4 warnings compiling parsedate.c En suite ecrivez : yacc parsedate.y (ou bison --yacc parsedate.y) make cd .. make De meme, appliquez la meme methode pour enlever la meme erreur pour le repertorie de "ifcico". INSTALLATION DE IFMAIL: ======================= Reste ensuite à effectuer l'installation. Bizarrement il semble qu'il faille créer le répertoire de ifmail à la main sinon l'installation ne fonctionne pas. D'autre part avant l'installation il faut bien veiller à ce que le système comprenne un certains nombres d'utilisateurs et de groupes. Fichier /etc/passwd: mail:*:8:12:mail:/var/spool/mail: postmaster:*:14:12:postmaster:/var/spool/mail: uucp:*:10:14:uucp:/var/spool/uucppublic: news:*:9:13:news:/usr/lib/news: fnet:*:15:14:FidoNet:/usr/lib/ifmail: Le premier numéro de chaque ligne est le numéro de user; il n'a pas d'importance (à part qu'il doit être unique dans le fichier). Le deuxième numéro est le numéro du groupe de cet user. Fichier /etc/group: mail::12:mail news::13:news uucp::14:uucp,fnet Pour lancer l'installation il suffit donc de faire: root:/usr/src/ifmail$ md /usr/lib/ifmail root:/usr/src/ifmail$ chown fnet.uucp /usr/lib/ifmail root:/usr/src/ifmail$ make install Reste ensuite à créer la configuration. Pour créer le répertoire contenant les fichiers de config: root:/usr/src/ifmail$ cd /etc/ root:/etc$ md ifmail root:/etc$ chown fnet.uucp ifmail root:/etc$ chmod 750 ifmail On recopie ensuite les fichiers de config par défaut: root:/etc$ cd ifmail root:/etc/ifmail$ cp /usr/src/ifmail-2.8e-tx7.0/misc/config . root:/etc/ifmail$ cp /usr/src/ifmail-2.8e-tx7.0/misc/Areas . Il reste ensuite à modifier le fichier Areas suivant vos besoins. Vous disposez pour cela du fichier par défaut et de mon fichier pour vous inspirer. Il faut aussi modifier le fichier config bien sûr. Pour expliquer un peu la config que j'utilise: je reçois (pour le moment) uniquement des messages venant de réseaux tels que fido; rien ne passe par l'internet. Je suis abonné à 5 réseaux que je récupère sur 2 BBS distints: |-----------|-----------|-----------|--------------| | BBS | Réseaux | Adr BBS | Adr Point | |-----------|-----------|-----------|--------------| | TheBBS | fidonet | 2:320/107 | 2:320/107.16 | | | NeST | 90:800/1 | 90:800/1.16 | | | atarinet | 51.901/1 | 51:901/1.16 | |-----------|-----------|-----------|--------------| | CanadaDry | fidonet | 2:321/1 | 2:321/1.16 | | | globalnet | 52:3300/1 | 52/3300/104 | |-----------|-----------|-----------|--------------| Il faut ensuite créer le répertoire de travail de ifmail; c'est à dire là où ifmail va créer et gérer les packets; ainsi que le répertoire contenant les nodelists (sans nodelist; ifmail ne pas appeler un BBS!): root:/etc/ifmail$ cd /usr/spool root:/usr/spool$ md ifmail root:/usr/spool$ chown fnet.uucp ifmail root:/usr/spool/ifmail$ md nodelist root:/usr/spool/ifmail$ chown fnet.uucp nodelist #root:/usr/spool/ifmail$ md inb #root:/usr/spool/ifmail$ chown fnet.uucp inb #root:/usr/spool/ifmail$ md outb #root:/usr/spool/ifmail$ chown fnet.uucp outb Il faut aussi créer le repertoire contenant les fichiers de log: root:/usr/spool/ifmail$ cd /var/log root:/var/log$ md ifmail root:/var/log$ chown fnet.uucp ifmail root:/var/log$ chmod 750 ifmail Si le fichier des alias n'existe pas il faut en créer un vide: root:/var/log$ cd /etc/ifmail root:/etc/ifmail$ touch aliases root:/etc/ifmail$ chown fnet.uucp aliases Idem pour la database: root:/etc/ifmail$ cd /usr/spool/ifmail root:/usr/spool/ifmail$ touch ifdbm root:/usr/spool/ifmail$ chown fnet.uucp ifdbm Il faut ensuite créer le répertoire contenant les tables de translation des différents jeux de caractères: root:/usr/spool/ifmail$ cd /etc/ifmail root:/etc/ifmail$ md maptabs root:/etc/ifmail$ chown fnet.uucp maptabs root:/etc/ifmail$ cd maptabs root:/etc/ifmail/maptabs$ cp /usr/src/ifmail/misc/maptabs/* . root:/etc/ifmail/maptabs$ chown fnet.uucp * L'installation de ifmail est terminée. Il reste maintenant à configurer le transport de news et le transport d'email bien sûr... CONFIGURATION NEWS: =================== Pour les news il faut bien sûr créer les newsgroups et pour cela se reporter à la documentation adequat (News-HOWTO en particulier). Il faut ensuite créer ou modifier le fichier newsfeeds dans /usr/lib/news (ou autre). Il faut donc router les articles sur chaque réseau correctement et éviter les mélanges. Pour cela il est conseillé de prendre comme racine de nom de chaque newsgroup le nom du réseau. fichier /usr/lib/news/distrib.pats --------------------------------------------------------------------------- ## $Revision: 1.1 $ ## distrib.pats -- specify default Distribution header for newsgroups ## Format: ## :: ## All articles are matched against all patterns, value to be used is the ## one with the highest weight. ## The weight assigned to this match, integer ## Newsgroup name or single wildmat(3) pattern ## Value of Distribution header. ## ## This file contains the "inet" newsgroups from Gene Spafford's ## checkgroup message posted on ## 20 Jul 92 06:50:24 GMT; it is probably out of date. 10:loc.*:local 10:gna.*:fidonet 10:gn.*:globalnet 10:a.*:atarinet 10:n.*:nest --------------------------------------------------------------------------- fichier /usr/lib/news/active: --------------------------------------------------------------------------- junk 0000000253 0000000237 y control 0000000001 0000000002 y loc.Test 0000000029 0000000025 y -> Réseau local loc.Raceme 0000000051 0000000047 y gna.starwars 0000013090 0000009574 y -> Réseau fidonet gna.aids.fr 0000000010 0000000010 y gna.cyberloi.fr 0000000025 0000000017 y gna.fiction.fr 0000001169 0000000429 y gna.hardware.fr 0000006780 0000005767 y gna.internet.fr 0000001627 0000000792 y gna.jeux.fr 0000002173 0000001158 y gna.linux.fr 0000004433 0000003810 y gna.medical.fr 0000000201 0000000031 y gna.presse-info.fr 0000000097 0000000056 y gna.satellite.fr 0000000057 0000000015 y gna.science.fr 0000000067 0000000049 y gna.shareware.fr 0000000453 0000000187 y gna.software.fr 0000000040 0000000023 y gna.tele-cine.fr 0000000141 0000000089 y gna.telecoms.fr 0000003645 0000002721 y gna.win95.fr 0000000891 0000000403 y gna.www.fr 0000000173 0000000151 y gna.x-files.fr 0000000753 0000000675 y gna.321net 0000000005 0000000001 y gna.fm.alimentation 0000000000 0000000001 y gna.fm.bourse 0000000000 0000000001 y gna.fm.genealogie 0000000000 0000000001 y gna.fm.internet 0000000000 0000000001 y gna.fm.jeux 0000000000 0000000001 y gna.fm.musique 0000000000 0000000001 y gna.fm.rpg 0000000000 0000000001 y gna.fm.windows 0000000000 0000000001 y gn.fr.cinema 0000000036 0000000036 y -> Réseau globalnet gn.fr.touraine 0000000051 0000000044 y n.falcon.misc 0000002208 0000001816 y -> Réseau NeST n.fr.adm.point 0000002935 0000002111 y n.fr.misc.news 0000000011 0000000008 y n.fr.misc.prog 0000000013 0000000010 y n.fr.misc.techno 0000000016 0000000017 y n.fr.parx 0000000519 0000000299 y n.fr.sup.diderot 0000000046 0000000036 y n.fr.sup.tosfax 0000000028 0000000024 y n.fr.sup.parx 0000000159 0000000120 y n.sup.parx.modules 0000000101 0000000087 y n.thebbs.loc 0000000611 0000000449 y --------------------------------------------------------------------------- Il faut donc ensuite gérer les feeds de ces groupes pour que les articles postés localement partent lors des polls. Pour cela on utilise le fichier newsfeeds. fichier /usr/lib/news/newsfeeds: --------------------------------------------------------------------------- ## $Revision: 1.12 $ ## newsfeeds - determine where Usenet articles get sent ## Format: ## site[/exclude,exclude...]\ ## :pattern,pattern...[/distrib,distrib...]\ ## :flag,flag...\ ## :param ## Summary of flags: ## .*" ## there. The "distrib" subfield limits incoming articles. # ME\ # :*,!foo.*/world,usa,na,gnu,bionet,pubnet,u3b,eunet,vmsnet,inet,ddn,\ # k12\ # :: # # # Feed all moderated source postings to an archiver # source-archive\ # :!*,comp.sources.*\ # :Tp,Nm:/news/bin/archive %s # # # Feed all local non-internal postings to nearnet; sent off-line via # # nntpsend or send-nntp. # nic.near.net\ # :!junk/!foo\ # :Tf,Wnm:nic.near.net # # # A real-time nntplink feed # uunet\ # :/!foo\ # :Tc,Wnm:/news/bin/nntplink -i stdin news.uu.net # # # Capture all Foo, Incorporated, postings # capture\ # :*/foo\ # :Tp,H2:/usr/lib/news/capture %s # # # A UUCP feed, where we try to keep the "batching" between 4 and 1K. # ihnp4\ # :!junk,!control/!foo\ # :Tf,Wfb,B4096/1024: # Local: ME\ :!*,!junk,!control\ :: # TheBBS: AtariNet #f1.n901.z51.atarinet.ftn/f1.n901\ # :!*,a.*/!local,!fidonet,!globalnet,!nest\ # :Tf,Wfb,B4096/1024: # TheBBS: NeST f1.n800.z90.nest.ftn/f1.n800\ :!*,n.*,!n.raceme.loc/!local,!fidonet,!globalnet,!atarinet\ :Tf,Wfb,B4096/1024: # CanadaDry: FidoNet f1.n321/f1.n321\ :!*,gna.*/!local,!globalnet,!atarinet,!nest\ :Tf,Wfb,B4096/1024: # CanadaDry: GlobalNet f1.n3300.z52.globalnet.ftn/f1.n3300\ :!*,gn.*/!local,!fidonet,!atarinet,!nest\ :Tf,Wfb,B4096/1024: --------------------------------------------------------------------------- CONFIGURATION MAIL: =================== Tout est configuré dans les fichier /etc/sendmail.cf; comme ce fichier est horriblement long; pas question de le mettre ici en entier. A vous de récupérer les morceaux et de les insérer au bon endroit en répérant le début. --------------------------------------------------------------------------- ################## # local info # ################## # Ici tous les noms de machine pour lesquels c'est consideré comme local Cwlocalhost Raceme Raceme.frmug.fr.net p16.f1.n901.z51.atarinet.ftn f104.n3300.z52.globalnet.ftn p16.f1.n800.z90.nest.ftn p16.f1.n321.z2.fidonet.org p16.f107.n320.z2.fidonet.org #Les pseudo-domaines; ils n'appelent pas le DNs, même si tu en as un CPz1.fidonet.org z2.fidonet.org z3.fidonet.org z4.fidonet.org z5.fidonet.org z6.fidonet.org ftn uucp ... ##################### # Trusted users # ##################### Troot Tdaemon Tuucp # ici j'ajoute fnet comme trusted user Tfnet ... ######################################## # resolve locally connected UUCP links # ######################################## R$* < @ $=Z . UUCP. > $* $#uucp-uudom $@ $2 $: $1 < @ $2 .UUCP. > $3 R$* < @ $=Y . UUCP. > $* $#uucp-new $@ $2 $: $1 < @ $2 .UUCP. > $3 R$* < @ $=U . UUCP. > $* $#uucp-old $@ $2 $: $1 < @ $2 .UUCP. > $3 # resolve remotely connected UUCP links (if any) # resolve fake top level domains by forwarding to other hosts # forward other UUCP traffic straight to UUCP R$* < @ $+ .UUCP. > $* $#uucp $@ $2 $: $1 < @ $2 .UUCP. > $3 user@host.UUCP ########################################## # FIDONET.ORG and FTN Routing # ########################################## # l'ordre a de l'importance # le format est: # "R" "<" "@" "." ">" "$#" "$@" "$:" [ ] # donc "R" (pour recognize ?) suivi d'un masque qui s'il correspond a l'adresse # d'un message active la ligne. Dans ce masque, le nom de machines est entre # "< >", le "@" est dedans. $* signifie n'importe quelle chaine, y compris la # chaine nulle. $+ une chaine d'au moins un element. $- une chaine d'exactement un seul # element. l'adresse est terminee par un point, car ici elles arrivent canonicees # (avec un point a la fin). # Ensuite une tabulation (important !) puis le transport (ex: $#smtp) la # machine a contacter pour delivre via ce transport; "$:" (qui signifie reecrire # l'adresse) et reecrire l'adresse. ici $1, $2, $3, ... correspondent aux jokers # du premier terme. #le net 2:320 est routé sur TheBBS (2:320) tout le reste sur CanadaDry (2:321) R$* < @ $+ .n320.z2.fidonet.org. > $* $#fnet $@ f107.n320 $: $1 < @ $2 .n320.z2.fidonet.org > $3 # le reste de fidonet (il vaut mieux faire z1 à z6 plutot que *.fidonet.org # pour eviter qu'il prenne le cas "fidonet.fidonet.org" ou "www.fidonet.org" etc R$* < @ $+ .z1.fidonet.org. > $* $#fnet $@ f1.n321 $: $1 < @ $2 .z1.fidonet.org > $3 R$* < @ $+ .z2.fidonet.org. > $* $#fnet $@ f1.n321 $: $1 < @ $2 .z2.fidonet.org > $3 R$* < @ $+ .z3.fidonet.org. > $* $#fnet $@ f1.n321 $: $1 < @ $2 .z3.fidonet.org > $3 R$* < @ $+ .z4.fidonet.org. > $* $#fnet $@ f1.n321 $: $1 < @ $2 .z4.fidonet.org > $3 R$* < @ $+ .z5.fidonet.org. > $* $#fnet $@ f1.n321 $: $1 < @ $2 .z5.fidonet.org > $3 R$* < @ $+ .z6.fidonet.org. > $* $#fnet $@ f1.n321 $: $1 < @ $2 .z6.fidonet.org > $3 # autres réseaux (les domaines correspondent à ce que tu as defini dans # /etc/ifmail/config, domtrans (ex: domtrans .z51.fidonet .z51.AtariNet.ftn) R$* < @ $+ .atarinet.ftn. > $* $#fnet $@ f1.n901.z51.atarinet.ftn $: $1 < @ $2 .atarinet.ftn > $3 R$* < @ $+ .globalnet.ftn. > $* $#fnet $@ f1.n3300.z52.globalnet.ftn $: $1 < @ $2 .globalnet.ftn > $3 R$* < @ $+ .nest.ftn. > $* $#fnet $@ f1.n800.z90.nest.ftn $: $1 < @ $2 .nest.ftn > $3 # les autres .FTN # (je ne sais pas si tu as un endroit par defaut ou les envoyer; ici j'ai un # feed qui est connecte a pas mal de reseaux; je lui envoie tout le reste *.ftn # il y a des chances pour qu'il sache comment faire suivre, sinon il a un programme # 'tracker' qui renvoie a l'expediteur.) Pour toi tu peux peut-etre envoyer a # la poubelle, ou retourner a l'expediteur. ## tu passes au hote 122:25/15 disons #R$* < @ $+ .ftn. > $* $#fnet $@ f15.n25.z122.ftn $: $1 < @ $2 .ftn > $3 ## ou à la poubelle #R$* < @ $+ .ftn. > $* $#local $: nobody ##ou retour à l'expediteur ($#error est un peu special, apres "$:" il y a un petit ## message inclus dans la reponse du "mailer-daemon" #R$* < @ $+ .ftn. > $* $#error $: I doesn't know how to reach that network ############################### # Ici c'est les adresses INET # ############################### # Tant que tu n'as que fido, utilise ceci par exemple (2:292/875 est la # passerelle officielle pour l'europe, mais si tu en connais une meilleure...) #R$* < @ $* . > $* $#fnet $@ f1.n321 $: $1 % $2 <@f875.n292.z2.fidonet.org> $3 #R$* < @ $* . > $* $#fnet $@ f1.n800.z90.nest.ftn $: $1 % $2 <@f106.n100.z90.nest.ftn> $3 R$* < @ $* . > $* $#fnet $@ f1.n321 $: $1 % $2 <@p2.f24.n24.z2.fidonet.org> $3 # Passerelle internet sur le réseau NeST (Network atari ST) # #R$* < @ $+ .nest.ftn. > $* $#fnet $@ f1.n800.z90.nest.ftn $: $1 < @ $2 .nest.ftn > $3 # # #R$* < @ $* . > $* $#error $: $1 % $2 <@f106.n100.z90.nest.ftn> $3 ################################################## ### Local and Program Mailer specification ### ################################################## ##### @(#)local.m4 8.6 (Berkeley) 10/24/93 ##### Mlocal, P=/usr/bin/deliver, F=lsDFMShP, S=10, R=20/40, A=deliver $u Mprog, P=/bin/sh, F=lsDFMeu, S=10, R=20/40, D=$z:/, A=sh -c $u S10 R<@> $n errors to mailer-daemon R$+ $: $>40 $1 S20 R$+ < @ $* > $: $1 strip host part S40 R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified R$* $: $1 @ $M add local qualification R$* @ $: $1 @ $j if $M not defined ##################################### ### FNET Mailer specification ### ##################################### #Mfnet, P=/usr/lib/ifmail/ifmail, F=msDFMuC, S=11, R=21, # A=ifmail -xabcdefghijklmnopqrstuvwxyz -r $h -g h $u Mfnet, P=/usr/lib/ifmail/ifmail, F=msDFMuC, S=11, R=21, A=ifmail -r $h -g h $u #"-r $h" is required as ifmail requires packet routing address. #-g h is hold flavour. --------------------------------------------------------------------------- CONFIGURATION IFMAIL: ===================== Allons voir dans le répertoire /etc/ifmail maintenant... Fichier /etc/ifmail/Areas: --------------------------------------------------------------------------- # Conversion of areatags to newsgroups (with distribution) and back. # AREA newsgroup distribution # If you compile with -DJE, the format is: # AREA newsgroup distribution rfc-charset FTN-CHRS # # "rfc-charset" is the charset used in the rfc (usenet/email) side. It must # be in the format used in MIME headers (ex: iso-8859-1, koi8-r, EUC-kr,...) # "FTN-CHRS" is the charset used in the FTN side. It must be in the format # used in ^aCHRS: kludges, whitout de level number (ex: LATIN-1, KOI8, EUC-KR) # See file README.charset for a list of recognized rfc-charset and FTN-CHRS 8BIT.FR gna.8bit.fr fidonet iso-8859-1 IBMPC AFAS.FR gna.afas.fr fidonet iso-8859-1 IBMPC AIDS.FR gna.aids.fr fidonet iso-8859-1 IBMPC AMSTRAD.FR gna.amstrad.fr fidonet iso-8859-1 IBMPC CDROM.FR gna.cdrom.fr fidonet iso-8859-1 IBMPC CYBERLOI.FR gna.cyberloi.fr fidonet iso-8859-1 IBMPC DEBAT-OS.FR gna.debat-os.fr fidonet iso-8859-1 IBMPC FICTION.FR gna.fiction.fr fidonet iso-8859-1 IBMPC FRANCENET gna.francenet fidonet iso-8859-1 IBMPC FROGNET gna.frognet fidonet iso-8859-1 IBMPC HARDWARE.FR gna.hardware.fr fidonet iso-8859-1 IBMPC INTER-BBS gna.inter-bbs fidonet iso-8859-1 IBMPC INTERNET.FR gna.internet.fr fidonet iso-8859-1 IBMPC JDR.FR gna.jdr.fr fidonet iso-8859-1 IBMPC JEUX.FR gna.jeux.fr fidonet iso-8859-1 IBMPC LINUX.FR gna.linux.fr fidonet iso-8859-1 IBMPC MEDICAL.FR gna.medical.fr fidonet iso-8859-1 IBMPC PRESSE_INFO.FR gna.presse-info.fr fidonet iso-8859-1 IBMPC RESEAUX.FR gna.reseaux.fr fidonet iso-8859-1 IBMPC SATELLITE.FR gna.satellite.fr fidonet iso-8859-1 IBMPC SCIENCE.FR gna.science.fr fidonet iso-8859-1 IBMPC SHAREWARE.FR gna.shareware.fr fidonet iso-8859-1 IBMPC SOFTWARE.FR gna.software.fr fidonet iso-8859-1 IBMPC SON.FR gna.son.fr fidonet iso-8859-1 IBMPC STARWARS gna.starwars fidonet iso-8859-1 IBMPC TELE-CINE.FR gna.tele-cine.fr fidonet iso-8859-1 IBMPC TELECOMS.FR gna.telecoms.fr fidonet iso-8859-1 IBMPC UNIX.FR gna.unix.fr fidonet iso-8859-1 IBMPC VIRUS.FR gna.virus.fr fidonet iso-8859-1 IBMPC WIN95.FR gna.win95.fr fidonet iso-8859-1 IBMPC WWW.FR gna.www.fr fidonet iso-8859-1 IBMPC X-FILES.FR gna.x-files.fr fidonet iso-8859-1 IBMPC 321NET gna.321net fidonet iso-8859-1 IBMPC FM_ALIMENTATION gna.fm.alimentation fidonet iso-8859-1 IBMPC FM_BOURSE gna.fm.bourse fidonet iso-8859-1 IBMPC FM_GENEALOGIE gna.fm.genealogie fidonet iso-8859-1 IBMPC FM_INTERNET gna.fm.internet fidonet iso-8859-1 IBMPC FM_JEUX gna.fm.jeux fidonet iso-8859-1 IBMPC FM_MUSIQUE gna.fm.musique fidonet iso-8859-1 IBMPC FM_RPG gna.fm.rpg fidonet iso-8859-1 IBMPC FM_WINDOWS gna.fm.windows fidonet iso-8859-1 IBMPC GN.FR.CINEMA gn.fr.cinema globalnet iso-8859-1 IBMPC GN.FR.TOURAINE gn.fr.touraine globalnet iso-8859-1 IBMPC N.FALCON.MISC n.falcon.misc nest iso-8859-1 IBMPC N.FR.ADM.POINT n.fr.adm.point nest iso-8859-1 IBMPC N.FR.MISC.NEWS n.fr.misc.news nest iso-8859-1 IBMPC N.FR.MISC.TECHNO n.fr.misc.techno nest iso-8859-1 IBMPC N.FR.MISC.PROG n.fr.misc.prog nest iso-8859-1 IBMPC N.FR.PARX n.fr.parx nest iso-8859-1 IBMPC N.FR.SUP.DIDEROT n.fr.sup.diderot nest iso-8859-1 IBMPC N.FR.SUP.TOSFAX n.fr.sup.tosfax nest iso-8859-1 IBMPC N.FR.SUP.PARX n.fr.sup.parx nest iso-8859-1 IBMPC N.SUP.PARX.MODULES n.sup.parx.modules nest iso-8859-1 IBMPC THEBBS.LOC n.thebbs.loc nest iso-8859-1 IBMPC # Line with a single '*' in the "AREA" field defines default newsgroup # and distribution. '*' in the "newsgroup" field, if present, is expanded # to the original areatag (converted to lowcase). * junk.* local # Line with a single '*' in the "newsgroup" field defines default areatag. # '*' in the "AREA" field, if present, is expanded to the original # newsgroup (converted to uppercase). (Distribution is insignificant). #BAD.* * # You can specify a line with a single asterisk in the "AREA" field and # a single asterisk in the "newsgroup" field. It will cause a reversible # conversion - areatag will be an uppercased newsgroup, and a newsgroup # will be a lowercased areatag. This is not recommended. # * * world # Line with a single '*' in the "AREA" field defines default newsgroup # and distribution. '*' in the "newsgroup" field, if present, is expanded # to the original areatag (converted to lowcase). * fido.* fido # You can specify a line with a single asterisk in the "AREA" field and # a single asterisk in the "newsgroup" field. It will cause a reversible # conversion - areatag will be an uppercased newsgroup, and a newsgroup # will be a lowercased areatag. This is not recommended. # * * world --------------------------------------------------------------------------- Fichier /etc/ifmail/config: --------------------------------------------------------------------------- # Configuration file for ifmail (ifgate+ifcico) package by Eugene Crosser # Compile-time default name of this file may be overridden by -I key. # Lines with the first nonblank character '#' are comments. # Log file name. Overrides compile-time default. logfile /var/log/ifmail/iflog # Debug file name. Overrides compile-time default. debugfile /var/log/ifmail/ifdebug # Debugging verbosity (is overidden by -x key). Default is 0. verbose 0 # Main address: address 2:321/1.16@fidonet # AKAs: address 90:800/1.16@nest address 51:901/1.16@atarinet address 2:320/107.16@fidonet address 52:3300/104@globalnet # Passwords for connections. checked by ifcico. # Inserted into EMSI and yoohoo packets. password 2:321/1 XXXXXXXX password 52:3300/1 XXXXXXXX password 2:320/107 YYYYYYYY password 90:800/1 YYYYYYYY password 51:901/1 YYYYYYYY # Passwords for packets. # iftoss will tell you if the password of the packet doesn't match. (and it # won't be tossed if -DPARANOID specified at compile-time) # Inserted into outgoing mail packets. # If for a given node no paacketpasswd is specified, password will be used. #packetpasswd 2:5929/6 AZERTY # Include config extention file (here: file with real passwords). # Includes may be nested. If the nesting is cyclic, the program cycles too. # You are warned. #include /etc/ifmail/passwds # System alias file - try to fetch ftn-style aliases from there. # If "from" address of a message from FidoNet matches _right_ side # of some entry in sysalias file, then the Reply-To: header is created # in the RFC message with the name part taken from the left side of the # sysalis entry and domain part taken from myfqdn (below). E.g., if a # fidonet message comes from "John Smith of 1:234/567.89@fidonet" and # there is an entry in the sysalias file: # "jsmith: John.Smith@p89.f567.n234.z1.fidonet.org" # and fqdn value is "pccross.msk.su", then the resulting message will # contain a line: "Reply-To: jsmith@pccross.msk.su". sysalias /etc/ifmail/aliases # This host fully qualified domain name to add to the alias above myfqdn Raceme.frmug.fr.net # If this is specified, beginning of the fidonet message will be scaned # for RFC looking headers _only_ if the message is addresses to the name # specified. If not specified, beginning of all message is scaned. I # DO NOT recommend specifying magicname unless you know that parsing # headers will really break things. magicname UUCP # Directory for incoming packets/files: inbound /var/spool/ifmail/inb # Directories for "listed" and "protected" sessions listinbound /var/spool/ifmail/inb protinbound /var/spool/ifmail/inb # Directory for outgoing packets (default domain and zone): # other zones will be like "/usr/spool/fnet/outb.003", # other domains will be like "/usr/spool/fnet/." outbound /var/spool/ifmail/outb # If you specify this, outgoing arcmail files will go to `outbound', # but be reffered as being in `dosoutbound' in the .flo files # This is intended for using ms-dos mailers, ifcico won't been able to # handle that. #dosoutbound h:\spool\ifmail\outb # Directory from which the file requests are satisfied #public /var/spool/uucppublic public /pub # Directory with executables to satisfy "magic" file requests # if requested a file present in this directory, it will be # executed and stdout sent to the remote system. If the file # is not executable, it is read line by line and the lines are # processed as if they were received file requests (recusively). # Execution of commands may compromize security! You are warned. #magic /usr/lib/ifmail/magic # Primary nodelist (serves "outbound" directory and domain from the # first "address" statement). Name expanded with ".NNN" if neccessary. nodelist /var/spool/ifmail/nodelist/fidonet # Secondary nodelists and nodelists for other domains. # use directory name from the first "nodelist" statement. # filename originating address nodelist atarinet 51:901/1@atarinet nodelist fidonet 2:321/1@fidonet nodelist globalnet 52:3300/1@globalnet nodelist nest 90:800/1@nest # domain translations, just context substitution. Leading dot recommended. # May contain '@'-sign too. First matching used. # NOTE: If you specify at least one domtrans line, there will be _NO_ # default for fidonet <--> fidonet.org. Don't forget to specify it # explicitly as a last line. # FTN side Internet side domtrans .atarinet .atarinet.ftn domtrans .globalnet .globalnet.ftn domtrans .nest .nest.ftn domtrans .z51.fidonet .z51.atarinet.ftn domtrans .z52.fidonet .z52.globalnet.ftn domtrans .z90.fidonet .z90.nest.ftn # fidonet (zones 1 -> 6 ) domtrans .z1.fidonet .z1.fidonet.org domtrans .z2.fidonet .z2.fidonet.org domtrans .z3.fidonet .z3.fidonet.org domtrans .z4.fidonet .z4.fidonet.org domtrans .z5.fidonet .z5.fidonet.org domtrans .z6.fidonet .z6.fidonet.org # default (the rest) domtrans .fidonet .ftn # Automatically updated alias database. If omitted or inaccessible, # ^aREPLYADDR and ^aREPLYTO kludges are generated in fido messages. database /var/spool/ifmail/ifdbm # Sequencer file (used to generate unique IDs) sequencer /var/spool/ifmail/seq # Areas file (format: "AREA newsgroup distribution") areas /etc/ifmail/Areas # Bad groups prefixes - do not pass to fido if appear in Newsgroups header # This is NOT the same as "!news.group" in the cnews "sys" file. #badgroup relcom.ads. #badgroup relcom.commerce. # Maximum allowed number of groups in the Newsgroups header, article will # not be gated if exeeds. If zero or omitted - no limit. # Another way of limiting the number of messages gated is to not define a # general line in the Areas file, so messages are generated only for areas # explicitely defined. # Is better to not define maxgroups and don't define a generic ng -> ECHO # gating rule in Areas #maxgroups 10 # Directory where character translation tables (for eight-bit charsets) are. # # The format of the files is as follows: # # # # (one character in a line). and can be specified # in one of four notation styles: # - character itself in single quotes (e.g. 'a') # - decimal number (e.g. 123) # - octal number (e.g. 0123) # - hexadecimal number (e.g. 0x7f) # # Crosshatch ('#') denotes start of comment; space, tab and crosshatch # characters cannot be specified using the first (character) notation. # maptabdir /etc/ifmail/maptabs # Transport programs for mail and news, used by iftoss # for sendmail, $F expands to "from" address, $T - to "to" address. sendmail /usr/sbin/sendmail -oi -f $F $T rnews /usr/lib/news/rnews # Toss program, used by ifunpack iftoss /usr/lib/ifmail/iftoss # Unpackers, used by ifunpack. # $F expands to archive file name unzip /usr/bin/unzip -Lojq $F unarj /usr/bin/unarj e $F unlzh /usr/bin/lha xi $F unarc /usr/bin/unpack $F unzoo /usr/bin/zoo -extract $F unrar /usr/bin/unrar e $F # Packer program, used by ifpack # $F expands to archieve file name, $P - to list of packet names packer /usr/bin/zip -q $F $P # Maximum arcmail file size, ifpack will start new arcmail file if exceeds maxfsize 500000 # Maximum packet size, ifmail/ifnews will start new packet if exeeds. # *.?ut files are NOT created if nonzero specified, you must run ifpack # to make packets go out. maxpsize 30000 # Flavors that should not be subject to packet size limiting. These # flavors will be put into `ready to send' packets and not packed # by ifpack. Special flavor 'm' means "all netmail". nonpacked cm # cnews log file and (temporary) database for seen-bys newslog /usr/lib/news/log msgidbm /tmp/ifmsgids # From this line on, values may be prefixed by a logical expression in # round brackets. Operators are: '!', '&', '|', 'Xor'. # Possible elements are: # - Nodelist flags (like "CM", "MNP", "V32" etc.) # - speed # where is '=', '!=', '<', '>', '<=', '>=' # - address # where is a (possibly incomplete) fidonet address, # e.g. "5020/*" # - time [,,...] # where is a day spec. with optional time spec., e.g. # Wk2000-0900,Sat1800-0000,Sun # - phone # e.g. "phone 7-095-" # Dialing parameters # of multiple "ModemPort", "ModemReset", "ModemDial", "ModemHangup" lines, # first matching is used. # of multiple "PhoneTrans", "ModemConnect", "ModemError" lines, all matching # are used. # In send and expect strings, following substitutions are made: # \\ '\' character # \r carriage return (0x0d) # \n new line (0x0a) # \t tab (0x09) # \b backspace (0x08) # \s space (0x20) # \NNN (where N is an octal digit) - character with octal code NNN # \d 1 second delay (send strings only) # \p 1/4 second pause (send strings only) # \T translated telephone no. (send strings only) # \D untranslated telephone no. (send strings only) # ModemPort present a blank-separated list of ports with possible speed # extention (separated by colon); if speed is prefixed with 'L', it is # a "locked" port speed, otherwise it is a maximum speed to be set, while # actual speed is taken from the nodelist. If speed is omitted (or set # to zero), previous port speed is not changed. #ModemPort (time Any0000-0900,Sat,Sun) ttyS0 ModemPort ttyS3:L38400 # PhoneTrans lines provide rules to change phone prefixes to make local # or long-distance calls. In the example below, my country code is 7, # and local dialing area is 095. From the numbers starting with "7-095-" # the prefix is stripped and the 7-digit remainder is dialed. For # the numbers starting with "7-" but not with "7-095-", the country prefix # "7-" is stripped and the long-distance dialing prefix "8W" substituted. # For the numbers not matching any of the above, international # call is performed: international dialing prefix "8W10" is prepended # to the unmodified 11-digit number. Generally, the syntax is: # "PhoneTrans / " PhoneTrans 33-1 / 161 PhoneTrans 33- / PhoneTrans / 19 ModemReset ATZ\r ModemDial AT&F&C1&D2&R1L3V1Q0X4&W0F0D\T\r ModemDial ATD\T\r ModemHangup ATH\r ModemOK OK ModemConnect CONNECT ModemError BUSY ModemError NO\sCARRIER ModemError NO\sDIAL ModemError RING\r ModemError ERROR # Timeouts to wait for "OK" and "CONNECT", cannot be prefixed by logical # expression. TimeoutReset 3 TimeoutConnect 70 # Call options (time, address and nodelist flag dependant) # All matching are applied in the order they are specified. # Possible options are "[No]Call", "[No]Hold", "[No]PUA", "[No]EMSI", # "[No]WaZOO", "[No]Freqs", "[No]Zmodem", "[No]ZedZap", "[No]Janus", # "[No]Hydra". Here, WaZOO stands for YooHoo/2U2 handshake, not for # the transfer scheme. FTS-0001 handshake and DietIFNA scheme cannot # be disallowed (because they are mandatory by standart). "Hold" # means really hold "hold" type packets and files: do not send them # if our system initiated the session, "NoHold" means send "hold" # packets when our system initiated the session. "NoPUA" stands for # "No PickUp All", i.e. PUP ("Pick Up Primary"). NoCall means do not # perform outbound call. This flag has no effect on the nodes # explicitly specified in the command line. # Default options are "everything allowed". options (time Any0000-2359) NoHold # EMSI data for this node # From this line on values CANNOT be prefixed with logical expression # For now, escaping of '}' and ']' unimplemented, try to avoid these # characters please! Name Raceme Headquarter Location Fondettes, France SysOp Christophe Boyanique Phone 33-1-47421791 (voice) Speed 14400 Flags XA,V32B,V42B --------------------------------------------------------------------------- UTILISATION: ============ Bon voilà tout est configuré; il ne reste plus qu'à poller pour recevoir le courrier. Le conseil du jour est de faire tout ça de manière automatique (de tout façon un ordinateur sous linux est fait pour tourner 24h/24). Le meilleur moyen d'automatiser les tâches sous linux est d'utiliser le daemon crond ('man crond' pour plus d'infos). Pour l'envoi du mail; sendmail se charge tout seul d'appeler ifmail qui fabriquera les packets. Pour l'envoi des news; il faut lancer le fichier send-ifmail (à installer dans le répertoire /usr/lib/news). Il suffit donc de rajouter dans la crontab de l'utilisateur news (/usr/spool/cron/crontabs/news): --------------------------------------------------------------------------- # # Envoie les articles en spool 00 * * * * /usr/lib/news/rnews -U # # Purge quotidienne des news # 15 04 * * * /usr/lib/news/bin/news.daily < /dev/null # # Envoie du courrier FTN vers ifmail # 30 04 * * * /usr/lib/news/send-ifmail --------------------------------------------------------------------------- Il suffit ensuite de compresser les packets, poller chaque BBS et décompresser les packets reçus. Ces trois opérations se font dans le fichier crontab de l'utilisateur fnet. Lorsque l'on lance ifmail sans argument; celui-ci va poller les nodes contenant du crash-mail. Pour le forcer à poller; il suffit donc de créer un fichier vide avec l'extension '.clo' Pour CanadaDry par exemple ce sera le fichier /usr/spool/ifmail/outb/01410001.clo 141 = 321 en hexa 1 = 1 !!!???!!! Ce qui représente l'adresse 2:321 --------------------------------------------------------------------------- # # Compactage du courrier 4:45 # 45 04 * * * /usr/lib/ifmail/ifpack # # Fichier de poll à 5:00 pour CanadaDry (Fido) & TheBBS (NeST) # 00 05 * * * touch /usr/spool/ifmail/outb/01410001.clo 00 05 * * * touch /usr/spool/ifmail/nest/03200001.clo # # Appel des deux BBS # 00,05,10,15,20,25,30,35,40,45,50,55 05 * * * /usr/lib/ifmail/ifcico -r1 # # Virer les fichiers de poll à 06h00 # 00 06 * * * rm -f /usr/spool/ifmail/nest/03200001.clo 00 06 * * * rm -f /usr/spool/ifmail/outb/01410001.clo # # Décompactage du courrier # 15 06 * * * /usr/lib/ifmail/ifunpack --------------------------------------------------------------------------- CONCLUSION: =========== Bon cette doc est terminée. Ce n'est qu'un premier jet et elle est assez succinte mais je manque de temps. Si vous utilisez cette doc et rencontrez des manques; n'hésitez pas à me contacter pour la compléter. Vous pouvez m'envoyer du netmail au 2:321/1.16; ou vous connecter à ma machine en libre-accés de 21h30 à 5h00 UNIQUEMENT au 47.42.17.91 (province). Christophe Boyanique - Ecrivain de cette fabuleuse doc :) Jose Mans - erreur de compilation sur systemes bugges :)