Open Source im professionellen Einsatz

Aus dem Nähkästchen geplaudert, Teil 2: Finger-Server einrichten und nutzen

Finger-Zeig

Mit dem Finger-Service informieren Anwender über sich selbst, ihre Aktivitäten und ihre Termine, ohne eine komplexe Groupware-Applikation zu bedienen. Auch das Protokoll ist überraschend einfach. Somit eignet sich Finger hervorragend als Einstieg in die Welt der Serveradministration.

Manchmal sind gleitende Arbeitszeiten lästig: Sie bringen zahlreiche Konversationen mit dem Anrufbeantworter mit sich, wenn der Kollege noch beim Frühstück sitzt oder schon nach Hause gegangen ist. Viele Angestellte hängen ihren Arbeitsplan deshalb an die Bürotür. Dumm nur, wenn dies am anderen Ende des Gebäudes ist.

Spätestens dann, wenn man für eine Besprechung die Terminpläne mehrerer Leute koordinieren muss, hat Groupware ihre Daseinsberechtigung erworben. Entsprechende Produkte gibt es nicht erst seit Outlook & Co., das Finger-Protokoll wurde schon im Jahre 1977 erstmalig beschrieben[1]. Moderne Groupware-Applikationen bieten zwar wesentlich mehr, doch in vielen Fällen genügt Finger vollkommen und verrät auch viel über die ureigene Unix-Philosophie.

So funktioniert Finger

Das Finger-Konzept ist wunderbar einfach, beinahe primitiv - und damit ein perfektes Beispiel für einen klassischen Client-Server-Dienst. Die Benutzer des Systems legen Informationen über sich selbst in einfachen Textdateien ab. Ein passender Daemon nimmt Anfragen von außen entgegen und gibt Auskunft zur jeweiligen Person.

Wer Informationen mit Hilfe dieses Diensten publizieren möchte, erstellt in seinem Heimatverzeichnis eine Datei ».plan« oder ».project«. Wesentlicher Unterschied ist, dass ».project« traditionell nur eine einzige Zeile enthalten darf, während der User in ».plan« gerne etwas geschwätzig sein darf. Diese Datei ist der richtige Ort für Terminpläne oder einen öffentlichen PGP-Schlüssel. Der Finger-Daemon ergänzt die Informationen um Systemdaten wie die benutzte Shell, den letzten Login oder auch Informationen über noch ungelesene E-Mail. Listing 1 zeigt das Ergebnis der Beispielabfrage »finger Selig@localhost« auf einem Host des Autors.

Den Benutzernamen schlägt der Daemon in »/etc/passwd« nach. Von dort kommen auch der ausgeschriebene Name, ebenso die Zimmer- und die Telefonnummer. Diese drei liegen im so genannten GECOS-Feld. Dieses Akronym steht für General Electric Comprehensive Operating System, ein um 1970 verbreitetes Betriebssystem. Aus heutiger Sicht kaum noch bedeutsam, aber dieses Feld mit menschlichen Daten wurde aus GECOS in Unix übernommen und trägt immer noch den Namen seiner Eltern. Wer diese Informationen ändern will, sollte sie (selbst als Administrator) nicht direkt in »/etc/passwd« hineinschreiben, sondern den Befehl »chfn« (Change Finger) benutzen.

Endbenutzer dürfen das Fummeln nicht nur fördern und mit freundlichen Daten locken, sondern umgekehrt auch unterbinden. Wer eine Datei ».nofinger« im Heimatverzeichnis hat, dessen Existenz leugnet der unter Linux übliche BSD-Daemon, und zwar ganz ohne schlechtes Gewissen. Die Finger-Aktivitäten unterbindet auch, wer die Zugriffsrechte falsch setzt: Jeder muss ».plan« und ».project« lesen können; für das Heimatverzeichnis erwartet der Daemon mindestens Lookup-Rechte (»chmod 711 ~« und »chmod 644 ~/.plan«).

Sicherheit des Finger-Dienstes

Kapitel 3 des Finger-RFC 1288 [2] geht ungewöhnlich ausführlich und deutlich auf Sicherheitsfragen ein - wenn man berücksichtigt, dass das Dokument schon über zehn Jahre alt ist (Dezember 1991). Einige interessante Abschnitte lassen sich sehr gut auf moderne Vernetzungstechniken wie dynamische Webseiten oder Webservices übertragen.

