Kapitel 16. TCP Wrappers und xinetd

Die Kontrolle des Zugriffs zu Netzwerk-Services ist eine der wichtigsten Sicherheitsaufgaben, denen sich der Administrator stellen muss. Glücklicherweise gibt es unter Red Hat Enterprise Linux eine Reihe von Tools, welche genau dies tun. Eine iptables-basierte Firewall, zum Beispiel, filtert alle unerwünschten Netzwerk-Pakete im Netzwerk-Stack des Kernel heraus. Für Netzwerk-Services, welche davon Verwendung machen, fügt TCP Wrappers eine zusätzliche Schutzschicht hinzu, indem dieser definiert, welchen Hosts es erlaubt ist zu "wrapped" Netzwerk-Services zu verbinden, und welchen nicht. Einer dieser "wrapped" Netzwerk-Services ist xinetd Super-Server. Dieser Service wird Super-Server genannt, da dieser Verbindungen zu einem Subnet von Netzwerk-Services kontrolliert und Zugriffskontrolle weiter feinabstimmt.

Abbildung 16-1 ist eine grundlegende Illustration welche zeigt, wie diese Tools zusammen arbeiten um Netzwerk-Services zu schützen.

Abbildung 16-1. Zugriffskontrolle zu Netzwerk-Services

Dieses Kapitel beschäftigt sich mit der Rolle von TCP Wrappers und xinetd in der Zugriffskontrolle zu Netzwerk-Services und in wie diese Tools verwendet werden können um das Management von sowohl Logging, als auch Verwendbarkeit zu verbessern. Für eine Diskussion der Verbindung von Firewall und iptables, siehe Kapitel 17.

16.1. TCP Wrappers

Das TCP Wrappers Paket (tcp_wrappers) ist standardmäßig installiert und stellt Host-basierte Zugriffskontrolle zu Netzwerk-Services bereit. Die wichtigste Komponente in diesem Paket ist die /usr/lib/libwrap.a-Bibliothek. In allgemeinen Begriffen, ist ein "TCP wrapped" Service einer, der gegen die libwrap.a-Bibliothek kompiliert wurde.

Wenn ein Verbindungsversuch zu einem "TCP wrapped" Service eingeleitet wird, wird der Service zuerst die Hosts-Zugriffs-Dateien (/etc/hosts.allow und /etc/hosts.deny) untersuchen, um festzustellen, ob der Client-Host erlaubt ist zu verbinden. Dieser wird dann den syslog-Daemon (syslogd) verwenden, um den Namen des anfordernden Hosts und Service entweder zu /var/log/secure oder zu /var/log/messages zu schreiben.

Wenn es einem Client-Host erlaubt ist zu verbinden, gibt TCP Wrapper die Kontrolle über die Verbindung zum angeforderten Service und wird nicht mehr in die Kommunikation zwischen Client-Host und Server eingreifen.

Zusätzlich zu Zugriffskontrolle und Logging, TCP Wrapper kann Befehle aktivieren um mit dem Client zu interagieren, bevor er die Kontrolle der Verbindung zum angeforderten Netzwerk-Service übergibt oder diesen ablehnt.

Da TCP Wrapper ein wertvoller Zusatz zum Arsenal jeden Administrators Sicherheits-Tools sind, sind die meisten Netzwerk-Services unter Red Hat Enterprise Linux gegen die libwrap.a gebunden. Einige dieser Anwendungen sind /usr/sbin/sshd, /usr/sbin/sendmail und /usr/sbin/xinetd.

AnmerkungAnmerkung
 

Um festzustellen, ob die Binärdatei eines Netzwerk-Service gegen libwrap.a gebunden ist, geben Sie den folgenden Befehl als root ein:

strings -f <binary-name> | grep hosts_access

Ersetzen Sie <binary-name> mit dem Namen der Binärdatei des Netzwerk-Service.

Wenn eine Anfrage beantwortet wird, dann ist der Netzwerk-Service nicht gegen libwrap.a gebunden.

16.1.1. Vorteile eines TCP Wrappers

TCP Wrappers bietet zwei grundlegende Vorteile im Vergleich zu anderen Kontrollmethoden für Netzwerkdienste:

  • Der sich verbindende Client bemerkt den Einsatz von TCP Wrappers nicht — Zugelassene Benutzer bemerken keinen Unterschied und Angreifer erhalten niemals zusätzliche Informationen über den Grund dafür, warum ihr Verbindungsversuch fehlgeschlagen ist.

  • Zentralisiertes Management von mehreren Protokollen — TCP Wrappers arbeiten unabhängig vom Netzwerkdienst, den sie schützen. Dies erlaubt es mehreren Server-Applikationen sich eine gemeinsame Gruppe von Konfigurationsdateien zu teilen, was ein vereinfachtes Management zur Folge hat.