Linux ISP-Verbindung HOWTO <author>Egil Kvaleberg (<tt>egilk@sn.no</tt>) und Christoph Seibert (<tt>seibert@cs.uni-bonn.de</tt>) <date>v1.23, 7. Mai 1997 <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 <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. Es folgt die eigentliche Übersetzung: <p> Diese Beschreibung wurde erstellt, um Fragen zu beantworten, wie man als Kunde eines ISP (Internet Service Provider) 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> EMail-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> <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 diese Hinsicht informiert werden. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Neue Versionen dieses Dokuments <p> Neue Versionen des englischen Originals <em>ISP-Hookup-HOWTO</em> werden regelmäßig nach <it>comp.os.linux.answers</it> geschickt. Sie werden auch den verschiedenen FTP-Servern hinzugefügt, die solche Informationen archivieren, unter anderem: <p> <tscreen> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO" name="sunsite.unc.edu:/pub/Linux/docs/HOWTO"> </tscreen> <p> Zusätzlich sollte man das Original auf folgender Linux-WWW-Homepage finden können: <p> <tscreen> <htmlurl url="http://sunsite.unc.edu/mdw/linux.html" name="http://sunsite.unc.edu/mdw/linux.html"> </tscreen> <p> Die jeweils aktuellste Version des Originals sollte hier in verschiedenen Formaten verfügbar sein: <p> <tscreen> <htmlurl url="ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.txt" name="ftp.sn.no:/user/egilk/ISP-Hookup-HOWTO.txt"><newline> <htmlurl url="ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.ps.gz" name="ftp.sn.no:/user/egilk/ISP-Hookup-HOWTO.ps.gz"><newline> <htmlurl url="ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.tar.gz" name="ftp.sn.no:/user/egilk/ISP-Hookup-HOWTO.tar.gz"><newline> <htmlurl url="http://home.sn.no/˜egilk/ISP-Hookup-HOWTO.html" name="http://home.sn.no/˜egilk/ISP-Hookup-HOWTO.html"> </tscreen> <p> Die jeweils neuste deutsche Version dieses HOWTO ist auf dem WWW Server des Deutschen Linux HOWTO Projekts unter folgenden Adresse zu finden: <tscreen> <htmlurl url="http://www.tu-harburg.de/˜semb2204/dlhp/" name="http://www.tu-harburg.de/˜semb2204/dlhp/"> </tscreen> Hier kann man die jeweils aktuelle Version auch gleich online lesen. Außerdem kann die HOWTO von folgendem Server bezogen werden: <tscreen> <htmlurl url="ftp://ftp.uni-stuttgart.de/pub/systems/linux/local/doc" name="ftp.uni-stuttgart:/pub/systems/linux/local/doc"> </tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <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> <tscreen> <htmlurl url="mailto:egilk@sn.no" name="egilk@sn.no"><newline> <htmlurl url="http://home.sn.no/˜egilk/" name="http://home.sn.no/˜egilk/"> </tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <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. Abschnitte, die Hinweise auf Alternativen geben, sind mit <bf>ALT:</bf> gekennzeichnet. 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 information <p> Dieses Dokument ist urheberrechtlich geschützt. Das Copyright für die englische <em><htmlurl name="ISP-Hookup-HOWTO" url="http://sunsite.unc.edu/mdw/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 zu informieren. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Wie verbinde ich mit mit dem Rest der Welt? <p> Es wird davon ausgegangen, daß die wichtigsten Teile der Netzwerk-Software installiert sind (z.B. der wichtige Teil der N-Serie der Slackware), und daß eingestellt ist, welche serielle Schnittstelle als <tt>/dev/modem</tt> genutzt wird. <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> 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> 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> 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> 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> 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> Ähnlich sieht eine minimale <tt>/etc/networks</tt> so aus: <tscreen><verb> loopback 127.0.0.0 localnet 0.0.0.0 </verb></tscreen> <p> Außerdem sollte man seine externe Maildomain in <tt>/etc/mailname</tt> setzen: <tscreen><verb> acme.net </verb></tscreen> <p> 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> Benutzt der ISP CHAP statt PAP, heißt die Datei <tt>/etc/ppp/chap-secrets</tt>. <p> 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 Telefonnumer 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 <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 solange, 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 ftp, ncftp, rlogin, telnet, finger usw. benutzen. Diese Programme sollten alle Teil des Netzwerkpakets sein. <p> Weitere Informationen über PPP sind hier vorhanden: <p> <tscreen> <htmlurl url="file:/usr/lib/ppp/README.linux" name="/usr/lib/ppp/README.linux"><newline> <htmlurl url="file:/usr/lib/ppp/README.linux-chat" name="/usr/lib/ppp/README.linux-chat"> </tscreen> <p> Zuletzt noch ein paar Worte über 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> <bf>ALT:</bf> Statt <tt>chatscript</tt> kann man auch das wesentlich flexiblere <tt>dip</tt> benutzen, aber nicht in Verbindung mit <tt>diald</tt>. <p> <bf>ALT:</bf> Wer glücklicher Besitzer einer ständigen TCP/IP-Verbindung über z.B. Ethernet ist, kann getrost alles vergessen, was PPP betrifft, und sich damit beschäftigen, seine Netzwerkkarte zu konfigurieren. <p> <bf>ALT:</bf> 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 EMail ü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 <it>Term-HOWTO</it> informieren. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Wie <it>surfe</it> ich? <p> Sollte einem der Text am wichtigsten sein, kann man den WWW-Browser Lynx benutzen. Er ist hier erhältlich: <p> <tscreen> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/lynx-2.3.bin2.tar.gz" name="sunsite.unc.edu:/pub/Linux/system/Network/info-systems/lynx-2.3.bin2.tar.gz"> </tscreen> <p> Ist X-Windows installiert, kann man einen der vielen graphischen Browser benutzen. Chimera befindet sich hier: <p> <tscreen> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/chimera-1.65.bin.ELF.tar.gz" name="sunsite.unc.edu:/pub/Linux/system/Network/info-systems/chimera-1.65.bin.ELF.tar.gz"> <htmlurl url="http://www.unlv.edu/chimera/" name="http://www.unlv.edu/chimera/"> </tscreen> <p> Mosaic: <p> <tscreen> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/Mosaic-2.7b1-aout.tgz" name="sunsite.unc.edu:/pub/Linux/system/Network/info-systems/Mosaic-2.7b1-aout.tgz"> <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> Mozilla (Netscape): <p> <tscreen> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/netscape-v11b3.tar.gz" name="sunsite.unc.edu:/pub/Linux/system/Network/info-systems/netscape-v11b3.tar.gz"> <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 oft in mancher Hinsicht <it>aufregenden</it> Versionen. <p> Diese Programme können unter bestimmten Bedingungen benutzt und ausprobiert werden. Diese sollte man beachten. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Wie verschicke und empfange ich EMail? <p> Zunächst versichert man sich, daß <tt>sendmail</tt> installiert ist. Sendmail sortiert interne und ausgehende Post und behält 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> Dies stützt sich auf <it>procmail</it> als das Programm, das EMail versendet, kann aber leicht so geändert werden, daß <it>deliver</it> benutzt wird. <p> Man braucht natürlich eine <bf>offizielle</bf> Adresse für ausgehende Post, die in <tt>/etc/sendmail.cf</tt> angegeben wird. <tscreen><verb> # who I masquerade as (null for no masquerading) DMacme.net </verb></tscreen> Hier wird angenommen, daß der lokale Benutzername der gleiche ist, den man auch beim ISP hat. Jetzt ist sendmail so eingerichtet, daß es Post <bf>direkt</bf> 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: <tscreen><verb> # "Smart" relay host (may be null) DSmail.acme.net </verb></tscreen> Zu beachten ist, daß 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> Der Empfang von EMail kann oft über das POP3-Protokoll geschehen, daß 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, nach dem die PPP-Verbindung hergestellt 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 <bf>bleibt</bf> 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 Skript befindet sich in: <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://sunsite.unc.edu/pub/Linux/system/Mail/mailhandlers/procmail-3.10-2.tar.gz" name="sunsite.unc.edu:/pub/Linux/system/Mail/mailhandlers/procmail-3.10-2.tar.gz"> </tscreen> <p> Bei procmail handelt es sich um ein einfaches und leistungsfähiges Werkzeug, daß eingehende EMail aufgrund vieler verschiedener Kriterien sortieren kann. Außerdem kann es sich um automatische Aufgaben wie eine Ferienvertretung kümmern. <p> Wenn man procmail wie in diesem Fall direkt benutzt, liegt der Fall etwas anders, als er in der Dokumentation zu procmail beschrieben ist. Man braucht <bf>keine</bf> <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> <bf>ALT:</bf> Als normaler Kunde eines ISP benötigt man eigentlich keinen aktivierten sendmail-Dämon. Um Ressourcen zu sparen, kann man deswegen einen Aufruf von sendmail unterdrücken, wie er sich normalerweise in <tt>/etc/rc.d/rc.M</tt> befindet. <p> <bf>ALT:</bf> Anstelle von sendmail kann man auch das einfachere <bf>smail</bf> benutzen. Eine gute Beschreibung (und auch vieles andere, was hier erwähnt wird) findet man im <it>Linux Network Administrator's Guide</it>. <p> <bf>ALT:</bf> 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> <bf>ALT:</bf> 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> <bf>ALT:</bf> Viele sind vom Emacs-Modul Gnus zur Behandlung von EMail 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> <bf>ALT:</bf> Eine Alternative zu <tt>popclient</tt> ist <tt>pop-perl5</tt>. Es ist hier erhältlich: <p> <tscreen> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/System/Mail/pop-perl5-1.1.tar.gz" name="sunsite.unc.edu:/pub/Linux/System/Mail/pop-perl5-1.1.tar.gz"> </tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> News <sect1> Wie lese ich News online? <p> Solange PPP läuft, ist es möglich, News <bf>online</bf> 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 folgender Befehl (den man normalerweise einmal und nie wieder in der Datei <tt>.profile</tt> einträgt): <tscreen><verb> export NNTPSERVER=news.acme.net </verb></tscreen> <p> Manche Programme benötigen <it>vielleicht</it> folgendes, um die <it>From</it>-Adresse in eigenen Beiträgen richtig einzutragen: <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? <p> Die hier beschriebene Lösung legt den Newsserver <bf>C News</bf> 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 <bf>INN</bf> benutzen, der aber vielleicht mehr Ressourcen benötigt. Man sollte auf jeden Fall darauf achten, <bf>nicht</bf> 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> 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 addgroup aktualisiert, z.B. <tt>addgroup comp.os.linux.networking y</tt>. <item> <tt>organization</tt> sollte nur das enthalten, was im Feld <it>Organization:</it> im Kopf der Nachricht stehen soll. In unserem Fall ist das </itemize> <tscreen><verb> Dirk Gently's Holistische Detektei </verb></tscreen> <p> <itemize> <item> <tt>mailname</tt> enthält in unserem Fall <tt>acme.net</tt>. <item> <tt>whoami</tt> wird auf den Namen unseres Rechners in der <it>Path:</it>-Angabe gesetzt. Wird wie in diesem Fall <tt>NewsX</tt> benutzt, verläßt dieser Name nie den eigenen Rechner, also kann man hier eintragen, was man will, solange es unverwechselbar ist, in diesem Fall <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. Wir nehmen in dieser vereinfachten Einstellung an, daß alle Newsgruppen von einer einzigen Quelle kommen. <tt>/all</tt> gibt die Verbreitung an und <bf>muß</bf> enthalten sein. Der Buchstabe <tt>F</tt> besagt, daß (Zeiger auf) ausgehende Artikel in einer Datei gesammelt werden. </itemize> <tscreen><verb> ME:all/all:: acme/acme.net:all,!junk/all:FL: </verb></tscreen> <p> <itemize> <item> Es muß ein Unterverzeichnis für ausgehende News erstellt werden, in unserem Fall: </itemize> <tscreen><verb> mkdir /var/spool/news/out.going/acme </verb></tscreen> <p> <itemize> <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> 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> durchfü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 # taeglich alte Nachrichten verfallen lassen 30 0 * * * /usr/lib/newsbin/expire/doexpire # ueberwachen und wenn noetig 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> newsrun holt und versendet Artikel (zweimal pro Stunde), doexpire löscht Artikel, die veraltet sind (nachts um 0:30 Uhr), und die letzten drei Befehle erledigen verschiedene Aufgaben zur Überwachung und zur Behebung von Fehler. <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> News kann man über das Programm <bf>NewsX</bf> bekommen, das sie von einem NNTP-Server holt. Das Programm befindet sich in: <p> <tscreen> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/News/newsx-0.1.tar.gz" name="sunsite.unc.edu:/pub/Linux/system/News/newsx-0.1.tar.gz"><newline> <htmlurl url="ftp://ftp.sn.no/user/egilk/newsx-0.3.tar.gz" name="ftp.sn.no:/user/egilk/newsx-0.3.tar.gz"> </tscreen> <p> Es ist ziemlich einfach, <tt>NewsX</tt> 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 "addgroup" erstellen. <p> Der Benutzer <tt>news</tt> führt folgende Befehle aus, um News zu holen (vorausgesetzt, es besteht eine PPP-Verbindung): <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 veralten. Die Kommentare im Beispiel sollten erklären, was wir erreichen wollen: <tscreen><verb> # History-Eintraege werden 14 Tage behalten, keiner erhaelt >120 Tage /expired/ x 14 - /bounds/ x 0-1-120 - # behalte diese Gruppen 2 Monate lang comp.sources,comp.os.linux.all x 60 - # Muell wird schnell weggeworfen junk,control x 2 - # Normalfall: 14 Tage, keine Archivierung all x 14 - </verb></tscreen> <p> <bf>ALT:</bf> Bei einem kleinen News-Spool braucht man die Gruppe <tt>control</tt> oft nicht. Im Vergleich zum Nutzen enthält sie <bf>sehr viele</bf> 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 comp.os.linux erstellt (y), und der Benutzer <tt>news</tt> wird davon in Kenntnis gesetzt (v). Alles andere wird stillschweigend (q) ignoriert (n). Es reicht die letzte Zeile, wenn man alle Gruppen von Hand erstellen möchte. <p> <bf>ALT:</bf> 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? <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 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 dies 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> # taeglich 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 (vorausgesetzt, es besteht eine PPP - Verbindung): <tscreen><verb> /usr/local/sbin/fetch </verb></tscreen> <p> Benutzer, die News lesen wollen, sollten dann der Vorgehensweise in <it>Wie lese ich News online?</it> 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 <bf>nächsten</bf> Start an. <p> <bf>ALT:</bf> 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> Wie automatisiere ich das Verbindungsverfahren? <p> Die automatische Erledigung von News und EMail ist unter Linux ziemlich leicht einzurichten. <p> Als Allererstes solle man eine <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 <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 EMail 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 EMail kann dann als <tt>/root/mail</tt> so erstellt werden: <tscreen><verb> #! /bin/sh # # EMail - 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> Das Skript zum Austausch von News kann als <tt>/usr/lib/news/news</tt> abgelegt werden: <tscreen><verb> #!/bin/sh # # News - Austausch # muss 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 uebergeben: /usr/lib/newsbin/input/newsrun < /dev/null </verb></tscreen> Es fehlt noch ein Skript, daß die einzelnen Teile verbinden. Es kann als <tt>/root/news+mail</tt> gespeichert werden: <tscreen><verb> #!/bin/sh # # Austausch von News und EMail # muss 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 EMail austauschen: /root/mail & su news -c ~news/news wait #aufhaengen.. /usr/lib/ppp/ppp-off #eingehende Nachrichten intern uebergeben (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 EMail 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 EMail vorhanden # (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 EMail morgens um 7 Uhr durchführen und dann jede vierte Stunde, wenn es ausgehende EMail und News gibt: <tscreen><verb> 00 7 * * * /root/news+mail 00 11,15,19,23 * * * /root/news+mail.cond </verb></tscreen> 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 ntpdate) und das automatische Aktualisieren (spiegeln) von lokal geführten WWW- und FTP-Dateien beim ISP (über make und ftp). <p> <bf>ALT:</bf> 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 EMail und News durchzuführen. Weitere Details finden sich in <tt>man pppd</tt>. <p> <bf>ALT:</bf> 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.cs.toronto.edu/˜schenk/diald.html" name="http://www.cs.toronto.edu/˜schenk/diald.html"> </tscreen> <p> Das Programm <tt>diald</tt> ist hier erhältlich: <p> <tscreen> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/diald-0.13.tar.gz" name="sunsite.unc.edu:/pub/Linux/system/Network/serial/diald-0.13.tar.gz"> </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> Verschiedene Fehlermeldungen des Systems werden normalerweise als interne EMail 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> durchführen. Folgendes Beispiel sollte in den meisten Fällen ausreichen: </itemize> <tscreen><verb> PostMaster: root ftp: root news: root usenet: root FaxMaster: root fax: root WebMaster: root MAILER.DAEMON: root </verb></tscreen> <p> <itemize> <item> Man kann viele Programme für Linux auf der <bf>Sunsite</bf> finden, die normalerweise gut besucht ist. Es gibt aber viele Mirrors, und jedesmal, wenn es einen Bezug auf <tt>ftp://sunsite.unc.edu/pub/Linux/..</tt> gibt, sollte man versuchen, einen nahen Mirror zu benutzen, z.B. <tt>ftp://ftp.nvg.unit.no/pub/linux/sunsite/..</tt>. <item> Wenn man von Yarn überwechselt, sollte man dessen Folder mit <tt>yarn2mf</tt> in Standard-Folder umwandeln können: </itemize> <p> <tscreen> <htmlurl url="ftp://ftp.sn.no/user/egilk/yarn2mf.zip" name="ftp.sn.no:/user/egilk/yarn2mf.zip"> </tscreen> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect> Genaueres zu verschiedenen ISPs <p> Genauere Informationen für diverse ISPs sind aus verschiedenen Quellen erhältlich: <p> <bf>Demon Internet (demon.co.uk)</bf> <p> <tscreen> <htmlurl url="ftp://ftp.demon.co.uk/pub/unix/linux/Demon/slack3.0.help.tgz" name="ftp.demon.co.uk:/pub/unix/linux/Demon/slack3.0.help.tgz"> </tscreen> <p> <bf>Easynet</bf> TBA <p> <bf>Netcom</bf> http://www.netcom.com/bin/webtech/NetCruiser/Operating_Systems/Linux/linux.cfg.html <p> <bf>PowerTech, Schibstednett, Telenor Online</bf> <p> <tscreen> <htmlurl url="http://home.sn.no/˜egilk/no-isp.html" name="http://home.sn.no/˜egilk/no-isp.html"> </tscreen> <p> <bf>Primenet</bf> TBA <p> <bf>Stanford</bf> <p> <tscreen> <htmlurl url="http://www-leland.stanford.edu/˜wkn/Linux/network/network.html" name="http://www-leland.stanford.edu/˜wkn/Linux/network/network.html"> </tscreen> <p> Wer Informationsquellen zu ISPs kennt, die hier nicht aufgeführt sind, melde dies bitte. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1> Wo erfahre ich mehr? <p> Das Buch <it>Linux Network Administrator's Guide</it> von Olaf Kirch aus dem <it>Linux Documentation Project</it> ist so ziemlich Pflicht für jeden, der irgend etwas in Verbindung mit TCP/IP und Internet anfangen will. <p> <tscreen> <htmlurl url="ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/network-guide/nag-1.0.ascii.tar.gz" name="sunsite.unc.edu:/pub/Linux/docs/linux-doc-project/network-guide/nag-1.0.ascii.tar.gz"> </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 man-pages nachsehen, z.B.: <tscreen><verb> man pppd </verb></tscreen> <p> Manchmal befindet sich Dokumentation 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> kümmert sich um grundlegende Dinge. <item> Das <em><htmlurl url="DE-NET2-HOWTO.html" name="NET-2-HOWTO"></em> ist eine sehr tiefgreifende Beschreibung von Installation und Einrichtung des NET-Codes. Vieles sollte schon erledigt sein, wenn man eine der Standarddistributionen von Linux (z.B. Slackware, RedHat, Debian) verwendet. Viele Abschnitte über Einrichtung und Fehlerbehebung sind aber sehr brauchbar. <item> Das <em>Mail-HOWTO</em> erklärt die Konfiguration verschiedener Werkzeuge. Es sollte wiederum 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 <it>sendmail</it> so konfiguriert, daß es ausgehende Mail immer in die Mailqueue 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> 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>