einer Jail auch ohne login in die Jail sofort ersichtlich,
welche Dienste auf dem Server ausgeführt werden. Intranet FreeBSD Eine Jail unterliegt auch gewissen Restriktionen, die man zum Teil über das Hostsystem und Kernel-Variablen Jail mit phpPgAdmin Jails Quantensprung (sysctl-MIBs) verändern kann. So sind keine „raw sockets“ (wie ping und traceroute) erlaubt, können aber über das Hostsystem ebenso wie das Setzen des Hostna- Host als RDBMS-Server z.B. PostgreSQL in der Systemsicherheit mes explizit für eine bestimmte oder alle Jails erlaubt werden. Ab FreeBSD 6.2 ist dürfen einer Jail auch meh- rere IP-Adressen zugeordnet werden. Genauso ist es In einer Jail möglich, IPv6-Adressen zu verwenden. installiert der Administra- tor das Web-Frontend der Da- Der große Erfolg der Jails hat dazu geführt, dass diese tenbank und auf dem Hostsys- mittlerweile auch als „Sysjail“ auf andere BSD-Derivate tem arbeitet das Datenbanksys- portiert werden. Ab Solaris Version 10 wurden sie als tem. Die Daten sind dabei voll- „Solaris-Zones“ implementiert. kommen vor unerlaubten Zugrif- Anwendungsbeispiele fen von außen geschützt. • Um Netzwerkdienste zu testen oder kennenzulernen Die folgenden Anwendungsbeispiele zeigen die Leis- bieten sich ebenfalls Jails an. Dazu die betreffenden tungsfähigkeit der Jails. Dienste in einer Jail installieren und schon stehen sie für • Server für kleine und mittlere Unternehmen müssen einen eingehenden Test oder zu Lernzwecken zur kostengünstig und selbstverständlich auch sicher sein. Verfügung. Ein Betrieb von Diensten wie HTTP, Email und DNS auf jeweils einem Rechner kann die Unterhaltskosten Weitere Informationen beachtlich steigern. Wir hoffen Ihnen mit dieser kurzen Übersicht eine ver- ständliche Vorstellung der FreeBSD Jails gegeben zu haben. Internet Intranet • Eine ausführliche Anleitung finden Sie unter: http://www.grunix.de/dokumentationen/jails/ Jail Jail Jail WWW DNS Mail • Die manual page zu den Jails ist sehr gut geschrieben: Host als Intranet-Server man jail Was sind Jails? • Wenn Sie die Security-Features von FreeBSD inter- Jails umschreibt man am besten mit „FreeBSD in Free- essieren, so erhalten Sie einen Überblick im Flyer: BSD“. Eine Jail geht deutlich weiter als eine chroot-Um- Daher http://www.allbsd.de/src/Flyer/FreeBSD/PDF/flyer-de- gebung. Eine Jail ist ein komplettes eigenständiges Free- bietet es sich an nur fbsd-security.pdf BSD-System innerhalb eines FreeBSD Systems, wobei einen Server anzuschaffen und • Weitere Informationen rund um FreeBSD erhalten Sie diverse Restriktionen auf einen Prozess und dessen Kind- jeden dieser Dienste in einer im exzellenten und ausführlichen FreeBSD-Handbuch: prozesse gesetzt werden. Prozesse in einer Jail können so- Jail zu installieren und somit http://www.FreeBSD.org/doc/de_DE.ISO8859- mit nicht auf Prozesse des Hostsystem zugreifen. spart das Unternehmen Kosten und gewinnt erheblich an Si- 1/books/handbook/index.html Dabei wird keine Hardware emuliert (wie bei vmware) cherheit. • Die Fachliteratur hat sich des Themas ebenfalls ange- oder ein eigener Kernel (wie bei XEN) genutzt, eine Jail nommen: teilt sich die Ressourcen mit dem Hostsystem. Das Host- FreeX 02/2007, Seite 24ff, Computer und Literatur- system ist von Veränderungen, die innerhalb einer Jail • Sicherheit und Kosten von Datenbankservern im KMU- Verlag, Böblingen, ISSN 1436-7033 stattfinden, nicht betroffen. Der Jail-Mechanismus ist Bereich lassen sich durch Jails ebenfalls optimieren. dabei anderen virtuellen Realisierungen in Sachen wie • Deutsches BSD-Forum: http://www.BSDGroup.de/ Performance (insbesondere, wenn mehrere virtuelle In- stanzen genutzt werden sollen) weit überlegen.
(c) Autor: Axel S. Gruner, überarbeitet: Jürgen Dankoweit, 2007
Sobald Sie als Administrator sich in der Jail bewegen, se- und er darf in dieser schalten und walten, ohne das hen Sie ein vollständiges FreeBSD, das sich genauso Ihr Server als Fort Knox Hostsystem zu beeinträchtigen. verwalten läßt wie jedes andere FreeBSD-System. Sicher ist, dass nichts wirklich sicher ist, auch wenn Her- • Bei Schulungen müssen nicht alle Teilnehmer auf dem Die FreeBSD-Jails gehören zum Basissystem und erhö- steller diverser Firewall-Lösungen oftmals anderes ver- gleichen Server arbeiten. Sie können den Teilnehmern hen die Sicherheit signifikant. Neben einem kompletten sprechen. Firewalls sorgen für die erste Barriere, das Sys- jeweils eine Jail einrichten, in der sie die gestellten Auf- System kann aber auch nur ein Prozess, ein Dienst, in tem an sich für die zweite, wenn Sie Jails nutzen, errich- gaben erarbeiten können. Wenn die Schulung beendet eine Jail eingesperrt werden. Eine Jail ist ein System für ten Sie eine dritte Mauer und mit den FreeBSD security ist, muss nicht der komplette Server neu aufgesetzt sich, sprich, es kann dort die gleiche Software installiert flags steht hinter dieser Mauer noch ein Tresor, der keine werden, es reicht aus, neue Jails an die Stelle der alten werden wie auf einer normalen FreeBSD Installation. Tür hat. Der Einbruch in ein System ist schon schlimm zu kopieren und damit ist das System der Jails wieder genug, durch die Nutzung einer Jail nehmen Sie schon sauber. Server-Dienste in Jails viel von dem Schrecken. Ärgerlich wird es, wenn der Eindringling Daten verändert, Daten löscht und seine • Will man seinen Kunden root-Shells anbieten, wickelt Gerade Serverdienste wie DNS, HTTP, FTP, Spuren aus den diversen Logfiles löscht. Er braucht dazu man dies auf einem Server mit vielen Jails für viele SMTP/POP3/IMAP und viele weitere, waren in der administrative Rechte, also root-Zugriff, und diesen be- Kunden ab. Die Anschaffung neuer Hardware entfällt, Vergangenheit oftmals die Schwachstelle im System, wel- kommt er nicht? Was aber wenn doch? Er kann machen die Einrichtung ist eine Angelegenheit von Minuten che ein Hacker für einen erfolgreichen Angriff ausnutzte. was er will, oder doch nicht? (oder wird automatisiert). Auch wenn man immer uptodate bleibt und eine Firewall Nein, das kann er nicht, denn durch die Nutzung von se- • Interessant ist auch der Aspekt, X-Window-Applika- nutzt, so kann man die Risiken immer nur minimieren. curity flags können Sie Ihre Verzeichnisse und Dateien so tionen in einer Jail zu betreiben. So lassen sich Be- Um diese auf ein Minimum schrumpfen zu lassen, bietet bearbeiten, dass nicht einmal mehr root diese zu dieneroberflächen sauber vom z.B. Datenbank-Host es sich an, diese Serverdienste in eine Jail zu sperren. Sei verändern vermag. Wollen Sie auf diese Möglichkeit der trennen es jeden in eine einzelne Jail oder alle Dienste in eine Absicherung verzichten? Wohl kaum! Aber damit nicht Jail, Ihr Hostsystem wird im Falle eines Einbruchs über Die Fakten sprechen für sich: genug: mit dem securelevel, welchen man während des mehr Sicherheit, mehr Übersicht, weniger Kosten, eine Schwachstelle eines Serverdienstes nicht beein- laufendes Betriebs erhöhen aber nicht herabsetzen kann, trächtigt werden. bessere Ausnutzung der vorhandenen Hardware! verhindert man auch, dass ein Eindringling die Firewall- Sicherheit durch Jails regeln modifiziert, Kernelmodule lädt oder entlädt oder Technisches Disks zum schreiben öffnet. Mehr zu security flags und Wenn ein Eindringling etwas verändert, wie können Sie securelevel erfahren Sie im entsprechenden Dokument. Die Implementierung von Jails ist nicht auf das Userland dann sicher sein, dass er nicht noch mehr Schaden begrenzt. So gibt es im Kernel an zahlreichen sicherheits- angerichtet hat, oder gar eine backdoor installiert hat? Ihr Mehrwert durch Jails relevanten Stellen Abfragen, ob ein Prozess auf dem System an sich ist sicher? Was ist aber mit den in- Hostsystem oder in einer Jail ausgeführt wird. Dies wird Eine Jail dient in erster Linie dazu, das System sicherer vom Prozess-Management anhand eines Flags in der Pro- stallierten Diensten? Sind Sie sicher, dass hier nicht ein zu machen. Die weiteren Vorteile zeigen die Stärken des Bug vorhanden ist, den ein Angreifer ausnutzen könnte, zesstabelle strengstens überwacht! Konzepts: um in Ihr System einzudringen? Was ist mit der down- Eine Jail braucht in etwa 140 MB auf Speicherplatz auf time Ihres Servers bis sie diesen wieder bereinigt oder gar • So können mehrere virtuelle Server, mit unterschiedli- der Festplatte, je nachdem, was in einer Jail installiert neu aufgesetzt haben? Zeit ist Geld und mit einer Jail chen Diensten, auf einem physikalischen Server be- wird steigt auch der Speicherbedarf. können Sie sich Mühe und vor allem Geld ersparen. trieben werden. So lässt sich eine demilitarisierte Zone Aus Sicht der Administration wird eine Jail wie jedes Wurde Ihr Webserver, welcher selbstverständlich in einer (DMZ) nur mit Jails auf einem Server aufbauen. andere System behandelt. So kann man sich beispiels- Jail läuft, kompromittiert, so suchen Sie nicht lange nach • Serverdienste sind meist sehr umfangreich und werden weise via SSH in diese einloggen und hat hiernach keinen veränderten Dateien. daher meist nicht von einem Administrator betreut. Zugriff auf das Hostsystem. Aus Sicht des Hostsystems Sie stoppen die Jail, kopieren Ihre Backup-Jail an die Entweder es haben mehrere User root-Rechte, oder Sie ist eine Jail ein Verzeichnis mit einer kompletten minima- Stelle der alten, und starten diese wieder. Dies wird nicht müssen mit Dingen wie „sudo“ experimentieren. len FreeBSD Installation, auf welche Sie vom Hostsystem mehr als eine Minute in Anspruch nehmen und Ihre Inter- Beides ist aus der Sicht der Sicherheit bedenklich! Zugriff haben. netpräsenz ist wieder auf dem alten Stand. Danach Lagern Sie daher die Dienste jeweils in eine Jail aus, so Um mit der Jail zu arbeiten, muss man sich aber nicht können Sie offline die kompromittierte Jail untersuchen kann jeder Administrator seinen Dienst pflegen, ohne immer in diese selbst einloggen. Mit „jexec“ lassen sich und den Fehler ausfindig machen. dass andere darauf Zugriff haben. Dienste und Programme vom Hostsystem aus in einer Jail Sie sehen, neben der richtigen Wahl des Betriebssystems, • Sie brauchen eine Testumgebung für Ihren Entwickler starten und stoppen, die Prozessliste in der Jail oder die der Nutzung einer Firewall, eines IDS (Intrution Detecti- in der Jail angemeldeten User anzeigen. oder für bestimmte Dienste? Warum extra einen Server on System) und weiteren Sicherheitsfeatures, sollten Sie einrichten, ganz zu schweigen von den Kosten der Am Hostsystem ist jeder Jailprozess in der Prozessliste auf die Möglichkeiten einer Jail keines Falls verzichten. Hardware? Richten Sie Ihrem Entwickler eine Jail ein mit einem „J“ gekennzeichnet. So ist für den Betreiber
(c) Autor: Axel S. Gruner, überarbeitet: Jürgen Dankoweit, 2007