[[Vorlage(Getestet, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] [:inetd:Internet-Superserver inetd] }}} [[Inhaltsverzeichnis()]] Ein Finger-Server stellt über das Finger-Protokoll ([https://datatracker.ietf.org/doc/rfc1196/ RFC1196]) Informationen über auf einem System vorhandene Benutzer über das Netzwerk zur Verfügung. Informationen hierzu bietet der Artikel [:Finger:]. {{{#!vorlage Warnung Die über das Finger-Protokoll zur Verfügung gestellten Informationen gelten als personenbezogene Daten. Durch die Inbetriebnahme eines Finger-Servers muss von den betroffenen Personen die Zustimmung zur Veröffentlichung eingeholt werden, da diese je nach Konfiguration weltweit für jeden abrufbar sind. }}} {{{#!vorlage Warnung Die Informationen, die über das Finger-Protokoll bekannt gemacht werden, können sehr gut für Social-Engineering-Angriffe genutzt werden. Es ist daher ratsam, den Finger-Server nur für bestimmte IP-Adressbereiche zugänglich zu machen. Dies kann entweder über eine Firewall wie [:iptables:] oder über [:inetd#TCP-Wrapper:tcpd] im Internet-Superserver erfolgen. Das Finger-Protokoll arbeitet zudem ohne Verschlüsselung, ein Mithören und ein Fälschen ist möglich. }}} = Installation = == fingerd == fingerd benötigt einen Internet-Superserver, z.B. [:inetd:]. Anschließend kann man fingerd über die offiziellen Paketquellen installieren. {{{#!vorlage Paketinstallation fingerd, universe }}} Ist die Datei '''/etc/inetd.conf''' bereits vorhanden, so wird ein passender Eintrag für IPv4 gleich angelegt. Nutzt man einen anderen Internet-Superserver (z.B. [:rlinetd:] oder [:xinetd:], so ist dieser manuell zu konfigurieren, er wird nicht automatisch eingerichtet. Folgende Zeile wird angelegt {{{ finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd }}} Damit wird fingerd über tcpd gestartet, lauscht jedoch nur auf IPv4. Für IPv6 muss der Eintrag erweitert werden. Bei '''inetutils-inetd''' muss ''tcp'' durch ''tcp6'' ersetzt werden. {{{ finger stream tcp6 nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd }}} Bei '''openbsd-inetd''' muss diese Zeile ''zusätzlich'' eingetragen werden. Anschließend muss inetd neugestartet werden. === Optionen === fingerd bietet einige Optionen, mit denen das verhalten angepasst werden kann. Diese müssen hinter dem Befehl im Internet-Superserver eingetragen werden. Hat man mehrere Zeilen müssen diese in allen eingetragen werden. Beispiel: {{{ finger stream tcp6 nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd -w }}} {{{#!vorlage Tabelle Option Verhalten +++ -w Gibt eine Willkommensnachricht (Laufzeit und Betriebssystem) aus +++ -u Nicht die Liste angemeldeter Benutzer übergeben (ohne Angabe eines Benutzers) +++ -l Anfragen mitloggen in Syslog +++ -f Weiterleiten von Anfragen an anderen Finger-Server aktivieren +++ -t 25 Zeit in Sekunden bis Timeout festlegen }}} == cfingerd == cfingerd (configurable finger daemon) ist ein konfigurierbarer Finger-Server. Er beinhaltet unter anderem Fake-Benutzer für die Ausgabe spezieller Informationen. Ist noch kein Internet-Superserver installiert, so wird einer installiert und für IPv4 konfiguriert. Um diesen für IPv6 einzurichten kann analog wie bei fingerd verfahren werden, da dies eine Eigenschaft des inetd und nicht von cfingerd ist. cfingerd besitzt das Konfigurationsverzeichnis '''/etc/cfingerd/'''. Dort gibt es die Datei '''/etc/cfingerd/cfingerd.conf''', welche einige Konfigurationsparameter enthält. Hier können unter anderem die Pfade für auszuliefernde Dateien wie '''.plan''' oder '''.project''' angepasst werden. Zudem können die Strings, die ausgegeben werden, angepasst werden. Dies gilt ebenso für die Texte für den Syslog. Es kann ebenso über ACLs eingerichtet werden, welcher Rechner welche Aktionen ausführen darf. In der Standardkonfiguration wird eine ident-Abfrage über das Ident-Protokoll getätigt. Diese kann jedoch nur erfolgen, wenn auf dem abfragenden Rechner ein ident-Server läuft, was in den seltensten Fällen der Fall ist. Schlägt diese fehl, wird der Zugriff verweigert. Dies kann angepasst werden, indem in der Datei '''/etc/cfingerd/cfingerd.conf''' die Zeile {{{ -ALLOW_NONIDENT_ACCESS, }}} angepasst wird. Das Minus wird durch ein Plus ersetzt. Minus bedeutet, dass die Option deaktiviert ist. === Fake-User === Fake-User sind Benutzer, die nicht auf dem System existieren, die aber per Finger aufgerufen werden können und die Ausgabe von Shellskripten ausgeführt wird. Die Konfiguration der '''/etc/cfingerd/cfingerd.conf''' sieht wie folgt aus: {{{ FILES finger_fakeusers = { "nutzerliste", "Alle Nutzer ausgeben", FALSE, "/etc/skript.sh" } }}} Wird nun der Benutzer nutzerliste per finger abgefragt, so wird die Ausgabe des Shellskriptes ausgegeben. == efingerd == efingerd ist ebenso ein konfigurierbarer finger-Server. Er besitzt einige Kommandozeileoptionen, die im Internet-Superserver eingetragen werden müssen. Dort kann dann analog zu den anderen Finger-Servern auch IPv6 eingerichtet werden. {{{#!vorlage Tabelle Option Verhalten +++ -t Zeit in Sekunden, bis ein Timeout bei der Verbindung ausgelöst wird +++ -n keine Rückauflösung (PTR-Record) der IP-Adressen bei Zugriffen +++ -i ident-Abfrage beim Anfrager durchführen +++ -f nicht den vollständigen Namen von Benutzern ausgeben +++ -u .efingerd im Home-Verzeichnis der Benutzer ignorieren. }}} Des weiteren gibt es folgende Skripte, die ggf. angepasst werden können (z.B. wie die Nachricht lautet, die ausgegeben wird) {{{#!vorlage Tabelle Datei Bedeutung +++ '''/etc/efingerd/list''' Verhalten, wenn ein bestimmter Benutzer abgefragt wird. +++ '''/etc/efingerd/luser''' Verhalten, wenn ein Benutzer abgefragt wird, in dessen Homeverzeichnis keine .efingerd existiert '''/etc/efingerd/nouser''' Verhalten, wenn ein nicht vorhandener Benutzer abgefragt wird }}} Hat ein Benutzer eine Datei '''.efingerd''' in seinem Home-Verzeichnis und ist diese vom efingerd lesbar, so wird diese ausgeführt. Es kann also ein beliebiges Shellskript verwendet werden. Alle Ausgaben (STDOUT) von diesem werden an den Anfrager zurückgegeben. Bei efingerd existieren "virtuelle" Benutzer, die nicht auf dem System exisiteren, die aber abgefragt werden können und bestimmte Informationen zurückgeben. Diese können in der Datei '''/etc/efingerd/nouser''' angepasst werden. {{{#!vorlage Tabelle Benutzer Zweck +++ time Ausgabe der aktuellen Uhrzeit in UTC +++ ping Senden von 5 ICMP-Echo-Requests an die IP-Adresse des Anfragers +++ fortune Start von [:fortune:] (Ausgabe eines Spruches) +++ uptime Lautzeit des Servers ausgeben +++ uname Ausgabe der Kernel-Version über [:uname:] }}} #tag: Netzwerk, Internet, Server