Im Katalog suchen

Linux - Wegweiser für Netzwerker

Online-Version

Copyright © 2001 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser für Netzwerker oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel



Das Einwählen in Ihr System einrichten

Wenn Sie Ihre Site so einrichten wollen, daß sich jemand einwählen kann, müssen Sie Logins auf Ihrem seriellen Port erlauben und einige Systemdateien so anpassen, daß sie UUCP-Accounts enthalten. Wie dies genau funktioniert, ist Thema dieses Abschnitts.

UUCP-Accounts einrichten

Als nächstes müssen Sie Benutzer-Accounts einrichten, über die sich andere Sites in Ihr System einloggen und eine UUCP-Verbindung aufbauen können. Üblicherweise vergeben Sie für jedes System einen eigenen Login-Namen. Wenn Sie einen Account für das System pablo einrichten, könnten Sie ihm beispielsweise den Benutzernamen Upablo geben. Für die Wahl der Benutzernamen gibt es keine besonderen Richtlinien; es ist jedoch empfehlenswert, Namen auszuwählen, die dem Namen des Remote-Hosts ähneln.

Bei Systemen, die sich über eine serielle Schnittstelle einwählen, müssen Sie diesen Account üblicherweise in die Paßwortdatei des Systems (/etc/passwd) aufnehmen. Sie sind sicher nicht schlecht beraten, wenn Sie alle UUCP-Logins in einer speziellen Gruppe wie uuguest aufnehmen. Das Home-Verzeichnis des Accounts sollte dabei auf das öffentliche Spool-Verzeichnis /var/spool/uucppublic zeigen. Als Login-Shell muß uucico verwendet werden.

Um UUCP-Systeme zu bedienen, die sich über TCP mit Ihrem Server verbinden, müssen Sie inetd so einrichten, daß es die auf dem uucp-Port eingehenden Verbindungen verwaltet. Dies geschieht durch Einfügen der folgenden Zeile in Ihre /etc/inetd.conf:1

uucp   stream  tcp   nowait  root  /usr/sbin/tcpd  /usr/lib/uucp/uucico -l

Durch die Option –l führt uucico seine eigene Login-Autorisierung durch. Genau wie beim normalen login-Programm wird auch hier nach dem Login und dem Paßwort gefragt, zur Verifizierung wird aber eine private Paßwortdatei anstelle von /etc/passwd benutzt. Diese private Paßwortdatei heißt /etc/uucp/passwd und enthält Paare von Login-Namen und Paßwörtern:

Upablo  IslaNegra 
Ulorca  co'rdoba

Diese Datei muß uucp gehören und die Rechte 600 besitzen.

Macht diese Datei auf Sie einen so guten Eindruck,daß Sie sie auch für Ihre normalen seriellen Logins verwenden wollen? Nun, in manchen Fällen ist das tatsächlich machbar. Was Sie dafür benötigen, ist ein getty-Programm, das Sie dazu bringen, für Ihre UUCP-Benutzer uucico anstelle des normalen /bin/login zu starten.2 Der Aufruf von uucico sähe dann so aus:

/usr/lib/uucp/uucico -l -u user
Die Option –u weist es an, den angegebenen Benutzernamen zu verwenden, anstatt danach zu fragen.3

Um Ihre UUCP-Benutzer vor Anrufern zu schützen, die einen falschen Systemnamen angeben und sich deren gesamte Mail ansehen, sollten Sie called-login-Befehle in jeden Systemeintrag in Ihrer sys-Datei aufnehmen. Dies ist im nächsten Abschnitt beschrieben.

Wie Sie sich vor Betrügern schützen

