Jails Easy Envirement - Einfache Jails Installation und Administration über Webmin

KnastPeter

Member
Installed Jails Environment unter FreeBSD 5.4 und Webmin
(Ich habe alle Tools installiert, um einen schnellen Überblick und Tests realiesieren zu können)

jailadmin-1.8_1
A system for managing a set of named jails
Maintained by: kirk@strauser.com
Requires: perl-5.8.7
Description : Sources : Changes : Download

jailctl-0.52
Jail management tool
Maintained by: ltning-jailctl@anduin.net
Description : Sources : Changes : Download

jailer-1.1.2
Manage FreeBSD jail startup, shutdown and console
Maintained by: skv@FreeBSD.org
Description : Sources : Changes : Download

jailuser-1.9_1
Builds a chrooted environment
Maintained by: bugghy@SAFe-mail.net
Requires: perl-5.8.7
Description : Sources : Changes : Download

jailutils-1.0
Several utilities for managing jails
Maintained by: skv@FreeBSD.org
Description : Sources : Changes : Download

jkill-1.0
Shutdowns a running jail and all its processes
Maintained by: pavel@ext.by
Requires: perl-5.8.7
Description : Sources : Changes : Download

jps-1.0
Wrapper to ps(1) that maps pids to jails
Maintained by: pavel@ext.by
Requires: p5-Term-ReadKey-2.30, perl-5.8.7
Description : Sources : Changes : Download

jtop-1.0
Wrapper to top(1) that maps pids to jails
Maintained by: pavel@ext.by
Requires: p5-Term-ReadKey-2.30, perl-5.8.7
Description : Sources : Changes : Download


Jails Webmin
http://www.the-labs.com/FreeBSD/JailTools/fbsd_jails.html#introduction


Howto configure:

Erst Webmin mit dem Jails Webmin Modul Theme aufrüsten.
http://www.the-labs.com/FreeBSD/JailTools/fbsd_jails.html#introduction

Jail Tools uploaden - installieren.
Nach
# /usr/home/my_User Verzeichnis. Dann
ins Verzeichnis #cd /usr/home/my_user verzeichnis/jail_tools
wechseln und installieren.
# make install

In der Shell erscheint folgende Ausgabe:

=========================================================

=== JAIL TOOLS 0.12 Installation
install jail.conf.dist jailtab.dist /usr/local/etc/
install jail.sh /usr/local/etc/rc.d/
install jail_install jail_start jail_stop jail_delete jail_ps jail_update /usr/local/sbin/
install jail_tools.1.gz /usr/local/man/man1/
cp README* /usr/local/share/doc/jail_tools/

Please edit /usr/local/etc/jail.conf before you use the tools:
jail_install, jail_start, jail_stop, jail_ps, jail_delete & jail_update

Also copy jail.conf.dist to jail.conf, the same for jailtab.dist where
you can list jails you like to have started at boot

Check 'man jail_tools' and /usr/local/share/doc/jail_tools/ for documentation

=========================================================

Die Jail Tools sind nun installiert!

Wie in der Shell Ausgabe vorgeben, die entsprechnede Konfigurationsschritte ab
[PLease edit...] durchführen.


Ist das erledigt und hat man alle Schritte wie in
http://the-labs.com/FreeBSD/JailTools/README
beschrieben durchlaufen, sollte das aufgesetzte Jail auch im Webmin Jail Modul unter dem Reiter "Sonstiges" FreeBSD Jails zu finden sein!

Ist dies erfolgt lassen sich über das Modul weitere Jails aufsetzen!

Für die Konfiguration im Detail muss dann wieder die Man-Page
http://www.freebsd.org/cgi/man.cgi?...ion=0&manpath=FreeBSD+4.8-RELEASE&format=html
herangezogen werden und in der Shell im Hauptsystem weiter gearbeitet werden.


Unter dem Namen der bei der Installation gewählt wurde kann dann zum ersten mal das Jail aufgerufen werden. siehe Abschnitt:

Now start the jail:

jail /data/jail/192.168.11.100 testhostname 192.168.11.100 /bin/sh

Wenn man beim Aufsetzten sich an http://the-labs.com/FreeBSD/JailTools/README das README
gehalten hat, sollte das z.B. profx anstatt testhostname sein.

Jetzt erhält man den Jail Shell Prompt #
Ist somit als [whoami] root eingeloggt.

Das Jail ist gestartet und stellt jetzt eine eigene Systemumgebeung im System dar.
So kann es aber nicht bleiben. Das bedeutet Root-Passwort anlegen, User anlegen,
Netzwerkeinstellungen vornehmen, Ports installieren und Rechte einschränken.

