Linux UUCP HOWTO

Hendrik Scholz (hendrik@scholz.net) v1.3.3, 28. Juli 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.

Inhaltsverzeichnis

1 Einleitung 5 1.1 Neue Versionen dieses Dokuments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Weiterführende Seiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.5 Dank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Was ist UUCP? 6 2.1 HDB-UUCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Taylor-UUCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Voraussetzungen 6 3.1 Voraussetzungen bei Ihrem Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Provider, die UUCP erlauben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 Provider, die kein UUCP erlauben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4 Voraussetzungen auf Ihrer Seite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Taylor-UUCP installieren 8 4.1 Haben Sie schon UUCP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.2 Paket runterladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.3 Paket kompilieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.4 Paket installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5 Pfade bei verschiedenen Distributionen 9 5.1 Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2 RedHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.3 SuSE (ab 6.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.4 SuSE (vor 6.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.5 Andere Distributionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6 UUCP konfigurieren 11

6.1 Namensgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.2 config - Name Ihres Rechners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.3 call - Paßwortdatei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.4 port - Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 6.5 dial - Modem-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 6.6 sys - die eigentliche Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

6.6.1 UUCP per Modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.6.2 UUCP per ISDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.6.3 UUCP über eine bestehende Verbindung . . . . . . . . . . . . . . . . . . . . . . . . . 14

7 UUCP starten 15

7.1 UUCP von Hand starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 7.1.1 Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 7.1.2 uucico aufrufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

7.2 UUCP automatisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

8 Mail und News konfigurieren 17

8.1 Sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.1.1 SuSE-Config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.1.2 /etc/mail/sendmail.cf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.1.3 Überprüfen, ob die Mails richtig verschickt werden . . . . . . . . . . . . . . . . . . . . 18

8.2 Welcher Newsserver ist am besten geeignet? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.3 INN - InterNetNews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 8.4 INN 1.72 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

8.4.1 send-uucp.cf - Batchparameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 8.4.2 newsfeeds - Wer bekommt was? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 8.4.3 INN neu starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 8.4.4 News zusammenpacken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

8.5 INN 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 8.5.1 Aktuellen INN selbst compilieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 8.5.2 inn.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 8.5.3 newsfeeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 8.5.4 nnrp.access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 8.5.5 expire.ctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

8.6 News-Dokumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

8.6.1 News automatisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 8.7 cnews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9 Fehlermeldungen 24

9.1 Wo finde ich die Fehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9.1.1 Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9.1.2 Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9.1.3 Stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 9.1.4 uustat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

9.2 ERROR: Chat script failed: Got "BUSY" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 9.3 ERROR: Chat script failed: "NO\sDIALTONE" . . . . . . . . . . . . . . . . . . . . . . . . . 26 9.4 ERROR: connect: Network is unreachable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 9.5 ERROR: Can’t disable hardware flow control: I/O error . . . . . . . . . . . . . . . . . . . . . 26 9.6 ERROR: Got termination signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 9.7 ERROR: Stale lock /var/lock/LCK..systemname held by process xxxx created 1998-xx-xx

xx:xx:xx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

10 Tips & Tricks 26 10.1 "alternate" - Irgendwie muß es doch klappen. . . . . . . . . . . . . . . . . . . . . . . . . . . 27 10.2 Maximale Größe für EMails begrenzen (sendmail) . . . . . . . . . . . . . . . . . . . . . . . . 28 10.3 Mail und News schon während des Pollens einsortieren . . . . . . . . . . . . . . . . . . . . . . 28

11 UUCP-Server 28 11.1 UUCP konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 11.2 Mailsystem konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

11.2.1 Sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 11.3 Newssystem konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

11.3.1 INN 2.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 11.3.2 cnews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

11.4 Konfiguration testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

12 FAQ - Fragen, die oft gestellt werden 31 12.1 Alle News werden an den Provider zurückgeschickt (aus de.comm.uucp) . . . . . . . . . . . . 31 12.2 News werden nicht gebatched - Was mache ich falsch? . . . . . . . . . . . . . . . . . . . . . . 32 12.3 Bang-Addressierung im Log statt normalen EMail-Adressen (aus de.comm.uucp) . . . . . . . 32

12.3.1 Ursache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 12.3.2 Fehlerbehebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

12.4 News werden nicht angenommen (aus de.comm.uucp) . . . . . . . . . . . . . . . . . . . . . . 34 12.5 Anbieter von kostenlosen UUCP-Zugängen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 12.6 UUCP-Clients für Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 13 Nützliche Hilfsprogramme 35

13.1 Was ist heute schon passiert (Shellprogramm)? . . . . . . . . . . . . . . . . . . . . . . . . . . 35 13.2 Was ist heute schon passiert (CGI-Skript für WWW-Server)? . . . . . . . . . . . . . . . . . . 36

14 Beispieldateien 36

14.1 UUCP über TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 14.1.1 call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 14.1.2 config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 14.1.3 port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 14.1.4 dial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 14.1.5 sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

14.2 UUCP per Modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 14.2.1 call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 14.2.2 config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 14.2.3 port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 14.2.4 dial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 14.2.5 sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

14.3 UUCP per ISDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 14.3.1 call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 14.3.2 config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 14.3.3 port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 14.3.4 dial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 14.3.5 sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

15 Sicherheit 40 15.1 UUCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 15.2 INN (1.x und 2.x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 15.3 Sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 15.4 Sicherheitsprobleme bei SSH-Tunneln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

16 UUCP über IP mit ssh sicherer machen 42 16.1 Sicherheitslücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 16.2 Die Verbindung verschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 16.3 SSH-Tunnel starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 16.4 UUCP konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 16.5 Verschlüsselung automatisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 16.6 SSH ohne Paßwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 16.7 SSH-Tunnel beim Login per PPP aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

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. Bei Redhat und SuSE können Sie direkt mit dem Programm rpm kontrollieren, ob das UUCP-Paket installiert ist:

     $ rpm -qa | grep -i uucp
     uucp-1.0.6-1

So oder ähnlich sollte die Ausgabe aussehen. Wenn die Ausgabe leer ist, dann ist das Paket nicht installiert. Debian erleichtert die Installation sehr:

     $ dpkg -l | grep uucp
     ii  uucp           1.06.1-11      Unix to Unix Copy Program

Wie man sieht, ist das Paket bereits installiert. Falls es nicht installiert ist, können Sie es gleich installieren:

     $ apt-get install uucp

Nach kurzer Zeit sollte der Download fertig und das Paket konfiguriert sein.

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 Pfade bei verschiedenen Distributionen

Obwohl es einige Standards bei Unicen gibt, befinden sich die Dateien nicht überall in den gleichen Verzeichnissen.

5.1 Debian

Konfigurationsdateien: /etc/uucp/

Binaries: /usr/sbin/
Logdateien: /var/log/uucp
rmail: /usr/sbin/
rnews: /usr/bin/

Bei Debian können Sie mit dem folgenden Befehl sehen, wo die angesprochenen Dateien und die Dokumentation liegen.

     $ dpkg -L uucp

5.2 RedHat

Konfigurationsdateien: /etc/uucp/

Binaries: /usr/sbin/
Logdateien: /var/spool/uucp/
rmail: /usr/bin/
rnews: /usr/bin/

Bei RedHat können Sie mit dem folgenden Befehl sehen, wo die angesprochenen Dateien und die Dokumentation liegen.

     $ rpm -ql ` rpm -qa | grep ˆ uucp`

5.3 SuSE (ab 6.0)

Konfigurationsdateien: /etc/uucp/

Binaries: /usr/sbin/
Logdateien: /var/spool/uucp/
rmail: /usr/bin/
rnews: /usr/bin/

Bei SuSE können Sie mit dem folgenden Befehl sehen, wo die angesprochenen Dateien und die Dokumentation liegen.

     $ rpm -ql ` rpm -qa | grep ˆ uucp`

5.4 SuSE (vor 6.0)

Konfigurationsdateien: /var/lib/uucp/taylor_config/
Binaries: /usr/sbin/
Logdateien: /var/spool/uucp/
rmail: /usr/bin/
rnews: /usr/bin/

Bei SuSE können Sie mit dem folgenden Befehl sehen, wo die angesprochenen Dateien und die Dokumentation liegen.

     $ rpm -ql ` rpm -qa | grep ˆ uucp`

5.5 Andere Distributionen

Alte Slackware-Distributionen hatten Ihre Konfigurationsdateien, wahrscheinlich als Vorbild für SuSE, in /var/lib/uucp/taylor_config. Bei Delix 5.4 und FreeBSD liegen die Dateien dort, wo sie hingehören:

/etc/uucp.

Falls Sie die Dateien nicht finden, sollten Sie mit dem Shell-Befehlen find und locate die Dateien suchen.

Bei einem selbstcompilieren UUCP-Paket befinden sich die Konfigurationsdateien normalerweise in

/usr/conf/uucp.

6 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.

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.

Sie haben doch hoffentlich das vorherige Kaptiel gelesen und wissen nun, wo die Dateien liegen.

     $ 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

6.1 Namensgebung

Um später Konflikte zu vermeiden, geben wir den Rechnern eindeutige Namen. tpki ist der UUCP-Server meines Providers. perikles ist mein UUCP-Client. Das Paßwort in den Beispielen ist asecret. 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.

6.2 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

6.3 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.

     # <system> <login> <passwd>
      tpki perikles asecret

6.4 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.

6.5 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

6.6 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
     # ggf. Pfade anpassen !
     commands rmail rnews
     command-path /usr/lib/news/bin/ /usr/bin /usr/sbin
     # Name des Systems, das Sie anrufen
     system tpki

6.6.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

6. UUCP konfigurieren 14

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

6.6.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

6.6.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

7. UUCP starten 15

# 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:
# <IP-Adresse> <Rechner.provider.de> <rechner>
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

7 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.

7.1 UUCP von Hand starten

UUCP wird mit dem Befehl uucico gestartet. uucico und die anderen Programme befinden sich in

/usr/lib/uucp/.

7.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.

7.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

7.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.

8 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.

8.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

8.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.

8.1.2 /etc/mail/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/mail/sendmail.cf-Datei anpassen:

# "Smart" relay host
# hier muß der Rechnernamen auf der Seite Ihres
# Providers eintragen werden (hier: tpki)
DSuucp-dom:tpki

Manche Distributionen legen die sendmail.cf in /etc/ ab.

8.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 9.1.2.

8.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.

8.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.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).

8.4 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.

8.4.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:
     # sitename<Space>compressor<Space>maxsize<Space>batchtime
     tpki compress 1048576 1-24

8.4.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 <system> und <news.provider.de> und Sie
     # haben einen Standardfeed :-)
     # system/news.provider.de:*,!junk,!control\
     #    :Tf,Wnb,B4096/1024

8. Mail und News konfigurieren 20

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.

8.4.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

8.4.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)

8.5 INN 2.2

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 /etc/news oder (bei selbstcompilierten Versionen) in /usr/local/news/etc finden.

8.5.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

8.5.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

8.5.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.

8.5.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.

8.5.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.

8.6 News-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 (SuSE) oder /usr/doc/inn2 (Debian) riskieren.

Auf

     http://www.isc.org/inn.html

finden Sie viele Verweise zu Webseiten rund um INN. Auf

     http://home.snafu.de/laura/urls.html

verweise ich extra, weil es eine sehr gute Sammlung ist.

8.6.1 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.

8.7 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

9 Fehlermeldungen

9.1 Wo finde ich die Fehlermeldungen

Alle UUCP-Programme schreiben ihre Log-Dateien in das Verzeichnis /var/log/uucp oder

/var/spool/uucp/.

9.1.1 Debug

Die Datei 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.

9.1.2 Log

Die Datei 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.

9.1.3 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.

9.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.

9.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.

9.3 ERROR: Chat script failed: "NO\sDIALTONE"

Sind alle Geräte (PC, Modem/ISDN-Karte, Telefondose) richtig miteinander verbunden?

9.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.

9.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

9.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.

9.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

10 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.

10. Tips & Tricks 27

10.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 /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

10.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.

10.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.

11 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.

11.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.

11.2 Mailsystem konfigurieren

11.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.

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.

UUCP-Server konfigurieren Die Konfiguration des UUCP-Systems ist nahezu trivial, wenn Sie bereits ein laufendes System haben.

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.

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.

11.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.

11.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 8.3 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

11.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.

11.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)

