  Fido-Point-HOWTO
  Roland Rosenfeld, roland@p13.flokiste.fido.de, 2:2450/111.13
  $Revision: 2.3 $ $Date: 1994/10/01 01:32:22 $

  Dieses File soll helfen, einen Fido-Point unter Linux zu installieren,
  wobei ifcico als Mailer und FidoGate als Gatewaysoftware verwendet
  werden.

  1.  Benoetigte Programme


  1.1.  FidoGate

  Dies ist die Gateway-Software, welche Fido-Messages in Usenet-
  News/Mail konvertiert. Die aktuelle Release ist Version 3.8.

  Das Programm wird von Martin Junius (mj@sungate.fido.de, 2:2452/110)
  entwickelt.

  Die aktuellste Version findet man immer in (ftp://ftp.dfv.rwth-
  aachen.de/pub/mail+news), aber neuerdings auch auf
  (ftp://sunsite.unc.edu/pub/Linux/system/Mail). Weiterhin kann man das
  Programm auch bei Martin requesten (2:2452/110 HST, 2:2452/111 ISDN).


  1.2.  ifcico

  Dies ist ein Mailer aehnlich Binkley-Term, der allerdings mehr Unix-
  like ist, d.h. er wartet nicht aktive (unter Dos stoert das ja nicht)
  und orientiert sich auch ansonsten an uucico von UUCP. ifcico ist im
  Paket IFmail enthalten. Die aktuelle Version ist 2.5.

  Das Programm wird von Eugene Crosser (crosser@pccross.msk.su,
  2:5020/230) entwickelt.

  IFmail enthaelt neben ifcico auch eine eigene Gateway-Software, aber
  ich favourisiere stattdessen FidoGate und beschreibe hier auch nur die
  Konfiguration mit FidoGate.

  Die aktuellste Version wird regelmaessig von Eugene nach
  (ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin) und
  (ftp://sunsite.unc.edu/pub/Linux/system/Mail) hochgeladen.



  1.3.  CNews

  Dies ist der News-Transport-Agent, d.h. das Programm, das die News
  fuer Dich transportiert. In den meisten Distributionen findet man eine
  vorkonfigurierte Version von cnews, allerdings ist die haeufig etwas
  veraltet und leider fehlten bisher immer die Manpages. Daher empfehle
  ich, eine komplette Source-Distribution zu besorgen. Ich verwende die
  Performance-Release vom 20.2.93 auf  (ftp://ftp.uu.net/news).
  Alternativ kann man natuerlich auch INN verwenden, aber dann kann ich
  nicht weiterhelfen.


  1.4.  smail

  Dies ist der Mail-Transport-Agent, der die Mails transportiert. Ich
  verwende hier die Version 3.1.28.1 aus Slackware 2.0. Auf Probleme
  gehe ich in einem spaeteren Kapitel ein. Alternativ kann man auch
  sendmail einsetzen, damit habe ich keine Erfahrung.



  1.5.  newspack

  Wenn Du cnews oder smail als Sourcen installierst, solltest Du Dir die
  neuste Version von newspak besorgen. Damit werden dann schon die
  Anpassungen dieser Programme an Linux vorgenommen.


  1.6.  Newsreader

  Hier kann man einen beliebigen Newsreader verwenden, z.B. tin, nn,
  trn, xvnews, xrn,... Der Newsreader muss allerdings einen UUCP-Modus
  besitzen, d.h. nicht ausschliesslich mit NNTP arbeiten. Ich empfehle
  fuer den Anfang tin, da tin einfach zu bedienen ist und auch wenig
  Probleme mit der Konfiguration auftreten.


  1.7.  Mailreader

  Auch hier kann jeder verwenden was er will: elm, pine, mail, xmail,
  xmailtool,...


  1.8.  Packer

  Manche Packer finden sich schon in den Distributionen. Falls spezielle
  Packer fehlen, kann man sich diese auf diversen Servern besorgen, die
  wie  (ftp://sunsite.unc.edu/utils/compress) ein spezielles Packer-
  Verzeichnis besitzen.


     ZIP
    unzip51 entpackt auch die das neue ZIP-Format. Es gibt
    inzwischen auch ein zip, das wieder nach dem neuen Format packt.

     ARJ
    unarj241 entpackt ARJ-Archive, allerdings gibt es dazu unter
    Linux keinen Packer.

     LZH
    lharc und lha exisiteren auch als Linux-Port.

     ARC
    Alter, aber wichtiger Packer, denn die meisten Nodelisten sind
    mit arc gepackt. Es existiert mindestens ein Linux-Port.


  1.9.  TIC-Prozessor

  Es gibt einige kleinere TIC-Prozessoren, die in PERL geschrieben
  wurden. Insbesonere ist hier lt010b.tgz von Cees de Groot
  (cg@tricbbs.fn.sub.org, 241:10000/1512) zu nennen.




  2.  Weitere Dokumentation


     News-HOWTO
    zur Konfiguration von cnews

     Mail-HOWTO
    zur Konfiguration von mail

     NET-2-HOWTO
    zur Konfiguration des loopback-Netzes



  3.  Meine Beispielkonfiguration

  Ich werde hier als Beispiel meine eigene Konfiguration fuer die drei
  FTN-Netze Fido (Zone 2), Gernet (Zone 21) und Fido.de (Zone 242)
  angeben. Ich habe dabei folgende Adressen:

  o  2:2450/111.13 (Fido)

  o  21:100/64.13  (Gernet)

  o  242:5000/4.13 (fido.de)

  Ich polle alle drei Netze bei ein und dem selben Boss, aber bei
  verschiedenen Uplinks wuerde sich an der Konfiguration auch nicht viel
  aendern. Weiterhin habe ich keinen UUCP-Uplink, aber fido.de bietet
  mir Internet-Anschluss ueber das Gate von Martin Junius in Aachen. Ich
  bin aus dem Internet also als roland@p13.flokiste.fido.de erreichbar.
  Meine Internet-Mails schicke ich an UUCP @ 242:4900/99.

  Falls Du noch kein Internet-Gate kennst, solltest Du Dich dringend
  danach umsehen, denn FidoGate unterstuetzt selbiges ausgezeichnet und
  geht davon aus, dass Du entweder einen UUCP-Uplink oder wenigstens
  Connection zu einem Gate hast. (schiele-ct.de und fido.sub.org sind
  meines Wissens kostenlos nutzbar).

  Und noch eine Bitte: Auch wenn ich ueberall in diesem File meine
  Adressen als Beispiel verwende, solltest Du auch fuer die ersten
  Versuche die Adressen und den Rechnernamen aendern, denn sonst bekomme
  ich die Antworten auf die Fragen, die Du unter meinem Namen stellst...



  4.  Zugriffsrechte

  Die Zugriffsrechte der einzelnen Dateien sind ein recht heikles Thema
  bei der Kombination von FidoGate, ifcico und News. Daher solltest Du
  zunaechst einmal nachsehen, ob die User news und uucp bei Dir
  existieren. Bei mir sieht das in /etc/passwd wie folgt aus:

  uucp:sadfasdfasdf:5:5::/home/uucp:/bin/tcsh
  news:aasdfasdfsda:24:24::/home/news:/bin/tcsh


  Weiterhin muessen noch die Groups uucp und news existieren. Es hat
  sich als hilfreich erwiesen, den User news zusaetzlich in die Group
  uucp und den User uucp zusaetzlich in die Group news einzutragen. Aus
  meiner /etc/group:

  uucp::5:uucp,news
  news::24:news,uucp


  Weiterhin sollten moeglichst alle weiteren Spool-Dateien auch fuer die
  Group schreibbar sein, aber dazu spaeter mehr.



  5.  Installation von FidoGate

  Ich beziehe mich hier auf Version 3.8, bei aelteren Versionen sind
  einige der Konfigurationsmoeglichkeiten noch nicht vorhanden.

  Zunaechst ist jetzt fidogate/src/config.h zu editieren. Ich habe
  folgende aenderungen an der Orginal-Datei vorgenommen: (das ist nicht
  die komplette Datei, sondern nur die Zeilen die ich geaendert habe!)

  /* #define HOSTS_RESTRICTED */
  #define ROUTE_VIA_FTN_GATEWAY
  #define SECURE
  /* #define NO_BRAIN_DEAD_GATEWAYS */
  /* #define PASSTHRU_NETMAIL */
  /* #define PASSTHRU_ECHOMAIL */
  #define NO_FROM_LINE
  #define OUTBOUND  "outbound"  /* Output of rfc2fido */

  #ifdef SECURE     /* Secure permissions */
  # define PACKET_MODE  0600        /* Mode for outbound packets */
  # define BSY_MODE 0664        /* Mode for BSY files */
  # define FLO_MODE 0664        /* Mode for FLO files */
  # define DATA_MODE    0660        /* Mode for ffx data files */
  # define DIR_MODE 0775        /* Mode for directories */
  # define CONF_MODE    0664        /* Mode for written config files */
  #else         /* Open permissions */
  # define PACKET_MODE  0666        /* Mode for outbound packets */
  # define BSY_MODE 0666        /* Mode for BSY files */
  # define FLO_MODE 0666        /* Mode for FLO files */
  # define DATA_MODE    0666        /* Mode for ffx data files */
  # define DIR_MODE 0777        /* Mode for directories */
  # define CONF_MODE    0666        /* Mode for written config files */
  #endif


  Man sollte aus den Kommentaren von config.h erkennen, was das bedeuten
  soll. Es soll keine Beschraenkung auf eingeragenen Hosts vorgenommen
  werden, meine Internet-Mails sollen ueber ein Fido-Usenet-Gate
  (fido.de) geschickt werden und es soll keine From-Zeile generiert wer-
  den (selbige haette zur Folge, dass meine interne Adresse in den Post-
  ings auftritt. Da ich keinen echten Internet-Anschluss habe, ist das
  nicht zu empfehlen, fuer Leute ganz ohne Internet-Anschluss (nichtmal
  Gate) ist es ganz unguenstig, da dann im Internet Adressen generiert
  werden, auf die man nicht antworten kann).  Das Outbound-Directory
  heisst bei mir aus alter Gewohnheit outbound und nicht nur out. Man
  kann das problemlos umbenennen, muss nur insgesamt konsistent bleiben.
  Weiterhin habe ich die Permissions noch auf meinen Geschmack abgeaen-
  dert und es sollen flo-Files generiert werden, damit ifcico spaeter
  weiss, welche Files wohin verschickt werden sollen.

  Als naechstes sind noch einige aenderungen in fidogate/src/Makefile
  vorzunehmen:

  LIBDIR      = /usr/local/lib/fidogate
  SPOOLDIR  = /var/spool/fnet
  OWNER     = uucp
  GROUP     = uucp
  PERM_DIR  = 775


  Unter install-dirs solltest Du noch $(SPOOLDIR)/out in
  $(SPOOLDIR)/outbound aendern.

  Damit werden die Verzeichnisse an meine Verzeichnis-Struktur angepasst
  und uucp.uucp wird User von FidoGate. Spaeter wird auch ifcico unter
  dem User uucp.uucp arbeiten.

  Nun solltest Du als root folgende Kommandos ausfuehren koennen:

  make depend
  make all
  make install-dirs
  make inslall-all


  Nun wechselst Du nach fidogate/lib. Hier aenderst Du wieder im Make-
  file

  LIBDIR      = /usr/local/lib/fidogate


  Dann startest Du noch

  make install


  Anschliessend stehen alle benoetigten Dateien in
  /usr/local/lib/fidogate. Jetzt musst Du natuerlich noch einige Anpas-
  sungen an Dein System vornehmen. Hier zunaechst mal ein komplettes
  /usr/local/lib/fidogate/config:


  ______________________________________________________________________
  #:ts=8
  #
  # FIDOGATE main config file
  #
  # p13.flokiste.fido.de
  #
  # Format:  keyword arg ...
  #   keyword and args may be put in double quotes "..."
  #

  #
  # Directories: lib, spool, BinkleyTerm-style outbound base dir (without
  # the .../out.xxx), BinkleyTerm-style inbound dir
  #
  # lib, spool defaults are defined in config.h
  #
  LibDir      /usr/local/lib/fidogate
  SpoolDir  /var/spool/fnet
  Outbound  /var/spool/fnet
  Inbound    /var/spool/fnet/inbound

  #
  # Internet address
  #
  Hostname  p13
  Domain      .flokiste.fido.de

  # Optional domain name for entries in HOSTS file
  HostsDomain   .fido.de

  #
  # Default origin line for EchoMail messages
  #
  Origin      " Thor - Linux-Point der FloKiste Koeln "

  #
  # Organization header for News
  #
  Organization  "Thor-Gate"

  #
  # FTN addresses - there must be a corresponding `uplink' statement
  # for each `address' statement
  #
  # The second address in the `address' statement is an optional fakenet
  # address for 3D points.
  #
  #     real     fakenet (empty: use 4D)
  #     ----     -------
  Address    2:2450/111.13
  Address    21:100/64.13
  Address    242:5000/4.13

  Uplink      2:2450/111
  Uplink      21:100/64
  Uplink      242:5000/4

  #
  # FTN - Internet gateway. This address is used, if ROUTE_VIA_FTN_GATEWAY
  # is defined in config.h
  #
  Gateway    242:4900/99

  #
  # Zones and domains, the outbound directory is relative to the one
  # specified with `Outbound'.
  #
  #     zone    Inet domain FTN domain  Outbound
  #     ----    ----------- ----------  --------
  Zone      default .fidonet.org    fidonet  -
  Zone      242 .fidode  fidode   fidode
  Zone      1   .fidonet.org    fidonet  outbound.001
  Zone      2   .fidonet.org    fidonet  outbound
  Zone      3   .fidonet.org    fidonet  outbound.003
  Zone      4   .fidonet.org    fidonet  outbound.004
  Zone      5   .fidonet.org    fidonet  outbound.005
  Zone      6   .fidonet.org    fidonet  outbound.006
  Zone      21  .gernet  gernet   gernet
  ______________________________________________________________________


  Besonderes Augenmerk moechte ich dabei auf folgende Zeilen legen: Dies
  ist mein Rechnername in Internet:

  Hostname  p13


  Dies ist meine Domain im Internet:

  Domain      .flokiste.fido.de


  Wenn Du keine Internet-Adresse hast, kannst Du auch einen beliebigen
  Namen als Hostname einsetzen und dann als Domain .uucp einsetzen
  (nicht den Punkt vergessen). Allerdings musst Du dann unbedingt darauf
  achten, dass Du in fidogate/src/config.h NO_FROM_LINE definiert hast!

  Das ist die Domain der Rechner, die in hosts  (kommt spaeter) gelistet
  sind:

  HostsDomain   .fido.de


  Damit kommen wir gleich zur Datei hosts. Das gegebene Beispiel ist
  speziell auf Martin Junius' Konfiguration angepasst und laesst sich
  sonst leider von niemanden sinnvoll verwenden. Du hast jetzt zunaechst
  mal die Moeglichkeit, die Datei zu loeschen (am besten anschliessend
  mit touch hosts eine neue leere Datei anlegen), so dass keine symbol-
  ischen Namen mehr fuer Rechner verwendet werden. Jedoch sollten min-
  destens Deine eigenen Adressen darin stehen:


  ______________________________________________________________________
  # /usr/local/lib/fidogate/hosts
  #
  # Fields:
  #
  # node    FTN address
  #
  # hostname    Host name in the local domain (config: HostsDomain, Domain)
  #     or fully qualified domain name (trailing `.') or `-' for
  #     listed node without host name.
  #
  # options -p  Generate addresses with point, e.g. `p99.hippo.fido.de'
  #     -d  Node is currently down (can't receive mail)
  #
  # node      hostname          options
  #-----      --------          -------
  #
  2:2450/111    flokiste            -p
  242:5000/4    flokiste            -p
  21:100/64 flokiste            -p
  ______________________________________________________________________


  Alternativ kannst Du auch alle Zeilen, die nicht mit 2: beginnen
  loeschen, denn dann stehen nur noch die Fido-Adressen drin und Du hast
  keine Proble mehr.  Wenn Du Lust hast, kannst Du auch Rechner von
  anderen Domains eintragen, wie das Beispiel tweety.dfv.rwth-aachen.de
  zeigt. Fuer Namen mit Domain solltest Du nur den abschliessenden Punkt
  nicht vergessen. So koenntest Du z.B. auch die Rechner von schiele-
  ct.de eintragen, die ja auch alle eine Fido- und eine Internet-Adresse
  haben. Wenn Du nur schiele-ct.de-Rechner eintragen willst, dann kannst
  Du im config-File HostsDomain auch auf schiele-ct.de aendern und dann
  alle schiele-ct.de-Rechner ohne Domain in hosts eintragen. Ich hoffe,
  das ist klar geworden, denn fuer alle Rechner, die nicht in hosts
  drinstehen, wird die Adresse in z.B. p13.f111.n2450.z2.fidonet.org
  (o.ae.) gewandelt, bei den Rechnern in hosts, z.B. in
  p13.flokiste.fido.de. Du solltest uebrigens moeglichst bei allen Rech-
  nern in hosts das Flag -p setzen, damit Adressen mit Point generiert
  werden. Ansonsten wird die Point-Nummer naemlich geloescht und dann
  muss der Message-Tracker des Nodes wieder unnoetige Arbeit leisten.

  Des weiteren kannst Du noch die bounce.*-Dateien auf Dein System
  anpassen, aber ich kann mich nicht entsinnen, dass die bei mir
  schonmal benoetigt wurden.  Auch aliases kannst Du anpassen, brauchst
  Du aber nicht.

  Es bleibt areas, welches mindestens alle Echmail-Areas, die Du
  verwendest, enthalten sollte. Wenn mehr Areas darin stehen, stoert das
  aber auch nicht. Man beachte, dass die deutschen Fido-Echos (z.B.
  LINUX.GER) in fido.ger-Hiearchie (z.B. fido.ger.linux) konvertiert
  werden. Internationale Fido-Echos werden nach fidonet.* umbenannt. Die
  Namen der Usenet-Echos werden nur in Kleinschreibung konvertiert.
  Weiterhin sollte man sich fuer jede andere Domain (Zone) eine eigene
  Hierarchie anlegen.  Bei allen Areas, die nicht zur Zone 2 gehoeren,
  muss weiterhin noch angegeben werden, zu welcher Zone sie gehoeren. Es
  sind im uebrigen noch diverse andere Flags moeglich. Hier ein
  Ausschnitt aus meiner areas-Datei:


  ______________________________________________________________________
  # /usr/local/lib/fidogate/areas
  #
  # Echomail area <-> News newsgroup conversion
  #
  # Options:
  # -z ZONE     Alternate zone AKA for this area
  # -d DISTRIBUTION Distribution header for this newsgroups
  # -o ORIGIN     * Origin line for this area
  # -m       No MAUS messages
  # -g       No gated messages
  # -l       Only local crosspostings
  # -x       No crosspostings
  # -8       Messages with 8bit ISO-8859-1 charset
  #
  # All fields may be quoted in "..."
  #
  # Format:
  #
  # area            newsgroup            [-option]
  # ------------------------    --------------------------    ---------
  FLOKISTE.INTERN       fido.flokiste.intern
  FLOKISTE.STAT         fido.flokiste.stat
  LINUX.GER         fido.ger.linux
  CT.GER            gernet.ct            -z 21
  CT.PROJEKTE           gernet.ct.projekte      -z 21
  CT.PRUEFSTAND         gernet.ct.pruefstand      -z 21
  CT.SUPPORT            gernet.ct.support        -z 21
  FIDO.DE           fido.de         -z 242
  5000.INTERNET         fido.5000.intern          -z 242
  COMP.OS.LINUX.ADMIN       comp.os.linux.admin    -z 242
  COMP.OS.LINUX.ANNOUNCE    comp.os.linux.announce  -z 242
  COMP.OS.LINUX.DEVELOPMENT comp.os.linux.development     -z 242
  COMP.OS.LINUX.HELP        comp.os.linux.help      -z 242
  COMP.OS.LINUX.MISC        comp.os.linux.misc      -z 242
  DE.COMP.OS.LINUX      de.comp.os.linux          -z 242
  ______________________________________________________________________


  Damit ist die Konfiguration von FidoGate abgeschlossen.



  6.  Die Installation von ifcico

  Ich beziehe mich hier auf die aktuelle Version von ifcico, welche sich
  im Paket ifmail-2.5 findet. Wer noch eine aeltere Version verwendet,
  sollte darauf achten, dass sich das Logfile-Handling von 2.2 zu 2.3
  veraendert hat.

  Zunaechst muss man das globale Compiler-Konfigurations-File
  ifmail/CONFIG editieren. Ich fuehre hier einfach mal alle bei mir
  noetigen aenderungen auf:

  LOCKDIR     = "/var/spool/uucp"
  PUBDIR      = "/var/spool/uucppublic"
  OWNER = uucp


  Der eine oder andere wird weiterhin ggf. noch einige andere Pfade aen-
  dern wollen. So wird dabei das Debug-File in /tmp angelegt und das
  Logfile in /usr/local/lib/fnet, was allerdings nicht stoert, da das
  Logifile seit ifcico 2.3 sowieso vom syslogd gehandelt wird (mehr dazu
  spaeter).


  Jetzt kann man mit

  make depend
  make all
  make install


  die Programmdateien in /usr/local/lib/fnet installieren.

  Nun muss man noch das config-File von ifcico installieren. Ein
  Beispiel findet man in ifmail/misc/config. Diese kopiert man nun nach
  /usr/local/lib/fnet und editiert es passend. Hier ist ein Beispiel:


  ______________________________________________________________________
  # /usr/local/lib/fnet/config
  #
  # IFmail - Configurations-File
  # von Roland Rosenfeld 07.08.94

  # Log file name. Overrides compile-time default.
  logfile    /var/adm/iflog

  # Debug file name. Overrides compile-time default.
  debugfile /var/adm/ifdebug

  # Debugging verbosity level (is overidden by -x key). Default is 0.
  # Folgende Kombination generiert ein Debug-File von ertraeglicher Laenge, das
  # man noch lesen kann:
  verbose        bcdefghijklmnqrt

  # Main address:
  address    2:2450/111.13@fidonet

  # AKAs:
  address    21:100/64.13@gernet
  address    242:5000/4.13@fidode

  # Passwords: Hier koennen die Passwords direkt stehen oder man lagert sie in
  # eine externe Datei aus, welche dem User uucp gehoert und die Permissions
  # 600 hat, damit niemand die Passwords lesen kann.
  #include      /usr/local/lib/fnet/passwords
  password  2:2450/111  GEHEIM
  password  21:100/64   GEHEIM
  password  242:5000/4  GEHEIM

  # Nun die _echte_ Internet-Adresse (falls nicht vorhanden kann hier auch
  # rechnername.uucp stehen).
  myfqdn      p13.flokiste.fido.de

  # Directory for incoming packets/files:
  inbound    /var/spool/fnet/inbound
  # Directories for "listed" and "protected" sessions
  listinbound   /var/spool/fnet/inbound
  protinbound   /var/spool/fnet/inbound

  # 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/<domain>.<zone>"
  outbound  /var/spool/fnet/outbound

  # Directory from which the file requests are satisfied
  public      /var/spool/uucppublic

  # 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. It is dangerous!
  # You are warned.
  magic     /usr/local/lib/fnet/magic

  # Erste Nodeliste:
  # Es wird nach nl_short.xxx gesucht und die neueste Version verwendet.
  # nl_short generiere ich manuell aus der kompletten Nodeliste, da mir das
  # Compilieren der kompletten Liste zu lange dauert.
  nodelist  /var/spool/fnet/nodelist/nl_short

  # Weitere Nodelisten der anderen Zonen:
  # (Achtung: ifindex hat noch einen Bug, der zu einem Core fuehrt, falls eine
  #  Nodenummer doppelt auftritt, wie z.B. bei Verwengung von nodelist und
  #  r24classic)
  #     filename    originating address
  nodelist  gernet    21:100/64.13@gernet
  nodelist  242_list    242:5000/4.13@fidode

  # Sequencer file (used to generate unique IDs)
  sequencer /usr/local/lib/fnet/seq

  # An dieser Stelle stehen im Beispiel-Config-File (ifmail/misc/config) noch
  # diverse Erlaeuterungen und Optionen, die ich groesstenteils nicht verwende
  # und daher hier nicht auffuehre. Man sollte sich die Moeglichkeiten jedoch
  # dort mal ansehen.

  # Das Modem haengt an /dev/ttyS1, der FIFO ist auf 38400 gelockt (ohne FIFO
  # sollte man stattdessen auf 19200 locken).
  # Ich verwende ausdruecklich ttyS und nicht cua, da bei mir noch mgetty
  # laeuft. Eine genau Erklaerung zu dem Thema findet sich in der Doku zu
  # mgetty+sendfax von Gert Doering.
  ModemPort ttyS1:L38400

  # Nun die Konvertierung der Telefonnummern. Ganz habe ich das noch nicht
  # verstanden, aber folgendes sollte (mit der entsprechenden eigenen Vorwahl)
  # fuer ganz Deutschland korrekt sein. Fuer Spezialfaelle sollte man sich ggf.
  # nochmal ifmail/misc/config ansehen.

  PhoneTrans    49-2236-    /
  PhoneTrans    49- /   0
  PhoneTrans    /   00

  # In ModemReset baue ich die passenden AT-Befehle fuer mein Modem ein:
  # AT Z0   = Initialisieren mit Profile 0
  # AT M3   = Lautsprecher nach dem Waehlen aus
  ModemReset ATZ0\r\n\dATM3\r\n\d

  # Pulswahl:
  ModemDial ATDP\T\r
  ModemHangup   ATZ\r
  ModemOK    OK

  # Statt einem einfachen "CONNECT" gebe ich viele Connect-Strings an, um
  # nachher im Logfile sehen zu koennen, mit welcher Geschwindigkeit connected
  # wurde.
  ModemConnect  CONNECT\s76800
  ModemConnect  CONNECT\s57600
  ModemConnect  CONNECT\s38400
  ModemConnect  CONNECT\s19200
  ModemConnect  CONNECT\s16800
  ModemConnect  CONNECT\s14400
  ModemConnect  CONNECT\s1200
  ModemConnect  CONNECT\s9600
  ModemConnect  CONNECT\s7200
  ModemConnect  CONNECT\s4800
  ModemConnect  CONNECT\s2400
  ModemConnect  CONNECT\s12000
  ModemConnect  CONNECT\r
  ModemError    BUSY
  ModemError    NO\sCARRIER
  ModemError    NO\sDIALTONE
  ModemError    NO\sANSWER
  ModemError    RING\r
  ModemError    ERROR

  # Hier stehen noch weitere Konfigurationsmoeglichkeiten fuer Inbound-Calls.
  # Da ich keine Inbound-Calls zulasse, habe ich den Teil hier auch nicht
  # aufgefuehrt, fuer weiter Infos siehe ifmail/misc/config.

  # 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      *** T h o r ***
  Location  Bornheim-Widdig
  SysOp     Roland Rosenfeld
  Phone     - Unpublished -
  Speed     9600
  Flags     XA,V32B,V42B
  ______________________________________________________________________


  Um die Log-Messages von ifcico zu bekommen, solltest Du nun noch den
  syslogd vernuenftig konfigurieren. Hierzu musst Du /etc/syslog.conf
  editieren. Die Messages von ifcico erscheinen dabei als local0.* Ich
  habe zu diesem Zweck folgende Zeile eingebaut:

  local0.*      /var/adm/ifmail


  (Achtung: Keine Leerzeichen, sondern Tabs verwenden).

  Damit landen alle Log-Meldungen von ifcico in /var/adm/ifmail. Bei
  neuen Versionen von syslogd reicht nun ein

  killall -1 syslogd


  um, das dem Daemon das neue Config-File nahe zu bringen. Bei aelteren
  Versionen muss man das Logfile zunaechst anlegen und dann den Daemon
  killen und neustarten.

  Jetzt sollte man allerdings noch die Outbound-Directories in
  /var/spool/fnet/ anlegen. Neben dem Standard outbound fuer Fido fehlen
  noch fidode und gernet fuer die anderen Netze. Die Verzeichnisse
  sollte alle uucp.uucp gehoeren und die Permissions 775 besitzen.
  ifcico legt im uebrigen fuer weitere Netze fehlende Verzeichnisse
  selber an, allerdings sollte man dann manuell die Permissions
  entsprechend ueberarbeiten.



  7.  Nodelisten-Compiler

  Alle im Config-File angegebenen Nodelisten sollten im Verzeichnis
  /var/spool/fnet/nodelist vorhanden sein. Dann ruft man einfach ifindex
  auf, welcher dann index.dir und index.pag erstellt, welche die
  compilierte Nodeliste enthalten.

  Leider ist ifindex nicht besonders schnell, daher kuerze ich die
  nodelist immer vor der Compilierung auf das, was ich (in Deutschland)
  benoetige. Hierfuer verwende ich folgendes Skript:


  ______________________________________________________________________
  #!/bin/sh
  #
  # /var/spool/fnet/nodelist/strip.nodelist
  #
  if [ ! $1 ]
  then
      echo Fallscher Aufruf!
      echo Start mit $0 xxx, wobei xxx die Nummer der aktuellen Nodelist ist.
      exit
  fi

  NODELIST=nodelist.$1

  if [ ! -s $NODELIST ]
  then
      echo $NODELIST ist keine korrekte Nodelist
      exit
  fi

  NLSHORT=nl_short.$1

  if [ -s $NLSHORT ]
  then
      echo $NLSHORT existiert schon und wird nach $NLSHORT.bak geschoben
      mv -f $NLSHORT $NLSHORT.bak
  fi

  head -n 2 $NODELIST >> $NLSHORT
  grep ',49-\|^Zone,' $NODELIST >> $NLSHORT

  echo Fertig.
  ______________________________________________________________________



  Dieses Skript startet man mit strip.nodelist xxx, wobei xxx die
  aktuelle Nummer der Nodeliste ist. Aus nodelist.xxx wird damit
  nl_short.xxx generiert.

  Damit ifindex nicht von den Nodelisten verwirrt wird, sollte man jede
  Nodeliste vor dem Compilieren mit fromdos vorbehandeln (ein kleines
  Tool, das bei Linux irgendwann mal dabei war, welches an den
  Zeilenenden CRLF durch LF ersetzt und das ^Z am Dateiende loescht).

  Nun muss man natuerlich auch Diffs einarbeiten koennen. Hierzu
  verwende ich nledit von Cees de Groot, das sich im Verzeichnis
  ifmail/misc/nledit findet.  Allerdings verwende ich nicht das
  mitgelieferte Script, sondern nur das C-Programm, welches man mit

      gcc -o nledit -s -N nledit.c


  compiliert. Man ruft es dann mit

      nledit nodelist.123 NODEDIFF.130 nodelist.130


  auf (natuerlich mit den entsprechenden Tag-Nummern).

  Auch hier behandele ich den Diff mit fromdos vor.



  8.  Poll-Skript und Entpacken

  Zum Pollen verwende ich das Skript ifmail/misc/contrib/ifpoll in
  leicht abgewandelter Form:


  ______________________________________________________________________
  #!/bin/sh
  # ver 0.7r
  # ifpoll, poll my boss node or the node given as argument 1
  #
  # i start this shell script every day by crond, but you can
  # start it also by hand :) start it as the owner of ifcico.
  # rasca, berlin 1993 (Rasca Gmelch, 2:2410/305.4)
  #
  # Erweiterte Fassung von Roland Rosenfeld

  function GetConnectMessage () {
     grep 'chat got "CONNECT.*", continue' /var/adm/ifmail \
    | tail -n1 \
    | sed 's/.*chat got "//;s/", continue//'
  }

  function GetNoConnectMessage () {
     grep 'chat got ".*", aborting' /var/adm/ifmail \
    | tail -n1 \
    | sed 's/.*chat got "//;s/", aborting//'
  }

  mv -f /var/adm/ifdebug /var/adm/ifdebug.old
  touch /var/adm/ifdebug

  # where "ifcico" and "ifpack" reside
  FIDOPATH=/usr/local/lib/fnet

  # logfile of ifcico
  IFLOG=/var/adm/iflog

  # owner of "ifcico"
  IFCICO_OWNER=uucp

  # sysop of fido stuff
  IFCICO_SYSOP=roland

  # my boss node (default address to poll)
  NODE="f111.n2450.z2"

  # how often should i try to call NODE?
  MaxTry=20

  # delay between outgoing calls in seconds
  DELAY=60

  # where to log processing - file or tty/console
  INFO_TTY=/dev/tty11

  echo "`date \"+%b %d %T\"` ifpoll[$$]: starting" >> $INFO_TTY

  # remember me, not to run as root..
  #
  if [ `whoami` != "$IFCICO_OWNER" ]; then
      echo "*** run $0 as the owner of ifcico ***"
      echo "`date \"+%b %d %T\"` ifpoll[$$]: wrong uid (rc 2)" >> $INFO_TTY
      exit 2
  fi

  # argv[1] is the optional node to call
  #
  if [ "$1" != "" ]; then
      if [ "$1" = "-?" ] || [ "$1" = "-h" ]; then
          echo "usage: ifpoll [node]"
          exit 3
      else
          NODE=$1
      fi
  fi

  # let's pack the fido stuff..
  #

  $FIDOPATH/fgpack

  # loop until ifcico could connect the node or MaxTry is encountered
  #
  i=1; errlv=1
  while let 'i <= MaxTry' && let 'errlv != 0'
  do
      echo -n "`date \"+%b %d %T\"` ifpoll[$$]: $i. try ($NODE) " \
          >> $INFO_TTY
      #
      # start ifcico in master mode ..
      #
      $FIDOPATH/ifcico -r 1 $NODE
      errlv=$?
      if [ $errlv != "0" ]; then
          GetNoConnectMessage >> $INFO_TTY
          if [ $i != $MaxTry ]; then
              sleep $DELAY
          fi
          let i=i+1
      else
          GetConnectMessage >> $INFO_TTY
      fi
  done

  # if the poll was fine, unpacking..
  #
  if [ $errlv = "0" ]; then
      echo "`date \"+%b %d %T\"` ifpoll[$$]: unpacking.. " >> $INFO_TTY
      $FIDOPATH/fgunpack $INFO_TTY
      # add here some additional lines for processing tic files or
      # incoming file-lists or simular..
  else
      grep 'chat got ".*", aborting' /var/adm/ifmail | \
          tail -n20 | \
          elm -s "ifpoll: failed" $IFCICO_SYSOP >/dev/null
  fi

  echo "`date \"+%b %d %T\"` ifpoll[$$]: finished (rc $errlv)" >> $INFO_TTY

  # return the errorlevel of ifcico
  exit $errlv
  ______________________________________________________________________



  Dieses Skript kann ohne Parameter gestartet werden und ruft dann
  automatisch meinen Boss an, oder aber man gibt den gewuenschten Node
  an (in pfnz-Notation, also z.B. ifpoll f111.n2450.z2).  Natuerlich
  muss das Skript an den eigenen Bedarf angepasst werden (so hat nicht
  jeder 12 Consolen etc.).

  Dieses Skript ruft zunaechst das Pack-Skript auf:

  ______________________________________________________________________
  #!/bin/sh
  # /usr/local/lib/fnet/fgpack
  # pack-script for FidoGate (together with ifcico)
  #
  # written by Roland Rosenfeld 19.08.94
  # roland@p13.flokiste.fido.de (2:2450/111.13)
  #

  FNET=/var/spool/fnet
  FTNPACK=/usr/local/lib/fidogate/ftnpack

  PATH=/bin:/usr/bin:/usr/local/bin

  topack=

  for pkt in $FNET/*/????????.out $FNET/*/????????.pnt/????????.out
  do
      if [ -s $pkt ]
      then
          topack="$topack $pkt"
      fi
  done
  $FTNPACK $topack
  ______________________________________________________________________



  Damit werden die .out-Files in ARCmail-Files zusammengepackt, damit
  sie effizienter verschickt werden koennen. Nach erfolgreichem Anruf
  wird dann das folgende Entpack-Skript aufgerufen:

  ______________________________________________________________________
  #!/bin/bash
  # usr/local/lib/fnet/fgunpack
  #
  # unpack-script for FidoGate (together with ifcico)
  #
  # written by Roland Rosenfeld 12.06.94
  # roland@p13.flokiste.fido.de (2:2450/111.13)
  #
  # corrected paths, usage of syslog, more packer, clean up, restructured
  # martin@erde.GUN.de (Martin Seine) <2:2448/413.100>
  #

  FNET=/usr/local/lib/fnet
  FGATE=/usr/local/lib/fidogate
  IFCFG=$FNET/config
  IN=/var/spool/fidonet/in

  # Facility is the log-file facility, where syslog stores the messages
  # if you're not using syslog, no need to change it
  FACILITY=local0

  # System-manager who receives notices, if there are unpacking errors
  MANAGER=postmaster

  PATH=/bin:/usr/bin:/usr/local/bin:$FGATE

  if [ $1 ]
  then
      INFO_TTY=$1
  else
      INFO_TTY=/dev/console
  fi

  WEARE=`basename $0`

  #
  # get directory-names from $IFCFG
  #
  INBOUND=`grep -i "^[  ]*inbound" $IFCFG | awk '{ print $2 }'`
  LOGFILE=`grep -i "^[  ]*logfile" $IFCFG | awk '{ print $2 }'`

  if [ ! -d $INBOUND/bad ] ; then
     if [ -e $INBOUND/bad ] ; then
      rm -Rf $INBOUND/bad
     fi
     mkdir $INBOUND/bad
  fi

  CORRECT=true

  function iflog() {
     if [ -S /dev/log ] ; then
      logger -i -p $FACILITY.info -t $WEARE $@
     else
      echo "`date \"+%y/%m/%d %T\"` $$ $WEARE:" $@ >> $LOGFILE
     fi
     echo "`date \"+%b %d %T\"` $WEARE [$$]:" $@ >> $INFO_TTY
  }


  function unpack_mail() {
     pushd $INBOUND >/dev/null
     EMPTY=true
     for f in *.mo? *.tu? *.we? *.th? *.fr? *.sa? *.su? *.pkt
     do
      if [ -f $f ] ; then
          if [ $EMPTY = true ] ; then
              rm -rf bak.oo
              mv -f bak.o   bak.oo >/dev/null
              mv -f bak bak.o  >/dev/null
              mkdir bak
          fi
          mv -f $f bak/
          ln -s -f $INBOUND/bak/$f $IN/$f
          EMPTY=false
      fi
     done

     # now all new packets lay in $INBOUND/bak

     if [ $EMPTY = true ]
     then
      iflog No new mail found in $INBOUND
      exit
     fi

     popd >/dev/null

     pushd $IN >/dev/null
     #
     # Analyze packer with file(1) and unpack them if possible
     #
     for f in *.mo? *.tu? *.we? *.th? *.fr? *.sa? *.su?
     do
     if [ -f $f ] ; then
        arc=`file -L $f | awk '{ print $2 }'`
        case $arc in
          ARJ) unarj e $f ;;
          ARC) arc e $f ;;
          ZIP) unzip -x $f < /dev/null ;;
          LHA) lharc e $f ;;
          ZOO) zoo eq $f ;;
        *) iflog unknown packer \'$arc\' for $f
           false ;;
        esac
        if [ $? -gt 0 ] ; then
        iflog couldn\'t unpack $f \(moved to $INBOUND/bad\)
        cp -f $f $INBOUND/bad
        CORRECT=false
        else
        iflog unpacked $f \($arc\)-archive
        rm -f $f
        fi
     fi
     done
     popd >/dev/null
  }

  #
  #
  # main unpack-program
  #
  #

  export FNET
  cd $FNET
  unpack_mail

  iflog starting ftn2rfc
  ftn2rfc -x fidorun -l locks/ftn2rfc

  if [ $CORRECT = false ] ; then
  /usr/lib/sendmail $MANAGER <<END
  Subject: Fido-packet errors
  There occured errors while processing Fido-Packets.

  Please check the logfiles

  Your Gateway
  END
  fi

  #iflog starting Linux-TIC-Processor
  #/usr/local/lib/tic/process_tics.pl < /dev/null
  #/usr/local/lib/tic/poster.pl Daily < /dev/null
  #/usr/local/lib/tic/lister.pl < /dev/null

  #iflog starting dodeliver
  #/usr/bin/nice /usr/local/lib/fnet/dodeliver
  ______________________________________________________________________



  Dieses Skript schiebt alle in /var/spool/fnet/inbound angekommenen
  Mails nach /var/spool/fnet/inbound/bak, wobei dieses Verzeichnis
  vorher in bak.o und bak.oo verschoben wird, so dass man immer die
  letzten drei Poll-Resultate vorliegen hat um moegliche Probleme auch
  nachtraeglich noch beheben zu koennen.  Anschliessend werden alle
  .pkt-Files nach /var/spool/fnet/in kopiert und die Archive werden
  dorthin entpackt (das Skript erkennt automatisch ZIP, ARJ, ARC und
  LHA). Hierzu muessen folgende Zeilen in /etc/magic enthalten sein
  (moeglichst ganz oben, denn die Datei wird von oben nach unten
  durchsucht):

  ______________________________________________________________________
  # Einige Eintraege fuer das ifcico-Shell-Script
  #
  0 byte        0x1a        ARC Archive (maybe)
  0 string    PK        ZIP Archive
  2 string    -lh       LHA Archive
  0 string    ZOO       ZOO Archive
  0 short       0xea60    ARJ Archive
  ______________________________________________________________________


  Ist das geschehen, wird ftn2rfc aufgerufen, welches die Pakete nach
  Mail/News konvertiert und dann seinerseits mittels fidorun sendmail
  und rnews startet.

  Im Anschluss daran koennen noch weitere Tools, wie z.B. ein TIC-
  Prozessor oder ein Programm, das News fuer User des eigenen Systems
  sucht, aufgerufen werden.



  9.  Konfiguration von smail

  Bei mir liegt smail im Verzeichnis /usr/local/lib/smail, wobei
  /usr/lib/smail ein Link darauf ist. Bei der aktuellen Konfiguration
  aus Slackware 2.0 liegen die Konfigurationsdateien dabei im
  Verzeichnis /var/lib/smail. Alle von mir hier beschriebenen Dateien
  sollten also in diesem Verzeichnis liegen.

  Zunaechst die allgemeine Konfiguration:



  ______________________________________________________________________
  # /var/lib/smail/config
  #
  # smail configuration for p13.flokiste.fido.de
  # (see smail(5) man page for details and other options)
  #
  -smtp_debug
  hostname=p13.flokiste.fido.de