Weiter geht es in der Zeile darunter mit Sysinstall im Jail selbst (Siehe weiterer Abschnitt).
run /stand/sysinstall bzw. perform these actions manually by editing /etc/rc.conf, etc

Ich persönlich mache noch zusätzlich Tests mit den oben beschriebenen Jail Ports unter FreeBSD 5.4
=========================================================
=========================================================

Ab hier werden individuelle Jail Architekturen durch den Administrator des Hauptsystems angelegt!

Wünsche sind:

- Der "inetd" bzw. es soll an Services zugelassen werden:
siehe Konfiguration im Webmin-Modul FreeBSD Jails durch klicken auf das entsprechende Jail.
z.B. ftp, ssh, telnet usw.

- Erreichbarkeit extern über andere Systeme durch Clients
z.B. über Windows - Winscp, Smartftp, Browser I.E., Browser Mozilla Firefox

- Virtual Domain Hosting:
Zum funktionstüchtigen Einsatz sollen die übrigen Standard-Module bzw. Server von Webmin kommen.
z.B. Sendmail bzw. Postfix, Bind, PostgreSQL, MySQL, Apache2, Webalizer, etc.

und die Anbindung an das Webmin Modul "Virtualmin" oder Vergleichbares als
OpenSource.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ich bitte jeden der funktionierende Lösungen hat, diese hier zu veröffentlichen.
Wenn sich logische Ablaufredundazen in meiner Beschreibung hier eingeschlichen haben,
bin ich jederzeit bereit diese durch konstruktive Kritik nachzubessern.
Auch der Aspekt Sicherheit zu Jails allgemein soll hier zur Sprache kommen.

Ich persönlich brauche eine simple Lösung um User einsperren zu können, so dass diese das Hauptsystem an sich nicht sehen können und sich von aussen nur in Ihr Jail einloggen können. Dabei sollen sie dann Virtual Domains, Datenbanken, Homepages, Foren u.s.w. selbst aufsetzen können und Programmiersprachen wie php5, asp etc einsetzen können. Ich habe bereits im WWW nach einer entsprechneden Lösung gesucht, aber leider keine gefunden. Für einen entsprechenden Stups in die richtige Richtung, damit ich wieder einen Leitfaden beim weiteren Vorgehen habe wäre ich Euch sehr dankbar.

Ich bin Euch schon mal im Voraus dafür zu großem Dank verbunden!

Mit freundlichen Grüssen

Peter Sommer
 
Zuletzt bearbeitet:
ähm, schön das du alles getestet und beschrieben hast. mit den jails hast du anscheind kein problem, sondern möchstest das wenn ein jail angelgt wurde automatisch bestimmt programme bereits installiert und bereit sind?
wenn ja, dann konfiguriere ein beispieljail, was dann mit "cpdup" beliebig oft kopiert werden kann.
 
Hä? Wie meinen? Ich sehe, verstehe, was-auch-immer, die Frage nicht. Man muss sich an ein paar Dinge halten bei Jails, ansonsten kanns Du User da so sicher einsperren wie es die Jail zulässt das keine Bugs auftauchen.
Und wozu braucht man webmin für Jails, auch so ein Punkt den ich nicht verstehe.

EDIT: Das gelesen (?) --> http://www.encephalon.de/freebsd/freebsd-jails/index.html
Update des Howtos erfolgt heute abend.
 
Ahja, das.
Ok, ist ganz nett, aber meine negative Einstellung zu webmin wird das nicht verbessern ;-).
Wie dem auch sei, werde das wohl in die nächste Version des Jail Howtos mit aufnehmen.
 
@KnastPeter

Wenn Deine Jail eine öffentliche IP hat ist das doch kein Problem, dass sich die User nur an der Jail anmelden und dort so ziemlich alles installieren können, was sie wollen.
Wo genau liegt da Dein Problem?

Gruß,

Ice
 
Auch wenn sie keine öffnetliche IP haben kann sich der User nur an der Jail anmelden. Man muss eben nur den jeweiligen ssh port weiterleiten. Ports kann man in die Jail packen oder via nullfs in diese vom host aus mounten.
 
@asg

Das ist schon klar! Aber wenn der User dann z.B. nen Webserver installiert geht der Spaß mit dem Routing, virtual Hosting usw. los.
Für die genannte Verwendung sind private IP's IMHO völlig ungeeignet. Es sei denn man hat einfach zuviel Zeit und nur eingeschränkte Anforderungen! ;)

Gruß,

Ice
 
Jails Envirement