Ein Hauptproblem von UUCP besteht darin, daß das anrufende System bei der Angabe seines Namens lügen kann. Es gibt seinen Namen zwar nach dem Login bekannt, aber der Server hat keine Möglichkeit, diesen zu überprüfen. Der Eindringling könnte sich also unter seinem eigenen UUCP-Account einloggen und anschließend vorgaukeln, jemand anders zu sein, um sich die Mail der anderen Site anzueignen. Dies ist besonders folgenreich, wenn Sie Logins via Anonymous UUCP anbieten, wo die Paßwörter öffentlich gemacht werden.

Gegen diese Art von Eindringlingen müssen Sie sich schützen. Das Mittel gegen diese Seuche besteht darin, von jedem System einen bestimmten Login-Namen zu erwarten. Dieser wird durch den Befehl called-login in sys spezifiziert. Ein solcher Systemeintrag könnte etwa wie folgt aussehen:

system          pablo 
... usual options ... 
called-login    Upablo

Das Ergebnis ist, daß jedesmal, wenn ein System sich einloggt und vorgibt, pablo zu sein, uucico prüft, ob es sich unter Upablo eingeloggt hat. Wenn nicht, wird das anrufende System abgewiesen und die Leitung unterbrochen. Sie sollten es sich zur Gewohnheit machen, den Befehl called-login bei jedem System zu verwenden, das Sie in Ihre sys-Datei aufnehmen. Es ist wichtig, dies für alle Systeme in Ihrer sys-Datei zu tun, gleichgültig, ob sie Ihre Site jemals anwählen oder nicht. Bei Sites, die niemals bei Ihnen anrufen, sollten Sie called-login auf irgendeinen Phantasienamen setzen, zum Beispiel neverlogsin.

Seien Sie “paranoid” — Rufsequenz-Prüfungen (Call Sequence Checks)

Eine andere Möglichkeit, Eindringlinge zu erkennen und abzuwehren, bieten sogenannte Rufsequenz-Prüfungen (Call Sequence Checks). Diese helfen beim Schutz vor Eindringlingen, denen es irgendwie gelungen ist, an das Paßwort zu gelangen, mit dem Sie sich in Ihr UUCP-System einloggen.

Bei Rufsequenz-Prüfungen speichern beide Maschinen die Anzahl der bislang aufgebauten Verbindungen. Diese Zahl wird bei jeder neuen Verbindung erhöht. Nach dem Login sendet der Anrufer seine Rufsequenz-Nummer, die vom System mit der eigenen Zahl verglichen wird. Stimmen die Zahlen nicht überein, wird die Verbindung unterbrochen. Wird die Zahl zu Beginn zufällig gewählt, haben es Angreifer schwer, die richtige Nummer zu erraten.

Aber Rufsequenz-Prüfungen tun noch mehr für Sie als das: Selbst wenn eine besonders clevere Person Ihre Rufsequenz-Nummer und Ihr Paßwort ermittelt haben sollte, finden Sie das heraus. Dringt ein Angreifer in Ihren UUCP-Account ein und stiehlt Ihnen Ihre Mail, wird die Rufsequenz-Nummer um eins erhöht. Wenn Sie beim nächsten Mal versuchen, sich einzuloggen, wird das entfernte uucico Sie ablehnen, weil die Nummern nicht mehr übereinstimmen!

Wenn Sie die Rufsequenz-Prüfungen aktiviert haben, sollten Sie Ihre Logdateien regelmäßig auf Fehlermeldungen überprüfen, die auf mögliche Angriffe hinweisen. Weist Ihr System die Rufsequenz-Nummer ab, die ihm von einem System angeboten wurde, schreibt uucico eine Nachricht wie “Out of sequence call rejected” in die Logdatei. Wurde Ihr System abgewiesen, weil die Sequenznummer nicht übereinstimmt, finden Sie eine Nachricht wie “Handshake failed (RBADSEQ)” in Ihrer Logdatei vor.

Um die Rufsequenz-Prüfung zu aktivieren, müssen Sie den folgenden Befehl zu Ihrem Systemeintrag hinzufügen:

# Rufsequenz-Prüfung aktivieren 
sequence        true

