Kapitel 17. TCP Wrapper und xinetd

Die Kontrolle des Zugriffs zu Netzwerk-Diensten ist eine der wichtigsten Sicherheitsaufgaben, denen sich der Administrator stellen muss. Unter Red Hat Enterprise Linux gibt es 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-Dienste, welche davon Verwendung machen, fügt TCP Wrapper eine zusätzliche Schutzschicht hinzu, indem dieser definiert, welchen Hosts es erlaubt ist zu "wrapped" Netzwerk-Diensten zu verbinden, und welchen nicht. Einer dieser "wrapped" Netzwerk-Dienste ist xinetd Super-Server. Dieser Dienst wird Super-Server genannt, da dieser Verbindungen zu einem Subnet von Netzwerk-Diensten kontrolliert und Zugriffskontrolle weiter feinabstimmt.

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

Abbildung 17-1. Zugriffskontrolle zu Netzwerk-Diensten

Dieses Kapitel beschäftigt sich mit der Rolle von TCP Wrappern und xinetd in der Zugriffskontrolle zu Netzwerk-Diensten und inwiefern 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 18.

17.1. TCP Wrapper

Das TCP Wrapper Paket (tcp_wrappers) ist standardmäßig installiert und stellt hostbasierende Zugriffskontrolle für Netzwerk-Dienst zur Verfügung. Die wichtigste Komponente in diesem Paket ist die /usr/lib/libwrap.a-Bibliothek. Jeder Dienst welcher diese Bibliothek dazulinkt, wird als TCP-wrapped Dienst bezeichnet.

Wenn ein Verbindungsversuch zu einem "TCP wrapped" Dienst eingeleitet wird, wird der Dienst 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 Dienstes 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 Dienst und wird nicht mehr in die Kommunikation zwischen Client-Host und Server eingreifen.

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

Da TCP Wrapper ein wertvoller Zusatz zum Arsenal von Sicherheits-Tools eines jeden System-Administrators sind, sind die meisten Netzwerk-Dienste 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-Dienst 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-Dienst.

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

17.1.1. Vorteile von TCP Wrappern

TCP Wrapper bieten zwei grundlegende Vorteile im Vergleich zu anderen Kontrollmethoden für Netzwerkdienste:

  • Transparenz in Hinsicht auf den Client-Host und den wrapped Netzwerk-Dienst — Beide, der sich verbindende Client und der wrapped Netzwerk-Dienst, bemerken nicht, dass TCP-Wrapper in Gebrauch sind. Legitime Benutzer sind angemeldet und mit dem geforderten Dienst verbunden, während Verbindungen von verbotenen Clients fehlschlagen

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