4.12. Die Nutzung von Tcpwrappers STOPP
TCP-Wrapper (Schutzumschläge für TCP) wurden entwickelt, als es noch keine echten Paketfilter gab, aber Zugangskontrollen notwendig waren. Trotzdem sind sie immer noch hoch interessant und nützlich. Ein TCP-Wrapper erlaubt Ihnen, einem Host oder einer Domain einen Dienst anzubieten oder zu verweigern, und standardmäßig Zugriff zu erlauben oder zu verweigern (das alles wird auf der Anwendungsebene durchgeführt). Wenn Sie mehr Informationen haben möchten, sehen Sie sich hosts_access(5) an.
Viele der unter Debian installierten Dienste
werden entweder durch den TCP-Wrapper Service (tcpd
) aufgerufen,
oder wurden mit Unterstützung für libwrapper (Bibliothek für TCP-Wrapper) kompiliert.
Einerseits werden Sie bei manchen Diensten (einschließlich telnet
, ftp
, netbios
, swat
und finger
), die in /etc/inetd.conf
konfiguriert werden, sehen, dass die Konfigurationsdatei zuerst /usr/sbin/tcpd
aufruft. Andererseits, selbst wenn ein Dienst nicht über den inetd
-Superdaemon ausgeführt wird, kann die Unterstützung von TCP-Wrapper einkompiliert werden. Dienste, die unter Debian mit TCP-Wrappern kompiliert wurden, sind ssh
, portmap
, in.talk
, rpc.statd
, rpc.mountd
, gdm
, oaf
(der GNOME-Aktivierungs-Daemon), nessus
und viele andere.
Um herauszufinden, welche Pakete TCP-Wrapper benutzen
, geben Sie Folgendes ein:
$ apt-cache rdepends libwrap0
Beachten Sie bitte Folgendes, wenn Sie tcpchk
(ein sehr nützliches Programm zur Überprüfung der TCP-Wrapper-Konfiguration und -Syntax) laufen lassen. Wenn Sie Stand-Alone-Dienste (alleinstehende Dienste, also solche, die direkt mit der Wrapper-Bibliothek verbunden sind) der host.deny
- oder host.allow
-Datei hinzufügen, wird tcpchk
Sie warnen, dass er sie nicht finden kann, da er sie nur in /etc/inetd.conf
sucht (die Handbuchseite ist an dieser Stelle nicht sehr genau).
Jetzt kommt ein kleiner Trick und vielleicht die kleinste Alarmanlage zur Erkennung von Eindringlingen: Im Allgemeinen sollten Sie eine anständige Firewall als erste und TCP-Wrapper als zweite Verteidigungslinie haben. Der Trick besteht nun darin, ein
SPAWN
-Kommando
in
/etc/hosts.deny
einzutragen, das immer dann eine Mail an Root schickt, wenn ein Dienst abgewiesen wurde:
ALL: ALL: SPAWN ( \
echo -e "\n\
TCP Wrappers\: Verbindungsaufbau abgelehnt\n\
Von\: $(uname -n)\n\
Prozess\: %d (pid %p)\n\
Benutzer\: %u\n\
Host\: %c\n\
Datum\: $(date)\n\
" | /usr/bin/mail -s "Verbindung zu %d blockiert" root) &
Achtung: Das obige Beispiel kann sehr leicht zu DoS (Denial of Service, Verbindungsaufbau abgelehnt) führen, indem man versucht, sehr viele Verbindungen in kurzer Zeit aufzubauen. Viele E-Mails bedeuten viel Dateiaktivität, die lediglich durch das Senden von ein paar Paketen erreicht wird.