Außerdem müssen Sie eine Datei erzeugen, die die Sequenznummer selbst enthält. Taylor UUCP bewahrt diese Zahl in einer Datei namens .Sequence im Spool-Verzeichnis des anderen Rechners auf. Sie muß uucp gehören und auf Zugriffsrecht 600 eingestellt sein (d.h., sie kann nur von uucp gelesen und geschrieben werden). Am besten initialisieren Sie diese Datei mit einer willkürlichen Zahl, auf die sich beide Seiten verständigt haben. Eine einfache Methode, diese Datei zu erzeugen, ist:

# cd /var/spool/uucp/pablo 
# echo 94316 > .Sequence 
# chmod 600 .Sequence 
# chown uucp.uucp .Sequence

Natürlich muß auch die Gegenseite die Rufsequenz-Prüfung aktiviert haben und mit genau derselben Sequenznummer beginnen wie Sie.

Anonymous UUCP

Wenn Sie den Zugriff auf Ihr System über Anonymous UUCP ermöglichen wollen, müssen Sie zuerst, wie oben beschrieben, einen speziellen Account dafür einrichten. In der Praxis wird für diesen anonymen Account häufig uucp als Login-Name und Paßwort verwendet.

Zusätzlich müssen Sie einige Sicherheitsoptionen für unbekannte Systeme einrichten. So werden Sie üblicherweise verhindern wollen, daß diese Systeme irgendwelche Be­fehle auf Ihrem Rechner ausführen können. Nun können Sie diese Parameter aber nicht in der sys-Datei eintragen, weil der system-Eintrag einen Systemnamen erwartet, den Sie aber nicht haben. Taylor UUCP löst dieses Dilemma mit dem Befehl unknown. Er kann in der config-Datei verwendet werden, um Befehle anzugeben, die üblicherweise in einem Systemeintrag vorkommen können:

unknown         remote-receive ~/incoming 
unknown         remote-send ~/pub 
unknown         max-remote-debug none 
unknown         command-path /usr/lib/uucp/anon-bin 
unknown         commands rmail

Dies schränkt unbekannte Systeme darauf ein, Dateien unter dem Verzeichnis pub herunterzuladen und ins Verzeichnis incoming unter /var/spool/uucppublic zu kopieren. Die nächste Zeile stellt sicher, daß uucico alle Anforderungen ignoriert, das lokale Debugging zu aktivieren. Die letzten beiden Zeilen erlauben unbekannten Systemen die Ausführung von rmail, wobei der von uucico verwendete Suchpfad allerdings auf ein privates Verzeichnis namens anon-bin beschränkt ist. Auf diese Weise können Sie ein spezielles rmail anbieten, das beispielsweise alle Mail zur Prüfung an den Superuser weiterleitet. So können anonyme Benutzer den Verwalter des Systems erreichen, ohne irgendwelche Mails an andere Sites verschicken zu können.

Um Anonymous UUCP zu aktivieren, müssen Sie mindestens eine unknown-Zeile in config aufnehmen. Andernfalls lehnt uucico alle unbekannten Systeme ab.




1.

Beachten Sie, daß tcpd normalerweise auf Zugriffsrecht 700 eingestellt ist, so daß Sie es als root, nicht als uucp aufrufen müssen. tcpd wird in Kapitel 12 Wichtige Netzwerk-Features, näher beschrieben.

2.

Gert Doerings mgetty ist so ein Biest. Es läuft auf einer Vielzahl von Plattformen, darunter SCO Unix, AIX, SunOS, HP-UX und Linux.

3.

Diese Option ist in Version 1.04 nicht verfügbar.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel


Weitere Informationen zum Linux - Wegweiser für Netzwerker

Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center


O'Reilly Home|O'Reilly-Partnerbuchhandlungen|Bestellinformationen
Kontakt|Über O'Reilly|Datenschutz

© 2001, O'Reilly Verlag