more_hostnames=thor.flokiste.fido.de:flokiste.fido.de:p13.f111.n2450.z2.fidonet.org:f234.n233.z233.pietnet:thor:p13
  -visible_name
  -smart_path
  -uucp_name
  error_copy_postmaster
  postmaster=postmaster
  ______________________________________________________________________


  Nun muss angegeben werden, was wie geroutet werden soll:

  ______________________________________________________________________
  # /var/lib/smail/routers
  #
  # smail routers for p13.flokiste.fido.de

  # See smail(5) for a complete description of the contents of this
  # file.

  fido:
      driver = pathalias,
      transport = fido;
      file = /var/lib/smail/paths.ftn,
      proto = lsearch

  smart_host:
      transport=fido,
      driver=smarthost;
      path=p0.f4.n5000.z242.fidode
  ______________________________________________________________________


  Hier wird also alles ueber fido geroutet, wobei paths.ftn (s.u.)
  angibt, wo welche FTN-Adressen eingesetzt werden sollen. Alles, was
  nicht gemaess paths.ftn verarbeitet werden kann, wird dabei an das
  fido.de-Internet-Gate geschickt.

  paths.ftn sieht nun wie folgt aus:

  ______________________________________________________________________
   # /var/lib/smail/paths.ftn
   #
   .fidonet.org p0.f111.n2450.z2.fidonet.org!%s
   .z2      p0.f111.n2450.z2.fidonet.org!%s
   .fido.de p0.f111.n2450.z2.fidonet.org!%s
   .maus.de p0.f111.n2450.z2.fidonet.org!%s
   #
   .gernet  f64.n100.z21.gernet!%s
   #
   .z242.fidode p0.f4.n5000.z242.fidonet.org!%s
  ______________________________________________________________________


  Letztendlich muss man noch angeben, wie die einzelnen Mails trans-
  portiert werden sollen:



  ______________________________________________________________________
  # /var/lib/smail/transports
  #
  fido: driver = pipe;
      group = uucp,
      cmd = "/usr/local/lib/fidogate/rfc2ftn -w Normal ${strip:user}",
      pipe_as_sender
  ______________________________________________________________________


  Da Messages aus dem Fido an den Realnamen adressiert werden, sollte
  selbiger (mit Unterstrich zwischen Vor- und Nachname) auch auf dem
  eigenen System vorhanden sein. Hierzu traegt man ihn in
  /usr/lib/aliases ein, so dass die Mail an den User selbst weiter
  geschickt wird.  Hier ein Ausschnitt aus meinem Alias-File, wo die
  haeufigsten aliases aufgefuehrt sind, so dass Mails mich praktisch
  immer erreichen, wenn sie an mich adressiert sind:


  ______________________________________________________________________
  # /usr/lib/aliases
  #
  # This is used by smail for sendmail compatibility.
  # See also the /usr/lib/smail/lists directory for another way
  # to make mail lists.
  #
  # Note: if your /usr/lib/smail/directors says that the aliases
  # director uses proto=dbm, you must use mkaliases to make
  # /usr/lib/aliases.pag and /usr/lib/aliases.dir, which are the
  # actual files used by smail.
  #
  # If you use proto=lsearch, smail will read this file.  (That's
  # much slower but it's OK if this file is small.)
  #
  support: roland
  admin: roland
  Roland_Rosenfeld: roland
  postmaster: roland
  faxadmin: roland
  usenet: roland
  sysop: roland
  rosenfeld: roland
  roro: roland
  ______________________________________________________________________


  Man sollte das allerdings zunaechst mal mit einer lokalen Mail testen,
  denn einige Versionen von smail (wenn sie mit unguenstigen Parametern
  compiliert wurden) scheinen das File nur als dbm zu erkennen, auch
  wenn man lsearch angibt (siehe Kommentar in aliases).




  10.  CNews-Konfiguration

  aehnlich Smail muss nun auch CNews an FidoGate angepasst werden. Ich
  liste hier einfach mal alle wichtigen Konfigurations-Files auf:

  Zunaechst das sys-File welches angibt, welche Newsgroups wohin
  exportiert werden sollen:


  ______________________________________________________________________
  # /usr/local/lib/news/sys
  #
  # ME: gibt an, welche Newsgroups auf dem eigenen System gehalten werden
  # sollen. Dabei sollte es auch moeglich sein einfach "all" zu schreiben. Das
  # ist jedoch riskant, denn falls man auch noch uucp verwendet, dann koennten
  # automatisch News-Hierarchien angelegt werden, die man nicht haben will.
  ME:alt,comp,news,gnu,de,rec,fido,fidonet,gernet,thor,junk

  # Fido (Zone 2):
  # fido.*, fidonet.*, ausser fido.5000.internet und fido.de (das ist Z242)
  fidogate/p13.f111.n2450.z2.fidonet.org:\
  fido,fidonet,!fido.5000.internet,!fido.de/all:Lf:

  # Gernet:
  # gernet.* komplett
  gernet/p13.f64.n100.z21.gernet,p13.flokiste.fido.de:\
  gernet/all:f:

  # Fido.DE:
  # Alle Usenet-Areas: de.*, comp.*, rec.*, gnu.*
  # und noch fido.5000.internet und fido.de
  fidode/p13.f111.n2450.z2.fidonet.org,p13.f4.n5000.z242.fidode:\
  de,comp,rec,alt,gnu,fido.5000.internet,fido.de/all:Lf:
  ______________________________________________________________________


  Nun muss man angeben, wie die verschiedenen Netze verarbeitet werden
  sollen:

  ______________________________________________________________________
  # /usr/local/lib/news/batchparams
  #
  # site      size  queue   builder muncher sender
  # ----      ----  -----   ------- ------- ------
  /default/ 100000  20  batcher compcun viauux
  #
  fidogate  250000  200 batcher nocomp  viafido
  gernet      250000  200   batcher nocomp  viafido
  fidode      250000  200   batcher nocomp  viafido
  ______________________________________________________________________


  Das bedeutet, dass fuer alle drei Netze das Skript viafido zum Trans-
  port verwendet werden soll. Weiterhin sollen maximal 250K in ein Paket
  gesteckt werden. Falls man wenig Platz auf der Platte hat, kann man
  auch die "size" runtersetzen (fuer obiges braucht man naemlich min-
  destens 10MB freien Speicher auf /tmp), nur werden dann kleinere .pkt-
  Files generiert.

  Das File viafido existiert nicht, es muss erst erstellt werden:


  ______________________________________________________________________
  #! /bin/sh
  # /usr/local/lib/news/bin/batch/viafido
  #
  # Submit news batch to FIDOGATE's rfc2ftn -w.
  #
  # The 'exec' cuts down the number of processes active for this simple case.

  exec /usr/local/lib/fidogate/rfc2ftn -w Normal -b -n
  ______________________________________________________________________



  Letztendlich muss noch die expire-List configuriert werden, welche
  angibt, welche Artikel wie schnell geloescht werden duerfen:


  ______________________________________________________________________
  # /usr/local/lib/news/explist
  #
  # Die History soll 30 Tage gehalten werden. Wenn Artikel ankommen, die aelter
  # als 30 Tage sind, werden die gar nicht erst angezeigt, sondern sofort
  # geloescht.
  /expired/         x   30  -

  # Artikel werden mindestens 3, maximal 90 Tage gehalten
  /bounds/          x   3-5-90  -

  # Alles weitere wird sequentiell von oben(!) abgearbeitet.
  junk              x   7   -
  fido.junk         x   7   -
  control            x  7   -
  de.newusers.questions     x   8   -
  de.newusers           x   90  -
  de                x   14  -
  comp.os.linux.announce      x 90  -
  comp.os.linux         x   8   -
  fido.2450         x   27  -
  fido.r24          x   10  -
  fido.ger.linux          x 18  -
  fido.ger          x   14  -

  # default:  9 Tage (d.h. alles, was durch obiges noch nicht getroffen wurde)
  all               x   9   -
  ______________________________________________________________________


  Damit sollte das News-System funktionstuechtig sein, allerdings
  muessen noch einige Dinge regelmaessig ausgefuehrt werden, damit es
  funktioniert.

  Hierzu verwende ein paar Cron-Jobs.  Die Crontab fuer den User news
  sieht dafuer wie folgt aus:

  ______________________________________________________________________
  # crontab.news
  #
  SHELL=/bin/sh
  MAILTO=news
  #
  # Crontab entries for news system
  #
  15 * * * * /bin/date >  /tmp/news_cron_ok

  # Kurz vor meinen beiden Polls werden die News gesammelt und nach Fido
  # exportiert. Zusaetzlich werden sie noch stuendlich exportiert.
  27    8   * * *   /usr/local/lib/fidogate/run-batch
  27    20  * * *   /usr/local/lib/fidogate/run-batch
  13    *   * * *   /usr/local/lib/fidogate/run-batch

  # Die Artikel sollen regelmaessig fuer alle User des Systems lesbar gemacht
  # werden (danach kann man sie auch noch canceln und wenn noch kein run-batch
  # ausgefuehrt wurde, wird der gecancelte Artikel auch nicht einmal
  # exportiert):
  0,5,10,15,20,25,30,35,40,45,50,55 * * * *
/usr/local/lib/news/bin/input/newsrun

  # Kontrollieren.... um 21:18
  18    21  * * *   /usr/local/lib/news/bin/maint/newsdaily

  # Aufraeumen...
  24        8  * * *    /usr/local/lib/news/bin/expire/doexpire
  24        20 * * *    /usr/local/lib/news/bin/expire/doexpire
  ______________________________________________________________________


  Dabei ist run-batch ein kleines Shell-Script, welches zuerst newsrun
  und dann sendbatches aufruft:


  ______________________________________________________________________
  #!/bin/sh
  # /usr/local/lib/fidogate/run-batch
  #
  # Call newsrun, sendbatches
  #

  /usr/local/lib/news/bin/input/newsrun
  /usr/local/lib/news/bin/batch/sendbatches
  ______________________________________________________________________


  Nun muessen die Newsgroups noch in das News-System eingetragen werden.
  Hierzu verwendet man das Programm
  /usr/local/lib/news/bin/maint/addgroup, welches man mit dem Namen der
  Newsgroup sowie dem Parameter y aufruft, z.B.:

  /usr/local/lib/news/bin/maint/addgroup fido.ger.linux y


  Damit wird nun die Newsgroup fido.ger.linux (entspricht bei mir der
  Fido-Area LINUX.GER) eingerichtet. Dies muss man nun mit allen gewuen-
  schten Newsgroups machen.  Weiterhin sollte man auch noch die beiden
  Newsgroups fido.junk und junk anlegen, welche News aufnehmen, die in
  keine andere Newsgroup einsortiert werden koennen. Wenn Fido-Echomail
  in eine Area gehoert, die in /usr/local/lib/fidogate/areas nicht
  aufgefuehrt ist, so wandert diese in fido.junk. Wenn die Area in fido-
  gate/areas eingetragen ist, aber vergessen wurde, die entsprechende
  Newsgroup mit addgroup anzulegen, dann wandert der Artikel nach junk.
  Man sollte diese Newsgroup als Systemverwalter auch subscriben, damit
  man fehlende Newsgroup-Eintraege bemerkt und eintragen kann.  Um
  Artikel canceln zu koennen, benoetigt man uebrigens noch die Newsgroup
  control, die man auch mittels addgroup anlegen sollte.

  Falls noch Permission-Probleme auftreten koennen die auch in einem Bug
  von relaynews begruendet sein, denn dort wird nach einem su weiterhin
  die alte User-ID und Group-ID verwandt. Das laesst sich aber durch
  folgenden Patch beheben:

  ______________________________________________________________________
  --- org/relaynews.c   Tue Mar 17 08:42:42 1992
  +++ relaynews.c Sun Jan 30 13:48:34 1994
  @@ -201,7 +201,7 @@
      else
          newsuid = geteuid(), newsgid = getegid();
      if (setgid(newsgid) < 0 || setuid(newsuid) < 0 ||
  -    getgid() != newsgid || getuid() != newsuid) {
  +    getegid() != newsgid || geteuid() != newsuid) {
          if (getenv("NEWSPERMS") != 0)
              error("recursive loop setting ids", "");
          /*
  ______________________________________________________________________



  11.  News/Echomail lesen und schreiben

  Ich persoenlich bevorzuge als Newsreader tin. Da dieser, wie alle
  anderen auch nicht fuer Fido konstruiert wurde, gibt es
  standardmaessig keine Moeglichkeit, bei Echomails einen Adressaten
  anzugeben, was ja im Fido moeglich und ueblich ist.  FidoGate
  ermoeglicht das jedoch ueber eine zusaetzliche Headerzeile X-Comment-
  To:. Selbige kann man manuell erstellen, wobei zu beachten ist, dass
  der Username in runden Klammern stehen muss. Es ist aber auch erlaubt,
  hier eine komplette Internet-Adresse inclusive Realname anzugeben.

  Beispiele:

  X-Comment-To: (Roland Rosenfeld)
  X-Comment-To: rosenfel@uran.informatik.uni-bonn.de (Roland Rosenfeld)



  Im Verzeichnis fidogate/patches/other findet man jedoch auch Patches
  fuer tin und nn, die diese Zeile automatisch generieren, wenn man auf
  einen Artikel antwortet.  Falls man tin nicht patchen moechte, kann
  man auch folgende Zeile in ~/.tin/tinrc eintragen:

  news_quote_format=X-Comment-To: (%N)\n\n%F wrote in msg %M:


  dann darf man allerdings nicht vergessen, bei jedem Follow-Up die
  ueberfluessige Leerzeile vor dem X-Comment-To: zu loeschen.



  12.  Mail/Netmail lesen und schreiben

  Ich persoenlich verwende hierzu elm. Eigentlich muss man sich dabei
  nicht um allzuviel kuemmern, man adressiert nur halt mit pfnz-
  Notation. So wird aus

      Roland Rosenfeld 2:2450/111.13


  die Adresse

      Roland_Rosenfeld@p13.f111.n2450.z2.fidonet.org


  oder gar

      Roland_Rosenfeld@p13.f111.n2450.z2.fidonet.org (Roland Rosenfeld)


  und aus


      Roland Rosenfeld 21:100/64.13


  wird

      Roland_Rosenfeld@p13.f64.n100.z21.gernet



  Internet-Adressen kann man hingegen direkt angeben und fuer Maeuse
  gibt man die entsprechende Internet-Adresse an, also z.B.
  Vorname_Name@su.maus.de. Trotzdem wird die Mail ueber das Fido-Maus-
  Gate geschickt (es sei denn man hat in fidogate/src/config.h etwas
  anderes eingestellt).

  Wichtig ist nun auch, dass man Mails an Tools (Areafix, FileMgr,...)
  schicken kann. Diese haben jedoch oft Probleme mit den von FidoGate
  erstellen Mails.  Selbige haben naemlich meist in der ersten Zeile ein
  " * To: adresse" stehen, was manche der Tools so interpretieren, dass
  alle Areas ("*") anbestellt werden sollen. Will man also diese Zeile
  abstellen, so kann man mit elm im Menue H)eader mit U)ser-Defined-
  Header (vor dem Verschicken) eine zusaetzliche Header-Zeile eingeben:

  X-Flags: N



  Weiterhin hat FileScan beispielsweise in einigen Versionen den Bug,
  dass er die Adresse nicht dem Header entnimmt, sondern der Message-ID.
  Selbige enthaelt bei FidoGate-Messages aber nicht die FTN-Adresse
  (Z:N/F.P), sondern die Internet-Adresse, so dass auch hier
  Schwierigkeiten auftauchen. Selbige lassen sich aber mit

  X-Flags: M


  beheben, denn dann wird eine Fido-uebliche Message-ID generiert (fuer
  verschiedene Netze mit der jeweiligen Adresse).

  Man kann die X-Flags natuerlich auch kombinieren, ich verwende
  beispielsweise fuer alle Mails an irgendwelche Robots immer

  X-Flags: MN



  Will man Crashmails verschicken, so muss man zusaetzlich "X-Flags: C"
  setzen. Wird dabei an einen Point adressiert, so wird die Mail ueber
  dessen Boss geroutet.

  Auch FileAttaches sind seit FidoGate 3.8 moeglich. Hierzu gibt man "X-
  Flags: F" an und gibt den Dateinamen mit Pfad(!) als Subject an.

  13.  Fehlersuche

  Sollte Das alles trotz meiner Anleitung noch nicht auf Anhieb
  funktionieren, so gibt es noch diverse Moeglichkeinten, einen Fehler
  aufzuspueren.

  Wichtigstes Tool hierzu ist das Programm ifstat, welches anzeigt,
  welche Pakete fuer welche Adresse bereit liegen.



  13.1. Mail wird nicht verarbeitet

  Hier ist es sinnvoll, das Debug-Level von rfc2ftn in
  /var/lib/smail/transports hochzusetzen. Hierzu gibt man im
  entsprechenden Netz den zusaetzlichen Parameter -v bei rfc2ftn an
  (ggf. auch mehrfach, dann wird das Debug-Level entsprechend hoeher,
  ich verwende meist -vvvvvvvvvvvvvvvvvvvvv oder so). Um die Debug-
  Meldungen dann wirklich in die Hand zu bekommen, schicke ich die Mail
  einfach mit einer Kopie an eine nicht existente Adresse und bekomme
  dann den Ruecklaeufer mit saemtlichen Debug-Meldungen. Kommt der
  Ruecklaeufer ueberhaupt nicht, so kann es durchaus sein, dass
  irgendwelche Permissions nicht stimmen und das System einfach wartet
  (man sieht das daran, dass noch sendmail und rfc2ftn als Prozesse
  laufen). Dann findet sich das aktuelle Debug-File in
  /var/spool/smail/msglog.  Unter /var/spool/smail findet man dann auch
  die liegengebliebenen Messages.



  13.2. News werden nicht verarbeitet

  Analog zum Vorgehen bei Mail kann man auch bei News verfahren. Hier
  gehe ich gewoehnlich so vor, dass ich in
  /usr/local/lib/news/bin/batch/viafido die entsprechenden -v's einbaue
  und dann an die entsprechende Zeile ein 2> /tmp/fgate.out anhaenge,
  was dazu fuehrt, dass stderr nach /tmp/fgate.out umgeleitet wird, das
  ich mir dann anschauen kann.

  Ansonsten sollte man zwischen dem Aufruf von newsrun und run-batch
  nachsehen, ob der Artikel in /var/spool/news/out.going/*/togo
  aufgelistet wurde und dort anschliessend auch wieder geloescht wurde.
  Manchmal (je nach Cnews-Version) werden die Artikel auch in
  /var/spool/news/in.coming zwischengelagert.

  Weiterhin sollte man sich alle vorhandenen Logfiles ansehen:

     smail
    /var/spool/smail/log/logfile

     cnews
    /usr/local/lib/news/log.*  /usr/local/lib/news/batchlog.*
    /usr/local/lib/news/errlog.*

     fidogate
    /usr/local/lib/fidogate/log

     ifcico
    /var/adm/ifmail /var/adm/iflog /var/adm/ifdebug

  Um die Korrektheit erstellter Pakete zu erkunden oder Probleme in
  bestehenden Paketen zu finden, enthaelt FidoGate das Programm
  pktdebug. Braucht man mehr Informationen, so sollte man sich das DOS-
  Programm Inspect besorgen, welches problemlos in der Dosemu laeuft und
  wenn man die Verzeichnisse entsprechend freigibt und die Dosemu dann
  als User uucp startet, dann kann man die .pkt-Files und Archive sogar
  veraendern.

  Haengt CNews komplett, so bleibt einem nur ein Debugging der diversen
  CNews-Shell-Scripts. Hierzu sollte man in das jeweilige Skript ein
  "set -xv" am Anfang einbauen, welches genau ausgibt, welche Zeilen des
  Skripts in welcher Reihenfolge und mit welchen Parametern aufgerufen
  werden. Fuer weitere Informationen dazu empfehle ich die Manpage der
  bash.

  Falls nur das Posten von News-Artikeln nicht klappt, kann man auch mal
  versuchen, mit Pnews aus dem Paket trn direkt zu posten. Selbiges ist
  naemlich im Gegensatz zu tin ein einfaches Shell-Skript, bei dem die
  Fehlermeldungen von CNews immerhin so lange stehen bleiben, bis man
  sie gelesen hat (bei tin werden die direkt wieder vom Menue
  ueberschrieben).



  14.  Unterstuetzung

  Bei dieser HOWTO wurde ich durch viele Kommentare und Verbesserungen
  unterstuetzt. Besonders sind hier zu nennen:

  o  Ulrich_Villers@p3.coopy.fido.de (Ulrich Villers) 2:2450/115.3

  o  martin@erde.GUN.de (Martin Seine) 2:2448/413.100

  Ergaenzungen, Fehler-Reports etc. werde ich gern einarbeiten.
----------------------------- schnipp --------------------------------

Tschoeeee

    Roland

-- 
  * Internet: roland@p13.flokiste.fido.de * Fido: 2:2450/111.13 *


