Firewall Handbuch für LINUX 2.0 und 2.2 - zurück
Firewall Handbuch für LINUX 2.0 und 2.2 - zurück
Firewall Handbuch für LINUX 2.0 und 2.2 - zurück
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
unterscheiden. Erst mit der <strong>LINUX</strong> Kernelversion <strong>2.2</strong> wurden diese Mechanismen<br />
nachgebildet, leider reichen diese aber nicht an die der BSD UNIXe heran, weil hierzu<br />
neue Flags bei den Dateirechten hinzugefügt werden müßten (Stichwort append-only<br />
flag).<br />
Es ist z.B. somit einem gewöhnlichen User nicht mehr möglich, überhaupt Supervisor zu<br />
werden, oder einem Administrator nicht möglich, Logdateien einzusehen oder zu<br />
verändern. Man sieht, die sogenannten Trusted Kernel von Solaris oder den freien BSD-<br />
UNIXen haben durchaus ihren Sinn. Wer nun überlegt, ob er Trusted Solaris oder<br />
Open/Net/FreeBSD einsetzen soll, der ist mit FreeBSD 3.1 oder Open/NetBSD besser<br />
beraten. Inzwischen sind alle BSD <strong>und</strong> Solaris Systeme auf Intel-Basis auch zu <strong>LINUX</strong><br />
binär kompatibel.<br />
Zurück zu der chroot() Funktion. Einige Dämonen führen automatisch ein CHROOT() aus,<br />
indem sie chroot() ausführen, eine Kopie von sich selber in der chroot() Umgebung<br />
starten, <strong>und</strong> dann den Ursprungsprozeß beenden. Zu diesen gehört z.B. der CERN-<br />
HTTPD, der APACHE-Server <strong>und</strong> dessen Clone, der Netscape Enterprise Server, <strong>und</strong> der<br />
BSD FTP-Dämon.<br />
Wer sich nicht sicher ist, ob sein Dienst oder Dämon automatisch chroot() ausführt, genügt<br />
ein Blick in den Quellcode oder die Dokumentation. Falls der Dämon nicht selber diese<br />
Funktion unterstützt, dann kann man aus der BASH - Shell heraus ein kleines Programm<br />
starten, welches ein chroot() ausführt <strong>und</strong> dann erst den Dämon startet (system()). Dieser<br />
läuft dann in der chroot() Umgebung, welche von dem kleinen Shellprogramm vorgegeben<br />
wurde. So ist es möglich, unter allen UNIX´en Programme sicher zu betreiben, von denen<br />
nicht bekannt ist, ob diese chroot() ausführen. Man kann auch chroot() in einer chroot()<br />
Umgebung ausführen, also von dieser Seite her keine Unwägbarkeiten.Warum unter<br />
Standard <strong>LINUX</strong> nicht generell alles in einer chroot() Umgebung läuft ? Das ist<br />
einfach zu beantworten: Viele Dämonen, wie z.B. POP3 oder IMAP4 benötigen Zugriff auf<br />
die Dateien /etc/passwd oder /etc/shadow, um das Paßwort zu überprüfen. Nach dem<br />
Wechsel in eine chroot() Umgebung, z.B. in /home/userxy/chroot/ verlangt dann der<br />
POP3 Dämon den Zugriff auf eine Paßwortdatei, die also dann im Verzeichnis<br />
/etc/userxy/chroot/etc/ liegen muß. Man muß also die Paßwortdatei aus /etc/ in dieses<br />
Verzeichnis kopieren, damit der Dämon korrekt arbeiten kann. Dasselbe betrifft auch die<br />
Logdateien des Dämons. Diese müßten dann in dem Verzeichnis /home/userxy/var/log/ zu<br />
finden sein. Falls der Dämon mit dynamischen Bibliotheken (shared libraries) kompiliert<br />
wurde (was viel RAM sparen kann), so muß er auch auf die entsprechenden Libraries in<br />
den Verzeichnissen /home/userxy/lib/ oder /home/userxy/chroot/usr/lib/ Zugriff haben.<br />
Das bedeutet, daß man den Dämon entweder mit der Option -static in der Datei Makefile<br />
neu kompiliert, <strong>und</strong> dann in der chroot() Umgebung startet, oder man alle Libraries in die<br />
chroot() Umgebung kopieren muß. Aber keine Panik, ein einfaches Kopieren mit dem<br />
Befehl cp -p -r reicht aus, damit die Dateirechte auch original mit übertragen werden.<br />
Die Firma SUN hat seit einiger Zeit fast alle wichtigen Dämonen statisch kompiliert <strong>und</strong> mit<br />
einer chroot() Funktion ausgestattet. In sofern ist SUN allen anderen UNIXen, zumindest<br />
<strong>LINUX</strong> jedenfalls, weit voraus. Programme von Fremdherstellern jedenfalls sind noch nicht<br />
so weit. Das bedeutet, daß auch beim Einsatz von Trusted Solaris dieselben Probleme<br />
auftreten, wie mit <strong>LINUX</strong>. Man kommt um eine Überprüfung der UNIX Dämonen bei<br />
keinem UNIX herum. Mit dem Kernel <strong>2.2</strong> hat sich <strong>LINUX</strong> aber sehr an BSD-UNIX<br />
angepaßt. Es lassen sich alle BSD-UNIX Dämonen von Open/Net/FreeBSD ganz einfach<br />
auf <strong>LINUX</strong> portieren. Angesichts der hohen Qualitat der BSD Dämonen sollte man als<br />
Systemadministrator im Bedarfsfall auf diese Dämomen <strong>zurück</strong>greifen. Das chroot() Skript<br />
findet sich überall im Internet oder auf dem Server des DFN-CERT, der wirklich eine viel<br />
unterschätzte Resource ist...<br />
Windows NT 4.0 im Übrigen unterstützt im Prinzip aufgr<strong>und</strong> seiner POSIX - Kompatibilität<br />
auch chroot(). Wenn Windows NT in der Version 6.0 dann irgendwann einmal alle<br />
Funktionen von UNIX beherrscht, <strong>und</strong> ein echtes Multiuser/Multitasking Betriebssystem<br />
sein wird, dann wird das Thema dort sicher top aktuell werden.<br />
Erstellt von Doc Gonzo - http://kickme.to/plugins