Hallo liebe Leute,
ja ich habe eine fest öffentliche IP (siehe das Pasting)


vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::20c:6eff:fe6a:4a88%vr0 prefixlen 64 scopeid 0x1
inet 81.122.201.199 netmask 0xfffffff0 broadcast xxx.xxx.xxx.255
inet 192.168.0.100 netmask 0xffffffff broadcast 192.168.0.100
inet 192.168.0.101 netmask 0xffffffff broadcast 192.168.0.101
ether 00:0c:6e:6a:4a:88
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3


Meiner Vorstellung nach soll das erste funktionierende Jail eine virtuelle Domain beheimaten. Die Leute sollen über den ftp Zugang dann ihre Websites hochschieben können. Schön wäre auch, dass Sie eine oder mehere Datenbanken von sich verwalten können. Das senden von Emails ist dabei eine Selbstverständlichkeit.

Das zweite Jail könnte z.B. nur ein reiner Email Server sein!

Alles natürlich so weit wie möglich sicher, so dass bekannte Sicherheitslücken in Jails möglichst ausgespart werden. Ein Beispiel wäre das ausbrechen aus einem Jail und dann Daten aus anderen Verzeichnissen des zentralen FreeBSD 5.4 Servers einsehen können. Oder schlimmer noch, verändern können. Das soll möglichst bei der Übelegung zum Envirements ausgeschlossen werden.

u.s.w.


Was für Ideen habt Ihr dazu nach dem Ihr nun wisst, dass ich eine feste IP Adresse habe!
 
Läuft auf dem Hostsystem auch einer der Dienste die in der Jail laufen sollen (www, smtp,...)?
 
Da hast Du was falsch verstanden. Du hast 1 feste IP für das Hostsystem. Das bedeutet aber, dass alle Deine Jails private Adressen haben werden/müssen.
Das ist kein Problem, solange Du jeden Dienst nach außen nur 1mal nutzen bzw. anbieten willst.

Gruß,

Ice
 
Ich denke da liesse sich etwas über einen internen DNS regeln. Habe aber nun gerade eine Gehirnsperre wie dies nochmals funktioniert. Bei daemonnews gab es mal einen Artikel darüber. Zwar nicht in Bezug auf Jails, sollte aber irgendwo, irgendwie zu finden sein.
 
O.K. Ice und asg hier nun ein Photo von top http://altenpflege-news.de/top um zu sehen welche Services laufen!

Das mit nur einmal ein Service verstehe ich jetzt aber nicht so ganz! Der öffentliche IP Host mit seiner Domain ist doch von den Jails getrennt zu betrachten oder nicht? zweimal in einem System z.B. Sendmail macht doch keinen Sinn. Oder was meint Ihr damit?
 
@KnastPeter

OK, zum Verständnis:
Wenn Du von außen z.B. einen Webserver, der in Deiner Jail läuft ansprechen willst, dann mußt Du folglich den Port 80 auf die private IP der Jail forwarden. Dadruch wäre ein Webserver auf dem Hostsystem oder in einer anderen Jail nicht mehr übe rport 80 erreichbar.

Gruß,

Ice
 
KnastPeter schrieb:
O.K. Ice und asg hier nun ein Photo von top http://altenpflege-news.de/top um zu sehen welche Services laufen!

Das mit nur einmal ein Service verstehe ich jetzt aber nicht so ganz! Der öffentliche IP Host mit seiner Domain ist doch von den Jails getrennt zu betrachten oder nicht? zweimal in einem System z.B. Sendmail macht doch keinen Sinn. Oder was meint Ihr damit?

Die Jail hat eine interne IP, da Du ja nur eine extern besitzt hat die der Host. Wenn Du nun auf dem Host schon einen Apache hat, oder in Jail No.1, damm hört der auf Port 80. Was aber wenn Du einen zweiten Apache hast, der kann dann ja nicht mehr auf Port 80 lauschen. Da dieser ja schon belegt ist.

Zweimal www oder posfix oder was auch immer ist schon sinnvoll wenn die Jail ein virtuelles System sein soll. Du also mehreren ein System zur Verfügung stellen willst.

Also. Sehe ich das richtig, Du willst nur eine Jail? Und in diese sollen eben die ganzen Dienste rein wegen der security? Dann ist das alles kein Problem.
Wenn aber auf den Hostsystem auch solche Dienste laufen sollen, dann wird es zu einem Problem da es dann zu einem Konflikt der Ports kommt. Du musst als dem Dienst im Hostsystem oder der Jail einen anderen Port geben.