Manche Finger-Server rufen bei einer Anfrage externe Programme auf, die vom abgefragten Benutzer konfiguriert werden. Dazu sagt das RFC: "Dieses Feature zu implementieren bringt möglicherweise mehr Ärger mit sich, als es wert ist, denn es gibt in Betriebssystemen immer Fehler, die über diese Art Mechanismus ausgenutzt werden könnten." Natürlich ignorieren viele Entwickler und Admins diese Warnung auch heute noch, behalten ihren Apache mit Mod_perl und Mod_php und versprechen feierlich, immer die korrekten Sicherheitspatches einzuspielen.

Zu viel des Guten

Finger liefert einem Angreifer allerdings auch bei fehlerfreier Funktion aller beteiligten Komponenten eine Menge interessanter Informationen über das Netzwerk, die dort angebundenen Computer und deren Funktion sowie über die soziale Struktur einer Firma. Wer arbeitet wann, woran, mit wem? Welcher Rechner hat keine Nutzer-Accounts?

Server sind meist gut gesichert. Wenn es auf einer Maschine aber nur so von Usern wimmelt, steigen die Chancen auf einen erfolgreichen Angriff. Tummelplätze für Massen-Shells haben oft ganz unerwartete Sicherheitslücken, ihre User dürfen aber in der Regel freizügig auf das Firmennetz zugreifen.

Finger zeigt auch, wann Systemadministratoren schlafen oder im Urlaub sind und auf Attacken nicht reagieren können. Manchmal präsentiert es sogar den Füllstand der vernetzten Kaffeekanne oder des Cola- und Süßigkeitenautomaten. Es erlaubt damit Rückschlüsse auf die Arbeitsmoral der Belegschaft.

All diese Informationen sind in der Regel auch anderweitig verfügbar. Es kostet den Eindringling aber mehr Arbeit, sie zusammenzutragen. Das ist der offizielle Grund dafür, dass die meisten Sites heute auf den Einsatz von Finger verzichten. Freilich spielt auch der weltweite Einsatz von Webservern eine durchaus relevante Rolle - oft mit größeren Problemen als der überschaubare Finger.

Der Daemon erwacht

Der Finger-Server ist zwar noch in den meisten Distributionen enthalten, aber er gehört üblicherweise nicht zum Standard-Installationsumfang. Ergänzen Sie also die Pakete »finger« und auch »finger-server«. Nötigenfalls liefert eine Suche nach dem Paket »bsd-finger« zügig den Quelltext zu Tage. Die Installation eines Servers aktiviert diesen normalerweise nicht automatisch. Grundsätzlich existieren unter Linux zwei verschiedene Arten Server: Die eine läuft ständig als eigener Prozess, sie ist damit bei ankommenden Verbindungen sofort reaktionsbereit und kann die Ressourcen selbst einteilen.

Finger gehört zur anderen Kategorie: Er wird über den zentralen Verteiler »inetd« (den so genannten Internet-Superserver) oder »xinetd« bei Bedarf gestartet, sobald tatsächlich eine entsprechende Anfrage vorliegt. Auch diese Methode hat Vorteile: Server lassen sich mit ihr einfacher programmieren, sind stabiler (weil für jede Anfrage neu gestartet) und belegen im Ruhefall keine Ressourcen.

Ob Ihre Distribution das klassische »inetd« oder das modernere »xinetd« verwendet, erkennen Sie an den Konfigurationsdateien: »/etc/inetd.conf« oder »/etc/xinetd.d/*«. Der Eintrag für Finger in »/etc/inetd.conf« (Listing 2) existiert oft schon. Am Anfang der Zeile steht jedoch ein Hash-Zeichen »#«, es deaktiviert den Finger-Dienst. Löschen Sie es, um den Server zu aktivieren.

Der Inhalt von »inetd.conf« ist als Tabelle zu lesen. Jede Zeile steht für einen bestimmten Service, der über den Internet-Superserver angeboten wird. Die einzelnen Spalten beschreiben den Dienst genauer.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook