Linux ISP-Verbindung HOWTO <author>Egil Kvaleberg (<tt>egil@kvaleberg.no</tt>) und Christoph Seibert (<tt>seibert@cs.uni-bonn.de</tt>) <date>v1.24-3, 3. April 1998 <abstract> Dieses Dokument beschreibt, wie man unter Linux über ein Modem Verbindung mit einem Internet Service Provider aufnimmt. Außer den Grundlagen des Einwahlverfahrens werden auch die Themen EMail und News behandelt. </abstract> <toc> <p> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect>Einleitung <nidx>ISP</nidx> <nidx>Provider!Internet</nidx> <p> Dies ist die Übersetzung des englischen <em>ISP-Hookup HOWTO</em> von Egil Kvaleberg. Die Versionsnummer entspricht der des Originals. Die Bezeichnung ISP wurde beibehalten, weil sie eine praktische Abkürzung ist und man die Zugehörigkeit zum Original erkennt. Außerdem hat sich auch im deutschen Sprachraum der Begriff Provider eingebürgert. Der Übersetzer nimmt aber gerne andere Vorschläge entgegen. <p> Diese Beschreibung wurde erstellt, um Fragen zu beantworten, wie man als Kunde eines ISP's (Internet Service Providers) Linux konfigurieren und benutzen kann. <p> Um denen zu helfen, die mit ihrem Linux-System zum ersten Mal eine Verbindung zu einem ISP herstellen wollen, wird hier der Versuch unternommen, alle relevanten Themen zu behandeln. Es wird daher unausweichlich Überschneidungen mit anderen Linux HOWTOs und Büchern des LDP (Linux Documentation Project) geben. Zum besseren Verständnis und für Detailfragen sollte man diese Dokumente zu Rate ziehen. <p> Ein großer Teil der vorhandenen Dokumentation ist auf Benutzer mit einer gewissen Erfahrung zugeschnitten. Unerfahrene Benutzer haben oft Schwierigkeiten, die für sie wichtigen Informationen herauszusuchen. <p> Der Einfachheit halber gehen die Beispiele von folgenden Annahmen aus: <p> <itemize> <item>Benutzername: <tt>dirk</tt> <item>Paßwort: <tt>UnheimlichGeheim</tt> <item>Internet Service Provider: <tt>acme.net</tt> <item>E-Mail-Server: <tt>mail.acme.net</tt> <item>News-Server: <tt>news.acme.net</tt> <item>Nameserver: <tt>193.212.1.0</tt> <item>Telefonnummer: <tt>12345678</tt> </itemize> <p> Der Benutzer <tt>dirk</tt> nennt seinen Rechner <tt>roderick</tt>. <p> Alle Einträge in der obigen Tabelle sollten natürlich abhängig vom benutzten ISP ersetzt werden. Oft reichen sonst schon minimale Änderungen für Kunden anderer ISPs. Der Autor würde gerne über eventuelle Probleme in dieser Hinsicht informiert werden. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Neue Versionen dieses Dokuments <p> Neue Versionen des englischen Originals <em>ISP-Hookup HOWTO</em> werden regelmäßig in <tt><htmlurl url="news:comp.os.linux.answers" name="comp.os.linux.answers"></tt> gepostet. Sie werden auch den verschiedenen FTP-Servern hinzugefügt, die solche Informationen archivieren, unter anderem: <p> <tscreen> <htmlurl url="ftp://metalab.unc.edu/pub/Linux/docs/HOWTO" name="metalab.unc.edu:/pub/Linux/docs/HOWTO"> </tscreen> <p> Zusätzlich sollte man das Original auf der Homepage des <em/Linux Documentation Project/ finden können: <p> <tscreen> <htmlurl url="http://metalab.unc.edu/LDP/" name="http://metalab.unc.edu/LDP/"> </tscreen> <p> Die jeweils neueste deutsche Version dieses HOWTO ist auf dem WWW Server des <em/Deutschen Linux HOWTO Projekts/ unter folgender Adresse zu finden: <tscreen> <htmlurl url="http://www.tu-harburg.de/dlhp/" name="http://www.tu-harburg.de/dlhp/"> </tscreen> Hier kann man die jeweils aktuelle Version auch gleich online lesen. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Feedback <p> Alle Kommentare, Berichte über Fehler, zusätzliche Informationen und Kritiken aller Art sollten an die Adresse des Übersetzers gehen: <p> <tscreen> <htmlurl url="mailto:seibert@cs.uni-bonn.de" name="seibert@cs.uni-bonn.de"> </tscreen> <p> Fragen, die nicht die Übersetzung betreffen, werden dann an den Autor des Originals weitergeleitet: <p> <itemize> <item><tt><htmlurl url="mailto:egil@kvaleberg.no" name="egil@kvaleberg.no"></tt> <item><tt><htmlurl url="http://home.sn.no/home/egilk/" name="http://home.sn.no/home/egilk/"></tt> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Disclaimer <p> Für den Inhalt dieses Dokuments kann keine Haftung übernommen werden. Die Ausführungen, Beispiele und der restliche Inhalt werden auf eigene Gefahr benutzt. Außerdem handelt es sich hier um eine frühe Version, die möglicherweise viele Ungenauigkeiten und Fehler enthält. <p> Beschrieben wird eine von vielen denkbaren Methoden. In der Welt von Linux gibt es normalerweise mehrere Wege, auf denen man zum Ziel kommt. Es werden einige Hinweise auf Alternativen gegeben. Außerdem ändern sich FTP-Angaben oft ein wenig, wenn neue Programmversionen erscheinen. <p> So weit ich weiß, werden nur Programme beschrieben, die unter bestimmten Bedingungen im privaten Bereich benutzt oder ausprobiert werden können. Die meisten Programme sind unter GNU-ähnlichen Bedingungen mit Quellcode erhältlich. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Copyright <p> Dieses Dokument ist urheberrechtlich geschützt. Das Copyright für die englische <em><htmlurl name="ISP-Hookup HOWTO" url="http://metalab.unc.edu/LDP/HOWTO/ISP-Hookup-HOWTO.html"></em>, auf der dieses Dokument basiert, liegt bei Egil Kvaleberg. Das Copyright für die deutsche Version liegt bei Christoph Seibert. Das Dokument darf gemäß der GNU <em><htmlurl url="DE-GPL.html" name="General Public License"></em> verbreitet werden. Insbesondere bedeutet dieses, daß der Text sowohl über elektronische wie auch physikalische Medien ohne die Zahlung von Lizenzgebühren verbreitet werden darf, solange dieser Copyright-Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt und ausdrücklich erwünscht. Bei einer Publikation in Papierform ist das Deutsche Linux HOWTO Projekt hierüber zu informieren. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect>Wie verbinde ich mich mit dem Rest der Welt? <nidx>/dev/modem</nidx> <nidx>Modem!/dev/modem</nidx> <nidx>minicom</nidx> <nidx>Modem!minicom</nidx> <p> Es wird davon ausgegangen, daß die wichtigsten Teile der Netzwerk-Software Ihrer Distribution bereits installiert sind. Auch sollte <tt>/dev/modem</tt> auf die zu verwendenen serielle Schnittstelle zeigen. <p> Die Standard-Konfiguration erlaubt normalerweise nur dem Benutzer <tt>root</tt> den direkten Zugriff auf <tt>/dev/modem</tt>. <p> Um sich direkt mit dem Benutzeraccount des ISP zu verbinden und mit den Befehlen zum Aufbau der Verbindung zu experimentieren, kann man das Programm <tt>minicom</tt> benutzen. Die Bedienung ist sehr leicht erlernbar. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Die Grundkonfiguration <p> <nidx>/etc/hosts.deny</nidx> Die Konfiguration des Rechners zum Anschluß an das Netz sollte man als Benutzer <tt>root</tt> durchführen. Bevor es weitergeht, versichert man sich, daß die Datei <tt>/etc/hosts.deny</tt> folgende Zeile enthält: <tscreen><verb> ALL: ALL </verb></tscreen> <nidx>/etc/hosts.allow</nidx> Normalerweise erlaubt man sich selbst den Zugang, also fügt man folgende Zeile der Datei <tt>/etc/hosts.allow</tt> hinzu: <tscreen><verb> ALL: LOCAL </verb></tscreen> Oder wenn man darauf besteht: <tscreen><verb> ALL: 127.0.0.1 </verb></tscreen> Es ist zu beachten, daß es im folgenden um diejenigen geht, die eine Verbindungsmöglichkeit über PPP und mit einer dynamischen IP-Adresse haben. Hat man das Glück, eine feste Verbindung zu besitzen, ergeben sich einige Unterschiede. <p> <nidx>/etc/HOSTNAME</nidx> Es ist schön, wenn der Rechner einen Namen hat; einen Namen, den der Benutzer einer dynamischen IP-Adresse völlig frei wählen kann. Diesen Namen trägt man in <tt>/etc/HOSTNAME</tt> ein: <tscreen><verb> roderick </verb></tscreen> <p> <nidx>/etc/resolv.conf</nidx> <nidx>DNS!/etc/resolv.conf</nidx> <nidx>Name Resolver!/etc/resolv.conf</nidx> Als nächstes trägt man den Nameserver in <tt>/etc/resolv.conf</tt> ein: <tscreen><verb> search . nameserver 193.212.1.0 </verb></tscreen> Der Nameserver muß als numerische IP-Adresse eingetragen sein und unterscheidet sich von ISP zu ISP. Falls man es benötigt, kann man bis zu drei verschiedene Server angeben. Diese werden dann in der Reihenfolge abgefragt, in der sie aufgeführt sind. <p> Will man Namen wie <tt>einrechner</tt> als Abkürzung für <tt>einrechner.acme.net</tt> verwenden können, muß die erste Zeile folgendermaßen ersetzt werden: <tscreen><verb> search acme.net </verb></tscreen> <p> <nidx>/etc/hosts</nidx> Ein gewisses Minimum an Konfiguration findet auch in <tt>/etc/hosts</tt> statt. Für die meisten Benutzer wird folgendes ausreichen: <tscreen><verb> 127.0.0.1 localhost 0.0.0.0 roderick </verb></tscreen> Wer eine feste IP-Adresse hat, trägt sie natürlich anstelle von 0.0.0.0 ein. <p> <nidx>/etc/networks</nidx> <nidx>Routing!/etc/networks</nidx> Ähnlich sieht eine minimale <tt>/etc/networks</tt> aus: <tscreen><verb> loopback 127.0.0.0 localnet 0.0.0.0 </verb></tscreen> <p> <nidx>/etc/mailname</nidx> <nidx>Mail!/etc/mailname</nidx> Außerdem sollte man seine externe Maildomain in <tt>/etc/mailname</tt> setzen: <tscreen><verb> acme.net </verb></tscreen> <p> <nidx>/etc/ppp/pap-secrets</nidx> <nidx>PPP!/etc/ppp/pap-secrets</nidx> Der Benutzername und das Paßwort beim ISP muß in <tt>/etc/ppp/pap-secrets</tt> angegeben sein: <tscreen><verb> dirk * UnheimlichGeheim </verb></tscreen> <p> <nidx>/etc/ppp/chap-secrets</nidx> <nidx>PPP!/etc/ppp/chap-secrets</nidx> Benutzt der ISP CHAP statt PAP, heißt die Datei <tt>/etc/ppp/chap-secrets</tt>. <p> <nidx>/etc/ppp/chatscript</nidx> <nidx>PPP!/etc/ppp/chatscript</nidx> Schließlich müssen noch die Befehle zur Verbindungsaufnahme angegeben werden, bevor PPP gestartet werden kann. Dies geschieht in <tt>/etc/ppp/chatscript</tt>: <tscreen><verb> TIMEOUT 5 "" ATZ OK ATDT12345678 ABORT "NO CARRIER" ABORT BUSY ABORT "NO DIALTONE" ABORT WAITING TIMEOUT 45 CONNECT "" TIMEOUT 5 "name:" ppp </verb></tscreen> Ein paar Einzelheiten müssen wahrscheinlich noch geändert werden. Die Telefonnummer in der dritten Zeile wird natürlich wie benötigt angepaßt. Manche Benutzer müssen vielleicht die Initalisierung des Modems von <tt>ATZ</tt> auf einen auf ihr Modem abgestimmten Befehl ändern. Die letzte Zeile gibt an, daß die Eingabeaufforderung des Providers <tt>name:</tt> lautet und daß darauf mit <tt>ppp</tt> geantwortet wird. Andere Systeme benutzen vielleicht andere Login-Prozeduren. <p> Um schließlich einen Anruf zu tätigen, kann PPP durch folgenden Befehl gestartet werden: <tscreen><verb> exec pppd connect \ 'chat -v -f /etc/ppp/chatscript' \ -detach crtscts modem defaultroute \ user dirk \ /dev/modem 38400 </verb></tscreen> Jetzt sollte man verbunden sein, und zwar so lange, bis das Programm durch Strg-C abgebrochen wird. Eventuelle Nachrichten betreffs der Verbindung werden der Logdatei des Systems hinzugefügt. So kann man sie lesen: <tscreen><verb> tail /var/adm/messages </verb></tscreen> <p> Solange die PPP-Verbindung besteht, hat man direkten Zugang zum Internet und kann Programme wie <tt/ftp/, <tt/ncftp/, <tt/rlogin/, <tt/telnet/, <tt/finger/ usw. benutzen. Diese Programme sollten alle Teil des Netzwerkpakets sein. <p> Weitere Informationen über PPP sind hier zu finden: <p> <itemize> <item><tt>/usr/lib/ppp/README.linux</tt> <item><tt>/usr/lib/ppp/README.linux-chat</tt> </itemize> <p> Zuletzt noch ein paar Worte zur Sicherheit. Die Datei <tt>/etc/inetd.conf</tt> führt alle Dienste auf, die der Rechner der Außenwelt anbietet. Durch die oben erstellte <tt>/etc/hosts.deny</tt> wird kein Zugriff von außen zugelassen. Wird er benötigt, muß der Zugriff ausdrücklich in <tt>/etc/hosts.allow</tt> erlaubt werden. Lokale Zugriffe werden hierdurch zugelassen: <tscreen><verb> ALL: LOCAL </verb></tscreen> Siehe auch <tt>man 5 hosts_access</tt>. <p> Noch eine letzte Kleinigkeit: Über die Namen der POP-Protokolle herrscht eine gewisse Verwirrung. Folgende Definition in <tt>/etc/services</tt> sollte fast immer funktionieren: <tscreen><verb> pop2 109/tcp pop-2 # PostOffice V.2 pop3 110/tcp pop-3 pop # PostOffice V.3 </verb></tscreen> <p> Statt <tt>chatscript</tt> kann man auch das wesentlich flexiblere <tt>dip</tt> benutzen, jedoch nicht in Verbindung mit <tt>diald</tt>. <p> Wer glücklicher Besitzer einer ständigen TCP/IP-Verbindung z.B. über Ethernet ist, kann getrost alles vergessen, was PPP betrifft, und sich damit beschäftigen, seine Netzwerkkarte zu konfigurieren. <p> Andere wiederum haben vielleicht nicht die Möglichkeit, PPP zu benutzen, können aber statt dessen SLIP benutzen, das ähnlich wie PPP unterstützt wird. Eine weitere Möglichkeit ist UUCP. Wieder andere müssen sich eventuell auf den Austausch von News und E-Mail über SOUP verlassen. Für diesen Fall befindet sich eine Beschreibung in: <p> <tscreen> <htmlurl url="ftp://ftp.sn.no/user/bjorn/Linux-offline.tgz" name="ftp.sn.no:/user/bjorn/Linux-offline.tgz"> </tscreen> <p> Eine zusätzliche Möglichkeit ist TERM. Darüber kann man sich im <em>Term HOWTO</em> informieren. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect>Wie surfe ich? <nidx>WWW!Browser</nidx> <p> <nidx>lynx</nidx> Sollte einem der Text am wichtigsten sein, kann man den WWW-Browser Lynx benutzen. Er ist hier erhältlich: <p> <tscreen> <htmlurl url="ftp://metalab.unc.edu/pub/Linux/system/Network/info-systems/" name="metalab.unc.edu:/pub/Linux/system/Network/info-systems/"> </tscreen> <p> <nidx>Chimera</nidx> <nidx>Mosaic</nidx> Ist X11 installiert, kann man einen der vielen graphischen Browser benutzen. Chimera befindet sich im gleich Verzeichnis wie Lynx. Der veraltete Browser Mosaic ist hier zu bekommen: <p> <tscreen><htmlurl url="ftp://ftp.NCSA.uiuc.edu/Web/Mosaic/Unix/binaries/2.6" name="ftp.NCSA.uiuc.edu:/Web/Mosaic/Unix/binaries/2.6"> </tscreen> <p> <nidx>Netscape</nidx> Am weitesten ist Netscape verbreitet. Dieser Browser ist auf folgendem Server zu bekommen: <p> <tscreen><htmlurl url="ftp://ftp.cs.uit.no/pub/www/netscape" name="ftp.cs.uit.no:/pub/www/netscape"> </tscreen> <p> Diese Browser erscheinen ständig in neuen und in mancher Hinsicht oft »aufregenden« Versionen. <p> Diese Programme können unter bestimmten Bedingungen benutzt und ausprobiert werden. Dieses sollte man beachten. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect>Wie verschicke und empfange ich E-Mail? <nidx>Mail</nidx> <nidx>Netzwerk!Mail</nidx> <p> <nidx>Mail!sendmail</nidx> <nidx>sendmail</nidx> Zunächst versichert man sich, daß <tt>sendmail</tt> installiert ist. Sendmail sortiert interne und ausgehende Post und sammelt ausgehende Post, bis es möglich ist, sie abzusenden. <p> Sendmail wird in <tt>/etc/sendmail.cf</tt> konfiguriert. Ein Beispiel, das Kunden eines ISP benutzen können, befindet sich in: <p> <tscreen> <htmlurl url="ftp://ftp.sn.no/user/egilk/sendmail.cf" name="ftp.sn.no:/user/egilk/sendmail.cf"> </tscreen> <p> <nidx>Mail!procmail</nidx> <nidx>procmail</nidx> Dies stützt sich auf <tt>procmail</tt> als das Programm, das E-Mail versendet. Es kann aber leicht so geändert werden, daß <tt>deliver</tt> benutzt wird. <p> <nidx>sendmail!/etc/sendmail.cf</nidx> <nidx>/etc/sendmail.cf</nidx> <nidx>sendmail!Masquerading</nidx> Man braucht natürlich eine <em>offizielle</em> Adresse für ausgehende Post, die in <tt>/etc/sendmail.cf</tt> angegeben wird. <tscreen><verb> # für wen ich mich ausgebe (leer für kein Masquerading) DMacme.net </verb></tscreen> Hier wird angenommen, daß der lokale Benutzername der gleiche ist, den man auch beim ISP hat. Jetzt ist <tt/sendmail/ so eingerichtet, daß es Post <em>direkt</em> an den Empfänger schickt. Um lange und wiederholte Verbindungen in dem Fall zu vermeiden, daß die Verbindung zum Empfänger langsam und unregelmäßig ist, ist es gut, wenn man seinen ISP als Puffer benutzt. Das kann in der DS-Angabe eingetragen werden: <nidx>sendmail!Smart Host</nidx> <tscreen><verb> # "Smart" relay host (kann leer sein) DSmail.acme.net </verb></tscreen> Zu beachten ist, daß <tt/sendmail/ ein wenig empfindlich ist, was die Behandlung von Tabulatorzeichen in <tt>sendmail.cf</tt> angeht. Man sollte vielleicht den Editor <tt>vi</tt> benutzen, um sicherzugehen, daß diese Tabulatorzeichen unverändert bleiben. <p> <nidx>POP3!popclient</nidx> <nidx>Mail!popclient</nidx> Der Empfang von E-Mail kann oft über das POP3-Protokoll geschehen, das bei jeder Verbindungsaufnahme aufgerufen werden kann. Das kann man über folgendes Skript ausprobieren: <tscreen><verb> sendmail -q popclient -3 -v mail.acme.net -u dirk \ -p "UnheimlichGeheim" \ -k -o /usr/spool/mail/dirk </verb></tscreen> Dieses Skript kann man aufrufen, nachdem die PPP-Verbindung hergestellt worden ist. Man sollte darauf achten, daß dieses Skript nur Testzwecken dient; darum sollte man sich versichern, daß der eigene Briefkasten unverändert bleibt, während es läuft. Die Option <tt>-k</tt> bedeutet, daß die Post im Briefkasten beim ISP <em>bleibt</em> und daß man nur eine Kopie erhält. Diese Option sollte man natürlich entfernen, wenn man sicher ist, daß alles funktioniert. <p> Man beachte, daß das Paßwort in der Kommandozeile steht. Dem sollte wirklich so bald wie möglich abgeholfen werden. <p> Eine sichere und bessere Version dieses Skripts befindet sich hier: <p> <tscreen> <htmlurl url="ftp://ftp.sn.no/user/egilk/pop-script.tar.gz" name="ftp.sn.no:/user/egilk/pop-script.tar.gz"> </tscreen> <p> Diese Version des Skripts benötigt ein installiertes <tt>procmail</tt>, aber das wird man nie bereuen: <p> <tscreen> <htmlurl url="ftp://metalab.unc.edu/pub/Linux/system/Mail/mailhandlers/" name="metalab.unc.edu:/pub/Linux/system/Mail/mailhandlers/"> </tscreen> <p> Bei <tt/procmail/ handelt es sich um ein einfaches und leistungsfähiges Werkzeug, daß eingehende E-Mail aufgrund vieler verschiedener Kriterien sortieren kann. Außerdem kann es sich um automatische Aufgaben wie eine Ferienvertretung kümmern. <p> Wenn man <tt/procmail/ wie in diesem Fall direkt benutzt, liegt der Fall etwas anders, als er in der Dokumentation zu <tt/procmail/ beschrieben ist. Man braucht <em>keine</em> <tt>.forward</tt>-Datei und auch keine <tt>.procmailrc</tt>. Letztere braucht man nur, wenn die Post sortiert werden soll. <p> Eine Benutzeroberfläche, mit der man Post lesen und versenden kann, findet man in Programmen wie Pine oder Elm. <p> <nidx>POP3!fetchmail</nidx> <nidx>Mail!fetchmail</nidx> <nidx>fetchmail</nidx> In letzter Zeit hat sich <tt/fetchmail/ als sehr interessante Alternative zu <tt/popclient/ erwiesen. Die neueste Version gibt es auf: <p> <tscreen> <htmlurl url="ftp://ftp.ccil.org/pub/esr/fetchmail/" name="ftp.ccil.org:/pub/esr/fetchmail/"> </tscreen> <p> Als normaler Kunde eines ISP benötigt man eigentlich keinen aktivierten <tt/sendmail/-Daemon. Um Ressourcen zu sparen, kann man deswegen den Aufruf von <tt/sendmail/ unterdrücken, wie er sich normalerweise in <tt>/etc/rc.d/rc.M</tt> befindet. <p> Anstelle von <tt/sendmail/ kann man auch das einfachere <tt>smail</tt> benutzen. Eine gute Beschreibung der Programme und auch vieles andere, was hier erwähnt wird, findet man im <em>Linux Network Administrator's Guide</em>. <p> Es gibt auch ein m4 Makropaket, um eine neue <tt>sendmail.cf</tt> zu erzeugen. Für eine einfache Installation kann man genausogut eine bestehende Konfiguration verändern. <p> Es gibt auch noch einfachere, aber weniger leistungsfähige Alternativen. Pine zum Beispiel kann auch alleine laufen, wenn es richtig konfiguriert ist. Eventuell kann man auch neuere Versionen einiger WWW-Browser verwenden. <p> Viele sind vom Emacs-Modul Gnus zur Behandlung von E-Mail und News begeistert. Weitere Informationen hierzu befinden sich in: <p> <tscreen> <htmlurl url="http://www.ifi.uio.no/˜larsi/" name="http://www.ifi.uio.no/˜larsi/"> </tscreen> <p> <nidx>POP3!pop-perl5</nidx> <nidx>Mail!pop-perl5</nidx> Eine Alternative zu <tt>popclient</tt> ist <tt>pop-perl5</tt>. Es ist hier erhältlich: <p> <tscreen> <htmlurl url="ftp://metalab.unc.edu/pub/Linux/System/Mail/" name="metalab.unc.edu:/pub/Linux/System/Mail/"> </tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect>News <nidx>News</nidx> <sect1>Wie lese ich News online? <label id="DE-ISP-HOWTO-news-online-lesen"> <p> Solange eine PPP-Verbindung besteht, ist es möglich, News <em>online</em> zu lesen. Dazu sind viele Programme erhältlich. Zwei einfache Alternativen sind <tt>rtin</tt> und <tt>trn</tt>. <p> Das einzige, was man in den meisten Fällen konfigurieren muß, um News lesen zu können, ist die folgende Umgebungsvariable, die man normalerweise in der Datei <tt>.profile</tt> setzt: <nidx>News!$NNTPSERVER</nidx> <nidx>$NNTPSERVER</nidx> <tscreen><verb> export NNTPSERVER=news.acme.net </verb></tscreen> <p> Manche Programme benötigen vielleicht folgendes, um die <tt>From</tt>-Adresse in eigenen Beiträgen richtig einzutragen: <nidx>News!$NNTP_INEWS_DOMAIN</nidx> <nidx>$NNTP_INEWS_DOMAIN</nidx> <tscreen><verb> export NNTP_INEWS_DOMAIN=acme.net </verb></tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Wie lese ich News offline? <p> Man muß auf irgendeine Weise einen lokalen News-Spool einrichten, um News lesen zu können, während man offline ist, womit man Telefonkosten spart und flexibler ist. Dafür benötigt man einiges an Konfiguration und auch ein gewisses Maß an Platz auf der Festplatte. Hat man das einmal eingerichtet, sollte alles mehr oder weniger von selbst laufen, und man muß sich nur ab und zu etwas darum kümmern. <p> Hier werden zwei verschiedene Lösungen beschrieben. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Wie richte ich C News ein? <nidx>News!CNews</nidx> <nidx>CNews</nidx> <p> Die hier beschriebene Lösung legt den Newsserver <em>C News</em> und das NNTP-Protokoll zugrunde. C News war ursprünglich für einen anderen Verwendungszweck gedacht, ist aber leistungsfähig genug, um mit unserer Situation auch fertig zu werden. Man könnte auch den neueren Newsserver <em>INN</em> benutzen, der aber vielleicht mehr Ressourcen benötigt. Man sollte auf jeden Fall darauf achten, <em>nicht</em> beide zu installieren, da sie sich nicht gut vertragen. <p> Es ist sehr wichtig, daß man die Wartung des Newssystems als Benutzer <tt>news</tt> durchführt und daß sich alle Konfigurationsdateien in <tt>/usr/lib/news</tt> befinden. Ist man als Benutzer <tt>root</tt> eingeloggt, kann man das durch Eingabe von <tt>su news; cd</tt> bewerkstelligen. <p> <nidx>CNews!Konfiguration</nidx> <nidx>News!CNews!Konfiguration</nidx> Die wichtigsten Dateien zur Konfiguration sind: <p> <itemize> <item><tt>active</tt> ist eine Übersicht über vorhandene Newsgruppen. Sie wird - wenn nötig - über den Befehl <tt/addgroup/ aktualisiert, z.B.: <tscreen><verb> addgroup comp.os.linux.networking y </verb></tscreen> <item><tt>organization</tt> sollte nur das enthalten, was im Feld <tt>Organization:</tt> im Kopf der Nachricht stehen soll. In unserem Fall ist das folgendes: <tscreen><verb> Dirk Gently's Holistische Detektei </verb></tscreen> <item><tt>mailname</tt> enthält in unserem Fall <tt>acme.net</tt>. <item><tt>whoami</tt> wird für den Namen unseres Rechners in der <tt>Path:</tt>-Zeile verwendet. Wird wie in diesem Fall <tt>NewsX</tt> benutzt, verläßt dieser Name nie den eigenen Rechner. Man kann hier also eintragen, was man will, solange der Name einmalig ist. In unserem Beispiel verwenden wir <tt>roderick</tt>. <item><tt>sys</tt> kontrolliert den Erhalt und die weitere Verbreitung der News. In unserem Fall nehmen wir an, daß der ISP dem Pfad <tt>acme.net</tt> hinzufügt, und daß dies unsere einzige Quelle für News ist. Das folgende Beispiel besagt, daß wir alles annehmen, was ankommt, und daß wir an <tt>acme.net</tt> nur die News weitergeben, die dort noch nicht waren und die ursprünglich auf unserem Rechner abgesendet wurden. <tt>/all</tt> gibt die Verbreitung an und <em>muß</em> enthalten sein. Der Buchstabe <tt>F</tt> besagt, daß Referenzen auf ausgehende Artikel in einer Datei gesammelt werden. <tscreen><verb> ME:all/all:: acme/acme.net:all,!junk/all:FL: </verb></tscreen> <item>Es muß ein Unterverzeichnis für ausgehende News erstellt werden, in unserem Fall: <tscreen><verb> mkdir /var/spool/news/out.going/acme </verb></tscreen> <item><tt>mailpaths</tt> beschäftigt sich damit, wie Beiträge in moderierte Gruppen gesendet werden; aber diese Aufgabe sollte man normalerweise dem ISP überlassen. </itemize> <p> <nidx>CNews!crontab</nidx> <nidx>News!CNews!crontab</nidx> C News benötigt ein gewisses Maß an täglicher Wartung, was man aber ein für alle Mal erledigen kann, wenn man den Befehl <tt>crontab -e</tt> als Benutzer <tt>news</tt> ausführt. Es folgt ein Vorschlag, der nach Wunsch geändert werden kann: <tscreen><verb> # ein- und ausgehende News behandeln 10,40 * * * * /usr/lib/newsbin/input/newsrun # täglich alte Nachrichten verfallen lassen 30 0 * * * /usr/lib/newsbin/expire/doexpire # überwachen und wenn nötig Meldung erstatten 00 2 * * sat /usr/lib/newsbin/maint/addmissing 40 3 * * * /usr/lib/newsbin/maint/newswatch 50 3 * * * /usr/lib/newsbin/maint/newsdaily </verb></tscreen> <nidx>CNews!newsrun</nidx> <nidx>News!CNews!newsrun</nidx> <nidx>CNews!doexpire</nidx> <nidx>News!CNews!doexpire</nidx> <tt/newsrun/ holt und versendet zweimal pro Stunde Artikel, <tt/doexpire/ löscht um 0:30 Uhr Artikel, die veraltet sind, und die letzten drei Befehle erledigen verschiedene Aufgaben zur Überwachung und zur Behebung von Fehlern. <p> Man sollte sich auch versichern, daß bei einem Neustart des Rechners aufgeräumt wird. Dazu fügt man der Datei <tt>/etc/rc.d/rc.local</tt> als root folgende Zeile hinzu: <tscreen><verb> su news -c /usr/lib/newsbin/maint/newsboot </verb></tscreen> <nidx>News!NewsX</nidx> News kann man über das Programm <em>NewsX</em> beziehen, das sie von einem NNTP-Server holt. Das Programm befindet sich hier: <p> <itemize> <item><tt><htmlurl url="ftp://metalab.unc.edu/pub/Linux/system/news/transport/" name="metalab.unc.edu:/pub/Linux/system/news/transport/"></tt> <item><tt><htmlurl url="ftp://ftp.sn.no/user/egilk/" name="ftp.sn.no:/user/egilk/"></tt> </itemize> <p> Es ist ziemlich einfach, NewsX einzurichten. Die Installation ist ein klassischer Fall von: <tscreen><verb> make su make install exit </verb></tscreen> <p> Mit der hier beschriebenen Vorgehensweise muß man nur die Gruppen, die man haben möchte, mit dem Befehl <tt/addgroup/ erstellen. <p> Der Benutzer <tt>news</tt> führt folgende Befehle aus, um News zu holen, wobei natürlich eine PPP-Verbindung bestehen muß: <tscreen><verb> newsrun newsx acme news.acme.net newsrun </verb></tscreen> <p> Über die Option <tt>-d</tt> erhält man eine fortlaufende Ausgabe auf dem Bildschirm. Die Dokumentation zu NewsX enthält weitere Informationen. <p> NewsX kümmert sich auch um das Versenden ausgehender Nachrichten. <p> Die Datei <tt>explist</tt> wird benötigt, um zu bestimmen, wie Artikel entfernt werden, wenn sie veraltet sind. Die Kommentare im Beispiel sollten erklären, was wir erreichen wollen: <tscreen><verb> # History-Einträge werden 14 Tage behalten, keiner erhält # >120 Tage /expired/ x 14 - /bounds/ x 0-1-120 - # behalte diese Gruppen 2 Monate lang comp.sources,comp.os.linux.all x 60 - # Müll wird schnell weggeworfen junk,control x 2 - # Normalfall: 14 Tage, keine Archivierung all x 14 - </verb></tscreen> <p> Bei einem kleinen News-Spool braucht man die Gruppe <tt>control</tt> oft nicht. Im Vergleich zum Nutzen enthält sie <em>sehr viele</em> Nachrichten. Der Zweck besteht darin, daß Artikel entfernt und Gruppen automatisch erstellt werden dürfen. Damit control-Nachrichten, die <tt>newgroup</tt> enthalten, nichts durcheinanderbringen, gibt es eine Datei <tt>newgroupperm</tt>, die angibt, was erlaubt ist: <tscreen><verb> comp.os.linux tale@uunet.com yv all any nq </verb></tscreen> In diesem Beispiel werden alle gültigen Gruppen unter <tt/comp.os.linux/ erstellt (<tt/y/), und der Benutzer <tt>news</tt> wird davon in Kenntnis gesetzt (<tt/v/). Alles andere wird stillschweigend (<tt/q/) ignoriert (<tt/n/). Es reicht die letzte Zeile, wenn man alle Gruppen von Hand erstellen möchte. <p> Alternativen zu NewsX sind <tt>suck</tt> oder <tt>slurp</tt> in Verbindung mit <tt>postit</tt>. Slurp benutzt den NNTP-Befehl NEWNEWS, der viele Newsserver schwer belastet. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1>Wie richte ich Leafnode ein? <nidx>Leafnode</nidx> <nidx>News!leafnode</nidx> <p> Eine vollständig andere Lösung ist die Installation des integrierten Pakets <tt>leafnode</tt>. Es kümmert sich um alle Aufgaben, die ein eigener Newsspool mit sich bringt und ist leicht einzurichten. Es ist erhältlich über: <p> <tscreen> <htmlurl url="http://www.troll.no/freebies/leafnode.html" name="http://www.troll.no/freebies/leafnode.html"> </tscreen> <p> Wie bei C News sollten man alle Wartungsaufgaben als Benutzer <tt>news</tt> durchführen. <p> Das Hauptverzeichnis für <tt/leafnode/ ist <tt>/usr/lib/leafnode</tt>. Um es zu installieren, gibt man ein: <tscreen><verb> cd /usr/lib/leafnode tar -xzvf leafnode-0.8.tgz cd leafnode-0.8 make su make install </verb></tscreen> <p> Während man noch als <tt>root</tt> eingeloggt ist, ändert man die Zeile in <tt>inetd.conf</tt>, die NNTP behandelt: <tscreen><verb> nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode </verb></tscreen> Aktivieren sie diese Änderung durch: <tscreen><verb> killall -HUP inetd </verb></tscreen> <p> Durch Eingabe von <tt>exit</tt> kehrt man zum Benutzer <tt>news</tt> zurück. Man ändert in <tt>/usr/lib/leafnode/config</tt> die Zeile, die den NNTP-Server angibt, in unserem Fall: <tscreen><verb> server = news.acme.net </verb></tscreen> <p> Leafnode kümmert sich um alles, wenn man als Benutzer <tt>news</tt> per <tt>crontab -e</tt> folgenden Befehl einträgt: <tscreen><verb> # täglich alte Nachrichten verfallen lassen 0 4 * * * /usr/local/sbin/texpire </verb></tscreen> <p> Den Austausch von News erledigt man ebenfalls als Benutzer <tt>news</tt> durch folgenden Befehl, wobei natürlich bereits eine PPP-Verbindung bestehen muß: <tscreen><verb> /usr/local/sbin/fetch </verb></tscreen> <p> Benutzer, die News lesen wollen, sollten dann der Vorgehensweise im Abschnitt <ref id="DE-ISP-HOWTO-news-online-lesen" name="Wie lese ich News online?"> folgen, nur daß sie den lokalen Rechner eintragen, d.h.: <tscreen><verb> export NNTPSERVER=localhost </verb></tscreen> <p> Das sollte schon alles sein. Der erste <tt>fetch</tt> überträgt eine Liste erhältlicher Newsgruppen. Leafnode überwacht dann, welche Gruppen von den Benutzern angefordert werden, und paßt sich daran beim <em>nächsten</em> Start an. <p> Eine Alternative zu <tt>leafnode</tt> ist <tt>nntpcache</tt>, das hier erhältlich ist: <p> <tscreen> <htmlurl url="ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz" name="ftp.suburbia.net:/pub/nntpcache/nntpcache.tgz"> </tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect>Automatisierung <nidx>PPP!Mailaustausch</nidx> <nidx>PPP!Newsaustausch</nidx> <p> Die automatische Erledigung von News und E-Mail ist unter Linux ziemlich leicht einzurichten. <p> Als Allererstes sollte man die Datei <tt>/usr/lib/ppp/ppp-on</tt> erstellen, die die Verbindung zum ISP herstellt. Oft enthält diese Datei nur folgendes: <tscreen><verb> /usr/sbin/pppd </verb></tscreen> Weitere Angaben stehen in der Datei <tt>/etc/ppp/options</tt>: <tscreen><verb> connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript" crtscts modem defaultroute asyncmap 00000000 user dirk /dev/modem 38400 </verb></tscreen> <p> Um die Verbindung zu beenden, benutzt man die mitgelieferte Version von <tt>/usr/lib/ppp/ppp-off</tt>. <p> Hat man überprüft, daß diese zwei Skripte funktionieren, dann muß man sich Skripte schreiben, die die verschiedenen Aufgaben erledigen. Das Skript, das E-Mail holt, wurde schon beschrieben und es wird angenommen, daß es als <tt>/home/dirk/pop</tt> gespeichert ist. <p> Ein Skript für den Austausch von E-Mail kann dann als Datei <tt>/root/mail</tt> so aussehen: <nidx>Mail!Automatisierung</nidx> <tscreen><verb> #! /bin/sh # # E-Mail - Austausch # timeout von 10 Minuten: TIMEOUT=600 DT=10 # sendmail anwerfen: sendmail -q & # Post holen: su dirk -c /home/dirk/pop # warten, bis sendmail fertig ist: t=0 while ! mailq | grep -q "Mail queue is empty"; do t=$[$t+$DT] if [ $t -gt $TIMEOUT ] ; then echo "sendmail -q timeout ($TIMEOUT).." exit 1 fi sleep $DT done exit 0 </verb></tscreen> <p> <nidx>News!Automatisierung</nidx> Das Skript zum Austausch von News kann als Datei <tt>/usr/lib/news/news</tt> abgelegt werden: <tscreen><verb> #!/bin/sh # # News - Austausch # muß als Benutzer news gestartet werden cd /usr/lib/news # ausgehende Nachrichten sammeln (C News): /usr/lib/newsbin/input/newsrun < /dev/null # News austauschen: /usr/lib/newsbin/newsx acme news.acme.net # und die eingehenden Nachrichten intern übergeben: /usr/lib/newsbin/input/newsrun < /dev/null </verb></tscreen> Es fehlt noch ein Skript, daß die einzelnen Teile verbinden. Es kann als Datei <tt>/root/news+mail</tt> gespeichert werden: <tscreen><verb> #!/bin/sh # # Austausch von News und E-Mail # muß als Benutzer root gestartet werden # if ! /usr/lib/ppp/ppp-on; then exit 1 fi trap "/usr/lib/ppp/ppp-off" 1 2 3 15 # News und E-Mail austauschen: /root/mail & su news -c ~news/news wait # aufhängen.. /usr/lib/ppp/ppp-off # eingehende Nachrichten intern übergeben (C News): su news -c /usr/lib/newsbin/input/newsrun < /dev/null & exit 0 </verb></tscreen> <p> Es ist ziemlich einfach, eine Erweiterung zum obigen Skript zu erstellen, so daß nur dann eine Verbindung hergestellt wird, wenn es ausgehende E-Mail und News gibt. Nennen wir es <tt>/root/news+mail.cond</tt> und beachten, daß der Name des ausgehenden News-Spools angepaßt werden muß: <tscreen><verb> #!/bin/sh # # Austausch von News und Email, wenn ausgehende News oder # E-Mail vorhanden sind. # (C News Spool) if [ -s /var/spool/news/out.going/acme/togo ] || ! ( mailq | grep -q "Mail queue is empty"); then /root/news+mail fi </verb></tscreen> <p> Bleibt noch übrig, anzugeben, wann das alles passiert. Dazu führt man als root den Befehl <tt>crontab -e</tt> aus. Nehmen wir an, wir wollen den Austausch von News und E-Mail morgens um 7 Uhr durchführen und dann jede vierte Stunde, wenn es ausgehende E-Mail und News gibt: <tscreen><verb> 00 7 * * * /root/news+mail 00 11,15,19,23 * * * /root/news+mail.cond </verb></tscreen> <nidx>ntpdate</nidx> Man sollte sich versichern, daß alle Teile durchprobiert sind, bevor man sie verbindet. Später kann man dann weitere Aufgaben hinzufügen, wie das Stellen der Uhr über <tt/ntpdate/ und das automatische Aktualisieren von lokal geführten WWW- und FTP-Dateien beim ISP. <p> Wenn man es bevorzugt, kann man das Verfahren auch umdrehen. Sobald eine PPP-Verbindung hergestellt wird, wird das Skript <tt>/etc/ppp/ip-up</tt> ausgeführt. Hier kann man alles hineinschreiben, was man braucht, um den Austausch von E-Mail und News durchzuführen. Weitere Details finden sich in <tt>man pppd</tt>. <p> <nidx>diald</nidx> <nidx>PPP!diald</nidx> Es ist auch möglich, PPP-Verbindungen automatisch aufbauen zu lassen, sobald Daten über das Netz gehen. Dies ist in vieler Hinsicht eine elegantere Lösung, hängt aber sehr von einer guten Konfiguration ab, damit nicht zu viele und damit teure Verbindungen hergestellt werden. Weitere Informationen findet man in: <p> <tscreen> <htmlurl url="http://www.dna.lth.se/˜erics/diald.html" name="http://www.dna.lth.se/˜erics/diald.html"> </tscreen> <p> Das Programm <tt>diald</tt> ist hier erhältlich: <p> <tscreen> <htmlurl url="ftp://metalab.unc.edu/pub/Linux/system/network/serial/" name="metalab.unc.edu:/pub/Linux/system/network/serial/"> </tscreen> <p> Am gleichen Ort findet man auch weitere Variationen zum Thema PPP-Verbindungen. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect>Letzte Worte <sect1>Was sollte ich noch wissen? <p> <itemize> <item> <nidx>Mail!/etc/aliases</nidx> <nidx>Mail!newaliases</nidx> <nidx>sendmail!/etc/aliases</nidx> <nidx>sendmail!newaliases</nidx> <nidx>/etc/aliases</nidx> <nidx>newaliases</nidx> Verschiedene Fehlermeldungen des Systems werden normalerweise als interne E-Mail an bestimmte Accounts verschickt. Damit diese auch gelesen werden, sollte man die Datei <tt>/etc/aliases</tt> erzeugen. Bei jeder Änderung muß man den Befehl <tt>newaliases</tt> ausführen. Folgendes Beispiel sollte in den meisten Fällen ausreichen: <tscreen><verb> PostMaster: root ftp: root news: root usenet: root FaxMaster: root fax: root WebMaster: root MAILER.DAEMON: root </verb></tscreen> <item>Man kann viele Programme für Linux auf der <em>Sunsite</em> finden, die normalerweise gut besucht ist. Es gibt aber viele Mirrors, und jedesmal, wenn es einen Bezug auf <tt>metalab.unc.edu:/pub/Linux/...</tt> gibt, sollte man versuchen, einen nahen Mirror zu benutzen, z.B. <tt>ftp.nvg.unit.no:/pub/linux/metalab/...</tt>. <item> <nidx>Yarn</nidx> <nidx>Mail!Yarn</nidx> Wenn man von Yarn überwechselt, sollte man dessen Folder mit <tt>yarn2mf</tt> in Standard-Folder umwandeln können: <tscreen> <htmlurl url="ftp://ftp.sn.no/user/egilk/yarn2mf.zip" name="ftp.sn.no:/user/egilk/yarn2mf.zip"> </tscreen> </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect>Wo erfahre ich mehr? <p> Das Buch <em>Linux Network Administrator's Guide</em> von Olaf Kirch aus dem <em>Linux Documentation Project</em> ist so ziemlich Pflicht für jeden, der irgend etwas in Verbindung mit TCP/IP und Internet anfangen will. <p> <tscreen> <htmlurl url="ftp://metalab.unc.edu/pub/Linux/docs/linux-doc-project/network-guide/" name="metalab.unc.edu:/pub/Linux/docs/linux-doc-project/network-guide/"> </tscreen> <p> In der Dokumentation zu jedem Softwarepaket findet man normalerweise alle genaueren Informationen, wenn auch nicht immer den Überblick. Als erstes sollte man in den Manual Pages nachsehen, z.B.: <tscreen><verb> man pppd </verb></tscreen> <p> Manchmal befinden sich Dokumentationen zu bestimmten Programmen auch im Verzeichnisbaum <tt>/usr/doc</tt>, der aber nicht immer gut strukturiert ist. <p> Folgende HOWTOs sind von großer Bedeutung: <p> <itemize> <item>Das <em><htmlurl url="DE-Installation-HOWTO.html" name="Installation HOWTO"></em> beschreibt die Installation von Linux selbst. <item>Das <em><htmlurl url="DE-NET3-HOWTO.html" name="NET-3 HOWTO"></em> ist eine sehr umfangreiche Dokumentation der Netzwerkunterstützung von Linux. <item>Das <em>Mail HOWTO</em> erklärt die Konfiguration verschiedener Werkzeuge. Es sollte vieles schon erledigt sein, wenn man eine Standarddistribution installiert hat. <item>Das <em><htmlurl url="DE-News-HOWTO.html" name="News HOWTO"></em> beschreibt, wie man einen (konventionellen) News-Spool einrichtet. <item><em>Tiny-News</em> behandelt eine weitere Möglichkeit, News zu erhalten. <item>Das <em><htmlurl url="DE-PPP-HOWTO.html" name="PPP HOWTO"</em> beinhaltet eine gute Beschreibung der Probleme, auf die man beim Einrichten einer PPP-Verbindung treffen kann. <item>Das <em>Serial HOWTO</em> enthält alles, was man über die Einrichtung von seriellen Schnittstellen wissen muß. <item><em>Mail-Queue</em> beschreibt, wie man <tt>sendmail</tt> so konfiguriert, daß es ausgehende Mail immer in die Warteschlange stellt, aber lokale Post sofort zustellt. </itemize> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- <sect1>Danksagungen <p> Die enthaltenen Informationen sind aus vielen Quellen zusammengestellt. Dank an folgende Leute, die entweder direkt oder indirekt dazu beigetragen haben: <tscreen><verb> Adam Holt <holt@graphics.lcs.mit.edu> Arne Coucheron <arneco@oslonett.no> Arne Riiber <riiber@oslonett.no> Arnt Gulbrandsen <agulbra@troll.no> Bjorn Steensrud <bjornst@powertech.no> Gisle Hannemyr <gisle@a.sn.no> Hans Amund Rosbach <haro@sesam.dnv.no> Hans Peter Verne <hpv@ulrik.uio.no> Harald T Alvestrand <Harald.T.Alvestrand@uninett.no> Harald Terkelsen <Harald.Terkelsen@adm.hioslo.no> Haavard Engum <hobbes@interlink.no> James Youngman <JYoungman@vggas.com> Johan S. Seland <johanss@sn.no> John Phillips <john@linux.demon.co.uk> Jorn Lokoy <jorn@oslonett.no> Kenneth Tjostheim <kenneth.tjostheim@asplanviak.no> Kjell M. Myksvoll <kjell.myksvoll@fou.telenor.no> Kjetil T. Homme <kjetilho@math.uio.no> Michael Meissner <meissner@cygnus.com> N J Bailey <N.J.Bailey@leeds.ac.uk> Nicolai Langfeldt <janl@math.uio.no> Ove Ruben R Olsen <Ove.R.Olsen@ub.uib.no> R. Bardarson <ronb@powernet.net> Steinar Fremme <steinar@fremme.no> Sverre H. Huseby <sverrehu@ifi.uio.no> Trond Eivind Glomsrod <teg@stud.imf.unit.no> Tommy Larsen <tommy@mix.hive.no> </verb></tscreen> --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> </article>