Wenn es nur eine Jail ist in der alles laufen soll, ist das, wie gesagt, kein Problem. Bau Dir ne Jail und leite vom hostsyste, die Anfragen auf die jeweiligen Ports einfach auf die IP und den Port der Jail weiter. Gut ist.
 
Hey,
das
asg schrieb:
Ah, evtl. hilft das weiter:
http://ezine.daemonnews.org/200202/multiweb.html
um mehrere Apache laufen zu haben die alle auf den Port 80 hören (aber eben das gebunden auf die spezifische IP der jeweiligen Jail).
muss ich unbedingt mal testen. Auch wenn es leider nicht für alle Dienste funktioniert. ;)
Wo liegt aber der Vorteil gegenüber der Verwendung eines zentralen Webserver, der auf die anderen in den Jails verweist?

@asg

Hast Du das schonmal irgendwo eingerichtet?

Gruß,

Ice
 
@Ice
Ne, ich weiss nichtmal ob es geht ;-). Sieht aber interessant aus und ich werde es wohl doch mal die Tage testen (wollte es schon immer mal machen) ;-)
 
Da sind wir schon 2 .... ;)
Nur
- Wo liegt der Vorteil gegenüber der Verwendung eines zentralen Webserver, der auf die anderen in den Jails verweist?
- Wird das das Problem von verschiedenen HTTPS-Zertifikaten auch nicht lösen... :o

Trotzdem ein interessanter Ansatz.

Gruß,

Ice
 
Versteh ich euch richtig! Ihr wollt den Ansatz von mir die nächsten Tage testen? Mich würde das schon begeistern, wenn ich z.B. zwei verschiedene Jails am laufen hätte und in jedem auch noch ein Apache und ein Webmin laufen würden. Dann hätte mein Server praktisch drei Apache und Webmin mit Sicherheitszertifikat https:// laufen. Der Hauptserver wird damit praktisch ja unverwundbar! Weil der potenzelle Angreifer gar nicht mehr weis was er eigentlich angreifen soll! Wie ja jeder weis, ist Webmin nicht unbedingt mit dem Port 10000 einer der Ports, die nicht gerne angegriffen werden. Also damit sicherheitsrelevant !

Würde mich auf jedenfall freuen Eure Erfahrungen hier drin dann in ein paar Tagen lesen zu dürfen!
 
@KnastPeter

Das hast Du wieder was falsch verstanden:
1. Wir wollen mal den Ansatz des Multi-Webservers testen, den asg oben verlinkt hatte
2. Es erfordert einiges an Konfiguration, um mehrere identische Dienste in verschiedenen Jails laufen zu lassen
3. Es ist schon gar nicht möglich, mit einer öffentlichen IP 3 Apache's mit verschiedenen Zertifikaten laufen zu lassen

webmin und security ist IMHO ein Widerspruch! ;)

Gruß,

Ice
 
hi,

ich habe ähnliches szenario auf einem server am laufen. wenn jeder quasi seinen eigenen virtuellen server haben soll, dann benötigt man auch verschiedene öffentliche ip-adressen. PUNKT
wie sonst soll der z.b. der apache mehrmals auf port 80 laufen? nur über verschiedene ip's. da führt kein weg dran vorbei.
also besorg dir schonmal ein paar neue ip's :)

man kann höchstens mit nat siach was zurechtfummeln um verschiedene dienste in verschiedenen jails am laufen zu haben, aber dann ist das keine echtes multihosting.
 
es reicht aus einen apache mit öffentlicher ip vorne dran zu setzen, der proxy spielt. das funktioniert wunderbar (habe ich so im einsatz).

ausserdem sind die dahinterliegenden apache jails gleichzeitig nochmals abgeschirmt, da nur der proxy auf sie zu greift.

auf der 1und1 oder bei strato gabs mal nen howto, wie man mehrere ssl-zertifikate mittels virtueller domains in apache zum laufen bekommt. das ganze noch gekoppelt mit dem proxy-ansatz und fast alles ist möglich.

in meinem einsatzszenario wird jeder dienst, der angeboten wird über eine zentrale proxy-jail angesprochen. diese proxy-jail leitet anfragen oder dienste immer nur weiter (smtp-smarthosts, http-reverse proxy, etc...).
selbst ssh zum host-system ist nur über die proxy-jail möglich.
 
@ouTi

Also wie das mit mehreren Zertifikaten funktionieren soll, würde mich schonmal sehr sehr interessieren, denn AFAIK ist das eigentlich technisch unmöglich! Findest Du den Link vielleicht noch irgendwo?

Thx,

Ice
 
Zurück
Oben