Linux UUCP HOWTO Hendrik Scholz (hendrik@scholz.net) v1.3.1, 31. Mai 2000 Dieser Text erklärt die Funktionsweise und Konfiguration von Taylor- UUCP. Er soll die Installation eines UUCP-Feeds für News und Mail erleichtern. 1. Einleitung 1.1. Neue Versionen dieses Dokuments Die jeweils neuste Version dieser HOWTO ist auf dem WWW Server des Deutschen Linux HOWTO Projekts unter folgender Adresse zu finden: http://www.tu-harburg.de/dlhp/ 1.2. Feedback Wenn Sie irgendwelche Fragen oder Kommentare zu diesem Dokument haben, erreichen Sie mich unter den folgenden Adressen: · Internet: hendrik@scholz.net · Zerberus: hscholz@KRISKI.ZER · AMPRNet: dg2ls@db0fho.ampr.org · Homepage: http://www.toppoint.de/~hscholz · Snail-Mail: Hendrik Scholz Elsa-Brandström-Str. 9 D-24223 Raisdorf 1.3. Copyright Dieses Dokument ist urheberrechtlich geschützt. Das Copyright liegt bei Hendrik Scholz. Das Dokument darf gemäß der GNU General Public License 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. 1.4. Weiterführende Seiten Da ich nicht alles auswendig kann, muß auch ich irgendwo nachgucken ;-). Hier finden Sie Verweise, wo Sie weiterführende Dokumente finden: UUCP-Newsgruppe de.comm.uucp Homepage von Ian Lance Taylor http://www.cygnus.com/~ian/ Taylor-UUCP-Mail-News-FAQ http://www.pingnet.de/~poc/uucp-mail-news-faq.html Hendriks Toppointseiten http://www.toppoint.de/~hscholz Martin Neumanns UUCP-Anbieter Liste http://www.mne.de/uucp/ 1.5. Dank Dank geht an viele Personen, die mir geholfen haben: · NetUSE Datenkommunikations GmbH (bei der ich arbeite) · Toppoint e.V. (wo ich nebenbei den Newsserver betreue) · dbTec (dort habe ich geholfen meinen ersten UUCP-Server zu installieren :)) · Calle (der mich zu News/UUCP gebracht hat »Willst Du das nicht machen?«) · einzelne Personen aus Kiel und Umgebung · diverse Personen, die Fragen gestellt und emails mit Kritik geschickt haben 2. Was ist UUCP? 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. 2.1. HDB-UUCP HDB-UUCP (Honey-Dan-Ber-UUCP) wurde 1983 entwickelt. Der Name ist aus den Namen der Programmierer P. Honeyman, D.A. Novitz und B.E. Redman entstanden. Im Gegensatz zum bekannten UUCP sind neue Protokolle hinzugekommen. Es wird heute eigentlich nicht mehr benutzt. 2.2. Taylor-UUCP Taylor-UUCP hat seinen Namen vom Programmierer Ian Lance Taylor. Taylor-UUCP wurde ab 1993 (Version 1.03) sehr beliebt und ist heute der Standard für UUCP. 2.3. Anwendungen 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. 3. Voraussetzungen 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. 3.1. Voraussetzungen bei Ihrem Provider 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: Login Ihr Loginname für UUCP. Der Loginname entspricht Ihrem Rechnernamen. Ihre EMails werden an user@login.provider.de weitergeleitet. Paßwort Ihr Paßwort beim Provider. Systemname Der Name des Rechners, den Sie anrufen. Telefonnummer Die Telefonnummer Ihres Providers, bei der Sie »pollen« können. Diese Nummer ist meistens nicht die gleiche Nummer wie die für PPP. 3.2. Provider, die UUCP erlauben · alle Provider des des Individual Networks: http://www.individual.net · Universitäten haben teilweise einen UUCP-Rechner. Wenn Sie studieren, bitten Sie Ihren Systemadministrator einfach darum, Ihnen eine »Site« einzurichten. · http://www.netzservice.de (Kiel) · http://www.han.de (Hannover) · http://www.rhein.de (Bonn) · http://www.inka.de (Karlsruhe) Eine Liste mit vielen UUCP-Providern sollten Sie hier finden: http://www.mne.de/uucp/ Kennen Sie weitere Provider, die UUCP erlauben? Erlaubt Ihr Provider UUCP? Schicken Sie mir bitte eine EMail. 3.3. Provider, die kein UUCP erlauben Die folgenden Provider erlauben kein UUCP. Dieses sind oft große Onlinedienste, für die UUCP oft zuviel Aufwand bedeutet. · T-Online · AOL · Compuserve Kennen Sie mehr Provider, die kein UUCP erlauben? Erlaubt Ihr Provider kein UUCP? Schicken Sie mir bitte eine EMail. 3.4. Voraussetzungen auf Ihrer Seite Ihr Rechner muß einige Bedingungen erfüllen, damit UUCP einfach und schnell installiert werden kann: · Linux mit Modem-/ISDN-Support muß installiert sein. · Sie müssen root-Rechte haben, so daß Sie das gesamte System konfigurieren können. · Sie benötigen ein Modem, einen externen ISDN-Terminal-Adapter oder eine ISDN-Karte, um eine Verbindung zu Ihrem Provider aufzubauen. · Sie sollten ein wenig Ahnung von Linux haben ;-). Wenn alle diese Voraussetzungen erfüllt sind, können Sie mit bestem Gewissen weiterlesen. 4. Taylor-UUCP installieren Die Installation habe ich in mehrere Teile eingeteilt, die vom Zeitaufwand sehr unterschiedlich sind. 4.1. Haben Sie schon UUCP? 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. 4.2. Paket runterladen Zuerst benötigen Sie natürlich die Quellen zum UUCP-Paket, um überhaupt etwas installieren zu können. Ich habe folgendes Paket verwendet: ftp.funet.fi:/pub/unix/networking/taylor/uucp-1.06.1.tar.gz Die aktuellen Versionen finden Sie im Verzeichnis ftp.funet.fi:/pub/unix/networking/taylor/ auf dem Server. 4.3. Paket kompilieren Um die Daten zu kompilieren, müssen Sie nicht als root eingeloggt sein. Lesen Sie sich zur Installation die README-Datei aus dem Paket durch. Paket entpacken $ tar xfvz uucp-1.06.1.tar.gz Das Archiv mit dem gepackten Sourcecode muß entpackt werden. Konfiguration $ cd uucp-1.06.1; ./configure Zuerst wechseln wir in das richtige Verzeichnis ;-). Das 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. Kompilieren $ make 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. 4.4. Paket installieren 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: $ make install 5. UUCP konfigurieren 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. Bei den verschiedenen Distributionen befinden sich die Konfigurationsdateien in verschiedenen Verzeichnissen: selbstkompiliertes Paket: /usr/conf/uucp/ (kann geändert werden) SuSE 6.x: /etc/uucp/ SuSE 5.x: /var/lib/uucp/taylor_config/ SuSE 4.4.x: /var/lib/uucp/taylor_config/ Delix 5.4: /etc/uucp/ alte Slackware: /var/lib/uucp/taylor_config/ Debian 2.0: /etc/uucp/ RedHat 5.x: /etc/uucp/ RedHat 6.0: /etc/uucp/ FreeBSD: /etc/uucp/ Wechseln Sie in das Verzeichnis, in dem Ihre Konfigurationsdateien sind, und schauen Sie sich mit ls -l das Verzeichnis an. Es sollte schon die unten aufgeführten Dateien enthalten. Wenn dieses nicht der Fall ist, so ist dies nicht so schlimm. $ ls -l /var/lib/uucp/taylor_config/ 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 Alle Zeilen, die in den Konfigurationsdateien mit einem Hash (#) anfangen, sind Kommentare und können ignoriert werden ;-). 5.1. config - Name Ihres Rechners In der config-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 config-Datei, wobei Sie rechnername durch Ihren Rechnernamen (ohne .provider.de) ersetzen: nodename rechnername 5.2. call - Paßwortdatei Die Datei call 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. # tpki perikles asecret 5.3. port - Schnittstellen Die Datei port 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. # 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 Eigentlich sollte alles so funktionieren, wie es hier steht. Es ist nötig, daß /dev/modem auf den seriellen Anschluß zeigt, an dem das Modem angeschlossen ist. 5.4. dial - Modem-Konfiguration 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 touch dial 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 chat 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 \D ist die Telefonnummer, die später gewählt wird. # 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 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 nicht die komplette Telefonnummer. # 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 5.5. sys - die eigentliche Konfiguration 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 sys: # 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 # Name des Systems, das Sie anrufen system tpki 5.5.1. UUCP per Modem Wenn Sie ein Modem oder einen externen ISDN-Terminal-Adapter haben, kopieren Sie die folgenden Zeilen hinter die Zeilen, die bereits in der Datei sys stehen. Anstatt der 0431123123 sollten Sie die Telefonnummer Ihres Providers, die Sie bei Ihrer Anmeldung bekommen haben, angeben. 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 5.5.2. UUCP per ISDN Wenn Sie eine ISDN-Karte haben, kopieren Sie die folgenden Zeilen hinter die Zeilen, die bereits in der Datei sys stehen. Anstatt der 0431123123 sollten Sie die Telefonnummer Ihres Providers, die Sie bei Ihrer Anmeldung bekommen haben, angeben. 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 5.5.3. UUCP über eine bestehende Verbindung UUCP über eine TCP-Verbindung ist relativ leicht zu konfigurieren. Nur der Systemname in der address-Zeile muß angepaßt werden. port uucp-tcp protocol tig # Hier den Systemnamen im Format systemname.provider.de # eintragen address tpki.toppoint.de chat ogin: \L word: \P Nun noch ein kleiner Trick: Damit UUCP schneller merkt, daß es keine Verbindung per TCP bekommt, wird der Rechner Ihres Providers in der Datei /etc/hosts eingetragen. Wenn UUCP gestartet wird, muß kein Nameserverlookup gemacht werden, um den Rechner zu kontaktieren. Statt dessen wird der Eintrag aus der /etc/hosts genutzt. So wird es gemacht: Pingen Sie den UUCP-Rechner Ihres Providers so an: ping system.provider.de Sie sollten eine Antwort von dem Rechner bekommen: $ 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 Übernehmen Sie die IP-Adresse, hier 195.244.243.6, und tragen Sie diese zusammen mit dem Rechnernamen in der /etc/hosts ein: # 195.244.243.6 tpki.toppoint.de tpki Wenn Sie offline sind und ping rechner.provider.de eintippen, sollte die folgende Fehlermeldung kommen: 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 6. UUCP starten 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. 6.1. UUCP von Hand starten UUCP wird mit dem Befehl uucico gestartet. uucico und die anderen Programme befinden sich in /usr/lib/uucp/. 6.1.1. Vorbereitungen Um verfolgen zu können, was gerade passiert, wenn wir das erste Mal »pollen«, lassen wir uns mit tail die Logdateien anzeigen. Dazu erstellen Sie so die Logdateien: # touch /var/spool/uucp/Log # touch /var/spool/uucp/Debug Damit uucico auch in die Dateien schreiben kann, sollten Sie mit chown uucp:uucp /var/spool/uucp/* den Besitzer dieser Dateien ändern. Machen Sie nun ein neues xterm auf oder loggen Sie sich auf einer anderen virtuellen Konsole als root ein. Tippen Sie nun folgendes ein: tail -f /var/spool/uucp/Log /var/spool/uucp/Debug Auf dem Bildschirm sollten schon ein paar Zeilen erscheinen. Ab jetzt werden alle Änderungen an den Logdateien angezeigt. 6.1.2. uucico aufrufen uucico werden beim Start der Systemname der Gegenstelle und der Port (Modem, ISDN, TCP) übergeben. Da nur ein Port in der sys steht oder haben Sie etwa doch zwei drin, brauchen wir den Port nicht angeben. Den Systemnamen systemname müssen Sie durch den Namen des Systems ersetzen, das Sie anrufen möchten. Dieser Name muß mit dem Namen in der sys-Datei übereinstimmen. So ergibt sich der folgende Befehl zum Starten von UUCP: /usr/lib/uucp/uucico -f --debug 7 -s systemname 6.2. UUCP automatisieren Wenn alles funktioniert und Sie Ihren Rechner UUCP automatisch nachts aufrufen lassen möchten, können Sie die crontab als Hilfsmittel benutzen. Tippen Sie als root diesen Befehl ein: su - uucp Nun sind Sie der Benutzer uucp. Mit crontab -e können Sie die Crontab ändern. Fügen Sie die folgende Zeile ein, damit UUCP einmal abends um 21.30 Uhr aufgerufen wird: 30 21 * * * /usr/lib/uucp/uucico -f -s systemname 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 man 5 crontab die Dokumentation zu crontab. 7. Mail und News konfigurieren 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. 7.1. Sendmail Wenn Sie einen sendmail-Mailserver installiert haben, ist dieser Abschnitt für Sie interessant. Wenn Sie sendmail benutzen, sollten Sie bei telnet localhost 25 den folgenden Text erhalten: 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 7.1.1. SuSE-Config 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 yast. Gehen Sie in das Menü Administrieren des Systems, Netzwerk konfigurieren, Sendmail konfigurieren. Nun wählen Sie Benutze UUCP zur Mail-Übertragung. Tragen Sie den Namen des Systems Ihres Providers ein. 7.1.2. /etc/sendmail.cf 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 /etc/sendmail.cf-Datei anpassen: # "Smart" relay host # hier muß der Rechnernamen auf der Seite Ihres # Providers eintragen werden (hier: tpki) DSuucp-dom:tpki 7.1.3. Überprüfen, ob die Mails richtig verschickt werden Wenn Sie sendmail konfiguriert und neu gestartet haben, sollten Sie testweise eine EMail verschicken, um zu verfolgen, ob alles richtig konfiguriert ist. mailq Das Programm mailq zeigt an, welche EMails vom 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. /var/log/mail Die Datei /var/log/mail enthält Informationen zu den bearbeiteten EMails. Um diese Datei anzuschauen, müssen Sie root sein. Sie können mit tail -f /var/log/mail verfolgen, was sich an der Datei ändert. /var/spool/uucp/Log Diese Logdatei von UUCP verzeichnet alle ein- und ausgehenden EMails. Die genaue Beschreibung finden Sie im Abschnitt ``Wo finde ich die Fehlermeldungen''. 7.2. Welcher Newsserver ist am besten geeignet? Es gibt verschiedene Newsserver, die unterschiedliche Eigenschaften haben ;-). INN - InterNetNews + INN ist weit verbreitet, da der Server sowohl UUCP- als auch NNTP-Links ermöglicht. + INN ist relativ schnell. + Das Suchen nach Schlüsselwörtern in den News ist möglich. - aufwendig zu konfigurieren - verbraucht relativ viele Ressourcen cnews + Leichte Konfiguration - nur für UUCP gedacht - keine Suche nach Artikeln möglich Suchen Sie sich nun den Server aus, der für Sie besser geeignet ist. 7.3. INN - InterNetNews 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.1. 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). 7.3.1. INN 1.72 Die Konfigurationsdateien befinden sich meist in /var/lib/news/ oder /etc/news. /usr/local/news ist allerdings auch denkbar, so daß Sie vielleicht etwas suchen müssen. 7.3.1.1. send-uucp.cf - Batchparameter Mit dieser Datei wird geklärt, wie und wann die News, die Sie verschicken, gepackt werden. Das System (tpki) ist der Rechnername Ihres Provider. # Das Format sieht so aus: # sitenamecompressormaxsizebatchtime tpki compress 1048576 1-24 7.3.1.2. newsfeeds - Wer bekommt was? In der newsfeeds-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 newsfeeds-Datei: # 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 Die einzige Zeile, die Sie anpassen müssen, ist die letzte Zeile. Die genaue Syntax finden Sie als Kommentar in der newsfeeds-Datei. Das Format sieht so aus: # 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 und und Sie # haben einen Standardfeed :-) # system/news.provider.de:*,!junk,!control\ # :Tf,Wnb,B4096/1024 Erklärung: Ich schicke zu tpki meine Artikel aus allen Gruppen außer junk, control und local.*. Außerdem schicke ich nicht die Artikel, die von news.toppoint.de kommen. 7.3.1.3. INN neu starten 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: $ 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 Der Server läuft in diesem Fall. Der INN-Prozess wird mit dem folgenden Befehl gestoppt: $ ctlinnd shutdown weg damit Das Programm ctlinnd kann auch einzelne Konfigurationsdateien neu laden, aber dafür muß man mehr tippen :-). Der Server wird über den Befehl rc.news neu gestartet. rc.news befindet sich bei mir im Verzeichnis /usr/lib/news/. /usr/local/news ist ein anderer möglicher Aufenthaltsort. Falls Sie die Datei nicht finden, können Sie mit dem folgenden Befehl die Datei suchen: $ locate rc.news /usr/lib/news/bin/rc.news In der Datei /var/log/messages und/oder der Datei /var/log/news sollten nun einige Nachrichten erscheinen, daß der Server gestartet wurde: 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 7.3.1.4. News zusammenpacken 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 /usr/lib/news/bin/send- uucp.pl. Wenn Sie eine Artikel geschrieben haben und dann /usr/lib/news/bin/send-uucp.pl systemname ausführen, wobei Sie systemname durch den Systemnamen Ihres Providers ersetzen, sollte eine zusätzliche Zeile in der /var/spool/uucp/Log erscheinen: uux tpki news (1998-06-25 13:00:06.83 535) Queuing rnews (D.00KI) 7.3.2. INN 2.2 Da selbst SuSE eingesehen hat, daß es Standard-Verzeichnisse für die Konfigurationsdateien gibt, werden Sie das Home des Users news und die Konfigurationsdateien des INN wahrscheinlich in /etc/news oder (bei selbstcompilierten Versionen) in /usr/local/news finden. 7.3.2.1. Aktuellen INN selbst compilieren Die Website des INN finden Sie hier: http://www.isc.org/inn.html Die Sourcen selbst können Sie von der Index-Seite aus herunterladen oder direkt per FTP von hier holen: ftp.isc.org:/inn/ Entpacken Sie nun die Sourcen in einem temporären Verzeichnis: $ tar xfvz inn-2.2.1.tar.gz Wechseln Sie in das Verzeichnis und lesen Sie die Dokumentation in den Dateien README und INSTALL. Führen Sie nun das ./configure aus. In der Dokumentation haben Sie hoffentlich die Parameter gelesen. Ich benutze meist folgendes: $ ./configure --enable-tagged-hash --prefix=/usr/local/news \ --with-spool-dir=/var/spool/news \ --with-log-dir=/var/log/news && echo ok Gegebenenfalls benötigen Sie noch ein zusätzliches --with- sendmail=/usr/lib/sendmail. Nach kurzer Zeit sollten Sie in der letzten Zeile ein einsames ok sehen. Wenn nicht, dann hat das Skript irgendwo einen Fehler gefunden und abgebrochen. Compilieren Sie nun den INN: $ make && echo ok Wieder einige Minuten später sollten Sie ein ok in der letzten Zeile sehen. Wenn dies dort nicht steht, ist etwas schiefgegangen. Installieren Sie den INN mit dem folgenden Befehl: $ make install 7.3.2.2. inn.conf Die inn.conf ist eine der zentralen Konfigurationsdateien. Sie finden diese im Verzeichnis [PREFIX]/etc. Wenn Sie den INN wie angegeben compiliert haben, befindet sich die Datei in /usr/local/news/etc/inn.conf. Passen Sie die folgenden Zeilen an: # 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 7.3.2.3. newsfeeds 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: # System/Exclude:Gruppen/Distribution:Parameter: tpki/tpki.toppoint.de:*,!junk,!control*/*:Tf,Wnb,B4096/1024: tpki ist der Name meines UUCP-Partners. Hier tragen Sie nicht Ihren eigenen Sitenamen sondern den Ihres Providers ein. Das /tpki.toppoint.de 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 news.provider.de. 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 !Gruppe ein. Das abschließende /* bestimmt die Distribution. Dieser Parameter wird fast nicht mehr benutzt, so daß * stehenbleiben kann. 7.3.2.4. nnrp.access 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 toppoint.de, bei mir News zu lesen. Die Rechner aus dem Netz 192.168.9 dürfen lesen und schreiben: stdin:Read Post:::* localhost:Read Post:::* 127.0.0.1:Read Post:::* *.toppoint.de:Read:::* 192.168.9:Read Post:::* In der Datei selbst befindet sich eine ausreichende Dokumentation zu dem Format. 7.3.2.5. expire.ctl Alte News sind uninteressant und können gelöscht werden. Der INN löscht alte Artikel automatisch nach Ihren Vorgaben, die Sie in der expire.ctl gemacht haben: /remember/:30 *:A:1:15:never de.alt.netdigest:M:1:90:never 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. * ist hierbei eine Gruppenangabe. de.alt.netdigest ist die einzige Gruppe, die länger (90 Tage) gehalten wird. 7.3.2.6. Dokumentation 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 /usr/doc/packages/inn riskieren. 7.3.3. News automatisieren Wenn Sie das Packen der News automatisieren möchten, können Sie einen Eintrag in der crontab vornehmen. Ich lasse meine News jede Stunde einmal packen und zusätzlich kurz vor dem Ausführen von UUCP. Stündliches News packen Bitte kopieren Sie die folgende Zeile in die crontab vom Benutzer news: 0 * * * * /usr/lib/uucp/bin/send-uucp.pl systemname Ersetzen Sie systemname durch das UUCP-System Ihres Providers. News packen, bevor UUCP ausgeführt wird Damit wirklich alle News per UUCP verschickt werden, die Sie geschrieben haben, sollte /usr/lib/uucp/bin/send-uucp.pl systemname kurz vor dem Pollen ausgeführt werden. Wenn Sie um 21.30 Uhr per 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 crontab vom Benutzer news ein: 25 21 * * * /usr/lib/uucp/bin/send-uucp.pl systemname Der systemname muß durch den Namen des UUCP-Rechners Ihres Providers ersetzt werden. 7.4. cnews Cnews ist ein Newsserver, der von der SuSE-Distribution für UUCP empfohlen wird. Die Konfiguration des Servers befindet sich unter /var/lib/news/. 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 /var/lib/news/sys definiert, ähnlich der /var/lib/news/newsfeeds 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: ME:all tpki/tpki.toppoint.de:all/all:f:tpki/togo Die Datei /var/lib/news/batchlog enthält die Logdatei zum Batchvorgang. Gestartet wird der Batchvorgang per /usr/lib/news/bin/batch/sendbatches. Je nachdem, wie viele Artikel sie posten, sollten Sie mehrmals pro Stunde den Befehl /usr/lib/news/bin/input/newsrun ausführen, um die neuen News einzusortieren. Eine komplette crontab mit einem Eintrag für newsdaily, ein Programm, das über den Status von cnews wacht, sieht so aus: # 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 8. Fehlermeldungen 8.1. Wo finde ich die Fehlermeldungen Alle UUCP-Programme schreiben ihre Log-Dateien in das Verzeichnis /var/spool/uucp/. 8.1.1. /var/spool/uucp/Debug Die Datei /var/spool/uucp/Debug 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. 8.1.2. /var/spool/uucp/Log Die Datei /var/spool/uucp/Log enthält allgemeine und vollständige Informationen zum Status von UUCP. Hier wird einfach alles angezeigt: Calling system tpki (port ttyI0) UUCP versucht einen Verbindungsaufbau über Port /ttyI0/ (ISDN). Login successfull Ihr Rechner hat sich in dem anderen System erfolgreich eingeloggt. Sending rmail user@host.com (D.00xx) (xxx bytes) Es wird gerade ein xxx Bytes großes EMail an user@host.com verschickt. Sending rnews (D.00xx) (xxx bytes) Es werden gerade xxx Bytes News hochgeladen. Receiving rmail hscholz (xxx bytes) Der lokale Benutzer hscholz bekommt gerade eine xxx Bytes große EMail. Receiving rnews (xxx bytes) Sie bekommen gerade xxx Bytes News. Call complete (xx seconds xxxxxx bytes xxxx bps) 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. Executing X.tpkixxxx (rmail hscholz) Es wird eine EMail, die vom System tpki für hscholz gekommen ist, einsortiert. Executing X.tpkixxxx (rnews) News, die Sie gerade bekommen haben, werden lokal einsortiert. Queuing rmail user@host.com (D.00xx) Eine EMail für den User user@host.com wird für das nächste Pollen bereitgestellt. Queuing rnews (D.00xx) Sie haben Newsartikel geschrieben, die an das UUCP-System weitergereicht werden sollen. 8.1.3. /var/spool/uucp/Stats Diese Datei zeigt an, welche Daten uucico mit welcher Größe und Geschwindigkeit auf welchem Port empfangen hat. Meiner Meinung nach gibt die Datei Log bessere Informationen. 8.1.4. uustat uustat ist ein kleines Programm, das anzeigt, welche Daten sich gerade in der UUCP-Queue befinden. Mit uustat --help bekommen Sie eine Auflistung aller möglichen Kommandooptionen. Besonders interessant ist uustat -a, um alle Daten in der Queue anzuzeigen. Mit uustat -i können gezielt EMails gelöscht werden. 8.2. ERROR: Chat script failed: Got "BUSY" 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 sys-Datei. 8.3. ERROR: Chat script failed: "NO\sDIALTONE" Sind alle Geräte (PC, Modem/ISDN-Karte, Telefondose) richtig miteinander verbunden? 8.4. ERROR: connect: Network is unreachable 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 alternate-Kommando eine Verbindung per DialUp versucht werden. 8.5. ERROR: Can't disable hardware flow control: I/O error 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 sys-Datei Ihren Loginnamen und Ihr Paßwort. Wenn Sie keinen Fehler finden können, starten Sie uucico mit dem zusätzlichen Parameter --debug 7. Mit dem Befehl tail -f /var/spool/uucp/Log /var/spool/uucp/Debug können Sie nun verfolgen, ob es Probleme beim Login gibt. Wenn uucico in der Debug-Datei mit einer Zeile stehen bleibt, in der etwas wie z.B. host: steht, müssen Sie Ihr Chat-Skript aus der sys-Datei anpassen. Probieren Sie mal den folgenden String, wobei Sie laforge durch den Systemnamen Ihres Providers ersetzen: chat ost: laforge ogin: \L word: \P 8.6. ERROR: Got termination signal Sie haben uucico gestoppt. Dies kann z.B. per killall -9 uucico gemacht werden. Da UUCP nicht richtig beendet wurde, existieren noch LOCK-Dateien. Diese können Sie als root per rm /var/lock/LCK..systemname löschen. 8.7. ERROR: Stale lock /var/lock/LCK..systemname held by process xxxx created 1998-xx-xx xx:xx:xx UUCP wurde nicht richtig beendet und LOCK-Dateien wurden nicht gelöscht. Löschen Sie die LOCK-Datei als root per rm /var/lock/LCK..systemname 9. Tips & Tricks 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. 9.1. "alternate" - Irgendwie muß es doch klappen. Es ist möglich, daß nach dem Aufruf von UUCP solange verschiedene Konfigurationen probiert werden, bis eine Verbindung zustande gekommen ist. Der sogenannte alternate-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 sys-Datei hinter Ihre Konfiguration. Trennen Sie diese mit einem alternate. Eine fertige sys-Datei sollte dann so aussehen: # 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 # 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 9.2. Maximale Größe für EMails begrenzen (sendmail) 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 sendmail so konfiguriert werden, daß er große EMails nicht annimmt. Sie müssen dazu als root die Sendmail-Konfigurationsdatei /etc/sendmail.cf anpassen. Öffnen Sie als root mit dem Editor vi die Datei /etc/sendmail.cf. Geben Sie /MaxMessage ein. Nun sollten Sie in der Zeile sein, die ungefähr so aussieht: #0 MaxMessageSize=100000 Das Hash-Zeichen # 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: 0 MaxMessageSize=1048576 Nachdem Sie die Änderungen an der Datei mit ESC :wq abgespeichert haben, müssen Sie den Mailserver neu starten, um die Änderungen wirksam zu machen. 9.3. Mail und News schon während des Pollens einsortieren Normalerweise übergibt der uuxqt erst nach dem kompletten Poll seine Daten per rnews und rmail an den Newsserver und den Mailserver. Mit zwei Zeilen in der config können Sie diese Verhalten beeinflussen: run-uuxqt 1 max-uuxqts 2 run-uuxqt 1 sorgt dafür, daß uuxqt aufgerufen wird, wenn ein komplettes Paket (Mail oder News) empfangen wurde. max-uuxqts 2 verhindert, daß zu viele uuxqts und die daraus resultierenden Arbeiten gleichzeitig passieren. Es dürfen bei dieser Einstellung nur maximal zwei uuxqts gleichzeitig arbeiten. Diese Konfiguration hat sich als sinnvoll und schnell erwiesen. 10. UUCP-Server 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. 10.1. UUCP konfigurieren 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. 10.2. Mailsystem konfigurieren 10.2.1. Sendmail Ab Sendmail 8.9.3 ist die Konfiguration wirklich sehr einfach geworden. Ausgangspunkt ist in diesem Beispiel der UUCP-Server perikles und sein Client milhouse. Der Client soll alle EMails an user@milhouse.toppoint.de bekommen. Die EMails des Clients sollen zurück an perikles geschickt werden. Der Client milhouse wird dabei, wie in diesem HOWTO beschrieben, als Client eingerichtet. 10.2.1.1. mailertable In der /etc/mail/mailertable steht eine Zuordnung zwischen Domains und Zielrechner: milhouse.toppoint.de uucp-dom:milhouse #user@milhouse.toppoint.de milhouse uucp-dom:milhouse #user@milhouse auch dorthin uucp-dom: sorgt dafür, daß UUCP für die Zustellung der Mails genutzt wird. milhouse ist der Name des UUCP-Clients. Damit Sendmail Ihre Konfiguration benutzen kann, muß daraus eine Datenbank generiert werden: $ makemap hash mailertable.db < mailertable Sie erhalten keine Ausgabe, aber die Datei mailertable.db sollte bei einem ls -l die aktuelle Uhrzeit aufweisen. 10.2.1.2. UUCP-Server konfigurieren Die Konfiguration des UUCP-Systems ist nahezu trivial, wenn Sie bereits ein laufendes System haben. 10.2.1.3. passwd In Ihrem UUCP-Verzeichnis legen Sie zunächst eine neue Datei passwd an. In dieser Datei werden die Login-Paßwörter im Klartext gespeichert: milhouse test123 Das Paßwort für die Site milhouse ist test234. Bitte beachten Sie Groß- und Kleinschreibung. Diese Paßwort tragen Sie später bei dem Client ein. 10.2.1.4. sys Sie müssen ein System in der Datei sys 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 sys ein: system milhouse time any Dies erlaubt dem Client milhouse 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: system milhouse time any protocol t port tcp Diese Konfiguration erlaubt das Pollen nur über den Port tcp mit dem t-Protokoll. 10.3. Newssystem konfigurieren 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 alt.binaries.* 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. 10.3.1. INN 2.x 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 newsfeeds an. Im Abschnitt ``INN - InterNetNews'' finden Sie eine genaue Beschreibung der Konfiguration. Zur automatischen Generierung der newsfeeds 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 milhouse tragen Sie also z.B. diese Zeile in newsfeeds ein: milhouse/milhouse.toppoint.de:de.alt.netdigest:kiel.*:Tf,Wnb,B4096/1024: Der Client bekommt alle Artikel aus den Gruppen de.alt.netdigest und kiel.*, außer denen, die von Ihm selbst (milhouse.toppoint.de) kommen. Damit der INN eine aktuelle newfeeds-Datei als Grundlage für seine Feeds nimmt, sollten Sie den Newsserver mit dem folgenden Befehl veranlassen, seine newsfeeds-Datei neu zu lesen: $ ctlinnd reload newsfeeds Mal wieder ein Update Die Ausgabe des Programms ist ein einfaches Ok. In der Manual Page zu ctlinnd finden Sie eine genaue Beschreibung der Optionen. In Ihren Logdateien des Newsservers finden Sie etwas, das ungefähr so aussieht: 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 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 news: 50 * * * * /usr/lib/news/bin/sendbatches milhouse 10.3.2. cnews 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. 10.4. Konfiguration testen Ob Ihr UUCP-Server richtig arbeitet, sehen Sie, wenn im UUCP-Log entsprechende Zeilen auftauchen. Der Newsserver hat Batches für die Site milhouse erstellt und diese an uux übergegeben: 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) Mails werden an den UUCP-Server übergeben: 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) Hier der pollende Client milhouse. Er bekommt eine Mail und liefert eine ab. Dazu wird ein Newspaket verschickt: 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) 11. FAQ - Fragen, die oft gestellt werden Hier könnten die Antworten auf Ihre Fragen stehen, wenn Sie mir eine EMail an hendrik@scholz.net schicken. 11.1. Alle News werden an den Provider zurückgeschickt (aus de.comm.uucp) 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 Sending rnews in der /var/spool/uucp/Log 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 View, Headers, All sehen. Besonders interessant ist die Path-Zeile, deshalb hier ein Beispiel: 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 Der Artikel kommt von news.nordwest.net und wurde über verschiedene News-Server zu tpki.toppoint.de transportiert. Perikles.toppoint.de ist mein UUCP-Rechner. Ich bekomme meine News per UUCP von tpki.toppoint.de. Notieren Sie den Namen des zweiten Rechners von links (hier: tpki.toppoint.de), da dies der Rechner ist, von dem Sie Ihre News bekommen. Editieren Sie nun als Benutzer news oder root die Datei /var/lib/news/newsfeeds (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. tpki/tpki.toppoint.de:*,!junk,!control:Tf,Wnb,B4096/1024: Mein UUCP-Partner heißt tpki und der News-Server der Toppoint heißt tpki.toppoint.de. Da der News-Server auch den Namen news.toppoint.de hat, wäre es möglich, daß die News anstatt tpki.toppoint.de news.toppoint.de enthalten. Da die Toppoint dem Individual Network angehört, wäre sogar news.in-kiel.de möglich. Es ergibt sich also eine ganze Liste von Newsservern, deren Artikel nicht zurückgeschickt werden sollen: tpki/tpki.toppoint.de, news.toppoint.de, news.in-kiel.de:\ *,!junk,!control:Tf,Wnb,B4096/1024: Die verschiedenen Newsserver werden, durch Kommas getrennt, aufgelistet. 11.2. News werden nicht gebatched - Was mache ich falsch? Es ist sehr ärgerlich, wenn man News schreibt, um später festzustellen, daß die News nicht verschickt wurden. Wenn in der Datei /var/spool/uucp/Log Zeilen à la uux tpki news (1998-10-20 15:00:03.23 5331) Queuing rnews (D.012E) oder uucico tpki news (1998-10-19 06:49:32.92 511) Sending rnews (D.011Z) (2296 bytes) auftauchen, dann ist alles ok. Wenn Sie keine einzige dieser Zeilen finden, sollten Sie die folgenden Sachen überprüfen: · INN: Wird /usr/lib/news/bin/send-uucp.pl rechner ausgeführt? · cnews: Wird /usr/lib/news/bin/batch/sendbatches ausgeführt? · INN: Steht Ihr UUCP-Partner in /var/lib/news/send-uucp.cf? · INN: Steht Ihr UUCP-Partner in /var/lib/news/newsfeeds? · cnews: Steht Ihr UUCP-Partner in /var/lib/news/sys? · Was meldet /var/log/news? 11.3. (aus de.comm.uucp) Bang-Addressierung im Log statt normalen EMail-Adressen Wenn in Ihrem UUCP-Log /var/spool/uucp/Log EMail-Adressen im Format domain.de!user statt user@domain.de angegeben werden und dies Sie stört, können Sie es leicht ändern. 11.3.1. Ursache Die Ursache ist genauso schnell erklärt, wie der Bugfix. Sie haben in Ihrer Sendmail-Konfiguration den Mailer uucp-uudom verwendet. Dieser erzeugt EMail-Adressen mit der Bang-Adressierung (die mit dem Ausrufezeichen :)). Der Mailer uucp-dom erzeugt die gewohnten EMail- Adressen mit dem Klammeraffen. 11.3.2. Fehlerbehebung Suchen Sie in Ihrer Sendmail-Konfigurationsdatei /etc/sendmail.cf nach der Zeile, in der Ihr Smarthost steht: # "Smart" relay host (may be null) DSuucp-uudom:tpki Dieser Eintrag steht normalerweise sehr weit oben und zeigt, daß der Mailer uucp-uudom 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 tpki durch der Name Ihres UUCP-Partners ersetzen müssen. Eine Beispielzeile für meine Konfiguration könnte so aussehen: # "Smart" relay host (may be null) DSuucp-dom:tpki Vergewissern Sie sich zusätzlich, daß der Mailer uucp-dom installiert ist. Hierzu durchsuchen Sie die /etc/sendmail.cf, bis Sie einen Abschnitt relativ weit am Ende finden, der ungefähr so aussieht: # 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) 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 /etc/sendmail.cf anhängen: # # 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) Nach einem Neustart Ihres Sendmails sollten Sie eine Testmail verschicken, um zu prüfen, ob es tatsächlich funktioniert. 11.4. News werden nicht angenommen (aus de.comm.uucp) 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 /var/log/messages oder in der /var/log/warn folgendes? 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 Wenn ja, dann ist Ihr Rechner tatsächlich nicht berechtigt, bei Ihnen Newsartikel abzuliefern. Sie müssen die Datei nnrp.access 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: stdin:Read Post:::* localhost:Read Post:::* 127.0.0.1:Read Post:::* Zusätzliche Zeilen, wie diese ermöglichen den Zugang aus dem LAN: 192.168.0:Read Post:::* 11.5. Anbieter von kostenlosen UUCP-Zugängen 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. 11.6. UUCP-Clients für Windows 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. 12. Nützliche Hilfsprogramme 12.1. Was ist heute schon passiert (Shellprogramm)? Ich habe mir ein kleines Programm geschrieben, daß mir anzeigt, was heute schon im Zusammenhang mit UUCP passiert ist. Das Programm durchsucht die Datei /var/spool/uucp/Log und »grept« alles raus, was heute passiert ist ;-). uucpstatus.sh: #!/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" Beispielausgabe: 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) 12.2. Was ist heute schon passiert (CGI-Skript für WWW-Server)? 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. uucpstatus.cgi: #!/bin/sh echo "Content-type: text/html" echo echo echo "UUCP-Statistik" echo "
"
       /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 "