12 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.

12.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.

12.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?

12.3 Bang-Addressierung im Log statt normalen EMail-Adressen (aus de.comm.uucp)

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.

12.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.

12.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  #####

12. FAQ - Fragen, die oft gestellt werden 34

#
#  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.

12.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:::*

13. Nützliche Hilfsprogramme 35

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:::*

12.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.

12.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.

13 Nützliche Hilfsprogramme

13.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)

14. Beispieldateien 36

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)

13.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 "<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>"

Die Ausgabe sieht aus wie im Shell, mit dem Unterschied, daß es eine HTML-Datei ist.

14 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.

14.1 UUCP über TCP

14.1.1 call

Hier müssen Sie den Systemnamen Ihres Providers tpki, Ihren Loginnamen perikles und Ihr Paßwort asecret eintragen.

     #<system> <login> <passwd>
      tpki perikles asecret

14.1.2 config

Der Nodename Ihres Rechners perikles muß angepaßt werden

     nodename perikles

14.1.3 port

Diese Datei können Sie unverändert übernehmen.

     port uucp-tcp
     type TCP
     service 540

14.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

14.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 /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

14.2 UUCP per Modem

14.2.1 call

Hier müssen Sie den Systemnamen Ihres Providers tpki, Ihren Loginnamen perikles und Ihr Paßwort asecret eintragen.

     #<system> <login> <passwd>
      tpki perikles asecret

14.2.2 config

Der Nodename Ihres Rechners perikles muß angepaßt werden

     nodename perikles

14.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

14.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

14.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 /usr/sbin
     system tpki
     #

14. Beispieldateien 39

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

14.3 UUCP per ISDN

14.3.1 call

Hier müssen Sie den Systemnamen Ihres Providers tpki, Ihren Loginnamen perikles und Ihr Paßwort asecret eintragen.

#<system> <login> <passwd>
 tpki perikles asecret

14.3.2 config

Der Nodename Ihres Rechners perikles muß angepaßt werden

nodename perikles

14.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

14.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

15. Sicherheit 40

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

14.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

15 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.

15.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

15.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

15.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.4 Sicherheitsprobleme bei SSH-Tunneln

SSH-Tunnel werden genutzt, um UUCP über IP sicherer zu machen. Damit es keine Probleme bei der Paßwortabfrage gibt, wird ein Public Key erzeugt. Mehr dazu finden Sie im anschliessenden Kapitel. Dieser Public Key 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.

16 UUCP über IP mit ssh sicherer machen

16.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.

16.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/

16.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.

16.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

16. UUCP über IP mit ssh sicherer machen 44

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.

16.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

16.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.

16.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.