SelfLinux Internet xinetd Abschnitt 7 | SelfLinux-0.13.0

| xinetd | Autoren Formatierung GFDL

#### 8 Spezielle Dienste

Es gibt drei Dienste, die nur für xinetd verwendet werden. Diese sind weder in /etc/rpc, noch in /etc/services zu finden und müssen das UNLISTED Flag setzen (neben dem INTERNAL Flag, welches anzeigt, dass sie xinetd Dienste sind).

1. servers: Auskunft über die gerade laufenden Server
2. services: liefert Informationen über die angebotenen Dienste, ihre Protokolle und Ports
3. xadmin: bietet Funktionen der beiden oben genannten Dienste

Es ist offensichtlich, dass durch diese Dienste das System verletzbarer wird. Sie stellen wichtige Informationen zu Verfügung. Zur Zeit gibt es keine Sicherheitsmechanismen für den Zugriff auf diese Dienste (etwa Passwortschutz). Sie sollten nur in der Einrichtungsphase verwendet werden. Zunächst wird der Zugriff auf sie in dem Abschnitt defaults generell gesperrt:

    defaults {
      ...
      disabled = servers services xadmin
      ...
    }

Bevor sie dann aktiviert werden sollten einige Vorkehrungen getroffen werden:

1. Der Rechner, auf dem xinetd läuft, sollte der einzige Rechner sein, dem es erlaubt ist, die Dienste zu nutzen
2. Die Anzahl der gleichzeitig erlaubten Serverinstanzen sollte eins sein
3. Zugegriffen werden darf nur von dem Rechner aus, auf dem der Server läuft.

Hier ein Beispiel für die Konfiguration des xadmin Dienstes. Die Einstellung der beiden anderen Dienste erfolgt analog, bis auf die Portnummer natürlich.

    service xadmin
    {
      type  = INTERNAL UNLISTED
      port  = 9100
      protocol = tcp
      socket_type = stream
      wait  = no
      instances = 1
      only_from = 192.168.1.1  #charly
    }

Der Dienst xadmin bietet fünf Befehle:

1. help ...
2. show run : gleicht dem Dienst servers und gibt Auskunft über die zur Zeit laufenden Server
3. show avail : gleicht dem Dienst services und informiert über die verfügbaren Dienste (und ein wenig mehr)
4. bye oder exit ...

Das System kann auch ohne diese Dienste getestet werden. Befehle, wie netstat, fusert, lsof geben ebenfalls einen Überblick über das, was auf dem Rechner vonstatten geht, ohne ihn ein wenig unsicherer durch die Verwendung der Dienste zu machen!

#### 9 chroot für einen Dienst

Oft wird empfohlen, die Bereiche eines Dienstes einzuschränken oder eine neue Umgebung zu generieren. Der Befehl chroot ändert das Wurzelverzeichnis für einen Befehl oder ein Skript:

root@linux # chroot [options] new_root

Auf diese Weise werden häufig Dienste wie bind/DNS oder FTP gesichert. Um dies zu erreichen und dabei gleichzeitig die Vorzüge von xinetd nutzen zu können, muss chroot als Server deklariert werden. Die Parameter werden dann über das Attribut server_args übergeben.

    service ftp
    {
      id           = ftp
      socket_type  = stream
      wait         = no
      user         = root
      server       = /usr/sbin/chroot
      server_args  = /var/servers/ftp /usr/sbin/in.ftpd -l
    }

Sobald nun eine Anfrage, den jeweiligen Dienst betreffend, eintrifft, wird als erstes chroot ausgeführt. Das erste Argument, dass diesem übergeben wird, ist der erste Eintrag in sever_args: das neue Wurzelverzeichnis. Zuletzt wird der Server gestartet.

#### 10 Fazit

Es mag sich nun die Frage stellen, ob nun xinetd oder inetd verwendet werden sollte. Es ist nun einmal so, dass xinetd ein wenig mehr Administration verlangt, vorallem, solange es nicht mit den Linux Distributionen mitgeliefert wird. Eine sichere Lösung stellt der Einsatz von xinetd auf Rechnern dar, die eine Verbindung mit dem Rest der Welt (etwa dem Internet) haben. xinetd bietet einfach den besseren Schutz. Für Rechner in einem lokalen Netzwerk sollte inetd vollkommen ausreichend sein.