2.3. TCP-Wrapper und xinetd
Die Kontrolle über den Zugriff auf Netzwerkdienste ist eine der wichtigsten Sicherheitsaufgaben, denen sich ein Server-Administrator stellen muss. Unter Red Hat Enterprise Linux gibt es eine Reihe von Tools zu diesem Zweck. Eine
iptables
-basierte Firewall etwa filtert alle unerwünschten Netzwerkpakete im Netzwerkstapel des Kernels heraus. Für Netzwerkdienste, die davon Gebrauch machen, fügt TCP Wrapper eine zusätzliche Schutzschicht hinzu, indem dieser definiert, welchen Hosts es erlaubt ist mit Netzwerkdiensten zu verbinden, die von TCP Wrappern geschützt werden, und welchen nicht. Einer dieser durch TCP Wrapper geschützten Netzwerkdienste ist der xinetd
Super-Server. Dieser Dienst wird Super-Server genannt, da er Verbindungen zu einer Untergruppe von Netzwerkdiensten steuert und die Zugriffskontrolle weiter verfeinert.
Abbildung 2.4, »Zugriffskontrolle zu Netzwerkdiensten« ist eine einfache Illustration, die die Zusammenarbeit dieser Tools beim Schutz von Netzwerkdiensten darstellt.
Abbildung 2.4. Zugriffskontrolle zu Netzwerkdiensten
Dieses Kapitel beschäftigt sich mit der Rolle von TCP-Wrappern und
xinetd
bei der Zugriffskontrolle auf Netzwerkdienste sowie mit Wegen, wie mithilfe dieser Tools die Verwaltung der Protokollierung und der Anwendung verbessern werden kann. Weitere Informationen zum Einsatz von Firewalls mit iptables
finden Sie unter Abschnitt 2.6, »IPTables«.
2.3.1. TCP Wrappers
Die TCP-Wrapper-Pakete (
tcp_wrappers
und tcp_wrappers-libs
) sind standardmäßig installiert und stellen Host-basierte Zugriffskontrolle für Netzwerkdienste zur Verfügung. Die wichtigste Komponente in diesen Paketen ist die /lib/libwrap.a
oder /lib64/libwrap.a
-Bibliothek. Im Wesentlichen handelt es sich bei einem von TCP Wrappern kontrollierten Dienst um einen Dienst, der mit der libwrap.a
-Bibliothek kompiliert wurde.
Wenn ein Verbindungsversuch zu einem TCP-wrapped Dienst eingeleitet wird, so wird der Dienst zuerst die Zugriffsdateien des Hosts (
/etc/hosts.allow
und /etc/hosts.deny
) untersuchen um festzustellen, ob eine Verbindung des Clients erlaubt ist. In den meisten Fällen schreibt er anschließend mithilfe des syslog-Daemons (syslogd
) den Namen des anfordernden Hosts und Dienstes in /var/log/secure
oder /var/log/messages
.
Wenn es einem Client erlaubt ist sich zu verbinden, gibt der TCP-Wrapper die Kontrolle über die Verbindung an den angeforderten Dienst ab und greift nicht weiter in die Kommunikation zwischen Client und Server ein.
Zusätzlich zu Zugriffskontrolle und Protokollierung können TCP-Wrapper Befehle ausführen, um mit dem Client zu interagieren, ehe die Kontrolle der Verbindung zum angeforderten Netzwerkdienst übergeben oder abgelehnt wird.
Da TCP-Wrapper eine wertvolle Ergänzung im Arsenal von Sicherheitstools eines jeden Systemadministrators sind, sind die meisten Netzwerkdienste unter Red Hat Enterprise Linux mit der
libwrap.a
-Bibliothek verbunden. Zu diesen Applikationen gehören /usr/sbin/sshd
, /usr/sbin/sendmail
und /usr/sbin/xinetd
.
Anmerkung
Um festzustellen, ob die Binärdatei eines Netzwerkdienstes mit
libwrap.a
verknüpft ist, geben Sie folgenden Befehl als Root-Benutzer ein:
ldd <binary-name> | grep libwrap
Ersetzen Sie <binary-name> dabei durch dem Namen der Binärdatei des Netzwerkdienstes.
Falls der Befehl ohne Ausgabe direkt zur Befehlszeile zurückkehrt, so ist der Netzwerkdienst nicht mit
libwrap.a
verknüpft.
Das folgende Beispiel zeigt, dass
/usr/sbin/sshd
mit libwrap.a
verknüpft ist:
[root@myServer ~]# ldd /usr/sbin/sshd | grep libwrap libwrap.so.0 => /lib/libwrap.so.0 (0x00655000) [root@myServer ~]#
2.3.1.1. Vorteile von TCP-Wrappern
TCP-Wrapper bieten im Vergleich zu anderen Kontrollmethoden für Netzwerkdienste die folgenden Vorteile:
- Transparenz für sowohl Client als auch den TCP-wrapped Netzwerkdienst — Weder der sich verbindende Client noch der wrapped Netzwerkdienst merken, dass TCP-Wrapper in Einsatz sind. Verbindungsversuche von berechtigten Benutzern werden protokolliert und mit dem geforderten Dienst verbunden, während Verbindungsversuche unzulässiger Clients fehlschlagen.
- Zentralisierte Verwaltung mehrerer Protokolle — TCP-Wrapper arbeiten unabhängig von den Netzwerkdiensten, die sie schützen. Dadurch können sich mehrere Server-Applikationen einen gemeinsamen Satz von Konfigurationsdateien der Zugriffskontrolle teilen, was die Verwaltung vereinfacht.