SelfLinux Sicherheit Grundlagen Sicherheit Abschnitt 6 | SelfLinux-0.13.0

| Grundlagen Sicherheit | Autoren Formatierung GFDL

#### 6 Superserver xinetd

#### 6.1 Der Superserver inetd

Superserver sind für die Verwaltung vieler verschiedener Dienste (FTP, POP3, Telnet, Finger) zuständig. Erst wenn ein Dienst benötigt wird, startet der Superserver ein zugeordnetes Programm. Im Falle von FTP sieht das folgendermaßen aus: In der Konfigurationsdatei /etc/inetd.conf wird der FTP-Port dem FTP-Daemon zugewiesen. Wenn jemand versucht, eine Verbindung zu diesem Port aufzubauen, startet der Superserver den zugewiesenen FTP-Daemon. (Hinweis: Die Zuweisung der Port-Nummern erfolgt in /etc/services)

#### 6.2 Zugriffssteuerung mit TCP_Wrapper

Die Nutzung von Serverdiensten sollte aus Sicherheitsgründen kontrolliert erfolgen. Bestimmte Dienste wie NFS oder Samba sollten nur im Intranet bzw. nur in bestimmten Netzwerkbereichen zur Verfügung stehen. Diese Kontrollfunktion kann der TCP_Wrapper tcpd übernehmen. Wie kann man sich das nun vorstellen? Normalerweise sieht ein Eintrag in der Konfigurationsdatei des Superservers /etc/inetd folgendermaßen aus:

/etc/inetd

    sshd stream tcp nowait root /usr/sbin/sshd sshd -i

Eine Verbindungsanfrage zu dem ssh-Port soll angenommen werden und nach erfolgreichem Start des Programms /usr/sbin/sshd wird der TCP-Datenstrom an diesen Server weitergeleitet. Der Serverprozess läuft unter root-Rechten ab.

Wenn man kontrollieren möchte, wer den ssh-Dienst ausführen darf, muß man folgende Änderung vornehmen:

/etc/inetd

    ssh stream tcp nowait root    /usr/sbin/tcpd sshd

Nun wird anstelle des ssh-Servers der TCP_Wrapper tcpd aufgerufen, und erst wenn dieser die Verbindungsanfrage positiv entscheidet, wird diese an den ssh-Dienst weitergegeben. In den Dateien /etc/hosts.allow und /etc/hosts.deny können Netzwerkbereiche für bestimmte Dienste freigeschaltet oder abgeschottet werden. Die folgenden Einträge zeigen einige Konfigurationsmöglichkeiten:

/etc/hosts.allow

    #/etc/hosts.allow

    #Erlaube alle Dienste für das lokale Netz
    ALL:ALL:192.168.

    # Erlaube SSH für alle außer 192.168.1.5 und alle Rechner von Micrsoft.com
    sshd : ALL EXCEPT 192.168.1.5 .microsoft.com : ALLOW

    #Erlaube SSH für das lokale Netz
    sshd : 192.168.1.0/255.255.255.0 : ALLOW

    #Alle bis hierin noch nicht behandelten Anfragen werden an root gemailt
    ALL : ALL : (echo "Zugriff von %c auf %s" | mail -s "%d-Zugriff" root)

Ein Nachteil des TCP_Wrappers ist der fehlende Schutz vor IP-Spoofing Attacken, in denen eine falsche Identität anderer Rechner vorgetäuscht wird. Ein anderer Nachteil ist, dass Dienste mit dem TCP_Wrapper zusammenarbeiten müssen (Unterstützung der Bibliothek libwrap).

#### 6.3 Die bessere Alternative xinetd

Der Superserver xinetd ist eine Weiterentwicklung des inetd-Konzeptes mit umfangreichen Sicherheitsoptionen. Es wurden zahlreiche Erweiterungen in folgenden Bereichen vorgenommen:

- Zugriffskontrolle
- Protokollierung
- Dienst-Weiterleitung
- Schutz vor DOS Attacken
- IPv6 Unterstützung

Zugriffskontrolle

> Netzwerkanfragen aus nicht vertrauenswürdigen Netzwerkbereichen können aufgrund ihrer Ursprungsadresse abgelehnt werden (ähnlich TCP_Wrapper). Die weitere Nutzung der Dateien /etc/hosts.allow und /etc/hosts.deny ist möglich. Außerdem unterstützt xinetd eine Zeitbegrenzung für Dienste (access-time). Es können sowohl die maximalen Netzwerkverbindungen für einen Client (per_source) als auch auch für einen Dienst (instances) limitiert werden.

Log-Funktionen

> Die Protokollierung erfolgt entweder mittels syslogd oder in separaten Dateien. Im ersten Fall, sind verschiedene Log-Level für jeden einzelnen Netzwerkdienst möglich. Neben Benutzerkennung (userID) und Server-Prozessidentifikation (PID) kann auch die Client-IP (HOST) und die Dauer einer Verbindung protokolliert werden. Ausserdem beinhaltet der xinetd umfangreiche Funktionen zur Darstellung fehlgeschlagener Verbindungsanfragen.

Dienst-Weiterleitung

> TCP-Datenströme können zu einem anderen Rechner weitergeleitet werden (redirect). Es können auch Dienste weitergeleitet werden, die normalerweise von Außen nicht erreichbar sind. Dies ist eine mögliche Schwachstelle, man sollte dieses Feature daher nur sehr überlegt einsetzen!

Schutz vor DOS Attacken

> Durch eine Begrenzung der Verbindungsanzahl verlieren so genannte "PORT-Bomben" ihre Wirkung (per_source, instances).

> Wenn die Protokollierung nicht über den syslogd sondern in separaten Dateien erfolgt, kann eine Überflutung dieser Dateien durch Begrenzungen verhindert werden (log_type FILE datei soft_limit hard_limit).

IPv6 Unterstützung

> Seit Version 2.1.8.8.pre wird das IPv6 Protokoll unterstützt.

Weitergehende Informationen und auch Beispiele findet man im Kapitel xinetd von SelfLinux.