Druckversion

Server - Telnet & Co.

Übersicht Weiter

Vorbereitungen Zurück Anfang Weiter

Start der Serverdienste

Die Server für Telnet und die Remote Shell werden nahezu ausschließlich erst bei Bedarf durch den inetd gestartet. Überprüfen Sie vorab die Datei /etc/inetd.conf, ob die entsprechenden Einträge enthalten und freigeschaltet sind:

user@sonne> egrep 'telnet|rsh' /etc/inetd.conf
# If you want telnetd not to "keep-alives" (e.g. if it runs over a ISDN
# uplink), add "-n". See 'man telnetd' for more details.

telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
# man-page of rlogind and rshd to see more configuration possibilities about
shell   stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd -L
# shell stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd -aL
# Try "telnet localhost systat" and "telnet localhost netstat" to see that

Entfernen Sie ggf. Kommentarzeichen vor den Einträgen oder ergänzen Sie obige Zeilen. Starten Sie nach Änderungen den inetd neu:

root@sonne> /etc/init.d/inetd restart

Enthält Ihre Distribution kein ähnlich lautendes Startskript, so sollten Sie den Daemon per Hand neu starten (killall inetd; /usr/sbin/inetd).

Verwenden Sie den moderneren xinetd (Voreinstellung bspw. bei RedHat), so sollte dessen Konfigurationsdatei /etc/xinetd.conf Einträge ähnlich der folgenden aufweisen:

user@sonne> less /etc/xinetd.conf
...
service telnet
   {
    socket_type = stream
    protocol    = tcp
    wait        = no
    user        = root
    server      = /usr/sbin/in.telnetd
    log_on_failure += RECORD
    log_type    = SYSLOG auth warn
   }

service shell
   {
    socket_type = stream
    protocol    = tcp
    wait        = no
    user        = root
    server      = /usr/sbin/in.rshd
    server_args = -aL
    log_on_failure += RECORD
    log_type    = SYSLOG auth warn
   }
...

Auch der xinetd ist neu zu starten, damit die Änderungen in der Konfiguration wirksam werden.

Der Ssh-Serverprozess wird i.d.R. als permanenter Dienst bereits während des Systemstarts aktiviert; eine Konfiguration zum Start durch den [x]inetd ist dennoch möglich.

Etwas Sicherheit

Zumindest Telnet und Rsh beinhalten einige bedenkliche Mechanismen, die Sicherheitsanforderungen in kritischem Umfeld nicht genügen. Aus diesem Grund wurden zusätzliche Barrieren eingeführt, die den Zugang zu den Diensten einschränken können.

Eine der Sicherheitsvorkehrungen wäre der konsequente Einsatz des moderneren Internet-Daemons xinetd anstatt des alteingesessenen inetd. Für jeden Dienst können Sie mittels der Einträge only_from bzw. no_access explizit festlegen, von welchen Rechnern/Netzwerken aus der Zugriff gestattet ist oder von wo aus er verwehrt wird.

In vielen Distributionen wird nach wie vor am Inetd als »Verwalter der Internet-Dienste« festgehalten. Dessen fehlendes Sicherheitskonzept übernimmt der TCP-Wrapper, der den Zugriff anhand der Einträge der Dateien /etc/hosts.allow und /etc/hosts.deny verifiziert. Der Zugang zu Telnet- und Remote-Shell-Server sollte - falls Sie auf die beiden Dienste nicht verzichten können - in offenen Netzwerken stets durch den TCP-Wrapper überwacht und nur für konkrete Rechner geöffnet werden. Die beiden Dateien /etc/hosts.allow und /etc/hosts.deny sollten um folgende Einträge ergänzt werden (im Beispiel gestatten wir den Zugriff von allen Rechnern des lokalen Netzwerkes aus:

root@sonne> vi /etc/hosts.deny
# Alles pauschal verbieten
ALL : ALL

root@sonne> vi /etc/hosts.allow
# Telnet und Rsh für Rechner des lokalen Netzwerkes öffnen; Rsh erfordert neben dem rsh-Daemon noch Zugang zum rlogin-Daemon
in.telnetd : LOCAL
in.rlogind : LOCAL
in.rshd    : LOCAL

In aktuellen Implementierungen des Ssh-Daemons ist die Auswertung der Dateien /etc/hosts.allow und /etc/hosts.deny zumeist fest verdrahtet; Sie können das leicht mit Hilfe von strings überprüfen:

user@sonne> strings /usr/sbin/sshd | egrep 'hosts.allow|hosts.deny'
hosts_allow_table
hosts_deny_table
/etc/hosts.allow
/etc/hosts.deny

Erhalten Sie obige Ausgaben, so muss der Zugriff auf den Daemon ebenso durch die Einträge in den beiden Dateien möglich sein. Bspw. genügt folgende Zeile, um den Rechnern des lokalen Netzwerks den Ssh-Zugang zu gewähren:

root@sonne> vi /etc/hosts.allow
# Zugang zur Secure Shell
sshd : LOCAL

Bei weiteren Zugangsproblemen auf einen der Dienste sollten Sie ggf. die Konfiguration der betreffenden Pluggable Authentificaton Modules prüfen.

Telnet Zurück Anfang Weiter

Allgemeines

Die Basis von Telnet (Telecommunication Network) ist so alt wie das Internet (genauer das ARPAnet) selbst, denn die Motivation zur Verbindung von Rechnern entsprang dem Wunsch, vom »lokalen« Terminal Resourcen auf entfernten Rechnern in Anspruch nehmen zu können. So verfügten die 1969 verbundenen 4 Interface Message Processors (IMP) über eine rudimentäre Lösung der Terminalverbindung, die zumindest als Anfänge der Protokollentwicklung zu Telnet gelten dürften. 1970 markierte das Network Control Protocol (NCP) einen weiteren Meilenstein, indem es erstmals die Netzwerkschicht von den Anwendungsprozessen getrennt realisierte und eine Benutzerauthentifizierung einführte.

Die Erweiterung des ARPAnets um neue Rechner zeigte deutlich die Schwächen der bisherigen Realisierung auf: das System funktionierte nur zufriedenstellend, wenn die verbundenen Rechner den gleichen Zeichensatz verwendeten. Unter anderem diese Erfahrungen spiegelten sich im RFC-97 (1971) als erstem Vorschlag des Telnet-Protokolls wider. Weitere Protokolländerungen bzw. -erweiterungen spezifizierten u.a. die RFCs 318, 328, 340, 393 (1972) und 435 (1973). Der noch heutige gültige Standard wurde erst 1983 (RFC 854) festgeschrieben.

Ablauf einer Telnet-Sitzung

Abbildung 1: Interne Vorgänge während einer Telnet-Sitzung

Parameter zum Serverstart

Die r-Utilities Zurück Anfang Weiter


Secure Shell Zurück Anfang


 Korrekturen, Hinweise?
Startseite Nächste Seite Nächstes Kapitel Vorherige Seite Kapitelanfang