" Die Ausgabe sieht aus wie im Shell, mit dem Unterschied, daß es eine HTML-Datei ist. 13. Beispieldateien 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. Kursiv geschriebene Wörter in der Erklärung müssen Sie in der jeweiligen Datei anpassen. 13.1. UUCP über TCP 13.1.1. call Hier müssen Sie den Systemnamen Ihres Providers tpki, Ihren Loginnamen perikles und Ihr Paßwort asecret eintragen. # tpki perikles asecret 13.1.2. config Der Nodename Ihres Rechners perikles muß angepaßt werden nodename perikles 13.1.3. port Diese Datei können Sie unverändert übernehmen. port uucp-tcp type TCP service 540 13.1.4. dial Diese Datei ist für TCP nicht erforderlich und enthält deshalb nur einen Kommentar ;-). # Hier ist keine Konfiguration für UUCP über TCP nötig 13.1.5. sys In dieser Datei dürfen Sie natürlich wieder den Systemnamen tpki durch den Systemnamen Ihres Providers ersetzen. Die address-Zeile sollte den FQDN (Full Qualified Domain Name) des Rechners von Ihrem Provider enthalten. 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 uucp-tcp protocol tig # Hier den Systemnamen im Format systemname.provider.de # eintragen address tpki.toppoint.de chat ogin: \L word: \P 13.2. UUCP per Modem 13.2.1. call Hier müssen Sie den Systemnamen Ihres Providers tpki, Ihren Loginnamen perikles und Ihr Paßwort asecret eintragen. # tpki perikles asecret 13.2.2. config Der Nodename Ihres Rechners perikles muß angepaßt werden nodename perikles 13.2.3. port Stellen Sie sicher, daß /dev/modem auf ihr Modem (z.B. /dev/ttyS0) zeigt oder tragen Sie Ihr Modem-Device ein. port modem device /dev/modem speed 38400 dialer modem 13.2.4. dial 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: 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 13.2.5. sys In dieser Datei dürfen Sie natürlich wieder den Systemnamen tpki durch den Systemnamen Ihres Providers ersetzen. Das phone 0431123123 ersetzen Sie bitte durch die Telefonnummer Ihres Providers. Falls Sie Ihr Modem an einer Nebenstellenanlage betreiben, tragen Sie hier ein 0,0431123123 ein. 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 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 13.3. UUCP per ISDN 13.3.1. call Hier müssen Sie den Systemnamen Ihres Providers tpki, Ihren Loginnamen perikles und Ihr Paßwort asecret eintragen. # tpki perikles asecret 13.3.2. config Der Nodename Ihres Rechners perikles muß angepaßt werden nodename perikles 13.3.3. port Stellen Sie sicher, daß /dev/modem auf ihr Modem (z.B. /dev/ttyS0) zeigt, oder tragen Sie Ihr Modem-Device ein. port ttyI0 device /dev/ttyI0 speed 115200 dialer ttyI0 13.3.4. dial Hier ersetzen Sie bitte die MSN 81239 durch Ihre MSN. 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 13.3.5. sys In dieser Datei dürfen Sie natürlich wieder den Systemnamen tpki durch den Systemnamen Ihres Providers ersetzen. Das phone 0431123123 ersetzen Sie bitte durch die Telefonnummer Ihres Providers. 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 14. Sicherheit 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 chmod und chown, um die Rechte anzupassen. 14.1. UUCP 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 uucp aus der Gruppe uucp lesbar sein, da Paßwörter enhalten sind. Die Dateien passwd und call enthalten Paßwörter. Hier eine sichere Konfiguration: /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 14.2. INN (1.x und 2.x) 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 nnrp.access, in der die Daten gespeichert sind, also entsprechend: /etc/news > ls -l nnrp.access -rw-r----- 1 news news 1293 Sep 17 10:41 nnrp.access 14.3. Sendmail Die Konfigurationsdateinen des Sendmail dürfen von allen gelesen werden, allerdings nur von root geändert werden: /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 15. UUCP über IP mit ssh sicherer machen 15.1. Sicherheitslücken 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. 15.2. Die Verbindung verschlüsseln 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 sshd laufen haben und Sie benötigen den SSH-Client ssh. So testen Sie, ob Ihr Provider den sshd laufen hat. uucp.netuse.de ersetzen Sie natürlich durch den Namen des UUCP-Servers Ihres Providers: $ 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. $ Geben Sie quit ein, um die Verbindung zu beenden oder benutzen Sie die Escape-Sequenz ^]. 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: $ which ssh /usr/local/bin/ssh $ Ist dies nicht der Fall, sollten Sie das SSH-Paket Ihrer Distribution installieren. RedHat-Pakete bekommen Sie z.B. hier: ftp.replay.com:/pub/crypto/ 15.3. SSH-Tunnel starten Der SSH-Tunnel kann z.B. so gestartet werden: $ ssh -f -C uucp.netuse.de 5400:uucp.netuse.de:540 sleep 120 Die Optionen haben folgende Bedeutung: -f Diese Option sorgt dafür, daß ssh sich nach der Authentisierung in den Hintergrund »forkt«. -C Kompression aktivieren (optional) uucp.netuse.de Adresse des UUCP-Servers Ihres Providers (z.B. uucp.provider.de) 5400:uucp.netuse.de:540 5400 ist ein lokaler Port, der fast beliebig gewählt werden kann. uucp.netuse.de ist wieder der Hostname des UUCP-Servers und 540 der Port, auf dem der Server lauscht. sleep 120 Dies ist ein Shell-Befehl, der dafür sorgt, daß der Tunnel 2 Minuten auf Daten wartet, bevor er wieder abgebaut wird. Der lokale Port 5400 ist bewußt über 1024 gewählt, damit auch ein Benutzer ohne root-Rechte den Tunnel aufbauen kann. 15.4. UUCP konfigurieren 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 port und sys werden bearbeitet: port port tcpssh type tcp service 5400 Es wird ein neuer Port tcpssh konfiguriert, der statt Port 540 den Port 5400 nutzt. sys system uucp port tcpssh protocol t address 127.0.0.1 Dieser Abschnitt sollte Ihnen schon bekannt vorkommen. Vielleicht haben Sie die UUCP-über-IP-Variante auch nur als Alternate konfiguriert. Die Verschlüsselung funktioniert trotzdem. Im Gegensatz zu Ihrer alten Konfiguration wird der Port und die address-Zeile angepasst. Den Port tcpssh haben wir bereits in der Datei port 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. 15.5. Verschlüsselung automatisieren Es ist nicht sehr benutzerfreundlich, vor jedem Pollen den SSH-Befehl eintippen und ein Paßwort angeben zu müssen. Ein Skript, welches uucico aufruft, kann also auch ohne Probleme noch einen zusätzlichen Befehl vertragen: #!/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 15.6. SSH ohne Paßwort Durch Eintragen des Public Keys 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: $ 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 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 ~/.ssh/ sollten Sie nun diese Dateien finden: $ 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 Zusätzliche Dateien wie z.B. authorized_keys oder known_hosts 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 identitiy.pub 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 uucp.provider.de und der Benutzername ist blafasel. Wechseln Sie ins richtige Verzeichnis wechseln: $ cd /.ssh Zum Kopieren des Public Keys nutzen wir den Befehl scp (Secure Copy) des SSH-Pakets: $ 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% 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: $ ssh blafasel@uucp.provider.de Last login: Tue May 30 17:44:47 2000 No mail $ uname -n uucp.provider.de Falls Sie den gleichen Benutzernamen auf Ihrem Client und dem Server nutzen, können Sie den SSH-Befehl zu ssh uucp.provider.de reduzieren. Die Meldungen nach dem Login können stark varieren, je nachdem welches Betriebssystem Ihr Provider einsetzt. Kontrollieren Sie mit dem Befehl $ uname -n ob Sie auf dem richtigen Rechner eingeloggt sind. 15.7. SSH-Tunnel beim Login per PPP aktivieren 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 /etc/ppp/ip-up eintragen und somit einen permanenten Tunnel aufstellen. Achten Sie darauf, daß der sleep 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.