Linux UUCP HOWTO <author>Hendrik Scholz (<tt>hendrik@scholz.net</tt>) <date>v1.3.3, 28. Juli 2000 <abstract> Dieser Text erklärt die Funktionsweise und Konfiguration von Taylor-UUCP. Er soll die Installation eines UUCP-Feeds für News und Mail erleichtern. </abstract> <toc> <sect>Einleitung <nidx>UUCP</nidx> <sect1>Neue Versionen dieses Dokuments <p> Die jeweils neuste Version dieser HOWTO ist auf dem WWW Server des 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> <sect1>Feedback <p> Wenn Sie irgendwelche Fragen oder Kommentare zu diesem Dokument haben, erreichen Sie mich unter den folgenden Adressen: <itemize> <item><bf>Internet:</bf> <tt><htmlurl url="mailto:hendrik@scholz.net" name="hendrik@scholz.net"></tt> <item><bf>Zerberus:</bf> <tt>hscholz@KRISKI.ZER</tt> <item><bf>AMPRNet:</bf> <tt><htmlurl url="mailto:dg2ls@db0fho.ampr.org" name="dg2ls@db0fho.ampr.org"></tt> <item><bf>Homepage:</bf> <tt> <htmlurl url="http://www.toppoint.de/˜hscholz" name="http://www.toppoint.de/˜hscholz"></tt> <item><bf>Snail-Mail:</bf> <quote>Hendrik Scholz<newline> Elsa-Brandström-Str. 9<newline> D-24223 Raisdorf </quote> </itemize> <sect1>Copyright <p> Dieses Dokument ist urheberrechtlich geschützt. Das Copyright liegt bei Hendrik Scholz. Das Dokument darf gemäß der GNU <em><htmlurl name="General Public License" url="DE-GPL.html"></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. <sect1>Weiterführende Seiten <nidx>Dokumentation!UUCP</nidx> <nidx>UUCP!Dokumentation</nidx> <p> Da ich nicht alles auswendig kann, muß auch ich irgendwo nachgucken ;-). Hier finden Sie Verweise, wo Sie weiterführende Dokumente finden: <descrip> <tag>UUCP-Newsgruppe</tag> <tt><htmlurl url="news:de.comm.uucp" name="de.comm.uucp"></tt> <tag>Homepage von Ian Lance Taylor</tag> <tt><htmlurl url="http://www.cygnus.com/˜ian/" name="http://www.cygnus.com/˜ian/"></tt> <tag>Taylor-UUCP-Mail-News-FAQ</tag> <tt><htmlurl url="http://www.pingnet.de/˜poc/uucp-mail-news-faq.html" name="http://www.pingnet.de/˜poc/uucp-mail-news-faq.html"></tt> <tag>Hendriks Toppointseiten</tag> <tt><htmlurl url="http://www.toppoint.de/˜hscholz/" name="http://www.toppoint.de/˜hscholz"></tt> <tag>Martin Neumanns UUCP-Anbieter Liste</tag> <tt><htmlurl url="http://www.mne.de/uucp/" name="http://www.mne.de/uucp/"></tt> </descrip> <sect1>Dank <p> Dank geht an viele Personen, die mir geholfen haben: <itemize> <item>NetUSE Datenkommunikations GmbH (bei der ich arbeite) <item>Toppoint e.V. (wo ich nebenbei den Newsserver betreue) <item>dbTec (dort habe ich geholfen meinen ersten UUCP-Server zu installieren :)) <item>Calle (der mich zu News/UUCP gebracht hat »Willst Du das nicht machen?«) <item>einzelne Personen aus Kiel und Umgebung <item>diverse Personen, die Fragen gestellt und emails mit Kritik geschickt haben </itemize> <sect>Was ist UUCP? <nidx>UUCP!Grundlagen</nidx> <p> Hier wird erklärt, was UUCP ist und wo es benutzt wird. UUCP wurde in den späten 70er Jahren an den AT&T-Bell-Laboratories entwickelt, um einen einfachen Austausch von Mail und News über Telefonleitungen zu ermöglichen. <sect1>HDB-UUCP <nidx>HDB-UUCP</nidx> <p> HDB-UUCP (Honey-Dan-Ber-UUCP) wurde 1983 entwickelt. Der Name ist aus den Namen der Programmierer <em>P. Honeyman</em>, <em>D.A. Novitz</em> und <em>B.E. Redman</em> entstanden. Im Gegensatz zum bekannten UUCP sind neue Protokolle hinzugekommen. Es wird heute eigentlich nicht mehr benutzt. <sect1>Taylor-UUCP <nidx>Taylor-UUCP</nidx> <p> Taylor-UUCP hat seinen Namen vom Programmierer <em>Ian Lance Taylor</em>. Taylor-UUCP wurde ab 1993 (Version 1.03) sehr beliebt und ist heute der Standard für UUCP. <sect1>Anwendungen <p> UUCP heißt Unix-to-Unix-CoPy. Es ermöglicht das Kopieren von Dateien (Mail, News und Daten) zwischen verschiedenen Rechnern. Es wird heute nur noch für den Transport von Mail und News über DialUp-Leitungen benutzt, da es durch Kompression sehr effektiv ist. <sect>Voraussetzungen <nidx>UUCP!Voraussetzungen</nidx> <p> Sie können leider nicht immer UUCP benutzen. Da UUCP bei Ihrem Provider einigen Konfigurations- und Wartungsaufwand erfordert, bieten nicht alle ISPs (Internet Service Provider) UUCP an. <sect1>Voraussetzungen bei Ihrem Provider <p> Wie ich oben schon geschrieben habe, muß Ihr Provider UUCP unterstützen. Um herauszufinden, ob Ihr Provider UUCP erlaubt, können Sie Ihren Provider in den unten aufgeführten Providern suchen oder Ihrem Provider eine EMail schicken und fragen, ob Sie UUCP benutzen dürfen. Wenn Ihr Provider UUCP unterstützt, sammeln Sie bitte die folgenden Daten, da Sie diese später benötigen: <descrip> <tag>Login</tag> Ihr Loginname für UUCP. Der Loginname entspricht Ihrem Rechnernamen. Ihre EMails werden an <tt>user@login.provider.de</tt> weitergeleitet. <tag>Paßwort</tag> Ihr Paßwort beim Provider. <tag>Systemname</tag> Der Name des Rechners, den Sie anrufen. <tag>Telefonnummer</tag> Die Telefonnummer Ihres Providers, bei der Sie »pollen« können. Diese Nummer ist meistens <em/nicht/ die gleiche Nummer wie die für PPP. </descrip> <sect1>Provider, die UUCP erlauben <nidx>UUCP!Provider</nidx> <nidx>Provider!UUCP</nidx> <nidx>Individual Networks</nidx> <p> <itemize> <item>alle Provider des des Individual Networks: <tt><htmlurl url="http://www.individual.net" name="http://www.individual.net"></tt> <item>Universitäten haben teilweise einen UUCP-Rechner. Wenn Sie studieren, bitten Sie Ihren Systemadministrator einfach darum, Ihnen eine »Site« einzurichten. <item><tt><htmlurl url="http://www.netzservice.de" name="http://www.netzservice.de"></tt> (Kiel) <item><tt><htmlurl url="http://www.han.de" name="http://www.han.de"></tt> (Hannover) <item><tt><htmlurl url="http://www.rhein.de" name="http://www.rhein.de"></tt> (Bonn) <item><tt><htmlurl url="http://www.inka.de" name="http://www.inka.de"></tt> (Karlsruhe) </itemize> Eine Liste mit vielen UUCP-Providern sollten Sie hier finden: <tscreen><htmlurl url="http://www.mne.de/uucp/" name="http://www.mne.de/uucp/"></tscreen> Kennen Sie weitere Provider, die UUCP erlauben? Erlaubt Ihr Provider UUCP? Schicken Sie mir bitte eine EMail. <sect1>Provider, die kein UUCP erlauben <p> Die folgenden Provider erlauben kein UUCP. Dieses sind oft große Onlinedienste, für die UUCP oft zuviel Aufwand bedeutet. <itemize> <item>T-Online <item>AOL <item>Compuserve </itemize> Kennen Sie mehr Provider, die kein UUCP erlauben? Erlaubt Ihr Provider kein UUCP? Schicken Sie mir bitte eine EMail. <sect1>Voraussetzungen auf Ihrer Seite <p> Ihr Rechner muß einige Bedingungen erfüllen, damit UUCP einfach und schnell installiert werden kann: <itemize> <item>Linux mit Modem-/ISDN-Support muß installiert sein. <item>Sie müssen root-Rechte haben, so daß Sie das gesamte System konfigurieren können. <item>Sie benötigen ein Modem, einen externen ISDN-Terminal-Adapter oder eine ISDN-Karte, um eine Verbindung zu Ihrem Provider aufzubauen. <item>Sie sollten ein wenig Ahnung von Linux haben ;-). </itemize> Wenn alle diese Voraussetzungen erfüllt sind, können Sie mit bestem Gewissen weiterlesen. <sect>Taylor-UUCP installieren <nidx>UUCP!Installation</nidx> <p> Die Installation habe ich in mehrere Teile eingeteilt, die vom Zeitaufwand sehr unterschiedlich sind. <sect1>Haben Sie schon UUCP? <p> Viele Distributionen enthalten bereits fertige Pakete, die die Installation von UUCP erleichtern. Bei SuSE-Distributionen finden Sie die UUCP-Dateien mit YaST in der Serie »n«. Es ist empfehlenswert, die UUCP-Beispieldateien mitzuinstallieren, da Sie so Zeit beim Abtippen sparen. Bei Redhat und SuSE können Sie direkt mit dem Programm <tt/rpm/ kontrollieren, ob das UUCP-Paket installiert ist: <tscreen><verb> $ rpm -qa | grep -i uucp uucp-1.0.6-1 </verb></tscreen> So oder ähnlich sollte die Ausgabe aussehen. Wenn die Ausgabe leer ist, dann ist das Paket nicht installiert. Debian erleichtert die Installation sehr: <tscreen><verb> $ dpkg -l | grep uucp ii uucp 1.06.1-11 Unix to Unix Copy Program </verb></tscreen> Wie man sieht, ist das Paket bereits installiert. Falls es nicht installiert ist, können Sie es gleich installieren: <tscreen><verb> $ apt-get install uucp </verb></tscreen> Nach kurzer Zeit sollte der Download fertig und das Paket konfiguriert sein. <sect1>Paket runterladen <nidx>UUCP!Bezugsquellen</nidx> <p> Zuerst benötigen Sie natürlich die Quellen zum UUCP-Paket, um überhaupt etwas installieren zu können. Ich habe folgendes Paket verwendet: <tscreen><htmlurl url="ftp://ftp.funet.fi/pub/unix/networking/taylor/uucp-1.06.1.tar.gz" name="ftp.funet.fi:/pub/unix/networking/taylor/uucp-1.06.1.tar.gz"></tscreen> Die aktuellen Versionen finden Sie im Verzeichnis <tscreen><htmlurl url="ftp://ftp.funet.fi/pub/unix/networking/taylor/" name="ftp.funet.fi:/pub/unix/networking/taylor/"></tscreen> auf dem Server. <sect1>Paket kompilieren <nidx>UUCP!Kompilierung</nidx> <p> Um die Daten zu kompilieren, müssen Sie nicht als root eingeloggt sein. Lesen Sie sich zur Installation die <tt/README/-Datei aus dem Paket durch. <descrip> <tag>Paket entpacken</tag> <tt>$ tar xfvz uucp-1.06.1.tar.gz</tt> Das Archiv mit dem gepackten Sourcecode muß entpackt werden. <p> <tag>Konfiguration</tag> <tt>$ cd uucp-1.06.1; ./configure</tt> Zuerst wechseln wir in das richtige Verzeichnis ;-). Das <tt/configure/ dauert eine Weile, Sie sollten viele Zeilen vorbeiscrollen sehen. Bei diesem Vorgang sollte es keine Fehler geben, da nur geprüft wird, ob bestimmte Dinge vorhanden sind. <p> <tag>Kompilieren</tag> <tt>$ make</tt> Nun wird es ernst. Das eigentliche Kompilieren dauert je nach System ein paar Minuten. Hier sollten keine Fehler auftreten, da Ihnen sonst später einige Programme fehlen. Wenn es Fehler gibt, sollten Sie jemanden fragen, der sich damit auskennt. Am besten fragen Sie in einer der Linux-Newsgruppen. Bitte haben Sie Verständnis, daß ich bei solchen Problemen nicht helfen kann. Wenn Sie die Fehler nicht beheben konnten, können Sie vorgefertigte Binaries nehmen. </descrip> <sect1>Paket installieren <p> Wenn sich alles ohne Probleme kompilieren ließ, können Sie die neuen Programme in die Systemverzeichnisse kopieren lassen. Führen Sie dazu den folgenden Befehl aus: <tscreen>$ make install</tscreen> <sect>Pfade bei verschiedenen Distributionen <p> Obwohl es einige Standards bei Unicen gibt, befinden sich die Dateien nicht überall in den gleichen Verzeichnissen. <sect1>Debian <p> <bf>Konfigurationsdateien</bf>: <tt>/etc/uucp/</tt><newline> <bf>Binaries</bf>: <tt>/usr/sbin/</tt><newline> <bf>Logdateien</bf>: <tt>/var/log/uucp</tt><newline> <bf>rmail</bf>: <tt>/usr/sbin/</tt><newline> <bf>rnews</bf>: <tt>/usr/bin/</tt><newline> Bei Debian können Sie mit dem folgenden Befehl sehen, wo die angesprochenen Dateien und die Dokumentation liegen. <tscreen>$ dpkg -L uucp</tscreen> <sect1>RedHat <p> <bf>Konfigurationsdateien</bf>: <tt>/etc/uucp/</tt><newline> <bf>Binaries</bf>: <tt>/usr/sbin/</tt><newline> <bf>Logdateien</bf>: <tt>/var/spool/uucp/</tt><newline> <bf>rmail</bf>: <tt>/usr/bin/</tt><newline> <bf>rnews</bf>: <tt>/usr/bin/</tt><newline> Bei RedHat können Sie mit dem folgenden Befehl sehen, wo die angesprochenen Dateien und die Dokumentation liegen. <tscreen>$ rpm -ql ` rpm -qa | grep ^uucp`</tscreen> <sect1>SuSE (ab 6.0) <p> <bf>Konfigurationsdateien</bf>: <tt>/etc/uucp/</tt><newline> <bf>Binaries</bf>: <tt>/usr/sbin/</tt><newline> <bf>Logdateien</bf>: <tt>/var/spool/uucp/</tt><newline> <bf>rmail</bf>: <tt>/usr/bin/</tt><newline> <bf>rnews</bf>: <tt>/usr/bin/</tt><newline> Bei SuSE können Sie mit dem folgenden Befehl sehen, wo die angesprochenen Dateien und die Dokumentation liegen. <tscreen>$ rpm -ql ` rpm -qa | grep ^uucp`</tscreen> <sect1>SuSE (vor 6.0) <p> <bf>Konfigurationsdateien</bf>: <tt>/var/lib/uucp/taylor_config/</tt><newline> <bf>Binaries</bf>: <tt>/usr/sbin/</tt><newline> <bf>Logdateien</bf>: <tt>/var/spool/uucp/</tt><newline> <bf>rmail</bf>: <tt>/usr/bin/</tt><newline> <bf>rnews</bf>: <tt>/usr/bin/</tt><newline> Bei SuSE können Sie mit dem folgenden Befehl sehen, wo die angesprochenen Dateien und die Dokumentation liegen. <tscreen>$ rpm -ql ` rpm -qa | grep ^uucp`</tscreen> <sect1>Andere Distributionen <p> Alte Slackware-Distributionen hatten Ihre Konfigurationsdateien, wahrscheinlich als Vorbild für SuSE, in <tt>/var/lib/uucp/taylor_config</tt>. Bei Delix 5.4 und FreeBSD liegen die Dateien dort, wo sie hingehören: <tt>/etc/uucp</tt>. Falls Sie die Dateien nicht finden, sollten Sie mit dem Shell-Befehlen <tt>find</tt> und <tt>locate</tt> die Dateien suchen. Bei einem selbstcompilieren UUCP-Paket befinden sich die Konfigurationsdateien normalerweise in <tt>/usr/conf/uucp</tt>. <sect>UUCP konfigurieren <nidx>UUCP!Konfiguration</nidx> <p> Nun muß UUCP konfiguriert werden. Viele Schritte sind gleich, egal ob Sie ein Modem oder eine ISDN-Karte benutzen. Auch wenn Sie kein ISDN besitzen, können Sie die ISDN-Einträge in Ihren Dateien behalten, da diese nicht stören. Wechseln Sie in das Verzeichnis, in dem Ihre Konfigurationsdateien sind, und schauen Sie sich mit <tscreen>ls -l</tscreen> das Verzeichnis an. Es sollte schon die unten aufgeführten Dateien enthalten. Wenn dieses nicht der Fall ist, so ist dies nicht so schlimm. Sie haben doch hoffentlich das vorherige Kaptiel gelesen und wissen nun, wo die Dateien liegen. <tscreen><verb> $ ls -l /etc/uucp/ total 7 -r--r----- 1 uucp uucp 160 Jun 14 21:20 call -rw-r----- 1 uucp uucp 91 Jun 14 21:20 config -rw-r----- 1 uucp uucp 724 Jun 14 21:20 dial -rw-r--r-- 1 uucp uucp 162 Jul 16 11:48 port -rw-r--r-- 1 uucp uucp 2933 Jul 7 06:30 sys </verb></tscreen> <sect1>Namensgebung <p> Um später Konflikte zu vermeiden, geben wir den Rechnern eindeutige Namen. <em>tpki</em> ist der UUCP-Server meines Providers. <em>perikles</em> ist mein UUCP-Client. Das Paßwort in den Beispielen ist <em>asecret</em>. Am besten notieren Sie sich die Namen Ihrer eigenen Site und der des UUCP-Servers Ihres Providers neben den Beispielnamen, damit Sie wissen, welcher Rechner gemeint ist. Alle Zeilen, die in den Konfigurationsdateien mit einem Hash (#) anfangen, sind Kommentare und müssen nicht mitgeschrieben werden. <sect1>config - Name Ihres Rechners <nidx>UUCP!config</nidx> <nidx>UUCP!Rechnername</nidx> <p> In der <tt>config</tt>-Datei steht der Name Ihres Rechners. Sie haben den Namen Ihres Rechners von Ihrem Provider bekommen, falls Sie den Namen nicht selbst aussuchen durften. Schreiben Sie die folgende Zeile in die <tt/config/-Datei, wobei Sie <tt>rechnername</tt> durch Ihren Rechnernamen (ohne .provider.de) ersetzen: <tscreen><verb> nodename rechnername </verb></tscreen> <sect1>call - Paßwortdatei <nidx>UUCP!call</nidx> <nidx>UUCP!Loginprozedur</nidx> <nidx>UUCP!Paßwort</nidx> <p> Die Datei <tt>call</tt> enthält alle Informationen, die für die Loginprozedur benötigt werden. Der Systemname des Systems (tpki), das Sie anrufen, Ihr Loginname (perikles) und Ihr Paßwort (asecret) werden durch Leerzeichen getrennt. <tscreen><verb> # <system> <login> <passwd> tpki perikles asecret </verb></tscreen> <sect1>port - Schnittstellen <nidx>UUCP!port</nidx> <nidx>UUCP!Schnittstellen</nidx> <p> Die Datei <tt>port</tt> definiert die Schnittstellen, über die UUCP gemacht werden kann. Übernehmen Sie diese Datei, so wie sie hier steht und ändern Sie erst danach die einzelnen Zeilen. <tscreen><verb> # ISDN über den ersten ISDN-Kanal per Modememulation port ttyI0 device /dev/ttyI0 speed 115200 dialer ttyI0 # UUCP über eine bestehende TCP-Verbindung port uucp-tcp type TCP service 540 # UUCP per Modem port modem device /dev/modem speed 38400 dialer modem </verb></tscreen> Eigentlich sollte alles so funktionieren, wie es hier steht. Es ist nötig, daß <tt>/dev/modem</tt> auf den seriellen Anschluß zeigt, an dem das Modem angeschlossen ist. <sect1>dial - Modem-Konfiguration <nidx>UUCP!dial</nidx> <p> Diese Datei konfiguriert das Modem und die ISDN-Karte. Sie enthält z.B. den Init-String für Ihr Modem. Falls Sie nur UUCP über TCP betreiben möchten, können Sie per <tt>touch dial</tt> eine leere Datei erstellen und diesen Abschnitt überspringen, da für TCP kein Modem und keine ISDN-Karte konfiguriert werden muß. Zuerst wird die Modem-Konfiguration beschrieben. Wenn Sie kein Modem haben, können Sie diesen Teil überspringen. Die erste Zeile, die mit <tt>chat</tt> beginnt, enthält den Init-String für Ihr Modem. Falls Ihr Modem einen speziellen String benötigt, müssen Sie diesen dort eintragen. Das <tt>\D</tt> ist die Telefonnummer, die später gewählt wird. <tscreen><verb> # Modem "modem" konfigurieren dialer modem chat "" ATZ OK ATDT\D CONNECT chat-fail BUSY chat-fail NO\sCARRIER chat-fail ERROR chat-fail NO\sDIALTON chat-fail SYSTEM\sSUSPEND carrier-wait 60 dtr-toggle true complete \d\d+++\d\dATH\r\c abort \d\d+++\d\dATH\r\c </verb></tscreen> <p> Die ISDN-Konfiguration erfordert immer eine kleine Anpassung. Sie müssen Ihre MSN (Multiple Subscriber Number) im Init-String angeben. In der Beispielkonfiguration ist die MSN 81238. Aber Achtung, die MSN ist <em/nicht/ die komplette Telefonnummer. <tscreen><verb> # ISDN-Karte ttyI0 konfigurieren dialer ttyI0 chat "" ATZ OK AT&E81238 OK \d ATD\D CONNECT chat-fail BUSY chat-fail NO\sCARRIER chat-fail ERROR chat-fail NO\sDIALTONE chat-fail SYSTEM\sSUSPEND carrier-wait 60 dtr-toggle true complete \d\d+++\d\dATH\r\c abort \d\d+++\d\dATH\r\c </verb></tscreen> <sect1>sys - die eigentliche Konfiguration <nidx>UUCP!sys</nidx> <p> In dieser Datei müssen Sie je nach Verbindungsart (ISDN, Modem, TCP) viele Anpassungen vornehmen. Der erste Teil setzt nur ein paar Variablen, die bei allen Verbindungsarten gleich sind. Hier müssen sie nur den Namen des Systems anpassen, das Sie anrufen. Kopieren Sie bitte nur eine Konfiguration (für Modem, ISDN oder TCP) hinter den gleich folgenden allgemeinen Teil. Kopieren Sie den folgenden Teil in die Datei <tt>sys</tt>: <tscreen><verb> # Login und Paßwort aus der Datei "call" übernehmen call-login * call-password * # öffentliches Spoolverzeichnis pubdir /var/spool/uucppublic # Timeout nach dem Verbindungsaufbau während der # Login-Prozedur chat-timeout 20 # UUCP darf immer gemacht werden time any # UUCP darf alle 600 Sekunden wiederholt werden success-wait 600 # Befehle, die ausgeführt werden dürfen # ggf. Pfade anpassen ! commands rmail rnews command-path /usr/lib/news/bin/ /usr/bin /usr/sbin # Name des Systems, das Sie anrufen system tpki </verb></tscreen> <sect2>UUCP per Modem <nidx>UUCP!Modem</nidx> <nidx>Modem!UUCP</nidx> <p> Wenn Sie ein Modem oder einen externen ISDN-Terminal-Adapter haben, kopieren Sie die folgenden Zeilen hinter die Zeilen, die bereits in der Datei <tt>sys</tt> stehen. Anstatt der <tt>0431123123</tt> sollten Sie die Telefonnummer Ihres Providers, die Sie bei Ihrer Anmeldung bekommen haben, angeben. <tscreen><verb> port modem chat ogin: \L word: \P protocol ig # hier bitte die Telefonnummer anpassen phone 0431123123 protocol-parameter i window 7 protocol-parameter i packet-size 2048 protocol-parameter i startup-retries 16 protocol-parameter i init-retries 8 protocol-parameter i init-timeout 10 protocol-parameter i retries 3 protocol-parameter i timeout 20 protocol-parameter i garbarge 20000 protocol-parameter i errors 256 protocol-parameter i error-decay 8 protocol-parameter i remote-window 0 protocol-parameter i remote-packet-size 0 protocol-parameter i short-packets true </verb></tscreen> <sect2>UUCP per ISDN <nidx>UUCP!ISDN</nidx> <nidx>ISDN!UUCP</nidx> <p> Wenn Sie eine ISDN-Karte haben, kopieren Sie die folgenden Zeilen hinter die Zeilen, die bereits in der Datei <tt>sys</tt> stehen. Anstatt der <tt>0431123123</tt> sollten Sie die Telefonnummer Ihres Providers, die Sie bei Ihrer Anmeldung bekommen haben, angeben. <tscreen><verb> port ttyI0 chat ogin: \L word: \P protocol ig # hier bitte die Telefonnummer anpassen phone 0431123123 protocol-parameter i window 7 protocol-parameter i packet-size 2048 protocol-parameter i startup-retries 16 protocol-parameter i init-retries 8 protocol-parameter i init-timeout 10 protocol-parameter i retries 3 protocol-parameter i timeout 20 protocol-parameter i garbarge 20000 protocol-parameter i errors 256 protocol-parameter i error-decay 8 protocol-parameter i remote-window 0 protocol-parameter i remote-packet-size 0 protocol-parameter i short-packets true </verb></tscreen> <sect2>UUCP über eine bestehende Verbindung <nidx>UUCP!TCP</nidx> <p> UUCP über eine TCP-Verbindung ist relativ leicht zu konfigurieren. Nur der Systemname in der <tt>address</tt>-Zeile muß angepaßt werden. <tscreen><verb> port uucp-tcp protocol tig # Hier den Systemnamen im Format systemname.provider.de # eintragen address tpki.toppoint.de chat ogin: \L word: \P </verb></tscreen> <bf>Nun noch ein kleiner Trick:</bf> Damit UUCP schneller merkt, daß es keine Verbindung per TCP bekommt, wird der Rechner Ihres Providers in der Datei <tt>/etc/hosts</tt> eingetragen. Wenn UUCP gestartet wird, muß kein Nameserverlookup gemacht werden, um den Rechner zu kontaktieren. Statt dessen wird der Eintrag aus der <tt>/etc/hosts</tt> genutzt. <bf>So wird es gemacht:</bf> Pingen Sie den UUCP-Rechner Ihres Providers so an: <tscreen><verb>ping system.provider.de</verb></tscreen> Sie sollten eine Antwort von dem Rechner bekommen: <tscreen><verb> $ ping -c 4 tpki.toppoint.de PING tpki.toppoint.de (195.244.243.6): 56 data bytes 64 bytes from 195.244.243.6: icmp_seq=0 ttl=64 time=23.1 ms 64 bytes from 195.244.243.6: icmp_seq=1 ttl=64 time=22.9 ms 64 bytes from 195.244.243.6: icmp_seq=2 ttl=64 time=22.7 ms 64 bytes from 195.244.243.6: icmp_seq=3 ttl=64 time=22.9 ms --- perikles.toppoint.de ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 22.7/22.9/23.1 ms </verb></tscreen> Übernehmen Sie die IP-Adresse, hier 195.244.243.6, und tragen Sie diese zusammen mit dem Rechnernamen in der <tt>/etc/hosts</tt> ein: <tscreen><verb> # <IP-Adresse> <Rechner.provider.de> <rechner> 195.244.243.6 tpki.toppoint.de tpki </verb></tscreen> Wenn Sie offline sind und <tscreen><verb>ping rechner.provider.de</verb></tscreen> eintippen, sollte die folgende Fehlermeldung kommen: <tscreen><verb> PING tpki.toppoint.de (195.244.243.6): 56 data bytes ping: sendto: Network is unreachable ping: wrote tpki.toppoint.de 64 chars, ret=-1 </verb></tscreen> <sect>UUCP starten <nidx>uucico</nidx> <nidx>UUCP!uucico</nidx> <nidx>UUCP!Start</nidx> <p> Wenn Sie das HOWTO von oben durchgegangen sind, ist UUCP bis jetzt noch nicht fertig konfiguriert. Damit es leichter ist, die Fehler zu suchen, machen wir erstmal eine Testverbindung und rufen UUCP selbst auf. <sect1>UUCP von Hand starten <p> UUCP wird mit dem Befehl <tt>uucico</tt> gestartet. <tt>uucico</tt> und die anderen Programme befinden sich in <tt>/usr/lib/uucp/</tt>. <sect2>Vorbereitungen <p> Um verfolgen zu können, was gerade passiert, wenn wir das erste Mal »pollen«, lassen wir uns mit <tt>tail</tt> die Logdateien anzeigen. Dazu erstellen Sie so die Logdateien: <tscreen><verb> # touch /var/spool/uucp/Log # touch /var/spool/uucp/Debug </verb></tscreen> Damit <tt>uucico</tt> auch in die Dateien schreiben kann, sollten Sie mit <tscreen><verb> chown uucp:uucp /var/spool/uucp/* </verb></tscreen> den Besitzer dieser Dateien ändern. Machen Sie nun ein neues <tt>xterm</tt> auf oder loggen Sie sich auf einer anderen virtuellen Konsole als root ein. Tippen Sie nun folgendes ein: <tscreen><verb> tail -f /var/spool/uucp/Log /var/spool/uucp/Debug </verb></tscreen> Auf dem Bildschirm sollten schon ein paar Zeilen erscheinen. Ab jetzt werden alle Änderungen an den Logdateien angezeigt. <sect2>uucico aufrufen <p> <tt>uucico</tt> werden beim Start der Systemname der Gegenstelle und der Port (Modem, ISDN, TCP) übergeben. Da nur ein Port in der <tt>sys</tt> steht oder haben Sie etwa doch zwei drin, brauchen wir den Port nicht angeben. Den Systemnamen <tt>systemname</tt> müssen Sie durch den Namen des Systems ersetzen, das Sie anrufen möchten. Dieser Name muß mit dem Namen in der <tt>sys</tt>-Datei übereinstimmen. So ergibt sich der folgende Befehl zum Starten von UUCP: <tscreen><verb>/usr/lib/uucp/uucico -f --debug 7 -s systemname</verb></tscreen> <sect1>UUCP automatisieren <nidx>UUCP!crontab</nidx> <p> Wenn alles funktioniert und Sie Ihren Rechner UUCP automatisch nachts aufrufen lassen möchten, können Sie die <tt>crontab</tt> als Hilfsmittel benutzen. Tippen Sie als root diesen Befehl ein: <tscreen><verb>su - uucp</verb></tscreen> Nun sind Sie der Benutzer <tt>uucp</tt>. Mit <tscreen><verb>crontab -e</verb></tscreen> können Sie die Crontab ändern. Fügen Sie die folgende Zeile ein, damit UUCP einmal abends um 21.30 Uhr aufgerufen wird: <tscreen><verb> 30 21 * * * /usr/lib/uucp/uucico -f -s systemname</verb></tscreen> Wie Sie bestimmt schon erkannt haben, steht die erste Zahl für die Minuten und die zweite für die Stunden. Die Sternchen stehen für Tag des Monats, Monat und Tag der Woche (0=Sonntag). Wenn Sie mehr über die Möglichkeiten von cron erfahren möchten, lesen Sie bitte mit <tscreen><verb>man 5 crontab</verb></tscreen> die Dokumentation zu <tt>crontab</tt>. <sect>Mail und News konfigurieren <p> Die lokalen Mail- und Newsserver müssen noch konfiguriert werden, damit Sie die Möglichkeiten von UUCP ausnutzen. Damit News und Mail per UUCP angeliefert werden können, ist normalerweise keine Konfiguration notwendig. Die Konfiguration beschreibt also, wie Sie Sendmail und INN/cnews dazu bringen, UUCP zu nutzen. <sect1>Sendmail <nidx>Mail!sendmail!UUCP</nidx> <nidx>sendmail!UUCP</nidx> <p> Wenn Sie einen <tt/sendmail/-Mailserver installiert haben, ist dieser Abschnitt für Sie interessant. Wenn Sie <tt/sendmail/ benutzen, sollten Sie bei <tscreen><verb>telnet localhost 25</verb></tscreen> den folgenden Text erhalten: <tscreen><verb> Trying 195.244.243.209... Connected to Perikles.toppoint.de. Escape character is '^]'. 220 Perikles.toppoint.de ESMTP Sendmail 8.8.8/8.8.8; Fri, 26 Jun 1998 17:26:14 +0200 </verb></tscreen> <sect2>SuSE-Config <p> Wenn Sie eine SuSE-Distribution benutzen, können Sie einfach per YaST Ihren Mailserver für den UUCP-Betrieb konfigurieren. Starten Sie dazu als root <tt>yast</tt>. Gehen Sie in das Menü <em/Administrieren des Systems/, <em/Netzwerk konfigurieren/, <em/Sendmail konfigurieren/. Nun wählen Sie <em/Benutze UUCP zur Mail-Übertragung/. Tragen Sie den Namen des Systems Ihres Providers ein. <sect2>/etc/mail/sendmail.cf <nidx>/etc/mail/sendmail.cf</nidx> <nidx>/etc/sendmail.cf</nidx> <p> Wenn Sie keine grafische Oberfläche haben oder Sendmail von Hand installiert haben, müssen Sie die Konfigurationsdateien selbst anpassen. Die folgenden Variablen sollten Sie in Ihrer <tt>/etc/mail/sendmail.cf</tt>-Datei anpassen: <tscreen><verb> # "Smart" relay host # hier muß der Rechnernamen auf der Seite Ihres # Providers eintragen werden (hier: tpki) DSuucp-dom:tpki </verb></tscreen> Manche Distributionen legen die <tt>sendmail.cf</tt> in <tt>/etc/</tt> ab. <sect2>Überprüfen, ob die Mails richtig verschickt werden <p> Wenn Sie <tt/sendmail/ konfiguriert und neu gestartet haben, sollten Sie testweise eine EMail verschicken, um zu verfolgen, ob alles richtig konfiguriert ist. <descrip> <tag>mailq</tag> Das Programm <tt>mailq</tt> zeigt an, welche EMails vom <tt/sendmail/ noch bearbeitet werden müssen. Wenn Sie eine EMail geschrieben haben und Ihre EMail hier nicht finden können, dann ist das kein Grund zur Sorge, da Ihr Mailserver die EMail wahrscheinlich schon bearbeitet hat. <tag>/var/log/mail</tag> Die Datei <tt>/var/log/mail</tt> enthält Informationen zu den bearbeiteten EMails. Um diese Datei anzuschauen, müssen Sie root sein. Sie können mit <tscreen><verb>tail -f /var/log/mail</verb></tscreen> verfolgen, was sich an der Datei ändert. <tag>/var/spool/uucp/Log</tag> Diese Logdatei von UUCP verzeichnet alle ein- und ausgehenden EMails. Die genaue Beschreibung finden Sie im Abschnitt <ref id="DE-UUCP-HOWTO-uucp-log" name="Wo finde ich die Fehlermeldungen">. </descrip> <sect1>Welcher Newsserver ist am besten geeignet? <p> Es gibt verschiedene Newsserver, die unterschiedliche Eigenschaften haben ;-). <descrip> <tag>INN - InterNetNews</tag> + INN ist weit verbreitet, da der Server sowohl UUCP- als auch NNTP-Links ermöglicht.<newline> + INN ist relativ schnell.<newline> + Das Suchen nach Schlüsselwörtern in den News ist möglich.<newline> - aufwendig zu konfigurieren<newline> - verbraucht relativ viele Ressourcen<newline> <tag>cnews</tag> + Leichte Konfiguration<newline> - nur für UUCP gedacht<newline> - keine Suche nach Artikeln möglich<newline> </descrip> Suchen Sie sich nun den Server aus, der für Sie besser geeignet ist. <sect1>INN - InterNetNews <nidx>News!INN</nidx> <nidx>INN</nidx> <label id="DE-UUCP-HOWTO-inn"> <p> INN ist ein sehr beliebter News-Server für Unix-Systeme. INN ist die Abkürzung für InterNetNews. Falls Sie eine SuSE-Distribution benutzen, finden Sie die Binaries in der Serie »n«. Aktuell ist die Version 2.2.3. Da viele Distributionen noch ältere Versionen wie z.B. 1.72 benutzen, gibt es hier eine Beschreibung für die Konfiguration eines INN 1.72 und eines neueren INN (Version 2.2). <sect1>INN 1.72 <p> Die Konfigurationsdateien befinden sich meist in <tt>/var/lib/news/</tt> oder <tt>/etc/news</tt>. <tt>/usr/local/news</tt> ist allerdings auch denkbar, so daß Sie vielleicht etwas suchen müssen. <sect2>send-uucp.cf - Batchparameter <nidx>News!INN!send-uucp.cf</nidx> <nidx>INN!send-uucp.cf</nidx> <nidx>send-uucp.cf</nidx> <p> Mit dieser Datei wird geklärt, wie und wann die News, die Sie verschicken, gepackt werden. Das System (tpki) ist der Rechnername Ihres Provider. <tscreen><verb> # Das Format sieht so aus: # sitename<Space>compressor<Space>maxsize<Space>batchtime tpki compress 1048576 1-24 </verb></tscreen> <sect2>newsfeeds - Wer bekommt was? <nidx>News!INN!/etc/news/newsfeeds</nidx> <nidx>INN!/etc/news/newsfeeds</nidx> <nidx>/etc/news/newsfeeds</nidx> <p> In der <tt>newsfeeds</tt>-Datei wird definiert, welcher Server welche Gruppen oder Artikel von Ihrem Server bekommt. Außerdem wird hier definiert, welche Artikel Ihr Server annimmt. Hier ist meine <tt>newsfeeds</tt>-Datei: <tscreen><verb> # ich akzeptiere alles (siehe FAQ-Abschnitt) ME:*:: # # interne Verwaltung des Newsservers (default) OVERVIEW!:*,!junk,!control*:Tc,WO\ :/usr/lib/news/bin/overchan # # mein Newsfeed zu tpki (mein Provider ;-)) tpki/tpki.toppoint.de,news.toppoint.de\ :*,!junk,!control,!*local*:Tf,Wnb,B4096/1024 </verb></tscreen> Die einzige Zeile, die Sie anpassen müssen, ist die letzte Zeile. Die genaue Syntax finden Sie als Kommentar in der <tt>newsfeeds</tt>-Datei. Das Format sieht so aus: <tscreen><verb> # systemname/keine_artikel_von_diesem_server\ # :zu_verschickende_Artikel:Feed_Typ:Parameter tpki/news.toppoint.de:*,!junk,!control,!*local*\ :Tf,Wnb,B4096/1024 # # ersetzen Sie <system> und <news.provider.de> und Sie # haben einen Standardfeed :-) # system/news.provider.de:*,!junk,!control\ # :Tf,Wnb,B4096/1024 </verb></tscreen> <bf>Erklärung:</bf> Ich schicke zu <tt>tpki</tt> meine Artikel aus allen Gruppen außer <tt>junk</tt>, <tt/control/ und <tt/local.*/. Außerdem schicke ich nicht die Artikel, die von <tt/news.toppoint.de/ kommen. <sect2>INN neu starten <nidx>INN!ctlinnd</nidx> <nidx>News!INN!ctlinnd</nidx> <nidx>ctlinnd</nidx> <p> Nun ist es an der Zeit, daß der News-Server neu gestartet wird, damit die Änderungen wirksam werden. Überprüfen Sie zuerst, ob der Server läuft: <tscreen><verb> $ ps auxwww | grep inn hscholz 3795 0.0 0.7 888 336 p1 S 13:43 0:00 grep inn news 426 0.0 3.4 2132 1620 ? S 08:32 0:13 /usr/lib/news/bin/innd -p4 -i0 </verb></tscreen> Der Server läuft in diesem Fall. Der INN-Prozess wird mit dem folgenden Befehl gestoppt: <tscreen>$ ctlinnd shutdown weg damit</tscreen> Das Programm <tt>ctlinnd</tt> kann auch einzelne Konfigurationsdateien neu laden, aber dafür muß man mehr tippen :-). <p> Der Server wird über den Befehl <tt>rc.news</tt> neu gestartet. <tt>rc.news</tt> befindet sich bei mir im Verzeichnis <tt>/usr/lib/news/</tt>. <tt>/usr/local/news</tt> ist ein anderer möglicher Aufenthaltsort. Falls Sie die Datei nicht finden, können Sie mit dem folgenden Befehl die Datei suchen: <tscreen><verb> $ locate rc.news /usr/lib/news/bin/rc.news </verb></tscreen> In der Datei <tt>/var/log/messages</tt> und/oder der Datei <tt>/var/log/news</tt> sollten nun einige Nachrichten erscheinen, daß der Server gestartet wurde: <tscreen><verb> Oct 21 14:33:45 perikles innd: SERVER descriptors 256 Oct 21 14:33:45 perikles innd: SERVER outgoing 243 Oct 21 14:33:45 perikles innd: SERVER ccsetup control:12 Oct 21 14:33:45 perikles innd: SERVER lcsetup localconn:14 Oct 21 14:33:45 perikles innd: SERVER rcsetup remconn:4 Oct 21 14:33:45 perikles innd: think it's a dotquad: 193.174.3.209 Oct 21 14:33:45 perikles innd: think it's a dotquad: 193.174.3.210 Oct 21 14:33:45 perikles innd: think it's a dotquad: 193.174.3.211 Oct 21 14:33:45 perikles innd: think it's a dotquad: 193.174.3.212 Oct 21 14:33:45 perikles innd: think it's a dotquad: 193.174.3.213 Oct 21 14:33:45 perikles innd: think it's a dotquad: 193.174.3.214 Oct 21 14:33:45 perikles innd: think it's a dotquad: 193.174.3.215 Oct 21 14:33:45 perikles innd: think it's a dotquad: 192.168.1.11 Oct 21 14:33:45 perikles innd: dionysus.toppoint.de opened dionysus.toppoint.de:16:file Oct 21 14:33:45 perikles innd: OVERVIEW! spawned OVERVIEW!:18:proc:4402 Oct 21 14:33:45 perikles innd: tpki opened tpki:17:file Oct 21 14:33:45 perikles innd: SERVER starting </verb></tscreen> <sect2>News zusammenpacken <p> Der Newsserver muß jetzt noch so konfiguriert werden, daß er automatisch vor jedem Pollen die Newsbatches zusammenpackt, damit diese hochgeladen werden können. Das Packen für UUCP erledigt das Programm <tt>/usr/lib/news/bin/send-uucp.pl</tt>. Wenn Sie eine Artikel geschrieben haben und dann <tscreen><verb>/usr/lib/news/bin/send-uucp.pl systemname</verb></tscreen> ausführen, wobei Sie <tt>systemname</tt> durch den Systemnamen Ihres Providers ersetzen, sollte eine zusätzliche Zeile in der <tt>/var/spool/uucp/Log</tt> erscheinen: <tscreen><verb> uux tpki news (1998-06-25 13:00:06.83 535) Queuing rnews (D.00KI) </verb></tscreen> <sect1>INN 2.2 <p> Da selbst SuSE eingesehen hat, daß es Standard-Verzeichnisse für die Konfigurationsdateien gibt, werden Sie das Homeverzeichnis des Users news und die Konfigurationsdateien des INN wahrscheinlich in <tt>/etc/news</tt> oder (bei selbstcompilierten Versionen) in <tt>/usr/local/news/etc</tt> finden. <sect2>Aktuellen INN selbst compilieren <p> Die Website des INN finden Sie hier: <tscreen><htmlurl url="http://www.isc.org/inn.html" name="http://www.isc.org/inn.html"></tscreen> Die Sourcen selbst können Sie von der Index-Seite aus herunterladen oder direkt per FTP von hier holen: <tscreen><htmlurl url="ftp://ftp.isc.org/inn/" name="ftp.isc.org:/inn/"></tscreen> Entpacken Sie nun die Sourcen in einem temporären Verzeichnis: <tscreen>$ tar xfvz inn-2.2.1.tar.gz</tscreen> Wechseln Sie in das Verzeichnis und lesen Sie die Dokumentation in den Dateien <tt>README</tt> und <tt>INSTALL</tt>. Führen Sie nun das <tt>./configure</tt> aus. In der Dokumentation haben Sie hoffentlich die Parameter gelesen. Ich benutze meist folgendes: <tscreen><verb> $ ./configure --enable-tagged-hash --prefix=/usr/local/news \ --with-spool-dir=/var/spool/news \ --with-log-dir=/var/log/news && echo ok </verb></tscreen> Gegebenenfalls benötigen Sie noch ein zusätzliches <tt>--with-sendmail=/usr/lib/sendmail</tt>. Nach kurzer Zeit sollten Sie in der letzten Zeile ein einsames <tt>ok</tt> sehen. Wenn nicht, dann hat das Skript irgendwo einen Fehler gefunden und abgebrochen. Compilieren Sie nun den INN: <tscreen>$ make && echo ok</tscreen> Wieder einige Minuten später sollten Sie ein <tt>ok</tt> in der letzten Zeile sehen. Wenn dies dort nicht steht, ist etwas schiefgegangen. Installieren Sie den INN mit dem folgenden Befehl: <tscreen>$ make install</tscreen> <sect2>inn.conf <p> Die <tt/inn.conf/ ist eine der zentralen Konfigurationsdateien. Sie finden diese im Verzeichnis <tt>[PREFIX]/etc</tt>. Wenn Sie den INN wie angegeben compiliert haben, befindet sich die Datei in <tt>/usr/local/news/etc/inn.conf</tt>. Passen Sie die folgenden Zeilen an: <tscreen><verb> # Diese Zeile erscheint im Header jedes Postings organisation: noch eine UUCP-Site # Der FQDN Ihres Rechners server: perikles.toppoint.de # Dieser Name taucht im Header in der Path-Zeile auf: pathhost: perikles.toppoint.de </verb></tscreen> <sect2>newsfeeds <p> In dieser Datei steht beschrieben, welcher andere Server welche Gruppen bekommt. Es gibt dort viele Beispiele, so daß Sie sicher schnell herausfinden, wie es funktioniert. Die folgende Zeile konfiguriert einen UUCP-Feed fuer das System tpki: <tscreen><verb> # System/Exclude:Gruppen/Distribution:Parameter: tpki/tpki.toppoint.de:*,!junk,!control*/*:Tf,Wnb,B4096/1024: </verb></tscreen> <tt>tpki</tt> ist der Name meines UUCP-Partners. Hier tragen Sie nicht Ihren eigenen Sitenamen sondern den Ihres Providers ein. Das <tt>/tpki.toppoint.de</tt> verhindert, das Newsartikel, die schon ein tpki.toppoint.de im Pfad haben, nicht an den Server geschickt werden. Gucken Sie bitte in einige Newsheader, wenn Sie sich nicht sicher sind, was hier stehen muß. Normalerweise ist es <tt>news.provider.de</tt>. Sie können mehrere Servernamen mit Kommas trennen. Der String zwischen den ersten beiden Doppelpunkten regelt, welche Gruppen an den Server geschickt werden. In diesem Fall wird alles (*), außer junk (!junk) und außer den Controlgruppen (!control*) gefeedet. Diese Konfiguration ist sehr einfach. Wenn Sie z.B. lokalen Newsgruppen haben, die nicht gefeedet werden sollen, tragen Sie hier einfach ein <tt>!Gruppe</tt> ein. Das abschließende <tt>/*</tt> bestimmt die Distribution. Dieser Parameter wird fast nicht mehr benutzt, so daß <tt>*</tt> stehenbleiben kann. <sect2>nnrp.access <p> Wer auf Ihren Server zugreifen darf, wird in dieser Datei geregelt. Das Format ist denkbar einfach. Die ersten drei Zeilen sind zwingend notwenig, da sonst das UUCP keine Artikel einliefern darf. In der vierten Zeile erlaube ich allen Rechnern der Domain <tt>toppoint.de</tt>, bei mir News zu lesen. Die Rechner aus dem Netz <tt>192.168.9</tt> dürfen lesen und schreiben: <tscreen><verb> stdin:Read Post:::* localhost:Read Post:::* 127.0.0.1:Read Post:::* *.toppoint.de:Read:::* 192.168.9:Read Post:::* </verb></tscreen> In der Datei selbst befindet sich eine ausreichende Dokumentation zu dem Format. <sect2>expire.ctl <p> Alte News sind uninteressant und können gelöscht werden. Der INN löscht alte Artikel automatisch nach Ihren Vorgaben, die Sie in der <tt>expire.ctl</tt> gemacht haben: <tscreen><verb> /remember/:30 *:A:1:15:never de.alt.netdigest:M:1:90:never </verb></tscreen> Die erste Zeile ist gleich die Ausnahme :). Die MSG-IDs der eingehenden Artikel werden 30 Tage gehalten. So wird verhindert, daß ein veralteter Artikel nochmal angenommen wird, weil Ihr Server nicht weiss, daß er diesen schoneinmal hatte. Die zweite Zeile legt die Haltezeit für alle Artikel auf 15 Tage fest. <tt>*</tt> ist hierbei eine Gruppenangabe. <tt>de.alt.netdigest</tt> ist die einzige Gruppe, die länger (90 Tage) gehalten wird. <sect1>News-Dokumentation <p> Wenn Sie mehr über den Newsserver erfahren möchten, sollten Sie die Dokumentation lesen, die bei dem Source-Code dabei ist oder einen Blick nach <tt>/usr/doc/packages/inn</tt> (SuSE) oder <tt>/usr/doc/inn2</tt> (Debian) riskieren. Auf <tscreen><htmlurl url="http://www.isc.org/inn.html" name="http://www.isc.org/inn.html"></tscreen> finden Sie viele Verweise zu Webseiten rund um INN. Auf <tscreen><htmlurl url="http://home.snafu.de/laura/urls.html" name="http://home.snafu.de/laura/urls.html"></tscreen> verweise ich extra, weil es eine sehr gute Sammlung ist. <sect2>News automatisieren <nidx>INN!crontab</nidx> <nidx>News!INN!crontab</nidx> <p> Wenn Sie das Packen der News automatisieren möchten, können Sie einen Eintrag in der <tt>crontab</tt> vornehmen. Ich lasse meine News jede Stunde einmal packen und zusätzlich kurz vor dem Ausführen von UUCP. <descrip> <tag>Stündliches News packen</tag> Bitte kopieren Sie die folgende Zeile in die <tt>crontab</tt> vom Benutzer news: <tscreen><verb> 0 * * * * /usr/lib/uucp/bin/send-uucp.pl systemname</verb></tscreen> Ersetzen Sie <tt>systemname</tt> durch das UUCP-System Ihres Providers. <tag>News packen, bevor UUCP ausgeführt wird</tag> Damit wirklich alle News per UUCP verschickt werden, die Sie geschrieben haben, sollte <tscreen><verb>/usr/lib/uucp/bin/send-uucp.pl systemname</verb></tscreen> kurz vor dem Pollen ausgeführt werden. Wenn Sie um 21.30 Uhr per <tt/crontab/ des Benutzers root pollen, können Sie um 21.25 Uhr alle News packen lassen. Tragen Sie dazu bitte die folgende Zeile in die <tt>crontab</tt> vom Benutzer news ein: <tscreen><verb> 25 21 * * * /usr/lib/uucp/bin/send-uucp.pl systemname</verb></tscreen> Der <tt>systemname</tt> muß durch den Namen des UUCP-Rechners Ihres Providers ersetzt werden. </descrip> <sect1>cnews <nidx>News!CNews</nidx> <nidx>CNews</nidx> <p> Cnews ist ein Newsserver, der von der SuSE-Distribution für UUCP empfohlen wird. Die Konfiguration des Servers befindet sich unter <tt>/var/lib/news/</tt>. Konfigurieren Sie den Server bitte so, daß er das lokale Posten und Lesen von News ermöglicht, anschließend nehmen Sie die folgenden Änderungen vor: Die Datei <tt>/var/lib/news/sys</tt> definiert, ähnlich der <tt>/var/lib/news/newsfeeds</tt> des INN, die Newsfeeds. Zuerst kommt der obligatorische Eintrag, daß wir, der Newsserver, alle ankommenden Artikel annehmen. Warum wir alle Artikel annehmen, steht im FAQ-Abschnitt. Anschließend folgt der Eintrag für den Provider: <tscreen><verb> ME:all tpki/tpki.toppoint.de:all/all:f:tpki/togo </verb></tscreen> Die Datei <tt>/var/lib/news/batchlog</tt> enthält die Logdatei zum Batchvorgang. Gestartet wird der Batchvorgang per <tt>/usr/lib/news/bin/batch/sendbatches</tt>. Je nachdem, wie viele Artikel sie posten, sollten Sie mehrmals pro Stunde den Befehl <tt>/usr/lib/news/bin/input/newsrun</tt> ausführen, um die neuen News einzusortieren. Eine komplette <tt>crontab</tt> mit einem Eintrag für <tt>newsdaily</tt>, ein Programm, das über den Status von cnews wacht, sieht so aus: <tscreen><verb> # Newsrun alle 10 Minuten */10 * * * * /usr/lib/news/bin/input/newsrun # oder Newsrun einmal pro Stunde um 5 nach voll 5 * * * * /usr/lib/news/bin/input/newsrun # Newsbatches nach dem Newsrun um 10 nach voll packen 10 * * * * /usr/lib/news/bin/batch/sendbatches # Newsdaily einmal pro Tag in der Nacht um 3.33 Uhr starten 33 3 * * * /usr/lib/news/bin/maint/newsdaily </verb></tscreen> <sect>Fehlermeldungen <nidx>UUCP!Fehlermeldungen</nidx> <nidx>UUCP!Probleme</nidx> <sect1>Wo finde ich die Fehlermeldungen <p> Alle UUCP-Programme schreiben ihre Log-Dateien in das Verzeichnis <tt>/var/log/uucp</tt> oder <tt>/var/spool/uucp/</tt>. <sect2>Debug <nidx>UUCP!/var/spool/uucp/Debug</nidx> <nidx>/var/spool/uucp/Debug</nidx> <p> Die Datei <tt>Debug</tt> enthält Debugging-Informationen, die während der Konfiguration nützlich sein können. Wenn Sie UUCP fertig konfiguriert haben, sollten Sie alle Debugging-Optionen ausschalten, da die Datei sehr schnell sehr groß wird. <sect2>Log <nidx>UUCP!/var/spool/uucp/Log</nidx> <nidx>/var/spool/uucp/Log</nidx> <label id="DE-UUCP-HOWTO-uucp-log"> <p> Die Datei <tt>Log</tt> enthält allgemeine und vollständige Informationen zum Status von UUCP. Hier wird einfach alles angezeigt: <descrip> <tag>Calling system tpki (port ttyI0)</tag> UUCP versucht einen Verbindungsaufbau über Port <tt>/ttyI0/</tt> (ISDN). <tag>Login successfull</tag> Ihr Rechner hat sich in dem anderen System erfolgreich eingeloggt. <tag>Sending rmail user@host.com (D.00xx) (xxx bytes)</tag> Es wird gerade ein xxx Bytes großes EMail an <tt>user@host.com</tt> verschickt. <tag>Sending rnews (D.00xx) (xxx bytes)</tag> Es werden gerade xxx Bytes News hochgeladen. <tag>Receiving rmail hscholz (xxx bytes)</tag> Der lokale Benutzer hscholz bekommt gerade eine xxx Bytes große EMail. <tag>Receiving rnews (xxx bytes)</tag> Sie bekommen gerade xxx Bytes News. <tag>Call complete (xx seconds xxxxxx bytes xxxx bps)</tag> Sie haben fertig gepollt. UUCP hat die Verbindung wieder abgebaut. Der ganze Vorgang hat xx Sekunden gedauert und es wurden xxxxxx Bytes mit einer durchschnittlichen Geschwindigkeit von xxxx Bits/s übertragen. <tag>Executing X.tpkixxxx (rmail hscholz)</tag> Es wird eine EMail, die vom System tpki für hscholz gekommen ist, einsortiert. <tag>Executing X.tpkixxxx (rnews)</tag> News, die Sie gerade bekommen haben, werden lokal einsortiert. <tag>Queuing rmail user@host.com (D.00xx)</tag> Eine EMail für den User <tt>user@host.com</tt> wird für das nächste Pollen bereitgestellt. <tag>Queuing rnews (D.00xx)</tag> Sie haben Newsartikel geschrieben, die an das UUCP-System weitergereicht werden sollen. </descrip> <sect2>Stats <nidx>UUCP!/var/spool/uucp/Stats</nidx> <nidx>/var/spool/uucp/Stats</nidx> <nidx>UUCP!uustat</nidx> <p> Diese Datei zeigt an, welche Daten <tt>uucico</tt> mit welcher Größe und Geschwindigkeit auf welchem Port empfangen hat. Meiner Meinung nach gibt die Datei <tt>Log</tt> bessere Informationen. <sect2>uustat <p> <tt>uustat</tt> ist ein kleines Programm, das anzeigt, welche Daten sich gerade in der UUCP-Queue befinden. Mit <tscreen><verb>uustat --help</verb></tscreen> bekommen Sie eine Auflistung aller möglichen Kommandooptionen. Besonders interessant ist <tt>uustat -a</tt>, um alle Daten in der Queue anzuzeigen. Mit <tt>uustat -i</tt> können gezielt EMails gelöscht werden. <sect1>ERROR: Chat script failed: Got &dquot;BUSY&dquot; <p> Diese Fehlermeldung taucht beim Verbindungsaufbau auf. Wahrscheinlich hat jemand anderes eine Verbindung zum UUCP-Server. Versuchen Sie es später oder benutzen Sie eine andere Telefonnummer. Wenn dieser Fehler beim ersten »Pollen« auftritt, kann es sein, daß Sie eine falsche Telefonnummer angegeben haben. Überprüfen Sie Ihren Eintrag in der <tt>sys</tt>-Datei. <sect1>ERROR: Chat script failed: &dquot;NO\sDIALTONE&dquot; <p> Sind alle Geräte (PC, Modem/ISDN-Karte, Telefondose) richtig miteinander verbunden? <sect1>ERROR: connect: Network is unreachable <p> Diese Fehlermeldung bekommen Sie, wenn Sie UUCP über TCP benutzen. Wenn keine Verbindung besteht, wenn UUCP gestartet wird, kann die Gegenstelle nicht erreicht werden. Normalerweise sollte jetzt per <tt>alternate</tt>-Kommando eine Verbindung per DialUp versucht werden. <sect1>ERROR: Can't disable hardware flow control: I/O error <p> Diese Fehlermeldung ist sehr allgemein und macht meiner Meinung nach keine Aussage über den wirklichen Fehler. Bei mir tritt dieser Fehler auf, wenn die Login-Prozedur z.B. wegen eines falschen Paßwortes hängen bleibt. Überprüfen Sie in der <tt>sys</tt>-Datei Ihren Loginnamen und Ihr Paßwort. Wenn Sie keinen Fehler finden können, starten Sie <tt>uucico</tt> mit dem zusätzlichen Parameter <tt>--debug 7</tt>. Mit dem Befehl <tscreen>tail -f /var/spool/uucp/Log /var/spool/uucp/Debug</tscreen> können Sie nun verfolgen, ob es Probleme beim Login gibt. Wenn <tt>uucico</tt> in der <tt>Debug</tt>-Datei mit einer Zeile stehen bleibt, in der etwas wie z.B. <tt>host: </tt> steht, müssen Sie Ihr Chat-Skript aus der <tt>sys</tt>-Datei anpassen. Probieren Sie mal den folgenden String, wobei Sie <em>laforge</em> durch den Systemnamen Ihres Providers ersetzen: <tscreen><verb>chat ost: laforge ogin: \L word: \P</verb></tscreen> <sect1>ERROR: Got termination signal <p> Sie haben <tt>uucico</tt> gestoppt. Dies kann z.B. per <tscreen><verb>killall -9 uucico</verb></tscreen> gemacht werden. Da UUCP nicht richtig beendet wurde, existieren noch LOCK-Dateien. Diese können Sie als root per <tscreen><verb>rm /var/lock/LCK..systemname</verb></tscreen> löschen. <sect1>ERROR: Stale lock /var/lock/LCK..systemname held by process xxxx created 1998-xx-xx xx:xx:xx <p> UUCP wurde nicht richtig beendet und LOCK-Dateien wurden nicht gelöscht. Löschen Sie die LOCK-Datei als root per <tscreen><verb>rm /var/lock/LCK..systemname</verb></tscreen> <sect>Tips & Tricks <p> In diesem Abschnitt finden Sie ein paar Tips & Tricks, wie Sie UUCP effektiver nutzen können. Falls Sie einen Trick kennen, schicken Sie mir diesen doch bitte; Danke. <sect1>&dquot;alternate&dquot; - Irgendwie muß es doch klappen. <nidx>UUCP!alternate</nidx> <p> Es ist möglich, daß nach dem Aufruf von UUCP solange verschiedene Konfigurationen probiert werden, bis eine Verbindung zustande gekommen ist. Der sogenannte <tt>alternate</tt>-Befehl erlaubt es, für einzelne Systeme Alternativen anzubieten, falls ein Fehler aufgetreten ist. Dieses Feature nutze ich, um zuerst eine Verbindung per TCP zu versuchen, die zustande kommt, wenn ich online bin, und erst danach einen Datenaustausch per DialUp zu veranlassen. Wenn Sie dieses Feature nutzen möchten, sollten Sie schon ein funktionierendes UUCP (entweder DialUp oder TCP) besitzen. Kopieren Sie nun einen zusätzlichen Konfigurationsausschnitt für die <tt/sys/-Datei hinter Ihre Konfiguration. Trennen Sie diese mit einem <tt>alternate</tt>. Eine fertige <tt>sys</tt>-Datei sollte dann so aussehen: <tscreen><verb> # Login und Paßwort aus der Datei call übernehmen call-login * call-password * # öffentliches Spoolverzeichnis pubdir /var/spool/uucppublic # Timeout nach dem Verbindungsaufbau während der # Login-Prozedur chat-timeout 20 # UUCP darf immer gemacht werden time any # UUCP darf alle 600 Sekunden wiederholt werden success-wait 600 # Befehle, die ausgeführt werden dürfen commands rmail rnews command-path /usr/lib/news/bin/ /usr/bin /usr/sbin # Name des Systems, das Sie anrufen system tpki port ttyI0 chat ogin: \L word: \P protocol ig # hier bitte die Telefonnummer anpassen phone 0431123123 protocol-parameter i window 7 protocol-parameter i packet-size 2048 protocol-parameter i startup-retries 16 protocol-parameter i init-retries 8 protocol-parameter i init-timeout 10 protocol-parameter i retries 3 protocol-parameter i timeout 20 protocol-parameter i garbarge 20000 protocol-parameter i errors 256 protocol-parameter i error-decay 8 protocol-parameter i remote-window 0 protocol-parameter i remote-packet-size 0 protocol-parameter i short-packets true # alternate # port uucp-tcp protocol tig # Hier den Systemnamen im Format systemname.provider.de # eintragen address tpki.toppoint.de chat ogin: \L word: \P </verb></tscreen> <sect1>Maximale Größe für EMails begrenzen (sendmail) <nidx>Mail!sendmail!Größe begrenzen</nidx> <nidx>sendmail!Größe begrenzen</nidx> <p> Wenn irgendein User große EMails verschickt, kann es unter Umständen sehr teuer für Sie werden ;-(. Um dies zu verhindern, kann der Mailserver <tt>sendmail</tt> so konfiguriert werden, daß er große EMails nicht annimmt. Sie müssen dazu als root die Sendmail-Konfigurationsdatei <tt>/etc/sendmail.cf</tt> anpassen. Öffnen Sie als root mit dem Editor <tt>vi</tt> die Datei <tt>/etc/sendmail.cf</tt>. Geben Sie <em>/MaxMessage</em> ein. Nun sollten Sie in der Zeile sein, die ungefähr so aussieht: <tscreen>#0 MaxMessageSize=100000</tscreen> Das Hash-Zeichen <tt>#</tt> kommentiert die Zeile aus, so daß diese bei der Konfiguration des Mailservers nicht beachtet wird. Entfernen Sie zuerst das Hash-Zeichen. Die Zeile gibt die maximale Größe einer EMail in Bytes an. In diesem Fall also 100000 Bytes (fast 100 kb). Passen Sie den Wert Ihren Bedürfnissen an ;-). Eine neue Zeile, die die maximale Größe einer EMail auf 1 MB begrenzt, sieht so aus: <tscreen><verb>0 MaxMessageSize=1048576</verb></tscreen> Nachdem Sie die Änderungen an der Datei mit <em>ESC :wq</em> abgespeichert haben, müssen Sie den Mailserver neu starten, um die Änderungen wirksam zu machen. <sect1>Mail und News schon während des Pollens einsortieren <p> Normalerweise übergibt der <tt/uuxqt/ erst nach dem kompletten Poll seine Daten per <tt/rnews/ und <tt/rmail/ an den Newsserver und den Mailserver. Mit zwei Zeilen in der <tt>config</tt> können Sie diese Verhalten beeinflussen: <tscreen><verb> run-uuxqt 1 max-uuxqts 2 </verb></tscreen> <tt>run-uuxqt 1</tt> sorgt dafür, daß <tt/uuxqt/ aufgerufen wird, wenn ein komplettes Paket (Mail oder News) empfangen wurde. <tt>max-uuxqts 2</tt> verhindert, daß zu viele <tt/uuxqts/ und die daraus resultierenden Arbeiten gleichzeitig passieren. Es dürfen bei dieser Einstellung nur maximal zwei <tt/uuxqts/ gleichzeitig arbeiten. Diese Konfiguration hat sich als sinnvoll und schnell erwiesen. <sect>UUCP-Server <p> Einen UUCP-Server benötigen Sie, wenn Sie es Freunden oder Kunden ermöglichen möchten, Ihre Mails und News per UUCP abzuholen. Der Server ist das Gegenstück zu dem in den vorangegangenen Sektionen beschriebenen Client. <sect1>UUCP konfigurieren <p> Zuerst sollten Sie Ihr UUCP-System so konfigurieren, daß Sie UUCP als Client nutzen können. Somit ist sichergestellt, daß UUCP auf Ihren System funktioniert. <sect1>Mailsystem konfigurieren <sect2>Sendmail <p> Ab Sendmail 8.9.3 ist die Konfiguration wirklich sehr einfach geworden. Ausgangspunkt ist in diesem Beispiel der UUCP-Server <tt>perikles</tt> und sein Client <tt>milhouse</tt>. Der Client soll alle EMails an <tt>user@milhouse.toppoint.de</tt> bekommen. Die EMails des Clients sollen zurück an <tt>perikles</tt> geschickt werden. Der Client <tt>milhouse</tt> wird dabei, wie in diesem HOWTO beschrieben, als Client eingerichtet. <sect3>mailertable <p> In der <tt>/etc/mail/mailertable</tt> steht eine Zuordnung zwischen Domains und Zielrechner: <tscreen><verb> milhouse.toppoint.de uucp-dom:milhouse #user@milhouse.toppoint.de milhouse uucp-dom:milhouse #user@milhouse auch dorthin </verb></tscreen> <tt>uucp-dom:</tt> sorgt dafür, daß UUCP für die Zustellung der Mails genutzt wird. <tt>milhouse</tt> ist der Name des UUCP-Clients. Damit Sendmail Ihre Konfiguration benutzen kann, muß daraus eine Datenbank generiert werden: <tscreen>$ makemap hash mailertable.db < mailertable</tscreen> Sie erhalten keine Ausgabe, aber die Datei <tt>mailertable.db</tt> sollte bei einem <tt>ls -l</tt> die aktuelle Uhrzeit aufweisen. <sect3>UUCP-Server konfigurieren <p> Die Konfiguration des UUCP-Systems ist nahezu trivial, wenn Sie bereits ein laufendes System haben. <sect3>passwd <p> In Ihrem UUCP-Verzeichnis legen Sie zunächst eine neue Datei <tt>passwd</tt> an. In dieser Datei werden die Login-Paßwörter im Klartext gespeichert: <tscreen><verb> milhouse test123 </verb></tscreen> Das Paßwort für die Site <tt>milhouse</tt> ist <tt>test234</tt>. Bitte beachten Sie Groß- und Kleinschreibung. Diese Paßwort tragen Sie später bei dem Client ein. <sect3>sys <p> Sie müssen ein System in der Datei <tt>sys</tt> hinzufügen, damit Sendmail seine Mails an das UUCP-System übergeben kann und der Client sich diese Mails per UUCP abholen kann. Fügen Sie diese Zeilen mit angepaßtem Namen in Ihre <tt>sys</tt> ein: <tscreen><verb> system milhouse time any </verb></tscreen> Dies erlaubt dem Client <tt>milhouse</tt> zu jeder Uhrzeit zu pollen. Wenn Sie das Pollen nur mit einem bestimmten Protokoll oder über einen bestimmten Port zulassen wollen, tragen Sie hier einfach die zusätzlichen Zeilen ein: <tscreen><verb> system milhouse time any protocol t port tcp </verb></tscreen> Diese Konfiguration erlaubt das Pollen nur über den Port <tt>tcp</tt> mit dem t-Protokoll. <sect1>Newssystem konfigurieren <p> Die Rechenleistung und vorallem die I/O-Leistung, die ein News-Server benötigt, sind nicht zu vernachlässigen. Für Systeme, die fast alles außer <tt>alt.binaries.*</tt> halten und verteilen, sind 128 MB RAM und gute Platten ein Minimun. Ich habe schon Server auf PC-Basis gesehen und installiert, die mit 128-256 MB und einem Pentium Pro bzw. II Prozessor gut arbeiten. Beide Systeme waren mit U2W-SCSI-Platten ausgestattet, die zu einem Raid-System zusammengefaßt wurden. Sun-Systeme sind aufgrund ihrer guten I/O-Leistung nicht zu vernachlässigen. <sect2>INN 2.x <p> Die Konfiguration des INN unterscheidet sich von der Konfiguration auf Clientseite nur wenig. Sie geben, wie auf den Clientseite, die Feeds mit deren Eigenschaften in der Datei <tt>newsfeeds</tt> an. Im Abschnitt <ref id="DE-UUCP-HOWTO-inn" name="INN - InterNetNews"> finden Sie eine genaue Beschreibung der Konfiguration. Zur automatischen Generierung der <tt>newsfeeds</tt> gibt es ein Programm namens GUP (Group Update Program). Dieses Programmpaket ermöglicht es den pollenden Kunden per EMail ihren Feed anzupassen. Bestellungen von Newsgruppen geschehen so ohne Eingreifen des Server-Administrators. Für den UUCP-Client <tt>milhouse</tt> tragen Sie also z.B. diese Zeile in <tt>newsfeeds</tt> ein: <tscreen><verb> milhouse/milhouse.toppoint.de:de.alt.netdigest:kiel.*:Tf,Wnb,B4096/1024: </verb></tscreen> Der Client bekommt alle Artikel aus den Gruppen <tt>de.alt.netdigest</tt> und <tt>kiel.*</tt>, außer denen, die von Ihm selbst (<tt>milhouse.toppoint.de</tt>) kommen. Damit der INN eine aktuelle <tt>newfeeds</tt>-Datei als Grundlage für seine Feeds nimmt, sollten Sie den Newsserver mit dem folgenden Befehl veranlassen, seine <tt>newsfeeds</tt>-Datei neu zu lesen: <tscreen><verb> $ ctlinnd reload newsfeeds Mal wieder ein Update </verb></tscreen> Die Ausgabe des Programms ist ein einfaches <tt>Ok</tt>. In der Manual Page zu <tt>ctlinnd</tt> finden Sie eine genaue Beschreibung der Optionen. In Ihren Logdateien des Newsservers finden Sie etwas, das ungefähr so aussieht: <tscreen><verb> Jul 23 19:41:17 perikles innd: ME time 2005751 idle 2005568(14) artwrite 73(2) artlink 3(1) hiswrite 57(2) hissync 11(7) sitesend 1(4) artctrl 0(0) artcncl 0(0) hishave 0(4) hisgrep 0(0) perl 2(2) Jul 23 19:57:20 perikles innd: overview! closed Jul 23 19:57:20 perikles innd: controlchan! closed Jul 23 19:57:20 perikles innd: tpki closed Jul 23 19:57:20 perikles innd: overview! spawned overview!:16:proc:17443 Jul 23 19:57:20 perikles innd: controlchan! spawned controlchan!:17:proc:17444 Jul 23 19:57:20 perikles innd: tpki opened tpki:15:file Jul 23 19:57:20 perikles innd: SERVER reload newsfeeds Mal wieder ein Update </verb></tscreen> Damit der Client seine Artikel bekommt, müssen Sie diese per cronjob zusammenpacken lassen. Tragen Sie diese Zeile unter die anderen bereits vorhandenen Zeilen in die crontab des Users <tt>news</tt>: <tscreen><verb> 50 * * * * /usr/lib/news/bin/sendbatches milhouse </verb></tscreen> <sect2>cnews <p> <p> cnews ist meiner Meinung nach für den Einsatz als News-Server für große UUCP-System nicht so gut geeignet, wie INN. INN ist wohl der beliebteste News-Server. <sect1>Konfiguration testen <p> Ob Ihr UUCP-Server richtig arbeitet, sehen Sie, wenn im UUCP-Log entsprechende Zeilen auftauchen. Der Newsserver hat Batches für die Site <tt>milhouse</tt> erstellt und diese an <tt/uux/ übergegeben: <tscreen><verb> uux milhouse news (1999-10-02 21:11:43.46 16183) Queuing rnews (D.0004) uux milhouse news (1999-10-02 21:11:44.94 16184) Queuing rnews (D.0005) </verb></tscreen> Mails werden an den UUCP-Server übergeben: <tscreen><verb> uux milhouse hscholz (1999-10-02 17:31:50.78 7701) Queuing rmail hscholz@milhouse.toppoint.de (D.0001) uux milhouse daemon (1999-10-02 17:33:27.26 7726) Queuing rmail hscholz@milhouse (D.0002) </verb></tscreen> Hier der pollende Client <tt>milhouse</tt>. Er bekommt eine Mail und liefert eine ab. Dazu wird ein Newspaket verschickt: <tscreen><verb> uucico - - (1999-10-02 20:29:15.98 14184) Incoming call (login milhouse port stdin) uucico milhouse - (1999-10-02 20:29:18.08 14184) Handshake successful (protocol 't') uucico milhouse hscholz (1999-10-02 20:29:18.08 14184) Receiving rmail hscholz@perikles.toppoint.de (683 bytes) uucico milhouse hscholz (1999-10-02 20:29:18.23 14184) Sending rmail hscholz@milhouse.toppoint.de (D.0003) (720 bytes) uucico milhouse news (1999-10-02 20:29:18.24 14184) Sending rnews (D.0004) (981 bytes) uucico milhouse - (1999-10-02 20:29:18.26 14184) Call complete (3 seconds 1403 bytes 467 bps) uuxqt milhouse hscholz (1999-10-02 20:29:18.26 14186) Executing X.milhousC0002 (rmail hscholz@perikles.toppoint.de) </verb></tscreen> <sect>FAQ - Fragen, die oft gestellt werden <nidx>UUCP!FAQ</nidx> <p> Hier könnten die Antworten auf Ihre Fragen stehen, wenn Sie mir eine EMail an <tt><htmlurl url="mailto:hendrik@scholz.net" name="hendrik@scholz.net"></tt> schicken. <sect1>Alle News werden an den Provider zurückgeschickt (aus de.comm.uucp) <p> Wenn Sie einen lokalen Newsserver benutzen, werden normalerweise die von Ihnen geschriebenen Newsartikel per UUCP zum Provider geschickt. Wenn der News-Server fehlerhaft konfiguriert ist, werden alle News, auch die von Ihrem Provider, an Ihren Provider geschickt. Sie merken dies daran, daß sehr viele Zeilen <tt>Sending rnews</tt> in der <tt>/var/spool/uucp/Log</tt> auftauchen. Um das Problem zu lösen, sollten Sie die Header von ein paar Newsartikeln lesen. Wenn Sie Netscape (4.0x) benutzen, können Sie die Header mit <em/View/, <em/Headers/, <em/All/ sehen. Besonders interessant ist die Path-Zeile, deshalb hier ein Beispiel: <tscreen><verb> Path: perikles.toppoint.de!tpki.toppoint.de! news.netuse.de!newsfeed.dpn.de!news-out1.du.gtn.com! news-in2.du.gtn.com!RRZ.Uni-Koeln.DE!fu-berlin.de! news.nordwest.net!not-for-mail </verb></tscreen> Der Artikel kommt von <tt>news.nordwest.net</tt> und wurde über verschiedene News-Server zu <tt>tpki.toppoint.de</tt> transportiert. <tt>Perikles.toppoint.de</tt> ist mein UUCP-Rechner. Ich bekomme meine News per UUCP von <tt>tpki.toppoint.de</tt>. Notieren Sie den Namen des zweiten Rechners von links (hier: <tt>tpki.toppoint.de</tt>), da dies der Rechner ist, von dem Sie Ihre News bekommen. Editieren Sie nun als Benutzer news oder root die Datei <tt>/var/lib/news/newsfeeds</tt> (INN). Diese Datei enthält die Informationen, wer welche News bekommt. Da Ihr UUCP-Partner (Provider) die Newsartikel, die er schon hat - wie hätte er sie sonst zu Ihnen schicken können -, nicht nochmal benötigt, tragen Sie hinter dem Systemnamen Ihres Providers den Namen des Newsservers ein. <tscreen><verb> tpki/tpki.toppoint.de:*,!junk,!control:Tf,Wnb,B4096/1024:</verb></tscreen> Mein UUCP-Partner heißt <tt>tpki</tt> und der News-Server der Toppoint heißt <tt>tpki.toppoint.de</tt>. Da der News-Server auch den Namen <tt>news.toppoint.de</tt> hat, wäre es möglich, daß die News anstatt <tt>tpki.toppoint.de</tt> <tt>news.toppoint.de</tt> enthalten. Da die Toppoint dem Individual Network angehört, wäre sogar <tt>news.in-kiel.de</tt> möglich. Es ergibt sich also eine ganze Liste von Newsservern, deren Artikel nicht zurückgeschickt werden sollen: <tscreen><verb>tpki/tpki.toppoint.de, news.toppoint.de, news.in-kiel.de:\ *,!junk,!control:Tf,Wnb,B4096/1024:</verb></tscreen> Die verschiedenen Newsserver werden, durch Kommas getrennt, aufgelistet. <sect1>News werden nicht gebatched - Was mache ich falsch? <p> Es ist sehr ärgerlich, wenn man News schreibt, um später festzustellen, daß die News nicht verschickt wurden. Wenn in der Datei <tt>/var/spool/uucp/Log</tt> Zeilen à la <tscreen><verb> uux tpki news (1998-10-20 15:00:03.23 5331) Queuing rnews (D.012E) </verb></tscreen> oder <tscreen><verb> uucico tpki news (1998-10-19 06:49:32.92 511) Sending rnews (D.011Z) (2296 bytes) </verb></tscreen> auftauchen, dann ist alles ok. Wenn Sie keine einzige dieser Zeilen finden, sollten Sie die folgenden Sachen überprüfen: <itemize> <item>INN: Wird <tt>/usr/lib/news/bin/send-uucp.pl rechner</tt> ausgeführt? <item>cnews: Wird <tt>/usr/lib/news/bin/batch/sendbatches</tt> ausgeführt? <item>INN: Steht Ihr UUCP-Partner in <tt>/var/lib/news/send-uucp.cf</tt>? <item>INN: Steht Ihr UUCP-Partner in <tt>/var/lib/news/newsfeeds</tt>? <item>cnews: Steht Ihr UUCP-Partner in <tt>/var/lib/news/sys</tt>? <item> Was meldet <tt>/var/log/news</tt>? </itemize> <sect1>Bang-Addressierung im Log statt normalen EMail-Adressen (aus de.comm.uucp) <p> Wenn in Ihrem UUCP-Log <tt>/var/spool/uucp/Log</tt> EMail-Adressen im Format <tt>domain.de!user</tt> statt <tt>user@domain.de</tt> angegeben werden und dies Sie stört, können Sie es leicht ändern. <p> <sect2>Ursache <p> Die Ursache ist genauso schnell erklärt, wie der Bugfix. Sie haben in Ihrer Sendmail-Konfiguration den Mailer <em>uucp-uudom</em> verwendet. Dieser erzeugt EMail-Adressen mit der Bang-Adressierung (die mit dem Ausrufezeichen :)). Der Mailer <em>uucp-dom</em> erzeugt die gewohnten EMail-Adressen mit dem Klammeraffen. <sect2>Fehlerbehebung <p> Suchen Sie in Ihrer Sendmail-Konfigurationsdatei <tt>/etc/sendmail.cf</tt> nach der Zeile, in der Ihr Smarthost steht: <tscreen><verb> # "Smart" relay host (may be null) DSuucp-uudom:tpki </verb></tscreen> Dieser Eintrag steht normalerweise sehr weit oben und zeigt, daß der Mailer <em>uucp-uudom</em> genutzt wird. Im Moment werden vom Sendmail EMail-Adressen mit der Bang-Adressierung erzeugt. Passen Sie diesen Abschnitt an Ihre Wünsche an und beachten Sie, daß Sie <em>tpki</em> durch der Name Ihres UUCP-Partners ersetzen müssen. Eine Beispielzeile für meine Konfiguration könnte so aussehen: <tscreen><verb> # "Smart" relay host (may be null) DSuucp-dom:tpki </verb></tscreen> Vergewissern Sie sich zusätzlich, daß der Mailer <em>uucp-dom</em> installiert ist. Hierzu durchsuchen Sie die <tt>/etc/sendmail.cf</tt>, bis Sie einen Abschnitt relativ weit am Ende finden, der ungefähr so aussieht: <tscreen><verb> # domain-ized UUCP mailer Muucp-dom, P=/usr/bin/uux, F=mDFMhud, S=52/31, R=21, M=2000000, T=X-UUCP/X-UUCP/X-Unix, A=uux - -r -a$g -gC $h!rmail ($u) # domain-ized UUCP mailer with UUCP-style sender envelope Muucp-uudom, P=/usr/bin/uux, F=mDFMhud, S=72/31, R=21, M=2000000, T=X-UUCP/X-UUCP/X-Unix, A=uux - -r -a$g -gC $h!rmail ($u) </verb></tscreen> Wenn Sie keine solchen Zeilen finden, haben Sie wahrscheinlich eine besonders angepaßte Konfigurationsdatei. Machen Sie von dieser Datei ein BackUp, bevor Sie die folgenden Zeilen an Ihre <tt>/etc/sendmail.cf</tt> anhängen: <tscreen><verb> # # relay mailer header masquerading recipient rewriting # S71 R$+ $: $>61 $1 R$+ $: $>93 $1 ##################################### ### UUCP Mailer specification ### ##################################### ##### @(#)uucp.m4 8.25 (Berkeley) 3/16/97 ##### # # There are innumerable variations on the UUCP mailer. It really # is rather absurd. # # old UUCP mailer (two names) Muucp, P=/usr/bin/uux, F=DFMhuUd, S=12, R=22/42, M=2000000, T=X-UUCP/X-UUCP/X-Unix, A=uux - -r -a$g -gC $h!rmail ($u) Muucp-old, P=/usr/bin/uux, F=DFMhuUd, S=12, R=22/42, M=2000000, T=X-UUCP/X-UUCP/X-Unix, A=uux - -r -a$g -gC $h!rmail ($u) # smart UUCP mailer (handles multiple addresses) (two names) Msuucp, P=/usr/bin/uux, F=mDFMhuUd, S=12, R=22/42, M=2000000, T=X-UUCP/X-UUCP/X-Unix, A=uux - -r -a$g -gC $h!rmail ($u) Muucp-new, P=/usr/bin/uux, F=mDFMhuUd, S=12, R=22/42, M=2000000, T=X-UUCP/X-UUCP/X-Unix, A=uux - -r -a$g -gC $h!rmail ($u) # domain-ized UUCP mailer Muucp-dom, P=/usr/bin/uux, F=mDFMhud, S=52/31, R=21, M=2000000, T=X-UUCP/X-UUCP/X-Unix, A=uux - -r -a$g -gC $h!rmail ($u) # domain-ized UUCP mailer with UUCP-style sender envelope Muucp-uudom, P=/usr/bin/uux, F=mDFMhud, S=72/31, R=21, M=2000000, T=X-UUCP/X-UUCP/X-Unix, A=uux - -r -a$g -gC $h!rmail ($u) </verb></tscreen> Nach einem Neustart Ihres Sendmails sollten Sie eine Testmail verschicken, um zu prüfen, ob es tatsächlich funktioniert. <sect1>News werden nicht angenommen (aus de.comm.uucp) <p> Sie haben News aboniert und im UUCP-Log steht, daß Newspakete ankommen, aber Sie haben auf Ihrem News-Server keine neuen Artikel? Dies kann daran liegen, daß Ihr eigener Rechner nicht berechtigt ist, News bei Ihnen abzuliefern. Steht in Ihrer <tt>/var/log/messages</tt> oder in der <tt>/var/log/warn</tt> folgendes? <tscreen><verb> Sep 17 08:01:05 perikles nnrpd[28284]: perl filtering enabled Sep 17 08:01:06 perikles nnrpd[28284]: perikles.toppoint.de connect Sep 17 08:01:06 perikles rnews: unknown_reply after ihave 480 Transfer permission denied </verb></tscreen> Wenn ja, dann ist Ihr Rechner tatsächlich nicht berechtigt, bei Ihnen Newsartikel abzuliefern. Sie müssen die Datei <tt>nnrp.access</tt> Ihres Newsservers (INN 1.x und 2.x) anpassen. Mit den folgenden Einträgen, sollten die News ankommen. Ein Eintrag für Ihr LAN darf allerdings auch nicht fehlen, da Sie selbst sonst aus dem LAN heraus keine News lesen können: <tscreen><verb> stdin:Read Post:::* localhost:Read Post:::* 127.0.0.1:Read Post:::* </verb></tscreen> Zusätzliche Zeilen, wie diese ermöglichen den Zugang aus dem LAN: <tscreen><verb> 192.168.0:Read Post:::* </verb></tscreen> <sect1>Anbieter von kostenlosen UUCP-Zugängen <p> UUCP kostet auf Serverseite viele Ressourcen. Die ein- und ausgehenden Daten müssen verarbeitet und ggf. ins Internet geschickt werden. Plattenplatz, CPU-Zeit und administrativer Aufwand sind nicht zu vernachlässigen. Mir ist daher kein kostenloser Zugang bekannt. Vielleicht wird Ihnen ein lokaler Provider einen kostenlosen Testzugang anbieten, wenn Sie höflich nachfragen. <sect1>UUCP-Clients für Windows <p> Es gibt Lösungen, um UUCP auch unter Windows 95, 98 und NT zu betreiben. Die Konfiguration dieser Programme gehört allerdings nicht in dieses HOWTO. Falls Sie Interesse an UUCP unter Windows/DOS haben, sollten Sie nach Crosspoint (XP) und UUPC Ausschau halten. <sect>Nützliche Hilfsprogramme <nidx>UUCP!Tools</nidx> <sect1>Was ist heute schon passiert (Shellprogramm)? <p> Ich habe mir ein kleines Programm geschrieben, daß mir anzeigt, was heute schon im Zusammenhang mit UUCP passiert ist. Das Programm durchsucht die Datei <tt>/var/spool/uucp/Log</tt> und »grept« alles raus, was heute passiert ist ;-). <bf>uucpstatus.sh:</bf> <tscreen><verb> #!/bin/sh /bin/cat /var/spool/uucp/Log | \ /usr/bin/grep `date '+%Y-%m-%d'` | \ grep -e "Call complete" -e "Receiving rmail" \ -e "Login successful" -e "Queuing" \ -e "Handshake" -e "Error" -e "ERROR" -e "Protocol" </verb></tscreen> <bf>Beispielausgabe:</bf> <tscreen><verb> uux tpki root (1998-06-17 10:06:29.49 360) Queuing rnews (D.00IK) uucico tpki - (1998-06-17 10:06:35.68 362) ERROR: Chat script failed: Got "BUSY" uucico tpki - (1998-06-17 10:06:52.05 363) Login successful uucico tpki - (1998-06-17 10:06:52.71 363) Handshake successful (protocol 'i' sending packet/window 1024/16 receiving 2048/7) uucico tpki mail (1998-06-17 10:06:54.41 363) Receiving rmail newsadmin (552 bytes) uucico tpki news (1998-06-17 10:06:54.86 363) Receiving rmail news (3395 bytes) uucico tpki mail (1998-06-17 10:06:55.30 363) Receiving rmail newsadmin (3512 bytes) uucico tpki uucp (1998-06-17 10:06:55.59 363) Receiving rmail ttt (1085 bytes) uucico tpki uucp (1998-06-17 10:06:56.04 363) Receiving rmail newsadmin (1459 bytes) uucico tpki uucp (1998-06-17 10:06:56.24 363) Receiving rmail newsadmin (1390 bytes) uucico tpki uucp (1998-06-17 10:06:56.66 363) Receiving rmail newsadmin (2431 bytes) uucico tpki uucp (1998-06-17 10:06:57.25 363) Receiving rmail ttt (1676 bytes) uucico tpki uucp (1998-06-17 10:06:57.38 363) Receiving rmail ttt (1318 bytes) uucico tpki mail (1998-06-17 10:06:57.72 363) Receiving rmail newsadmin (661 bytes) uucico tpki mail (1998-06-17 10:06:57.76 363) Receiving rmail newsadmin (552 bytes) uucico tpki mail (1998-06-17 10:06:58.31 363) Receiving rmail newsadmin (19672 bytes) uucico tpki mail (1998-06-17 10:07:00.60 363) Receiving rmail newsadmin (683 bytes) uucico tpki mail (1998-06-17 10:08:31.13 363) Receiving rmail newsadmin (1084 bytes) uucico tpki - (1998-06-17 10:08:31.32 363) Protocol 'i' packets: sent 91, resent 0, received 452 uucico tpki - (1998-06-17 10:08:31.46 363) Call complete (101 seconds 720823 bytes 7136 bps) uux tpki hscholz (1998-06-17 10:08:56.93 433) Queuing rmail zoc@toppoint.de (D.00IL) uux tpki news (1998-06-17 11:00:06.93 665) Queuing rnews (D.00IM) uux tpki hscholz (1998-06-17 11:47:22.71 1142) Queuing rmail lars.fruehsorge@ploe.comcity.de (D.00IN) uux tpki news (1998-06-17 13:00:03.44 8136) Queuing rnews (D.00IO) </verb></tscreen> <sect1>Was ist heute schon passiert (CGI-Skript für WWW-Server)? <p> Das gleiche, was per Shell möglich ist, kann man natürlich auch als HTML-Seite auf dem eigenen WWW-Server anzeigen lassen. Es müssen dafür nur die Standard-HTML-Header um die Seite herumgebaut werden. <bf>uucpstatus.cgi:</bf> <tscreen><verb> #!/bin/sh echo "Content-type: text/html" echo echo echo "<html><head><title>UUCP-Statistik</title></head>" echo "<body bgcolor=\"#FFFFFF\"><pre>" /bin/cat /var/spool/uucp/Log | \ /usr/bin/grep `date '+%Y-%m-%d'` | \ grep -e "Call complete" -e "Receiving rmail" \ -e "Login successful" -e "Queuing" -e "Handshake" \ -e "Error" -e "ERROR" -e "Protocol" echo "</pre></body></html>" </verb></tscreen> Die Ausgabe sieht aus wie im Shell, mit dem Unterschied, daß es eine HTML-Datei ist. <sect>Beispieldateien <p> In diesem Abschnitt finden Sie »fertige« Dateien für UUCP. Sie können die Dateien per Copy & Paste übernehmen und in Ihrem UUCP-Verzeichnis abspeichern. Nun müssen Sie noch die Paßwörter, Systemnamen, Devices (Modem, ISDN) und Telefonnummern anpassen. Damit Sie wissen, was Sie ändern müssen, gibt es eine kurze Erklärung zu jeder Datei. <em>Kursiv</em> geschriebene Wörter in der Erklärung müssen Sie in der jeweiligen Datei anpassen. <sect1>UUCP über TCP <nidx>UUCP!TCP</nidx> <sect2>call <nidx>UUCP!call!TCP</nidx> <p> Hier müssen Sie den Systemnamen Ihres Providers <em>tpki</em>, Ihren Loginnamen <em>perikles</em> und Ihr Paßwort <em>asecret</em> eintragen. <tscreen><verb> #<system> <login> <passwd> tpki perikles asecret </verb></tscreen> <sect2>config <nidx>UUCP!config!TCP</nidx> <p> Der Nodename Ihres Rechners <em>perikles</em> muß angepaßt werden <tscreen><verb> nodename perikles </verb></tscreen> <sect2>port <nidx>UUCP!port!TCP</nidx> <p> Diese Datei können Sie unverändert übernehmen. <tscreen><verb> port uucp-tcp type TCP service 540 </verb></tscreen> <sect2>dial <nidx>UUCP!dial!TCP</nidx> <p> Diese Datei ist für TCP nicht erforderlich und enthält deshalb nur einen Kommentar ;-). <tscreen><verb> # Hier ist keine Konfiguration für UUCP über TCP nötig </verb></tscreen> <sect2>sys <nidx>UUCP!sys!TCP</nidx> <p> In dieser Datei dürfen Sie natürlich wieder den Systemnamen <em>tpki</em> durch den Systemnamen Ihres Providers ersetzen. Die <tt>address</tt>-Zeile sollte den FQDN (Full Qualified Domain Name) des Rechners von Ihrem Provider enthalten. <tscreen><verb> call-login * call-password * pubdir /var/spool/uucppublic chat-timeout 20 time any success-wait 600 commands rmail rnews command-path /usr/lib/news/bin/ /usr/bin /usr/sbin system tpki # port uucp-tcp protocol tig # Hier den Systemnamen im Format systemname.provider.de # eintragen address tpki.toppoint.de chat ogin: \L word: \P </verb></tscreen> <sect1>UUCP per Modem <nidx>UUCP!Modem</nidx> <nidx>Modem!UUCP</nidx> <sect2>call <nidx>UUCP!call!Modem</nidx> <p> Hier müssen Sie den Systemnamen Ihres Providers <em>tpki</em>, Ihren Loginnamen <em>perikles</em> und Ihr Paßwort <em>asecret</em> eintragen. <tscreen><verb> #<system> <login> <passwd> tpki perikles asecret </verb></tscreen> <sect2>config <nidx>UUCP!config!Modem</nidx> <p> Der Nodename Ihres Rechners <em>perikles</em> muß angepaßt werden <tscreen><verb> nodename perikles </verb></tscreen> <sect2>port <nidx>UUCP!port!Modem</nidx> <p> Stellen Sie sicher, daß <tt>/dev/modem</tt> auf ihr Modem (z.B. <tt>/dev/ttyS0</tt>) zeigt oder tragen Sie Ihr Modem-Device ein. <tscreen><verb> port modem device /dev/modem speed 38400 dialer modem </verb></tscreen> <sect2>dial <nidx>UUCP!dial!Modem</nidx> <p> In dieser Datei werde unter anderem auch die Modem-Init-Strings definiert. Falls Sie einen speziellen Init-String benötigen, tragen Sie diesen hier ein: <tscreen><verb> dialer modem chat "" ATZ OK ATDT\D CONNECT chat-fail BUSY chat-fail NO\sCARRIER chat-fail ERROR chat-fail NO\sDIALTON chat-fail SYSTEM\sSUSPEND carrier-wait 60 dtr-toggle true complete \d\d+++\d\dATH\r\c abort \d\d+++\d\dATH\r\c </verb></tscreen> <sect2>sys <nidx>UUCP!sys!Modem</nidx> <p> In dieser Datei dürfen Sie natürlich wieder den Systemnamen <em>tpki</em> durch den Systemnamen Ihres Providers ersetzen. Das <em>phone 0431123123</em> ersetzen Sie bitte durch die Telefonnummer Ihres Providers. Falls Sie Ihr Modem an einer Nebenstellenanlage betreiben, tragen Sie hier ein 0,0431123123 ein. <tscreen><verb> call-login * call-password * pubdir /var/spool/uucppublic chat-timeout 20 time any success-wait 600 commands rmail rnews command-path /usr/lib/news/bin/ /usr/bin /usr/sbin system tpki # port modem chat ogin: \L word: \P protocol ig # hier bitte die Telefonnummer anpassen phone 0431123123 protocol-parameter i window 7 protocol-parameter i packet-size 2048 protocol-parameter i startup-retries 16 protocol-parameter i init-retries 8 protocol-parameter i init-timeout 10 protocol-parameter i retries 3 protocol-parameter i timeout 20 protocol-parameter i garbarge 20000 protocol-parameter i errors 256 protocol-parameter i error-decay 8 protocol-parameter i remote-window 0 protocol-parameter i remote-packet-size 0 protocol-parameter i short-packets true </verb></tscreen> <sect1>UUCP per ISDN <nidx>UUCP!ISDN</nidx> <nidx>ISDN!UUCP</nidx> <sect2>call <nidx>UUCP!call!ISDN</nidx> <p> Hier müssen Sie den Systemnamen Ihres Providers <em>tpki</em>, Ihren Loginnamen <em>perikles</em> und Ihr Paßwort <em>asecret</em> eintragen. <tscreen><verb> #<system> <login> <passwd> tpki perikles asecret </verb></tscreen> <sect2>config <nidx>UUCP!config!ISDN</nidx> <p> Der Nodename Ihres Rechners <em>perikles</em> muß angepaßt werden <tscreen><verb> nodename perikles </verb></tscreen> <sect2>port <nidx>UUCP!port!ISDN</nidx> <p> Stellen Sie sicher, daß <tt>/dev/modem</tt> auf ihr Modem (z.B. <tt>/dev/ttyS0</tt>) zeigt, oder tragen Sie Ihr Modem-Device ein. <tscreen><verb> port ttyI0 device /dev/ttyI0 speed 115200 dialer ttyI0 </verb></tscreen> <sect2>dial <nidx>UUCP!dial!ISDN</nidx> <p> Hier ersetzen Sie bitte die MSN <em>81239</em> durch Ihre MSN. <tscreen><verb> dialer ttyI0 chat "" ATZ OK AT&E81238 OK \d ATD\D CONNECT chat-fail BUSY chat-fail NO\sCARRIER chat-fail ERROR chat-fail NO\sDIALTONE chat-fail SYSTEM\sSUSPEND carrier-wait 60 dtr-toggle true complete \d\d+++\d\dATH\r\c abort \d\d+++\d\dATH\r\c </verb></tscreen> <sect2>sys <nidx>UUCP!sys!ISDN</nidx> <p> In dieser Datei dürfen Sie natürlich wieder den Systemnamen <em>tpki</em> durch den Systemnamen Ihres Providers ersetzen. Das <em>phone 0431123123</em> ersetzen Sie bitte durch die Telefonnummer Ihres Providers. <tscreen><verb> call-login * call-password * pubdir /var/spool/uucppublic chat-timeout 20 time any success-wait 600 commands rmail rnews command-path /usr/lib/news/bin/ /usr/bin system tpki # port ttyI0 chat ogin: \L word: \P protocol ig # hier bitte die Telefonnummer anpassen phone 0431123123 protocol-parameter i window 7 protocol-parameter i packet-size 2048 protocol-parameter i startup-retries 16 protocol-parameter i init-retries 8 protocol-parameter i init-timeout 10 protocol-parameter i retries 3 protocol-parameter i timeout 20 protocol-parameter i garbarge 20000 protocol-parameter i errors 256 protocol-parameter i error-decay 8 protocol-parameter i remote-window 0 protocol-parameter i remote-packet-size 0 protocol-parameter i short-packets true </verb></tscreen> <sect>Sicherheit <p> Es gibt ein paar wichtige Dinge, die Sie beachten sollten, wenn Sie ein UUCP-System betreiben. Die meisten dieser Tips beziehen sich auf Dateirechte. Lesen Sie die Manual Page zu <tt>chmod</tt> und <tt>chown</tt>, um die Rechte anzupassen. <sect1>UUCP <p> Die Dateien im UUCP-Verzeichnis müssen teilweise allgemein zugänglich sein, z.B. damit der Sendmail Mails zustellen kann. Andere Dateien sollten allerdings nur vom User <tt>uucp</tt> aus der Gruppe <tt>uucp</tt> lesbar sein, da Paßwörter enhalten sind. Die Dateien <tt>passwd</tt> und <tt>call</tt> enthalten Paßwörter. Hier eine sichere Konfiguration: <tscreen><verb> /etc/uucp > ls -l -r--r----- 1 uucp uucp 161 Oct 2 20:14 call -rw-r----- 1 uucp uucp 120 May 23 23:58 config -rw-r----- 1 uucp uucp 724 May 23 23:58 dial -rw-r----- 1 uucp uucp 18 Oct 2 20:24 passwd -rw-r----- 1 uucp uucp 162 May 23 23:58 port -rw-r--r-- 1 uucp uucp 3027 Oct 2 20:22 sys </verb></tscreen> <sect1>INN (1.x und 2.x) <p> Der INN ermöglicht eine Paßwortabfrage beim Zugang zum Server. Wenn die Paßwörter, die im Klartext gespeichert werden, für alle frei zugänglich sind, bringt der Schutz nicht sehr viel. Setzen Sie die Rechte für die Datei <tt>nnrp.access</tt>, in der die Daten gespeichert sind, also entsprechend: <tscreen><verb> /etc/news > ls -l nnrp.access -rw-r----- 1 news news 1293 Sep 17 10:41 nnrp.access </verb></tscreen> <sect1>Sendmail <p> Die Konfigurationsdateinen des Sendmail dürfen von allen gelesen werden, allerdings nur von <tt>root</tt> geändert werden: <tscreen><verb> /etc > ls -l sendmail.cf -rw-r--r-- 1 root root 30910 Oct 2 17:20 sendmail.cf /etc/mail > ls -l lrwxrwxrwx 1 root root 10 May 23 13:01 aliases -> ../aliases -rw-r--r-- 1 root root 85 Jan 20 1999 genericstable -rw-r--r-- 1 root root 16384 May 23 11:19 genericstable.db -rw-r--r-- 1 root root 8137 Jan 20 1999 linux.mc -rw-r--r-- 1 root root 166 Jan 20 1999 linux.nullclient.mc -rw-r--r-- 1 root root 1536 Oct 2 17:32 mailertable -rw-r--r-- 1 root root 16384 Oct 2 17:33 mailertable.db -rw-r--r-- 1 root root 267 Jan 20 1999 userdb -rw-r--r-- 1 root root 0 May 23 11:19 userdb.db -rw-r--r-- 1 root root 73 Jan 20 1999 virtusertable -rw-r--r-- 1 root root 16384 May 23 11:19 virtusertable.db </verb></tscreen> <sect1>Sicherheitsprobleme bei SSH-Tunneln <p> SSH-Tunnel werden genutzt, um UUCP über IP sicherer zu machen. Damit es keine Probleme bei der Paßwortabfrage gibt, wird ein <em>Public Key</em> erzeugt. Mehr dazu finden Sie im anschliessenden Kapitel. Dieser <em>Public Key</em> ersetzt das Paßwort. Sie können sich nach Kopieren des Keys auf einen anderen Rechner auf diesem per ssh einloggen, ohne ein Paßwort eingeben zu müssen. Dies hat auch Nachteile. Wenn jemand Ihren Arbeitsplatzrechner gehackt hat und Ihren lokalen Account nutzen kann, kann dieser sich ebenfalls ohne Paßwort auf dem anderen Rechner einloggen. Wenn Sie den SSH-Tunnel nutzen, besteht die Möglichkeit, daß ein Angreifer sich bei Ihrem Provider mit Ihrem Shell-Account einloggen kann. Wenn Sie Ihren Rechner per Firewall oder setzen von sicheren Paßwörtern sicher gemacht haben, ist diese Lücke meiner Meinung nach allerdings zu vernachlässigen. <sect>UUCP über IP mit ssh sicherer machen <sect1>Sicherheitslücken <p> UUCP über IP baut im Normalfall eine Verbindung zu Port 540 des UUCP-Servers auf. Diese Verbindung ist unverschlüsselt und somit kann rein theoretisch jeder Rechner auf dem Weg der Daten diese abfangen und das Paßwort im Klartext lesen. Ein sogenannter Sniffer ist fast unsichtbar, da er nur passiv den Datenstrom mitliest und keine eigenen Pakete verschickt. Das Paßwort ermöglicht dem Angreifer, E-Mails und News von UUCP-Server zu holen, als sei er der echte Client. Oft wird für einen eventuell vorhandenen FTP-Zugang, Shell-Account oder sogar für den PPP-Zugang das selbe Paßwort verwendet, so daß der Angreifer auf Kosten des Benutzers surfen kann. <sect1>Die Verbindung verschlüsseln <p> Es ist möglich, die komplette Verbindung so zu verschlüsseln, daß niemand den Inhalt erkennen kann. Als Nebeneffekt ist eine Kompression zuschaltbar, um bei DialUp-Leitungen Kosten zu sparen. Diese Kompression wirkt meist nur bei Mails, da News-Batches meist schon komprimiert sind. Ihr Provider muß den SSH-Server <tt>sshd</tt> laufen haben und Sie benötigen den SSH-Client <tt>ssh</tt>. So testen Sie, ob Ihr Provider den <tt/sshd/ laufen hat. <tt>uucp.netuse.de</tt> ersetzen Sie natürlich durch den Namen des UUCP-Servers Ihres Providers: <tscreen><verb> $ telnet uucp.netuse.de 22 Trying 193.98.110.140... Connected to uucp.netuse.de. Escape character is '^]'. SSH-1.5-1.2.27 quit Connection closed by foreign host. $ </verb></tscreen> Geben Sie <tt>quit</tt> ein, um die Verbindung zu beenden oder benutzen Sie die Escape-Sequenz <tt>^]</tt>. Auf dem Server in diesem Beispiel läuft der im Moment aktuelle SSH-Daemon Version 1.2.27. Falls Sie eine einigermaßen aktuelle Distribution nutzen, haben sie wahrscheinlich auch diese Version. Überprüfen Sie, ob Sie den SSH-Client installiert haben: Wenn Sie folgenden Befehl eingeben, sollten sie den Pfad zu dem Programm erhalten: <tscreen><verb> $ which ssh /usr/local/bin/ssh $ </verb></tscreen> Ist dies nicht der Fall, sollten Sie das SSH-Paket Ihrer Distribution installieren. RedHat-Pakete bekommen Sie z.B. hier: <tscreen><htmlurl url="ftp://ftp.replay.com/pub/crypto/" name="ftp.replay.com:/pub/crypto/"></tscreen> <sect1>SSH-Tunnel starten <p> Der SSH-Tunnel kann z.B. so gestartet werden: <tscreen>$ ssh -f -C uucp.netuse.de 5400:uucp.netuse.de:540 sleep 120</tscreen> Die Optionen haben folgende Bedeutung: <descrip> <tag/-f/ Diese Option sorgt dafür, daß <tt/ssh/ sich nach der Authentisierung in den Hintergrund »forkt«. <tag/-C/ Kompression aktivieren (optional) <tag/uucp.netuse.de/ Adresse des UUCP-Servers Ihres Providers (z.B. <tt>uucp.provider.de</tt>) <tag/5400:uucp.netuse.de:540/ <tt>5400</tt> ist ein lokaler Port, der fast beliebig gewählt werden kann. <tt>uucp.netuse.de</tt> ist wieder der Hostname des UUCP-Servers und <tt>540</tt> der Port, auf dem der Server lauscht. <tag/sleep 120/ Dies ist ein Shell-Befehl, der dafür sorgt, daß der Tunnel 2 Minuten auf Daten wartet, bevor er wieder abgebaut wird. </descrip> Der lokale Port 5400 ist bewußt über 1024 gewählt, damit auch ein Benutzer ohne root-Rechte den Tunnel aufbauen kann. <sect1>UUCP konfigurieren <p> Damit der SSH-Tunnel genutzt wird, muß der eigene Client umkonfiguriert werden. Er darf jetzt keine Verbindung mehr zum UUCP-Server aufbauen, sondern zum lokalen Port 5400. Die Dateien <tt>port</tt> und <tt>sys</tt> werden bearbeitet: <bf>port</bf> <tscreen><verb> port tcpssh type tcp service 5400 </verb></tscreen> Es wird ein neuer Port <tt>tcpssh</tt> konfiguriert, der statt Port 540 den Port 5400 nutzt. <bf>sys</bf> <tscreen><verb> system uucp port tcpssh protocol t address 127.0.0.1 </verb></tscreen> Dieser Abschnitt sollte Ihnen schon bekannt vorkommen. Vielleicht haben Sie die UUCP-über-IP-Variante auch nur als <tt>Alternate</tt> konfiguriert. Die Verschlüsselung funktioniert trotzdem. Im Gegensatz zu Ihrer alten Konfiguration wird der Port und die <tt>address</tt>-Zeile angepasst. Den Port <tt>tcpssh</tt> haben wir bereits in der Datei <tt>port</tt> konfiguriert. Die Adresse wird auf 127.0.0.1 (localhost) gesetzt, damit der SSH-Tunnel die Daten an den eigentlichen UUCP-Server weiterleiten kann. Bei einem Aufruf des SSH-Befehls und anschliessendem Pollens sollten Sie keine Unterschiede in den Logs im Vergleich zu alten Calls feststellen. <sect1>Verschlüsselung automatisieren <p> Es ist nicht sehr benutzerfreundlich, vor jedem Pollen den SSH-Befehl eintippen und ein Paßwort angeben zu müssen. Ein Skript, welches <tt/uucico/ aufruft, kann also auch ohne Probleme noch einen zusätzlichen Befehl vertragen: <tscreen><verb> #!/bin/bash # SSH-Tunnel starten ssh -f -C uucp.provider.de 5400:uucp.provider.de:540 sleep 120 # Hier kann nochmal schnell ein News-Batchen im # Hintergrund angeworfen werden. # su -c "/usr/bin/sendbatch uucp" news & # Hier wird uucico gestartet. /usr/sbin/uucico -Suucp </verb></tscreen> <sect1>SSH ohne Paßwort <p> Durch Eintragen des <em>Public Keys</em> des Clients auf dem Server wird eine SSH-Verbindung ermöglicht, die kein Paßwort benötigt. Generieren Sie sich dazu einen Public Key für SSH, falls Sie nicht bereits einen besitzen: <tscreen><verb> $ ssh-keygen Initializing random number generator... Generating p: ........++ (distance 184) Generating q: ............++ (distance 210) Computing the keys... Testing the keys... Key generation complete. Enter file in which to save the key (/home/user/.ssh/identity): Enter passphrase: Enter the same passphrase again: Your identification has been saved in /home/user/.ssh/identity. Your public key is: 1024 35 127642664008810473190379335529362297128585226778196\ 81550133787496336590741138179031632372787523983722146993732\ 04821130289447237973952899107810754205502922180340071603017\ 45428600832943838422850984029284270667469908839608991926944\ 06721675129466163897527649041652188452013063146729141405576\ 7033019358488561450739 user@perikles.toppoint.de Your public key has been saved in /home/user/.ssh/identity.pub </verb></tscreen> Der Dateiname ist egal, bestätigen Sie also einfach mit Enter. Die Paßwortabfrage bestätigen Sie zweimal mit Enter, um kein Paßwort zu setzen. Im Verzeichis <tt>~/.ssh/</tt> sollten Sie nun diese Dateien finden: <tscreen><verb> $ ls -l total 3 -rw------- 1 netadmin netadmin 544 May 31 19:56 identity -rw-rw-r-- 1 netadmin netadmin 348 May 31 19:56 identity.pub -rw------- 1 netadmin netadmin 512 May 31 19:56 random_seed </verb></tscreen> Zusätzliche Dateien wie z.B. <tt>authorized_keys</tt> oder <tt>known_hosts</tt> sind nicht störend, sondern enthalten Informationen zu vergangenen SSH-Verbindungen. Ihr Public Key muß nun auf den UUCP-Server kopiert werden. Nutzen Sie dazu am besten gleich SSH, damit niemand Ihre Verbindung mitlesen kann. Sie benötigen dazu einen Shell-Zugang zu dem UUCP-Server Ihres Providers. Oft ist dies der gleiche Rechner, der auch den Shell-Zugang selbst bereitstellt. Wenn Sie keinen Shell-Zugang haben, sollten Sie Ihren Provider bitten, die Datei <tt>identitiy.pub</tt> in das entsprechende Verzeichnis zu kopieren. Wenn der Provider nichts mit Ihrer Anfrage nichts anfangen kann, dann hat er wahrscheinlich nicht viel Ahnung von Sicherheit :-). Der UUCP-Server ist in diesem Beispiel <tt>uucp.provider.de</tt> und der Benutzername ist <tt>blafasel</tt>. Wechseln Sie ins richtige Verzeichnis wechseln: <tscreen> $ cd ~/.ssh </tscreen> Zum Kopieren des Public Keys nutzen wir den Befehl <tt>scp</tt> (Secure Copy) des SSH-Pakets: <tscreen><verb> $ scp identity.pub blafasel@uucp.provider.de:.ssh/ blafasel@uucp.provider.de's password: identity.pub | 1 KB | 7.4 kB/s | ETA: 00:00:00 | 100% </verb></tscreen> Diese Verbindung benötigt natürlich noch ein Paßwort. Geben Sie das Paßwort für Ihren Shell-Account ein. Testen Sie nun, ob ein Login ohne Paßwort möglich ist: <tscreen><verb> $ ssh blafasel@uucp.provider.de Last login: Tue May 30 17:44:47 2000 No mail $ uname -n uucp.provider.de </verb></tscreen> Falls Sie den gleichen Benutzernamen auf Ihrem Client und dem Server nutzen, können Sie den SSH-Befehl zu <tt>ssh uucp.provider.de</tt> reduzieren. Die Meldungen nach dem Login können stark varieren, je nachdem welches Betriebssystem Ihr Provider einsetzt. Kontrollieren Sie mit dem Befehl <tscreen><verb> $ uname -n </verb></tscreen> ob Sie auf dem richtigen Rechner eingeloggt sind. <sect1>SSH-Tunnel beim Login per PPP aktivieren <p> Wenn ich per SyncPPP online bin, wird automatisch alle 5 Minuten nach Mails und News gesucht. Falls sie etwas ähnliches machen, können Sie die SSH-Zeile für den Tunnel in die Datei <tt>/etc/ppp/ip-up</tt> eintragen und somit einen permanenten Tunnel aufstellen. Achten Sie darauf, daß der <tt>sleep</tt> Befehl einen hohen Wert hat, damit der Tunnel lange bestehen bleibt. Nachteil dieser Version ist, daß bei Dial on Demand oft Verbindungen aufgebaut werden können oder die Verbindung nicht abgebaut wird, obwohl keine Daten mehr transferiert werden und das Idle-Timeout überschritten ist. Als Lösung dieses Problems bietet es sich an, vor jedem UUCP-Call den SSH-Tunnel für ein paar Sekunden aufzubauen. Wie viele Sekunden Sie benötigen, hängt von Ihrer Anbindung ab. 10 Sekunden sollten allerdings ausreichend sein. </article>