![]() |
|
Linux - Wegweiser für NetzwerkerOnline-VersionCopyright © 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. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
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.
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
Die Option –u weist es an, den angegebenen Benutzernamen zu verwenden, anstatt danach zu fragen.3
user
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.
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.
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.
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 Befehle 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. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser für Netzwerker
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2001, O'Reilly Verlag